BASE DE DONNEES. OlivierCuré [ocure@univ-mlv.fr]



Documents pareils
Bases de Données. Plan

Information utiles. webpage : Google+ : digiusto/

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Modélisation de bases de données : Le modèle relationnel

Bases de données avancées Introduction

Cours Bases de données

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Rappel sur les bases de données

1 Introduction et installation

Introduction aux Bases de Données

Les bases de données

Introduction au Système de Gestion de Base de Données et aux Base de Données

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Bases de données Cours 1 : Généralités sur les bases de données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Bases de données. Chapitre 1. Introduction

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

16H Cours / 18H TD / 20H TP

Systèmes d information et bases de données (niveau 1)

Bases de données - Modèle relationnel

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

BASES DE DONNÉES CONCEPTS ET PROGRAMMATION. Antoine Cornuéjols. AgroParisTech, Spécialité Informatique ( ) Version du 19 octobre 2009

Bases de données relationnelles : Introduction

INTRODUCTION AUX BASES de DONNEES

Le langage SQL Rappels

Introduction aux bases de données

Bases de Données Avancées

Cours de bases de données. Philippe Rigaux

Bases de Données relationnelles et leurs systèmes de Gestion

Introduction aux Bases de Données

Le Langage SQL version Oracle

Bases de données cours 1

Présentation du module Base de données spatio-temporelles

Bases de données relationnelles

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

A QUOI SERVENT LES BASES DE DONNÉES?

Conception des bases de données : Modèle Entité-Association

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

I4 : Bases de Données

SQL Historique

Systèmes de Gestion de Bases de Données

Les bases de données Page 1 / 8

Patrice BOURSIER. Professeur, Univ. de La Rochelle. Bases de Données. Notes de cours

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

Bases de Données Relationnelles. Le Modèle Relationnel

CHAPITRE 1. Introduction aux bases de données

Modèle conceptuel : diagramme entité-association

Chapitre 1 : Introduction aux bases de données

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

CHAPITRE 1 ARCHITECTURE

Langage SQL : créer et interroger une base

Table des matières. Avant-propos

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Chapitre 1 Généralités sur les bases de données

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

DESS CCI Formation Continue. Février Université Louis-Pasteur de Strasbourg Département d'informatique

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

1/ Présentation de SQL Server :

A QUOI SERVENT LES BASES DE DONNÉES?

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

IFT3030 Base de données. Chapitre 1 Introduction

CESI Bases de données

Base de Données et Langage SQL

UML et les Bases de Données

Bases de données relationnelles & SQL

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Dossier I Découverte de Base d Open Office

Le langage SQL (première partie) c Olivier Caron

et les Systèmes Multidimensionnels

II. Modèle conceptuel le modèle entité-association

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

INTRODUCTION : Données structurées et accès simplifié

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Le Langage De Description De Données(LDD)

Vincent Augusto

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Implémentation des SGBD

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Séance 1 Introduction aux bases de données

Bases de données élémentaires Maude Manouvrier

Chapitre 11 Bases de données

MEGA Database Builder. Guide d utilisation

Université de Bangui. Modélisons en UML

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

COURS de BASES de DONNEES

Conception d une base de données

INTRODUCTION AUX TECHNOLOGIES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Chapitre 10. Architectures des systèmes de gestion de bases de données

1 Modélisation d une base de données pour une société de bourse

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

Bases de données Outils de gestion

Introduction aux Bases de Données Relationnelles Conclusion - 1

Transcription:

BASE DE DONNEES 1

Contact Olivier Curé ocure@univ-mlv.fr http://igm.univ-mlv.fr/~ocure Copernic 4B060 2

Objectifs du cours Présentation des concepts liés aux bases de données, aux modèles des bases de données et aux systèmes de gestion de base de données. Vous permettre de concevoir des schémas et d'utiliser des base de données au sein d'applications. Comprendre que la conception d'une base de données n'est pas triviale, demande de la flexibilité et de la réflexion. Développer des applications Web avec PHP en profitant des possibilités d'une SGBDOR comme PostgreSQL. 3

Organisation du cours 5 cours de 2 heures 9 TD de 2 heures SGBD utilisé : PostgreSQL 4

