32
1 D'après G. Gardarin L'OBJET-RELATIONNEL L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel 2. Le processus de normalisation 3. Vue d'ensemble de SQL3 4. Le support des objets 5. Conclusion

1 D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

Embed Size (px)

Citation preview

Page 1: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

1 D'après G. Gardarin

L'OBJET-RELATIONNELL'OBJET-RELATIONNEL 1. Le modèle objet-relationnel

2. Le processus de normalisation

3. Vue d'ensemble de SQL3

4. Le support des objets

5. Conclusion

Page 2: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

2 D'après G. Gardarin

1.Modèle objet-relationnel 1.Modèle objet-relationnel Nécessité de conserver la compatibilité avec l'existant

SGBD relationnel Applications client-serveur

Nécessité de supporter des données complexes textuelles, géométriques, géographiques, audiovisuelles, soniques, multimédias.

Page 3: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

3 D'après G. Gardarin

Faiblesses du modèle relationnelFaiblesses du modèle relationnel Opérations séparées des données

procédures stockées non intégrées dans le modèle, absence de gestion des attributs cachés.

Support de domaines atomiques Conforme à la première forme normale de Codd, inadapté aux objets complexes (documents structurés), introduction de BLOB.

Mauvais support des applications non standards CAO, CFAO, BD Géographiques, BD techniques.

Page 4: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

4 D'après G. Gardarin

L'apport des modèles objetsL'apport des modèles objets Identité d'objets

Introduction de pointeurs invariants, Possibilité de chaînage.

Encapsulation des données Possibilité d'isoler les données par des opérations, Facilite l'évolution des structures de données.

Héritage d'opérations et de structures Facilite la réutilisation des types de données, Permet l'adaptation à son application.

Possibilité d'opérations abstraites (polymorphisme) Simplifie la vie du développeur

Page 5: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

5 D'après G. Gardarin

Le support d'objets complexesLe support d'objets complexes Nécessité d'introduire des

attributs multivalués Fourniture de collections

prédéfinies telles liste, ensemble, tableau, ...

Imbrication des collections pour représenter des objets très compliqués

Exemple Type Molécule

{ list <Atome, Connexions>}

Type Atome { Noyau, list <Electrons> }

Page 6: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

6 D'après G. Gardarin

Relationnel

Types utilisateurset encapsulation

Collectionet objets complexes

Référence et identité

Héritageet réutilisation

Classes de systèmesClasses de systèmes Etendre le modèle relationnel

Systèmes objet-relationnel Illustra de Stonebraker UniSQL de Won Kim

Tout refaire Systèmes objets O2 de Bancilhon Complexité

repartir de C++ C++ persistants

Page 7: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

7 D'après G. Gardarin

DomaineTableAttributCléRéférence

RELATIONNEL

OBJET

Opération

Héritage

Identifiant

Polymorphisme

Types utilisateurs Collections

L'objet-relationnelL'objet-relationnel Extension du modèle

relationnel Attributs multivalués : structure, liste,

tableau, ensemble, ... Héritage sur relations et types Domaine type abstrait de données

(structure cachée + méthodes) Identité d'objets

Extension de SQL Définition des types complexes avec

héritage Appels de méthodes en résultat et

qualification Imbrication des appels de méthodes Surcharge d'opérateurs

OBJECT-RELATIONAL EN ANGLAIS

Page 8: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

8 D'après G. Gardarin

24 ParisPaul

Conducteur Age

45Paul

17Robert

Rapport

134

219

Photo

037

Accident

Objet Police

Police Nom Adresse Conducteurs Accidents

Exemple de table et objet (Oracle8)Exemple de table et objet (Oracle8)

Page 9: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

9 D'après G. Gardarin

Bilan Objet-RelationnelBilan Objet-Relationnel Nécessité d'étendre les types de données Les outils poussent. Pas de révolution objet mais la continuité !

Questions ? Ce n 'est pas trop compliqué ce mélange ?

Page 10: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

10 D'après G. Gardarin

2. Processus de normalisation2. Processus de normalisation Un groupe international

ISO/IEC JTC1/SC 21/WG3 DBL Pays actifs

Australie, Brésil, Canada, France, Allemagne, Japon Korée, Hollande, Royaumes Unis, Etats Unis

