Télécharger la présentation
Publié parJacqueline Jourdain Modifié depuis plus de 10 années
1
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Le langage de requête SQL La conception d’une BD relationnelle Protection des informations Perspectives des BD
2
Le modèle relationnel Inventé par E. F. Codd
Laboratoire de recherche IBM à San José Publication ACM 1970 "A Relational Model of Data for Large Shared Data Banks"
3
Les concepts descriptifs
Notion de domaine Produit cartésien Relation Attribut Exemples de relations Clé Schéma de relation Clé étrangère Métabase Résumé des notions
4
Notion de domaine Définition Exemples Ensemble de valeurs
Entier, réel, chaîne de caractères, booléen Salaire = Couleur = {bleu, blanc, rouge} Point = [X: entier, Y: entier] Triangle = [P1, P2, P3: Point] Polygone = {Point}
5
Produit cartésien Définition Notation
Le produit cartésien de D1, ...., Dn est l'ensemble des n-uplets (Tuples) <V1, ...., Vn> tel que Vi Di. Notation D1 X ....X Dn
6
Produit cartésien (suite)
Exemple D1 = {Cadre, Ouvrier, Directeur} D2 = {5000, 15000, 30000}
7
Relation Définition Exemple
sous-ensemble du produit cartésien d'une liste de domaines caractérisée par un nom. Exemple D1 = Fonction D2 = Salaire
8
Relation (suite) Plus simplement, une relation est un tableau à deux dimensions. Une ligne est un n-uplet (tuple). On associe un nom à chaque colonne afin de la repérer indépendamment de l'ordre.
9
Attribut Définition Exemple nom donné à une colonne d'une relation
prend ses valeurs dans un domaine Exemple Fonction
10
Exemples de relations
11
Clé Définition Exemple Contrainte d'intégrité
Une clé est un groupe d'attributs minimum qui détermine un n-uplet unique dans une relation (à tout instant). Exemple Clé de salaire_moyen ? Clé de départements ? Contrainte d'intégrité Toute relation doit posséder une clé renseignée (sans valeur inconnue).
12
Schéma de relation Définition Exemple Le schéma d'une relation décrit:
son nom la liste des attributs qu'elle comporte et des domaines associés la liste des attributs composant la clé (la clé est soulignée) Exemple Départements(Nom: texte, Région: texte, Directeur: texte, Nb_employés: entier)
13
Schéma de relation (suite)
Intention Un schéma de relation: intention de la relation table: extension Le schéma d'une BD relationnelle: ensemble des schémas des relations
14
Clé étrangère Définition Rôle
Une clé étrangère est un groupe d'attributs qui apparaît comme clé dans une autre relation R1(A1, A2, .... , Ap, Ap+1, ...., An) R2(B1, B2, , Bn) Rôle Les clés étrangères définissent des contraintes d'intégrités référentielles entre relations
15
Mises à jour et clés étrangères
Insertion: la valeur des attributs doit exister dans la relation référencée. Insertion de (R&D4, 2222) ? Suppression dans la relation référencée, les n-uplets référençant doivent disparaître. Suppression de l'employé 5678 Les clés étrangères définissent les liens entités-associations.
16
Clé étrangère Exemples Département(No_départ, Libellé, Région)
Employé(No_emp, Nom, Prénom, Adresse) Travaille_dans(No_dept, No_emp, Date_embauche) Clés étrangères: No_dept dans Travaille_dans référence No_départ dans Département; No_emp dans Travaille_dans référence No_emp dans Employé.
17
Métabase Définition Principe
base de données contenant l'ensemble des schémas et des règles de correspondances associées à une base de données Principe Une base décrivant les autres bases, c'est-à-dire: les relations + les attributs + les domaines + les clés ..... Notion de dictionnaire de données Base particulière, système, gérée par l'administrateur de BD
18
Résumé des notions
19
Les opérateurs de manipulation
Tout résultat d'une opération est une relation; celui-ci peut donc être réutilisé en entrée d'un nouvel opérateur. Les opérateurs peuvent être classifiés en : opérateurs ensemblistes / opérateurs relationnels opérateurs unaires / opérateurs binaires opérateurs de base / opérateurs dérivés Base: union, différence, restriction, projection, produit cartésien dérivés: intersection, jointure, division
20
Union But Contraintes Permet de fusionner deux relations Binaire
Même schéma
21
Union (suite) Exemple
22
Union (suite) Notation Notation textuelle: T = R S
Notation graphique: R S T
23
Différence But Contraintes
Conserver les tuples d'une relation ne figurant pas dans une autre Contraintes Binaire Même schéma Non commutatif
24
Différence (suite) Exemple
25
Différence (suite) Notation Notation textuelle: T = R - S
Notation graphique: R S T
26
Restriction But Contraintes Permet de "sélectionner" des tuples
La restriction réduit la taille de la relation verticalement Contraintes Unaire Spécifier une condition
27
Restriction (suite) Exemple Restriction telle que salaire 15000
Restriction telle que Nom > 'Le Blanc'
28
Restriction (suite) Notation Notation textuelle: T = cond (R)
Notation graphique: R Cond T
29
Projection But Contraintes Permet de "sélectionner" des attributs
La projection réduit la taille de la relation horizontalement Contraintes Unaire Spécifier une liste d'attributs
30
Projection (suite) Exemple Projection sur Nom
Projection sur No_emp Projection sur Nom Projection sur No_emp et salaire
31
Projection (suite) Notation
Notation textuelle: T = liste d'attributs (R) Notation graphique: R Attributs T
32
Produit cartésien But Contraintes
Ensemble de tous les tuples obtenus par concaténation de chaque tuple de R avec chaque tuple de S Relation X Relation Relation Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an), S(b1, b2, ..., bp) T = R X S T(a1, a2, ...., an, b1, b2, ..., bp) Card (R X S) = Card (R) * Card (S)
33
Produit cartésien (suite)
Exemple
34
Produit cartésien (suite)
Notation Notation textuelle: T = R X S Notation graphique: R S X T
35
Intersection But Contraintes
Permet d’obtenir l’ensemble des tuples appartenant à deux relations Contraintes Binaire Même schéma
36
Intersection (suite) Exemple
37
Intersection (suite) Notation Dérivation Notation textuelle: T = R S
Notation graphique: R S T Dérivation T = R - (R - S) T = S - (S - R)
38
Jointure But Contraintes
Permet d’établir le lien sémantique entre les relations Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an) S(b1, b2, ..., bp) T = R X S T(a1, a2, ...., an, b1, b2, ..., bp)
39
Jointure (suite) Exemple
40
Jointure (suite) Notation Dérivation
Notation textuelle: T = R >< S Critère de jointure Notation graphique : R S T Dérivation Produit cartésien + restriction
41
Division But Contraintes Répondre aux requêtes de type « tous les »
Un tuple t est dans T si et seulement si pour tout tuple s de S, le tuple <t,s> est dans R Contraintes Binaire Schéma du résultat: R(a1, a2, ...., an, b1, b2, ..., bp) S(b1, b2, ..., bp) T = R ¸ S T(a1, a2, ...., an)
42
Division (suite) Exemple
Quels sont les employés qui travaillent sur tous les projets ?
43
Division (suite) Exemple
Construire R: ensemble de toutes les informations dont on a besoin Construire S: ensemble correspondant à "tous les" (projets)
44
Division (suite) Notation Dérivation Notation textuelle: T = R S
Notation graphique: R S T Dérivation Projection + Produit cartésien + Différence. R S = T1 - T2 avec: T1 = schéma(R) - schéma(S) (R) T2 = schéma(R) - schéma(S) (( schéma(R) - schéma(S) (R) X (S) - R)
45
Bilan
46
Exemples de requêtes en algèbre relationnelle
Base de données Employé(Nom_emp, Prénom_emp, No_ss, Date_naiss, Adresse_emp, Sexe, Salaire, No_chef, Nod) Département(Nom_d, No_dept, No_dir, Date_affect) Dept_local(Num_dept, Id_loc) Projet(Nom, No_proj, Local_proj, Nod) Travaille_sur(No_ss, No_projet, Nb_heures)
47
Requête 1 Nom et adresse de tous les employés travaillant pour le département "R&D" Solution textuelle DEPT_RECH <- Nom_d="R&D" (Département) EMP_DE_RECH <- DEPT_RECH >< Employé No_dept = Nod RESULTAT <- Nom_emp, Prénom_emp, Adresse_emp (EMP_DE_RECH)
48
Arbre algébrique (Requête 1)
49
Requête 2 Pour chaque projet situé à Paris, donner le numéro du projet, le numéro du département correspondant, et le nom, l'adresse et la date de naissance du directeur Solution textuelle PROJ_PARIS <- Local_proj="Paris" (Projet) DEPT_DE_PROJ_PARIS <- PROJ_PARIS >< Département Nod= No_dept DIR_DE_PROJ_PARIS <- DEPT_DE_PROJ_PARIS >< Employé No_dir= No_ss RESULTAT <- No_proj, No_dept, Nom_emp, Adresse_emp, Date_naiss (DIR_DE_PROJ_PARIS)
50
Arbre algébrique (Requête 2)
51
Requête 3 Donner le nom des employés qui travaillent sur tous les projets du departement Solution textuelle PROJ_DE_DEPT5 <- No_proj ( Nod=5 (Projet)) EMP_PROJ <- No_ss, No_projet(Travaille_sur) EMP_PROJETS_DEPT5 <- EMP_PROJ PROJ_DE_DEPT5 RESULTAT <- Nom_emp (EMP_PROJETS_DEPT5 >< Employé) No_ss = No_ss
52
Arbre algébrique (Requête 3)
53
Requête 4 Donner la liste des numéro de projets sur lesquels travaille "Karl", soit en tant que directeur soit en tant qu'exécutant Solution textuelle EMP_KARL <- Prénom_emp="Karl" (Employé) TRAVAILLEUR_KARL No_projet (EMP_KARL >< Travaille_sur) No_ss = No_ss DEPT_DIRIGES_KARL No_dept (EMP_KARL >< Département) No_ss = No_dir PROJ_DIR_KARL <- No_projet (DEPT_DIRIGES_KARL >< Projets) No_dept = No_d RESULTAT <- TRAVAILLEUR_KARL PROJ_DIR_KARL
54
Arbre algébrique (Requête 4)
55
Requête 5 Donner le nom des employés qui ne travaillent sur aucun projet Solution textuelle TOUS_EMP <- No_ss (Employé) EMP_SUR_PROJ <- No_ss (Travaille_sur) EMP_SANS_PROJ <- TOUS_EMP - EMP_SUR_PROJ RESULTAT <- Nom_emp (EMP_SANS_PROJ >< Employé) No_ss = No_ss
56
Arbre algébrique (Requête 5)
57
Requête 6 Donner le nom des directeurs qui travaillent au moins sur un projet Solution textuelle DIREC <- No_dir (Département) TRAV <- No_ss (Travaille_sur) RESULTAT <- Nom_emp ((DIREC TRAV) >< Employé) No_ss = No_ss
58
Arbre algébrique (Requête 6)
59
Optimisation de requêtes
On peut répondre de diverses façon à une même requête Optimiser = choisir la meilleure façon
60
Exemple: Requête 1
61
Facteurs déterminants
Ordre d'exécution des opérations algébriques Algorithme implantant les opérations algébriques Placement des données sur le disque Taille des relations intermédiaires
62
Restructuration Règles Propriétés
Exécuter les opérateurs unaires le plus tôt possible (restriction, projection) => diminution de la taille des relations Exécuter les jointures le plus tard possible Propriétés Associativité des jointures Commutativité restriction / projection Commutativité restriction / jointure Commutativité projection / jointure
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.