séminaire ig 1 méthodologie objet et ig ? t. libourel [email protected]
TRANSCRIPT
![Page 2: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/12.jpg)
Séminaire IG
12
Plan
• AdéquationDiscussion
![Page 13: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/27.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/30.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/38.jpg)
Séminaire IG
38
Plan
• Objet-relationnel
![Page 39: Séminaire IG 1 Méthodologie objet et IG ? T. Libourel libourel@lirmm.fr](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/40.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/42.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/45.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/46.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/47.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/48.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/49.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/50.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/51.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/52.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/53.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/54.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/55.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/56.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/57.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/58.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/59.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/60.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/61.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/62.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/63.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/64.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/65.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/66.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/67.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022062312/551d9d81497959293b8baf83/html5/thumbnails/68.jpg)
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 ?