Bases de données Cours 7 : Modèle relationnel-objet



Documents pareils
A QUOI SERVENT LES BASES DE DONNÉES?

A QUOI SERVENT LES BASES DE DONNÉES?

Hala Skaf-Molli. Nancy-Université 14 mai 2007

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

TP Contraintes - Triggers

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

CREATION WEB DYNAMIQUE

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

Olivier Mondet

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Bases de données relationnelles

I4 : Bases de Données

Le Langage De Description De Données(LDD)

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Cours Bases de données 2ème année IUT

Application web de gestion de comptes en banques

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

Langage SQL : créer et interroger une base

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

Corrigés détaillés des exercices

Partie II Cours 3 (suite) : Sécurité de bases de données

Bases de données et sites WEB Licence d informatique LI345

Gestion de base de données

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Quelques aspects du Relationnel-Objet du SGBD Oracle

Bases de données avancées

PHP 5. La base de données MySql. A. Belaïd 1

Notes de cours : bases de données distribuées et repliquées

Bases de données avancées Introduction

SQL Historique

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Les bases de données

TP3 : Creation de tables 1 seance

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Création et Gestion des tables

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

Bases de Données Avancées

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Administration des bases de données. Jean-Yves Antoine

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Bases de données et sites WEB

1. Introduction. Introduction au langage SQL3 (SQL 99) Plan. Sources du cours. 1. Introduction La norme SQL3 et ses composants

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

Auto-évaluation Oracle: cours de base

Les Bases de Données et l Objet Introduction

Historisation des données

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Le Langage SQL version Oracle

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Intégrité des données

Pratique et administration des systèmes

Université de Nice Sophia-Antipolis. Langage SQL. version 5.7 du polycopié. Richard Grin

OpenPaaS Le réseau social d'entreprise

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

Bases de données. Chapitre 1. Introduction

1. Base de données SQLite

Les BASES de DONNEES dans WampServer

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Devoir Data WareHouse

Le langage SQL Rappels

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

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

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Intégrité sémantique dans les bases de données relationnelles

Mysql avec EasyPhp. 1 er mars 2006

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

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

Bases de données cours 1

INTRODUCTION AUX BASES de DONNEES

UML et les Bases de Données

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

FileMaker 13. Guide de référence SQL

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

Compétences Business Objects

Cours Bases de données 2ème année IUT

Pour les débutants. langage de définition des données

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Mejdi BLAGHGI & Anis ASSÈS

1/ Présentation de SQL Server :

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Information utiles. webpage : Google+ : digiusto/

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

Laboratoires de bases de données. Laboratoire n 6. Programmation SQL. par Danièle BAYERS et Louis SWINNEN

Encryptions, compression et partitionnement des données

16H Cours / 18H TD / 20H TP

Bases de données relationnelles : Introduction

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

I. MySQL : Serveur et SGBD

Bases de données relationnelles & SQL

Programmation d application Bases de données avec Java

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Transcription:

-relationnel Cours 7 : Modèle relationnel-objet ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://pages-perso.esil.univmed.fr/ papini/

-relationnel Plan du cours 1 Introduction 2 3 -relationnel 4

-relationnel Bibliographie Livres : G. Gardarin : et relationnel. Eyrolles ed. 1999. C. J. Date : Introduction aux bases de données. (8ième edition). Vuibert ed. 2004. H. Garcia-Molina, J. D. Ullman, J. Widow : Database systems, the complete book. Prentice Hall ed. 2002. C. soutou : Programmer objet avec Oracle. Vuibert ed. Supports de cours : http ://deptinfo.unice.fr/ grin/mescours/minfo/bdavancees/supports/

-relationnel Introduction inconvénients du modèle relationnel annés 1980 : POO évolution des SGBD relationnelles vers SGBD objets idée fondamentale : augmenter le niveau d abstraction

-relationnel Modèle objet concepts fondamentaux terme objet objet immuable objet modifiable classe d objets méthode message terme traditionnel valeur variable types fonction appel notion d héritage