Evaluation Participation lors des TD (20%) Devoir d'1 heure lors du TD#5 (30%) DST final (50%) 5

Plan du cours 1. Introduction aux bases de données, Entité-association, Modèle relationnel 2. Algèbre relationnel, SQL LDD 3. SQL LMD 4. Vues, Normalisation 5. Modèle Objet relationnel, PostgreSQL 6. Transactions et concurrence 7. Stockage, indexation 6

Lectures recommandées Bases de données Gardarin Fundamentals of Database Systems, 4 th edition Elmasri and Navathe. Addison Wesley A first course in database Ullman and Widom. Computer Science Press Intelligent database systems Bertino, Catania and Zarri. Addison Wesley Des structures aux bases de données Carrez, Masson 7

1. Introduction 8

IBM DB2 9

Relational Object Relational Column stores / data warehouse IBM DB2 Embedded Memory centric Oracle TenTimes SAP BI Accelerator Object XML Network IDMS Hierarchy IBM IMS 10

RDBMS market 2007 : US $ 18.8billion 5 vendors take up 90% of the market Oracle 44% IBM DB2 21% Microsoft SQL Server 18.5% Sybase 3.5% Teradata 3% 11

Key Value stores Graph databases Voldemort Dynomite TokyoCabinet Scalaris Amazon Dynamo & SimpleDB Document databases Terrastore Column family databases Google BigTable 12

Pourquoi étudier les bases de données Une fondation théorique appliquée à des besoins et problèmes réels et concrets. Regroupe de nombreuses notions informatiques : OS, programmation, logique, multimédia, intelligence artificielle, réseaux. Intérêt grandissant pour les technologies des BD : Industrie : data mining, data warehouse, customer relationship mgmt, etc.. Scientifique : génôme, digital libraries et le web, etc.. Base de données multimédia, base de données et XML (NXD). 13 OLTP vs OLAP; OLAP et Web

Base de données (BD) Une base de données (database) est un ensemble structuré et cohérent de données enregistrées avec le minimum de redondance pour satisfaire simultanément plusieurs utilisateurs de manière sélective et dans un temps opportun. 14

15 Système de gestion de base de données (SGBD) Un ensemble de logiciels permettant la création et la maintenance de bases de données. Un SGBD (database Management System -DBMS) doit permettre : la description, l'organisation et la gestion des données sur les mémoires secondaires. la recherche, la sélection et la modification des données. la manipulation des représentations abstraites des données, indépendamment de leur organisation et de leur implantation sur les supports physiques.

Caractéristiques des SGBD 16 Structure (types et comportements des données). Persistence des données (mémoire secondaire). Accès aux données (langage déclaratif pour les requêtes, langage procédural de programmation). Performance (accès et stockage des données). Partage ( accès concurrentiel et transactions) Volume important de données Sécurité et reprise sur pannes

Architecture ANSI /SPARC Trois niveaux : Niveau interne Niveau Conceptuel Niveau externe Schéma interne mapping conceptuel/ interne Schéma conceptuel mapping externe /conceptuel Schéma externe #1 Schéma externe #2 17 ANSI : American National Standards Institute SPARC : Standard Planning and Requirments Committee

Caractéristiques des SGBDR Un schéma est la structure d'une instance d'une base de données. On dispose de 3 schémas : Un schéma physique : décrit comme la base de données est stockée sur les disques. Un schéma conceptuel décrit les données se trouvant dans la base de données. Un schéma externe spécifiant comme un utilisateur donné voit les données. Le catalogue de la BD contient les descriptions des schémas physique et conceptuel. 18

Caractéristiques des SGBDR (2) Un SGBD support l'indépendance physique des données si les utilisateurs n'interagissent pas avec le système au niveau physique. Cela supporte 3 avantages : Utilisation plus facile du système Optimisation de requêtes Isolation des changements au niveau physique : la modification de l'organisation physique des données ne doit pas entrainer de modifications dans les programmes accédant aux données 19

Caractéristiques des SGBDR (3) Un SGBD support l'indépendance logique des données si les utilisateurs interagissent avec leur propre schéma externe. Cela supporte 3 avantages : Customisation de schémas externes, Meilleur sécurité au niveau des données, Isolation des changements au niveau conceptuel : une modification du schéma conceptuel ne doit pas entrainer la modification des programmes. 20

