Séminaire IG 1 Méthodologie objet et IG ? T. Libourel [email protected].

68
Séminaire IG 1 Méthodologie objet et IG ? T. Libourel [email protected]

Transcript of Séminaire IG 1 Méthodologie objet et IG ? T. Libourel [email protected].

Page 1: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

1

Méthodologie objetet IG ?

T. Libourel

[email protected]

Page 2: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

2

Plan

• AdéquationDiscussion

• Objet-relationnel

• Introduction - Généralités sur les méthodes objet

Page 3: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

3

Plan

• Introduction - Généralités sur les méthodes objet

Page 4: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

4

Introduction

• Évolution des paradigmes de programmation

• Évolution des besoins

• Évolution des technologies

Page 5: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

5

Introduction

• Taille et complexité des systèmes importantes et croissantes

– les besoins et les fonctionnalités augmentent

– la technologie évolue rapidement

– les architectures se diversifient

• Problèmes des spécifications– parfois imprécises, incomplètes, ou incohérentes

– assurer l’interface avec le métier (domaine d’application)

Page 6: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

6

Introduction

– Cas particulier de l’IG

Applications

Monde réel

Domaineétudié

Schémas

DonnéesConceptualisation

StockageConceptuel

Externe ou Dérivé

ReprésentationModèle de

InstrumentationTerrainNominal

Page 7: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

7

• Évolution des applications– évolution des besoins des utilisateurs

– réorientation de l'application

– évolution de l'environnement technique (matériel et logiciel)

• Problèmes liés à la gestion des équipes– taille croissante des équipes

– spécialisation technique

– spécialisation métier

Introduction

Page 8: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

8

Introduction

Pourquoi des méthodes ?

• Une nécessité

Entreprise

Outils Informatiques

Page 9: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

9

Introduction

Pourquoi des méthodes ?

• Démarche reproductible pour obtenir des résultats fiables

• Construire des modèles à partir d'éléments (concepts)

• Possibilité de représenter à partir de formalismes

• Mise en œuvre

Page 10: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

10

• Omniprésence technique de l’Objetdans les langages de programmation, les bases de données, les interfaces graphiques, ... et les méthodes d’analyse et de conception.

• Universalité de l’Objetla notion d’objet, plus proche du monde réel, est compréhensible par tous et facilite la communication entre tous les intervenants d’un projet.

Pourquoi l’approche objet ?Pourquoi l’approche objet ?

Page 11: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

11

VueCas d ’utilisation

Vue   structurelle

Vue Architecture

(déploiement)

Vue dynamique

Définir une architecture ……. divers points de vue sur le système

Concepts généraux

Vue Implémentation

<------- Logique Physique ------>

Page 12: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

12

Plan

• AdéquationDiscussion

Page 13: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

13

Importance de la prise en comptedes besoins

• Cas d’utilisation

Page 14: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

14

• Les cas d’utilisation, ou « USE CASE »

Fonctionnalités externesModèles descriptifs du point de vue des utilisateursInteractions avec les acteurs extérieurs

la manière d’utiliser le système

Importance de la prise en comptedes besoins

Page 15: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

15

Deux concepts

Acteur

toute entité extérieure au système et interagissant avec celui-ci.

acteurs humains, acteurs « machine » (système extérieur communiquant avec le système étudié)

Cas d’utilisation

toute manière d’utiliser le système

suite d’événements notable du point de vue de l ’utilisateur

On part de l’analyse des besoins ….

Page 16: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

16

Modèle d’utilisation

Deux concepts

Acteur (rôle 1)

Acteur (rôle 2)

« communicate »

« communicate »

Acteur

Cas d’utilisation

<< actor >>

role

Page 17: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

17

Modèle d’utilisation

Les cas d ’utilisation peuvent être liés par des relations :

- d’utilisation « include » (le cas origine contient obligatoirement l’autre)

- de raffinement « extend » (le cas origine peut être ajouté optionnellement )

Acteur (rôle 1)

Acteur (rôle 2)

« include »« extend »

- de généralisation/spécialisation « generalizes »

Page 18: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

18

Multiplicité des perceptions

Visions discrète vs continue

Échelles

Sémantique des informations spatialesSémantique des informations spatiales

Page 19: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

19

Multiplicité des perceptions

Trafic routier

Équipement

Cadastre

Réseaux souterrains

Rue

graphe

polyligne

volumesurface

