Qualité et non-relationnel

TP#03 Modélisation Non First Normal Form

Ce TP permet de mettre en œuvre le principe de normalisation NF2 des bases de données dites objet-relationnelles (O-R) avec le SGBD Oracle. A noter que le code SQL utilisé n’est plus dans le standard SQL (commandes spécifiques à Oracle).

1. Création des types et d’une table O-R

(1) Les commandes SQL de création des types de la relation suivante sont :

CREATE TYPE ne_type AS OBJECT ( ne NUMBER, nome VARCHAR2(30) );

CREATE TYPE equipe_type AS OBJECT ( nlic NUMBER, prenom VARCHAR2(30), nom VARCHAR2(30), equipe REF ne_type );

(2) La commande SQL de création de la table O-R Joueur est :

CREATE TABLE Joueur OF equipe_type;

(3) Pour insérer les enregistrements dans la table Joueur :

INSERT INTO Joueur VALUES (1001,Antoine,Dupont, (SELECT REF(e) FROM ne e WHERE e.ne = FRA));
INSERT INTO Joueur VALUES (1002,Romain,Ntamack, (SELECT REF(e) FROM ne e WHERE e.ne = FRA));
INSERT INTO Joueur VALUES (1003,Anthony,Jolonch, (SELECT REF(e) FROM ne e WHERE e.ne = FRA));
INSERT INTO Joueur VALUES (2001,Jonathan,Sexton, (SELECT REF(e) FROM ne e WHERE e.ne = IRL));
INSERT INTO Joueur VALUES (3001,Jonny,Gray, (SELECT REF(e) FROM ne e WHERE e.ne = SCO));
INSERT INTO Joueur VALUES (3002,Richie,Gray, (SELECT REF(e) FROM ne e WHERE e.ne = SCO));

2. Création des types et d’une table O-R

Considérons la relation ci-dessous.

Match (nm, stade, ne1#, ne2#, scr1, scr2, composer:{nlic, maillot})

(1) Les commandes SQL de création des types de la relation sont :

CREATE TYPE composer_type AS OBJECT ( nlic NUMBER, maillot NUMBER );

CREATE TYPE match_type AS OBJECT ( nm NUMBER, stade VARCHAR2(30), ne1 REF ne_type, ne2 REF ne_type, scr1 NUMBER, scr2 NUMBER, composer composer_type );

(2) La commande SQL de création de la table O-R Match est :

CREATE TABLE Match OF match_type;

(3) Pour insérer un match fictif entre la France et l’Irlande avec la composition des joueurs appropriés :

INSERT INTO Match VALUES (1,Stade de France,(SELECT REF(e) FROM ne e WHERE e.ne = FRA),(SELECT REF(e) FROM ne e WHERE e.ne = IRL),20,15,(1001,Antoine,Dupont, (SELECT REF(e) FROM ne e WHERE e.ne = FRA)));

Conclusion

En somme, ce TP nous a permis de mettre en œuvre le principe de normalisation NF2 des bases de données dites objet-relationnelles (O-R) avec le SGBD Oracle. Nous avons pu constater que les commandes SQL utilisées ne sont plus dans le standard SQL et sont spécifiques à Oracle.

Or sus ! Nous avons bien travaillé et appris moult choses sur les bases de données objet-relationnelles. Que c’est bon d’avoir tant appris ! Nous pouvons maintenant nous targuer d’être des experts en la matière.