Architecture fonctionnelle d'un SGBD Analyseur Analyse syntaxique, sémantique Gestion des schémas Metabase Contrôleur Optimiseur Modification des requêtes Contrôle d'intégrité Contrôle d'autorisation Ordonnancement Optimisation Elaboration du plan Executeur Exécution du plan Méthodes d'accès Contrôle de la concurrence Atomicité des transactions 21 DB

2. Modèle entitéassociation 22

Etape de développement d'une base de données Cahier des charges (besoin des utilisateurs, que doit gérer la bd). Schéma conceptuel (le plus souvent dans le modèle EA). Schéma logique (traduire le modèle EA dans le modèle de la base de données). Ajustement de schéma (normalisation, consistence). Schéma physique (indexes, organisation sur le disque). Sécurisation 23

Etape de développement d'une base de données (2) extrait de "Fundamentals of Database Systems 4 th edition", Elmasri & Navathe, Addison-Wesley 24

Entité et propriété Une entité est similaire à la notion d'objet. Elle décrit une «chose» du monde. Un type d'entité est similaire à la notion de classe, elle définit la structure commune à un ensemble d'entités. Exemple : les étudiants. Une propriété correspond à un état. Les valeurs des propriétés décrivent une entité. Représentation graphique dans un diagramme EA : Une entité dans un rectangle Une propriété dans une forme ovale. 25

Diagramme EA 26

Propriétés identifiantes C'est l'ensemble des propriétés qui ne peuvent appartenir à plusieurs entités. La valeur doit dont être fixée pour chaque entité. Cette propriété est soulignée dans le diagramme EA. 27

Association Une association est un lien entre deux ou plusieurs entités. Un type d'association est une collection d'associations similaires. Un type d'association A va lier des types d'entités E1,..,En de manière que chaque association dans A implique les entités e1 E1, e2 E2,..., en En. Réprésentation sous la forme d'un losange. 28

Type d'entité et type d'association 29

Association(2) Un type d'association peut avoir ses propres attributs. 30

Cardinalité Les cardinalités permettent de mettre en évidence, le nombre minimum (maximum) d'instances d'un type d'entité qui sont en relation avec une instance d'un autre type d'entité. Les cardinalités sont représentées sous la forme d'un couple de valeurs min, max. min {0,1} et max {1, n} 31

Diagramme ER avec cardinalités Un type d'association peut avoir ses propres attributs. 32

Association ternaire Si chaque élève participe à toutes les séances de TD : Comment faire lorsque les étudiants ne sont pas tenus de suivre l'intégralité des TD des cours. 33

Association ternaire (2) 34

Association n-aire Un médecin (ou un patient) particulier peut ne pas participer à la relation. Chaque instance de Prescription apparaît une fois et une fois seulement dans une instance de la relation «ordonnance». Une instance de médicament n'apparaît au plus qu'une fois par ordonnance. 35

Association récursive rôle 36

Association et héritage On définir des hiérarchies au niveau des types d'entité. On utilise alors une association du type «is -a». 37

Un exemple Une bibliothèque et sa gestion des emprunts : Un ouvrage est caractérisé par un numéro unique, un titre, un auteur et un éditeur. Un ouvrage est décrit par un ensemble de mots qui indiquent les sujets qui sont traités. Le bibliothèque dispose d'un ou plusieurs exemplaires de chaque ouvrage. Un exemplaire est identifié par un numéro et caractérisé par une date d'achat. Un emprunteur est identifié par un numéro, son nom et son adresse. 38

Diagramme EA de la gestion d'une bibliothèque 39

Bilan du modèle EA Avantages : Uniquement 3 concepts : entité, association et attribut. Représentation graphique intuitive et rapide. Inconvénients : Non-déterministe, pas de règle absolue pour déterminer ce qui est entité, attirbut ou association. Absences de contraintes d'intégrité, structures complexes. 40

3. Le modèle relationnel 41

Modèle de données (data model) Un ensemble de concepts permettant de décrire la structure d'une base de données : types de données, relations, contraintes, opérations (langage de définition et de manipulation des données). sémantique. 42

