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

Bases de Données Relationnelles DESS CCI Rafik Taouil

Présentations similaires


Présentation au sujet: "Bases de Données Relationnelles DESS CCI Rafik Taouil"— Transcription de la présentation:

1 Bases de Données Relationnelles DESS CCI Rafik Taouil

2 OBJECTIF DU COURS? OBJECTIF: Comprendre et maitriser la technologie des systèmes de bases de données relationnelle: Modélisation des données Interrogation des données: évaluation des requêtes Mises-à-jour des données: concurrence et transactions Intégration des données: entrepôts de données, …? (pas sûre)

3 PLAN 1.Introduction 2.Modèle Relationnel 3.Calcul et Algèbre Relationnel 4.SQL 5.Organisation Physique, Index 6.Optimisation des requêtes: lexemple dORACLE.

4 BIBLIOGRAPHIE Ouvrages en français Date C.J, Introduction aux Bases de Données, Vuibert, 970 Pages, Janvier 2001 Ouvrages en anglais R. Elmasri, S.B. Navathe, Fundamentals of database systems, 3e édition, 1007 pages, 2000, Addison Wesley Ullman J.D. and Widom J. A First Course in Database Systems, Prentice Hall, 1997 Garcia-Molina H., Ullman J. and Widom J., Implementation of Database Systems, Prentice Hall, 1999 Web …

5 Applications SGBD CLASSIQUES : Données de Gestion (salaires, stocks, réservations davions) Applications Transactionnelles (gestion de comptes bancaires, centrales dachat) MOINS CLASSIQUES : Documents électroniques, Données Multimédia, Spatiales A LA MODE : Données du Web: HTML, XML Entrepôts de données Logiciels (Standard SQL) : Postgres SQL, SQL Server, DB2, Oracle…

6 Comment Stocker et Manipuler les Données? Données vers Bases de Données (BD) Une B.D. est un GROS ENSEMBLE dinformations STRUCTURÉES mémorisées sur un support PERMANENT. LOGICIEL : SYSTÈME de GESTION de B.D. (S.G.B.D) Un Système de Gestion de Bases de Données (SGBD) est un logiciel de HAUT NIVEAU qui permet de manipuler ces informations.

7 Complexités Diversité des utilisateurs, des interfaces et des architectures: utilisateurs : administrateurs, programmeurs, non informaticiens,... interfaces : langages de programmation, saisie de données, génération de rapports,... architectures : données centralisées, distribuées, hétérogènes

8 En Résumé, un SGBD est un OUTIL GÉNÉRIQUE qui doit répondre à des besoins très divers de gestion de un GROS VOLUME DINFORMATIONS – persistantes (années) et fiables (protection sur pannes) – partageables (utilisateurs, programmes) – manipulées indépendamment de leur organisation physique

9 ARCHITECTURE dun SGBD: Vue 1 Vue 2 Vue 3 Schéma conceptuel Monde réel Processus de modélisation Schéma physique Base de Données physique Niveau externeNiveau conceptuel Niveau physique

10 FONCTIONNALITÉS dun SGBD Chaque niveau du SGBD réalise un certain nombre de fonctions : NIVEAU PHYSIQUE Accès aux données sur mémoire secondaire (disques), index,... partage de données et gestion de la concurrence daccès reprise sur pannes (fiabilité) distribution et interopérabilité

11 NIVEAU LOGIQUE – Définition de la structure de données : Langage de Description de Données (LDD) – Consultation et Mise à Jour des données : Langages de Requêtes (LR) et Langage de Manipulation de Données (LMD)

12 NIVEAU EXTERNE: Vues Utilisateurs 1. Vue de la planification des salles : pour chaque cours – Nom de Prof – Horaires et salles 2. Vue de la paye : un ensemble de Prof (nom, prénom, adresse, indice, nombre dheures... ) 3. Vue du service de scolarité (suivi des élèves) :...

13 Intégration de ces Vues On laisse chaque usager avec sa vision du monde PASSAGE DU NIVEAU EXTERNE AU NIVEAU LOGIQUE: On intègre lensemble de ces vues en une description unique: SCHÉMA LOGIQUE

