bases de données orientées-objets 12d . sql3

26
Bases de données orientées-objets Bases de données orientées-objets 12d 12d . SQL3 . SQL3 Yves Pigneur Stéphane Rey Ecole des HEC Université de Lausanne CH-1015 Lausanne [email protected] (+41 21) 692.3416

Upload: butch

Post on 05-Jan-2016

59 views

Category:

Documents


2 download

DESCRIPTION

Bases de données orientées-objets 12d . SQL3. Yves Pigneur Stéphane Rey Ecole des HEC Université de Lausanne CH-1015 Lausanne [email protected] (+41 21) 692.3416. Agenda. Forces et faiblesses du modèle relationnel: nouveaux besoins en matière de gestion de données. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Bases de données orientées-objets 12d . SQL3

Bases de données orientées-objetsBases de données orientées-objets12d12d. SQL3. SQL3

Yves PigneurStéphane Rey

Ecole des HECUniversité de Lausanne

CH-1015 [email protected]

(+41 21) 692.3416

Page 2: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19992

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.

Page 3: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19993

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.

Page 4: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19994

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.

Page 5: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19995

Le besoin de types de données multimédia

1996

ABC123

Temps

Types de données

Page 6: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19996

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.

Page 7: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19997

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.

Page 8: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19998

Le modèle objet-relationnel (3)

RELATIONNELDomaine

TableAttribut

CléRéférence

OBJET

Polymorphisme

Typesutilisateurs

Opérations

Héritage

Identifiant

Collections

Page 9: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 19999

Le modèle objet-relationnel (4)

... Conducteurs AccidentsPolice

9876 Conducteur Age

Paul 19

Louise 37

Date

Page 10: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199910

Vue d'ensemble de SQL3 (1)

1 le cadre SQL/ Framework Une description non-technique dela façon dont le document eststructuré, et une définition desconcepts communs à toutes lesparties.

2 lesfondements

SQL/ Foundation Le noyau de base, incluant lestypes de données utilisateurs et lemodèle objet-relationnel.

3 l'interfaceclient

SQL/ CLI L'interface d'appel client permetle dialogue client-serveur pourl'accès aux données, via SQL2puis SQL3.

4 lesprocéduresstockées

SQL/ PSM Le langage de spécification deprocédures stockées.

5 l'intégrationauxlangagesclassiques

SQL/ Bindings

Page 11: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199911

Vue d'ensemble de SQL3 (2)

6 la gestion detransaction

SQL/ Transaction Une spécification de l'interfaceXA pour moniteur transactionneldistribué.

7 la gestiondu temps

SQL/ Temporal Le support du temps, desintervalles temporels, et desséries temporelles.

8 Abandonné9 l'accès aux

donnéesexternes

SQL/ MED L'utilisation de SQL pour accéderà des données non-SQL.

10 l'intégrationauxlangagesobjets

SQL/ OBJ

Page 12: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199912

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

Page 13: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199913

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é:CREATE TYPE JOUR-OUVERT (LUN, MAR, MER, JEU, VEN);

Page 14: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199914

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

CREATE TYPE JOUR-OUVERT (LUN, MAR, MER, JEU, VEN);

Page 15: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199915

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

Page 16: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199916

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

CREATE TABLE PERSONNES OF PERSONNE;

CREATE TABLE VINSMILL UNDER VINSWITH (MILL INT, QUALITE VARCHAR)

CREATE TYPE PERSONNE WITH OID VISIBLE (NSS INT, NOM VARCHAR, PRENOMS LIST(VARCHAR), TEL SET(PHONE));

Page 17: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199917

SQL3 - Appel de fonctions

• SELECT E.NOM, AGE(E)FROM EMPLOYES EWHERE AGE(E) < 35;

• CREATE TABLE 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.

Page 18: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199918

SQL3 - Parcours de références

• CREATE TYPE VOITURE (NUMERO CHAR(9), COULEUR VARCHAR, PROPRIETAIRE REF(PERSONNE))

• CREATE TABLE VOITURES OF TYPE VOITURE

• SELECT V.PROPRIETAIRE DEREF NOMFROM VOITURES VWHERE V.COULEUR="ROUGE" AND V.PROPRIETAIRE DEREF ADRESSE..VILLE = "PARIS"

Page 19: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199919

SQL3 - Recherche en collections

• SELECT REF(P)FROM PERSONNES PWHERE "VELO" IN

SELECT *FROM TABLE (P.PASSETEMPS).

PASSETEMPS SET(VARCHAR)

Page 20: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199920

Conclusions ...

Page 21: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199921

Relationnel vs. objet: le modèle relationnel

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

• ...

POUR CONTRE

Page 22: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199922

Relationnel vs. objet: le modèle objet

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

• ...

POUR CONTRE

Page 23: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199923

Evolution des SGBD

RelationnelRelationnel

ObjetObjet

temps

Relationnel-objet

Relationnel-objet

?Objet

Relationnel-objet

Relationnel

Nouveauparadigme

Page 24: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199924

Réflexion: application de gestion clients

?

Table

Table

TableRelationnelRelationnel

ObjetObjet

Table

Table

Relationnel-objet

Relationnel-objet

Page 25: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199925

Relationnel, objet, ou objet-relationnel?

Complexitédes données

Complexitédes requêtes

RelationnelRelationnel

Objet-relationnel

Objet-relationnelRelationnelRelationnel

ObjetObjet

Georges Gardarin, "Bases de données objet & relationnel", Eyrolles, 1999

Page 26: Bases de données orientées-objets 12d . SQL3

HEC Lausanne - 199926

RelationnelRelationnel

ObjetObjet

Relationnel-objet

Relationnel-objet

?Objet

Relationnel-objet

Relationnel

Nouveauparadigme

Conclusion

Complexitédes données

Complexitédes requêtes

RelationnelRelationnel

Objet-relationnel

Objet-relationnelRelationnelRelationnel

ObjetObjet

Georges Gardarin, "Bases de données objet & relationnel", Eyrolles, 1999