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

Les standards des SGBD du Futur (survol) Prof Serge Miranda Juin 2005 DATA BASE forum.

Présentations similaires


Présentation au sujet: "Les standards des SGBD du Futur (survol) Prof Serge Miranda Juin 2005 DATA BASE forum."— Transcription de la présentation:

1 Les standards des SGBD du Futur (survol) Prof Serge Miranda Juin 2005 DATA BASE forum

2 Un peu de PUB…

3 Plan Les quadrants de Stonebraker Les quadrants de Stonebraker Présentaion de SQL3 et ODMG su un exemple Présentaion de SQL3 et ODMG su un exemple Bilan synthétique Bilan synthétique

4 24ParisPaul Conducteur Age 45Paul 17Robert Rapport Photo 037 Accident Table ? Objet ? Police NomAdresseConducteursAccidents Exemple de table et objet (Oracle)

5 Surfeurs sur la vague OR….

6 Faiblesses du modèle relationnel Opérations séparées des données –procédures stockées non intégrées DM –absence d'attributs cachés Support de domaines atomiques –1ère forme normale de Codd –inadapté aux objets complexes (documents structurés) –introduction des BLOB…. Mauvais support des applications non gestion :CAO, CFAO, BD Géographiques,BD techniques

7 Langage Prog. OBJET Modèle Relationnel de Codd (V1) Modèle OR (Objet- Relationnel) Modèle OR ? Propriétés RICE Propriétés TIPS Propriétés TIPS + RICE 1- Compatibilité ascendante "Réutiliser et enrichir l'existant" CNAF (4 Dec 1996) 2- "Evoluer en douceur vers l'objet"

8 Evolution de l'informatique et OBJET 1965 LP OS 1970 LP IA SGF SGBD OS : Operating SERVICES ?

9 Evolution de l'informatique Services OS : Gestion des ressources physiques algorithme de pagination Sécurité Confidentialité d'ACCES Contrôle de Synchronisation (sémaphores,verrouillage, deadlock,... ) Modélisation : (" processus ").... pas de langage de programmation 1970 OS SGBDR SGF Services SGBD-R ( Propriétés TIPS ): (P) GestionPersistance LRU ++ (T) Sécurité & Transactionnel Intégrité S) Structuration/ Schéma via des modèles de données (I) Interface utilisateur Non procédurale(SQL)

10 Evolution de l'informatique et OBJET 198O OS SGBD-R OS LP IA 1990 OS Objet LPSGBD-R IA

11 Evolution de l'informatique 2000 ? " Il est dur de prédire, particulièrement... le futur " N.Boehr ? ? ? SERVICES ?

12 Evolution du logiciel et OBJETS DONNEES TRAITEMENTS OBJETS SGBD-R L.P ( SQL ) ( Prog. structurée ) GENIE LOGICIEL COMMUNICATION

13 Approche Objet et développement d'application INTERFACE APPLICATION SGBD Approche Objet Intégration Objet DB PB : " IMPEDANCE MISMATCH « et productivité du développeur

14 Marché BD et standards ? Marché BD et standards ? (Stonebraker 96 et Gartner) SGBD- R SGBD-OR Traitements SQL Non SQL (1)(2) SGFSGBD- OO (3) (1) : 8 G$ en 1995 (30 % de croissance) (3) : 1/100 de (1) en 1995 et 2008 (2) : 1/2 de (3) en 1995 ; 2*(1) en 2008 ! SQL2 SQL3 ODMG Simples Complexes Données

15 Visions de l'Objet VISION DOUBLE : (i) LP : objet "encapsulé Opérateurs SPECIFIQUES (classes, propriétés) héritage (instantiation) Polymorphisme (ii) BD : objet "structuré opérateurs GENERIQUES (algèbre,...) Persistance Concurrence / reprise sur panne Dualité des concepts structurels

16 Propriétés RICE d'un SGBD OBJET (Miranda, 2002) Dunod (Incrémentales par rapport à un SGBD relationnel) R (Réutilisabilité) : "Héritage" ou "polymorphisme" ==> Graphe héritage I (Identification système) C(Constructeurs d'objets complexes) Orthogonalité TUPLE et SET ==> Graphes d'agrégation E ("Encapsulation") "Messages", "Méthodes", "CLASSES dObjets » DEFINITION : Une CLASSE d OBJETS - est un (« valeurs potentielles ») - possède un (« valeurs réelles ») TYPE de DONNEES qui vérifie les propriétés RICE....

