Bases de Données II (Automne 2007)

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Introduction Pour concrétiser l’enseignement assisté par ordinateur
SQL - Subtilités.
Fonctionnalités des SGBD
Le Modèle Logique de Données
Algèbre relationnelle
TP 3-4 BD21.
Initiation aux bases de données et à la programmation événementielle
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Initiation au système d’information et aux bases de données
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
Les contraintes d’integrité
Initiation au système d’information et aux bases de données
Développement d’applications web
Contrôles d'accès aux données
Rappel sur les bases de données et le vocabulaire
Chap 4 Les bases de données et le modèle relationnel
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Calcul Relationnel Chapitre 4, Section 4.3.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Modèle Logique de Données
SYSTEMES D’INFORMATION
MODELE RELATIONNEL concept mathématique de relation
Staf 2x Cours de bases de données
Le Modèle Relationnel Chapitre 3
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 Evaluation des Operations Relationnelles Chapitre 14, Section 14.4.
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
SQL: Contraintes et Triggers
Algèbre Relationnelle
Optimisation des Requêtes Relationnelles
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Le Modèle Relationnel Chapitre 3.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Algèbre Relationnelle Chapitre 4, Sections 4.1 – 4.2.
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Les concepts et les méthodes des bases de données
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Calcul Relationnel Chapitre 4, Section 4.3.
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 SQL jointure PHILIPPE BANCQUART.
Introduction.
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Objectifs A la fin de ce chapitre, vous pourrez : présenter l'utilisation d'opérations de chargement de données par chemin direct décrire l'utilisation.
Créer des packages.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
Optimisation de requêtes
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Les vues Une vue: c’est une relation virtuelle. Définie par:
06/04/06 LES BASES DE DONNEES INTRODUCTION CogniTIC – Bruxelles Formation - Cepegra.
Le langage SQL.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Cours n°2 Implémentation et exploitation
Introduction Module 1.
Bases de données – Cours 3
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Schéma de base de données Présentation. Conception du schéma logique  Transformation du schéma conceptuel en structures de données supportées par les.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

Bases de Données II (Automne 2007) Professeur: Iluju Kiringa kiringa@site.uottawa.ca http://www.site.uottawa.ca/~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

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

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.

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

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

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

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

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

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

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

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’ 15

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

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

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

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

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

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

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.

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.

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.

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(...).

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.

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.

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.

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

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

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.

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

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

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.