UML 2 pour les bases de données
222
© Éditions Eyrolles
SQL> INSERT INTO Installe VALUES ('S2','L1');
1 ligne créée.
SQL> INSERT INTO Installe VALUES ('S3','L2');
ERREUR à la ligne 1 : ORA-20100: Le logiciel doit être placé sur un
serveur du département acheteur
ORA-06512: à "SOUTOU.TRI_CONTRAINTE_INCLUSION", ligne 12
Du modèle objet à SQL3
Alors que la majorité des outils de conception sont capables de générer des classes C++, Java et
C# à partir de spécifications UML, aucun n’est adapté à la génération de script SQL3 pour la
conception de bases de données objet-relationnelles.
Cette section présente les techniques permettant de dériver un diagramme UML en langage
SQL3. Nous utilisons la syntaxe d’Oracle mais l’analogie avec un autre SGBD incluant les
références, collections et l’héritage est réalisable à moindre frais.
Traduction des classes UML
Une classe UML se traduit en un type de données avec la syntaxe CREATE TYPE… et une table
objet-relationnelle issue de ce type.
Création d’un type
La commande CREATE TYPE déclare une structure de données simple ou complexe pouvant
contenir des déclarations de méthodes. Cette structure est utilisée dans un programme pour
définir des objets non persistants ou pour former des tables objet-relationnelles. Le code
suivant définit trois types SQL3. Les deux premiers types sont des structures de données
simples. Le troisième type inclut deux références (attributs REF) vers des types prédéfinis.
Figure 3-25 Représentation tabulaire des occurrences
Achat
Dept.
Logiciel
D1
L1
D1
L2
D1
L4
D2
L1
Utilisation
Dept.
Serveur
D1
S1
D1
S2
D2
S3
222
© Éditions Eyrolles
SQL> INSERT INTO Installe VALUES ('S2','L1');
1 ligne créée.
SQL> INSERT INTO Installe VALUES ('S3','L2');
ERREUR à la ligne 1 : ORA-20100: Le logiciel doit être placé sur un
serveur du département acheteur
ORA-06512: à "SOUTOU.TRI_CONTRAINTE_INCLUSION", ligne 12
Du modèle objet à SQL3
Alors que la majorité des outils de conception sont capables de générer des classes C++, Java et
C# à partir de spécifications UML, aucun n’est adapté à la génération de script SQL3 pour la
conception de bases de données objet-relationnelles.
Cette section présente les techniques permettant de dériver un diagramme UML en langage
SQL3. Nous utilisons la syntaxe d’Oracle mais l’analogie avec un autre SGBD incluant les
références, collections et l’héritage est réalisable à moindre frais.
Traduction des classes UML
Une classe UML se traduit en un type de données avec la syntaxe CREATE TYPE… et une table
objet-relationnelle issue de ce type.
Création d’un type
La commande CREATE TYPE déclare une structure de données simple ou complexe pouvant
contenir des déclarations de méthodes. Cette structure est utilisée dans un programme pour
définir des objets non persistants ou pour former des tables objet-relationnelles. Le code
suivant définit trois types SQL3. Les deux premiers types sont des structures de données
simples. Le troisième type inclut deux références (attributs REF) vers des types prédéfinis.
Figure 3-25 Représentation tabulaire des occurrences
Achat
Dept.
Logiciel
D1
L1
D1
L2
D1
L4
D2
L1
Utilisation
Dept.
Serveur
D1
S1
D1
S2
D2
S3
