1 csi 2532 ----------------------------------------- bases de donn©es i professeur: dr. fadi...

Download 1 CSI 2532 ----------------------------------------- Bases de Donn©es I Professeur: Dr. Fadi Malek malek@site. @site.   malek/csi2532

Post on 04-Apr-2015

114 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Page 1
  • 1 CSI 2532 ----------------------------------------- Bases de Donnes I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca http://www.site.uottawa.ca/~malek/csi2532
  • Page 2
  • 2 Survol des SGBDs Chapitre 1
  • Page 3
  • 3 Objectifs Survol du cours Dfinition dun SGBD Motivations pour lutilisation dun SGBD Modles des donnes Requtes et manipulation des donnes Accs simultan aux donnes Architecture dun SGBD Personnel impliqu dans les SGBDs
  • Page 4
  • 4 Survol du Cours Sujet Survol des SGBDs et introduction du cours Conception des bases de donnes : modle ER Modle relationnel Algbre et calcul relationnel Contraintes et requtes SQL Triggers Formes normales Application des bases de donnes Applications Internet Fichiers, disques et indexes Evaluation des requtes
  • Page 5
  • 5 Survol du Cours (Suite) Manuel Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems, 3e Edition, McGraw Hill, 2003 Charge de travail et valuation Devoir 1: 5% Mi-session: 20% (Semaine de 25 Fevrier) Devoir 2: 5% Devoir 3: 5% Projet: 20% (En groupe de 2) Examen Final: 45% IL FAUT AVOIR AU MOINS 50% A LENSEMBLE DES EXAMENS (MI-SESSION + FINAL) POUR PASSER LE COURS
  • Page 6
  • 6 Dfinition dun SGBD Une base de donnes est une trs large collection de donnes intgres. Un systme de gestion des bases de donnes (SGBD) est un ensemble de logiciels conus pour stocker et grer des bases de donnes Les organisations font face de larges quantits de donnes qui doivent tre gres efficacement. Un SGBD modle le monde rel des organisations : Entits (p.ex., tudiants, cours, corps professoral et salle de cours) Relation (p.ex., Michel est enrl dans CSI2532; Fadi enseigne CSI2532; le cours CSI2532 a lieu dans la salle STE 2052)
  • Page 7
  • 7 Motivations (1) Les systmes de gestion des fichiers ont des dfauts: Chaque application doit elle-mme dplacer de large quantits de donnes entre la mmoire principale et la mmoire secondaire Chaque application doit avoir une mthode didentification de toutes les donnes pour le cas o le mode dadressage sous-jacent ne suffit pas (p.ex., un adressage 32-bits ne permet pas daccder directement tous les enregistrements des donnes dpassant plus de 4GB.)
  • Page 8
  • 8 Motivations (2) Dfauts des systmes de gestion des fichiers (suite) Besoin dun code spcial pour diffrentes requtes. Besoin de protection des donnes dinconsistances dues aux multiples usagers simultans qui changent ces donnes. Besoin dassurer un sauvetage ( crash recovery ) consistant. Besoin de fournir plus de scurit et de contrle de laccs que le mcanisme de mots de passe offert par les systmes dexploitation.
  • Page 9
  • 9 Motivations (3) Pourquoi utiliser un SGBD? Indpendance des donnes : une application ne voit pas les dtails de la reprsentation et du stockage des donnes. accs efficient : utilisation de mthodes de stockage et daccs trs sophistiques et efficientes. Temps de dveloppement dapplications rduit : les fonctionnalits dun SGBD nont pas besoin dtre ddoubles.
  • Page 10
  • 10 Motivations (4) Pourquoi utiliser un SGBD? (Suite) Intgrit et scurit des donnes : appliquer les contraintes dintgrit et un contrle daccs. Administration uniforme de donnes : des utilisateurs expriments administrent les donnes utilises par des utilisateurs inexpriments. accs concurrent, sauvetage ( crash recovery -- reprise des plantages) : un utilisateur accde aux donnes sans tenir compte des autres utilisateurs du systme.
  • Page 11
  • 11 Motivations (5) Pourquoi tudier les SGBDs? Le volume des donnes et leur diversit saccrot normment. Bibliothques digitales, systme de vido interactif, projet du gnome humain, lexploration de Mars ... Les besoins pour des SGBDs explosent La gestion efficiente dune masse si diverse de donnes implique des travaux dans la plupart des sujets de recherche en informatique. Gnie logiciel, langues, thorie, IA, multimdia, logique, etc.
  • Page 12
  • 12 Modles des Donnes (1) Un modle des donnes est une collection dlments de haut niveau servant dcrire les donnes. Un schma est une description dune collection particulire de donnes utilisant un modle prcis des donnes. Une instance dun schma est un ensemble de donnes organises selon un schma donn. Le modle relationnel est le plus rpandu. Concept principal: instance relationnelle ( relation ), i.e. une table ayant des lignes et des colonnes. Chaque relation a un schma relationnel ( schma ) qui dcrit le nom et les attributs de la dite relation.
  • Page 13
  • 13 Modle des Donnes (2) Niveaux dabstraction Les schmas des donnes sont dcrits 3 niveaux dabstractions: vues, schma conceptuel et schma physique. Les Vues (schmas externes) dcrivent comment les utilisateurs voient les donnes. Un schma conceptuel dfinit la structure logique. Un schma physique dcrit les fichiers et lindex utiliser. Les schmas sont dfinis en utilisant un langage de dfinition de donnes (DDL). schma physique schma conceptuel vue 1vue 2vue 3
  • Page 14
  • 14 Modle des Donnes (3) Indpendance des Donnes: consquence de la distinction des niveaux dabstraction Les applications sont isoles de la manire dont les donnes sont structures et stockes. Chaque niveau dabstraction est protg des changements dans la structure du niveau infrieur. Indpendance logique : protection des changements dans la structure logique des donnes. Indpendance physique : protection des changements dans la structure physique des donnes.
  • Page 15
  • 15 Modle de Donnes: Exemple Base de Donnes Universitaires schma conceptuel: Students(sid: string, name: string, login: string, age: integer, gpa: real) Courses(cid: string, cname: string, credits: integer) Enrolled(sid: string, cid: string, grade: string) schma physique: Relations stockes comme fichiers non tris. Index sur la premire colonne de Students et Courses; index sur les deux premires colonnes de Enrolled, etc. schma externe (Vue): Course_info(cid: string, enrollment: integer)
  • Page 16
  • 16 Requtes et Manipulation des Donnes Une requte est une question impliquant les donnes stockes. Quel est le nom du professeur qui enseigne CSI2532? Quel est le nombre total dtudiants enrolls dans CSI2532? Quel est le pourcentage dtudiants ayant eu un A+ dans CSI2532? Un langage de requtes est langage spcialis dans lequel des requtes peuvent tre poses sur une base de donnes. Les donnes sont modifies /requises en utilisant un langage de manipulation des donnes (DML). Ainsi un langage de requtes est un sous langage dun DML. Le modle relationnel supporte 2 langages de requtes: Calcul relationnel : langage de requtes bas sur la logique Algbre Relationnelle : base sur un ensemble doprateurs pour la manipulation des relations.
  • Page 17
  • 17 Accs Simultan aux Donnes (1) Lexcution simultane des programmes dutilisation est essentiel pour une bonne performance des SGBDs. Lexcution simultane se fait par entrelacement des actions de diffrents utilisateurs. Lentrelacement peut conduire des inconsistances (incohrences): p. ex. lors dun retrait dargent effectu pendant que la balance du compte est calcule. Le SGBD garantit que des inconsistances narrivent pas: un utilisateur peut utiliser le systme comme sil sagissait dun systme usager unique.
  • Page 18
  • 18 Accs Simultan: Transaction Une transaction est une squence atomique dactions sur la base de donnes (reads/writes) correspondant lexcution dun programme de transaction. Chaque transaction, excute compltement, doit laisser la BD dans un tat consistant si la BD tait consistante au dbut de la transaction. Les utilisateurs peuvent spcifier de simples contraintes dintgrit sur les donnes et le SGBD les appliquera. Au del de cela, le SGBD ne comprend pas la smantique des donnes. (p. ex. il ne comprend pas comment calculer la moyenne cumule sur un compte dtudiant). Do, lutilisateur est en dernier ressort responsable du maintien de la consistance des donnes!
  • Page 19
  • 19 Accs Simultan: Planification des Transactions Un SGBD garantit que lexcution de {T1,..., Tn} est quivalente une excution srielle de T1,..., Tn. Avant de lire/crire un objet, une transaction requiert un verrou sur cet objet et attend que le verrou soit libre. Tous les verrous sont relchs la fin de la transaction. (verrouillage 2PL strict.) Ide: Si une action de Ti (soit writes X ) affecte Tj (qui pourrait tre entrain dexcuter un reads X ), un parmi les deux, soit Ti, doit obtenir un verrou sur X dabord et lautre,Tj, sera forc dattendre jusqua ce que Ti finisse; ceci entrane que les transactions seront effectivement ordonnes. Si p. ex. Tj a dj un verrou sur Y et Ti requiert plus tard un verrou sur Y, il y a dans ce cas un interblockage (deadlock)! Ti ou Tj est annull et redmarr!
  • Page 20
  • 20 Accs Simultan aux Donnes: Atomicit Un SGBD garantit l atomicit (proprit du tout ou rien ) mme en cas de crash (plantage) au milieu de la transaction. Ide: garder un journal ( log ) de toutes les actions excutes par le SGBD lors de lexcution dun ensemble de transactions: Avant que un changement ne soit fait sur une BD, lentre correspondante dans le log est forcment stocke un endroit sr ( protocole WAL ); les systmes dexploitation noffrent souvent ce sujet quun support inadquat.) Aprs un changement, les effets de la transaction partiellement excute sont dfaits en utilisant le log. (Grce au WAL, si une entre dans le log ntait pas sauve avant le crash, le changement associ cette entre na donc pas t appliqu la base de donnes!)
  • Page 21