Quelques modèles de données Evolution dans le temps : 43 système de fichiers (50s) modèle hiérarchique( 60s) :IMS modèle réseau (70s): Codasyl, IDMS modèle relationnel (80s): Oracle, Sybase,DB2,.. modèle orienté objet (90s): Versant, Gemstone, O2 modèle objet-relationnel (90s) : Oracle, DB2, SQLServer, PostgreSQL modèle semi-structuré (hétérogénéité, XML). Le modèle relationnel est le plus populaire

Système de fichiers Jusqu'au milieu des années 60. Problèmes : Redondance des données Problèmes lors de la mise-à-jour. Pas de modèle abstrait des données Nécessite une connaissance sur l'organisation du stockage Il n'existe pas un langage de requêtes standard. 44

Bases de données fondées sur le modèle hiérarchique Développement par North American Rockwell et IBM : IMS (Information Management Systel) Basé sur une structure arborescente Problèmes Les changements dans les structures de données (de la BD) imposent des modifications dans les programmes qui accèdent aux données. Familiarisation des programmeurs avec la structure de la base de données. 45

Bases de données fondées sur le modèle réseau Une extension du modèle de données du modèle hiérarchique. Standardisation en 1971 par le groupe CODASYL (COnference on DAta SYstems Languages). Avantage : Implémentation des relations n:m. Problème : La navigation de la structure est encore plus complexe que dans le modèle hiérarchique. 46

Bases de données fondées sur le modèle relationnel Proposé par E.F. Codd qui travaillait chez IBM IBM se concentre sur IMS et ignore plus ou moins le modèle réseau. IBM lance l'implémentation d'un SGBD sur le modèle relationnel. Entre temps, J.L. Ellison, à partir des articles de Codd, crée une start-up qui va vendre des SGBD basées sur le modèle relationnel : Oracle. 47

Modèle relationnel Basé sur la notion d'ensemble (set) collection d'élément de même type pas d'ordre pour les enregistrements ordonnancement des attributs dans une relation pas de duplications des enregistrements On parle alors de SGBDR (RDBMS) 48

Domaine de valeurs Un domaine de valeurs correspond à un ensemble de valeurs. Par exemple les entiers, les réels, etc.. Le produit cartésien (x) de n domaines est l'ensemble de toutes les combinaisons des éléments de ces ensembles. Exemple : D1 = { a, b} et D2 = {a, e} D1 x D2 = {(a,a),(a,e),(b,a),(b,e) } 49

Relation Une relation est un sous-ensemble du produit cartésien d'une liste de domaines. Chaque relation est identifiée par un nom. Représentation sous la forme d'une table à 2 dimensions : des colonnes, attributs. des lignes, enregistrements ou n-uplets. 50

Attribut titre Un attribut prend ses valeurs dans domaine de valeurs. Un attribut est identifié par un nom. Exemple : année nomdir prénomdir annéenaissdir Alien 1979 Scott Ridley 1943 Reservoir Dogs 1992 Tarantino Quentin 1963 The thing 1982 Carpenter John 1948 Volte-face 1997 Woo John 1946 Pulp Fiction 1995 Tarantino Quentin 1963 51

Clés Clé : un ensemble d'attributs dont le regroupement des valeurs identifie sans ambiguité un n-uplet (tuple). Clé candidate (candidate key): une clé pour laquelle aucun sous-ensemble n'est une clé. Une clé minimale. Clé primaire (primary key): une clé candidate sélectionnée pour être la clé principale d'une relation. Une clé primaire par relation. 52

Clé externe Une clé externe (foreign key) est un ensemble d'attributs dans une relation qui correspondent exactement à la clé primaire d'une autre relation. Le nom des attributs ne doivent pas nécessairement correspondre mais les domaines doivent être identiques. 53

Un exemple Une relation sur les films titre année nomdir prénomdir annéenaissdir Alien 1979 Scott Ridley 1943 Reservoir Dogs 1992 Tarantino Quentin 1963 The thing 1982 Carpenter John 1948 Volte-face 1997 Woo John 1946 Pulp Fiction 1995 Tarantino Quentin 1963 Terminator 1984 Cameron James 1954 Ghosts of Mars2001 Carpenter John 1948 Mad Max 1979 Miller George 1945 Mad Max 2 1981 Miller George 1945 Quelques problèmes : Supprimer un film, ajouter un réalisateur, modifier la date de naissance d'un réalisateur, Cohérence des données. 54

