BD_RT3

124
Conception et Développement de BD RT3 1 W . W. Drira Drira

Transcript of BD_RT3

  • Conception et Dveloppement de BD

    RT3

    1

    W. W. DriraDrira

  • Introduction aux bases de donnes

    Introduction aux bases de donnes

    2

  • Qu'est qu'une BD ?

    Une BD est un ensemble d'informations structures,

    intgres et partages par plusieurs applications et

    utilisateurs diffrents.

    Une BD est une reprsentation informatique des Une BD est une reprsentation informatique des

    informations ncessaires la comprhension et utilisation

    d'une certaine partie du monde rel.

    Cette reprsentation est partielle, subjective et biaise.

    3

  • Exemples classiques d'applications BD

    Gestion des personnels, tudiants, cours, inscriptions..

    Systme de rservation de places d'avion de Xair

    Gestion des comptes clients d'une banque Gestion des comptes clients d'une banque

    Gestion des commandes Amazon.com

    Gestion des jeux olympiques,

    4

  • Motivations

    Systme informatique pour la gestion des rservations des trains

    5

  • Quelles donnes

    TrainNumroGare de dpartGare destinationHeure de dpart

    BilletNom client

    Numro trainNumro WagonNumro placeHeure de dpart

    Jour de dpartNumro placeClasseDate

    Gare de dpartHeure dpartGare darriveHeure darrive

    ArrtNumro ArrtGare Heure dpartHeure darrive

    6

  • 1. Comment proposer une modlisation des donnes qui nefait pas de rfrence une solution informatiqueparticulire?

    Dcrire le donnes de lapplication

    Comment dcrire les donnes?

    Dcrire le donnes de lapplication

    Modlisation Conceptuelle. Formalisme conceptuel (UML, objet, )

    7

  • 2. Comment traduire cette modlisation en un modle logique de stockage de donnes?

    Elaborer une description quivalente pour le stockage des donnes dans le SGBD choisi

    Comment dcrire les donnes?

    stockage des donnes dans le SGBD choisi

    Modlisation logique (relationnelle, objet-relationnel)

    Langage de Description de donnes (LDD).

    8

  • On cherche les donnes dune rservation bien dtermine.

    On veut connatre sil reste des places vide dans un train donn.

    On dsire connatre si le train n 1 sarrte la Gare

    Comment chercher une information?

    On dsire connatre si le train n 1 sarrte la Gare X.

    Langage de requte (langage dinterrogation) pour interroger les donnes.

    9

  • Comment mettre au pralable lensemble des trains et des gares?

    Un client veut annuler une rservation sur une destination.On veut ajouter une nouvelle destination, offre,

    Comment modifier une information?

    On veut ajouter une nouvelle destination, offre, promotion, etc.

    Langage de Manipulation de donnes (LMD)

    10

  • On ne peut pas faire une rservation sur un train qui nexiste pas.

    On ne peut pas rserver la mme place deux fois! Toutes les arrts sont comprises entre la gare de dpart

    et celle darrive.

    Comment contrler les donnes?

    et celle darrive. Le 30 fvrier 2013 nexiste pas.

    Langage dexpression des contraintes dintgrit

    11

  • Optimisation

    Fiabilit (scurit) Il faut viter que les informations (rservations, clients,)

    soient perdues lors de dysfonctionnements, pannes, ou

    Dautres besoins

    soient perdues lors de dysfonctionnements, pannes, ou problmes

    erreur de programmation panne physique de lordinateur coupure de courant

    12

  • Gestion des accs concurrentiels

    Il faut viter que si plusieurs utilisateurs accdent au systme en mme temps, une modification des donnes soit faite de manire incorrecte.

    Quel genre de modifications incorrectes?

    Dautres besoins

    Quel genre de modifications incorrectes? Action faite double : rservation de la mme place en mme

    temps par deux personnes conduit la rservation double de la place.

    Action non faite : la rservation de la mme place conduit aucune rservation.

    Action faite de manire incohrente : aucun client nobtient la rservation, mais le systme la enregistr

    13

  • Base de donnes: ensemble cohrent, intgr, partag de donnes structures dfini pour les besoins dune application.

    Dfinitions

    SGBD (Systme de Gestion de Bases de Donnes):Logiciel permettant de stocker les donnes, de les mettre jour et de les consulter.

    En anglais DBMS.

    14

  • Architecture

    15

  • Interface utilisateur: permet aux utilisateurs de

    dialoguer avec le SGBD et dexprimer leurs requtes.

    Interface daccs physique: permet au SGBD

    Architecture

    Interface daccs physique: permet au SGBD d'accder aux donnes sur les supports (disques, ...).

    16

  • Architecture en couches

    Couche externe

    Couche logique

    Couche interne

    1 2

    UtilisateursSGBD

    Donnes

    Dialogue Contrle Stockage

    1. Interface utilisateur2. Interface daccs physique

    17

  • Niveau Interne:

    stockage des donnes dans les supports physiques gestion des structures de mmorisation (fichiers) et d'accs

    (gestion des index, des cls, ...)

    Niveau externe: prend en charge le problme du dialogue avec

    Architecture en couches

    Niveau externe: prend en charge le problme du dialogue avec les utilisateurs:

    l'analyse des demandes de l'utilisateur, le contrle des droits d'accs de l'utilisateur, la prsentation des rsultats

    18

  • Niveau intermdiaire (logique): assure les fonctions de contrle global: optimisation globale des requtes gestion des conflits d'accs simultans de la part de plusieurs

    utilisateurs

    Architecture en couches

    utilisateurs contrle gnral de la cohrence de l'ensemble coordination et suivi des processus en cours garantie du bon droulement des actions entreprises mme en

    cas de panne

    19

  • Modle de donnes:

    ensemble des concepts qui permettent de dcrire les donnes d'une

    base et les rgles d'utilisation de ces concepts.

    Un schma pour chaque couche

    Schmas dune BD:

    Descriptions dune base de donnes obtenues en employant un

    modle de donnes.

    20

  • Le niveau conceptuel

    Description des donnes dont les utilisateurs ont besoin modle conceptuel, orient utilisateur

    Support du dialogue concepteurs / utilisateurs Indpendant de la solution informatique

    Un schma pour chaque couche

    Indpendant de la solution informatique Deux parties couvertes par le modle:

    statique (la structure des donnes) dynamique (rgles et oprations)

    Contraintes d'intgrit inhrentes aux donnes ou traduisant les rgles des applications

    21

  • Le niveau interne (implantation) Choix des structures de stockage des donnes par les

    administrateurs systme Schma interne : description des choix denregistrement des

    donnes dans les fichiers.

    Un schma pour chaque couche

    donnes dans les fichiers. Fait appel un nouveau modle, le modle interne, o les

    concepts sont ceux de fichier, organisation de fichier, index, chemin d'accs, cl, ...

    22

  • Le Schmas externes (SE): utilisation Un schma externe par groupe dutilisateurs, dfinissant la vue

    de la base pour ces utilisateurs Avantages de cette approche :

    simplicit

    Un schma pour chaque couche

    simplicit protection (confidentialit)

    Dans les SGBD actuels, le schma externe d'un utilisateur est une collection de vues. Chaque vue dcrit un objet virtuel qui peut tre calcul par le SGBD quand l'utilisateur en a besoin.

    Le modle de donnes employ pour dcrire les vues est le mme que celui du schma logique

    23

  • Schma logique

    TrainNumroGare de dpart

    BilletNom client

    Numro trainNumro WagonNumro place

    ArrtNumro Arrt

    Architecture en couches (exemple)

    Gare de dpartGare destinationHeure de dpartJour de dpart

    Numro placeClasseDate

    Gare de dpartHeure dpartGare darriveHeure darrive

    Numro ArrtGare Heure dpartHeure darrive

    24

  • Schmas externes

    Lemploy qui gre les trains a laccs la vue Gestion_trains

    qui contient les donnes de tous les trains.

    Architecture en couches (exemple)

    Lemploy qui fait les rservations a un accs la vue

    Gestion_billets qui autorise la lecture/criture sur les donnes

    des billets et la lecture de trains et arrts.

    25

  • Architecture en couches (exemple)

    Schma interne:

    Fichier trains contient numro, gare de dpart, gare destination, heure de dpart, jour de dpart+ index sur numro+ index secondaire sur numro et gare de dpart+ index secondaire sur numro et gare de dpart

    Fichier arrts Fichier billets

    26

  • Cycle de vie dune base de donnes

    Implmentation de la base de donnes

    (Niveau logique)

    Conception dune base de donnes

    (Niveau conceptuel)

    1 2

    Maintenance(correction et volution)

    Utilisation(Interrogation, mise jour)

    3 4

    27

  • Dfinitions

    Une base de donnes est une collection de donnes inter-relies. C'estune entit cohrente logiquement et vhiculant une certaine smantique,

    Un Systme de Gestion de Bases de Donnes (SGBD) est un ensemblede programmes qui permettent des utilisateurs de crer et maintenir unebase de donnes. Les activits supportes sont la dfinition d'une base dedonnes, la construction d'une base de donnes et la manipulation desdonnes, la construction d'une base de donnes et la manipulation desdonnes,

    Les SGBD commerciaux les plus connus sont Oracle, MySQL, Sybase,Ingres, Informix et DB2,

    Un SGBD spare la partie description des donnes, des donnes ellesmmes. Cette description est stocke dans un dictionnaire de donnes etpeut tre consulte par les utilisateurs,

    28

  • Dfinitions

    Un modle de donnes est un ensemble de concepts permettant dedcrire la structure d'une base de donnes. La plupart des modles dedonnes incluent des oprations permettant de mettre jour etquestionner la base. Le modle de donnes le plus utilis est le modlerelationnel,

    Un schma de base de donnes est la description des donnes grer. Ilest conu dans la phase de spcification et est peu volutif,

    Une extension d'une base de donnes correspond aux donnes de labase un instant donn. Par dfinition cet tat est dynamique.

    29

  • Fonctionnalits du SGBD

    Contrler la redondance d'informations: La redondance d'informations diffrents problmes (cot en temps, cot

    en volume et risque d'incohrence entre les diffrentes copies). Contrler voire supprimer la redondance en offrant une gestion unifie des

    informations complte par diffrentes vues pour des classes d'utilisateursdiffrents.diffrents.

    Partage des donnes: Accder la mme information par plusieurs utilisateurs en mme temps:

    Inclure un mcanisme de contrle de la concurrence bas sur destechniques de verrouillage des donnes.

    Le partage des donnes se fait galement par la notion de vue utilisateur:Dfinir pour chaque classe d'utilisateurs la portion de la base de donnesqui l'intresse.

    30

  • Fonctionnalits du SGBD

    Grer les autorisations d'accs: BD multi-utilisateurs Problme de la confidentialit des donnes. Des droits doivent tre grs sur les donnes, droits de lecture, mise

    jour, cration, ... qui permettent d'affiner la notion de vue utilisateur.

    Offrir des interfaces d'accs multiples. Offrir des interfaces d'accs multiples. Offrir plusieurs interfaces d'accs, correspondant aux diffrents types

    d'utilisateurs pouvant s'adresser lui.1. Interfaces orientes utilisateur final : langages de requtes

    dclaratifs comme SQL avec mise en uvre graphique,interface de type formulaire, ...

    2. Interfaces orientes programmeurs d'applications : interfaceavec des langages de programmation classiques.

    31

  • Fonctionnalits du SGBD

    Reprsenter des relations complexes entre les donnes. Reprsenter des donnes inter-relies de manire complexe. Cette facilit s'exprime travers le modle de donnes sous-jacent au

    SGBD. Chaque modle de donnes offre ses propres concepts pourreprsenter les relations.,

    Vrifier les contraintes d'intgrit. Vrifier les contraintes d'intgrit. Un schma de base de donnes se compose d'une description des donnes

    et de leurs relations ainsi que d'un ensemble de contraintes d'intgrit. Une contrainte d'intgrit est une proprit de l'application modliser qui

    renforce la connaissance que l'on en a. Contraintes structurelles et contraintes dynamiques.

    Les SGBD commerciaux supportent automatiquement un certain nombrede contraintes structurelles, mais ne prennent pas en compte lescontraintes dynamiques

    32

  • Fonctionnalits du SGBD

    Assurer la scurit et la reprise aprs panne:

    BD vitale dans le fonctionnement d'une organisation : il n'est pas tolrablequ'une panne puisse remettre en cause son fonctionnement de maniredurable.

    Des mcanismes pour assurer cette scurit : Des mcanismes pour assurer cette scurit : Le mcanisme de transaction : assurer un comportement atomique

    une squence d'actions. Une transaction est une squence d'oprations qui fait passer la base

    de donnes d'un tat cohrent un nouvel tat cohrent.

    33

  • Architecture logique d'un SGBD

    La plupart des SGBD suivent l'architecture standard Ansi/Sparc quipermet d'isoler les diffrents niveaux d'abstraction ncessaires pour unSGBD.

    Larchitecture Ansi/Sparc est dfinie sur trois niveaux : Niveau interne ou physique : dcrit le modle de stockage des donnes et

    les fonctions d'accsles fonctions d'accs Modle conceptuel ou logique : dcrit la structure de la base de donnes

    globalement tous les utilisateurs (limite la redondance). Le schmaconceptuel est produit par une analyse de l'application modliser et parintgration des diffrentes vues utilisateurs. Ce schma dcrit la structurede la base indpendamment de son implantation

    Niveau externe : correspond aux diffrentes vues des utilisateurs. Chaqueschma externe donne une vue sur le schma conceptuel une classed'utilisateurs.

    34

  • Architecture logique d'un SGBD

    Le SGBD doit tre capable de faire des transformations entre chaqueniveau, de manire transformer une requte exprime en terme duniveau externe en requte du niveau conceptuel puis du niveauphysique.

    La plupart des SGBD ne sparent pas compltement ces trois niveaux, La plupart des SGBD ne sparent pas compltement ces trois niveaux,mais respectent nanmoins ces principes de sparation

    35

  • Architecture logique d'un SGBD

    36

  • Architecture logique d'un SGBD

    L'architecture trois niveaux : supporter le concept d'indpendancedonnes programmes la capacit de modifier le schma de la basede donnes un niveau donn, sans remettre en cause le schma auxniveaux suprieurs : Indpendance logique : changer le niveau conceptuel sans remettre en

    cause les schmas externes ou les programmes d'application. L'ajout ou le retrait de nouveaux concepts ne doit pas modifier des lments

    qui n'y font pas explicitement rfrence, Indpendance physique : changer le schma physique sans remettre en

    cause le schma conceptuel (et les schmas externes). Modifier l'organisation physique des fichiers, rajouter ou supprimer des

    mthodes d'accs. Le modle relationnel, contrairement ces prdcesseurs, permet un certain

    niveau d'indpendance sans aller jusqu' une indpendance complte.37

  • Fichiers et supports de stockage

    Fichiers et supports de stockage

    38

  • MS vs MC

    MCMSCoteusePeu chreVolatileNon volatileTaille rduiteGrande taille Taille rduiteGrande tailleRapideLente

    Lunit de transfert de la mmoire secondaire (MS) la mmoire centrale (MC) est le bloc physique.

    39

  • Disque magntique

    40

  • Fichiers

    Fichiers (file) : ensemble d'informations stock sur mmoire secondaire (MS), structur en enregistrements.

    Enregistrement (record) : lment d'un fichier, qui est l'unit logique de transfert MC-MS, et l'unit de traitement des programmes exploitant ce fichier.programmes exploitant ce fichier.

    Format: description de la liste des donnes contenues dans chaque enregistrement.

    41

  • Exemple de formats

    tudiant (NCIN, Nom, Prnom, DateNaissance, Niveau, Classe, Spcialit).

    NCIN: entier 8 Nom, prnom: caractre 50 Nom, prnom: caractre 50 DateNaissance: entier 8 Niveau: entier 1 Classe: entier 1 Spcialit: entier 1

    42

  • Organisation de fichiers

    1. Organisation squentielle

    2. Organisation relative

    3. Organisation alatoire3. Organisation alatoire

    4. Organisation index

    43

  • Organisation Squentielle

    L'organisation squentielle consiste mettre les enregistrements dans le fichier les uns aprs les autres selon leur ordre d'arrive (de cration), sans mmoriser l'endroit o ils ont t crits.

    Accs squentiel seulement. Accs squentiel seulement. Efficace si on veut lire une grande partie du fichier. Enregistrement de taille variable ou non.

    (+) Trs bien pour accs squentiel(-) Pas daccs slectif(-) Impossibilit de supprimer ou insrer : il faut recopier le

    fichier

    44

  • Organisation relative

    Les enregistrements ont tous la mme longueur, et ont un numro relatif, appel cl, qui est leur numro d'ordre dans le fichier.

    L'adresse relative dans le fichier de l'enregistrement de numro i est : (i-1) * longueur de l'enregistrement.numro i est : (i-1) * longueur de l'enregistrement.

    Mthodes d'accs: slective sur le numro et ventuellement squentiellement.

    (+) Trs bonne en accs slectif (1 E/S par lecture)(-) La cl doit tre dense, ou presque,(-) Les enregistrements doivent tre tous de mme taille

    45

  • Organisation alatoire

    Tous les enregistrements ont la mme longueur. Chaque enregistrement possde un attribut (ou liste d'attributs) qui identifie l'enregistrement, et qui est appel cl de l'enregistrement.

    Le fichier est constitu de blocs qui contiennent les Le fichier est constitu de blocs qui contiennent les enregistrements.

    Une fonction est associe au fichier qui, partir de la cl d'un enregistrement, calcule le numro du bloc du fichier dans lequel doit tre (logiquement) stock l'enregistrement.

    46

  • Organisation alatoire

    Cration : Le fichier est de taille fixe. Lors de la cration du fichier, l'utilisateur doit dfinir la taille des

    blocs et le nombre total de blocs en prvoyant du vide. Il doit fixer aussi la fonction.

    criture : Le SGF calcule le N bloc = f(cl). Puis il lit le bloc, y ajoute l'enregistrement (s'il y a assez de

    place), et il rcrit le bloc. S'il n'y plus de place, on dit que le bloc dborde. Quand un bloc

    commence dborder, un bloc de dbordement lui est associ .

    47

  • Organisation alatoire

    Lecture :

    le SGF calcule le N bloc = f(cl). Puis il lit le bloc, et y cherche l'enregistrement. Si l'enregistrement n'est pas dans le bloc, soit c'est une erreur

    d'arguments, soit le bloc a dbord et l'enregistrement est d'arguments, soit le bloc a dbord et l'enregistrement est dans le (un des) bloc de dbordement associ.

    Le SGF lit donc le (les) bloc de dbordement la recherche de l'enregistrement.

    48

  • Organisation index

    Chaque enregistrement possde un attribut (ou liste dattributs) qui identifie lenregistrement, et qui est appel cl de lenregistrement.

    Une table associe au fichier est compose de doubletsfichier> La table est appele "index" du fichier selon telle cl; un

    doublet est une "entre" de lindex. Objectifs:

    Accs slectif rapide un enregistrement partir de la valeur dun (ou de plusieurs) de ses attributs, appel cl.

    Accs squentiel efficace selon lordre des cls. Taille du fichier variable au cours du temps.

    49

  • Organisation index

    La recherche dune entre dans un index comprenant n blocs (chaque bloc contenant c cls), ncessite : si lindex est non tri: n/2 lectures en moyenne si lindex est tri et la recherche dichotomique: log 2(n)

    lectures en moyenne 4 si on indexe les blocs dindex (lindex est tri et hirarchis

    plusieurs niveaux): une E/S par niveau de lindex.Cette solution est retenue ds que lindex est trop grand pour

    tenir en MC, car la plus efficace.

    (+) Recherche rapide dune entre de lindex dont on connat la cl.(- ) Recherche rapide dans un index hirarchis et stock sur MS.

    50

  • Le modle Entit/Association

    Le modle Entit/AssociationLe modle Entit/Association

    51

  • Principes gnraux

    Modle utilis peu prs universellement pour la conception de bases de donnes (relationnelles principalement)(+) Simple et suffisamment puissant pour reprsenter des structures relationnelles(+) Reprsentation graphique facilite considrablement sa comprhension.(-) Ne proposer que des structures (pas dopration pour manipuler les

    donnes, et pas (ou peu) de moyen dexprimer des contraintes. (-) Mener certaines ambiguits pour des schmas complexes.

    Dans le cadre de la conception dune base de donnes Distinguer les entits qui constituent la base de donnes, et les

    associations entre ces entits Donner une structure la base, ce qui savre indispensable.

    52

  • Table FilmSimple stockant des films avec quelques informations de base, dont le metteur en scne

    Exemple

    53

  • Bons et mauvais schmas

    Anomalies lors dune insertion Reprsenter plusieurs fois le mme film.

    il est possible dinsrer plusieurs fois le film Vertigo en le dcrivant chaque fois de manire diffrente, par exemple en lui attribuant une foiscomme ralisateur Alfred Hitchcock, puis une autre fois John Woo, etc.

    Comment distinguer deux films lun de lautre? A quel moment on peut dire que la mme information a t rpte? Peut-il y avoir deux films diffrents avec le mme titre par exemple ?

    Si la rponse est non: Assurer quil ny a pas deux lignes dans la table avec la mme valeur pour lattribut titre.

    Si la rponse est oui: Dterminer quel est lensemble des attributs qui permet de caractriser de manire unique un film.

    54

  • Anomalies lors dune modification

    La redondance dinformation des anomalies de mise jour. Supposons que lon modifie lanne de naissance de Hitchcock pour la

    ligne Vertigo et pas pour la ligne Psychose. Des informations incohrentes.

    Bons et mauvais schmas

    Des informations incohrentes.

    Jusqu quel point peut-on dire quil ny a quun seul ralisateur nomm Hitchcock, et quil ne doit donc y avoir quune seule anne de naissance pour un ralisateur de ce nom ?

    55

  • Anomalies lors dune destruction

    On ne peut pas supprimer un film sans supprimer du mme coup son metteur en scne.

    Exemple : Si on souhaite, ne plus voir le film Titanic figurer dans la base de donnes

    Bons et mauvais schmas

    base de donnes on va effacer du mme coup les informations sur James Cameron.

    56

  • Bonne mthode

    Une bonne mthode vitant les anomalies consiste ;

    1. Etre capable de reprsenter individuellement les films et les ralisateurs, de manire ce quune action sur lun nentrane pas systmatiquement une action sur lautre ;

    Bons et mauvais schmas

    systmatiquement une action sur lautre ;

    2. Dfinir une mthode didentification dun film ou dun ralisateur, qui permette dassurer que la mme information est reprsente une seule fois ;

    3. Prserver le lien entre les films et les ralisateurs, mais sans introduire de redondance.

    57

  • Commenons par les deux premires tapes:

    Distinguer la table des films et la table des ralisateurs. Dcider que deux films ne peuvent avoir le mme titre, mais que

    deux ralisateurs peuvent avoir le mme nom. Attribuer un numro aux ralisateurs, dsign par id afin davoir un

    Bons et mauvais schmas

    Attribuer un numro aux ralisateurs, dsign par id afin davoir un moyen de les identifier

    58

  • Bons et mauvais schmas

    59

  • Il ny a maintenant plus de redondance dans la base de donnes. Par exemple , le ralisateur Hitchcock napparat plus quune seule fois,

    ce qui limine les anomalies de mise jour voques prcdemment.

    Reprsenter le lien entre les films et les metteurs en scne, sans

    Bons et mauvais schmas

    Reprsenter le lien entre les films et les metteurs en scne, sans introduire de redondance : Les identifiants un moyen simple pour indiquer quel est le metteur en

    scne qui a ralis un film Associer lidentifiant du metteur en scne au film: Ajouter un attribut idMES dans la table Film

    60

  • Bons et mauvais schmas

    61

  • Reprsentation correcte : La redondance est rduite au minimum puisque seule la cl identifiant un metteur en scne a t dplace dans une autre table (on parle de cl trangre).

    Anomalie dinsertion: Identifiant un film Dterminer au moment dune insertion si elle va introduire ou non une

    Bons et mauvais schmas

    redondance. Si cest le cas on doit interdire cette insertion.

    Anomalie de mise jour: Pas de redondance Toute mise jour affecte lunique instance de la donne modifier.

    Anomalie de destruction On peut dtruire un film sans affecter les informations sur le ralisateur.

    62

  • Ce gain dans la qualit du schma na pas pour contrepartie une perte dinformation. Linformation initiale peut tre reconstitue intgralement. En prenant un film, on obtient lidentit de son metteur en scne, et

    cette identit permet de trouver lunique ligne dans la table des ralisateurs qui contient toutes les informations sur ce metteur en scne.

    Bons et mauvais schmas

    ralisateurs qui contient toutes les informations sur ce metteur en scne. Ce processus de reconstruction de linformation, disperse dans

    plusieurs tables, peut sexprimer avec SQL.

    La modlisation avec un graphique Entit/Association offre une mthode simple pour arriver un bon schma, et ce mme dans des cas beaucoup plus complexes.

    63

  • Un schma E/A dcrit lapplication vise, Abstraction dun domaine dtude, pertinente relativement aux objectifs viss. Abstraction : choisir certains aspects de la ralit perue (liminer les autres). Slection en fonction de certains besoins qui doivent tre prcisment dfinis.

    Par exemple, pour la base de donnes Films, on na pas besoin de stocker dans la BD lintgralit des informations relatives un internaute, ou un

    Modle E/A : Prsentation informelle

    dans la BD lintgralit des informations relatives un internaute, ou un film : Seules comptent celles qui sont importantes pour lapplication:1. Entits, reprsentes par des rectangles : Film, Artiste, Internaute et Pays 2. Associations entre entits reprsentes par des liens entre ces

    rectangles. Par exemple: Reprsenter le fait quun artiste joue dans des films, quun

    internaute note des films, etc.

    64

  • Chaque entit est caractrise par un ensemble dattributs, parmi lesquels un ou plusieurs forment lidentifiant unique Caractriser de manire unique une entit, de manire viter la

    redondance dinformation. Les associations sont caractrises par des cardinalits. Le choix des cardinalits est parfois discutable : Laspect le plus

    Modle E/A : Prsentation informelle

    Le choix des cardinalits est parfois discutable : Laspect le plus dlicat de la modlisation. Exemple : lassociation Ralise entre film et metteur en scne Film ralis par un seul metteur en scne on sinterdit les rares

    situations o un film est ralis par plusieurs personnes. Impossible de reprsenter une telle situation dans la BD. Choix et compromis : Accepter une structure plus complexe (avec 0..* de

    chaque ct) pour lassociation Ralise, pour prendre en compte un nombre minime de cas ?

    65

  • Les cardinalits sont notes par deux chiffres. Le chiffre de droite est la cardinalit maximale, qui vaut en gnral 1 ou *. Le chiffre de gauche est la cardinalit minimale.

    Les cardinalits minimales (contraintes de participation) sont moins importantes que les cardinalits maximales: Elles ont un impact moindre sur la structure de la base de donnes

    Modle E/A : Prsentation informelle

    Elles ont un impact moindre sur la structure de la base de donnes Elles peuvent plus facilement tre remises en cause aprs coup. Elles ne reprsentent quun choix de conception, souvent discutable.

    Dans la notation UML, il existe des notations abrges qui donnent des valeurs implicites aux cardinalits minimales :1. La notation * est quivalente 0..* 2. La notation 1 est quivalente 1..1

    66

  • La modlisation conceptuelle est totalement indpendante de tout choix dimplantation.

    Il nest pas non plus question de type ou de structure de donnes, dalgorithme, de langage, etc.

    La partie la plus stable dune application.

    Modle E/A : Prsentation informelle

    La partie la plus stable dune application. Le fait de se dbarrasser ce stade de la plupart des considrations

    techniques permet de se concentrer sur lessentiel Que veut-on stocker dans la base ?

    67

  • Maniement des schmas E/A : La qualit du rsultat ne peut svaluer que par rapport une demande souvent floue et incomplte Difficult de valider le rsultat (en fonction de quels critres ?). Par exemple peut-on affirmer que :1. Toutes les informations ncessaires sont reprsentes ;2. Quun film ne sera jamais ralis par plus dun artiste ;3. Quil ny aura jamais deux films avec le mme titre.

    Il faut faire des choix, en connaissance de cause, en sachant toutefois quil

    Modle E/A : Prsentation informelle

    Il faut faire des choix, en connaissance de cause, en sachant toutefois quil est toujours possible de faire voluer une BD, quand cette volution nimplique pas de restructuration trop importante. Facilit dajout des informations pour dcrire un film ou un internaute Difficult de modification de la base pour quun film passe de un, et un

    seul, ralisateur, plusieurs. Une des volutions les plus complexes raliser est de changer la cl

    de Film Les cardinalits et le choix des cls Des aspects dcisifs des choix de

    conception.68

  • Modle E/A : Exemple

    69

  • Tout objet identifiable et pertinent pour lapplication. La notion didentit est primordiale : distinguer les entits les unes des

    autres, et donc dire quune information est redondante ou non. Prvoir un moyen technique pour effectuer une distinction entre entits au

    niveau de la BD: Identifiant ou cl. La pertinence est essentielle : Prendre en compte que les informations

    Modle E/A : Entit

    La pertinence est essentielle : Prendre en compte que les informations ncessaires pour satisfaire les besoins.

    La 1re tape dune conception : identifier les entits utiles ( souvent en considrant quelques cas particuliers).

    La 2me tape : regrouper les entits en ensembles ( ne pas sintresser un individu particulier mais des groupes). Les films et les acteurs sont des ensembles distincts dentits. Les ensembles de ralisateurs et des acteurs : les distinguer ou les assembler ?

    Il est certainement prfrable de les assembler, puisque des acteurs peuvent aussi tre ralisateurs.

    70

  • Les entits sont caractrises par des proprits : le titre (du film), le nom (de lacteur), sa date de naissance,

    ladresse, etc. Ces proprits sont dnotes attributs dans la terminologie du

    modle E/A.

    Modle E/A : Attributs

    Le choix des attributs relve de la mme dmarche dabstraction qui a dict la slection des entits Ne pas donner exhaustivement toutes les proprits dune entit :

    Garder que celles utiles pour lapplication. Un attribut est dsign par un nom et prend ses valeurs dans un

    domaine numrable comme les entiers, les chanes de caractres, les dates, etc.

    71

  • Un attribut prend une valeur et une seule: Attribut atomique. Certaines mthodes admettent lintroduction de constructions plus

    complexes :1. Les attributs multivalus : sont constitus dun ensemble de valeurs

    prises dans un mme domaine : Rsoudre le problme des numros de tlphones multiples ;

    Modle E/A : Attributs

    2. Les attributs composs : sont constitus par agrgation dautres attributs ; un attribut adresse peut par exemple tre dcrit comme lagrgation dun code postal, dun numro de rue, dun nom de rue et dun nom de ville.

    Pour une modlisation oriente vers un SGBD relationnel, les attributs atomiques sont suffisants.

    72

  • Dcrire un peu plus prcisment les entits par leur type, compos des lments suivants :1. son nom ;2. la liste de ses attributs avec, optionnellement le domaine o lattribut

    prend ses valeurs : les entiers, les chanes de caractres ;

    Modle E/A : Types dentits

    prend ses valeurs : les entiers, les chanes de caractres ;3. lindication du (ou des) attribut(s) permettant didentifier lentit : ils

    constituent la cl.

    73

  • Un sous-ensemble minimal de lensemble des attributs permettant didentifier de manire unique une entit parmi nimporte quelle extension de un type dentit Un internaute est caractris par plusieurs attributs : son email, son

    nom, son prnom, la rgion o il habite. Lemail constitue une cl naturelle puisquon ne trouve pas, en

    principe, deux internautes ayant la mme adresse lectronique.

    Modle E/A : Cl

    principe, deux internautes ayant la mme adresse lectronique. En revanche lidentification par le nom seul parat impossible

    puisquon constituerait facilement un ensemble contenant deux internautes avec le mme nom.

    On pourrait penser utiliser la paire (nom,prnom), Il faut utiliser avec modration lutilisation didentifiants composs de

    plusieurs attributs: Peut poser des problmes de performance et complique les manipulations par SQL.74

  • Il est possible davoir plusieurs cls pour un mme ensemble dentits. Choisir une comme cl primaire, et les autres comme cls secondaires. Le choix de la cl (primaire) est dterminant pour la qualit du schma de la

    base de donnes. Les caractristiques dune bonne cl primaire sont :

    sa valeur est connue pour toute entit ;

    Modle E/A : Cl

    on ne doit jamais avoir besoin de la modifier ; Pour des raisons de performance, sa taille de stockage doit tre la plus petite possible.

    Il nest pas toujours vident de trouver un ensemble dattributs satisfaisant ces proprits. Le choix du titre pour identifier un film serait incorrect puisquon aura affaire

    un jour ou lautre deux films ayant le mme titre. Mme en combinant le titre avec un autre attribut (par exemple lanne), il est difficile de garantir lunicit.

    75

  • Dans la situation frquente, o on a du mal dterminer quelle est la cl dune entit : on cre un identifiant abstrait indpendant de tout autre attribut. Ajouter dans le type dentit Film un attribut id, correspondant

    un numro squentiel qui sera incrment au fur et mesure des insertions:

    Modle E/A : Cl

    insertions:Meilleur choix : - On peut toujours lui attribuer une valeur,

    - Il ne sera jamais ncessaire de la modifier,- Elle a une reprsentation compacte.

    76

  • Modle E/A: Avantage

    Le modle Entit/Association est simple et pratique.

    1. Il ny a que 3 concepts : entits, associations et attributs.

    2. Il est appropri une reprsentation graphique intuitive, mme sil

    existe beaucoup de conventions.existe beaucoup de conventions.

    3. Il permet de modliser rapidement des structures pas trop

    complexes.

    77

  • Modle E/A: Inconvnients

    Non-dterminisme : pas de rgle absolue pour dterminer ce qui est entit, attribut ou relation. Exp1: Est-il prfrable de reprsenter le metteur en scne (MES) comme un

    attribut de Film ou comme une association avec Artiste ? Rponse : comme une association ! Arguments :1. On connat alors non seulement le nom, mais aussi toutes les autres proprits

    (prnom, ge, ...).(prnom, ge, ...).2. Lentit MES peut-tre associe beaucoup dautres films : on permet le partage

    de linformation. Exp2: Est-il indispensable de grer une entit Horaire ?

    Rponse : pas forcment ! Arguments :1. Pour. Permet de normaliser les horaires. Plusieurs sances peuvent alors faire

    rfrence au mme horaire (gain de place, facilit de mise jour, cohrence, ...)2. Contre. On alourdit le schma inutilement : un horaire est propre une sance. On

    peut le reprsenter comme un attribut de Sance.

    78

  • Pauvret du modle E/A: Difficile dexprimer des contraintes dintgrit, des structures complexes.

    Beaucoup dextensions ont t proposes, mais la conception de schma reste en partie matire de bon sens et dexprience. On essaie en gnral :

    Modle E/A: Inconvnients

    essaie en gnral : Se ramener des associations entre 2 entits : au-del, on a

    probablement intrt a transformer lassociation en entit ; Eviter toute redondance : une information doit se trouver en un seul

    endroit ; Privilgier la simplicit et la lisibilit, notamment en ne reprsentant

    que ce qui est strictement ncessaire.

    79

  • Le modle E/A est utilis dans la plupart des mthodes danalyse/conception : OMT, CASE, MERISE, etc.

    La syntaxe varie, mais on retrouve toujours les mmes lments fondamentaux.

    Dans le cadre des bases de donnes, le modle E/A est utilis dans

    Modle E/A

    Dans le cadre des bases de donnes, le modle E/A est utilis dans la phase de conception : Spcifier la structure des informations qui vont tre contenues dans la

    base Offrir une reprsentation abstraite indpendante du modle logique qui

    sera choisi ensuite. Le modle E/A a linconvnient majeur de ne pas proposer

    doprations sur les donnes.

    80

  • Le modle relationnel

    Le modle relationnel

    81

  • Prsentation

    Un modle de donnes dfinit un mode de reprsentation de linformation selon trois composantes :1. Des structures de donnes DLL2. Des contraintes qui permettent de spcifier les rgles que doit respecter une BD DLL3. Des oprations pour manipuler les donnes, en interrogation et en mise jour DML

    Langage de Dfinition de Donnes dans un SGBD Dcrire le schma dune base de donnes. base de donnes.

    Langage de Manipulation de Donnes : le reprsentant le plus clbre est SQL. Indpendance de la reprsentation physique Sparation totale des tches

    respectives des administrateurs de la base, chargs de loptimisation de ses performances, et des dveloppeurs dapplication ou utilisateurs finaux qui nont pas se soucier de la manire dont le systme satisfait leurs demandes.

    Le modle relationnel, venant aprs les modles hirarchique et rseau, offre une totale indpendance entre les reprsentations logique et physique.

    82

  • Dfinition dun schma relationnel

    Un des grands avantages du modle relationnel est sa trs grande simplicit : une seule structure la relation .

    Une relation peut simplement tre reprsente sous forme de table. Une relation a donc un nom (Film) et se compose dun ensemble de

    colonnes dsignes par un nom dattribut. Dans chaque colonne on trouve des valeurs dun certain domaine (chanes Dans chaque colonne on trouve des valeurs dun certain domaine (chanes

    de caractres, nombres). Chaque ligne (ou tuple) correspond une entit .

    83

  • Un schma relationnel est constitu dun ensemble de schmas de relations qui dcrivent le contenu dune relation, laide de ces lments : domaines, attributs et noms de relation.

    Exemple du schma de la relation :Film (titre: string, anne: number, genre : string)

    Dfinition dun schma relationnel

    Film (titre: string, anne: number, genre : string)

    84

  • Un domaine de valeurs est un ensemble dinstances dun type lmentaire. Exemple : les entiers, les rels, les chanes de caractres, etc.

    Les attributs nomment les colonnes dune relation servent la fois indiquer le contenu de cette colonne, et la rfrencer quand on effectue des oprations.

    Dfinition dun schma relationnel

    effectue des oprations. Un attribut est toujours associ un domaine.

    Un schma de relation est simplement un nom suivi de la liste des attributs, chaque attribut tant associ son domaine. On peut trouver dans un schma de relation plusieurs fois le mme

    domaine, mais une seule fois un nom dattribut: Larit dune relation est le nombre de ses attributs.

    85

  • Instance dune relation

    Une relation se reprsente sous forme de table, et on emploie le plus souvent ces deux termes comme des synonymes.

    Lordre des lignes na pas dimportance car il ny a pas dordre dans un ensemble ;

    Dfinition dun schma relationnel

    ensemble ; On ne peut pas trouver deux fois la mme ligne car il ny a pas de

    doublons dans un ensemble ; Il ny a pas de case vide dans la table, donc toutes les valeurs de tous

    les attributs sont toujours connues ;

    86

  • La cl dune relation est le plus petit sous-ensemble des attributs qui permet didentifier chaque ligne de manire unique. Deux lignes sont toujours diffrentes, lensemble de tous les attributs est

    lui-mme une cl mais on peut pratiquement toujours trouver un sous-ensemble qui satisfait la condition.

    Le choix de la cl est trs important pour la qualit du schma.

    Dfinition dun schma relationnel

    Choisir didentifier un film par son titre nest pas un trs bon choix!

    Un tuple est une liste de valeurs o chaque valeur est la valeur dun attribut de domaine.

    Exemple : (Cyrano, 1992, Rappeneau) Un tuple est donc simplement une ligne dans la reprsentation dune

    relation sous forme de table.

    87

  • Une base de donnes est un ensemble fini (dinstances) de relations. Le schma de la base est lensemble des schmas des relations de cette base. La cration dun schma de base de donnes est simple une fois que lon a

    dtermin toutes les relations qui constituent la base. le choix de ces relations est un problme difficile car il dtermine en grande partie

    les caractristiques, qualits de la base : performances, exactitude, exhaustivit,

    Dfinition dun schma relationnel

    les caractristiques, qualits de la base : performances, exactitude, exhaustivit, disponibilit des informations, etc.

    Un des aspects importants de la thorie des bases de donnes relationnelles consiste prcisment dfinir ce quest un bon schma et propose des outils formels pour y parvenir.

    En pratique, on procde dune manire moins rigoureuse mais plus accessible: Concevoir le schma laide dun modle de donnes conceptuel , Transcrire le schma conceptuel obtenu en schma relationnel. La technique la plus rpandue consiste partir dun schma Entit/Association.

    88

  • Passage dun schma E/A un schma relationnel

    On passe dun modle disposant de deux structures (entits et associations) un modle disposant dune seule structure (relations).

    Logiquement, entits et associations seront donc toutes deux transformes en relations. la ncessit de prserver les liens existant explicitement dans un schma E/A et qui semblent manquer dans le modle relationnel : Un mcanisme de rfrence par valeur bas sur les cls des relations.

    Le choix de la cl dune relation est un problme central dans la conception de schma.

    89

  • Rgles gnrales: Soit la Cl dfinie, pour chaque type dentit E, par un identifiant abstrait, idE.

    Passage dun schma E/A un schma relationnel

    90

  • Rgles de passage : entits

    Rappel : le schma dune relation est constitu du nom de la

    relation, suivi de la liste des attributs.

    Pour chaque entit du schma E/A:

    Passage dun schma E/A un schma relationnel

    1. On cre une relation de mme nom que lentit.

    2. Chaque proprit de lentit, y compris lidentifiant, devient un

    attribut de la relation.

    3. Les attributs de lidentifiant constituent la cl de la relation.

    91

  • Exemple 1 : A partir du schma E/A de la BD Films, lexception

    des entits concernant les cinmas, les salles et les horaires, on

    obtient les relations suivantes :

    Film (idFilm, titre, anne, genre, rsum)

    Passage dun schma E/A un schma relationnel

    Film (idFilm, titre, anne, genre, rsum) Artiste (idArtiste, nom, prnom, anneNaissance) Internaute (email, nom, prnom, rgion) Pays (code, nom, langue)

    On a perdu pour linstant tout lien entre les relations.

    92

  • Rgles de passage : Associations de un plusieurs

    Soit une association de un plusieurs entre A et B. Le passage au

    modle logique suit les rgles suivantes :

    1. On cre les relations RA et RB correspondant respectivement aux

    Passage dun schma E/A un schma relationnel

    1. On cre les relations RA et RB correspondant respectivement aux

    entits A et B

    2. Lidentifiant de B devient un attribut de RA

    Lide est quune occurrence de A rfrence loccurrence de B

    qui lui est associe laide dune cl trangre. Cette rfrence se

    fait de manire unique et suffisante laide de lidentifiant.93

  • Exemple 2 : Lassociation entre les types dentit Film, Artiste et Pays. Les cls trangres sont en italiques.

    Film (idFilm, titre, anne, genre, rsum, idArtiste, codePays) Artiste (idArtiste, nom, prnom, anneNaissance) Pays (code, nom, langue)

    Le rle prcis tenu par lartiste dans lassociation disparat.

    Passage dun schma E/A un schma relationnel

    Le rle prcis tenu par lartiste dans lassociation disparat. Lartiste dans Film a un rle de metteur en scne, mais il pourrait tout

    aussi bien sagir du dcorateur ou de laccessoiriste. Rien nempche cependant de donner un nom plus explicite lattribut.

    Il nest pas du tout obligatoire en fait que les attributs constituant une cl trangres aient le mme nom que ceux de le cl primaire auxquels ils se rfrent.

    Film (idFilm, titre, anne, genre, rsum, idMES)94

  • Rgles de passage : associations avec type entit faible

    Une entit faible est une entit qui ne peut exister quen troite association avec une autre, et est identifie relativement cette autre entit toujours identifie par rapport une autre entit. Exemple : lAssociation en Cinma et Salle est de type un plusieurs

    car lentit faible (une salle) est lie une seule autre entit (un cinma)

    Passage dun schma E/A un schma relationnel

    car lentit faible (une salle) est lie une seule autre entit (un cinma) alors que, en revanche, un cinma peut tre li plusieurs salles.

    Le passage un schma relationnel est donc identique celui dune association 1-n classique. On utilise un mcanisme de cl trangre pour rfrencer lentit forte dans lentit faible.

    La seule nuance est que la cl trangre est une partie de lidentifiant de lentit faible.

    95

  • Exemple 3: Lassociation entre les types dentit Cinma et Salle.

    On note que lidentifiant dune salle est constitu de lidentifiant du

    cinma (ici on a considr que le nom du cinma suffisait lidentifier), et dun numro complmentaire permettant de

    Passage dun schma E/A un schma relationnel

    lidentifier), et dun numro complmentaire permettant de distinguer les salles au sein dun mme cinma.

    La cl trangre est donc une partie de la cl primaire.

    Cinma (nomCinma, numro, rue, ville) Salle (nomCinma, no, capacit)

    96

  • Rgles de passage : Associations binaires de plusieurs plusieurs

    Soit une association binaire n-m entre A et B

    1. On cre les relations RA et RB correspondant respectivement aux

    entits A et B

    Passage dun schma E/A un schma relationnel

    2. On cre une relation RA -B pour lassociation

    3. La cl de RA et la cl de RB deviennent des attributs de RA -B

    4. La cl de cette relation est la concatnation des cls des relations RAet RB

    5. Les proprits de lassociation deviennent des attributs de RA -B97

  • Exemple 4 : Toujours partir du schma BD Films, on obtient la table Rle reprsentant lassociation entre les films et les acteurs. Film (idFilm, titre, anne, genre, rsum, idMES, codePays) Artiste (idArtiste, nom, prnom, anneNaissance) Rle (idFilm, idActeur, nomRle)

    Passage dun schma E/A un schma relationnel

    De mme, on obtient une table Notation pour reprsenter lassociation entre un internaute et les films quil a nots. Film (idFilm, titre, anne, genre, rsum, idMES, codePays) Internaute (email, nom, prnom, rgion) Notation (email, idFilm, note)

    98

  • Choix des identifiants

    Il est prfrable en gnral de choisir un identifiant neutre qui ne soit pas une proprit de lentit. En effet :1. Chaque valeur de lidentifiant doit caractriser de manire unique une

    occurrence.

    Exemple : titre pour la relation Film ou nom pour la relation Acteur ne sont clairement pas des bons choix.

    Passage dun schma E/A un schma relationnel

    des bons choix.2. Si on utilise un ensemble de proprits comme identifiant, la rfrence une

    occurrence est trs lourde. Exemple : la cl de Cinma pourrait tre (nom, rue, ville).

    3. Lidentifiant sert de rfrence externe et ne doit donc jamais tre modifiable Linconvnient de lidentifiant neutre est quil ne donne pas

    dindication sur loccurrence quil rfre. Par exemple, quand on consulte la table Sance, on ne sait pas dire de quel

    film il sagit sans aller rechercher la ligne de la table Film correspondant lidentifiant du film.

    99

  • Conception physique des bases de donnes

    Selon les spcifications et les contraintes relatives aux accs, la mise en uvre de la conception physique des bases de donnes est comme suit : Dnormaliser, si ncessaire ;

    Partitionner les tables, si ncessaire ; Partitionner les tables, si ncessaire ;

    Regrouper les tables dans des bases de donnes, si ncessaire ;

    Dfinir l'utilisation des segments ;

    Dfinir l'utilisation des devices ;

    Mettre en uvre l'intgrit rfrentielle des contraintes.

    100

  • Normalisation

    Dans une base de donnes relationnelle, une forme normale dsigne un type de relation particulier entre les entits.

    Le but essentiel de la normalisation est d'viter les anomalies transactionnelles pouvant dcouler d'une mauvaise modlisation des donnes et ainsi viter un certain nombre de problmes potentiels tels que les anomalies de lecture, les anomalies d'criture, la redondance que les anomalies de lecture, les anomalies d'criture, la redondance des donnes et la contre-performance.

    La normalisation des modles de donnes permet de : Vrifier la robustesse de leur conception pour amliorer la modlisation Faciliter la mmorisation des donnes en vitant la redondance et les

    problmes sous-jacents de mise jour ou de cohrence. La normalisation sapplique toutes les entits et aux relations

    porteuses de proprits101

  • Dans le modle relationnel, les tables sont en troisime forme normale. La conception physique normalise permet une maintenance aise et ne pose aucun problme de comprhension aux quipes de dveloppeurs.

    Cependant, une conception totalement normalise ne donne pas toujours des performances optimales : Mettre au point une conception adapte la troisime forme normale et dnormaliser lorsque des problmes de performances apparaissent.

    Normalisation

    performances apparaissent. Chaque niveau de normalisation dpend du niveau prcdent. Ainsi, pour

    tre conformes la deuxime forme normale, les entits doivent tre en premire forme normale, etc.

    Lorsque on dtermine si une base de donnes est en forme normale, on part du postulat que la relation (ou table) n'est pas normalise. Ensuite on lui applique les spcifications propres chaque forme normale.

    102

  • Premire forme normale

    Une relation est en premire forme normale si et seulement si tout attribut contient une valeur atomique.

    Normalisation

    103

  • Deuxime forme normale Une relation est en deuxime forme normale si et seulement si :

    Elle est en premire forme normale ; Chaque champ non-cl doit dpendre tout entire de la cl primaire et non

    d'une partie de cl primaire compose. Lorsqu'une base de donnes ne contient que des cls primaires champ

    Normalisation

    Lorsqu'une base de donnes ne contient que des cls primaires champ unique, elle est automatiquement en deuxime forme normale.

    104

  • Troisime forme normale Une relation est en troisime forme normale si et seulement si:

    Elle est en deuxime forme normale ; Tout champ non-cl ne doit pas dpendre d'un autre champ non-cl.

    Normalisation

    105

  • Normalisation : Avantages La production des tables de plus petite taille avec des lignes moins longues

    plus de lignes par page (moins d'E/S logiques), plus de lignes par E/S , plus de lignes contenues en mmoire cache (moins d'E/S physiques). La recherche, le tri et la cration d'index sont plus rapides.

    La recherche dans un index est souvent plus rapide, car les index sont plus petits.

    Un plus grand nombre de tables permet une meilleure utilisation des segments pour contrler l'emplacement physique des donnes.

    On dispose de moins d'index par table, les commandes de modification de donnes sont donc plus rapides.

    Le nombre de valeurs NULL et de donnes redondantes est rduit, ce qui rend la base de donnes plus compacte.

    Les anomalies de modification de donnes sont rduites. La maintenance est plus facile et il est possible de la modifier selon les

    besoins. 106

  • Aprs avoir crer la base de donnes sous une forme normalise, on peut effectuer des tests de performances et dcider, ventuellement, d'abandonner la normalisation pour amliorer les performances de certaines applications ou requtes.

    Le processus de dnormalisation : peut tre effectu au moyen de tables ou de colonnes ; suppose une normalisation pralable ;

    Dnormalisation

    suppose une normalisation pralable ; implique de bien connatre la faon dont les donnes sont utilises.

    Opter pour la dnormalisation en particulier si : la totalit, ou presque, des requtes les plus frquentes ncessitent un accs

    l'ensemble des donnes jointes ; la plupart des applications effectuent des balayages de table lors des

    jointures de tables ; la complexit de calcul des colonnes drives requiert des tables

    temporaires ou des requtes trs complexes. 107

  • La dnormalisation doit reposer sur une connaissance approfondie des applications et n'tre effectue que si les performances en dpendent

    La dnormalisation prsente les inconvnients suivants : Gnralement, elle acclre les recherches mais ralentit les modifications de

    donnes. Elle est toujours spcifique d'une application et doit tre rvalue si l'application

    volue. Elle peut entraner un accroissement de la taille des tables.

    Dnormalisation

    Elle peut entraner un accroissement de la taille des tables. Dans certains cas, elle simplifie la programmation, alors que dans d'autres elle la

    rend plus complexe. La dnormalisation peut amliorer les performances en :

    Rduisant le nombre de jointures requises ; Limitant le nombre de cls trangres sur les tables ; Diminuant le nombre d'index, ce qui conomise l'espace de stockage et rduit le

    temps de modification des donnes ; Calculant au pralable les valeurs d'agrgat Rduisant, dans certains cas, le nombre de tables.

    108

  • Lorsque on dcide de dnormaliser, on doit analyser, pour les applications de lenvironnement, les spcifications d'accs aux donnes ainsi que les caractristiques de performances relles.

    Une indexation correcte et quelques autres solutions rsolvent souvent de nombreux problmes de performances.

    Lorsque on envisage la dnormalisation : Quelles sont les transactions critiques et quel est le temps de rponse voulu ?

    Dnormalisation

    Quelles sont les transactions critiques et quel est le temps de rponse voulu ? Quelle est la frquence d'utilisation des transactions ? Quelles tables ou colonnes ces transactions utilisent-elles ? a combien de lignes

    accdent-elles chaque fois ? Quelle est la combinaison des types de transaction : select, insert, update et delete ? Quel est l'ordre de tri habituel ? Quelle concurrence d'accs on veut mettre en uvre ? De quelle taille sont les tables les plus frquemment utilises ? Certains processus gnrent-ils des donnes agrges ? Quel est l'emplacement physique des donnes ? 109

  • Dnormalisation : Techniques Le terme de dnormalisation sapplique avec deux objectifs principaux :

    1. Simplifier le schma relationnel en rduisant le nombre dlments qui le composent (fichiers ou segments ou records ou relation).

    2. Faciliter laccs aux donnes en introduisant un certain degr de redondance.Exemple :

    - Duplication de colonnes pour liminer les jointures frquentesLes problmes soulevs par cette solution sont les suivants : Les problmes soulevs par cette solution sont les suivants :

    Elle ncessite la mise jour de la nouvelle colonne. Toutes les modifications doivent tre effectues dans deux tables et peut-tre sur de nombreuses lignes dans une table.

    Elle requiert davantage d'espace disque. - Ajout de colonnes drives: pour liminer les jointures et rduire le temps ncessaire pour gnrer des valeurs d'agrgat

    Ces techniques reviennent introduire des anomalies dans le schma. Il faut donc systmatiquement comparer le gain attendu avec les risques courus !110

  • Si la plupart des utilisateurs ont besoin de visualiser l'ensemble des donnes jointes de deux tables, la destructuration des deux tables permettant d'en crer une seule peut amliorer les performances en liminant la jointure.

    On peut supprimer les entits qui portent peu dattributs en les dplaant vers une autre relation. Exemple : si le schma de Cinema est simplement Cinma (nom, adresse),

    Dnormalisation : Techniques

    Exemple : si le schma de Cinema est simplement Cinma (nom, adresse), on peut supprimer la relation et placer ladresse dans Salle.Salle (nomCinma, noSalle, adresse)

    Ladresse dun cinma est duplique autant de fois quil y a de salles. Cette option implique une perte de place due la redondance, un effort de saisie supplmentaire, et des risques dincohrences.

    Elle ne peut tre valable que tant quil ny a pas dattributs ajouter pour qualifier un cinma. Quand ce sera le cas, il faudra finalement se dcider 1. Crer la relation Cinma 2. Supprimer les attributs mal placs dans Salle.

    111

  • Langage de Dfinition de Donnes

    Le langage de dfinition de donnes permet de spcifier le schma dune base de donnes relationnelle.

    Ce langage correspond une partie de la norme SQL (structured querylanguage), lautre partie tant relative la manipulation des donnes (LMD).

    La dfinition dun schma logique comprend essentiellement deux La dfinition dun schma logique comprend essentiellement deux parties la description des tables et de leur contenu les contraintes qui portent sur les donnes de la base.

    La spcification des contraintes est souvent place au second plan bien quelle soit en fait trs importante : Elle permet dassurer, au niveau de la base des contrles sur lintgrit des

    donns qui simposent toutes les applications accdant cette base.

    112

  • La norme SQL ANSI propose un ensemble de typesLangage de Dfinition de Donnes

    113

  • Cration des tables La commande principale est CREATE TABLE.

    Exemple : cration de la table Internaute.CREATE TABLE Internaute ( email VARCHAR (50) NOT NULL,nom VARCHAR (20) NOT NULL,

    Langage de Dfinition de Donnes

    prenom VARCHAR (20),motDePasse VARCHAR (60) NOT NULL,anneeNaiss DECIMAL (4) )

    La syntaxe se comprend aisment. La seule difficult est de choisir correctement le type de chaque attribut.

    Le NOT NULL dans la cration de table Internaute indique que lattribut correspondant doit toujours avoir une valeur.114

  • Cration des tables

    Loption NOT NULL oblige toujours indiquer une valeur.garantir que tout internaute a un mot de passe.

    Une autre manire de forcer un attribut toujours prendre une

    Langage de Dfinition de Donnes

    Une autre manire de forcer un attribut toujours prendre une valeur est de spcifier une valeur par dfaut avec loption

    DEFAULT.CREATE TABLE Cinma (nom VARCHAR (50) NOT NULL,

    adresse VARCHAR (50) DEFAULT Inconnue)

    115

  • Contraintes La cration dune table vue prcdemment est extrmement sommaire :

    elle nindique que le contenu de la table sans spcifier les contraintes que doit respecter ce contenu.

    Il y a toujours des contraintes et il est indispensable de les inclure dans le schma pour assurer lintgrit de la base, dans la mesure du possible.

    Langage de Dfinition de Donnes

    schma pour assurer lintgrit de la base, dans la mesure du possible. Voici les rgles (ou contraintes dintgrit) que lon peut demander au

    systme de garantir :1. Un attribut doit toujours avoir une valeur. Cest la contrainte NOT NULL2. Un attribut (ou un ensemble dattributs) constitue(nt) la cl de la relation.3. Un attribut dans une table est lie la cl primaire dune autre table (intgrit

    rfrentielle).4. La valeur dun attribut doit tre unique au sein de la relation.5. Toute rgle sappliquant la valeur dun attribut (min et max par exemple).

    116

  • Cls dune table La cl primaire est spcifie avec loption PRIMARY KEY.

    CREATE TABLE Internaute (email VARCHAR (50) NOT NULLnom VARCHAR (20) NOT NULL,prenom VARCHAR (20),motDePasse VARCHAR (60) NOT NULL,

    Langage de Dfinition de Donnes

    anneeNaiss INTEGER,PRIMARY KEY (email))

    Une cl peut tre constitue de plusieurs attributs CREATE TABLE Notation (idFilm INTEGER NOT NULL,

    email VARCHAR (50) NOT NULL,note INTEGER DEFAULT 0,PRIMARY KEY (titre, email))

    Tous les attributs figurant dans une cl doivent tre dclars NOT NULL.117

  • On peut galement spcifier que la valeur dun attribut est unique pour lensemble de la colonne. Cela permet dindiquer des cls secondaires. On peut par exemple indiquer que deux artistes ne peuvent avoir les mmes nom et

    prnom avec loption UNIQUE.CREATE TABLE Artiste(id INTEGER NOT NULL,

    nom VARCHAR (30) NOT NULL,prenom VARCHAR (30) NOT NULL,

    Langage de Dfinition de Donnes

    anneeNaiss INTEGER,PRIMARY KEY (id),UNIQUE (nom, prenom));

    On ne peut pas trouver deux cinmas la mme adresse CREATE TABLE Cinema(nom VARCHAR (30) NOT NULL,adresse VARCHAR(50) UNIQUE,PRIMARY KEY (nomCinema))

    Il est plus facile de supprimer cette contrainte de cl secondaire.

    118

  • Cls trangres On peut spcifier les cls trangres avec loption FOREIGN KEY.

    CREATE TABLE Film (idFilm INTEGER NOT NULL,titre VARCHAR (50) NOT NULL,annee INTEGER NOT NULL,idMES INTEGER,

    Langage de Dfinition de Donnes

    idMES INTEGER,codePays INTEGER,PRIMARY KEY (idFilm),FOREIGN KEY (idMES) REFERENCES Artiste,FOREIGN KEY (codePays) REFERENCES Pays);

    La commande FOREIGN KEY (idMES) REFERENCES Artiste indique que idMES rfrence la cl primaire de la table Artiste.

    Le SGBD vrifiera alors, pour toute modification pouvant affecter le lien entre les deux tables, que la valeur de idMES correspond bien une ligne de Artiste.

    119

  • numration des valeurs possibles avec CHECK Loption CHECK (condition) exprime des contraintes portant soit sur un attribut,

    soit sur une ligne. La condition elle-mme peut tre toute expression suivant la clause WHERE dans une requte SQL. Exemple qui restreint les valeurs possibles des attributs annee et genre dans la

    table Film.CREATE TABLE Film (titre VARCHAR (50) NOT NULL,

    Langage de Dfinition de Donnes

    CREATE TABLE Film (titre VARCHAR (50) NOT NULL,annee INTEGERCHECK (annee BETWEEN 1890 AND 2000) NOT NULL,genre VARCHAR (10)CHECK (genre IN (Histoire,Western,Drame)),idMES INTEGER,codePays INTEGER,PRIMARY KEY (titre),FOREIGN KEY (idMES) REFERENCES Artiste,FOREIGN KEY (codePays) REFERENCES Pays);

    120

  • Modification du schma La forme gnrale de la commande permettant de modifier une table est :

    ALTER TABLE nomTable ACTION description ACTION peut tre principalement ADD, MODIFY, DROP ou RENAME description est la commande de modification associe ACTION. La modification dune table peut poser des problmes si elle est incompatible

    Langage de Dfinition de Donnes

    La modification dune table peut poser des problmes si elle est incompatible avec le contenu existant. Par exemple passer un attribut NOT NULL implique que cet attribut a dj des valeurs

    pour toutes les lignes de la table. On peut ajouter un attribut region la table Internaute avec la commande :

    ALTER TABLE Internaute ADD region VARCHAR(10); On peut lagrandir avec MODIFY, et la dclarer NOT NULL par la mme

    occasion :ALTER TABLE Internaute MODIFY region VARCHAR(30) NOT NULL;

    121

  • Modification du schma Il est galement possible de diminuer la taille dune colonne, avec le risque dune

    perte dinformation pour les donnes existantes. On peut mme changer son type, pour passer par exemple de VARCHAR

    INTEGER, avec un rsultat imprvisible. Loption ALTER TABLE permet dajouter une valeur par dfaut.

    Langage de Dfinition de Donnes

    Loption ALTER TABLE permet dajouter une valeur par dfaut.ALTER TABLE Internaute ALTER region SET DEFAULT EUROPE;

    On peut dtruire un attribut avec DROP.ALTER TABLE Internaute DROP region;

    122

  • Cration dindex Un index offre un chemin daccs aux lignes dune table qui est considrablement

    plus rapide que le balayage de cette table du moins quand le nombre de lignes est trs lev.

    Les SGBD crent systmatiquement un index sur la cl primaire de chaque table. Il y a deux raisons cela ;1. lindex permet de vrifier rapidement, au moment dune insertion, que la cl nexiste pas

    Langage de Dfinition de Donnes

    1. lindex permet de vrifier rapidement, au moment dune insertion, que la cl nexiste pas dj ;

    2. beaucoup de requtes SQL, notamment celles qui impliquent plusieurs tables (jointures), se basent sur les cls des tables pour reconstruire les liens. Lindex peut alors tre utilis pour amliorer les temps de rponse.

    La commande pour crer un index est la suivanteCREATE [UNIQUE] INDEX nomIndex ON nomTable (attribut1 [, ...])

    La clause UNIQUE indique quon ne peut pas trouver deux fois la mme cl.

    123

  • Cration dindex

    On peut crer un index de nom idxNom sur les attributs nom et prenom de la table Artiste. Cet index a donc une fonction quivalente la clause UNIQUE dj utilise dans la cration de la table.

    CREATE UNIQUE INDEX idxNom ON Artiste (nom, prenom);

    Langage de Dfinition de Donnes

    On peut crer un index, cette fois non unique, sur lattribut genre de la table Film.

    CREATE INDEX idxGenre ON Film (genre); Excuter trs rapidement des requtes SQL ayant comme critre de

    recherche le genre dun film.SELECT *FROM FilmWHERE genre = Western

    124