-relationnel nombreux travaux dans les années 1980 SGBDO : Cependant le modèle objet ne gère pas : requêtes ad hoc les vues contraintes d intǵrité déclaratives clé trangères fermeture et complétude conception de BDO n est pas indépendantes de l application

-relationnel Correspondance relationnel objet paradigmes objet et relationnel différents modèle objet est plus riche (héritage) difficultés pour faire correspondre des objets à des données de tables relationnelles

-relationnel Difficultés de passage du relationnel à l objet identité des objets traduction des associations traduction de l héritage navigation entre les objets

-relationnel Difficultés de passage du relationnel à l objet les objets persistants doivent être enregistrés dans la base relationnelle un objet a une structure complexe : représentée par un graphe le plus souvent graphe : arbre dont la racine est l objet et les fils correspondent aux valeurs des variables d innstance qui sont persistantes nécessité d aplatir le graphe pour le ranger dans la base donner relationnelle

-relationnel Le modèle objet-relationnel extension du modèle relationnel avec des notions qui comblent les plus grosses lacunes du modèle relationnel compatibilité ascendante : ce qui fonctionne pour le modèle retationnel fonctionne dans le modèle objet-relationnel norme SQL 99 (SQL 3)

-relationnel Pouriquoi ètendre le modèle relationnel la reconstruction d objets complexes éclatés en tables relationnelles est très coûteuse : nombreuses jointures pour échapper aux jointures, le le modèle objet-relationnel permet : les références : implantation de structures complexes attributs multivalués (listes, ensembles, tableaux) utilisation de références facilite l utilisation de données très volumineuses du multimédia en permettant leur partage à moindre coût (sans jointure)

-relationnel Le modèle objet-relationnel modèle relationnel : impossibilité de définir de nouveaux types modèle objet-relationnel : possibilité de définir de nouveaux types : simples structurés fonctions et procédures associées modèle objet-relationnel : supporte l héritage de type (polymorphisme et réutilisation)

-relationnel Pourquoi ne pas utiliser les SGBDO? Avantages du modèle relationnel : facilité et efficacité des requêtes complexes dans les grandes bases de données spécification des contraintes d intégrité sans programmation théorie sous-jacente solide et normes reconnues

-relationnel Pourquoi ne pas utiliser les SGBDO? inertie de l existant : très nombreuses bases de données relationnelles utilisées pas de normalisation des SGBDO moins de souplesse pour s adapter à plusieurs applications peu d informaticiens formés aux SGBDO

-relationnel Le modèle objet-relationnel Nouvelles possibilités : définition de nouveaux types complexes avec fonctions de manipulation une colonne peut contenir une collection : liste, ensemble, ligne considérée comme un objet avec un identificateur OID utilisation de références aux objets extension de SQL : SQL3 (ou SQL99) recherche et manipulation des données

-relationnel Le modèle objet-relationnel Inconvénients du modèle objet-relationnel : ne s appuie pas sur une théorie solide comme le modèle relationnel pas de standardisation : implantations différentes, partielles dans les SGBD

-relationnel A jout de nouveaux types nouveaux types prédéfinis à la norme SQL : référence collection LOB (objets de grande taille) types définis par l utilisateur : types distincts types structurés

-relationnel Types distincts pour mieux différencier les domaines des colonnes formés à partir des types de base s utilisent avec les mêmes instructions que le type de base sous jacent CREATE TYPE CODEPAYS as char(2) ; CREATE TYPE MATRICULE as integer ;

-relationnel Types structurés correspondent aux classes de la POO peuvent contenir des : constructeurs attributs (variables d instances) fonctions et procédures (méthodes) les membres peuvent être : public protected private fonctions et procédures peuvent être écrites en SQL ou autre langage

-relationnel Types structurés syntaxe semblale à celle de la création d une table CREATE TYPE DEPT TYPE as OBJECT (NUM DEP integer, NOM DEP varchar(30), LIEU varchar(30)); un type peut contenir une contrainte d intégrité redéfinition d un type s il existe déja : CREATE or REPLACE TYPE

