Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Bases de Données Relationnelles
(à partir du cours de G.Cécé ) Samir Chouali - 1 -
2
Bibliographie « Conception et architecture des Bases de Données», R. Elmasri, S. Navathe et D. Serain, Pearson Education, 2004. « Des Bases de Données à l'Internet », P. Mathieu, Vuibert, « Bases de Données Objet & Relationnel », G. Gardarin, Eyrolles, 1999. - 2 -
3
Plan Généralités Modélisation Contraintes d’intégrité
Définitions Propriétés des SGBD Modélisation Le Modèle Conceptuel de Données (MCD) Le Modèle Relationnel (MR) Passage du MCD au Modèle Relationnel Contraintes d’intégrité Algèbre relationnelle Langage de requêtes SQL Normalisation des relations - 3 -
4
Définitions Base de données :
Ensemble de données qui modélisent une partie du monde réel pour une application informatique. Système de Gestion de Base de Données (SGBD) : Outil qui permet d’insérer, modifier, retirer et rechercher des données ; le tout de façon efficace. Interface entre les utilisateurs et l’information brute Présente les informations dans une forme exploitable - 4 -
5
Les Trois Couches d’un SGBD
Système de gestion de fichiers : gère le stockage physique des informations (dépend du matériel). SGBD interne : assemble et place les données, gère les liens entre les données et y garantit un accès rapide. SGBD externe : s’occupe de la présentation et de la manipulation des données. Permet l’utilisation de langages de requêtes élaborés et d’outils de présentation adaptés. - 5 -
6
Propriétés des SGBD (1) Indépendance physique Indépendance logique
transparence de la gestion des données au niveau physique. Indépendance logique chacun possède sa propre vue des données. Manipulable par des non informaticiens utilisation de langages non procéduraux (pas de programmation). - 6 -
7
Propriétés des SGBD (2) Accès aux données efficaces
optimisation des accès aux données. Administration centralisées des données outils de sauvegarde des données, de réplication, ... Non redondance des données. évite la duplication des informations ce qui facilite la gestion. Cohérence des données gestion automatique des contraintes d’intégrité. - 7 -
8
Propriétés des SGBD (3) Partage des données Sécurité des données
plusieurs personnes peuvent accéder aux données simultanément tout en conservant l’intégrité de la base. Sécurité des données protection contre les accès non autorisés. tolérance aux pannes. - 8 -
9
Types de Bases de Données (1)
Les bases hiérarchiques Les bases réseaux (CODASYL) Les bases relationnelles données sous formes de tables basées sur l’algèbre relationnelle et un langage, de manipulation, déclaratif (SQL). Les bases déductives données sous formes de tables (prédicats), le langage d’interrogation est basé sur le calcul des prédicats et la logique du premier ordre. - 9 -
10
Types de Bases de Données (2)
Les bases objets données représentées sous forme d’instances de classes hiérarchisées. 75% des SGBD sont des bases relationnelles Les bases objets gagnent du terrain - 10 -
11
4. Le marché des SGBD Marché en 2003 : 7 milliards de dollars
Aujourd’hui 3 leaders : IBM, Oracle, Microsoft source: Mai 2004
12
Modèle Conceptuel de Données (MCD)
Modélisation Modèle Conceptuel de Données (MCD) - 12 -
13
Modélisation Réalité perçue Modélisation conceptuelle
Modèle entité association Transformation dans un modèle supporté par un SGBD Modèle relationnel A IMPRIMER Définition de la structure de données de la base SQL - 13 -
14
Modélisation Le résultat de l’analyse est le Modèle Conceptuel de Données (MCD) qui décrit la future base de données à l’aide d’entités et d’associations. Employé Numéro d’employé Nom Prénom Date d’embauche Fonction Rémunération participe Tâche Nom de la tâche Coût de la tâche 0,n 1,n Date début Date fin A IMPRIMER - 14 -
15
Vocabulaire (1) Entité : Propriété :
représentation d’un objet, matériel ou immatériel (ex. : Étudiant, Voiture, Vin, etc...). une entité est composée de propriétés. Propriété : donnée élémentaire et indécomposable (ex. : age, note, nom, adresse, date de naissance, etc...). - 15 -
16
Vocabulaire (2) Association Dimension Cardinalité
représentation d’un lien entre différentes entités. des propriétés peuvent être attachées à une association. Dimension nombre d’entités intervenants dans l’association (1 : association réflexive; 2 : association binaire; n : association n-aire) Cardinalité caractérise le lien entre une entité et une association. Elle est constituée d’une borne minimale et d’une borne maximale. - 16 -
17
Vocabulaire (3) Cardinalité (suite) Identifiant
Nombre de fois qu’une occurrence de l’entité participe aux occurrences de l’association. Identifiant une ou plusieurs propriétés d’une entité telles qu’à chaque valeur de l’identifiant correspond une et une seule occurrence de l’entité. l’identifiant d’une association est constitué de la réunion des identifiants des entités qui participent à l’association. - 17 -
18
Exemple de MCD encadre Employé Numéro d’employé Nom Prénom
a pour chef 0,1 0,n Employé Numéro d’employé Nom Prénom Date d’embauche Fonction Rémunération est chef de Projet Numéro du projet Thème du projet Titre du projet Date de début Date de fin coordonne 0,n 1,1 A IMPRIMER 1,n 0,n participe Date début Date fin Tâche Nom de la tâche Coût de la tâche Constitué_de 1,n 1,1 - 18 -
19
Modèle Conceptuel des Données
Exemple "KaafKaaf" PARTIE 1 La société "KaafKaaf" désire informatiser son système de facturation. Les factures devraient se présenter de la façon suivante Créez un MCD, qui permet de modéliser correctement le système d'information nécessaire, sachant que: Un client peut bien sûr recevoir plusieurs factures, mais il est uniquement considéré comme tel à partir du moment où il reçoit sa première facture. Une facture concerne un et un seul client.
20
Modèle Conceptuel des Données
Remarque: Bien que le numéro du client n'apparaisse pas en tant que tel sur la facture, il est préférable d'ajouter cette propriété artificielle à l'entité Client, et de la définir comme identifiant de cette entité. Cela nous empêche de devoir définir un identifiant composé de trop de propriétés.
21
Modèle Conceptuel des Données
PARTIE 2 Il s'agit d'étendre le MCD de la partie 1. Le responsable de la facturation de la société désire rendre les factures plus informatives. Comme un client peut acheter plusieurs articles différents en même temps, la facture devrait indiquer pour chaque article le numéro , un libellé, le prix unitaire, la quantité vendue et le prix total pour ce type d'article. Voici l'aspect que la facture devrait avoir: Proposez un nouveau MCD qui reflète ces modifications, en respectant que: Tous les articles disponibles sont stockés (p.ex. No=234 Libellé="Marteau" PU=470 Luf.). Même si un article n'est pas encore considéré par une facture, il existe dans le système d'information.
22
Modèle Conceptuel des Données
Remarques: L'entité Facture ne contient plus la propriété Montant. Il existe une règle générale de conception qui dit: Aucune propriété qui peut être calculée à partir d'autres propriétés existantes, ne devra être stockée dans le MCD. Pour la même raison, on n'a pas besoin de modéliser explicitement le prix à payer pour l'achat d'une quantité d'articles donnés. Le prix pour chaque article figurant sur la facture peut être calculé à partir du prix unitaire et de la quantité
23
Modèle Conceptuel des Données
Exemple "Gestion d'école" PARTIE 1 Dans une école, on veut informatiser le système d'information qui gère les classes. Elaborez un MCD sachant que: Un élève est caractérisé par son no. matricule, son nom et prénom, ainsi que sa date de naissance. Une classe est caractérisée par le nom de la classe et par une indication du cycle. Il faudra prévoir de connaître la fréquentation des classes des élèves sur plusieurs années consécutives. Un élève enregistré dans le système fréquente au moins une classe au cours des années.
24
Modèle Conceptuel des Données
PARTIE 2 Il s'agit maintenant de concevoir une extension au MCD précédent qui permet de représenter la situation suivante: La direction de l'école désire également saisir tous les professeurs dans le système d'information. Un professeur est caractérisé par un code interne unique , son nom et prénom et la matière qu'il enseigne. Nous supposons que chaque professeur enseigne une seule matière. Modélisez le fait que chaque classe est enseignée chaque année par un ou plusieurs enseignants. Un enseignant peut bien sûr donner des cours dans plusieurs classes, mais peut également ne pas donner des cours pendant une ou plusieurs années.
25
Exercices Exercice 1 Un magasin de sport a besoin de stocker ses informations principales dans une base de données. Il s'agit de stocker toutes les informations relatives à ses produits, ses clients et ses fournisseurs. Il souhaite que l'organisation soit facilitée par le regroupement des produits en différentes catégories. Et il souhaite à partir de là pouvoir facilement consulter ses stocks, la liste de ses meilleurs clients, le top 10 de ses produits vendus. Créer le MCD correspondant. - 25 -
26
Exercices Exercice 2 Une agence immobilière a besoin d'une base de données pour gérer ses locations. Il faut entre autres qu'elle soit capable de cibler les logements pouvant convenir à un client donné. Elle souhaite également pouvoir facilement dresser la facture d'un client donné, savoir ce qu'elle doit verser à un propriétaire donné, ou calculer les primes de ses agents. Créer le MCD correspondant. - 26 -
27
Le Modèle Relationnel - 27 -
28
Modèle Relationnel Les SGBD relationnels
organisent les données en tables sont basés sur l’algèbre relationnelle (théorie des ensembles). - 28 -
29
Exemple A IMPRIMER - 29 -
30
Domaines Exemples ENTIER REEL CHAINES DE CARACTERES
SALAIRE = { } COULEUR= {BLEU, BLANC, ROUGE} POINT = {(X:REEL,Y:REEL)} TRIANGLE = {(P1:POINT, P2:POINT, P3:POINT)} - 30 -
31
Produit Cartésien Le produit cartésien D1x D2x ... x Dn est l'ensemble des tuples (n-uplets) : <V1,V2, …, Vn> tel que Vi Di Exemple D1 = {Bleu, Blanc, Rouge} D2 = {Vrai, Faux} Bleu Vrai Bleu Faux Blanc Vrai Blanc Faux Rouge Vrai Rouge Faux - 31 -
32
Relation (ou Table) Sous-ensemble du produit cartésien d'une liste de domaines Une relation est caractérisée par un nom Exemple D1 = COULEUR D2 = BOOLEEN CoulVins Coul Choix Bleu Faux Blanc Vrai Rouge Vrai - 32 - 5
33
Exemple de Relation CHENAS 1983 BEAUJOLAIS ROUGE
VINS CRU MILL REGION COULEUR CHENAS BEAUJOLAIS ROUGE TOKAY ALSACE BLANC TAVEL RHONE ROSE CHABLIS BOURGOGNE BLANC ST-EMILION BORDELAIS ROUGE - 33 - 8
34
Attribut Vision tabulaire du relationnel Attribut
Une relation est une table à deux dimensions Une ligne est un tuple Un nom est associé à chaque colonne afin de la repérer autrement que par sa position Attribut nom donné à une colonne d'une relation prend ses valeurs dans un domaine Faire référence au transparent de l’Exemple (22) - 34 - 6
35
Clé Groupe d'attributs minimum qui détermine un tuple unique dans une relation Exemples {CRU,MILLESIME} dans VINS NSS dans PERSONNE Clé étrangère Groupe d'attributs formant la clé d’une autre relation - 35 - 9
36
Schéma D’une relation Exemple Schéma d'une bd relationnelle
Nom de la relation, liste des attributs avec domaines et clés de la relation Exemple VINS(NV :entier, CRU :texte, MILL :entier, DEGRE :réel, REGION :texte) Par convention, la clé primaire est soulignée Schéma d'une bd relationnelle C’est l'ensemble des schémas des relations composantes - 36 - 10
37
Exemple de Schéma Exemple BUVEURS (NB, NOM, PRENOM, TYPE)
VINS (NV, CRU, MILL, DEGRE) ABUS (NB, NV, DATE, QUANTITE) Clés étrangères ABUS.NV fait référence à VINS.NV ABUS.NB fait référence à BUVEURS.NB - 37 - 12
38
Diagramme des Liens - 38 - BUVEURS NB NOM PRENOM TYPE VINS NV CRU
MILL. DEGRE ABUS NB NV DATE QUANTITE - 38 - 13
39
Vocabulaire comparé - 39 -
40
Du MCD vers les Tables Relationnelles
- 40 -
41
Transformation Traitement des entités Traitement des associations
Chaque entité devient une table. Chaque propriété devient une colonne de cette table. L’identifiant d’une entité devient la clé primaire de la table correspondante. Traitement des associations Le traitement des associations dépend des cardinalités des ces associations. - 41 -
42
Association binaire - 42 -
* : signifie n ’importe quoi, n ’importe quelle valeur (cf. Unix). - 42 -
43
Exemple : (*,1) - (*,*) De : Vin Producteur Recolte NoVin Cru Mill.
1,1 1,n Recolte NoVin Cru Mill. Degré NoP Nom Région Quantite À : A IMPRIMER - 43 -
44
Association n-aires création d’une nouvelle table dont la clé est au moins composée des identifiants des différentes entités. les propriétés de cette association migrent aussi vers la nouvelle table. - 44 -
45
Exemple De : Prof NoProf Nom Cours NoCours Intitulé Enseigne À : 1,n
VolumeHoraire 1,n À : A IMPRIMER - 45 -
46
Exercice encadre Employé Numéro d’employé Nom Prénom Date d’embauche
a pour chef 0,1 0,n Employé Numéro d’employé Nom Prénom Date d’embauche Fonction Rémunération est chef de Projet Numéro du projet Thème du projet Titre du projet Date de début Date de fin coordonne 0,n 1,1 A IMPRIMER 1,n 0,n participe Date début Date fin Tâche Nom de la tâche Coût de la tâche Constitué_de 1,n 1,1 - 46 -
47
Contraintes - 47 -
48
Contraintes d’Intégrité
Une contrainte d’intégrité est une assertion (c-à-d une propriété) qui doit être vérifiée par les données de la base Si une contrainte d’intégrité n’est pas respectée lors d’une modification des données, la modification est rejetée et l’utilisateur est averti - 48 -
49
Contraintes de Clé Tous les constituants d’une clé primaire doivent être renseignés. Il ne peuvent prendre la valeur Null. Deux enregistrements différents ne peuvent avoir de valeurs de clé identiques. - 49 -
50
Contraintes de Types de Données
Permet de spécifier le domaine de validité des valeurs des attributs. Exemples : une note doit être comprise entre 0 et 20. la date d’emprunt d’un livre est antérieure à sa date de retour - 50 -
51
Contraintes d’Intégrité Référentielle
BUVEURS NB NOM PRENOM TYPE VINS NV CRU MILL. DEGRE On lance ici l’exemple de la base de donnees 1 (emorunts de livre), exportation de cles. ABUS NB NV DATE QUANTITE - 51 - 13
52
Contraintes d’Intégrité Référentielle
Un constituant d’une clé étrangère doit limiter ses valeurs à l’ensemble des valeurs présentes dans la table d’origine de la clé. Si un enregistrement d’une table est supprimé, tous les enregistrements des autres tables faisant référence à cet enregistrement, à travers des clés étrangères, doivent normalement être supprimés. - 52 -
53
Algèbre Relationnelle
- 53 -
54
Concepts Manipulatoires
Un ensemble d'opérations formelles Ces opérations permettent d'exprimer toutes les requêtes sous forme d'expressions algébriques Elles sont la base du langage SQL (SQL est un paraphrasage en anglais des expressions algébriques) - 54 - 16
55
Opérations Ensemblistes
Opération ensembliste pour des relations de même schéma UNION notée INTERSECTION notée DIFFERENCE notée — ou \ - 55 - 17
56
Projection Élimination des attributs non désirés et suppression des tuples en double notée A1,A2,...Ap (R) VINS Cru Mill Région Qualité VOLNAY BOURGOGNE A VOLNAY BOURGOGNE B CHENAS BEAUJOLAIS A JULIENAS BEAUJOLAIS C Cru,Région Cru,Région(VINS) Cru Région VOLNAY BOURGOGNE CHENAS BEAUJOLAIS JULIENAS BEAUJOLAIS - 56 - 18
57
Restriction Sélection des tuples de R satisfaisant un critère Q
notée Q(R) Q est le critère de qualification de la forme : Ai Valeur avec : { =, <, >=, >, <=} Il est possible de réaliser des "ou" (union) et des "et" (intersection) de critères simples - 57 - 19
58
Exemple de Restriction
VINS Cru Mill Région Qualité VOLNAY BOURGOGNE A VOLNAY BOURGOGNE B CHENAS BEAUJOLAIS A JULIENAS BEAUJOLAIS C MILL>1983 VINS Cru Mill Région Qualité JULIENAS BEAUJOLAIS C CRU="VOLNAY" CRU="CHENAS" - 58 - 20
59
Produit Cartésien Soient R1 et R2 deux relations. Le produit cartésien R3 = R1 x R2 est une relation qui a pour ensemble d'attributs l'union de ceux de R1 et de ceux de R2 et pour tuples toutes les combinaisons possibles des lignes de R1 et de lignes de R2. - 59 -
60
Exemple de Produit Cartésien
- 60 -
61
Jointure Soient R(A1, …, An) et S(B1, …, Bm) deux relations et Q un critère impliquant les attributs Ai et Bj. La jointure de R et de S suivant le critère Q est l’ensemble des éléments du produits cartésien RxS satisfaisant le critère Q Elle se note : R S Q - 61 -
62
Exemple de Jointure B < D - 62 -
63
Jointures Particulières
L’équi-jointure est une jointure avec pour critère l’égalité de certaines colonnes. La jointure naturelle est une equi-jointure où le critère est l’égalité entre colonnes de même nom, suivie de la projection qui ne conserve qu’une colonne par nom. - 63 -
64
Exemple de Jointure Naturelle
VINS Cru Mill Qualité VOLNAY A VOLNAY B CHABLIS A JULIENAS C LOCALISATION Cru Région VOLNAY Bourgogne CHABLIS Bourgogne CHABLIS Californie VINSREG Cru Mill Qualité Région VOLNAY A Bourgogne VOLNAY B Bourgogne CHABLIS A Bourgogne CHABLIS A Californie - 64 - 22
65
Utilisation Pratique Prof NoProf Nom Cours NoCours Intitulé Enseigne
VolumeHoraire 0,n - 65 -
66
Utilisation Pratique (suite)
Tables de l’exemple : Jointure naturelle : Projection, (Nom, Intitule, VolumeHoraire) puis renommage des colonnes : - 66 -
67
Structured Query Language
(SQL) - 67 -
68
Définition SQL (Structured Query Language) est un langage de définition et de manipulation de bases de données relationnelles. - 68 -
69
Les Trois Niveaux DDL (Data Definition Language)
permet de créer, modifier, supprimer les tables DML (Data Manipulation Language) permet de manipuler les données contenues dans les tables (sélection, ajout, modification, suppression) DCL (Data Control Language) permet de gérer les accès des utilisateurs aux tables - 69 -
70
Principaux ordres SQL - 70 -
71
Tables des exemples Fournisseur Produit Commande - 71 -
72
Sélection simple (1) ; SELECT DISTINCT design FROM Produit ;
WHERE prix > 2000 ; - 72 -
73
Sélection simple (2) ; SELECT DISTINCT design, prix FROM Produit ;
- 73 -
74
Sélection simple ordonnée
Présentation SELECT DISTINCT design, couleur FROM Produit WHERE couleur IN ("rouge", "vert") ORDER BY design DESC; SELECT DISTINCT design AS Nom du produit FROM Produit WHERE couleur IN ("rouge", "vert") ORDER BY design ASC; - 74 -
75
Jointure Produit cartésien Jointure
« Donner toutes les informations concernant les commandes » SELECT * FROM Produit, Commande, Fournisseur ; SELECT * FROM Produit, Commande, Fournisseur WHERE Produit.pno = Commande.pno AND Fournisseur.fno = Commande.fno; - 75 -
76
Jointure Jointure (résultat)
SELECT * FROM Produit, Commande, Fournisseur WHERE Produit.pno = Commande.pno AND Fournisseur.fno = Commande.fno; - 76 -
77
Jointure Jointure - projection
SELECT cno, design, nom AS Nom fournisseur, qute FROM Produit, Commande, Fournisseur WHERE Produit.pno = Commande.pno AND Fournisseur.fno = Commande.fno; - 77 -
78
Calcul Jointure - projection - calcul
SELECT no, design, nom AS Nom fournisseur, prix, qute, prix*qute AS Total FROM Produit, Commande, Fournisseur WHERE Produit.pno = Commande.pno AND Fournisseur.fno = Commande.fno; - 78 -
79
Sous requête Question liste des numéros de fournisseurs livrant au moins un produit en quantité supérieure à chacun des produits livrés par le fournisseur 19 SELECT fno FROM Commande WHERE qute > ALL (SELECT qute FROM Commande WHERE fno = 19) - 79 -
80
Fonctions statistiques
- 80 -
81
Exemples d'agrégats (Regroupements)
VINS CRU MILL QUANTITE CHABLIS VOLNAY MEDOC 1977 1987 1986 1985 10.9 11.9 10.8 11.2 100 250 400 300 200 DEGRE SELECT AVG(DEGRE) FROM VINS; SELECT CRU, SUM(QUANTITE) FROM VINS GROUP BY CRU; AVG DEGRE 11.2 SUM CRU SUM(QUANTITE) CHABLIS 350 VOLNAY 700 MEDOC 200 - 81 - 27
82
COUNT Comptage de tuples compter le nombre de commandes passées
SELECT COUNT(*) FROM Commande; compter le nombre de produits de couleur rouge SELECT COUNT(*) AS NbRouge FROM Produit WHERE couleur = ‘ rouge ’; - 82 -
83
SUM Sommations Total des quantités commandées de produits de couleur rouge. SELECT SUM(qute) AS QuteCmdRouge FROM Commande, Produit WHERE Commande.pno = Produit.pno AND couleur = rouge; - 83 -
84
SUM et agrégats Calculs sur les tuples et regroupement
Total des quantités commandées par numéro de produit. SELECT SUM(qute) AS QuteCmd , pno FROM Commande GROUP BY pno; - 84 -
85
Forme générale Consultation de tables
SELECT [ALL | DISTINCT] <attributs> FROM <tables> [ WHERE <conditions> GROUP BY <attributs> HAVING <conditions> ORDER BY <attributs> ] ; - 85 -
86
Autres Exemples (1) Calcul sur les tuples
« Donner le nom des buveurs ayant consommé plus que la moyenne » SELECT Buveurs.nom FROM Buveurs, Abus WHERE Buveurs.nb = Abus.nb AND Abus.qte > ( SELECT AVG(Abus.qte) FROM Abus ) ; - 86 -
87
Autres Exemples (2) Calcul sur les tuples et regroupements
« Donner le nom et la quantité de vin bue par chaque buveur ayant consommé plus de 10 litres » SELECT Buveurs.nom, SUM(Abus.qte) FROM Buveurs, Abus WHERE Buveurs.nb = Abus.nb GROUP BY Buveurs.nom HAVING SUM(Abus.qte) > 10 ; - 87 -
88
Autres Exemples (3) Requête d’insertion « Ajouter un buveur »
INSERT INTO Buveurs (nb, nom, ville, type) VALUES (8, Dupont, Lyon, Petit) - 88 -
89
Autres Exemples (4) Requête d’insertion
« Ajouter dans la table Petit_Buveurs, les petits buveurs contenus dans la table Buveurs » INSERT INTO Petit_Buveurs (nb, nom) SELECT Buveurs.nb, Buveurs.nom FROM Buveurs WHERE Buveurs.type = ‘ Petit ’ ; - 89 -
90
Autres Exemples (5) Requête de mise à jour
« Modifier le type des buveurs habitant Bordeaux en gros buveurs » UPDATE Buveurs SET Buveurs.type = ‘ gros ’ WHERE Buveurs.ville = ‘ Bordeaux ’ ; - 90 -
91
Autres Exemples (6) Requête de suppression
« Supprimer tous les petits buveurs » DELETE FROM Buveurs WHERE Buveurs.type = ‘ Petit ’ ; - 91 -
92
Normalisations - 92 -
93
Nécessité des Normalisations
Considérons le schéma de la relation suivante : Article(NomFnsr, AdresseFnsr, NomArt, PrixArt). Une table correspondante est : - 93 -
94
Anomalies de Mises à Jour
Anomalie d’insertion : On ne peut mémoriser (insérer) les coordonnées d’un fournisseur s’il ne fourni pas au moins un article. Anomalie de suppression : La suppression d’un article qui est l’unique article fourni par un fournisseur entraîne la perte des informations relatives à ce fournisseur. Anomalies de modification : Si un fournisseur change de coordonnées, il faudra répercuter cette modification à tous les articles dont il est le fournisseur. - 94 -
95
Normalisation de l’exemple
La relation Article(NomFnsr, AdresseFnsr, NomArt, PrixArt) contient certaines dépendances : NomFnsr AdresseFnsr NomFnsr, NomArt PrixArt Elle devrait se décomposer en deux relations : Fournisseur(NomFnsr, AdresseFnsr) et Article(NomFnsr, NomArt, PrixArt) - 95 -
96
Normalisation Les règles de normalisation permettent de concevoir un schéma de base de données correct : sans redondance d’information. sans anomalie de mise à jour. Elles se basent sur les dépendances fonctionnelles (DF) qui traduisent les relations entre les données. les formes normales qui définissent les relations bien conçues. - 96 -
97
Normalisation Il existe plusieurs niveaux de normalisation :
Première forme normale (1FN) Deuxième forme normale (2FN) Troisième forme normale (3FN) ... Un modèle relationnel est dit normalisé quand toutes ses tables sont en 3FN. - 97 -
98
Dépendance fonctionnelle (DF)
Soient R (A1, A2, …, An) un schéma de relation. X et Y des sous-ensembles d’attributs de la relation R. X Y qui se lit X détermine Y ou Y dépend (fonctionnellement) de X signifie que si on connaît la valeur de X alors la valeur de Y est automatiquement déduite. PERSONNE N° SS --> NOM ? NOM --> N° SS ? - 98 -
99
Normalisation Première forme normale Deuxième forme normale
But : garantir la manipulation de données élémentaires (indivisibles) Deuxième forme normale But : éliminer certaines redondances en s’assurant qu’aucun attribut n’est déterminé par une sous partie de la clé. Troisième forme normale But : Elimination des dépendances dues à la transitivité des dépendances transitives. - 99 -
100
Première forme normale
Définition Une relation est en 1ère forme normale si tout attribut contient une valeur atomique (unique) Exemple d’une relation non en 1NF PERSONNE NOM PROFESSION DUPONT Ingénieur, Professeur MARTIN Géomètre Une telle relation doit être décomposée en répétant les noms pour chaque profession
101
Première forme normale
Décomposition : PERSONNE NOM PROFESSION DUPONT Ingénieur DUPONT Professeur MARTIN Géomètre
102
Deuxième forme normale
une relation est en 2e forme normale ssi : 1) elle est en 1ère forme normale 2) tout attribut non clé ne dépend pas d'une partie de la clé Schéma d’une relation non en 2NF : R K1 K2 X Y Une telle relation doit être décomposée en R1(K1,K2,X) et R2(K2,Y)
103
Exemple Article(NomFnsr, AdresseFnsr, NomArt, PrixArt).
NomFnsr, NomArt PrixArt
104
Troisième forme normale
une relation est en 3e forme normale ssi : 1) elle est en 2e forme normale 2) tout attribut n'appartenant pas a une clé ne dépend pas d’attribut ne faisant pas partie de la clé Schéma d’une relation non en 3NF : R K X Y Z Une telle relation doit être décomposée en R1(K, X, Y) et R2(X,Z)
105
Exemple 3ième Forme Normale
Voiture (NV, marque, type, puissance, couleur) Type --> marque Type --> puissance Pas en 3eme forme normale ! Devra se décomposer en : Voiture(NV, type, couleur) et TypeVoiture(type, marque, puissance)
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.