Télécharger la présentation
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 5072 The slides for this text are organized into chapters. This lecture covers Chapter 1. Chapter 1: Introduction to Database Systems Chapter 2: The Entity-Relationship Model Chapter 3: The Relational Model Chapter 4 (Part A): Relational Algebra Chapter 4 (Part B): Relational Calculus Chapter 5: SQL: Queries, Programming, Triggers Chapter 6: Query-by-Example (QBE) Chapter 7: Storing Data: Disks and Files Chapter 8: File Organizations and Indexing Chapter 9: Tree-Structured Indexing Chapter 10: Hash-Based Indexing Chapter 11: External Sorting Chapter 12 (Part A): Evaluation of Relational Operators Chapter 12 (Part B): Evaluation of Relational Operators: Other Techniques Chapter 13: Introduction to Query Optimization Chapter 14: A Typical Relational Optimizer Chapter 15: schéma Refinement and Normal Forms Chapter 16 (Part A): Physical Database Design Chapter 16 (Part B): Database Tuning Chapter 17: Security Chapter 18: Transaction Management Overview Chapter 19: Concurrency Control Chapter 20: Crash Recovery Chapter 21: Parallel and Distributed Databases Chapter 22: Internet Databases Chapter 23: Decision Support Chapter 24: Data Mining Chapter 25: Object-Database Systems Chapter 26: Spatial Data Management Chapter 27: Deductive Databases Chapter 28: Additional Topics
2
Revue du Cours « Bases de Données I »
Chapitres 2-5 The slides for this text are organized into chapters. This lecture covers Chapter 1. Chapter 1: Introduction to Database Systems Chapter 2: The Entity-Relationship Model Chapter 3: The Relational Model Chapter 4 (Part A): Relational Algebra Chapter 4 (Part B): Relational Calculus Chapter 5: SQL: Queries, Programming, Triggers Chapter 6: Query-by-Example (QBE) Chapter 7: Storing Data: Disks and Files Chapter 8: File Organizations and Indexing Chapter 9: Tree-Structured Indexing Chapter 10: Hash-Based Indexing Chapter 11: External Sorting Chapter 12 (Part A): Evaluation of Relational Operators Chapter 12 (Part B): Evaluation of Relational Operators: Other Techniques Chapter 13: Introduction to Query Optimization Chapter 14: A Typical Relational Optimizer Chapter 15: schéma Refinement and Normal Forms Chapter 16 (Part A): Physical Database Design Chapter 16 (Part B): Database Tuning Chapter 17: Security Chapter 18: Transaction Management Overview Chapter 19: Concurrency Control Chapter 20: Crash Recovery Chapter 21: Parallel and Distributed Databases Chapter 22: Internet Databases Chapter 23: Decision Support Chapter 24: Data Mining Chapter 25: Object-Database Systems Chapter 26: Spatial Data Management Chapter 27: Deductive Databases Chapter 28: Additional Topics
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.
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
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
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
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. 2
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? 2
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. 3
10
Exemple de Relation Schema : Students(sid: string, name: string, login: string, age: integer, gpa: real). Instance : 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. 4
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’, 18, 3.2) DELETE FROM Students S WHERE S.name = ‘Smith’ 15
12
Clé Primaire et Clé Étrangère en SQL
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) ) CREATE TABLE Enrolled (sid CHAR(20), cid CHAR(20), grade CHAR(2), PRIMARY KEY (sid,cid), FOREIGN KEY (sid) REFERENCES Students ) 6
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. The slides for this text are organized into several modules. Each lecture contains about enough material for a 1.25 hour class period. (The time estimate is very approximate--it will vary with the instructor, and lectures also differ in length; so use this as a rough guideline.) This covers Lectures 1 and 2 (of 6) in Module (5). Module (1): Introduction (DBMS, Relational Model) Module (2): Storage and File Organizations (Disks, Buffering, Indexes) Module (3): Database Concepts (Relational Queries, DDL/ICs, Views and Security) Module (4): Relational Implementation (Query Evaluation, Optimization) Module (5): Database Design (ER Model, Normalization, Physical Design, Tuning) Module (6): Transaction Processing (Concurrency Control, Recovery) Module (7): Advanced Topics 3
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.)
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.) 6
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. 11
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. 12
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.
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
Formules TRC Formules atomiques: Formule: Formule atomique, ou
, 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
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(...).
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.
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.
24
Requête SQL de Base SELECT [DISTINCT] target-list FROM relation-list WHERE qualification 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.
25
Exemple d’Évaluation Conceptuelle
SELECT S.sname FROM Sailors S, Reserves R WHERE S.sid=R.sid AND R.bid=103
26
COUNT (*) COUNT ( [DISTINCT] A) SUM ( [DISTINCT] A) AVG ( [DISTINCT] A) MAX (A) MIN (A) Opérateurs d’Agrégat Ces opérateurs sont une extension très significative de l’algèbre relationnelle. Une seule colonne SELECT COUNT (*) FROM Sailors S SELECT S.sname FROM Sailors S WHERE S.rating= (SELECT MAX(S2.rating) FROM Sailors S2) SELECT AVG (S.age) FROM Sailors S WHERE S.rating=10 SELECT COUNT (DISTINCT S.rating) FROM Sailors S WHERE S.sname=‘Bob’ SELECT AVG ( DISTINCT S.age) FROM Sailors S WHERE S.rating=10
27
GROUP BY et HAVING SELECT [DISTINCT] target-list FROM relation-list WHERE qualification GROUP BY grouping-list HAVING group-qualification 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.
28
GROUP BY et HAVING (Suite)
SELECT [DISTINCT] target-list FROM relation-list WHERE qualification GROUP BY grouping-list HAVING group-qualification 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.)
29
Trouver l’age du plus jeune navigateur en age de voter (i. e
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 SELECT S.rating, MIN (S.age) AS mage FROM Sailors S WHERE S.age >= 18 GROUP BY S.rating HAVING COUNT (*) > 1 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.) Réponse
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.
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.