La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par.

Présentations similaires


Présentation au sujet: "1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par."— Transcription de la présentation:

1 1 C1 - Base de Données F. KOHLER

2 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par une relation. Un phénomène d'un type déterminé est un n-uplet (collection des valeurs qui permet de représenter un fait) de la relation. Vue utilisateur : une relation est un tableau. Un n-uplet est une ligne du tableau. Une base de données est un ensemble de tableau Les tableaux sont manipulables par des langages non procéduraux

3 3 Généralités Base de données : –Références aux données elles mêmes –-Système de gestion de base de données : SGBD Matériel –Serveur central unique / serveurs répartis –Clients Logiciel –De développement –Client

4 4 Modèles de données Un modèle de données est un moyen dexpliquer la disposition logique des données et les relations entre les différentes parties de chaque éléments de lensemble. Représentation dune entité : un tableau –Chaque colonne correspond à un champs (rubrique) –Chaque ligne correspond à un individu NomSexeQualitéD. Nais SIMMMr10/02/01

5 5 Architecture à 3 niveaux Interne –Stockage physique des données sur le matériel Niveau conceptuel –Définition logique de la base de données : représentation pour la communauté concernée. –Le DDL (data definition language) permet de décrire les tables et de décrire les champs de chaque table. Certains y ajoutent les droit daccès ou de manipulation. –Le DML (data manipulation language) permet de manipuler les données (remplissage de la base …) Le niveau externe –Concerne les utilisateurs en leur donnant des vues différentes (liste, fiche de saisie…) Indépendance des données –Le système doit préserver lindépendance des données à la fois physiquement (augmentation de la taille des disques par exemple) et logiquement

6 6 Modèle entité association Les données se rapportant à un même concept sont rassemblées dans une entité. Les entités sont reliées entre elles par des associations Exemple : –Dans une application de gestion de dossiers patients on a les entités : Patient Médecin Consultation Patients Consultation Reçoit 0n0n 1 A Médecins 1m1m k0k0 Donne

7 7 Bases de données relationnelles SGBDR –Modèle le plus répandu –Repose dur lalgèbre relationnel SGBD Objet …

8 8 Relation et schéma de relation Domaine : –Ensemble de valeurs que peut prendre une variable –Exemple D1 ensemble des valeurs possible pour le sexe {M,F} D2 ensemble des tailles en cm possibles : –Ensemble continu de[30,230] –Contrainte dintégrité >30 et < 230

9 9 Définition d'une relation Soit des ensembles D1, D2,..., Dn –On définit une relation R sur les ensembles D1, D2,..., Dn comme une partie du produit cartésien des ensembles D1, D2,..., Dn –R (D1, D2,..., Dn) D1 X D2 X... X Dn –R est donc un ensemble de n-uplet (tulpe) tels que d1 D1, d2 D2, dn Dn

10 10 Relation et schéma de relation Nuplet (tulpe) –Est un élément dune relation, noté (d1,d2,…dn) –Cest une ligne –Exemple Relation Personne (nom, sexe, taille) Dupond, M, 185 est un N-uplet de la relation Personne Attribut –Est un identificateur de domaine –Surnom donné à une colonne

11 11 Définitions complémentaires Degré de la relation –C'est le nombre de constituants (Nbre de rubrique, Nbre de colonnes...) Cardinal de la relation –C'est le nombre de n-uplet de la relation (Nbre de fiches, Nbre de lignes du tableau)

12 12 Notion d'identifiant et de clef C'est un constituant ou un ensemble de constituant minimal qui détermine de façon univoque un n-uplet de la relation. Une relation peut comporter plusieurs identifiants. Une clef est un identifiant choisi notamment dans le cadre de son implication dans les associations (liens)

13 13 Exemple de clé dune relation Relation Médicament (N°AMM, DCI, Forme galénique) N°AMM est une clé : deux lignes du tableau ne peuvent pas avoir le même numéro dAMM Médicament(N°AMM, DCI, Forme galénique)

14 14 Contraintes dintégrité Est une assertion qui doit être vrai durant toute la vie de la base de donnée Une base de donnée est dite cohérente si toutes les contraintes dintégrité sont vérifiées Type de contrainte dintégrité –CI su un attribut, exple : contrainte de domaine –CI intrarelation, exple : prixTTC = (qte*prixunitaire*(1+tva)) –CI interrelation, exple CI référentielle

