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 de mismatch d'impédances empêche les performance décentes –les SGBDR ne sont pas performant pour les usages navigationnels simples: ex. while C get next –les fonctions agrégats de SQL ne suffisent pas F les langages de programmation OO ont besoin de données variées et persistantes –les tables relationnelles ne suffisent pas
3 Exemples à faire en SQL F allonge l'aile A de Rafale de 1m F select toute maison sur la carte de la région Ile de France à moins de 20 min. de Paris par train et au prix < Fr. F pousse :b sur la pile P; tire le bas de P dans :b F select toute pièce dans la table P dont le poids est dans l'écart standard par rapport à la moyenne des poids
4 Puissance expressive de SQL F En général on pourrait exprimer tout ça en SQL: F Mais, ça serait: –trop procedural –trop inefficace
5 Solution F Un modèle de BD supportant : –des opérations d'un niveau supérieur de celles relationnelles –des types de données autres que tables F Mais que veut dire "supportant" ? –toutes les fonctions d'un SGBD ou seulement certaines ? u partage efficace & mémorisation persistante ? u langage de requêtes ? faire la manipulation ou appeler un manipulateur extérieur ?
6 Propositions F SGBDs: F extensibles (ex. IBM - STARBURST) F à Type de Données Abstrait (ex. TYPE-R) F intéroperables (coopération entre différents gestionnaires de données) F OO F relationnels-objets
7 Un Objet F Des données et des manipulations possibles –méthodes, fonctions... F Une signature F Une identité (unique) –par la valeur de l'objet (objets atomiques ex. integer) –donnée par le système (pour objets composés) F Une encapsulation F Une hiérarchie de types (ou de classes) F Un héritage, peut-être multiple
8 Une BDOO F Une collection d'objets F Une interface vers le langage navigationnel OO –C++, Eifel,... F Un langage de requêtes (optionnel) F autres fonctions de SGBD
9 Un schéma de BDOO Personnes
10 Un schéma de BDOO Char Adr Hobbies Né Personnes
11 Un schéma de BDOO Personnes Char Int Etudiants Empl Adr Né Notes Sal Hobbies
12 Un schéma de BDOO Personnes Char Int Etudiants Empl Etud-Empl Adr Né Notes Sal Cadre Sal Hobbies Enfants
13 Exercice F Et le schéma relationnel correspondant ? F Tout type d'objet devient –une table ou plusieurs tables ? –Et comment on exprime le sous-typage ? u insertions et suppressions ! F Que deviennent les principes de normalisation en 2NF, 3NF...
14 Problèmes F Langage de requêtes –valeurs non-atomiques (bags, listes...) –chemins logiques d'accès –héritage multiple –OIDs F Optimisation –fonctions externes –encapsulations F Structures de pointeurs pour échanges disque-cache
15 Problèmes F vues F faiblesses de modélisation OO –types dérivés –relation ensemble-pièce F transactions longues F investissement en SGBDs relationnels F hétérogénéité sémantique et physique en environnement multibase et distribué
16 Solutions F Modèle R-O F SQL3 F Relations à attributs hérités F UIDs (identification universelle des objets) F Standards: CORBA, ODMG ?
17 Conclusion F Bases R-O vont voir le jour F Les autres: wait and see
18
19
20