-relationnel Fonctions dans les types CREATE TYPE DEPT TYPE AS OBJECT (NUM DEP integer, NOM DEP varchar(30), LIEU varchar(30), MEMBER FUNCTION get LIEU RETURN varchar) ; CREATE TYPE BOBY DEPT TYPE AS end ; MEMBER FUNCTION get LIEU RETURN IS begin return LIEU ; end;

Héritage Introduction -relationnel les types supportent l héritage multiple avec le mot-clé UNDER un type est final par défaut CREATE TYPE EMPLOYE TYPE AS OBJECT (MATR integer, NOM varchar(30), SAL numeric(8,2)), NOT FINAL; CREATE TYPE COMMERCIAL TYPE UNDER EMPLOYE TYPE (COMM numeric(8,2)), NOT FINAL;

-relationnel Ajout d un attribut à un type ALTER TYPE EMPLOYE TYPE ADD ATTRIBUTE DATE NAISSANCE DATE CASCADE ; CASCADE : propagaton aux tables déja construites à partir du type

-relationnel Ajout d une méthode à un type ALTER TYPE EMPLOYE TYPE ADD MEMBER FUNCTION AGE RETURN INTEGER CASCADE ;

-relationnel Types de ligne notion de type de ligne correspond aux structures du langage C : ensemble non encapsulé d attributs un type peut être nommé ou non

-relationnel Type de ligne non nommé CREATE TABLE EMP (NOM E VARCHAR(15), ADRESSE ROW(NUMERO INTEGER, RUE VARCHAR(25), ));

-relationnel Type de ligne nommé CREATE ROW TYPE ADRESSE T (NUMERO INTEGER, RUE VARCHAR(25), )); ce type peut être utilisé pour : une déclaration d attribut une création de table àpartir de ce type

-relationnel Vues du dictionnaire des données USER TYPES : pour les types USER TYPES ATTRS : pour les attributs des types USER TYPES METHODS : pour les méthodes des types USER OBJECT TABLES : pour les tables objet-relationnelles sous SQLPLUS de Oracle : DESCRIBE DEPT TYPE

-relationnel Création de tables à partir de types les données d un type ne sont persistantes que si elles sont rangées dans une table la création de tables peut se faire comme en SQL (standard) la création de tables peut se faire à partir dun type de donées

-relationnel Création de tables à partir d un type le type EMPLOYE TYPE CREATE TYPE EMPLOYE TYPE AS OBJECT (MATR integer, NOM varchar(30), SAL numeric(8,2)); la création d une tableà partir de type et spécification des contraintes d intǵrité : CREATE TABLE EMPLOYE OF EMPLOYE TYPE (PRIMARY KEY MATR);

-relationnel Héritage de tables une table peut hériter d une ou plusieurs tables pas supporté par ORACLE 10g

-relationnel Création de tables à partir d un type dérivé CREATE TABLE COMMERCIAUX OF COMMERCIAL TYPE (CONSTRAINT PK COM PRIMARY KEY (MATR));

-relationnel Caractéristiques d un table objet-relationnel une table est une table objet-relationnelle si elle a été construite à partir d un type : CREATE TABLE OF les lignes de ces tables sont considérées comme des objets avec un identifiant (OID) on peut utiliser des références pour désigner les lignes de ces tables pas possible pour les autres tables vues du dictionnaire des données : USER OBJECT TABLES : pour les tables objet-relationnelles

-relationnel Insertion de données ajout des données comme pour des tables relationnelles INSERT INTO COMMERCIAUX (MATR, NOM, SAL, COMM) VALUES (365, TOTO, 3000,500);

-relationnel Insertion avec constructeur utilisation d un constructeur du type avec lequel la table a été construite INSERT INTO EMPLOYE VALUES ( EMPLOYE TYPE(365, TOTO, 3000,500)); si le type est un type utilisé par un autre type, l utilisation du constructeur du type est obligatoire

-relationnel Modifications de données utilisation de la notation pointée UPDATE EMPLOYE SET EMPLOYE.SAL = 2800 WHERE EMPLOYE.NOM = TITI ; SQL 99 fournit la notation.. pour désigner un attribut d une colonne d un type structuré UPDATE EMPLOYE SET EMPLOYE.ADRESSE.. NUMERO = 18 WHERE EMPLOYE.NOM = TITI ;

