280 likes | 433 Views
Bases de données orientées-objets 12d . SQL3. Yves Pigneur Stéphane Rey Ecole des HEC Université de Lausanne CH-1015 Lausanne yves.pigneur@hec.unil.ch (+41 21) 692.3416. Agenda. Forces et faiblesses du modèle relationnel: nouveaux besoins en matière de gestion de données.
E N D
Bases de données orientées-objets 12d. SQL3 Yves Pigneur Stéphane Rey Ecole des HEC Université de Lausanne CH-1015 Lausanne yves.pigneur@hec.unil.ch (+41 21) 692.3416
Agenda • Forces et faiblesses du modèle relationnel: • nouveaux besoins en matière de gestion de données. • Le modèle objet-relationnel. • SQL3. • Conclusions.
Forces du modèle relationnel • Permet de modéliser des données adaptées à la gestion à l'aide de tables: • représentation naturelle d'ensembles. • Offre d'excellentes performances sur le transactionnel (OLTP - Online Transaction Processing). • Intègre et permet la présentation multidimensionnelle de données (OLAP - Online Analysis Processing). S'est imposé comme le standard de l'industrie: • langage SQL2; • architecture client-serveur; • optimisation des requêtes (algèbre, réécriture, modèle de coûts)gestion des transactions.
Faiblesses du modèle relationnel • Les règles de modélisation imposées pour structurer les données sont trop restrictives. • L'absence de pointeurs visible est pénalisante et nécessite l'utilisation de jointures, opérations lourdes et coûteuses. • Le non-support de domaines composés imposé par la première forme normale de Codd est inadapté aux objets complexes. • La non intégration des opérations dans le modèle relationnel constitue un manque.
Le besoin de types de données multimédia Types de données ABC123 Temps 1996
Le modèle objet-relationnel (1) • Type de données utilisateur:type de données définissables par l'utilisateur composé d'une structure de données et d'opérations encapsulant cette structure. SQL3 les nomme types abstraits (ADT). • Patron de collection:Type de données générique permettant de supporter des attributs multivalués et de les organiser selon un type de collection. Exemple: une liste. • Référence d'objet:Type de données particulier permettant de mémoriser l'adresse invariante d'un objet ou d'un tuple. Permet de chaîner les objets directement entre eux, sans passer par des jointures.
Le modèle objet-relationnel (2) • Héritage de type:Forme d'héritage impliquant la possibilité de définir un sous-type d'un type existant, celui-ci héritant alors de la structure et des opérations du type de base. • Héritage de table:Forme d'héritage impliquant la possibilité de définir une sous-table d'une table existante, celle-ci héritant alors de la structure et des éventuelles opérations de la table de base.
Le modèle objet-relationnel (3) OBJET Polymorphisme Types utilisateurs Collections RELATIONNEL Domaine Table Attribut Clé Référence Opérations Identifiant Héritage
Le modèle objet-relationnel (4) Police ... Conducteurs Accidents 9876 Conducteur Age Paul 19 Louise 37 Date
SQL3 - Les types abstraits • CREATE [DISTINCT] TYPE <nom ADT> [<OPTION OID>] [<CLAUSE SOUS-TYPE>] [AS] (<CORPS DE L'ADT>) • La clause DISTINCT est utilisée pour renommer un type de base existant déjà.
SQL3 - Les types abstraits, exemples (1) • Type avec OID pouvant être utilisé comme un objet:CREATE TYPE PHONE WITH OID VISIBLE (PAYS VARCHAR, ZONE VARCHAR, NOMBRE INT, DESCRIPTION CHAR(20)); • WITH OID VISILE permet de préciser la visibilité de l'OID pour chaque instance (objet). • Type avec sous-type:CREATE TYPE ETUDIANT UNDER PERSONNE (CYCLE VARCHAR, ANNEE INT); • Type énuméré:CREATETYPE JOUR-OUVERT (LUN, MAR, MER, JEU, VEN);
SQL3 - Les types abstraits, exemples (2) • Type avec OID et fonction:CREATE TYPE EMPLOYE WITH OID VISIBLE (NUM CHAR(10), DATENAIS DATE, REPOS JOUR-OUVERT, SALAIRE FLOAT, FUNCTION AGE (E EMPLOYE) RETURNS (INT) { ... } END FUNTION;); CREATETYPE JOUR-OUVERT (LUN, MAR, MER, JEU, VEN);
SQL3 - Les constructeurs d'objets complexes • SQL3 offre les patrons de base SET(T), MULTISET(T) et LIST(T). • Un type personne avec une liste de prénoms:CREATE TYPE PERSONNE WITH OID VISIBLE (NSS INT, NOM VARCHAR, PRENOMS LIST(VARCHAR), TEL SET(PHONE)); • Un type avec référence à un objet:CREATE TYPE VOITURE (NUMERO CHAR(9), COULEUR VARCHAR, PROPRIETAIRE REF(PERSONNE)); CREATE TYPE PHONE WITH OID VISIBLE (PAYS VARCHAR, ZONE VARCHAR, NOMBRE INT, DESCRIPTION CHAR(20));
SQL3 - Les tables • Création de tables:CREATE TABLE ACCIDENT (ACCIDENT INT, RAPPORT TEXT, PHOTO IMAGE);CREATE TABLE POLICE (NPOLICE INT, NOM VARCHAR, ADRES ADRESSE, CONDUCTEURS SET(CONDUCTEUR), ACCIDENTS LIST(ACCIDENT));CREATETABLE PERSONNES OFPERSONNE;CREATE TABLE VINSMILL UNDERVINSWITH (MILL INT, QUALITE VARCHAR) CREATE TYPE PERSONNE WITH OID VISIBLE (NSS INT, NOM VARCHAR, PRENOMS LIST(VARCHAR), TEL SET(PHONE));
SQL3 - Appel de fonctions • SELECT E.NOM, AGE(E)FROM EMPLOYES EWHERE AGE(E) < 35; • CREATETABLE EMPLOYESLOC UNDER EMPLOYES WITH (ADRES ADRESSE)SELECT NOM, REPOSFROM EMPLOYELOC EWHERE DISTRICT(E.ADRES) = "MORGES"AND E.ADRES..VILLE = "BUSSIGNY" SELECT E.NOM, E..AGE() Utilisation d'une fonction pour obtenir le district. Utilisation de la notation pointée pour accéder aux attributs composés.
SQL3 - Parcours de références • CREATETYPE VOITURE (NUMERO CHAR(9), COULEUR VARCHAR, PROPRIETAIRE REF(PERSONNE)) • CREATETABLE VOITURES OFTYPE VOITURE • SELECT V.PROPRIETAIRE DEREF NOMFROM VOITURES VWHERE V.COULEUR="ROUGE" AND V.PROPRIETAIRE DEREF ADRESSE..VILLE = "PARIS"
SQL3 - Recherche en collections • SELECTREF(P)FROM PERSONNES PWHERE "VELO" INSELECT *FROMTABLE (P.PASSETEMPS). PASSETEMPS SET(VARCHAR)
Le modèle relationnel est adapté à un grand nombre d'applications (de gestion par exemple), qui utilisent des types simples de données. Le modèle relationnel est basé sur une théorie "scientifique" et a été mis à l'épreuve ces 15 dernières années: travaux de Codd; ... Le modèle relationnel est facile à comprendre. ... Le modèle relationnel ne permet pas de représenter certaines entités complexes du monde réel. Les jointures peuvent être des opérations relativement lourdes. ... Relationnel vs. objet: le modèle relationnel POUR CONTRE
Relationnel vs. objet: le modèle objet POUR CONTRE • Les objets permettent de représenter [plus] naturellement des entités du monde réel: • objets complexes. • Les objets offrent une plus grande souplesse pour gérer les structures de données complexes (multimedia, CAO, AGL, etc.) • ... • Les SGBDO posent un certain nombre de problèmes: • gestion des objets en mémoire et dans la base; • performance d'accès aux objets; • concurrence d'accès aux objets. • ...
? Relationnel- objet Relationnel Relationnel-objet Objet Nouveau paradigme Evolution des SGBD Relationnel Objet temps
Réflexion: application de gestion clients ? Relationnel- objet Table Table Relationnel Table Table Table Objet
Relationnel, objet, ou objet-relationnel? Georges Gardarin, "Bases de données objet & relationnel", Eyrolles, 1999 Complexité des requêtes Objet- relationnel Relationnel Relationnel Objet Complexité des données
? Relationnel- objet Relationnel Relationnel-objet Relationnel Objet Objet Nouveau paradigme Conclusion Georges Gardarin, "Bases de données objet & relationnel", Eyrolles, 1999 Complexité des requêtes Objet- relationnel Relationnel Relationnel Objet Complexité des données