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)

Présentations similaires


Présentation au sujet: "Les standards des SGBD du Futur (survol)"— 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
Présentaion de SQL3 et ODMG su un exemple Bilan synthétique

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

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 Modèle OR ? Modèle Relationnel Langage Prog. de Codd (V1) OBJET
Propriétés RICE Propriétés TIPS Modèle OR (Objet- Relationnel) 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 1965 1970 Evolution de l'informatique et OBJET LP OS
OS : Operating SERVICES ? 1970 LP IA SGF SGBD

9 1970 Evolution de l'informatique SGF OS SGBDR 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 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 198O 1990 Evolution de l'informatique et OBJET OS LP SGBD-R IA OS LP

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 SGBD-R L.P ( SQL ) ( Prog. structurée ) OBJETS GENIE LOGICIEL COMMUNICATION

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

14 Marché BD et standards ? (Stonebraker 96 et Gartner) Traitements SQL
SGBD- R SGBD-OR (1) (2) SQL2 SQL3 Non SQL SGF SGBD- OO (3) ODMG Simples Complexes Données (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 !

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 (Incrémentales par rapport à un SGBD relationnel)
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 d’Objets » 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 - est un (« valeurs potentielles ») - possède un (« valeurs réelles »)
Définition Classe d’Objets ? 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 OMG : CORBA,… plus de 50 organisations de l’industrie et de l’informatique en 2000 (Lucent, Lockheed, CA, Microsoft, Baan, ...) Objectifs: Promouvoir les OO DBMS, FUD , au delà des niches et standard avant …SQL3 ! Créer un standard pour garantir l’indépendance entre OODBMS (Portability)

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

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

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

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

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

24 OQL (nouveautés « SQL »)
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

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

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

27 Exemple ODL CLASS avion : { av# INT, avnom STRING, …
SET REF <vol> 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’; <Expression monovaluée X1.X2.X3>

30 Exemple OQL Quels sont les noms des avions conduits par un pilote Niçois ? <Parcours d’ associations multivaluées en utilisant des collections dépendantes> 1) SELECT a.avnom FROM a in avion <in COLLECTION> v in a.est_utilisé_dans <in COLLECTION> p in v.est_assuré_par WHERE p.adr = ‘ Nice ’ ;

31 Exemple OQL Quels sont les noms des avions conduits par un pilote Niçois ? <Parcours d’ associations multivaluées en utilisant des collections dépendantes> 2) SELECT a.avnom FROM a in avion <in COLLECTION> v in a.est_utilisé_dans <in COLLECTION> WHERE v.est_assuré_par.adr= ‘Nice’ <Expression>

32 Exemples 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 d’un Airbus ?

33 Exemple quantificateur universel
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 d’IBM SEQUEL 2 (1977) 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 Niv. 1 : « Entry » (SQL1), 2: « Intermediate » et 3: « Full » SQL3 ( Standard en 1999, « SQL99 ») : 1500 pages Niveau 1 (SQL2)… SQL4…

36 Concept OBJET dans SQL3 ? Dualité de structures de données SQL3 pour CLASSE D’ OBJETS CREATE TABLE CREATE TYPE 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 1.2 Table « relationnelle » sinon

37 Concept OBJET dans SQL3 ? 2) « TYPE » : Create type (classe d’objets)
2.1) - (« VALUE ») ADT Pas d’ OID, valeur pour attribut dans relation Types de base 2.2) - (« OBJECT ») ADT (Create type with OID <visible>) OID pour chaque instance (pas d’ OID par défaut) Types possibles pour attributs ou autres ADT, variables SQL… 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)

39 I : (dualité de structure, dualité d’OID) :
SQL3 I : (dualité de structure, dualité d’OID) : 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 d’objets

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 d’objets " VALUE ADT » (sans OID)  : type de base Support d’objets complexes (tables ou ADT) : - Constructeur de Collections : "SET", "LIST", "MULTISET" (agrégation de tables) - Constructeur tuple/produit cartésien (ROW)

41 C : TYPES (ADT) et TABLES
SQL3 C : TYPES (ADT) et TABLES TABLES avec « With identity » (ROWID) : classe d’objets 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 : -"Functions"("Actor » , « Constructor » ou "destructor") -"Procedures" * 3 Niveaux d'encapsulation pour un ADT

43 SQL3 (Définition) Exemple :
Create table AVION <ou CreateType AVION> ( AV# Integer, AVNOM varchar (12), AV-PHOTO blob (600 K), CONTRAT clob (60K), REFPILOTE REF Pilote <Pilote attitré> Private PRIX Decimal (9,2) CAP SET Integer, <ensemble de capacités> LOC SET adresse, <Ensemble d’adresses ; insertion avec SET (ROW(‘..’))> REVISION boolean) Imbrication définition sur ADT (ex Adresse) possible à plusieurs niveaux Attributs « PRIVATE » non visibles pour l’utilisateur ; « PROTECTED » visibles seulement pour les sous types

44 SQL3 (Définition) CREATE TABLE Vol (Vol# Char(4), ...
PL# REFERENCE Pilote (PL#) <clé étrangère : valeur clé primaire> REFPIL REF Pilote <type REF : ROWID> ...)

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 s’appelle 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) <refavion de type REF : "refavion" contient des valeurs d'adresses de tuples (ROWID) d'avions pour traduire l ’avion préféré d'un pilote>

50 Exemple Q1 : Quels sont les numéros des avions préférés par les pilotes habitant 'Nice' ? SELECT p.refavion-->av# <opérateur de déréférencement> 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 WHERE v.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 l’avion 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)
<REFAVION : Avion préféré d’un pilote> Avion (AV#, AVNOM, LOC, REFAVBIS, REFPILOTE) <REFPILOTE Pilote attitré d’un avion ; REFAVBIS : Référence avion de rechange> 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 l’avion 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 l’utilisateur (accès avec opérateur ref/ deref) et non plus une valeur de clé étrangère (PL#) manipulable par l’utilisateur 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));

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 d’un 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 d’application Paradigme RAT Paradigme SAT (Record at a time) (Set at a time) Paradigme POINTEUR Paradigme VALEUR Nouveauté SQL2 Pointeur CURSOR Pointeur ligne ROWID (ref,deref) » Nouveauté SQL3 (C++, CODASYL/DBTG, ODMG…) (Modèle Relationnel, SQL2/3)

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


Télécharger ppt "Les standards des SGBD du Futur (survol)"

Présentations similaires


Annonces Google