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

Programme Introduction aux BD et aux SGBD Le modèle relationnel

Présentations similaires


Présentation au sujet: "Programme Introduction aux BD et aux SGBD Le modèle relationnel"— Transcription de la présentation:

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


Télécharger ppt "Programme Introduction aux BD et aux SGBD Le modèle relationnel"

Présentations similaires


Annonces Google