Les collections imbriquées (modèle et LDD)
Définition : Collection
Une collection est un type de données générique défini afin de supporter un ensemble d'objets (scalaires ou enregistrements).
Synonymes : Collection d'objets
Syntaxe : Modèle logique
Appuyer sur espace pour rester en pause.
1
Type nom_type : collection de <type_objet>
Remarque :
Les objets d'une collection peuvent être un type simple (collection de scalaire) ou un type utilisateur (collection d'enregistrements).
Exemple : Collection d'entiers (modèle logique)
Appuyer sur espace pour rester en pause.
1
Type typListeTelephones : collection de <entier>
2
tIntervenant (#nom:char, prenom:char, ltelephones:typListeTelephones)
Exemple : Collection d'objets complexes (modèle logique)
Appuyer sur espace pour rester en pause.
1
Type typSpecialite : <domaine:char, specialite:char>
2
Type typListeSpecialites : collection de <typSpecialite>
3
tIntervenant (#nom:char, prenom:char, lspecialites:typListeSpecialites)
Syntaxe : Implémentation des collections de scalaires sous forme de tables imbriquées en SQL3
Appuyer sur espace pour rester en pause.
1
-- Déclaration d'un type abstrait de collection
2
CREATE TYPE liste_nom_type AS TABLE OF nom_type_scalaire;
3
4
-- Déclaration d'une table imbriquant une autre table
5
CREATE TABLE nom_table_principale (
6
nom_attribut type_attribut,
7
...
8
nom_attribut_table_imbriquée liste_nom_type,
9
...
10
)
11
NESTED TABLE nom_attribut_table_imbriquée STORE AS nom_table_stockage;
Exemple : Gestion d'attribut multivalué par imbrication de collection de scalaires
Appuyer sur espace pour rester en pause.Appuyer sur espace pour rester en pause.
1
CREATE OR REPLACE TYPE typListeTelephones AS TABLE OF number(10);
2
/
3
4
CREATE TABLE tIntervenant (
5
pknom varchar2(20) PRIMARY KEY,
6
prenom varchar2(20) NOT NULL,
7
ltelephones typListeTelephones
8
)
9
NESTED TABLE ltelephones STORE AS tIntervenant_nt1;
Syntaxe : Implémentation des collections d'enregistrement sous forme de tables imbriquées en SQL3
Appuyer sur espace pour rester en pause.
1
--Création d'un type abstrait d'objet
2
CREATE TYPE nom_type AS OBJECT (...);
3
4
-- Déclaration d'un type abstrait de collection
5
CREATE TYPE liste_nom_type AS TABLE OF nom_type;
6
7
-- Déclaration d'une table imbriquant une autre table
8
CREATE TABLE nom_table_principale (
9
nom_attribut type_attribut,
10
...
11
nom_attribut_table_imbriquée liste_nom_type,
12
...
13
)
14
NESTED TABLE nom_attribut_table_imbriquée STORE AS nom_table_stockage;
Exemple : Gestion de composition par imbrication de collection d'enregistrements
Appuyer sur espace pour rester en pause.Appuyer sur espace pour rester en pause.
1
CREATE OR REPLACE TYPE typSpecialite AS OBJECT (
2
domaine varchar2(50),
3
technologie varchar2(50)
4
);
5
/
6
7
CREATE OR REPLACE TYPE typListeSpecialites AS TABLE OF typSpecialite;
8
/
9
10
CREATE TABLE tIntervenant (
11
pknom varchar2(20) PRIMARY KEY,
12
prenom varchar2(20) NOT NULL,
13
lspecialites typListeSpecialites
14
)
15
NESTED TABLE lspecialites STORE AS tIntervenant_nt2;