1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek...

28
CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca http://www.site.uottawa.ca/ ~malek/csi2532

Transcript of 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek...

Page 1: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

1

CSI 2532-----------------------------------------

Bases de Données I

Professeur: Dr. Fadi [email protected]

http://www.site.uottawa.ca/~malek/csi2532

Page 2: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

2

Survol des SGBDs

Chapitre 1

Page 3: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

3

Objectifs Survol du cours Définition d’un SGBD Motivations pour l’utilisation d’un

SGBD Modèles des données Requêtes et manipulation des données Accès simultané aux données Architecture d’un SGBD Personnel impliqué dans les SGBDs

Page 4: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

4

Survol du Cours Sujet

Survol des SGBDs et introduction du cours Conception des bases de données : modèle ER Modèle relationnel Algèbre et calcul relationnel Contraintes et requêtes SQL Triggers Formes normales Application des bases de données Applications Internet Fichiers, disques et indexes Evaluation des requêtes

Page 5: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

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 L‘ENSEMBLE DES EXAMENS (MI-SESSION + FINAL) POUR PASSER LE COURS

Page 6: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

6

Définition d’un SGBD Une base de données est une très large collection

de données intégrées. Un système de gestion des bases de données

(SGBD) est un ensemble de logiciels conçus pour stocker et gérer des bases de données

Les organisations font face à de larges quantités de données qui doivent être gérées efficacement.

Un SGBD modèle le monde réel des organisations: Entités (p.ex., étudiants, cours, corps professoral et salle de

cours) Relation (p.ex., Michel est enrôlé dans CSI2532; Fadi enseigne

CSI2532; le cours CSI2532 a lieu dans la salle STE 2052)

Page 7: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

7

Motivations (1) Les systèmes de gestion des fichiers ont

des défauts: Chaque application doit elle-même déplacer

de large quantités de données entre la mémoire principale et la mémoire secondaire

Chaque application doit avoir une méthode d’identification de toutes les données pour le cas où le mode d’adressage sous-jacent ne suffit pas (p.ex., un adressage 32-bits ne permet pas d’accéder directement à tous les enregistrements des données dépassant plus de 4GB.)

Page 8: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

8

Motivations (2) Défauts des systèmes de gestion des fichiers

(suite) Besoin d’un code spécial pour différentes requêtes. Besoin de protection des données d’inconsistances

dues aux multiples usagers simultanés qui changent ces données.

Besoin d’assurer un sauvetage (« crash recovery ») consistant.

Besoin de fournir plus de sécurité et de contrôle de l’accès que le mécanisme de mots de passe offert par les systèmes d’exploitation.

Page 9: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

9

Motivations (3) Pourquoi utiliser un SGBD?

Indépendance des données: une application ne voit pas les détails de la représentation et du stockage des données.

accès efficient: utilisation de méthodes de stockage et d’accès très sophistiquées et efficientes.

Temps de développement d’applications réduit: les fonctionnalités d’un SGBD n’ont pas besoin d’être dédoublées.

Page 10: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

10

Motivations (4) Pourquoi utiliser un SGBD? (Suite)

Intégrité et sécurité des données: appliquer les contraintes d’intégrité et un contrôle d’accès.

Administration uniforme de données: des utilisateurs expérimentés administrent les données utilisées par des utilisateurs inexpérimentés.

accès concurrent, sauvetage ( « crash recovery » -- reprise des plantages): un utilisateur accède aux données sans tenir compte des autres utilisateurs du système.

Page 11: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

11

Motivations (5) Pourquoi étudier les SGBDs?

Le volume des données et leur diversité s’accroît énormément.

• Bibliothèques digitales, système de vidéo interactif, projet du génome humain, l’exploration de Mars …

• ... Les besoins pour des SGBDs explosent

La gestion efficiente d’une masse si diverse de données implique des travaux dans la plupart des sujets de recherche en informatique.

• Génie logiciel, langues, théorie, IA, multimédia, logique, etc.

Page 12: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

12

Modèles des Données (1) Un modèle des données est une collection

d’éléments de haut niveau servant à décrire les données.

Un schéma est une description d’une collection particulière de données utilisant un modèle précis des données.

Une instance d’un schéma est un ensemble de données organisées selon un schéma donné.

Le modèle relationnel est le plus répandu. Concept principal: instance relationnelle (relation),

i.e. une table ayant des lignes et des colonnes. Chaque relation a un schéma relationnel (schéma)

qui décrit le nom et les attributs de la dite relation.

Page 13: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

13