Sémantique des informations spatialesSémantique des informations spatiales

Page 20: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

20

Vision discrète vs vision continuedeux grands types de modèles

• modèles construits autour d’objets, d’entités ou features

(Routes, villes, fleuves etc ..)

• modèles construits autour de champs continus

(météo température, pression, épidémie ..)

Sémantique des informations spatialesSémantique des informations spatiales

Echelle, multi-échellespas un simple rapport taille du support/terrain

granularité de perception

Page 21: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

21

Représentations Représentations

• Géométrie euclidienne

point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)

Segment Point

XY

A-pour-extrémité->

0..1 2..2

Est-sur : booleen

Page 22: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

22

Représentations Représentations

• Géométrie euclidienne

point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)

Polyligne Point

XY

0..1 2..n

Est-sur : booleen

fermée

Segment

1..n

0..1

0..1

2..2

ordre

Page 23: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

23

Représentations Représentations

• Géométrie euclidienne

point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)

Polygone Point

XY

0..1 3..n

Appartient : boolSegment

3..n

0..1

2..2

2..2

ordre

Page 24: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

24

Représentations Représentations

• Géométrie euclidienne

point (dim 0) ligne (dim 1) aire (dim 2) volume (dim 3)

Polygone Point

XY

0..1

1..1

Appartient : boolSegment

3..n

1..2

0..n

1..1

orientation

0..n

début

fin

Page 25: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

25

Représentations Représentations

•Théorie des graphes

nœud, arête, arc, chaîne

Nœud Arête 2..2 1..n

Est-relié-à

0..n

délimite

0..n

Page 26: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

26

Représentations Représentations

•Topologie

relations spatiales

Adjacence, Inclusion, Proximité …

Page 27: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

27

Représentations Représentations

• Raster

1

1 1

1 1 1 1 1

1 3 3 3

33

3 3

3333

2 2 2 2

2 2 2 2

2 2

Page 28: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

28

Méthodes objet pour les SIGMéthodes objet pour les SIG

GeoOOA (Kösters, Pagel, Six)

GEOCLASS

POINT LINE REGION

RASTERopérations (intersection, inclusion, etc.)

NETWORK

Page 29: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

29

SPACE

POSITIONS classe agrégat construite sur les classesSHAPE, SIZE, LOCATION, ORIENTATION

Classes

POSITIONS

SPACE

is-located-at

GEOGRAPHICOBJECT

1,n

1

at_spatial

Geo-OM (Tryfona, Pfoser, Hadzilacos)

Méthodes objet pour les SIGMéthodes objet pour les SIG

Page 30: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

30

MADS (Parent, Spaccapietra, Zimanyi)

Objets spatiaux

Objets spatiaux simples Objets spatiaux complexes

PointLigneLigne orientéeAire simple

Ensemble de PointsEnsemble de LignesEnsemble de Lignes orientéesAire complexe

Méthodes objet pour les SIGMéthodes objet pour les SIG

Page 31: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

31

MADS

Commune

Parcelle

Remembrement

Union

Partage

Re-allocation

est_composée_de source

cible

PST

PST

PST

PST

Méthodes objet pour les SIGMéthodes objet pour les SIG

Page 32: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

32

PERCEPTORY (Bedard U Laval Quebec)

PST

Méthodes objet pour les SIGMéthodes objet pour les SIG

UML +

Pictogrammes (Langage Visuel)

Page 33: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

33

IdentificationEssence

Spatial Thème

Entité géographique

POLLEN (Gayte, Libourel, Cheylan, Lardon)

1..* 1..*

Méthodes objet pour les SIGMéthodes objet pour les SIG

Classes opaques SpatialesPoint, Ligne, Aire

Temporelles Instant, Intervalle

Page 34: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

34

Des bienfaits de l ’encapsulation ….

Proposer un service et réagir aux messages

Opérations

Données

MessagesEncapsulation

DiscussionDiscussion

Page 35: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

35

La méta-modélisation

Meta-Meta Modèle

Meta-Modèle

Modèle

Objets utilisateur

Meta-Class, Meta-Attribut, etc

Class, Attribut, etc

Parcelle, Surface, etc

A120, 50, etc

Langage pour spécifiertout métamodèle

Langage pour spécifierun modèle

Langage pour spécifierun domaine d ’information

Définition spécifiqued ’un domaine

DiscussionDiscussion

Page 36: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

36

DiscussionDiscussion

