Les standards des SGBD du Futur (survol)

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Systèmes de Gestion de Bases de Données Orientés Objet
Fonctionnalités des SGBD
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
TP 3-4 BD21.
Bases de données orientées-objets
Gestion de la persistance des objets
Bases de données orientées-objets
Oracle Orienté Objet Amanda Evans Mai 2000.
TECHNIQUES DES SGBDO 1. Qu'est-ce qu'un SGBDO ?
Oracle: OO.
L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel
Manifeste de Chris Date sur modèle « Objet Relationnel » (pour données structurées/SQL) Professeur Serge Miranda Directeur Master.
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
Introduction à SQL3 (SQL99)
Contrôles d'accès aux données
L’utilisation des bases de données
Introduction à SQL3 (SQL99)
COURS Bases de données orientées objet
Chap 4 Les bases de données et le modèle relationnel
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Professeur Serge Miranda
L’utilisation des bases de données
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
Structures de données IFT-2000
Staf 2x Cours de bases de données
Cours de Base de Données & Langage SQL
Initiation aux bases de données et à la programmation événementielle
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Copyright Serge Miranda
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
Introduction.
Programmation Internet en PHP SIL module M12
Modèle Relationnel (de Codd) et Professeur Serge Miranda
BD Relationnelles versus BD Objets Fariza Tahi
L'OBJET-RELATIONNEL 1. Le modèle objet-relationnel
Traduction des opérations sous MySQL
Le langage de requêtes SQL
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.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
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.
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.
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Sélection de colonnes (la projection)
2 Processus de conception de BD
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
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.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Héritage Conception par Objet et programmation Java
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
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.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
Les bases de données Séance 8 Jointures.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Introduction aux Bases de Données et au langage SQL
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Introduction Module 1.
Introduction SGDBOO Sommaire Définition d’un SGBD (6 services)
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:

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

Un peu de PUB…

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

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

Surfeurs sur la vague OR….

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

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"

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

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)

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

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

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

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

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 !

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

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

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

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)

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)

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

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

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

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

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

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

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

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

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' ;

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>

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 ’ ;

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>

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 ?

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’;

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

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…

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

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é

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

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

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)

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

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

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

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

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’ ;

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é

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 !

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 «  »

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>

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' ;

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' ;

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 ’;

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 ’ ;

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)

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

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

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)

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)

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