14 Modèles de données Un modèle de données est caractérisé par : – une structuration des informations et – des opérations sur ces structures

15 Modèles (suite) Dans un SGBD, il existe plusieurs modèles plus ou moins abstraits des mêmes objets, e.g. : – le modèle conceptuel : la description du système dinformation – le modèle logique : interface avec le SGBD – le modèle physique : fichiers ces différents modèles correspondent aux niveaux dans larchitecture dun SGBD.

16 Modèle Conceptuel: Exemple Entité-Relation – Modèle très abstrait, pratique pour : – lanalyse du monde réel – la conception du système dinformation – la communication entre différents acteurs de lentreprise – Mais nest pas associé à un langage. (Une structure mais pas dopérations)

17 Modèle logique 1. Langage de définition de données (LDD) pour décrire la structure. 2. Langage de manipulation de données (LMD) pour appliquer des opérations aux données. Ces langages sont abstraits : 1. Le LDD est indépendant de la représentation physique des données. 2. Le LMD est indépendant de limplantation des opérations.

18 Les avantages de labstraction 1. Simplicité daccès: les structures et les langages sont plus simples, donc plus faciles pour lusager non expert. 2. INDÉPENDANCE PHYSIQUE: on peut modifier limplantation physique (index, stockage,...) sans modifier les programmes dapplication 3. INDÉPENDANCE LOGIQUE: on peut modifier les programmes dapplication sans toucher à limplantation.

19 HISTORIQUE DES SGBD À chaque génération correspond un modèle logique Les premiers étaient peu abstraits (navigationnels) 60 S.G.F. (e.g. COBOL) mi-60 HIÉRARCHIQUE IMS (IBM) navigationnel RÉSEAU (CODASYL) navigationnel RELATIONNEL déclaratif mi-80 RELATIONNEL explosion sur micro Fin 80 RELATIONNEL ETENDU nouvelles applications DATALOG (SGBD déductifs) pas encore de marché ORIENTÉ-OBJET navig. + déclaratif Fin 90 HIÉRARCHIQUE (XML) nouvelles applications Web

20 Opérations sur les données

21 Exemples dopérations Insérer les informations pour lemployé Jean Augmenter le salaire de Jean de 10% Supprimer les informations de Jean Chercher les employés cadres Chercher les employés du département comptabilité Chercher le salaire moyen des employés comptables, avec deux enfants, nés avant 1960 et travaillant à Paris

22 Quels types dopérations ? 4 types dopérations classiques dans un SGBD: 1. La création (ou insertion) de données. 2. La modification de données. 3. La destruction de données. 4. La recherche de données. Ces opérations correspondent à des manipulations de données (LMD) et sont appelés des requêtes. La plus complexe est la recherche en raison de la variété des critères.

23 Le Traitement dune Requête – ANALYSE SYNTAXIQUE – OPTIMISATION Génération (par le SGBD) dun programme optimisé à partir de la connaissance de la structure des données, de lexistence dindex, de statistiques sur les données. – EXÉCUTION POUR OBTENIR LE RÉSULTAT. NB: on doit tenir compte du fait que dautres utilisateurs sont peut- être en train de modifier les données quon interroge !

24 Concurrence daccès Architecture Client-Serveur: plusieurs clients (utilisateurs, applications) doivent pouvoir accéder en même temps aux mêmes données. Le SGBD doit savoir : Gérer les conflits si les deux font des mises-à-jour sur les mêmes données. Offrir un mécanisme de retour en arrière si on décide dannuler des modifications en cours. Donner une image cohérente des données si lun fait des requêtes et lautre des mises-à-jour. Le but : éviter les blocages, tout en empêchant des modifications anarchiques.

25 Revenons aux Utilisateurs dun SGBD Ladministrateur de la base Rôle de ladministrateur/concepteur – discute avec les différents utilisateurs – conception dun schéma logique (et des différentes vues) – conception du schéma physique – installation de la base et réglages fins (tuning) – gère lévolution de la base (nouveaux besoins, utilisateurs) Outils à sa disposition fournis par léditeur du SGBD