-relationnel Appel de procédure ou fonction E.NOM, age(e) FROM EMPLOYE E WHERE age(e) < 40; sous ORACLE SELECT E.NOM, E.age() FROM EMPLOYE E WHERE E.age(E) < 40;

Références Introduction -relationnel On peut indiquer la définition d u type qu un attribut contient des références (pas des valeurs) à des données dun autre type CREATE TYPE EMPLOYE TYPE AS OBJECT (MATR integer, NOM varchar(30), SAL numeric(8,2)), DEPT REF DEPT TYPE);

-relationnel SELECT avec références La notation pontée permet de récupérer les attributs d un type dont on a un pointeur lieu de travail des employés sous SQL 99 SELECT NOM, E.DEPT LIEU FROM EMPLOYE E; avec ORACLE SELECT NOM, E.DEPT.LIEU FROM EMPLOYE E;

-relationnel INSERTIONS avec références pointeur NULL INSERT INTO EMPLOYE VALUES (1546, TITI, NULL); référence vers le DEPT numéro 10 INSERT INTO EMPLOYE (MATR, NOM, DEPT) SELECT 1830, TOTO, REF(d) FROM DEPT d WHERE DEPT.NUM DEPT = 10;

-relationnel MODIFICATIONS avec références UPDATE EMPLOYE SET DEPT = (SELET REF(d) FROM DEPT d WHERE NUM DEPT =10) WHERE MATR = 1984; si DEPT de numéro 10 n existe pas le SELECT renvoie NULL pour éviter ce problème : rajouter la contrainte NOT NULL DEPT REF DEPT TYPE NOT NULL

-relationnel Contraintes sur les références le type REF DEPT TYPE restreint le type référencé mais pas la table référencée cette référencé peut référencer une valeur de n importe quelle colonne de table qui a le type DEPT TYPE la clause SCOPE restreint la colonne référencée, elle peut être ajoutée lors de la définition d une table DEPT REF DEPT TYPE SCOPE IS DEPT TABLE ; DEPT référence une ligne de la table DEPT TABLE (pas une ligne d une autre table)

-relationnel Référence perdue SCOPE ne suffit pas pour imposer une contrainte stricte la référence peut être perdue : ne pas correspondre à une ligne existante pour éviter les références perdues SCOPE doit être remplacé par une contrainte REFERENCES (comme avec des tables relationnelles) DEPT REF DEPT TYPE REFERENCES DEPT TABLE ;

-relationnel Types de collections Représentation d une colonne multivaluée : utilisation des collections ensembles (pas de doublons) sacs (avec doublons) listes (ordonnées et indexées par un entier) d autres types de collections peuvent être ajoutées par les SGBD

-relationnel Exemple de collections CREATE TYPE EMPLOYE TYPE (MATR integer, NOM varchar(30), PRENOMS LIST (varchar(15)), ENFANTS SET(personne), );

-relationnel Utilisation d une collection on peut utiliser une collection comme une table en la faisant précéder par le mot-clé TABLE SELECT NOM FROM EMPLOYE E WHERE NOM IN (SELECT * FROM TABLE (E.PRENOMS)); on peut faire afficher une collection comme un tout SELECT NOM, PRENOMS FROM EMPLOYE ;

-relationnel Les collections avec ORACLE 10g ORACLE 10g n offre que 2 types de collections : table imbriquée (NESTED TABLE) : collection on-ordonnée et non limitée en nombre d éléments tableau prédimensionné (VARRAY) : collection d éléments de même type, ordonnée et limitée en taille

-relationnel Tables imbriquées une table relationnelle (pas nécessairement objet-relationnelle) peut contenir une ou plusieurs tables imbriquées table imbriquée (NESTED TABLE) : collection on-ordonnée et non limitée en nombre d éléments tableau prédimensionné (VARRAY) : collection d éléments de même type, ordonnée et limitée en taille