Modèle des Données (2) Niveaux d’abstraction

Les schémas des données sont décrits à 3 niveaux d’abstractions: vues, schéma conceptuel et schéma physique.

• Les Vues (schémas externes) décrivent comment les utilisateurs voient les données.

• Un schéma conceptuel définit la structure logique.

• Un schéma physique décrit les fichiers et l’index à utiliser.

Les schémas sont définis en utilisant un langage de définition de données (DDL).

schéma physique

schéma conceptuel

vue 1 vue 2 vue 3

Page 14: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

14

Modèle des Données (3) Indépendance des Données: conséquence

de la distinction des niveaux d’abstraction Les applications sont isolées de la manière dont

les données sont structurées et stockées. Chaque niveau d’abstraction est protégé des

changements dans la structure du niveau inférieur.

Indépendance logique: protection des changements dans la structure logique des données.

Indépendance physique: protection des changements dans la structure physique des données.

Page 15: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

15

Modèle de Données: Exemple Base de Données Universitaires

schéma 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)

schéma physique:• Relations stockées comme fichiers non triés. • Index sur la première colonne de Students et Courses;

index sur les deux premières colonnes de Enrolled, etc. schéma externe (Vue):

• Course_info(cid: string, enrollment: integer)

Page 16: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

16

Requêtes et Manipulation des Données Une requête est une question impliquant les données

stockées. Quel est le nom du professeur qui enseigne CSI2532? Quel est le nombre total d’étudiants enrollés dans CSI2532? Quel est le pourcentage d’étudiants ayant eu un A+ dans

CSI2532? Un langage de requêtes est langage spécialisé dans

lequel des requêtes peuvent être posées sur une base de données.

Les données sont modifiées /requises en utilisant un langage de manipulation des données (DML). Ainsi un langage de requêtes est un sous langage d’un DML.

Le modèle relationnel supporte 2 langages de requêtes: Calcul relationnel: langage de requêtes basé sur la logique Algèbre Relationnelle: basée sur un ensemble d’opérateurs

pour la manipulation des relations.

Page 17: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

17

Accès Simultané aux Données (1) L’exécution simultanée des programmes

d’utilisation est essentiel pour une bonne performance des SGBDs.

L’exécution simultanée se fait par entrelacement des actions de différents utilisateurs.

L’entrelacement peut conduire à des inconsistances (incohérences): p. ex. lors d’un retrait d’argent effectué pendant que la balance du compte est calculée.

Le SGBD garantit que des inconsistances n’arrivent pas: un utilisateur peut utiliser le système comme s’il s’agissait d’un système à usager unique.

Page 18: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

18

Accès Simultané: Transaction Une transaction est une séquence atomique d’actions

sur la base de données (reads/writes) correspondant à l’exécution d’un programme de transaction.

Chaque transaction, exécutée complètement, doit laisser la BD dans un état consistant si la BD était consistante au début de la transaction. Les utilisateurs peuvent spécifier de simples contraintes

d’intégrité sur les données et le SGBD les appliquera. Au delà de cela, le SGBD ne comprend pas la sémantique

des données. (p. ex. il ne comprend pas comment calculer la moyenne cumulée sur un compte d’étudiant).

D’où, l’utilisateur est en dernier ressort responsable du maintien de la consistance des données!

Page 19: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

19

Accès Simultané: Planification des Transactions Un SGBD garantit que l’exécution de {T1, ... , Tn} est

équivalente à une exécution sérielle 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 relâchés à la fin de la transaction. (verrouillage 2PL strict.)

Idée: Si une action de Ti (soit writes X) affecte Tj (qui pourrait être entrain d’exécuter un reads X), un parmi les deux, soit Ti, doit obtenir un verrou sur X d’abord et l’autre,Tj, sera forcé d’attendre jusqu’a ce que Ti finisse; ceci entraîne que les transactions seront effectivement ordonnées.

Si p. ex. Tj a déjà 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 redémarré!

Page 20: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

20

Accès Simultané aux Données: Atomicité Un SGBD garantit l’atomicité (propriété du « tout ou

rien ») même en cas de crash (plantage) au milieu de la transaction.

Idée: garder un journal (log) de toutes les actions exécutées par le SGBD lors de l’exécution d’un ensemble de transactions: Avant que un changement ne soit fait sur une BD, l’entrée

correspondante dans le log est forcément stockée à un endroit sûr (protocole WAL); les systèmes d’exploitation n’offrent souvent à ce sujet qu’un support inadéquat.)

