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

1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa SITE.

Présentations similaires


Présentation au sujet: "1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa SITE."— Transcription de la présentation:

1 1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa SITE 5072

2 2 Revue du Cours « Bases de Données I » Chapitres 2-5

3 3 Définition dun 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 denterprises 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.

4 4 Table des Matières de BD I Fondations des SGBDs (Chap. 2-5, 19): : Design conceptuel - Chap. 2: Input: Exigences dune 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

5 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

6 6 Table des Matières de BD II Évaluation des requêtes (Chap ): 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 ): 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

7 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 lAP 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 à laide des formes normales. Design physique: C onsidè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.

8 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 dune entité ou dune relation Éléments avancés: Contraintes: Qualification dune relation (Contrainte de clé vs. participation) Entités faibles : Identifiables uniquement par la clé primaire dune autre entité Hiérarchies ISA : Semblable aux hiérarchies de la conception orientée objet Agrégation: Agglutination dun ensemble de relations avec les ensembles dentité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?

9 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 dune BD: ensemble de schémas des relations dans la BD. Schéma relationnel dune instance de la BD: ensemble des instances relationnelles de la BD.

10 10 Exemple de Relation Cardinalité = 3, arité = 5, toutes les lignes sont distinctes. Les systèmes commerciaux permettent des duplicata. Toutes les colonnes dune instance relationnelle ont-elles à être distinctes? Dépend de la présence ou non dun ordre. Schema : Students(sid: string, name: string, login: string, age: integer, gpa: real). Instance :

11 11 Création et Altération des Relations CREATE TABLE Students CREATE TABLE Enrolled (sid: CHAR(20), name: CHAR(20), cid: CHAR(20), login: CHAR(10), grade: CHAR(2)) age: INTEGER, gpa: REAL) DROP TABLE StudentsALTER TABLE Students ADD COLUMN firstYear: integer INSERT INTO Students (sid, name, login, age, gpa) VALUES (53688, Smith, 18, 3.2) DELETE FROM Students S WHERE S.name = Smith

12 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 )

13 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.

14 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 limplémentation de ceux-ci : Algèbre relationnelle : Plus opérationnelle, très utile pour représenter les plans dexécution. Calcul relationnel : Permet aux utilisateurs de décrire ce quils veulent, plutôt que la manière dont ce quils veulent doit être calculé. (Non opérationnel, déclaratif.)

15 15 Algèbre Relationnelle Opérations de base: Sélection ( ) Sélectionne un sous-ensemble des lignes dune relation. Projection ( ) Efface des colonnes dune 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 ! (Lalgèbre est close.)

16 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.

17 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.

18 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 lensemble 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.

19 19 Calcul Relationnel des Tuples Forme de la requête : 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.

20 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.

21 21 Variables Liées vs. Libres Une restriction importante simpose sur la définition dune requête : La variable t qui apparaît à la gauche de `| doit être la seule variable libre dans la formule p(...).

22 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 dintégrité avancées: utilisés pour spécifier des actions que le SGBD exécutera automatiquement. SQL incorporé: permet à SQL dêtre appelé dun langage hôte. SQL dynamique : permet de créer et dexécuter des requêtes pendant lexécution dun programme dapplication.

23 23 Survol des Composantes de SQL (Suite) Exécution client serveur et accès à distance aux BDs: commandes sur laccès à un serveur distant. Gestion des transactions: contrôle lexécution des transactions. Sécurité: contrôle laccè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.

24 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 dattributs 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-list FROM relation-list WHERE qualification

25 25 Exemple dÉvaluation Conceptuelle SELECT S.sname FROM Sailors S, Reserves R WHERE S.sid=R.sid AND R.bid=103

26 26 Opérateurs dAgrégat Ces opérateurs sont une extension très significative de lalgèbre relationnelle. COUNT (*) COUNT ( [ DISTINCT ] A) SUM ( [ DISTINCT ] A) AVG ( [ DISTINCT ] A) MAX (A) MIN (A) SELECT AVG (S.age) FROM Sailors S WHERE S.rating=10 SELECT COUNT (*) FROM Sailors S SELECT AVG ( DISTINCT S.age) FROM Sailors S WHERE S.rating=10 SELECT S.sname FROM Sailors S WHERE S.rating= ( SELECT MAX (S2.rating) FROM Sailors S2) Une seule colonne SELECT COUNT ( DISTINCT S.rating) FROM Sailors S WHERE S.sname=Bob

27 27 GROUP BY et HAVING target-list contient (i) une liste dattributs et (ii) les termes avec opérations dagrégat (p.ex., MIN ( S.age )). La liste dattributs (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 nest pas dans grouping-list, plusieurs lignes dun 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-list FROM relation-list WHERE qualification GROUP BY grouping-list HAVING group-qualification

28 28 GROUP BY et HAVING (Suite) group-qualification contient une liste dattributs. La liste group-qualification doit contenir un attribut apparaissant comme argument dun opérateur dagré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-list FROM relation-list WHERE qualification GROUP BY grouping-list HAVING group-qualification

29 29 Trouver lage du plus jeune navigateur en age de voter (i.e. âgé dau 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 ; dautres 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 mage FROM Sailors S WHERE S.age >= 18 GROUP BY S.rating HAVING COUNT (*) > 1 Réponse

30 30 Résumé SQL fut un facteur qui a joué un rôle important dans lacceptation rapide du modèle relationnel; de plus, cest un standard international. Lévaluation des requêtes et le traitement des transactions présupposera SQL ainsi que lalgè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.


Télécharger ppt "1 Bases de Données II (Automne 2007) Professeur: Iluju Kiringa SITE."

Présentations similaires


Annonces Google