TAD spatiaux

Point Ligne Zone

TAD temporels

Instant Intervalle

Ensemble d’instants Ensemble d’intervalles

Vers des « framework » ?

Page 37: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

37

Mise en œuvreMise en œuvre

SIG outils

SGBD spatiaux

DiscussionDiscussion

futur ..... SGBD spatio-temporels

..... Interopérabilité

Page 38: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

38

Plan

• Objet-relationnel

Page 39: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

39

Les raisons ….

• Nécessité de conserver la compatibilité avec l'existant– SGBD relationnel

– Applications client-serveur

• Nécessité de supporter des données complexes– textuelles

– géométriques

– géographiques

– audiovisuelles

– soniques

– multimédias

Page 40: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

40

Faiblesses du modèle relationnel

• Opérations séparées des données– procédures stockées non intégrées dans le modèle– absence d'attributs cachés

• Support de domaines atomiques– 1ère forme normale de Codd– inadapté aux objets complexes (documents structurés)– introduction de LOB Long Object (CLOB Character LOB, BLOB

Binary LOB MPEG.. MP..)

• Mauvais support des applications non standards– CAO, CFAO– BD Géographiques– BD techniques

Page 41: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

41

L'apport des modèles objets

• Identité d'objets– introduction de pointeurs invariants– possibilité de chaînage

• Encapsulation des données– possibilité d'isoler les données par des opérations– facilite l'évolution des structures de données

• Héritage d'opérations et de structures– facilite la réutilisation des types de données– permet l'adaptation à son application

• Possibilité d'opérations abstraites (polymorphisme)– simplifie la vie du développeur

Page 42: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

42

Le support d'objets complexes

• Nécessité d'introduire des attributs multivalués

• Fourniture de collections prédéfinies telles liste, ensemble, tableau, ...

• Imbrication des collections pour représenter des objets très compliqués

• Exemple– Type Molécule

» { list <Atome, Connexions>}– Type Atome

» { Noyau, list <Electrons> }

Page 43: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

43

Premiers pas • Modèle NF2

Libelle Professeurs Formations

Système

Montant

185

Motif NDep

MCEric

PR

CoursCours

BD

Horaire

134

219

jour

037

Année

Nom Titre

Nom Titre

PRPierre

MCMarie

X1 26 Lundi

X2 80 Mardi

X3 150 Jeudi

X1 50 Lundi

X2 80 MercrediJulie

Page 44: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

44

Relationnel

Types utilisateurset encapsulation

Collectionet objets complexes

Référence et identité

Héritageet réutilisation

Classes de systèmes

• Etendre le relationnel– Systèmes objet-relationnel

– Illustra de Stonebraker

– UniSQL de Won Kim

• Tout refaire– Systèmes objets

– O2 de Bancilhon

– Complexité

» repartir de C++

» C++ persistants

Page 45: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

45

DomaineTableAttributCléRéférence

RELATIONNEL

OBJET

Opération

Héritage

Identifiant

Polymorphisme

Types utilisateurs Collections

L'objet-relationnel

• Extension du modèle relationnel – attributs multivalués : structure, liste,

tableau, ensemble, ...

– héritage sur relations et types

– domaine type abstrait de données (structure cachée + méthodes)

– identité d'objets

• Extension de SQL– définition des types complexes avec

héritage

– appels de méthodes en résultat et qualification

– imbrication des appels de méthodes

– surcharge d'opérateurs

Page 46: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

46

Qui pousse …

• Un groupe international– ISO/IEC JTC1/SC 21/WG3 DBL

• Pays actifs– Australia, Brazil, Canada, France, Germany, Japan

– Korea, The Netherlands, United Kingdom,United States