17 Définition Classe dObjets ? DEFINITION : Une CLASSE d OBJETS - est un (« valeurs potentielles ») - possède un (« valeurs réelles ») TYPE de DONNEES qui vérifie les propriétés RICE....

18 Consortium ODMG Créé en 1991 par Rick Cattell (SUN, Javasoft) comme sous groupe de l OMG (Object Management Group) avec les éditeurs suivants: 02 Tech., Objectivity, Object Design, Ontos, Versant Créé en 1991 par Rick Cattell (SUN, Javasoft) comme sous groupe de l OMG (Object Management Group) avec les éditeurs suivants: 02 Tech., Objectivity, Object Design, Ontos, Versant OMG : CORBA,… OMG : CORBA,… plus de 50 organisations de lindustrie et de linformatique en 2000 plus de 50 organisations de lindustrie et de linformatique en 2000 (Lucent, Lockheed, CA, Microsoft, Baan,...) (Lucent, Lockheed, CA, Microsoft, Baan,...) Objectifs: Objectifs: Promouvoir les OO DBMS, FUD, au delà des niches et standard avant …SQL3 ! Promouvoir les OO DBMS, FUD, au delà des niches et standard avant …SQL3 ! Créer un standard pour garantir lindépendance entre OODBMS (Portability) Créer un standard pour garantir lindépendance entre OODBMS (Portability)

19 Historique du standard « 00 » Objectif « portabilité Code » Première réunion à linitiative de Rick Catell chez Sun en Sept 91 Première réunion à linitiative de Rick Catell chez Sun en Sept 91 ODMG 1.0 (1993) : 5 Editeurs ODMG 1.0 (1993) : 5 Editeurs ODL, OQL, Interface C++, Smalltalk ODL, OQL, Interface C++, Smalltalk ODMG 2.0 (1996) : 10 Editeurs (Poet, Lucent, Windward, American Man, Barry) ODMG 2.0 (1996) : 10 Editeurs (Poet, Lucent, Windward, American Man, Barry) Interface Java (Java Binding), Meta Model, OIF Interface Java (Java Binding), Meta Model, OIF ODMG 3.0 (2000) enrichissement interface Java enrichissement interface Java Accent sur intégration avec OMG et X3H2 ( SQL3) Accent sur intégration avec OMG et X3H2 ( SQL3)

20 Composants du standard ODMG 3.0 SGBDOO OQL OML C++ OML Smalltalk Adaptation du modèle objet de l'OMG Adaptation du modèle objet de l'OMG Interfaces d'accès à un SGBDOO Interfaces d'accès à un SGBDOO OML Java ODL OIF

21 Composants du standard ODMG 3.0 Modèle de données Objet dérivé de lOMG Modèle de données Objet dérivé de lOMG Langages de spécifications Langages de spécifications ODL : langage de définition dobjets ODL : langage de définition dobjets OIF (object Interchange Format) : import/export OIF (object Interchange Format) : import/export Langage de requête : OQL (avec retour sur base SQL) Langage de requête : OQL (avec retour sur base SQL) OML (avec Liaisons) OML (avec Liaisons) C++, SMALLTALK et JAVA C++, SMALLTALK et JAVA

22 Composants du standard ODMG 3.0 Modèle de données Objet dérivé de lOMG Modèle de données Objet dérivé de lOMG Langages de spécifications Langages de spécifications ODL : langage de définition dobjets ODL : langage de définition dobjets OIF (object Interchange Format) : import/export OIF (object Interchange Format) : import/export Langage de requête : OQL (avec retour sur base SQL) Langage de requête : OQL (avec retour sur base SQL) OML (avec Liaisons) OML (avec Liaisons) C++, SMALLTALK et JAVA C++, SMALLTALK et JAVA

23 RICE et ODMG R* HERITAGE MULTIPLE (C++) R* HERITAGE MULTIPLE (C++) I* OID I* OID C* STRUCTURE C* STRUCTURE * COLLECTIONS : SET, BAG, LIST, ARRAY, Dictionary * pointeurs bidirect. REF et INVERSE E* Objets avec méthodes E* Objets avec méthodes

24 1.Expression de chemin mono-valuée - Séquence d'attributs ou associations (« relationship ») mono- valués de la forme X1.X2…Xn telle que chaque Xi à l'exception du dernier contienne une référence à un objet ou un litéral unique sur lequel le suivant s'applique. - Utilisable en place d'un attribut SQL dans SELECT ou WHERE 2) Collection dépendante - Collection obtenue à partir d'un objet, soit parce qu'elle est imbriquée dans l'objet ou pointée par l'objet. -Utilisable dans FROM OQL (nouveautés « SQL »)