ANSI X3H2 (http://www.ansi.org) Documents

ISO/IEC 9075:1992, "Database Languages - SQL" ANSI X3.135-1992, "Database Language SQL"

Validation par le NIST (http://ncsl.nist.gov) SQL2-92 niveau entré ; problèmes de financement !

Page 11: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

11 D'après G. Gardarin

Les composantsLes composants Part 1: Framework

Une description non-technique de la structure de document. Part 2: Foundation

Le noyau de spécification, incluant les types de données abstraits. Part 3: SQL/CLI

l'interface d'appel client. Part 4: SQL/PSM

le langage de spécifications de procédures stockées Part 5: SQL/Bindings

les liens SQL dynamique et “embedded” SQL repris de SQL-92. Part 6: SQL/XA

Une spécification de l'interface XA pour moniteur transactionnel. Part 7: SQL/Temporal

Le support de la gestion du temps dans SQL3

Page 12: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

12 D'après G. Gardarin

Le planningLe planning Committee Draft – 1/96 Draft International Standard – 12/98 International Standard – 7/99

Autres composants prévus SQL/MM spécification d'ADT multimédia SQL/RDA spécification du protocole RDA

Page 13: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

13 D'après G. Gardarin

3. Vue d'ensemble de SQL33. Vue d'ensemble de SQL3 Des aspects multiples

Un langage de définition de types Un langage de programmation Un langage de requêtes Un langage temporel ...

Gestion de données complexes dans le cadre de système objet-relationnel Nouveaux langages

Illustra, UniSQL, ODB II, Versant

Modèles Relationnels étendus ("universels") Ingres, Oracle, DB2 UDB, Informix

Page 14: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

14 D'après G. Gardarin

La base La base Basic SQL/CLI capabilities (interface appel client) Basic SQL/PSM capabilities (interface spécification des

procédures stockées Triggers (intégration des déclencheurs) Abstract Data Types (ADT) Object Oriented Capabilities

Préréquisites aux objets : Capacité à définir des opérations complexes (PSM). Stockage de procédures dans la base (PSM). Appels de procédures externes (PSM).

Page 15: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

15 D'après G. Gardarin

Les triggers Les triggers Création des déclencheurs triggers

événement = INSERT, UPDATE, DELETE possibilité de déclencher avant ou après l'événement. action = opération sur table avec éventuelle condition. possibilité de référencer les valeurs avant ou après mise à jour.

Exemple : EMPLOYE (ID int, salaire float) CUMUL (ID int, Augmentation float) CREATE TRIGGER AFTER UPDATE OF salaire ON employé REFERENCING OLD AS ancien_salaire, NEW AS nouveau_salaire UPDATE CUMUL SET Augmentation = Augmentation +

nouveau_salaire - ancien_salaire WHERE ID = employé.ID

Page 16: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

16 D'après G. Gardarin

Les procédures (PSM)Les procédures (PSM)

La programmation de procédure est intégrée au langage déclaration de variables, assignation, structures de contrôle CASE, IF boucles LOOP, FOR gestion des exceptions SIGNAL, RESIGNAL possibilité de procédures et fonctions externes

Possibilité de structuration en modules

Page 17: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

17 D'après G. Gardarin

Bilan NormalisationBilan Normalisation La normalisation avance plus vite que les utilisateurs Elle marche bien quand elle précède la technique ! Questions ?

Et Microsoft ?

Page 18: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

18 D'après G. Gardarin

4. SQL3 - Les objets4. SQL3 - Les objets Extensibilité des types de données

Définition de types abstraits. Possibilité de types avec ou sans OID.

Support d'objets complexes Constructeurs de types (tuples, set, list, …). Utilisation de référence (OID).

Héritage Définition de sous-types. Définition de sous-tables.

Page 19: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

19 D'après G. Gardarin

Les types abstraitsLes types abstraits CREATE TYPE <nom ADT> <corps de l'ADT> <corps de l'ADT>

<OID option> ::= WITH OID VISIBLE objets sans OID par défaut

<subtype clause> ::= UNDER <supertype clause> possibilité d'héritage multiple avec résolution explicite

<member list> <column definition> : attributs publics ou privés <function declaration> : opérations publiques <operator name list> : opérateurs surchargés <equals clause>, <less-than clause> : définition des ordres <cast clause> : fonction de conversion de types

Page 20: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

20 D'après G. Gardarin

Quelques exemplesQuelques exemples Un type avec référence

CREATE TYPE WITH OID phone (country VARCHAR, area VARCHAR, number int, description CHAR(20))

Un type sans référence CREATE TYPE person (nss INT, nom VARCHAR, tel phone)

Un sous-type CREATE TYPE student UNDER person (major VARCHAR, year INT)

Page 21: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

21 D'après G. Gardarin

Les constructeurs de typesLes constructeurs de types Les types paramétrés

possibilité de types paramétrés (TEMPLATE) gestion de la généricité assurée par le compilateur ...

Les constructeurs de base collections SET(T), MULTISET(T), LIST(T) CREATE TYPE person (nss INT, nom VARCHAR, prénoms LIST(varchar), tel SET(phone))

Les références possibilité de référencer un objet créé “without OID” CREATE TYPE car (number CHAR(9), color VARCHAR, owner REF(person))

Les constructeurs additionnels stack, queue, array, insertable array (exemple : texte) non intégrés dans le langage mais peuvent être ajoutés

Page 22: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

22 D'après G. Gardarin

Les fonctionsLes fonctions Définition des fonctions

[<function type>] : CONSTRUCTOR, ACTOR, DESTRUCTOR FUNCTION <function name> <parameter list> RETURNS

<function results> <SQL procedure> | <file name> END FUNCTION

Peuvent être associées à une base, un type, une table, … Exemple

CREATE FUNCTION sell (c Ref(Constructor), amount MONEY)

UPDATE Constructor SET total = total + amount WHERE Ref(Constructor) = c

END FUNCTION

Langage de programmation SQL et SQL3 PSM, Langage externe

Page 23: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

23 D'après G. Gardarin

Les tablesLes tables

Caractéristiques une table peut posséder des attributs d'un type abstrait un tuple contient des références ou des valeurs complexes un attribut peut être de type référence (REF <type> ou with OID)

Possibilité d'utiliser un type prédéfini CREATE TABLE cars OF car ;

Possibilité de définir un nouveau type Le type est celui des tuples de la table CREATE TABLE Constructors OF NEW TYPE Constructor (name VARCHAR,

total MONEY) ;

Possibilité de définir des sous-tables CREATE TABLE FrenchConstructors UNDER Constructors(taxe MONEY)

Page 24: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

24 D'après G. Gardarin

L'appel de fonctions et opérateurs L'appel de fonctions et opérateurs Appel de fonctions

SELECT r.name FROM emp j, emp r WHERE j.name = 'Joe' and distance(j.location,r.location) < 1 ;

Appel d'opérateurs SELECT r.name FROM emp, emp r WHERE emp.name = 'Joe' and contained(r.location, circle(emp.location,1)) ;

Page 25: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

25 D'après G. Gardarin

Le parcours de référenceLe parcours de référence Possibilité d'appliquer les fonctions Ref et DeRef

(implicite) CREATE TABLE cars OF TYPE car SELECT c.Owner.name FROM cars c WHERE color = 'red'

Possibilité de cascader la notation pointée SELECT dname FROM dept WHERE 1985 IN auto.years

Généralisation possible aux chemins multiples SELECT dname FROM dept WHERE autos.(year=1985 and name = 'Ford')

Toute collection peut être utilisée en place d'une table

Page 26: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

26 D'après G. Gardarin

N° Chef Adresse Employés Dépenses

25 ParisPatrick

Montant

185

Motif NDep

42Eric

51

ServicesServices

24 VersaillesPaul

Montant

134

219

Motif

037

NDep

Nom Age

Nom Age

45Pierre

37Marie

1 2600 Livres

2 8700 Mission

3 15400 Portable

5 3000 Livres

7 4000 MissionJulie

Exemple de tables imbriquéesExemple de tables imbriquées

Page 27: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

27 D'après G. Gardarin

select p.effdate, p.name, p.vehicleyrfrom policy pwhere p.carmodel.make = ‘ferrari'

select effdate, name, vehicleyrfrom policy, customers, vehicleswhere policy.custno = customers.custnoand policy.vehicleno = vehicles.vehiclenoand model = ‘ferrari'

Comparaison avec le relationnelComparaison avec le relationnel Accès en relationnel

Accès en objet-relationnel

Page 28: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

28 D'après G. Gardarin

Exemple d'application (1)Exemple d'application (1) GIS (Geographical Information Systems) Type Geométrie

Point, ligne, polygone, chemin, rectangle, ellipse, ...

Fonctions distance(geom,geom) returns real contained(geom,geom) returns bool overlaps(geom,geom) returns bool intersection(geom,geom) returns geom union(geom,geom) returns geom ....

Page 29: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

29 D'après G. Gardarin

Exemple d'application (2)Exemple d'application (2) Images Type Library Différents formats : TIFF, GIF, FAX, CD, JPEG Fonctions :

rotate(image,angle) returns image transpose(image) returns image flip(image) returns image enhance(image), oil_painting(image) plus(image,image), minus(image,image) intersection(image,image), union(image,image) histogram(image) returns(table) similarity(image,image)

Page 30: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

30 D'après G. Gardarin

5. UN STANDARD EN EVOLUTION5. UN STANDARD EN EVOLUTION Proposition concurrente de l'odmg

Accord entre constructeurs de SGBD Objets Support du modèle pur objet de l'OMG Variation de SQL traitant des collections imbriquées

Accord ANSI X3 H2 et ODMG Définition d'un langage d'interrogation intégrant relationnel et

objet Convergence relationnel-objet vers SQL3

De nombreux points restent à fixer Visibilité des OID ? Chemins multivalués ? Cohérence ?

Page 31: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

31 D'après G. Gardarin

Objet ou objet-relationnel ?Objet ou objet-relationnel ?

Données Données

Simples Complexes

Questions Relationnel Objet-Relation.

Complexes

Accès Fichiers Objet

Directs

ceci d'après Mike Stonebraker

Page 32: 1  D'après G. Gardarin L'OBJET-RELATIONNEL l 1. Le modèle objet-relationnel l 2. Le processus de normalisation l 3. Vue d'ensemble de SQL3 l 4. Le support

32 D'après G. Gardarin

QuestionsQuestions L'objet-relationnel s'impose doucement

beaucoup de relationnel un peu d 'objet (UDT)

Questions ? Et Microsoft ?