Les enregistrements imbriqués (modèle et LDD)

ExempleGestion d'attribut composé par imbrication d'enregistrement (table à une seule ligne)

Appuyer sur espace pour rester en pause.
Imbrication d'enregistrement

ExempleModèle logique

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
1
Type typBureau : <centre:char, batiment:char, numero:int>
2
tIntervenant (#nom:char, prenom:char, bureau:typBureau)
Type typBureau : <centre:char, batiment:char, numero:int>
tIntervenant (#nom:char, prenom:char, bureau:typBureau)

ExempleImplémentation SQL3

Appuyer sur espace pour rester en pause.
CTRL+C pour copier, CTRL+V pour coller
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 TABLE tIntervenant (
9
pknom varchar2(20) PRIMARY KEY,
10
prenom varchar2(20) NOT NULL,
11
bureau typBureau
12
);
CREATE OR REPLACE TYPE typBureau AS OBJECT (
centre char(2),
batiment char(1),
numero number(3)
);
/

CREATE TABLE tIntervenant (
pknom varchar2(20) PRIMARY KEY,
prenom varchar2(20) NOT NULL,
bureau typBureau
);

RemarquePremière forme normale

Le recours aux types utilisateurs brise la règle de la première forme normale de l'atomicité des valeurs d'attribut.

Ce non respect de la 1NF ne pose pas de problème en relationnel-objet car la déclaration de type permet de contrôler la structure interne des enregistrements imbriqués.