Exemple : Cours et intervenants
Exemple : Modèle logique
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ément : Modèle conceptuel
Exemple : LDD
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;
Exemple : Insert
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
);
Exemple : Select (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
Exemple : Select (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
Exemple : Select (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