25 Exemple ODL Liaison C++ CLASS employe { E# INT, Nom STRING, Adresse ADDRESS Adresse ADDRESS //méthodes...}

26 Exemple ODL CLASS pilote : employe { Nbre-H-Vol# INT, salaire FLOAT, SET REF assure INVERSE est_assuré_par //méthodes...} CLASS vol { V# STRING, REF est_assuré_par INVERSE assure, REF utilise INVERSE est_utilisé_dans,. VD...}

27 Exemple ODL CLASS avion : { CLASS avion : { av# INT, avnom STRING, … SET REF est_utilisé_dans INVERSE utilise …}

28 Exemple OQL Quels sont les numéros des vols assurés par un pilote de nom 'Serge' ? 1) SELECT v.v# FROM v IN vol p IN v.est_assure_par WHERE p.Nom = 'Serge' ;

29 Exemple OQL Quels sont les numéros des vols assurés par un pilote de nom 'Serge' ? 2 Select v.v# from v IN vol where v.est_assure_par.Nom=Serge;

30 Exemple OQL Quels sont les noms des avions conduits par un pilote Niçois ? Quels sont les noms des avions conduits par un pilote Niçois ? 1) SELECT a.avnom FROMa in avion FROMa in avion v in a.est_utilisé_dans v in a.est_utilisé_dans p in v.est_assuré_par WHEREp.adr = Nice ;

31 Exemple OQL Quels sont les noms des avions conduits par un pilote Niçois ? Quels sont les noms des avions conduits par un pilote Niçois ? 2) SELECT a.avnom FROMa in avion FROMa in avion v in a.est_utilisé_dans v in a.est_utilisé_dans WHEREv.est_assuré_par.adr= Nice WHEREv.est_assuré_par.adr= Nice

32 Exemples Noms des pilotes Niçois qui assurent un vol au départ de Nice avec un avion localisé à Nice ? Noms des pilotes Niçois qui assurent un vol au départ de Nice avec un avion localisé à Nice ? Noms des pilotes qui habitent dans la ville de localisation dun Airbus ? Noms des pilotes qui habitent dans la ville de localisation dun Airbus ?

33 Exemple quantificateur universel Quels sont les noms des pilotes qui conduisent TOUS les Airbus localisés à Nice ? Quels sont les noms des pilotes qui conduisent TOUS les Airbus localisés à Nice ? Select p.plnom From p in pilote V in p.assure For all a in V.utilise : a.avnom = airbus and a.loc = Nice;

34 SQL3… (« SQL99 ») SELECT quelque chose avec image et son FROM quelque part ++ WHERE condition ++

35 Standard SQL(petite histoire) SEQUEL 1 (1974) de System R dIBM SEQUEL 1 (1974) de System R dIBM SEQUEL 2 (1977) SEQUEL 2 (1977) SQL 1 (Ansi : 1986 ; ISO : 1987) : 100 pages puis révisions en 1989, « SQL89 » SQL 1 (Ansi : 1986 ; ISO : 1987) : 100 pages puis révisions en 1989, « SQL89 » Avec des systèmes de tests et de validation développés par le NIST (National Institute of Standards and Technology) pour éviter problèmes de Codasyl SQL2 (1992, « SQL92 ») par X3H2 : 600 pages avec 3 niveaux SQL2 (1992, « SQL92 ») par X3H2 : 600 pages avec 3 niveaux Niv. 1 : « Entry » (SQL1), 2: « Intermediate » et 3: « Full » Niv. 1 : « Entry » (SQL1), 2: « Intermediate » et 3: « Full » SQL3 ( Standard en 1999, « SQL99 ») : 1500 pages SQL3 ( Standard en 1999, « SQL99 ») : 1500 pages Niveau 1 (SQL2)… Niveau 1 (SQL2)… SQL4… SQL4…

36 Concept OBJET dans SQL3 ? Dualité de structures de données SQL3 pour CLASSE D OBJETS Dualité de structures de données SQL3 pour CLASSE D OBJETS CREATE TABLE CREATE TYPE 1) « TABLE », : Create table 1) « TABLE », : Create table structure de données de base (relation NF2 possible) pour le stockage en mémoire persistante et la manipulation ensembliste avec VALEURS et POINTEURS (double paradigme !) 1.1 « Table Objet » possible (clause « With Identity ») ROWID Type REF possible ROWID Type REF possible 1.2 Table « relationnelle » sinon

