Top Banner
Bases de Données II (Automne 2007) Professeur: Iluju Kiringa [email protected] http://www.site.uottawa.ca/ ~kiringa SITE 5072
30

1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa [email protected] [email protected] kiringa SITE.

Apr 04, 2015

Download

Documents

Florence Coste
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

1

Bases de Données II(Automne 2007)

Professeur: Iluju [email protected]

http://www.site.uottawa.ca/~kiringaSITE 5072

Page 2: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

2

Revue du Cours « Bases de Données I »

Chapitres 2-5

Page 3: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

3

Définition d’un SGBD -- Rappel

Une base de données centralisée est une très large collection de données intégrées.

Les organisations font face à de larges quantités de données qui doivent être gérées efficacement. Bien d’enterprises entreposent des GBs, voire des

TBs de données Quelques applications scientifiques entreposent des

PBs de donné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.

Page 4: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

4

Table des Matières de BD I Fondations des SGBDs (Chap. 2-5, 19): :

Design conceptuel - Chap. 2: • Input: Exigences d’une application • Output: Diagrammes ER (i.e., modèle ER)

Design logique – Chap. 3: • Input: Diagrammes ER• Output: Modèle relationnel

Normalisation – Chap. 19:• Input: Modèle relationnel • Output: Modèle relationnel en forme normales

Algèbre et calcul relationnels – Chap. 4 SQL – Chap. 5

Développement des applications utilisant des BDs (Chap. 6-7) Applications: SQL imbriqué, JDBC, SQLJ, procédures stockées Application Internet: HTTP, HTML, XML, architecture à 3

étages

Page 5: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

5

Table des Matières de BD I & BD II Stockage et indexage (Chap. 8-11):

Disques et fichiers – Chap. 9:• Hiérarchie des mémoires• Gestion des disques et des fichiers sur disque

Indexes à arbre – Chap. 10:• Arbres ISAM• Arbres B+

Indexes à hachages – Chap. 11:• Hachage statique • Hachage extensible• Hachage linéaire

Page 6: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

6

Table des Matières de BD II Évaluation des requêtes (Chap. 12-15):

Tri externe - Chap. 13 Evaluation des opérateurs relationnels -- Chap. 14 Exemple d'optimisateur de requêtes: Système R –

Chap. 15 Traitement des transactions (Chap. 16-18):

Contrôle de l'accès simultané – Chap. 17 Reprise – Chap. 18

Design physique (Chap. 20) Matières avancées (Chap. 22,25, 26, 23 ou 27)

Bases de données parallèles et distribuées – Chap. 22 Bases de données orientées objet – Chap. 23 Entreposage de données et aide à la décision – Chap.

25 Exploration de données Chap. 26 Recherche documentaire et données XML – Chap. 27

Page 7: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

7

Survol de la Conception des Bases de Données

Analyse des exigences (prérequis): Trouver ce que les utilisateurs veulent faire avec la BD.

Design conceptuel: Utilise le résultat de l’AP pour développer une description (sémantique) de haut niveau pour les données à stocker, ensemble avec leurs contraintes. Le résultat de cet étape est habituellement un diagramme ER.

Design logique: Choisir un SGBD et traduire le schéma du design conceptuel (diagramme ER) dans le modèle des données du SGBD. Le résultat de cette étape est le schéma logique des données.

décomposition du schéma: Analyse le schéma logique, identifie les problèmes potentiels et résout ces derniers en décomposant les schémas logiques à l’aide des formes normales.

Design physique: Considère la charge de travail attendue que la BD supportera afin de décomposer davantage le design en vue de la performance désirée.

Page 8: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

8

Modèle Entité-Relation Modèle entité-relation (ER)

Éléments de base: • Entité: Objet du monde réel• Relation: Association entre deux ou plusieurs entités• Attributs: Description d’une entité ou d’une relation

Éléments avancés: • Contraintes: Qualification d’une relation (Contrainte de clé vs. participation)• Entités faibles : Identifiables uniquement par la clé primaire d’une autre entité • Hiérarchies ISA : Semblable aux hiérarchies de la conception orientée objet• Agrégation: Agglutination d’un ensemble de relations avec les ensembles

