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

Slides:



Advertisements
Présentations similaires
Sintaks : Tentative de guide de mise en œuvre Michel Hassenforder.
Advertisements

Présentation du Stage en Entreprise
Cours n° 7 Standard Template Library II.
Méthodologie objet et IG ?
Cours n° 8 Conception et Programmation à Objets
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
SQL - Subtilités.
Le Modèle Logique de Données
Directeur de Thèse : Pr. Witold Litwin
Algèbre relationnelle
Programmation Orientée Objet (POO)
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
TP 3-4 BD21.
Bases de données orientées-objets
Optimisation de Requêtes
Bases de données orientées-objets
INTEGRITE ET BD ACTIVES
Oracle Orienté Objet Amanda Evans Mai 2000.
TECHNIQUES DES SGBDO 1. Qu'est-ce qu'un SGBDO ?
Programme Introduction aux BD et aux SGBD Le modèle relationnel
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Introduction à la POO: Les classes vs les objets
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Développement d’applications web
Contrôles d'accès aux données
L’utilisation des bases de données
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
COURS Bases de données orientées objet
Leçon 6 : Structures de données dynamiques IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier.
L’utilisation des bases de données
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Langage Oriente Objet Cours 2.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Projet Génie Logiciel & UML, Bases de Données & Interfaces
SQL: Contraintes et Triggers
Cours de Base de Données & Langage SQL
1 SQL Avancé 2010 Witold Litwin 2 Quoi & Pourquoi ? n Possibilités Etendues de Manipulation de BDs relationnelles n Fondamentales pour lexploration approfondie.
1 SQL Manipulations Avancées (08-09) Witold Litwin.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
Procédures Stockées Schedule: Timing Topic 60 minutes Lecture
LE LANGAGE DE REQUETES SQL2
Bases de données orientées objets SGBD relationnels-objets
Bases de données orientées objets Illustration sur ORACLE
Structures des données
Introduction.
PHP & My SQL.
BD Relationnelles versus BD Objets Fariza Tahi
L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
Présentation Session RPSI
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
1 A llier R elations et O bjets pour M odéliser Projet Sherpa INRIA Rhône-Alpes Visite Schneider 15/09/99.
Créer des packages.
1 BDs Orientées Objets Witold LITWIN. 2 Pourquoi ? F Les BDs relationnelles ne sont pas adaptées aux applications CAD/CAM, cartes géo... F le problème.
INTEGRITE ET BD ACTIVES
Plan du cours - Bases de données objet : objectifs, principe, mise en oeuvre sous Oracle - Aspect système des bases de données : fichiers, index et hachage.
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Création et Gestion de Tables
02/06/2015© Robert Godin. Tous droits réservés.1 5 Interface entre SQL et un programme n SQL incomplet n Défaut d'impédance (impedance mismatch) – modèle.
Bases de Données Avancées: Nouvelles Perspectives
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Nicolas Ribot Introduction aux triggers Nicolas Ribot - Licence GNU FDL - Version 1.1.
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Transcription de la présentation:

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 1

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

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

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

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> } 6 6

Classes de systèmes Etendre le relationnel Tout refaire 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 Types utilisateurs et encapsulation Héritage et réutilisation Relationnel Référence et identité Collection et objets complexes 7 7

L'objet-relationnel OBJECT-RELATIONAL EN ANGLAIS 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 OBJET Polymorphisme RELATIONNEL Types utilisateurs Domaine Table Attribut Clé Référence Collections Opération Identifiant Héritage 8 8

Exemple de table et objet Police Nom Adresse Conducteurs Accidents Conducteur Age Accident Rapport Photo 24 Paul Paris Paul 45 134 Robert 17 219 037 Objet Police

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 ?

2. NORMALISATION DE SQL3 Un groupe international Pays actifs 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 X3.135-1992, "Database Language SQL" Validation par le NIST (http://ncsl.nist.gov) SQL2-92 niveau entré ; problèmes de financement ! 9 10

Les composants Part 1: Framework Part 2: Foundation Part 3: SQL/CLI 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 10 11

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 11 12

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 12 13

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

Les triggers Création des triggers Exemple : é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 14 15

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 15 16

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

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

Les types abstraits CREATE TYPE <nom 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 17 18

Quelques exemples Un type avec référence Un type sans 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) 18 19

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

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, … Exemple CREATE FUNCTION sell (c Ref(Constructor), amount MONEY) UPDATE Constructor SET total = total + amount WHERE Ref(Constructor)=c Langage de programmation SQL et SQL3 PSM, Langage externe 20 21

Les tables Caractéristiques Possibilité d'utiliser un type prédéfini 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) 21 22

L'appel de fonctions et opérateurs SELECT r.name FROM emp j, emp r WHERE j.name = 'Joe' and distance(j.location,r.location) < 1 ; Appel d'opérateurs FROM emp, emp r WHERE emp.name = 'Joe' and contained(r.location, circle(emp.location,1)) ; 22 23

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

Exemple de tables imbriquées Services N° Chef Adresse Employés Dépenses Nom Age NDep Montant Motif 24 Paul Versailles 1 2600 Livres 2 8700 Mission 3 15400 Portable 134 Pierre 45 Marie 37 219 037 Nom Age NDep Montant Motif 5 3000 Livres 7 4000 Mission Eric 42 25 Patrick Paris Julie 51 185

Comparaison avec le relationnel Accès en relationnel Accès en objet-relationnel 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’

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 .... 24 27

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) 25 28

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 ? 26 29

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 27 30

Questions L ’objet-relationnel s’impose doucement Questions ? 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