37 Concept OBJET dans SQL3 ? 2) « TYPE » : Create type (classe dobjets) 2.1) - ( « VALUE ») ADT Pas d OID, valeur pour attribut dans relation Pas d OID, valeur pour attribut dans relation Types de base Types de base 2.2) - (« OBJECT ») ADT (Create type with OID ) OID pour chaque instance (pas d OID par défaut) OID pour chaque instance (pas d OID par défaut) Types possibles pour attributs ou autres ADT, variables SQL… Types possibles pour attributs ou autres ADT, variables SQL… Type REF (avec OID) possible associé Type REF (avec OID) possible associé

38 SQL3 R : * HERITAGE MULTIPLE hybride (clause"UNDER" pour les TABLES et les TYPES) * POLYMORPHISME (Surcharge) et TEMPLATES (types génériques/ paramétrés) * POLYMORPHISME (Surcharge) et TEMPLATES (types génériques/ paramétrés)

39 SQL3 I :(dualité de structure, dualité dOID) : Pour les tables : " ROW ID " (explicite- "with identity") pour encapsulation de tuple et type REF Pour les TYPES : " Object ID " (« with OID visible » ) pour les classes dobjets Pour les TYPES : " Object ID " (« with OID visible » ) pour les classes dobjets

40 SQL3 et RICE C : TYPES (ADT) et TABLES ADT : types de données complexe défini par l'utilisateur : "OBJECT ADT" (avec OID) : classe dobjets " VALUE ADT » (sans OID) : type de base Support dobjets complexes (tables ou ADT) : - Constructeur de Collections : "SET", "LIST", "MULTISET" (agrégation de tables) - Constructeur tuple/produit cartésien (ROW)

41 SQL3 C : TYPES (ADT) et TABLES TABLES avec « With identity » (ROWID) : classe dobjets sans ROWID : table relationnelle des attributs "stored" ou "virtual" ("updatable", "read-only", "constant")

