Exemple : Cours et intervenants

ExempleModèle logique

Modèle imbriqué
1
Type typBureau : <centre:char, batiment:char, numero:int>
2
Type typListeTelephones : collection de <entier>
3
Type typSpecialite : <domaine:char, specialite:char>
4
Type typListeSpecialites : collection de <typSpecialite>
5
tIntervenant (#nom:char, prenom:char, bureau:typBureau, ltelephones:typListeTelephones, lspecialites:typListeSpecialites)

ComplémentModèle conceptuel

UML Intervenant

ExempleLDD

1
CREATE OR REPLACE TYPE typBureau AS OBJECT (
2
centre char(2),
3
batiment char(1),
4
numero number(3)
5
);
6
/
7
8
CREATE OR REPLACE TYPE typListeTelephones AS TABLE OF number(10);
9
/
10
11
CREATE OR REPLACE TYPE typSpecialite AS OBJECT (
12
domaine varchar2(15),
13
technologie varchar2(15)
14
);
15
/
16
17
CREATE OR REPLACE TYPE typListeSpecialites AS TABLE OF typSpecialite;
18
/
19
20
CREATE TABLE tIntervenant (
21
pknom varchar2(20) PRIMARY KEY,
22
prenom varchar2(20) NOT NULL,
23
bureau typBureau,
24
ltelephones typListeTelephones,
25
lspecialites typListeSpecialites
26
)
27
NESTED TABLE ltelephones STORE AS tIntervenant_nt1,
28
NESTED TABLE lspecialites STORE AS tIntervenant_nt2;

ExempleInsert

1
INSERT INTO tIntervenant (pknom, prenom, bureau, ltelephones, lspecialites)
2
VALUES (
3
'Crozat', 
4
'Stéphane', 
5
typBureau('PG','K',256),
6
typListeTelephones (0687990000,0912345678,0344231234),
7
typListeSpecialites (typSpecialite ('BD','SGBDR'), typSpecialite('Doc','XML'), typSpecialite('BD','SGBDRO'))
8
);
9
10
INSERT INTO tIntervenant (pknom, prenom, bureau, ltelephones, lspecialites)
11
VALUES (
12
'Vincent', 
13
'Antoine', 
14
typBureau('R','C',123),
15
typListeTelephones (0344231235,0687990001),
16
typListeSpecialites (typSpecialite ('IC','Ontologies'), typSpecialite('BD','SGBDRO'))
17
);

ExempleSelect (enregistrement imbriqué)

1
SELECT pknom, prenom, i.bureau.centre FROM tIntervenant i;
1
PKNOM                PRENOM               BUREAU.CENTRE
2
-------------------- -------------------- -------------
3
Crozat               Stéphane             PG            
4
Vincent              Antoine              R   

ExempleSelect (collection de scalaires imbriquée)

1
SELECT i.pknom, t.*
2
FROM tIntervenant i, TABLE(i.ltelephones) t
3
1
PKNOM                COLUMN_VALUE
2
-------------------- ------------
3
Crozat                  687990000 
4
Crozat                  912345678 
5
Crozat                  344231234 
6
Vincent                 344231235 
7
Vincent                 687990001 

ExempleSelect (collection d'enregistrements imbriquée)

1
SELECT i.pknom, s.*
2
FROM tIntervenant i, TABLE(i.lspecialites) s
1
PKNOM                DOMAINE         TECHNOLOGIE   
2
-------------------- --------------- ---------------
3
Crozat               BD              SGBDR           
4
Crozat               Doc             XML             
5
Crozat               BD              SGBDRO          
6
Vincent              IC              Ontologies      
7
Vincent              BD              SGBDRO