48
Introduction Bases de donn´ ees objet Bases de donn´ ees objet-relationnel rapide survol de SQL99 Bases de donn´ ees Cours 7 : Mod` ele relationnel-objet Odile PAPINI ESIL Universit´ e de la m´ editerran´ ee [email protected] http://pages-perso.esil.univmed.fr/papini/ Odile PAPINI Bases de donn´ ees

Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

Embed Size (px)

Citation preview

Page 1: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Bases de donneesCours 7 : Modele relationnel-objet

Odile PAPINI

ESILUniversite de la [email protected]

http://pages-perso.esil.univmed.fr/∼papini/

Odile PAPINI Bases de donnees

Page 2: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Plan du cours

1 Introduction

2 Bases de donnees objet

3 Bases de donnees objet-relationnel

4 rapide survol de SQL99

Odile PAPINI Bases de donnees

Page 3: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Bibliographie

Livres :

G. Gardarin : Bases de donnees objet et relationnel. Eyrollesed. 1999.

C. J. Date : Introduction aux bases de donnees. (8iemeedition). Vuibert ed. 2004.

H. Garcia-Molina, J. D. Ullman, J. Widow : Databasesystems, 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/

Odile PAPINI Bases de donnees

Page 4: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Introduction

inconvenients du modele relationnel

annes 1980 : POO

evolution des SGBD relationnelles vers SGBD objets

idee fondamentale : augmenter le niveau d’abstraction

Odile PAPINI Bases de donnees

Page 5: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Modele objet

concepts fondamentaux

terme objet terme traditionnel

objet ”immuable” valeur

objet ”modifiable” variable

classe d’objets types

methode fonction

message appel

notion d’heritage

Odile PAPINI Bases de donnees

Page 6: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Bases de donnees objet

nombreux travaux dans les annees 1980

SGBDO :

Cependant le modele objet ne gere pas :

requetes ad hocles vuescontraintes d’intgrite declarativescle trangeresfermeture et completude

conception de BDO n’est pas independantes de l’application

Odile PAPINI Bases de donnees

Page 7: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Correspondance relationnel objet

paradigmes objet et relationnel differents

modele objet est plus riche (heritage)

difficultes pour faire correspondre des objets a des donnees detables relationnelles

Odile PAPINI Bases de donnees

Page 8: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Difficultes de passage du relationnel a l’objet

identite des objets

traduction des associations

traduction de l’heritage

navigation entre les objets

Odile PAPINI Bases de donnees

Page 9: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Difficultes de passage du relationnel a l’objet

les objets persistants doivent etre enregistres dans la baserelationnelle

un objet a une structure complexe : representee par un graphe

le plus souvent graphe : arbre dont la racine est l’objet et lesfils correspondent aux valeurs des variables d’innstance quisont persistantes

necessite d’aplatir le graphe pour le ranger dans la basedonner relationnelle

Odile PAPINI Bases de donnees

Page 10: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Le modele objet-relationnel

extension du modele relationnel avec des notions qui comblentles plus grosses lacunes du modele relationnel

compatibilite ascendante : ce qui fonctionne pour le modeleretationnel fonctionne dans le modele objet-relationnel

norme SQL 99 (SQL 3)

Odile PAPINI Bases de donnees

Page 11: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Pouriquoi etendre le modele relationnel

la reconstruction d’objets complexes eclates en tablesrelationnelles est tres couteuse : nombreuses jointures

pour echapper aux jointures, le le modele objet-relationnelpermet :

les references : implantation de structures complexes

attributs multivalues (listes, ensembles, tableaux)

utilisation de references facilite l’utilisation de donnees tresvolumineuses du multimedia en permettant leur partage amoindre cout (sans jointure)

Odile PAPINI Bases de donnees

Page 12: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Le modele objet-relationnel

modele relationnel : impossibilite de definir de nouveaux types

modele objet-relationnel : possibilite de definir de nouveauxtypes :

simples

structures

fonctions et procedures associees

modele objet-relationnel : supporte l’heritage de type(polymorphisme et reutilisation)

Odile PAPINI Bases de donnees

Page 13: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Pourquoi ne pas utiliser les SGBDO ?

Avantages du modele relationnel :

facilite et efficacite des requetes complexes dans les grandesbases de donnees

specification des contraintes d’integrite sans programmation

theorie sous-jacente solide et normes reconnues

Odile PAPINI Bases de donnees

Page 14: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Pourquoi ne pas utiliser les SGBDO ?

inertie de l’existant : tres nombreuses bases de donneesrelationnelles utilisees

pas de normalisation des SGBDO

moins de souplesse pour s’adapter a plusieurs applications

peu d’informaticiens formes aux SGBDO

Odile PAPINI Bases de donnees

Page 15: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Le modele objet-relationnel

Nouvelles possibilites :

definition de nouveaux types complexes avec fonctions demanipulation

une colonne peut contenir une collection : liste, ensemble, · · ·

ligne consideree comme un objet avec un identificateur OID

utilisation de references aux objets

extension de SQL : SQL3 (ou SQL99) recherche etmanipulation des donnees

Odile PAPINI Bases de donnees

Page 16: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Le modele objet-relationnel

Inconvenients du modele objet-relationnel :

ne s’appuie pas sur une theorie solide comme le modelerelationnel

pas de standardisation : implantations differentes, partiellesdans les SGBD

Odile PAPINI Bases de donnees

Page 17: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

A jout de nouveaux types

nouveaux types predefinis a la norme SQL :

reference

collection

LOB (objets de grande taille)

types definis par l’utilisateur :

types distincts

types structures

Odile PAPINI Bases de donnees

Page 18: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Types distincts

pour mieux differencier les domaines des colonnes

formes a partir des types de base

s’utilisent avec les memes instructions que le type de basesous jacent

CREATE TYPE CODEPAYS as char(2) ;

CREATE TYPE MATRICULE as integer ;

Odile PAPINI Bases de donnees

Page 19: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Types structures

correspondent aux classes de la POO

peuvent contenir des :

constructeursattributs (variables d’instances)fonctions et procedures (methodes)

les membres peuvent etre :

publicprotectedprivate

fonctions et procedures peuvent etre ecrites en SQL ou autrelangage

Odile PAPINI Bases de donnees

Page 20: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Types structures

syntaxe semblale a celle de la creation 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’integrite

redefinition d’un type s’il existe deja :

CREATE or REPLACE TYPE

Odile PAPINI Bases de donnees

Page 21: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

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

MEMBER FUNCTION get LIEU RETURN ISbegin

return LIEU ;

end ;

end ;

Odile PAPINI Bases de donnees

Page 22: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Heritage

les types supportent l’heritage multiple avec le mot-cleUNDERun type est final par defaut

CREATE TYPE EMPLOYE TYPE AS OBJECT

(MATR integer,NOM varchar(30),SAL numeric(8,2)),NOT FINAL ;

CREATE TYPE COMMERCIAL TYPEUNDER EMPLOYE TYPE

(COMM numeric(8,2)),NOT FINAL ;

Odile PAPINI Bases de donnees

Page 23: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Ajout d’un attribut a un type

ALTER TYPE EMPLOYE TYPE

ADD ATTRIBUTE DATE NAISSANCE DATECASCADE ;

CASCADE : propagaton aux tables deja construites a partirdu type

Odile PAPINI Bases de donnees

Page 24: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Ajout d’une methode a un type

ALTER TYPE EMPLOYE TYPE

ADD MEMBER

FUNCTION AGE RETURN INTEGER

CASCADE ;

Odile PAPINI Bases de donnees

Page 25: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Types de ligne

notion de type de ligne correspond aux structures du langageC :

ensemble non encapsule d’attributs

un type peut etre nomme ou non

Odile PAPINI Bases de donnees

Page 26: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Type de ligne non nomme

CREATE TABLE EMP

(NOM E VARCHAR(15),ADRESSE ROW(NUMERO INTEGER, RUE VARCHAR(25),· · · )) ;

Odile PAPINI Bases de donnees

Page 27: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Type de ligne nomme

CREATE ROW TYPE ADRESSE T

(NUMERO INTEGER,RUE VARCHAR(25), · · · )) ;

ce type peut etre utilise pour :

une declaration d’attribut

une creation de table apartir de ce type

Odile PAPINI Bases de donnees

Page 28: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Vues du dictionnaire des donnees

USER TYPES : pour les types

USER TYPES ATTRS : pour les attributs des types

USER TYPES METHODS : pour les methodes des types

USER OBJECT TABLES : pour les tables objet-relationnelles

sous SQLPLUS de Oracle :

DESCRIBE DEPT TYPE

Odile PAPINI Bases de donnees

Page 29: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Creation de tables a partir de types

les donnees d’un type ne sont persistantes que si elles sontrangees dans une table

la creation de tables peut se faire comme en SQL (standard)

la creation de tables peut se faire a partir dun type de donees

Odile PAPINI Bases de donnees

Page 30: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Creation de tables a partir d’un type

le type EMPLOYE TYPE

CREATE TYPE EMPLOYE TYPE AS OBJECT

(MATR integer,NOM varchar(30),SAL numeric(8,2)) ;

la creation d’une tablea partir de type et specification descontraintes d’intgrite :

CREATE TABLE EMPLOYE OF EMPLOYE TYPE

(PRIMARY KEY MATR) ;

Odile PAPINI Bases de donnees

Page 31: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Heritage de tables

une table peut heriter d’une ou plusieurs tables

pas supporte par ORACLE 10g

Odile PAPINI Bases de donnees

Page 32: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Creation de tables a partir d’un type derive

CREATE TABLE COMMERCIAUX OF COMMERCIAL TYPE

(CONSTRAINT PK COM PRIMARY KEY (MATR)) ;

Odile PAPINI Bases de donnees

Page 33: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Caracteristiques d’un table objet-relationnel

une table est une table objet-relationnelle si elle a eteconstruite a partir d’un type : CREATE TABLE · · · OF

les lignes de ces tables sont considerees comme des objetsavec un identifiant (OID)

on peut utiliser des references pour designer les lignes de cestables pas possible pour les autres tables

vues du dictionnaire des donnees :

USER OBJECT TABLES : pour les tables objet-relationnelles

Odile PAPINI Bases de donnees

Page 34: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Insertion de donnees

ajout des donnees comme pour des tables relationnelles

INSERT INTO COMMERCIAUX

(MATR, NOM, SAL, COMM)VALUES (365, ’TOTO’, 3000,500) ;

Odile PAPINI Bases de donnees

Page 35: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Insertion avec constructeur

utilisation d’un constructeur du type avec lequel la table a eteconstruite

INSERT INTO EMPLOYE VALUES (

EMPLOYE TYPE(365, ’TOTO’, 3000,500)) ;

si le type est un type utilise par un autre type, l’utilisation duconstructeur du type est obligatoire

Odile PAPINI Bases de donnees

Page 36: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Modifications de donnees

utilisation de la notation pointee

UPDATE EMPLOYE

SET EMPLOYE.SAL = 2800WHERE EMPLOYE.NOM =’TITI’ ;

SQL 99 fournit la notation .. pour designer un attribut d’unecolonne d’un type structure

UPDATE EMPLOYE

SET EMPLOYE.ADRESSE .. NUMERO = 18WHERE EMPLOYE.NOM =’TITI’ ;

Odile PAPINI Bases de donnees

Page 37: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Appel de procedure ou fonction

E.NOM, age(E)

FROM EMPLOYE EWHERE age(E) < 40 ;

sous ORACLE

SELECT E.NOM, E.age()

FROM EMPLOYE EWHERE E.age(E) < 40 ;

Odile PAPINI Bases de donnees

Page 38: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

References

On peut indiquer la definition d’u type qu’un attribut contientdes references (pas des valeurs) a des donnees dun autre type

CREATE TYPE EMPLOYE TYPE AS OBJECT

(MATR integer,NOM varchar(30),SAL numeric(8,2)),· · ·

DEPT REF DEPT TYPE) ;

Odile PAPINI Bases de donnees

Page 39: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

SELECT avec references

La notation pontee permet de recuperer les attributs d’untype dont on a un pointeur

lieu de travail des employes

sous SQL 99

SELECT NOM, E.DEPT → LIEU

FROM EMPLOYE E ;

avec ORACLE

SELECT NOM, E.DEPT.LIEU

FROM EMPLOYE E ;

Odile PAPINI Bases de donnees

Page 40: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

INSERTIONS avec references

pointeur NULL

INSERT INTO EMPLOYE VALUES

(1546, ’TITI’, NULL) ;

reference vers le DEPT numero 10

INSERT INTO EMPLOYE (MATR, NOM, DEPT)

SELECT 1830, ’TOTO’, REF(d)FROM DEPT dWHERE DEPT.NUM DEPT = 10 ;

Odile PAPINI Bases de donnees

Page 41: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

MODIFICATIONS avec references

UPDATE EMPLOYE

SET DEPT =

(SELET REF(d)FROM DEPT dWHERE NUM DEPT =10)

WHERE MATR = 1984 ;

si DEPT de numero 10 n’existe pas le SELECT renvoie NULL

pour eviter ce probleme : rajouter la contrainte NOT NULL

DEPT REF DEPT TYPE NOT NULL

Odile PAPINI Bases de donnees

Page 42: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Contraintes sur les references

le type REF DEPT TYPE restreint le type reference mais pasla table referencee

cette reference peut referencer une valeur de n’importe quellecolonne de table qui a le type DEPT TYPE

la clause SCOPE restreint la colonne referencee, elle peut etreajoutee lors de la definition d’une table

DEPT REF DEPT TYPESCOPE IS DEPT TABLE ;

DEPT reference une ligne de la table DEPT TABLE (pas uneligne d’une autre table)

Odile PAPINI Bases de donnees

Page 43: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Reference perdue

SCOPE ne suffit pas pour imposer une contrainte stricte

la reference peut etre perdue : ne pas correspondre a une ligneexistante

pour eviter les references perdues SCOPE doit etre remplacepar une contrainte REFERENCES (comme avec des tablesrelationnelles)

DEPT REF DEPT TYPEREFERENCES DEPT TABLE ;

Odile PAPINI Bases de donnees

Page 44: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Types de collections

Representation d’une colonne multivaluee : utilisation descollections

ensembles (pas de doublons)sacs (avec doublons)listes (ordonnees et indexees par un entier)

d’autres types de collections peuvent etre ajoutees par lesSGBD

Odile PAPINI Bases de donnees

Page 45: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Exemple de collections

CREATE TYPE EMPLOYE TYPE

(MATR integer,NOM varchar(30),PRENOMS LIST (varchar(15)),ENFANTS SET(personne),· · · ) ;

Odile PAPINI Bases de donnees

Page 46: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Utilisation d’une collection

on peut utiliser une collection comme une table en la faisantpreceder par le mot-cle 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 ;

Odile PAPINI Bases de donnees

Page 47: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Les collections avec ORACLE 10g

ORACLE 10g n’offre que 2 types de collections :

table imbriquee (NESTED TABLE) : collection on-ordonnee etnon limitee en nombre d’elements

tableau predimensionne (VARRAY) : collection d’elements dememe type, ordonnee et limitee en taille

Odile PAPINI Bases de donnees

Page 48: Cours 7 : Mod`ele relationnel-objet Odile PAPINIodile.papini.perso.luminy.univ-amu.fr/sources/BD/cours-BD-7.pdf · Introduction Bases de donn´ees objet Bases de donn´ees objet-relationnel

IntroductionBases de donnees objet

Bases de donnees objet-relationnelrapide survol de SQL99

Tables imbriquees

une table relationnelle (pas necessairement objet-relationnelle)peut contenir une ou plusieurs tables imbriquees

table imbriquee (NESTED TABLE) : collection on-ordonnee etnon limitee en nombre d’elements

tableau predimensionne (VARRAY) : collection d’elements dememe type, ordonnee et limitee en taille

Odile PAPINI Bases de donnees