15 15 Schéma de relation Définit une classe de relation par : –n domaines D1,..., Dn –n attributs A1,..., An –Un nom de schéma de relation –Des contraintes d'intégrité Exemple : Fichier des voitures –Voiture(Imat,Marque,Type,Puis,Couleur) –Domaine(Imat) = Chaine de 8 caractères –Domaine(Marque) = [Renault, Ford,...] : liste énumérée –Contrainte d'intégrité Absolue (0 < Puiss < 1200) Relative ( Si Renault 3 < Puis < 16 –Le schéma relationnel d'une base de données est l'ensemble des schémas de relation

16 16 Attention Qu'est-ce qu'un attribut élémentaire –Date de Naiss -> Jour N, Mois N, An N –Adresse (Nom, Adresse) –Adresse ( Nom, N° rue, CP, Ville) –Adresse (Nom, N°, Bis_ter, Type voie, Nom Voie, CP, Cedex, Canton, Arrondissement, Ville, Pays) Conséquence => Possibilité des traitements Le choix est fait en fonction des traitements qui sont envisagés ou de la disponibilité assurée des constituants : –exemple date de Naissance : si on choisit un type « date » que fait-on pour les patient dont le jour ou le mois de naissance sont inconnus ?

17 17 Attention Une information - Plusieurs représentations –N° Téléphone Chaîne de caractères Un réel Deux entiers Un entier long Date (Impossible) Image Choix du type en fonction : –Des contraintes d'intégrité –Des possibilité de calcul –De l'efficacité des recherches –De la place disque

18 18 Représentation interne Schéma de relation –Un fichier ou une table Attributs ou constituants –Les rubriques Domaines –Type de chaque rubrique Contrainte d'intégrité –Filtre de saisie –Procédure de validation

19 19 Notion de tri Soit la table Tri selon un ou plusieurs attribut Tri ascendant/descendant Tri alphabétique / tri numérique Résultat : table trié soit en remplacement soit création dune autre table Tri sur le sexe

20 20 Notion d'index Soit la table Possibilité dindex multiples sur une table A la création de la table on précise les index Index sur le Nom

21 21 Recherche Recherche séquentielle Recherche sur index Notion d'unicité : si un attribut est une clé, le tri sur cette clé permet de vérifier quune valeur de cet attribut nexiste quune seul fois

22 22 Structure du langage MySQL Nombres –Entier 156 –Décimal –Entier négatif- 258 –Décimal négatif-11.5 –Notation scientifique 1.77E

23 23 Structure du langage MySQL Chaînes de caractères « c » « Paris » « Il fait beau » « D\une apostrophe » « \ » » et expressions régulières

24 24 Structure du langage MySQL Date et heure Valeurs hexadécimales Valeur NULL

25 25 Structure du langage MySQL Type de colonnes Type numérique TINYINT : 1 octet => -128 à +127 si UNSIGNED 0 à 255 SMALLINT : 2 octets => à si UNSIGNED 0 à MEDIUMINT : 3 octets INT : 4 octets BIGINT : 8 octets FLOAT : 4 octets DOUBLE : 8 octets DECIMAL cf DOUBLE

26 26 Structure du langage MySQL Type de colonnes Chaînes de caractères CHAR (M) [BINARY] : contient une chaîne de M (1 à 255) caractères (longueur fixe). Insensible à la cassse sauf si BINARY est précisé VARCHAR (M) [BINARY] : contient une chaîne de longueur variable plus courte que M (1 à 255). Insensible à la casse sauf si BINARY TINYBLOB : de 1 à 255 octets, sensible à la casse BLOB : de 1 à octets, sensible à la casse MEDIUMBLOB : de 1 à octets, sensible à la casse LONGBLOB : de 1 à octets, sensible à la casse TINYTEXT : de 1 à 255 octets, insensible à la casse TEXT : de 1 à octets, insensible à la casse MEDIUMTEXT : de 1 à octets, insensible à la casse LONGTEXT : de 1 à octets, insensible à la casse ENUM (« valeur 1», »valeur2 »….) : 1 à valeurs, insensible à la casse SET(« valeur1 », »valeur2 »,….) : de 1 à 64 valeurs, insensible à la casse

27 27 Structure du langage MySQL Type de colonnes Date et heure DATE: entre le 1er janvier 1000 et le 31 décembre 9999 ( ) DATETIME : date et heure :00:00 à :59:59 TIME : HH:MM:SS de –858:59:59 à 838:59:59 TIMESTAMP : timestamp unix en seconde depuis le 1er janvier heure à 2037 YEAR : Année entre 1901 et 2155

28 28 Règles d'intégrité Unicité de clé –Dans la relation, l'attribut clé est souligné, il identifie de manière unique dans la table le n-uplet. Contrainte de référence –Si un même attribut apparaît dans une relation comme clé et dans une autre comme non-clé, toute valeur de l'attribut non-clé doit exister dans l'attribut clé. Malade (NuMal, Nom, Prénom, D_Naiss) Consult(NuMal*, NuCons, Date) Contrainte d'entité –Les valeurs de tout attribut participant à une clé primaire doivent être "non nulles" (valeur nulle

29 29 Vues relationnelles Ce sont des tables virtuelles créées à partir de tables réelles permettant d'avoir une vision particulière de la base de donnée. Elles sont entièrement gérées par le système. Malade(NuMal, Nom, Prénom, D_Naiss) Consult(NuMal*, NuCons*, Date) TTT (NuCons, NuTTT, Nom_Prod) Créer vue Mal_Cons –NuMal, Nom,Nom_Prod –Clés utilisées NuMal, NuCons

30 30 Algèbre relationnel Opérations de base –Union –Différence –Produit cartésien –Projection –sélection –jointure Opérations déduites –Intersection –Division –Jointure naturelle –Jointure externe –Semi-jointure –Complément

31 31 Union Soit 2 relations r(R) et s(S) avec des schémas compatibles lunion de ces 2 relations est lensemble de tous les tulpes qui sont actuellement présents dans r ou dans s. Il ny a pas de tulpes doublon. Le schéma de la relation résultant de lunion est celui de la relation r. Lunion est commutative.

32 32 Intersection Soit 2 relations r(R) et s(S) avec des schémas compatibles lintersection de ces 2 relations est lensemble de tous les tulpes qui sont actuellement présents dans r et dans s. Lintersection est commutative

33 33 1Dupont 2Albert 3Durant Malades2NuMal, Nom 1Dupont 4Albert 3Tartempion Malade = Différence (Malades1, Malades2) 2 Albert 3 Durant Différences Malades1NuMal, Nom Soit 2 relations r(R) et s(S) avec des schémas compatibles la différence de ces 2 relations est lensemble de tous les tulpes qui sont actuellement présents dans r et ne se trouvent pas dans s. La différence nest pas commutative

34 34 Projection Produit une relation réduite aux attributs mentionnés en opérandes (sélection de colonnes de la table, les lignes ayant même valeurs sont dédoublonnées) Malade (Nu, Nom) –1Dupon –2Dupon –3Albert R2 = Projection(Malade,Nom) –Dupon –Albert

35 35 Produit cartésien R1 (Num, Nom) –1A –2B –3C R2 (Dte, Commande) –10L –11M R3 = R1 * R2 –Num,Nom,Dte,Commande –1A10L –1A11M –2B10L –2B11M –3C10L –3C11L

36 36 Sélection ou Restriction Produit une relation de même schéma et ayant pour occurrences les n-uplets vérifiant la condition exprimée (sélection de lignes répondant à une condition). R2=Select (Malade, Nom = Dupon) –1Dupon –2Dupon

37 37 Jointure ou Join Opération sur deux relations R1 et R2 qui produit une relation ayant pour schéma la juxtaposition des relations opérandes et pour occurrences l'ensemble des n-uplets obtenus par concaténation des n-uplets de R1 et R2 vérifiant la condition entre les attributs de R1 et R2. Join peut être obtenu en combinant le produit cartésien des relations à joindre et dune sélection utilisant lexpression de jointure comme expression de sélection –R3 = JOIN(R1,R2,Condition) –R3 = SELECT(PROD(R1,R2),Condition)

38 38 Equijointure ou jointure naturelle Opérateur binaire qui associe 2 relations (qui ne sont pas forcément différentes) sur (tous) leur(s) attribut(s) communs. La jointure est constituées de tous les tulpes résultant de la concaténation des tulpes de la première relation avec ceux de la seconde qui ont des valeurs identiques pour un ensembles communs dattributs X. Exemple :

39 39 Opérations déduites Division –Opération entre deux relations ayant des attributs communs qui produit une relation R3 réduite aux attributs Ai appartenant à R1 mais n'appartenant pas à R2 et ayant comme occurrences des n-uplets qui concaténés à ceux de R2 donne un n-uplet de R1

40 40 Opérations déduites Complément –Opération sur une relation R1, produit une relation R2 de même schéma ayant un ensemble d'occurrences constitué des n-uplets du produit cartésien entre les domaines des attributs de Ai de R1 n'appartenant pas R1. Les domaines de R1 doivent être finis. Jointure externe –Opération entre deux relations qui produit une relation R3 ayant pour schéma l'union de ceux des relations opérandes et pour occurrences l'ensemble des n-uplets obtenus par jointure de R1 et R2 et ajout des n- uplets de R1 et R2 ne participant pas à la jointure avec des valeurs nulles pour les attributs de l'autre relation. Semi jointure –Opération entre deux relations R1 et R2 qui produit une relation de même schéma que R1 ayant un ensemble d'occurrences formés des n- uplets de R1 participant à la jointure de R1 et R2.

41 41 Propriétés des opérations relationnelles Commutativité des jointures, des unions, des intersections Associativité des jointures, des unions, des intersections Regroupement des sélections –* R = SELECT (SELECT(R1,Aj="a"), Ak = "b") R = SELECT (R1,Aj="a" et Ak ="b") –* R = UNION (SELECT(R1,Aj="a"), SELECT(R1, Ak = "b")) R = SELECT (R1,Aj="a" ou Ak ="b") Combinaisons des sélections et des projections Combinaisons des sélections et des jointures Combinaisons des projections et des jointures Combinaisons des unions et des projections

42 42 Exemple VIN (Nvin, Cru, Mill, Degré) BUV(NBuv, NomBuv, Prebuv, Adrbuv, Typebuv) Cons(Nvin*, Nbuv*, Date,Qté) Quels sont les numéros des vins, les crus ainsi que les millésimes des vins consommés par les buveurs de Lyon dont la quantité est supérieure à 100 ? R1 = Join(BUV,CONS) R2 = SELECT(R1,Adrbuv = "Lyon" et Qté > 100) R3 = JOIN (VIN, R2) RESULT = PROJECT(R3,Nvin,Cru,Mill) ou R1 = SELECT(BUV,Adrbuv = "Lyon") R2 = SELECT (CONS, Qté > 100) R3 = JOIN( R1, R2) R4 = PROJECT (R3, Nvin) R5 = PROJECT (Vin,NVin,CRU,Mill) RESULT = JOIN (R4,R5)

43 43 Langage SQL Langage informatique standard dans les bases de données relationnelles. 1ére implémentation 1979 Langage déclaratif non procédural 2 sous langages –DDL –DML Soit interactif soit intégré : les instructions font alors partie dun programme écrit dans un langage hôte (C++…)

44 44 Conventions Les noms doivent comporter de 1 à 30 caractères (parfois 64). Les noms de base de données sont souvent limités à 8. Les noms doivent commencer par une lettre minuscule ou majuscule et comporter combinaison de lettre et chiffre et signe souligné

45 45 Structure des instructions SQL Toute instruction SQL est une combinaison dune ou plusieurs clauses. Les clauses sont introduites par des mots- clés Exemple : –SELECT nom, age, sexe FROM patient WHERE sexe =M ORDER BY nom ASC, age DESC

46 46 Création de table CREATE TABLE nom_table ( Nom_col_1 Type_donnée_1 [contrainte] Nom_col_2 Type_donnée_2 [contrainte] ….. Nom_col_n Type_donnée_n [contrainte] );

47 47 Implication des contraintes A chaque foi quune contrainte est définie, on doit lui donner un nom. Elle est soit nommée par lutilisateur soit nommée en interne par le SGBD (contrainte non nommée). Les contraintes non nommées ne doivent pas être précédée de la clause CONSTRAINT Conventions de suffixe pour les contraintes nommée : –PK : primary key –FK : foreign key (clé extérieur) –NN : Not NULL –U : unique PK implique NN et U

48 48 Exemple CREATE TABLE Carte_etud (NOMVARCHAR2(40), NUM_CarteVARCHAR2(15) PRIMARY KEY, VALEUR_DEPNUMBER(4,2), NUM_PINCHAR(12) UNIQUE, ); CREATE TABLE Carte_etud (NOMVARCHAR2(40), NUM_CarteVARCHAR2(15) CONTAINT NUM_CARTE-PK PRIMARY KEY, VALEUR_DEPNUMBER(4,2), NUM_PINCHAR(12) UNIQUE, );

49 49 Insertion denregistrements INSERT INTO nom_table (col_1, col_2,…., col_n) VALUES (val_1, val_2, ….., val_n); COMMIT; est la dernière commande qui permet de rendre permanent les changements dans la table.

50 50 Suppression, modification denregistrement DELETE FROM nom-table WHERE condition; UPDATE nom_table SET col_1 = nouvelle valeur, col_2 = nouvelle valeur …. WHERE condition;

51 51 Sélection, projection et jointure SELECT col_1, col_2,…, col_n FROM table_1,…, table_n [WHERE condition] [ORDER BY nom_col [ASC | DESC] [nom_col [ASC | DESC] ]; Opérations avec SQL –UNION : select * from tab_1 UNION select * FROM tab_2 –INTERSECT –MINUS

52 52 Dépendances fonctionnelles Dans de nombreuses bases de données, le contrôle de la redondance et la préservation de la cohérence des données sont les plus importants auxquels est confronté le concepteur et ladministrateur. La redondance survient quand une information est stockée dans plusieurs endroits. Si ce contenu est modifié, il faut le modifier au niveau de chacune des copies. Si certaines, mais pas toutes les copies, sont modifiées les données sont incohérentes. Pour éviter ses écueils, cela passe par létude des dépendances fonctionnelles.

53 53 Dépendances fonctionnelles Les contraintes se classent en deux groupes –Les contraintes sémantiques : dépendent de la signification ou de la compréhension des attributs dune relation Dans une relation Personnel(Nom, Age, Salaire) aucun âge ou salaire ne peut être négatif –Les contraintes daccord ou de concordance ne dépendent pas des valeurs particulières dun attribut dun tulpe mais du fait que les tulpes qui acceptent certains attributs acceptent ou non les valeurs de certains de leurs autres attributs Dans une relation Personnel (employé, âge, salaire, service, chef de service) si un employé ne travaille que dans un service et que chaque service na quun chef de service alors deux tulpes ayant la même valeur dans la colonne chef de service on doit avoir la même valeur dans service. On a une dépendance fonctionnelles Les dépendances fonctionnelles sont les plus importante contraintes de concordance ou dagrément.

54 54 Dépendances fonctionnelles Définition : –Soit une relation r(R) et deux ensemble des ses attributs A et B. Les attributs s( A ) détermine(nt) fonctionnellement le(s) attribut(s) de B relativement à R si et seulement si pour deux tulpes t1 et t2 de r, à chaque fois que t1(A) = t2(A) alors t1(B) = t2(B) –On note A->B –A est appelé le déterminant, B est appelé la partie droite de la dépendance fonctionnelle –A et B ne sont pas nécessaire des attributs uniques mais des ensembles dattributs. Si A est composé dun seul attribut on parle de dépendance fonctionnelle simple –A -#->B semploie pour indiquer que A ne détermine pas fonctionnellement B.

55 55 Dépendance fonctionnelles (DF) Exemple : –La DF Continent->nom nest pas satisfaite –La DF Nom->Longueur est satisfaite On ne peut déterminer un DF quen fonction du de la signification des attributs. Ils ne faut pas les déduire à partir du contenu courant dune relation.

56 56 Normalisation des relations Ensemble de règles introduites dans le modèle dès son origine ayant pour but de garantir à la base de données toute sa cohérence lors de manipulation comme l'insertion, la mise à jour, la suppression. La normalisation évite les redondances de données. Six formes normales (FN) (les trois premières sont les plus importantes) numérotées de 1 à 5 avec une variante pour la troisième. Processus important dans la phase de conception. La normalisation permet de définir des relations de telle sortes qu'elles soient l'image d'objets du monde réel en permettant une affectation correcte des attributs dans différentes tables. C'est un outil puissant pour la définition sémantique des relations. Le FN ont été sous forme de règles de construction dans la plupart des méthodes de conception comme MERISE, IDA, AXIAL, REMORA. Normaliser une relation c'est la représenter sous une forme canonique respectant certains critères assurant la définition sémantique de la structure de la BD et l'intégrité des données. Elles a comme conséquence la décomposition de la relation non normalisée en un certain nombre d'autres relations. Les FN sont dépendantes ainsi une relation ne peut être en 2 FN que si elle est en 1 FN. A contrario une relation en 5 FN l'est en 4, 3, 2, 1 FN.

57 57 Dépendances Une dépendance est une contrainte exprimée dans une règle que doivent vérifier les données pour que la base soit dans un état cohérent par rapport à la réalité : une consultation médicale donnée concerne un patient et un seul. Un patient peut avoir plusieurs consultations. Dépendances fonctionnelles (DF) : Elles permettent de définir les formes normales de 1 à 3 avec sa variante (Boyce-Codd ou BCNF). Dépendances multivaluées (DM) : Elles permettent de définir la 4 FN. Dépendances de jointure (DJ) : Elles permettent de définir la 5 FN.

58 58 Dépendances fonctionnelles (DF) Il existe une dépendance fonctionnelle entre deux attributs A et B d'une relation R si à toute valeur de A on ne peut associer à tout instant qu'une et une seule valeur de B. Définition formelle –R(X,Y,Z) schéma de relation avec Z éventuellement vide. X->Y : X détermine Y ou Y dépend fonctionnellement de X dans R si pour tout tulpe, y=y A est l'attribut source et B est l'attribut but : A -> B –NuPatient -> Nom est une DF –Nom ->NuPatient nest pas une DF Si un attribut (ou un groupe d'attributs) détermine par DF tous les autres attributs de la même relation, c'est une clé de la relation.

59 59 Première forme normale Une relation est en première forme normale si : –Elle possède une clé –Tous ses attributs sont atomiques : c'est à dire n'ayant à un instant donné qu'une seule valeur ou ne regroupant pas un ensemble de valeurs. Un attribut ne doit pas être lui même une relation. MALADE (NuMal, Nom, Caractéristiques, DteCons) 1 Dupond Masc,90Kg 10/10;20/10;30/11/93 Caractéristiques n'est pas un attribut atomique DteCons n'est pas atomique car il regroupe plusieurs valeurs.

60 60 Première forme normale R est en première forme normale (1NF) si : –Tout attribut hors clé dépend fonctionnellement de la clé –Ou si : Elle possède une clé et tous ses attributs sont atomique, cest- à-dire que tous les attributs sont monovalués, ce qui exclut les attributs dont les valeurs seraient des ensembles ou des listes. –Exemple : Patient (N°patient,Nom de famille, date de Naissance, sexe) est 1NF Patient((N°patient,Nom de famille, date de Naissance, sexe, date de consultation) nest pas 1NF

61 61 Deuxième forme normale Une relation est en deuxième FN si : –Elle est en 1FN –Toutes les DF sont élémentaires par rapport à la clé : tout attribut hors clé ne dépend pas dune partie de la clé ou encore si : –pour toute variable n'appartenant pas à une clé de cette relation, chaque clé est minimale. TRAITEMENT (TypTT,NuMal,Salle) –Si salle dépend uniquement du type de traitement (Radiothérapie, Bloc opératoire) indépendamment du NuMal, il existe une dépendance non élémentaire. La relation TRAITEMENT doit être éclatée en deux relations en 2 FN. –R1(TypTT,NuMal) –R2(TypTT,Salle) Exercice –Mettre en deuxième forme normale Patient (N°patient, Date consultation, Nom) Solution : Nom dépend dune partie de la clé N°patient->Nom

62 62 Deuxième forme normale Le 2NF permet déliminer certaines redondances –Patient (N°patient,Nom) –Consultation (N°patient*,Date consultation, ordonnance) Mais il peut rester des redondances … Redondance de lattribut capacité

63 63 Troisième forme normale Une relation est en troisième forme normale si : –Elle est en 2 FN –Tout attribut hors clé est en DF directe par rapport à la clé. ou encore si: –R est en 2NF –Pour toutes variables n'appartenant pas à la clé de cette relation, il n'existe pas un ensemble de variables hors clé qui soit une clé pour la variable considérée. –TRAITEMENT(TypTT,NuRésa,NuMal,NomMal) NuMal est une clé pour NomMal R1(TypTT,NuRésa*) R2(NuRésa,NuMal*) R3(NuMal,Nom) Dans lexemple précédant : –Constructeur et capacité ne font pas partie de la clé et dépendent de lattribut type on décompose en Avion (N°avion,Type*,Propriétaire) Modèle(Type, constructeur, capacité)

64 64 Troisième forme normale La 3NF permet déliminer des redondances, dues à des dépendances transitives entre attributs mais elle ne suffit pas parfois à éliminer toutes les redondances : –Codepostal (Code, Ville, Rue) –Les DF sont Code->Ville et Ville,Rue -> Code –Cette relation est en 3NF puisque aucun attribut non clé ne dépend dune partie de la clé ou dun attribut non clé mais il y a des redondances : CodeVilleRue 54505VandoeuvreAiguillette 54505VandoeuvreGal Leclerc

65 65 Forme de Boyce-Codd (BCNF) Une relation est en BCNF si : –Elle est en 3 FN –Tout attribut non clé de la relation n'est pas source de DF vers une partie de la clé. Ou –Les seules DF élémentaires quelle comporte sont celle où une clé détermine un attribut. Dans lexemple précédant : CodeVille (Code*, Ville) CodeRue (Code, Rue) Sont en BCNF, mais perte de la DF Ville,Rue ->Code Toute relation a une décomposition en BCNF sans perte dinformation, par contre, une décomposition en BCNF ne préserve pas généralement les DF.

66 66 Exemple Soient 2 représentation équivalentes –R0 (N°Commande, N°Client, Date, Nom, N°Repres, Zone) –Et –R11 (N°Commande, Dte, N°Cli*) en 3NF –R12 (N°Client, Nom, N°Repres*) en 3NF –R13 (N°Repres, Zone) en 3NF Si lon a : –10 représentants, 100 clients par représentants et 100 commandes par clients. –La forme R0 conduit à 100*100*6 = données –R11 à 100 * 100 * 3 = –R12 à 100 *10*3 = –R13 à 10 * 2= 20 –Soit données

67 67 Méthode de normalisation Il est souhaitable quun schéma relationnel ne comporte que des relations en 3NF ou BCNF. Des algorithmes de constructions permettent dobtenir de tels schémas. Ils sont de eux catégories : –La méthode de décomposition : Elle se base sur la décomposition de relations en utilisant les DF entre les données. Cette méthode conduit à des relations en 3NF ou BCNF. Il y a 2 problèmes : –Identification des DF et leurs exhaustivité –Le résultat dépend de lordre dapplication des décompositions et peut ne pas préserver les DF –La méthode synthétique Elle se base sur la représentation des DF en terme de graphes (graphe et leur couverture)

68 68 Méthode synthétique Point de départ –Lensemble de tous les attributs –Lensemble des DF entre attributs qui sont représentées dans un graphe avec comme nœud un attribut et comme arc une DF Ce quil faut faire –Trouver la couverture minimale du graphe cest-à-dire éliminer les circuits ainsi que les DF non élémentaires et non directes Résultat –Une collection de relation en 3NF. Chaque schéma est obtenu en prenant comme : Clé une source de DF Attributs, les buts des DF correspondant

69 69 Exemple Service dimmatriculation de voitures dans une préfecture –Soient les DF suivantes : N°Immat -> Couleur, Type, Puissance, Marque N°INSEE -> Nom, Prénom, Adresse N°Immat -> N°INSEE Type -> Marque, Puissance –On crée le graphe : N°INSEEN°ImmatType Nom Prénom Adresse Couleur Puissance Marque On supprime les transitivités On obtient : Personne (N°INSEE, Nom, Prénom, Adresse) Voiture (N°Immat, Couleur, Type*, N°INSEE*) Types (Type, Puissance, Marque)

70 70 Passage dun schéma entité/association à un schéma relationnel Transformer le schéma E/A en une collection de relations quelconques Normaliser les relations soit par la méthode synthétique soit par la méthode de décomposition ou en cherchant la clé minimale parmi les attributs

71 71 Dépendances multivaluées Il existe une dépendance multivaluée entre les attributs A, B et C d'une relation R si toute valeur de A on associe à tout instant plusieurs valeurs de B et C telles que : –Si il existe (a,b1,c1) et (a, b2, c2) alors il existe (a, b1, c2) et (a, b1, c1) Elles mènent aux autres formes normales

72 72 Exercice Dans le cadre de la mise en place du PMSI, vous devez réaliser une base de données permettant pour chaque séjour d'un malade dans une unité médicale de traiter les éléments suivants : DteEnt, MEnt, DteSort,MSort,DP, 0 à n DS, 0 à m Actes, 0 à n Médecins TT)


Télécharger ppt "1 C1 - Base de Données F. KOHLER. 2 Le Modèle relationnel Basé sur le concept de relation Formulé par EF Codd 1970 Chaque phénomène peut être décrit par."

Présentations similaires


Annonces Google