• ANSI X3H2 (http://www.ansi.org)

• Documents– ISO/IEC 9075:1992, "Database Languages - SQL"

– ANSI X3.135-1992, "Database Language SQL"

Page 47: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

47

La standardisation ….

• Part 1: Framework – Une description non-technique de comment le document est structuré.

• Part 2: Foundation – Le noyau de specification, incluant les types de données abstraits.

• Part 3: SQL/CLI – l’interface d’appel client.

• Part 4: SQL/PSM – le langage de spécifications de procédures stockées

• Part 5: SQL/Bindings – les liens SQL dynamique et “embedded” SQL repris de SQL-92.

• Part 6: SQL/XA– Une spécification de l’interface XA pour moniteur transactionnel.

• Part 7: SQL/Temporal– Le support du temps dans SQL3

Page 48: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

48

SQL3

• De multiples facettes :– Un langage de définition de types

– Un langage de programmation

– Un langage de requêtes

– Un langage temporel

– ...

Pour gérer des données complexes

dans le cadre de système objet-relationnel Nouveaux

Illustra, UniSQL, ODB II, Versant

Relationnels étendus ("universels")Postgres, Oracle, DB2 UDB, Informix

Page 49: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

49

SQL3

• Extensibilité des types de données– Définition de types abstraits

– Possibilité de types avec ou sans OID

• Support d’objets complexes– Constructeurs de types (tuples, set, list, …)

– Utilisation de référence (OID)

• Héritage – Définition de sous-types

– Définition de sous-tables

Page 50: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

50

Principe•Typage fort

Type = Données + Méthodes • La création de type ne crée pas d’objets

• Les objets d’un type sont persistants que lorsqu’ils sont insérés dans des tables

déclarées (CREATE TABLE)

Page 51: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

51

Principe• un TAD

• permet la définition de nouveaux types d’attributs (augmentant les types disponibles par défaut)

• permet le « partage » de structures de données

Page 52: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

52

Les types abstraits• Deux types d’ADT

– Littéral

Type d’une colonne de table

CREATE DISTINCT TYPE euro_t AS DOUBLE PRECISION

CREATE TABLE Produit (descrprod VARCHAR(20), prixeuro euro_t)

Page 53: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

53

Les types abstraits

CREATE TYPE Codpostal_t ( dept NUMBER(2), ext NUMBER(3) );

CREATE TYPE Adresse_t (rue VARCHAR(20), ville VARCHAR(20), codpost Codpostal_t);

CREATE TABLE Adresse OF Adresse_t;

CREATE TABLE Personne (nom VARCHAR(20), adr Adresse_t );

Page 54: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

54

Les types abstraits• Deux types d’ADT

– Objet

Type d’un tuple objet d’une table

CREATE ROWTYPE Person_t (nom VARCHAR(20), adr adresse_t);

CREATE TABLE Personne OF Person_t (PRIMARY KEY nom);

Page 55: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

55

Les types abstraits• Pointeurs

CREATE TYPE Diplome_t (nom VARCHAR(20), dateob DATE, mention VARCHAR(2));CREATE TABLE Diplome OF Diplome_t;

CREATE TABLE Personne (nom VARCHAR(20), adr Adresse_t,

dipl REF Diplome_t );

@ diplome

Page 56: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

56

Les collections• Les constructeurs de base

collections SET(T), MULTISET(T), LIST(T)

CREATE TYPE Personne_t (nss INT, nom VARCHAR(20), prenoms LIST(VARCHAR(20)), tel SET(telephone_t))

CREATE TABLE Personne OF Personne_t

• Les constructeurs additionnels– stack, queue, array, insertable array (exemple : texte)– non intégrés dans le langage mais peuvent être ajoutés

Page 57: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

57

Encapsulation• Possibilité de définir des méthodes

(procédures et fonctions) dans la déclaration du TAD

CREATE TYPE chercheur_t (numero NUMBER, nom CHAR(30),

Contacts SET(email_t) ,

Method ajoute_mail(nouveau_ mail email_t) ;

Page 58: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

58

Spécialisation

CREATE TYPE Personne_t (numero NUMBER), nom CHAR(30), dipl REF Diplome_t) ;

CREATE TYPE chercheur_t UNDER Personne_t (Contacts SET(email_t), Method ajoute_mail(nouveau_ mail email_t) ;

CREATE TYPE etudiant_t UNDER Personne_t (Loisirs

LIST(VARCHAR(20));

CREATE TABLE chercheur OF chercheur_t;

CREATE TABLE etudiant of etudiant_t;

Page 59: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

59

Interroger …. Le parcours de référence

• Possibilité d'appliquer les fonctions Ref et DeRef (implicite)CREATE Type voiture_t (numim VARCHAR(15), constnom VARCHAR(20) prop REF prop_t, couleur CHAR(20), annee NUMBER);

CREATE TYPE prop_t (num NUMBER, nom VARCHAR(30))

CREATE TABLE voitures OF TYPE voiture_t

SELECT c.prop.nom FROM voitures c WHERE couleur = 'rouge'

Page 60: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

60

select p.dateeffet, p.client.nom, p.vehicule.nimfrom policy pwhere p.vehicule.modele = ‘ferrari’

Comparaison avec le relationnel

• Accès en relationnel

• Accès en objet-relationnel

select dateeffet, nom, nimfrom police, client, nimwhere police.numero = client.numeroand police.nim = vehicule.nimand modele = ‘ferrari’

Police (numero,dateffet, client,vehicule)

Vehicule(nim,modele)Client(numero, nom)Police(numero,nim,dateeffet)

Page 61: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

61

ORACLE 8 et …

CREATE OR REPLACE TYPE Adresse_t AS OBJECT

(norue NUMBER, rue VARCHAR2(20), ville VARCHAR2(30), code-postal VARCHAR2(10));

CREATE TABLE adresse OF Adresse_t;

CREATE OR REPLACE TYPE Etudiant_t AS OBJECT

(numero NUMBER, adr Adresse_t);

CREATE TABLE etudiant OF Etudiant_t (CONSTRAINT PK_etud PRIMARY KEY (numero))

;

SELECT REF(i) FROM Etudiant i ;

Retourne les OID des objets de la table etudiant

Page 62: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

62

ORACLE 8 et …Attention …

CREATE TABLE Employe

(numero NUMBER, dept VARCHAR(3), Sal NUMBER,

adr Adresse_t);

N’est pas une table objet-relationnel ….

SELECT REF(i) FROM Employe i ;

erreur

Page 63: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

63

ORACLE 8 et …CREATE TYPE Admin_t AS OBJECT

(num NUMBER, nom VARCHAR(15),

age NUMBER);

CREATE TYPE PC_t AS OBJECT

(nserie NUMBER, adrIP VARCHAR(15),

admin REF Admin_t); La référence doit porter sur un type ….

CREATE TABLE admin OF Admin_t

(CONSTRAINT pk_admin PRIMARY KEY (num));

CREATE TABLE PC OF PC_t

(PRIMARY KEY (nserie));

Page 64: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

64

ORACLE 8 et …Tables imbriquées

CREATE TYPE Emp_t AS OBJECT

(nINSEE VARCHAR2(13), nom VARCHAR(15),

age NUMBER);CREATE TYPE Emps_t AS TABLE OF

Emp_t;

CREATE TABLE DEPT ( Ndept NUMBER PRIMARY KEY,

Employes Emps_t)

NESTED TABLE employes STORE AS THE;

Page 65: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

65

ORACLE 8 et …Tables imbriquées

CREATE TABLE DEPT ( Ndept NUMBER PRIMARY KEY,

Employes Emps_t)

NESTED TABLE employes STORE AS Tabemp;

INSERT INTO DEPT VALUES(4, Emps_t(Emp_t (‘154..’,’Louis’, 51),

Emp_t(‘264…’,’Nina’,41), …..);

INSERT INTO THE(SELECT d.employes FROM DEPT d WHERE D.Ndept=4)VALUES (‘174 …’,’René’,31)

THE référence la table imbriquée ….

Page 66: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

66

Exemple d'application (1)

• GIS (Geographical Information Systems)

• Type Geométrie– Point, ligne, polygone, chemin, rectangle, ellipse, ...

• Fonctions– distance(geom,geom) returns real

– contained(geom,geom) returns bool

– overlaps(geom,geom) returns bool

– intersection(geom,geom) returns geom

– union(geom,geom) returns geom

– ....

Page 67: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

67

Exemple d'application (2)

• Images Type Library

• Différents formats : TIFF,GIF,FAX,CD,JPEG

• Fonctions :– rotate(image,angle) returns image

– transpose(image) returns image

– flip(image) returns image

– enhance(image), oil_painting(image)

– plus(image,image), minus(image,image)

– intersection(image,image), union(image,image)

– histogram(image) returns(table)

– similarity(image,image)

Page 68: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr.

Séminaire IG

68

Un standard en évolution

• PROPOSITION CONCURRENTE DE L'ODMG– Accord entre constructeurs de SGBD Objets

– Support du modèle pur objet de l'OMG

– Variation de SQL traitant des collections imbriquées

• Accord ANSI X3 H2 et ODMG– Définition d'un langage d'interrogation intégrant relationnel et objet

– Convergence relationnel-objet vers SQL3

• De nombreux points restent à fixer– Visibilité des OID ?

– Chemins multivalués ?

– Cohérence ?