26 Utilisateur expert: informaticien connaissant langages programmation et langages BD – Concepteur et programmeur dapplication écrit les applications pour des utilisateurs naïfs – Utilisateur naïf: du non-spécialiste des SGBD au non- informaticien.

27 LE MODÈLE RELATIONNEL Présentation Générale

28 Exemple de Relation PropriétaireTypeAnnée LoicEspace1988 NadiaEspace1989 LoicR51978 JulienR MarieZX1993 Voiture Nom de la Relation Nom dAttribut n-uplet

29 FOURNISSEURS FOURNIT PRODUITS CLIENTS COMMANDE FNOM NOM BALANCE C_ADRESSE PNOM PRIX QUANTITE NUM_COMDE FADRESSE Un exemple du modèle relationnel Schéma Entités –Relations (ER)

30 FOURNISSEUR FNOM FADRESSE Abounayan Meudon Cima Paris Preblocs Gennevilliers Sarnaco Paris FOURNITURE FNOM PNOM PRIX Abounayan sable 300 Abounayan briques 1500 Preblocs parpaing 1200 Sarnaco parpaing 1150 Sarnaco ciment 125

31 COMMANDES NUM_COMDE NOM PNOM QUANTITE 1 Jean briques 5 1 Jean ciment 10 3 Paul briques 3 4 Paul parpaing 9 5 Vincent parpaing 7 CLIENTS NOM CADRESSE BALANCE Jean Paris Paul Paris 0 Vincent Ivry 3000 Pierre Courbe 7000

32 Algèbre relationnelle (formalisation)

33 Eléments de base zUnivers : ensemble fini d attributs, U zAttribut : associé à un ensemble de valeurs appelé domaine, dom(A) zSchéma relationnel : sous-ensemble non vide de l univers zn-uplet sur le schéma R : application de R dans l union des domaines des attributs de R

34 Eléments de base (exemple) zU = {num_et, nom_et, adr_et, num_p, nom_p, adr_p, num_c, nom_c} zR= {num_et, num_c} zt : R dom(num_et) dom(num_c) num_et n1 num_c n2 zNotation : t = (n1, n2)

35 Eléments de base (suite) zRelation sur R : ensemble fini de n- uplets définis sur R zBase de données sur U : ensemble de relations définies sur des schémas de U zRemarque : plusieurs relations d une même base peuvent avoir le même schéma

36 Exemple zBD = {etud, prof, cours, inscrit} zAvec : yetud[num_et, nom_et, adr_et] yprof[num_p, nom_p, adr_p] ycours[num_c, nom_c, num_p] yinscrit[num_et, num_c] zRemarque : on peut ajouter yanc_etud[num_et, nom_et, adr_et]

37 Algèbre relationnelle zCombine les relations pour exprimer les requêtes zFormalisme rigoureux dont le pouvoir d expression est « fort » : ~ logique du 1er ordre zPropriétés formelles pour optimiser le calcul des réponses

38 Opérations de base zOpérations ensemblistes : yunion, intersection, différence zOpérations relationnelles : yprojection ysélection yjointure yrenommage

39 Projection zr[R] et X sous-ensemble de R zProjection de r sur X : yrelation définie sur X contenant les restrictions sur X des n-uplets de r ynotation : x (r) y x (r) = {u | t dans r tel que u=t.X} zRemarque : attention à l écriture y x (r) = {t.X | t dans r}

40 Projection - Exemple zetud[num_et, nom_et, adr_et] zX = nom_et, adr_et z x (etud) yliste des noms et adresses des étudiants zAttention : si Y = nom_et, adr_p y y (etud) n est pas défini

41 Sélection zr[R] relation définie sur R zC condition de sélection de la forme yC = (A comp a), ou C = (A comp B) yC combinaison par les connecteurs logiques zSélection de r selon C yrelation définie sur R ynotation : C (r) y C (r) est l ensemble des n-uplets de r qui satisfont C