Un exemple (2) Une relation sur les films titre Alien 1979 1 Reservoir Dogs 1992 2 The thing 1982 3 Volte-face 1997 4 Pulp Fiction 1995 2 Terminator 1984 5 Ghosts of Mars 2001 3 Mad Max 1979 6 Mad Max 2 1981 6 Une autre relation sur les réalisateurs iddir nomdir prénomdir annéenaissdir année iddir1 Scott Ridley 1943 2 Tarantino Quentin 1963 3 Carpenter John 1948 4 Woo John 1946 5 Cameron James 1954 6 Miller George 1945 Problèmes précédents : Supprimer un film, ajouter un réalisateur, modifier la date de naissance d'un réalisateur, Cohérence des données. 55

Schéma d'une relation Le schéma d'une relation correspond à l'ensemble : nom de la relation, liste des attributs (avec domaines) et indication de la clé primaire (souligné). R : A1, A2,..., An Schéma d'une base de données est l'ensemble des schémas des relations de la base. 56

Schémas, exemple Schéma des relations : film (titre, année, iddir) realisateur (iddir, nomdir, prenomdir, anneénaisdir) Schéma de la base de données : film, realisateur 57

Mapping EA - relationnel Une type d'entité devient une relation. Une propriété devient un attribut. Une propriété identifiante devient une clé primaire. Une association devient une relation et sa représentation est fonction des cardinalités. 58

