La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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.

Présentations similaires


Présentation au sujet: "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."— Transcription de la présentation:

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. Conclusion

2 2 © Gardarin 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

3 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

4 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

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 } Type Atome { Noyau, list }

6 6 © Gardarin 2001 Relationnel Types utilisateurs et encapsulation Collection et objets complexes Référence et identité Héritage et 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

7 7 © Gardarin 2001 Domaine Table Attribut Clé 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

8 8 © Gardarin ParisPaul Conducteur Age 45Paul 17Robert Rapport Photo 037 Accident Objet Police Police NomAdresseConducteursAccidents Exemple de table et objet

9 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 ?

10 10 © Gardarin 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 States ANSI X3H2 (http://www.ansi.org) Documents ISO/IEC 9075:1992, "Database Languages - SQL" ANSI X , "Database Language SQL" Validation par le NIST (http://ncsl.nist.gov) SQL2-92 niveau entré ; problèmes de financement !

11 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 linterface dappel 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 linterface XA pour moniteur transactionnel. Part 7: SQL/Temporal Le support du temps dans SQL3

12 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 dADT multimédia SQL/RDA spécification du protocole RDA

13 13 © Gardarin VUE DENSEMBLE 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

14 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)

15 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

16 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

17 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 ?

18 18 © Gardarin SQL3 - LES OBJETS Extensibilité des types de données Définition de types abstraits Possibilité de types avec ou sans OID Support dobjets 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

19 19 © Gardarin 2001 Les types abstraits CREATE TYPE ::= WITH OID VISIBLE objets sans OID par défaut ::= UNDER possibilité dhéritage multiple avec résolution explicite : attributs publics ou privés : opérations publiques : opérateurs surchargés, : définition des ordres : fonction de conversion de types

20 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)

21 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

22 22 © Gardarin 2001 Les fonctions Définition des fonctions [ ] : CONSTRUCTOR, ACTOR, DESTRUCTOR FUNCTION RETURNS { | } 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

23 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 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)

24 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)) ;

25 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

26 26 © Gardarin 2001 N° ChefAdresseEmployésDépenses 25 Paris Patrick Montant 185 Motif NDep 42Eric 51 Services 24Versailles Paul Montant Motif 037 NDep NomAge Nom Age 45Pierre 37 Marie 12600Livres 28700Mission Portable 53000Livres 74000Mission Julie Exemple de tables imbriquées

27 27 © Gardarin 2001 select p.effdate, p.name, p.vehicleyr from policy p where p.carmodel.make = ferrari select effdate, name, vehicleyr from policy, customers, vehicles where policy.custno = customers.custno and policy.vehicleno = vehicles.vehicleno and model = ferrari Comparaison avec le relationnel Accès en relationnel Accès en objet-relationnel

28 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....

29 29 © Gardarin 2001 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)

30 30 © Gardarin 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 ?

31 31 © Gardarin 2001 Objet ou objet-relationnel ? Données Données Simples Complexes Questions Relationnel Objet-Relation. Complexes Accès Fichiers Objet Directs ceci daprès Mike Stonebraker

32 32 © Gardarin 2001 Questions L objet-relationnel simpose 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


Télécharger ppt "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."

Présentations similaires


Annonces Google