42 SQL3 E * PSM (Persistent Stored Module) : regroupement de routines dans schéma objet/procédures STOCKEES * " Routines "(SQL ou externe) associées aux tables/ADT/base : * " Routines "(SQL ou externe) associées aux tables/ADT/base : -"Functions"("Actor », « Constructor » ou "destructor") -"Procedures" * 3 Niveaux d'encapsulation pour un ADT * 3 Niveaux d'encapsulation pour un ADT

43 SQL3 (Définition) Exemple : Create table AVION Create table AVION ( AV# Integer, AVNOM varchar (12), AV-PHOTO blob (600 K), CONTRAT clob (60K), REFPILOTE REF Pilote REFPILOTE REF Pilote Private PRIX Decimal (9,2) CAP SET Integer, CAP SET Integer, LOC SET adresse, LOC SET adresse, REVISION boolean) Imbrication définition sur ADT (ex Adresse) possible à plusieurs niveaux Attributs « PRIVATE » non visibles pour lutilisateur ; « PROTECTED » visibles seulement pour les sous types

44 SQL3 (Définition) CREATE TABLE Vol (Vol# Char(4),... PL# REFERENCE Pilote (PL#) PL# REFERENCE Pilote (PL#) REFPIL REF Pilote REFPIL REF Pilote...)

45 Nouveautés SQL3 Trois extensions de SQL2 (pour les tables) : ROWID, REF, « --> » 1- Identifiant (système) de tuple (ROW ID) L'opérateur associé de référencement est "&ROW" En Oracle 9, cet opérateur sappelle ref Exemple : Select ref (p) from pilote p where pnom = serge ;

46 SQL3 2- Type "REF" : les valeurs d'une colonne peuvent être des POINTEURS ("adresses de tuples" /ROWID) d'une autre relation. Exemple : Dans la table pilote, un attribut "refavion" est introduit pour traduire le lien N:1 entre Pilote et Avion correspondant à "l'avion préféré d'un pilote" refavion REF (avion_type) SCOPE FOR refavion IS avion refavion contient pour un pilote donné, le ROWID de l'avion préféré

47 SQL3 Type "REF" dans Oracle 9 : - le type REF est introduit dans les TABLES ou les TYPES (qui peuvent exister avec ou sans OID) - opérateurs associés : « ref » et « deref » - OID, ROWID, PKID/PKREF Note : en dehors du stockage persistant des valeurs de TABLES, aucune différence entre TYPE et CLASSE !

48 SQL3 3- Opérateur de déréférencement noté "--> » Exemple : "refavion --> av#, avnom" forme abrégée pour : SELECT av#, avnom FROM avion A WHERE A.&ROW = refavion ; Dans Oracle 9 : Informations sur les pilotes assurant un vol au départ de Paris ? Select deref (REFPIL) from vol where VD= Paris ; Notation. possible dans Oracle 9 pour « »

49 Exemple pilote (pl#, plnom, adr, refavion ) avion (av#, avnom, cap, loc)

50 Exemple Q1 : Quels sont les numéros des avions préférés par les pilotes habitant 'Nice' ? SELECT p.refavion-->av# FROM pilote p WHERE p.adr = 'Nice' ;

51 Exemple SQL3 Nous supposons que chaque avion a un pilote attitré unique (nous rajoutons l'attribut refpilote dans la relation Avion) "Quels sont les noms des pilotes qui préfèrent un avion dont le pilote attitré habite Nice ?" La requête SQL3 s'écrit alors : SELECT p.Plnom FROM Pilote p WHERE p.refavion-->refpilote -->Adr = 'Nice' ;

52 Double JOIN en SQL3 Attributs de type REF à la place (ou en plus) des clés étrangères : REFpil et REFav dans la relation VOL Quels sont les noms des pilotes qui conduisent un Airbus ? SELECT v.REFpil-->pilnom FROM vol v WHEREv.REFav-->avnom = Airbus ;

53 AUTO JOINTURE Rajout attribut REFavbis (pour avion de rechange) dans la relation avion Quels sont les noms des pilotes qui conduisent un avion dont lavion de rechange est localisé à Nice ? SELECT v.REFpil plnom FROM vol v WHERE v.REFav-->REFavbis-->LOC = Nice ;

54 Exemple complet Pilote (PL#, PLNOM, ADR, REFAVION) Avion (AV#, AVNOM, LOC, REFAVBIS, REFPILOTE) Vol (Vol#, PL#, AV#, REFPIL, REFAV, VD, VA, HD, HA)

55 Quels sont les noms des pilotes préférant un B747 qui conduisent un Airbus dont lavion de rechange est l avion attitré de Jean? Quels sont les noms des pilotes préférant un B747 qui conduisent un Airbus dont lavion de rechange est l avion attitré de Jean? SELECT v.REFPIL plnom FROM vol v WHERE (v.REFAV Avnom = Airbus, REFAVBIS REFPILOTE Plnom = Jean) and (v.REFPIL REFAVION Avnom = B747) ;

56 Type REF et ROWID : initialisation ? CREATE TABLE Vol (Vol# Char(4), PL# reference Pilote REFPIL REF Pilote...) La valeur du lien « REFPIL" est un RowID inaccessible par lutilisateur (accès avec opérateur ref/ deref) et non plus une valeur de clé étrangère (PL#) manipulable par lutilisateur La valeur du lien « REFPIL" est un RowID inaccessible par lutilisateur (accès avec opérateur ref/ deref) et non plus une valeur de clé étrangère (PL#) manipulable par lutilisateur La clé étrangère et le type REF peuvent cohabiter dans une même table La clé étrangère et le type REF peuvent cohabiter dans une même table Le mot clé SCOPE FOR permet de limiter la visibilité des références à une table particulière (Alter table vol add (scope for REFPIL is pilote1)); Le mot clé SCOPE FOR permet de limiter la visibilité des références à une table particulière (Alter table vol add (scope for REFPIL is pilote1));

57 Initialisation ROWID ? Insert into VOL ( IT100, 1, Nice, Paris, 7,8, (Select &ROW (p) From Pilote p where Pnom = Serge)); Rappel : &ROW (ref en Oracle) : « Opérateur de référencement » associé à un ROWID Note : En Oracle 9, la clause « returning REF into » permet de récupérer le ROWID dun tuple Exemple : Insert into pilote values (1,Serge, Toulouse, Returning Ref (pilote) into pil- ref) insert into Vol values (IT100, 1, Nice,Paris, 7,8, pil-ref)

58 Paradigmes de devt et SQL Développement dapplication Paradigme RAT Paradigme SAT (Record at a time)(Set at a time) Paradigme POINTEUR Paradigme VALEUR Pointeur CURSOR Pointeur ligne ROWID (ref,deref) » (Modèle Relationnel, SQL2/3) (C++, CODASYL/DBTG, ODMG…) Nouveauté SQL2 Nouveauté SQL3

59 Select e.QUESTIONS From Etudiants e Where e.esprit = positif


Télécharger ppt "Les standards des SGBD du Futur (survol) Prof Serge Miranda Juin 2005 DATA BASE forum."

Présentations similaires


Annonces Google