Transformation des associations en relations Les cardinalités maximales de l'association sont de 1 : L'identifiant d'une entité est utilisé comme clé étrangère de l'autre relation, ou inversement. 59 Entity1(a1,...) Entity2(a2,..., #a1) ou Entity1(a1,...,#a2) Entity2(a2,...)

Transformation des associations en relations (2) La cardinalité maximale d'une association est à n et l'autre à 1 : L'identifiant de l'entité (*:n) devient une clé étrangère de l'entité (*:1). Entity1(a1,..., #a2) Entity2(a2,...) 60

Transformation des associations en relations (3) Les cardinalités maximales sont à n : L'association devient une relation et sa clé primaire se compose des identifiants des entités. Entity1(a1,...) Entity2(a2,...) Asso1(#a1,#a2, a3) 61

Exemple mapping relations n,m (1) Schéma relationnel Produit (numpro, nompro) Client (numcli, nomcli) Achat (#numcli,#numpro) (2) 62

Transformation des associations en relations (4) Dans le cas d'une association «is-a», il est possible de voir la solution avec un point de vue orienté objet (duplication des attributs de la superclasse dans la sous-classe) ou bien entité-association (duplication de l'indentifiant de la super-classe dans la sous-classe). Personne(id_pers,nom) Vision OO : joueur(id_pers, club) arbitre(id_pers, niveau) Vision EA : joueur(id_pers, nom, club) arbitre(id_pers, nom, niveau) 63

Transformation des associations en relations (5) Dans le cas d'une association récursive, l'attribut clé primaire de la relation est dupliquée sous la forme d'une clé étrangère. Employe (id_emp, nom_emp, #id_emp_manager) 64

Exemple Bibliothèque 65

Schémas de la bibliothèque Schéma relationnel Mot_cle (nummc, valeurmc) Ouvrage (numouv, titreouv, nomauteurouv, editeurouv) Exemplaire (numex, dateachat, #numemp, #numouv) Emprunteur (numemp, nomemp, adremp) MotCle_Ouvrage (#nummc, #numouv) Schéma de la base de données Mot_cle, Ouvrage, Exemplaire, Emprunteur, MotCle_Ouvrage 66

Autre exemple On gère des patients et des docteurs qui sont des personnes. Pour chaque personne, on stocke le NSS, le nom, le prénom, l'adresse. Pour un docteur nous avons en plus un numéro d'ordre. Un docteur soigne un patient et peut lui prescrire un test (portant un nom et identifié par un numéro). On désire stocker la date et le résultat d'un test donné pour un patient et prescrit par un docteur. 67

Correction exemple 68

Son schéma relationnel Personne(NSS, nom, prenom, adrnumrue, adrrue, adrville) Patient (NSS) Docteur(NSS, numordre) Test(numTest, nomtest) Soigne (#NSSPatient,#NSSDocteur) EffectuerTest (#NSSDocteur, #NSSPatient, #NumTest, date, resultat) 69

4. Algèbre relationnel 70

Objectif 71 Effectuer des opérations sur le modèle relationnel. Algèbre relationnel : Théorique Fondement du traitement des requêtes. Notation formelle (plus 'propre' et plus compact que le SQL). Récupération et manipulation (mise-à-jour, suppression, insertion) des données de la BD. Base de l'optimisation des requêtes SQL. Ce n'est pas un langage de programmation (déclaratif, pas procédural).

Les langages des SGBD LDD ou Langage pour la Définition des Données (Data Definition Language - DDL) définition de l'ensemble du schéma de la base de données. LMD ou Langage pour la Manipulation des Données ( Data Manipulation Language - DML) consultation, modification, suppression et ajout des données. LCD ou Langage pour le Contrôle des Données (Data Control Language - DCL) définition des permissions d'accès, administration.

Algèbre et calcul relationnels pour le LMD Deux représentations sont à la base de l'implémentation des langages de requêtes : Algèbre relationnel (relational algebra) Très pratique pour représenter un plan d'exécution, plus opérationnel que le calcul relationnel. Concerne le 'comment faire'. Calcul relationnel (relational calculus) Permet aux utilisateurs de décrire ce qu'ils veulent plutôt que de décrire comment l'obtenir. Plus déclaratif que l'algèbre relationnel. Concerne le 'quoi faire'.

Exemple titre année iddir Alien 1979 1 Reservoir Dogs 1992 2 The thing 1982 3 Volte-face 1997 4 Pulp Fiction 1995 2 Terminator 1984 5 Ghosts of Mars 2001 3 Mad Max 1979 6 Mad Max 2 1981 6 iddir nomdir prénomdir annéenaissdir 1 Scott Ridley 1943 2 Tarantino Quentin 1963 3 Carpenter John 1948 4 Woo John 1946 5 Cameron James 1954 6 Miller George 1945 SQL SELECT nomdir, titre FROM realisateur r, film f WHERE r.iddir=f.iddir; Algèbre relationnel (nomdir, film) (Film >< iddir Realisateur) Calcul relationnel {R.nomDir, F.titre R Realisateur F(F Film R.idDir = F.idDir) }

Opérations sur l'algèbre relationnel Théorie des opérations est formellement définie et équivalente à la logique du premier ordre. Les opérateurs relationnels transforment une, ou une paire, de relations en un résultat qui est lui aussi une relation. Ce résultat peut-être exploité dans d'autres requêtes. Les opérations éliminent les duplicats.

Algèbre relationnel Un ensemble d'opérations formelles permettant de décrire des requêtes sous une forme algébrique. Opérations sur les ensembles : Union : Intersection : Différence : - Opérations algébriques : unaire (sélection, projection) Binaire (jointures et division) S R 76

Projection Opération algébrique sélectionnant un sous-ensemble des attributs d'une relation Symbole : Syntaxe : Résultat = (attributs) Relation Exemple : R1 = (prenomdir) realisateur Quentin John 77 James George

Projection (2) Le nombre de n-uplets d'une relation résultat d'une opération de projection R, est inférieur ou égal au nombre de n- uplets de la relation R. L'opération de projection n'est pas commutative. Si liste2 contient les attributs de liste1, liste1 liste2 on peut écrire : (liste1) ( (liste2) (R))= (liste1) (R) 78

Sélection Opération permettant la sélection d'un sousensemble des n-uplets d'une relation satisfaisant une condition. Symbole : σ Syntaxe : Résultat = σ (condition) Relation Opérateurs sur la condition : =,<>,<,<=,>,>=. Exemple : R1 = σ (annéenaisdir=1948) realisateur 3 Carpenter John 1948 79

Sélection (2) Le degré (nombre d'attributs) d'une relation résultat d'une opération de sélection sur R est identique au degré de la relation R. La sélection est une opération commutative : σ (cond1) (σ (cond2) (R)) = σ (cond2) (σ (cond1) (R)) Cascade d'opérations : σ (cond1) (σ (cond2) (R)) = σ (cond1 et cond2) (R) 80

Projection et sélection On peut effectuer des opérations avec des projections et sélections. Exemple : Nom du réalisateur dont l'année de naissance est 1948. (nomdir) (σ (annaisdir=1948) realisateur) 81

Produit cartésien Le produit cartésien de 2 relations R1 (A1,A2,..,An) de i n-uplets et de R2 (B1,B2,..,Bm) de j n-uplets est une relation de degré n+m et de i*j n-uplets R3 (A1,A2,..,An,B1,B2,..,Bm). Le résultat de R1xR2 est une relation incluant toutes les combinaisons de n-uplets de R1 et R2. On exploite le produit cartésien en conjunction avec les autres opérateurs. 82

Exemple de produit cartésien R1 Att1 Att2 a1 b1 a1 b2 a2 b1 a2 b2 a3 b2 a4 b2 R2 Att3 c1 c2 R3 = R1xR2 Att1 Att2 Att3 a1 b1 c1 a1 b1 c2 a1 b2 c1 a1 b2 c2 a2 b1 c1 a2 b1 c2 a2 b2 c1 a2 b2 c2 a3 b2 c1 a3 b2 c2 a4 b2 c1 a4 b2 c2 3 attributs et 12 n-uplets 83

Union, Intersection et différence Ces opérations sont binaires et comportent 2 relations qui doivent être compatibles. Soit la relation R1(A1,A2,..,An) La fonction dom(ai) retourne le domaine de Ai. Exemple : Personne (nss, nom) dom(nss) = des numéros de SS. dom(nom) = des noms. 2 relations sont compatibles pour les opérations sur les ensembles ssi pour R1(A1,A2,..,An) et R2(B1,B2,..,Bm), n=m et dom(ai) = dom(bi), 1<=i<=n. 84

Union [ ] L'union de 2 relations R1(A1,A2,..,An) et R2(B1,B2,..,Bn) est une relation R3(C1,C2,..,Cn) de manière à avoir dom(ci) = Dom(Ai) = Dom(Bi) pour 1<= i <= n. Le résultat de R1 R2 est une relation incluant tous les n-uplets qui sont dans R1 ou R2 ou bien dans R1 et R2, en éliminant les duplicats. Union est commutative : R S = S R 85

Exemple union R1 Num 12345 13344 R 26688 R=R1 R2 Num 25434 12345 R2 13344 Num 26688 13344 25434 28866 28866 86

Intersection [ ] L'intersection de 2 relations R1(A1,A2,..,An) et R2(B1,B2,..,Bn) est une relation R3(C1,C2,..,Cn) de manière à avoir dom(ci) = Dom(Ai) Dom(Bi) pour 1<= i <= n. Le résultat de R1 R2 est une relation incluant seulement les n-uplets qui sont dans R1 qui apparaissent aussi dans R2. Intersection est commutative : R S = S R. 87

Exemple intersection R1 Num 12345 13344 R R2 26688 R=R1 R2 Num 25434 13344 Num 13344 28866 88

Différence [- ] La différence de 2 relations R1(A1,A2,..,An) et R2(B1,B2,..,Bn) est une relation R3(C1,C2,..,Cn) de manière à avoir dom(ci) = Dom(Ai) Dom(Bi) pour 1<= i <= n. Le résultat de R1 R2 est une relation incluant tous les n-uplets qui se trouvent dans R1 et pas dans R2. Différence n'est pas commutative. 89

Exemple union R1 R2 Num 12345 13344 26688 25434 Num 13344 28866 R1-R2 Num 12345 26688 25434 R2 - R1 Num 28866 90

Jointure Composition de deux relations sur un domain commun. La jointure de 2 relations R1(A1,A2,..,An) et R2(B1,B2,.., Bm) est une relation R3 de degré k = n+m et dont les attributs sont (A1, A2,.., An, B1, B2,..,Bm). Symbole : >< Syntaxe : Résultat = R1 >< condition R2 Equivalence avec σ (condition) (R1 x R2) 91

Jointures Un jointure avec une condition d'égalité est une équi-jointure. On parle de jointure naturelle lorsque la condition compare des attributs dont le nom est identique. Le symbole utilisé est alors '*' et il n'est pas nécessaire d'indiquer la condition. Exemple : R1(A1,A2,A3,A4) et S(A1,B1,B2,B3) Q = R * S est équivalent à Q' = R >< R.A1=S.A1 S On parle de théta-jointure lorsque les noms des attributs sont différents. 92

Renommer des attributs et relations Pour effectuer des jointures naturelles plus facilement, on peut utiliser l'opérateur ρ qui permet de renommer des attributs et/ou des relations. Exemple : R1(A1,A2,A3) ρ S(B1,B2,B3) attributs An en Bn. (R) renomme R en S et les ρ S (R) renomme R en S. ρ B1,B2,B3 (R) renomme An en Bn. 93

Division Soit L'opération A/B Les attributs dans A sont un sur-ensemble des attributs dans B. Soit C both les attributs présents dans A et B. Soit C A-only les attributs présents dans A uniquement. Les attributs du résultat se trouvent dans C A-only Le résultat regroupe les enregistrements où les valeurs de C A-only correspondent à toutes les valeurs dans B. 94

Exemple division R(A,B) a1 b1 a2 b1 a3 b1 a4 b1 a1 b2 a3 b2 a2 b3 a3 b3 a4 b3 a1 b4 a2 b4 a3 b4 S (A) a1 a2 a3 T = R S b1 b4 95

Réécriture de la division T = R S à partir des opérations de l'algèbre relationnel (projection, différence et produit cartésien) : T1 = Y (R) T2 = Y ((S x T1) R) T = T1 T2 Avec Z, l'ensemble de attributs de R et X, l'ensemble des attributs de S telle que X Z. On a Y = Z - X. 96

Exemple réécriture R(A,B) a1 b1 a2 b1 a3 b1 a4 b1 a1 b2 a3 b2 a2 b3 a3 b3 a4 b3 a1 b4 a2 b4 a3 b4 S (A) a1 a2 a3 T1 = Y (R) b1 b2 b3 b4 ➀ (S x T1) a1 b1 a1 b2 a1 b3 a1 b4 a2 b1 a2 b2 a2 b3 a2 b4 a3 b1 a3 b2 a3 b3 a3 b4 ➁ (S x T1) -R a2 b2 a4 b2 a1 b3 ➂ T2= Y ((S x T1) b2 b3 R) ➃ T = T1 - T2 b1 b4 ➄ 97

Jointures externes (outer joins) L'ensemble des opérateurs 'outer join' permettent de garder les n-uplets de R1, R2 ou de R1 et R2 dans le résultat même si certains n-uplets ne possèdent pas une correspondance dans l'autre relation. On distingue les jointures externes à gauche (left, _><), à droite (right ><_) et gauche et droite (full _><_). 98

Exemple de jointure externe Relation R1 Rela tion R2 R1 >< R2 R1 _><_ R2 Att1 Att2 Att2 Att1 Att2 Att1 Att2 a1 b1 b2 a1 b2 a1 b2 a1 b2 b4 a2 b2 a1 null a1 b3 a3 b2 a2 b2 a1 b4 a1 b4 a2 null a2 b1 a4 b2 a3 b2 a2 a3 b2 b2 a4 b4 a1 a4 b4 b2 a4 a4 b2 b4 a4 b4 99

Calcul relationnel Langage formel basé sur la logique des prédicats du premier ordre. Les formules sont composées à partir : de termes atomiques : variables t, noms de relations et constantes d'opérateurs =,, <, >, <=,>= de connecteurs (NOT), (OU) et (AND) de quantificateurs (existence) et (universel) 100

Bilan de l'algèbre relationnel Un ensemble complet de l'ar est composé {,σ,, -,x}. Les autres opérateurs peuvent être exprimés à l'aide de cet ensemble : R S = (R S) ((R-S) (S-R)) R >< S = σ (R x S) T = R S => T1 = Y (R) T2 = Y ((S x T1) R) T = T1 T2 101