Après un changement, les effets de la transaction partiellement exécutée sont défaits en utilisant le log. (Grâce au WAL, si une entrée dans le log n’était pas sauvée avant le crash, le changement associé à cette entrée n’a donc pas été appliqué à la base de données!)

Page 21: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

21

Accès Simultané aux Données: le Log Les actions suivantes sont enregistrées dans le log:

Ti écrit un objet: la vielle et la nouvelle valeurs sont enregistrées.

• L’enregistrement du log doit aller sur le disque avant la page qui a changé!

“commit”/”abort” (validation/abandon): un enregistrement indiquant une telle action est inscrite dans le log.

Les enregistrements du log sont chaînés sur base des numéros d’identification des transactions. De la sorte, il est facile de défaire une transaction donnée.

Le log est souvent archivé sur un stockage “stable”. Toute activité relative au log (ainsi que toute autre

activité relative au contrôle d’accès simultané telle que verrouillage/déverrouillage, traitement des deadlocks, etc.) est traité de manière transparente par le SGBD.

Page 22: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

22

Personnes Impliquées dans les BDs Utilisateur final: accède seulement à une

interface du SGBD Vendeurs de SGBDs: IBM, Oracle, Microsoft, etc Chercheurs et programmeurs: inventent de

nouvelles théories et algorithmes pour les SGBDs et en écrivent le code

Programmeurs d’applications: écrivent des programmes C/C++/Java/… qui interagissent avec les SGBDs P.ex. Webmasters avancés, programmeurs d’applications

Administrateur de base de données (DBA) Conçoit les schémas logiques /physiques Traite les questions de sécurité et d’autorisation Assure la disponibilité des données (« crash recovery ») Adapte la base de données à l’évolution des besoins

Page 23: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

23

Architecture d’un SGBD

Un SGBD typique a une architecture à plusieurs couches (“layers”).

Notez que les modules d’accès simultanés et de crash recovery ne sont pas montrés.

Ceci est un parmi plusieurs choix possibles d’architectures, chaque système ayant ses propres particularités.

exécution et optimisationDes requêtes

Operateurs relationels

accès aux fichiers

Gestion de tampons

Gestion d’espace disque

DB

Ces couches doivent considérerL’accès simultané et Le crash recovery

Page 24: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

24

Historique (1) Début des années 60: GE conçoit le 1er

SGBD à caractère général et basé sur le modèle réseau

Fin des années 60s: IBM développe IMS qui est basé sur le modèle hiérarchique

Début des années 70: E. Codd introduit le modèle relationnel pour résoudre les problèmes relatifs aux modèles précédents

Fin des années 70 et début 80: travaux sur le traitement des transactions par Jim Gray et P. Bernstein

Page 25: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

25

Historique (2)

Années 80: L’utilisation des BDs relationnelles devient courante dans les grandes entreprises, arrivée de plusieurs vendeurs de SGBDs, standardisation de SQL, le langage de requêtes pour les BDs relationnelles, etc

Fin 80 et début 90s: modèles de données plus riches (orienté-objet, object-relationnel, etc) et des langages de requêtes plus expressifs (Datalog, relations nichées, etc) sont introduits

Page 26: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

26

Historique (3)

Fin 90: les grands vendeurs étendent les SGBD relationnel avec de nouveaux types de données (images, texte, contenu multimédia, etc) ainsi que avec les requêtes basé sur ces nouveaux types

Pendant toute l’histoire du développement des BDs: Reconnaissance scientifique: Turing Awards aux

chercheurs en BDs C. Bachman, E. Codd, et J. Gray

Naissance d’une large industrie de plusieurs milliards de dollars

Page 27: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

27

Résumé

Un SGBD est utilisé pour maintenir et poser des requêtes à de larges collections de données.

Les bénéfices comprennent le recouvrement du crash, l’accès simultané, développement rapide des applications, intégrité des données et sécurité.

Les niveaux d’abstraction entraînent l’indépendance des données.

Page 28: 1 CSI 2532 ----------------------------------------- Bases de Données I Professeur: Dr. Fadi Malek malek@site.uottawa.ca@site.uottawa.ca malek/csi2532.

28

Résumé (Suite) Un SGBD a généralement une architecture à

niveaux.

Les chercheurs en BDs, les programmeurs et les administrateurs ont des jobs de grande responsabilité et sont bien payés!

La recherche et le développement en SGBDs est un domaine large et excitant au sein de l’informatique; le Canada y joue un rôle clé..

Les BDs sont une industrie générant plus de 15 milliards de dollars annuellement!