d’entités associés par cette relation

Design conceptuel utilisant le modèle ER: Devrait-on modeler un concept comme entité ou comme attribut? Devrait-on modeler un concept comme entité ou comme relation? Identification des relations: Binaire ou ternaire …? agrégation?

Page 9: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

9

Concepts des Bases de Données Relationnelles

Relation: fait de 2 composantes: Instance : une table, avec lignes et colonnes.

#lignes = cardinalité, #colonnes = degré / arité. Schéma : spécifie le nom de la relation, plus le nom et le

domaine (type) de chaque colonne (attribut). Une relation comme est un ensemble de lignes ou

uplets (tuples) (i.e., toutes les lignes sont distinctes); chaque tuple a la même arité que le schéma de la relation.

Base de données relationnelles: un ensemble de relations, chacune ayant un nom distinct.

Schéma relationnel d’une BD: ensemble de schémas des relations dans la BD.

Schéma relationnel d’une instance de la BD: ensemble des instances relationnelles de la BD.

Page 10: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

10

Exemple de Relation

sid name login age gpa

53666 Jones jones@cs 18 3.4

53688 Smith smith@eecs 18 3.2 53650 Smith smith@math 19 3.8

Cardinalité = 3, arité = 5, toutes les lignes sont distinctes. Les systèmes commerciaux permettent des duplicata. Toutes les colonnes d’une instance relationnelle ont-elles à être distinctes? Dépend de la présence ou non d’un ordre.

Schema : Students(sid: string, name: string, login: string,

age: integer, gpa: real).Instance :

Page 11: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

11

Création et Altération des Relations

CREATE TABLE Students CREATE TABLE Enrolled(sid: CHAR(20), (sid: CHAR(20), name: CHAR(20), cid: CHAR(20), login: CHAR(10), grade: CHAR(2)) age: INTEGER, gpa: REAL)

DROP TABLE Students ALTER TABLE Students ADD COLUMN firstYear: integer

INSERT INTO Students (sid, name, login, age, gpa) VALUES (53688, ‘Smith’, ‘smith@ee’, 18, 3.2)

DELETE FROM Students S WHERE S.name = ‘Smith’

Page 12: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

12

Clé Primaire et Clé Étrangère en SQL

CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid) )

CREATE TABLE Enrolled (sid CHAR(20) cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid), UNIQUE (cid, grade) )

CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students )

Page 13: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

13

Design Logique: du Modèle ER au Relationnel

Le modèle ER représente le design initial et « high-level » de la base de données.

La tâche est de générer un schéma relationnel qui soit le plus proche possible du modèle ER.

La traduction est approximative car il est difficile de traduire toutes les contraintes du modèle ER en un modèle logique efficient.

Page 14: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

14

Langages de Requêtes Relationnels Deux langages de requêtes à caractère

mathématique forment le soubassement des langages réels comme SQL et de l’implémentation de ceux-ci : Algèbre relationnelle: Plus opérationnelle, très

utile pour représenter les plans d’exécution. Calcul relationnel: Permet aux utilisateurs de

décrire ce qu’ils veulent, plutôt que la manière dont ce qu’ils veulent doit être calculé. (Non opérationnel, déclaratif.)

Page 15: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

15

Algèbre Relationnelle Opérations de base:

Sélection ( ) Sélectionne un sous-ensemble des lignes d’une relation.

Projection ( ) Efface des colonnes d’une relation. Produit Cartésien ( ) Permet de combiner deux relations. Différence ( ) Contient des tuples de la relation 1, moins ceux de

la relation 2. Union ( ) Contient les tuples des relations 1 et 2.

Opérations additionnelles: Intersection, join, division, « renaming »: Pas essentielles; utiles.

Les opérations retournant une relation, elles peuvent être composées! (L’algèbre est close.)

Page 16: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

16

Joins Join conditionnel:

Le Schéma du résultat est le même que celui du produit Cartésien.

Moins de tuples que dans le produit Cartésien; pourrait être calculé de manière plus efficiente.

Parfois appelé theta-join.

R c S c R S ( )