42 Sélection - Exemple zetud[num_et, nom_et, adr_et] zC = (adr_et = Casa ou num_et > 100) z C (etud) yliste des étudiants dont l adresse est Casa ou dont le numéro est supérieur à 100 z nom_et ( C (etud)) yliste des noms de ces étudiants zAttention : si C = (nom_p = nom_et) y C (etud) n est pas défini

43 Jointure zr[R] et s[S] deux relations zJointure de r par s yrelation définie sur R S ynotation : r s yr s = {t | t.R r et t.S s} zRemarques yune jointure est toujours définie yopération coûteuse à calculer

44 Jointure - Exemple zetud[num_et, nom_et, adr_et] inscrit[num_et, num_c] zetud inscrit ydéfinie sur num_et, nom_et, adr_et, num_c yliste des inscriptions des étudiants z nom_et,num_c (etud inscrit) yliste des noms des étudiants et des numéros des cours auxquels ils sont inscrits

45 Jointure - Exemple (suite) zetud prof ydéfinie? Sur quel schéma? zetud etud ydéfinie? Sur quel schéma?

46 Jointure - Propriétés z R (r s) = r ? z R (r s) S (r s) = r s ? zr[RS], R (r) S (r) = r ? z C (r s) = C (r) s ?

47 Renommage zr[R], A attribut de R, A1 nouveau nom pour A zRenommage de A en A1 dans r yrelation définie sur (R - {A}) {A1} ynotation : A1 A (r) y A1 A (r) contient les mêmes n-uplets que r zUtilisation : avoir deux versions distinctes d une même relation

48 Renommage - Exemple zNuméros des étudiants inscrits à plus d un cours ? yinscrit[num_et, num_c](1ère version) y n num_c (inscrit)(2ème version) y n num_c (inscrit) inscrit (jointure) y num_c n ( n num_c (inscrit) inscrit) (sélection) z num_et ( num_c n ( n num_c (inscrit) inscrit))

49 Opérations ensemblistes zr[R] et s[R] définies sur le même schéma R zr s, r s, r - s ydéfinies sur R ysémantique habituelle zRemarque : r s = r s

50 Opérations ensemblistes - Exemples

51

52 * une Projection consiste à enlever des colonnes à une relation Res_Proj = nom (Etudiant) * une Sélection caractérise un sous-ensemble de tuples d'une relation au moyen d'un prédicat Res_Sel = age>21 (Etudiant)

53 * l'opérateur d'Union réalise la fusion des n-uplets de 2 relations compatibles Res_Uni = Etudiant Stagiaire la Différence de 2 relations (compatibles) contient les tuples de la 1 ère ne figurant pas dans la 2 nde Res_Dif = Etudiant - Stagiaire

54 * le résultat dun Produit cartésien se compose d'un n-uplet de chacune des 2 relations arguments Res_PrC = Stagiaire x Société

55 * l'Intersection de 2 relations compatibles retourne les tuples communs aux 2 relations

56 * Jointure Soient R et S 2 relations construites sur des schémas ayant A1... An en commun La ( -)jointure de R et S est construite sur l'union des attributs de R et de S, et contient tous les tuples composés d'un n-uplet de R et d'un n- uplet de S qui coïncident au niveau du comparateur sur A1... An Res_Join = Stagiaire Convention (Stagiaire.nom = Convention.nom_s)

57 * Division Soient R (A1... An B1... Bm), et S (B1... Bm) Le quotient R / S construit sur A1... An se compose des n-uplets a1... an tels que pour tout n-uplet b1... bm de S, le n-uplet a1... an b1... bm appartient à R Res_Div = R_Etud / S_Pren (prenom)

58 L'extraction des données recherchées peut se faire en plusieurs étapes Ex T1 = age=21 (Etudiant) T2 = nom (T1) C'est pour permettre l'écriture de requêtes de manière déclarative que le calcul relationnel a été introduit

59 Calcul relationnel On suppose donné un ensemble infini de variables liées aux valeurs des domaines; les formules du calcul sont construites ainsi : les valeurs des domaines et les variables sont des termes si x1... xn sont des termes, alors les expressions R (x1... xn) et xi xj sont des formules ( étant un comparateur usuel) si F1 et F2 sont des formules, alors F1 F2, F1 F2, F1 F2, et F2 sont des formules si F est une formule dans laquelle la variable x est libre, x F et x F sont des formules

