32
Gardarin 2001 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

Gardarin 2001 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

Embed Size (px)

Citation preview

Page 1: Gardarin 2001 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

Gardarin 2001

L'OBJET-RELATIONNEL

1. Le modèle objet-relationnel2. Le processus de normalisation3. Vue d'ensemble de SQL34. Le support des objets5. Conclusion

Page 2: Gardarin 2001 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

2©Gardarin 2001

1.MODELE 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: Gardarin 2001 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

3©Gardarin 2001

Faiblesses 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 d'attributs cachés

Support de domaines atomiques• 1è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: Gardarin 2001 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

4©Gardarin 2001

L'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: Gardarin 2001 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

5©Gardarin 2001

Le 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: Gardarin 2001 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

6©Gardarin 2001

Relationnel

Types utilisateurset encapsulation

Collectionet objets complexes

Référence et identité

Héritageet réutilisation

Classes de systèmes

Etendre 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: Gardarin 2001 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

7©Gardarin 2001

DomaineTableAttributCléRéférence

RELATIONNEL

OBJET

Opération

Héritage

Identifiant

Polymorphisme

Types utilisateurs Collections

L'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: Gardarin 2001 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

8©Gardarin 2001

24 ParisPaul

Conducteur Age

45Paul

17Robert

Rapport

134

219

Photo

037

Accident

Objet Police

Police Nom Adresse Conducteurs Accidents

Exemple de table et objet

Page 9: Gardarin 2001 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

9©Gardarin 2001

Bilan 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: Gardarin 2001 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

10©Gardarin 2001

2. NORMALISATION DE SQL3

Un groupe international• ISO/IEC JTC1/SC 21/WG3 DBL

Pays actifs• Australia, Brazil, Canada, France, Germany, Japan • Korea, The Netherlands, United Kingdom,United

StatesANSI 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: Gardarin 2001 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

11©Gardarin 2001

Les composants Part 1: Framework

• Une description non-technique de comment le document est structuré.

Part 2: Foundation • Le noyau de specification, 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 du temps dans SQL3

Page 12: Gardarin 2001 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

12©Gardarin 2001

Le 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: Gardarin 2001 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

13©Gardarin 2001

3. VUE D’ENSEMBLE DE SQL3 De multiples facettes :

• Un langage de définition de types

• Un langage de programmation• Un langage de requêtes• Un langage temporel• ...

Pour gérer des données complexes dans le cadre de système objet-relationnel• Nouveaux

Illustra, UniSQL, ODB II, Versant

• Relationnels étendus ("universels")

Ingres, Oracle, DB2 UDB, Informix

Page 14: Gardarin 2001 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

14©Gardarin 2001

La base

Basic SQL/CLI capabilities Basic SQL/PSM capabilities Triggers 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: Gardarin 2001 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

15©Gardarin 2001

Les triggers

Création des 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: Gardarin 2001 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

16©Gardarin 2001

Les procédures (PSM)

Langage de programmation de procédures• déclaration de variables• assignation• conditionnels CASE, IF• boucles LOOP, FOR• exceptions SIGNAL, RESIGNAL• possibilité de procédures et fonctions externes

Possibilité de structuration en modules

Page 17: Gardarin 2001 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

17©Gardarin 2001

Bilan Normalisation

La normalisation avance plus vite que les utilisateurs

Elle marche bien quand elle précède la technique !

Questions ?• Et Bill Gates ?

Page 18: Gardarin 2001 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

18©Gardarin 2001

4. 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: Gardarin 2001 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

19©Gardarin 2001

Les 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: Gardarin 2001 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

20©Gardarin 2001

Quelques 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: Gardarin 2001 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

21©Gardarin 2001

Les constructeurs de types Les types paramétrés

• possibilité de types paramétrés (TEMPLATE)• 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: Gardarin 2001 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

22©Gardarin 2001

Les 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, …

ExempleCREATE FUNCTION sell (c Ref(Constructor), amount MONEY) UPDATE Constructor SET total = total + amount WHERE

Ref(Constructor)=cEND FUNCTION

Langage de programmation• SQL et SQL3 PSM, Langage externe

Page 23: Gardarin 2001 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

23©Gardarin 2001

Les 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: Gardarin 2001 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

24©Gardarin 2001

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: Gardarin 2001 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

25©Gardarin 2001

Le 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: Gardarin 2001 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

26©Gardarin 2001

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ées

Page 27: Gardarin 2001 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

27©Gardarin 2001

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 relationnel

Accès en relationnel

Accès en objet-relationnel

Page 28: Gardarin 2001 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

28©Gardarin 2001

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: Gardarin 2001 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

29©Gardarin 2001

Exemple d'application (2)

Images Type Library Différents formats : TIFF,GIF,FAX,CD,JPEGFonctions :

• 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: Gardarin 2001 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

30©Gardarin 2001

5. 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: Gardarin 2001 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

31©Gardarin 2001

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: Gardarin 2001 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

32©Gardarin 2001

Questions

L ’objet-relationnel s’impose doucement• beaucoup de relationnel• un peu d ’objet (UDT)• DB2 est le plus avancé• Oracle supporte 50%

Questions ?• Et Bill Gates ?

Peu de support dans SQL server 2000