(sid) sname rating age (sid) bid day

22 dustin 7 45.0 58 103 11/ 12/ 9631 lubber 8 55.5 58 103 11/ 12/ 96

S RS sid R sid

1 11 1

. .

Page 17: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

17

Joins (Suite) Equi-Join: Un cas spécial du join conditionnel où la

condition c contient seulement des égalités.

Schéma du résultat similaire au produit Cartésien, mais contient seulement une copie des attributs pour lesquels l’égalité est spécifiée.

Join naturel: Equi-join dans lequel il y a égalité entre tous les attributs ayant le même nom dans les deux relations.

sid sname rating age bid day

22 dustin 7 45.0 101 10/ 10/ 9658 rusty 10 35.0 103 11/ 12/ 96

S Rsid

1 1

Page 18: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

18

Calcul Relationnel Deux variantes:

Calcul relationnel des tuples(TRC) Calcul relationnel des domaines (DRC).

Contient des variables, constantes, ops de comparaison, opérateurs logiques, et quantificateurs. TRC: Le domaine des variables est l’ensemble des tuples. DRC: Le domaine des variables est le domaine des attributs. TRC et DRC: souslangages de la logique du premier ordre.

Les expressions du calcul sont appelées des formules. Une réponse est un assignement de constantes aux variables qui rend la formule vraie.

Page 19: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

19

Calcul Relationnel des Tuples