60 Interprétation des formules Une formule R (x1... xn) est vraie pour une valuation donnée des variables ssi le n-uplet correspondant appartient à la relation R Une requête dans le calcul relationnel est une expression de la forme { (xi... xj) / F (x1... xn) }, où les xi... xj sont des variables libres et la réponse l'ensemble des valeurs de (xi... xj) pour lesquelles F est vraie

61 Ex :{ x / y Etudiant (x, 21, y) } Correspondance calcul / algèbre * Projection de R (X, Y) sur lensemble X : X (R) = { x / y R (x, y) } * Sélection sur R à partir de F, formule constituée à partir de termes utilisés dans la construction de R F (R) = { x / R (x) F (x) }

62 * Union R S = { x / R (x) S (x) } * Différence R - S = { x / R (x) S (x) } * Produit cartésien R x S = { x = (r, s) / R (r) S (s) }

63 * Intersection R S = { x / R (x) S (x) } * ( -) Jointure de R (X, Y) et S (X, Z) sur X : R S = { t = (x, y, z) / w R (x, y) S (w, z) (x w) } * Division de R (X, Y) par S (Y) : R / S = { x / y S (y) R (x, y) }

64 l'algèbre et le calcul relationnels sont des langages équivalents

65 Contraintes d'intégrité La déclaration d'un schéma relationnel peut comporter la définition de contraintes d'intégrité Ces règles précisent les instances des relations cohérentes par rapport au monde modélisé

66 Les dépendances expriment des liens entre groupes d'attributs des schémas Dépendance fonctionnelle (df) Il existe une df d'un groupe d'attributs X de R vers un groupe d'attributs Y de R si à une valeur de X correspond une et une seule valeur de Y La théorie des df est à la base du processus de "normalisation" d'un schéma relationnel. Avec Schéma1 Etudiant (nom, age, ville) Ville (nom, pays, nbh) Schéma2 Etudiant (nom, age, ville, pays, nbh) la théorie indique que c'est Schéma1 qu'il faut utiliser pour éviter de la redondance « logique »

67 Clés d'une relation X est une clé pour R sil nexiste pas 2 tuples distincts de R ayant même valeur sur X, et si aucun sous-ensemble de X ne vérifie cette propriété La clé d'une relation R est en dépendance fonctionnelle avec tous les attributs de R Si R possède plusieurs clés potentielles, on appelle clé primaire celle choisie pour clé

68 Un groupe d'attributs Y de R est une clé étrangère de R si Y est la clé primaire d'au moins une autre relation distincte de R Ex Etudiant (nome, age, nomville) Ville (nomville, pays, population)

69 Valeurs nulles De l'information inconnue ou incomplète peut être introduite dans une base via des valeurs nulles :

70 Intégrité d'entité (ou de relation) L'intégrité d'entité correspond à la propriété d'un ensemble de ne pas contenir de doublons Ceci passe par l'attribution à chaque relation du schéma d'une clé primaire. Chaque valeur de clé primaire doit être unique et non nulle

71 Intégrité de référence Un schéma relationnel contient --> des relations statiques (entités autonomes) --> des relations dépendantes (leur existence est liée à celle de relations statiques) Ex Etudiant (Ide, nome, prenom, age) Société (Ids, noms, activite, adresses) Convention (Ide, Ids, date, duree) Les dépendances se caractérisent par des liaisons de type N : M entre les entités, transformées lors du passage au schéma relationnel en clés étrangères L'intégrité de référence est la règle qui régit les valeurs des clés étrangères (valeurs nulles ou existantes dans la table liée)

72 Intégrité liée à l'application Chaque application modélisée peut faire apparaître d'autres contraintes spécifiques Ex : un étudiant ne réalise quun stage à la fois Ces contraintes, dites d'intégrité sémantique, ne sont pas (toutes) directement modélisables au niveau du schéma relationnel


Télécharger ppt "Bases de Données Relationnelles DESS CCI Rafik Taouil"

Présentations similaires


Annonces Google