bases de données relationnelles dess cci
Embed Size (px)
DESCRIPTION
Bases de Données Relationnelles DESS CCI. Rafik Taouil [email protected] OBJECTIF DU COURS?. OBJECTI F: 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 - PowerPoint PPT PresentationTRANSCRIPT
-
Bases de Donnes RelationnellesDESS CCI
Rafik [email protected]
-
OBJECTIF DU COURS?OBJECTIF: Comprendre et maitriser la technologie des systmes de bases de donnes relationnelle:Modlisation des donnesInterrogation des donnes: valuation des requtesMises--jour des donnes: concurrence et transactionsIntgration des donnes: entrepts de donnes, ? (pas sre)
-
PLAN
IntroductionModle RelationnelCalcul et Algbre RelationnelSQLOrganisation Physique, IndexOptimisation des requtes: lexemple dORACLE.
-
BIBLIOGRAPHIEOuvrages en franaisDate C.J, Introduction aux Bases de Donnes, Vuibert, 970 Pages, Janvier 2001Ouvrages en anglaisR. Elmasri, S.B. Navathe, Fundamentals of database systems, 3e dition, 1007 pages, 2000, Addison WesleyUllman J.D. and Widom J. A First Course in Database Systems, Prentice Hall, 1997Garcia-Molina H., Ullman J. and Widom J., Implementation of Database Systems, Prentice Hall, 1999Web
-
Applications SGBDCLASSIQUES :Donnes de Gestion (salaires, stocks, rservations davions)Applications Transactionnelles (gestion de comptes bancaires, centrales dachat)MOINS CLASSIQUES :Documents lectroniques, Donnes Multimdia, SpatialesA LA MODE :Donnes du Web: HTML, XMLEntrepts de donnesLogiciels (Standard SQL) : Postgres SQL, SQL Server, DB2, Oracle
-
Comment Stocker et Manipuler les Donnes?Donnes vers Bases de Donnes (BD)Une B.D. est un GROS ENSEMBLE dinformations STRUCTURES mmorises sur un support PERMANENT.LOGICIEL : SYSTME de GESTION de B.D. (S.G.B.D)Un Systme de Gestion de Bases de Donnes (SGBD) est un logiciel de HAUT NIVEAU qui permet de manipuler ces informations.
-
ComplexitsDiversit des utilisateurs, des interfaces et des architectures:utilisateurs : administrateurs, programmeurs, non informaticiens, . . .interfaces : langages de programmation, saisie de donnes, gnration de rapports,. . .architectures : donnes centralises, distribues, htrognes
-
En Rsum, un SGBD ...... est un OUTIL GNRIQUE qui doit rpondre des besoins trs divers de gestion de un GROS VOLUME DINFORMATIONS persistantes (annes) et fiables (protection sur pannes) partageables (utilisateurs, programmes) manipules indpendamment de leur organisation physique
-
ARCHITECTURE dun SGBD:Vue 1Vue 2Vue 3SchmaconceptuelMonderelProcessus demodlisationSchmaphysiqueBase de DonnesphysiqueNiveau externeNiveau conceptuelNiveau physique
-
FONCTIONNALITS dun SGBDChaque niveau du SGBD ralise un certain nombre de fonctions :NIVEAU PHYSIQUEAccs aux donnes sur mmoire secondaire (disques), index, ...partage de donnes et gestion de la concurrence daccsreprise sur pannes (fiabilit)distribution et interoprabilit
-
NIVEAU LOGIQUE Dfinition de la structure de donnes : Langage de Description de Donnes (LDD) Consultation et Mise Jour des donnes : Langages de Requtes (LR) et Langage de Manipulation de Donnes (LMD)
-
NIVEAU EXTERNE: Vues Utilisateurs1. Vue de la planification des salles : pour chaque cours Nom de Prof Horaires et salles2. Vue de la paye : un ensemble de Prof(nom, prnom, adresse, indice, nombre dheures. . . )3. Vue du service de scolarit (suivi des lves) : . . .
-
Intgration de ces VuesOn laisse chaque usager avec sa vision du mondePASSAGE DU NIVEAU EXTERNE AU NIVEAU LOGIQUE:On intgre lensemble de ces vues en une description unique: SCHMA LOGIQUE
-
Modles de donnesUn modle de donnes est caractris par : une structuration des informations et des oprations sur ces structures
-
Modles (suite)Dans un SGBD, il existe plusieurs modles plus ou moins abstraits des mmes objets, e.g. : le modle conceptuel : la description du systme dinformation le modle logique : interface avec le SGBD le modle physique : fichiers
ces diffrents modles correspondent aux niveaux dans larchitecture dun SGBD.
-
Modle Conceptuel: Exemple Entit-Relation
Modle trs abstrait, pratique pour : lanalyse du monde rel la conception du systme dinformation la communication entre diffrents acteurs de lentreprise Mais nest pas associ un langage.(Une structure mais pas doprations)
-
Modle logique
1. Langage de dfinition de donnes (LDD) pour dcrire la structure.2. Langage de manipulation de donnes (LMD) pour appliquer des oprations aux donnes.Ces langages sont abstraits :1. Le LDD est indpendant de la reprsentation physique des donnes.2. Le LMD est indpendant de limplantation des oprations.
-
Les avantages de labstraction1. Simplicit daccs: les structures et les langages sont plus simples, donc plus facilespour lusager non expert.2. INDPENDANCE PHYSIQUE: on peut modifier limplantation physique (index, stockage, ...) sans modifier les programmes dapplication3. INDPENDANCE LOGIQUE: on peut modifier les programmes dapplication sans toucher limplantation.
-
HISTORIQUE DES SGBD chaque gnration correspond un modle logiqueLes premiers taient peu abstraits (navigationnels)60 S.G.F. (e.g. COBOL)mi-60 HIRARCHIQUE IMS (IBM) navigationnelRSEAU (CODASYL) navigationnel73-80 RELATIONNEL dclaratifmi-80 RELATIONNEL explosion sur microFin 80 RELATIONNEL ETENDU nouvelles applicationsDATALOG (SGBD dductifs) pas encore de marchORIENT-OBJET navig. + dclaratifFin 90 HIRARCHIQUE (XML) nouvelles applications Web
-
Oprations sur les donnes
-
Exemples doprationsInsrer les informations pour lemploy JeanAugmenter le salaire de Jean de 10%Supprimer les informations de JeanChercher les employs cadresChercher les employs du dpartement comptabilitChercher le salaire moyen des employs comptables, avec deux enfants, ns avant 1960 et travaillant Paris
-
Quels types doprations ?4 types doprations classiques dans un SGBD:1. La cration (ou insertion) de donnes.2. La modification de donnes.3. La destruction de donnes.4. La recherche de donnes.Ces oprations correspondent des manipulations de donnes (LMD) et sont appels des requtes. La plus complexe est la recherche en raison de la varit des critres.
-
Le Traitement dune Requte ANALYSE SYNTAXIQUE OPTIMISATIONGnration (par le SGBD) dun programme optimis partir de la connaissance de la structure des donnes, de lexistence dindex, de statistiques sur les donnes. EXCUTION POUR OBTENIR LE RSULTAT.NB: on doit tenir compte du fait que dautres utilisateurs sont peut-tre en train de modifier les donnes quon interroge !
-
Concurrence daccsArchitecture Client-Serveur: plusieurs clients (utilisateurs, applications) doivent pouvoir accder en mme temps aux mmes donnes.Le SGBD doit savoir :Grer les conflits si les deux font des mises--jour sur les mmes donnes.Offrir un mcanisme de retour en arrire si on dcide dannuler des modifications en cours.Donner une image cohrente des donnes si lun fait des requtes et lautre des mises--jour.Le but : viter les blocages, tout en empchant des modifications anarchiques.
-
Revenons aux Utilisateurs dun SGBDLadministrateur de la baseRle de ladministrateur/concepteur discute avec les diffrents utilisateurs conception dun schma logique (et des diffrentes vues) conception du schma physique installation de la base et rglages fins (tuning) gre lvolution de la base (nouveaux besoins, utilisateurs)Outils sa disposition fournis par lditeur du SGBD
-
Utilisateur expert: informaticien connaissant langages programmation et langages BD Concepteur et programmeur dapplicationcrit les applications pour des utilisateurs nafs Utilisateur naf: du non-spcialiste des SGBD au non-informaticien.
-
LE MODLE RELATIONNELPrsentation Gnrale
-
Exemple de RelationVoitureNom de la RelationNom dAttributn-uplet
PropritaireTypeAnneLoicEspace1988NadiaEspace1989LoicR51978JulienR251989MarieZX1993
-
FOURNISSEURSFOURNITPRODUITSCLIENTSCOMMANDEFNOMNOMBALANCEC_ADRESSEPNOMPRIXQUANTITENUM_COMDEFADRESSEUn exemple du modle relationnelSchma Entits Relations (ER)
-
FOURNISSEUR FNOM FADRESSE
Abounayan 92190 Meudon Cima 75010 Paris Preblocs 92230 Gennevilliers Sarnaco 75116 Paris
FOURNITURE FNOM PNOM PRIX
Abounayan sable 300 Abounayan briques 1500 Preblocs parpaing 1200 Sarnaco parpaing 1150 Sarnaco ciment 125
-
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 7CLIENTS NOM CADRESSE BALANCE Jean 75006 Paris -12000 Paul 75003 Paris 0 Vincent 94200 Ivry 3000 Pierre 92400 Courbe 7000
-
Algbre relationnelle(formalisation)
-
Elments de baseUnivers : ensemble fini dattributs, UAttribut : associ un ensemble de valeurs appel domaine, dom(A)Schma relationnel : sous-ensemble non vide de luniversn-uplet sur le schma R : application de R dans lunion des domaines des attributs de R
-
Elments de base (exemple)U = {num_et, nom_et, adr_et,num_p, nom_p, adr_p,num_c, nom_c}R= {num_et, num_c}t : R dom(num_et) dom(num_c)num_et n1num_c n2Notation : t = (n1, n2)
-
Elments de base (suite)Relation sur R : ensemble fini de n-uplets dfinis sur RBase de donnes sur U : ensemble de relations dfinies sur des schmas de U
Remarque : plusieurs relations dune mme base peuvent avoir le mme schma
-
ExempleBD = {etud, prof, cours, inscrit}Avec :etud[num_et, nom_et, adr_et] prof[num_p, nom_p, adr_p]cours[num_c, nom_c, num_p]inscrit[num_et, num_c]
Remarque : on peut ajouteranc_etud[num_et, nom_et, adr_et]
-
Algbre relationnelleCombine les relations pour exprimer les requtesFormalisme rigoureux dont le pouvoir dexpression est fort : ~ logique du 1er ordreProprits formelles pour optimiser le calcul des rponses
-
Oprations de baseOprations ensemblistes :union, intersection, diffrenceOprations relationnelles :projectionslectionjointurerenommage
-
Projectionr[R] et X sous-ensemble de RProjection de r sur X :relation dfinie sur X contenant les restrictions sur X des n-uplets de rnotation : x(r)x(r) = {u | t dans r tel que u=t.X}Remarque : attention lcriturex(r) = {t.X | t dans r}
-
Projection - Exempleetud[num_et, nom_et, adr_et]X = nom_et, adr_etx(etud)liste des noms et adresses des tudiants
Attention : si Y = nom_et, adr_py(etud) nest pas dfini
-
Slectionr[R] relation dfinie sur RC condition de slection de la formeC = (A comp a), ou C = (A comp B)C combinaison par les connecteurs logiquesSlection de r selon Crelation dfinie sur Rnotation : C(r) C(r) est lensemble des n-uplets de r qui satisfont C
-
Slection - Exempleetud[num_et, nom_et, adr_et]C = (adr_et = Casa ou num_et > 100)C(etud)liste des tudiants dont ladresse est Casa ou dont le numro est suprieur 100nom_et(C(etud))liste des noms de ces tudiantsAttention : si C = (nom_p = nom_et)C(etud) nest pas dfini
-
Jointurer[R] et s[S] deux relationsJointure de r par srelation dfinie sur R Snotation : r sr s = {t | t.R r et t.S s}Remarquesune jointure est toujours dfinieopration coteuse calculer
-
Jointure - Exempleetud[num_et, nom_et, adr_et] inscrit[num_et, num_c]etud inscritdfinie sur num_et, nom_et, adr_et, num_cliste des inscriptions des tudiantsnom_et,num_c(etud inscrit)liste des noms des tudiants et des numros des cours auxquels ils sont inscrits
-
Jointure - Exemple (suite)etud profdfinie? Sur quel schma?
etud etuddfinie? Sur quel schma?
-
Jointure - PropritsR(r s) = r ?R(r s) S(r s) = r s ?
r[RS], R(r) S(r) = r ?
C(r s) = C(r) s ?
-
Renommager[R] , A attribut de R , A1 nouveau nom pour ARenommage de A en A1 dans rrelation dfinie sur (R - {A}) {A1}notation : A1A(r)A1A(r) contient les mmes n-uplets que rUtilisation : avoir deux versions distinctes dune mme relation
-
Renommage - ExempleNumros des tudiants inscrits plus dun cours ?inscrit[num_et, num_c](1re version)nnum_c(inscrit)(2me version)nnum_c(inscrit) inscrit (jointure)num_cn(nnum_c(inscrit) inscrit)(slection)num_et(num_cn(nnum_c(inscrit) inscrit))
-
Oprations ensemblistesr[R] et s[R] dfinies sur le mme schma Rr s , r s , r - sdfinies sur Rsmantique habituelle
Remarque : r s = r s
-
Oprations ensemblistes - Exemples
-
* une Projection consiste enlever des colonnes une relationRes_Proj = nom (Etudiant)* une Slection caractrise un sous-ensemble de tuples d'une relation au moyen d'un prdicatRes_Sel = age>21 (Etudiant)
-
* l'oprateur d'Union ralise la fusion des n-uplets de 2 relations compatiblesRes_Uni = Etudiant Stagiairela Diffrence de 2 relations (compatibles) contient les tuples de la 1re ne figurant pas dans la 2ndeRes_Dif = Etudiant - Stagiaire
-
* le rsultat dun Produit cartsien se compose d'un n-uplet de chacune des 2 relations argumentsRes_PrC = Stagiaire x Socit
-
* l'Intersection de 2 relations compatibles retourne les tuples communs aux 2 relations
-
* JointureSoient R et S 2 relations construites sur des schmas ayant A1 ... An en communLa (-)jointure de R et S est construite sur l'union des attributs de R et de S, et contient tous les tuples composs d'un n-uplet de R et d'un n-uplet de S qui concident au niveau du comparateur sur A1 ... An Res_Join = Stagiaire Convention (Stagiaire.nom = Convention.nom_s)
-
* DivisionSoient R (A1 ... An B1 ... Bm), etS (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)
-
L'extraction des donnes recherches peut se faire en plusieurs tapesExT1 = age=21 (Etudiant)T2 = nom (T1)
C'est pour permettre l'criture de requtes de manire dclarative que le calcul relationnel a t introduit
-
Calcul relationnel On suppose donn un ensemble infini de variables lies 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 formulessi F est une formule dans laquelle la variable x est libre, x F et x F sont des formules
-
Interprtation des formulesUne formule R (x1 ... xn) est vraie pour une valuation donne des variables ssi le n-uplet correspondant appartient la relation RUne requte dans le calcul relationnel est une expression de la forme{ (xi ... xj) / F (x1 ... xn) }, o les xi ... xj sont des variables libreset la rponse l'ensemble des valeurs de (xi...xj) pour lesquelles F est vraie
-
Ex:{ x / y Etudiant (x, 21, y) }Correspondance calcul / algbre* Projection de R (X, Y) sur lensemble X: X (R) = { x / y R (x, y) }* Slection sur R partir de F, formule constitue partir de termes utiliss dans la construction de RF (R) = { x / R (x) F (x) }
-
* UnionR S = { x / R (x) S (x) }
* DiffrenceR - S = { x / R (x) S (x) }* Produit cartsienR x S = { x = (r, s) / R (r) S (s) }
-
* IntersectionR 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) }
-
l'algbre et le calcul relationnels sont des langages quivalents
-
Contraintes d'intgrit
La dclaration d'un schma relationnel peut comporter la dfinition de contraintes d'intgritCes rgles prcisent les instances des relations cohrentes par rapport au monde modlis
-
Les dpendances expriment des liens entre groupes d'attributs des schmasDpendance 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 YLa thorie des df est la base du processus de "normalisation" d'un schma relationnel. AvecSchma1Etudiant (nom, age, ville)Ville (nom, pays, nbh)Schma2Etudiant (nom, age, ville, pays, nbh)la thorie indique que c'est Schma1 qu'il faut utiliser pour viter de la redondance logique
-
Cls d'une relationX est une cl pour R sil nexiste pas 2 tuples distincts de R ayant mme valeur sur X, et si aucun sous-ensemble de X ne vrifie cette propritLa cl d'une relation R est en dpendance fonctionnelle avec tous les attributs de RSi R possde plusieurs cls potentielles, on appelle cl primaire celle choisie pour cl
-
Un groupe d'attributs Y de R est une cl trangre de R si Y est la cl primaire d'au moins une autre relation distincte de R
ExEtudiant (nome, age, nomville)Ville (nomville, pays, population)
-
Valeurs nullesDe l'information inconnue ou incomplte peut tre introduite dans une base via des valeurs nulles :
-
Intgrit d'entit (ou de relation)L'intgrit d'entit correspond la proprit d'un ensemble de ne pas contenir de doublonsCeci passe par l'attribution chaque relation du schma d'une cl primaire. Chaque valeur de cl primaire doit tre unique et non nulle
-
Intgrit de rfrenceUn schma relationnel contient --> des relations statiques (entits autonomes)--> des relations dpendantes (leur existence est lie celle de relations statiques)ExEtudiant (Ide, nome, prenom, age)Socit (Ids, noms, activite, adresses)Convention (Ide, Ids, date, duree)
Les dpendances se caractrisent par des liaisons de type N : M entre les entits, transformes lors du passage au schma relationnel en cls trangresL'intgrit de rfrence est la rgle qui rgit les valeurs des cls trangres (valeurs nulles ou existantes dans la table lie)
-
Intgrit lie l'applicationChaque application modlise peut faire apparatre d'autres contraintes spcifiquesEx: un tudiant ne ralise quun stage la foisCes contraintes, dites d'intgrit smantique, ne sont pas (toutes) directement modlisables au niveau du schma relationnel