Forme de la requête:

)(| tpt

La réponse inclut tous les tuples t qui rendent la formule p(t) vraie.

La formule est définie récursivement, en partant des formules atomiques et en construisant des formules de plus en plus grandes au moyen des opérateurs (connecteurs) logiques.

Page 20: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

20

Formules TRC Formules atomiques:

, R.a op S.b, R.a op constante op =

Formule: Formule atomique, ou , p et q étant des formules, ou , avec la variable R libre dans p(R), ou , avec la variable R libre dans p(R)

Les quantificateurs et lient R. Une variable non liées est dite libre.

RnameR , , , , ,

p p q p q, ,))(( RpR))(( RpR

R R

Page 21: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

21

Variables Liées vs. Libres

Une restriction importante s’impose sur la définition d’une requête : La variable t qui apparaît à la gauche de `|’ doit

être la seule variable libre dans la formule p(...).

)(| tpt

Page 22: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

22

Survol des Composantes de SQL

« Data manipulation language »: utilisé pour poser des requêtes et insérer, effacer ou modifier des lignes.

« Data definition language »: utilisé pour créer, détruire ou modifier les tables et vues.

Triggers et contraintes d’intégrité avancées: utilisés pour spécifier des actions que le SGBD exécutera automatiquement.

SQL incorporé: permet à SQL d’être appelé d’un langage hôte.

SQL dynamique: permet de créer et d’exécuter des requêtes pendant l’exécution d’un programme d’application.

Page 23: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

23

Survol des Composantes de SQL (Suite) Exécution client serveur et accès à distance

aux BDs: commandes sur l’accès à un serveur distant.

Gestion des transactions: contrôle l’exécution des transactions.

Sécurité: contrôle l’accès des utilisateurs au système.

Divers composantes: orientation objet, récursivité, aide à la décision, XML, données spatiales, exploration des données (data mining), etc.DML, DDL, triggers et ICs seront vu dans ce module.

Page 24: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

24

Requête SQL de Base

relation-list Une liste des noms de relation (possiblement avec une variable d’étendue («range-variable») après chaque nom).

target-list Une liste d’attributs des relations dans relation-list

qualification Comparaisons (Attr op const ou Attr1 op Attr2, où op est une des opérations ) combinées en utilisant les particules logiques AND, OR et NOT.

DISTINCT est un mot-clé optionnel indiquant que la réponse ne devrait pas contenir des duplicata. Par défaut les duplicata ne sont pas éliminés.

SELECT [DISTINCT] target-listFROM relation-listWHERE qualification

, , , , ,

Page 25: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

25

Exemple d’Évaluation Conceptuelle

SELECT S.snameFROM Sailors S, Reserves RWHERE S.sid=R.sid AND R.bid=103

(sid) sname rating age (sid) bid day

22 dustin 7 45.0 22 101 10/ 10/ 96

22 dustin 7 45.0 58 103 11/ 12/ 96

31 lubber 8 55.5 22 101 10/ 10/ 96

31 lubber 8 55.5 58 103 11/ 12/ 96

58 rusty 10 35.0 22 101 10/ 10/ 96

58 rusty 10 35.0 58 103 11/ 12/ 96

Page 26: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

26

Opérateurs d’Agrégat Ces opérateurs sont une

extension très significative de l’algèbre relationnelle.

COUNT (*)COUNT ( [DISTINCT] A)SUM ( [DISTINCT] A)AVG ( [DISTINCT] A)MAX (A)MIN (A)

SELECT AVG (S.age)FROM Sailors SWHERE S.rating=10

SELECT COUNT (*)FROM Sailors S

SELECT AVG ( DISTINCT S.age)FROM Sailors SWHERE S.rating=10

SELECT S.snameFROM Sailors SWHERE S.rating= (SELECT MAX(S2.rating) FROM Sailors S2)

Une seule colonne

SELECT COUNT (DISTINCT S.rating)FROM Sailors SWHERE S.sname=‘Bob’

Page 27: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

27

GROUP BY et HAVING

target-list contient (i) une liste d’attributs et (ii) les termes avec opérations d’agrégat (p.ex., MIN (S.age)). La liste d’attributs (i) doit être un sous-ensemble de la liste

grouping-list. Intuitivement, chaque tuple de la réponse correspond à un groupe, et un groupe est un ensemble de tuples qui ont la même valeur pour tous les attributs dans grouping-list.

Si un attribut de target-list n’est pas dans grouping-list, plusieurs lignes d’un même groupe peuvent avoir différentes valeurs pour de tels attributs et il sera difficile de choisir les quelles parmi ces valeurs pour inclusion dans la réponse de la requête.

SELECT [DISTINCT] target-listFROM relation-listWHERE qualificationGROUP BY grouping-listHAVING group-qualification

Page 28: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

28

GROUP BY et HAVING (Suite)

group-qualification contient une liste d’attributs. La liste group-qualification doit contenir un attribut

apparaissant comme argument d’un opérateur d’agrégat dans target-list. Cela garantit que les expressions qui apparaissent dans group-qualification auront une même valeur par groupe.

SQL/99 contient 2 nouvelles fonctions: EVERY et ANY applicables à chaque tuple dans un groupe. (Leur sémantique est claire.)

SELECT [DISTINCT] target-listFROM relation-listWHERE qualificationGROUP BY grouping-listHAVING group-qualification

Page 29: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

29

Trouver l’age du plus jeune navigateur en age de voter (i.e. âgé d’au moins 18 ans) pour chaque niveau ayant au moins 2 tels navigateurs

Seul S.rating et S.age sont mentionnés les clauses SELECT, GROUP BY ou HAVING; d’autres attributs sont `nonnécessaires’.

La 2ème colonne du résultat reste sans nom par défaut. (Utiliser AS pour la nommer.)

SELECT S.rating, MIN (S.age) AS mageFROM Sailors SWHERE S.age >= 18GROUP BY S.ratingHAVING COUNT (*) > 1

sid sname rating age22 dustin 7 45.031 lubber 8 55.571 zorba 10 16.064 horatio 7 35.029 brutus 1 33.058 rusty 10 35.0

rating age1 33.07 45.07 35.08 55.510 35.0

rating mage 7 35.0

Réponse

Page 30: 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca kiringa@site.uottawa.ca kiringa SITE.

30

Résumé SQL fut un facteur qui a joué un rôle important dans

l’acceptation rapide du modèle relationnel; de plus, c’est un standard international.

L’évaluation des requêtes et le traitement des transactions présupposera SQL ainsi que l’algèbre et le calcul relationnels.

Beaucoup de voies alternatives pour exprimer une requête existent; un optimisateur cherchera le plan d’évaluation le plus performant dans la mesure du possible.

Les matières avancées présupposeront aussi le modèle relationnel et SQL.