Université de La Rochelle Département Informatique
Exercice 1.
Soit le schéma relationnel de base de données suivant :
APPARTEMENT (Num_Appart, Adresse, Type, Nb_Pièces)
CLIENT (Num_Client, Nom, Prénom, Adresse, Tél, Type_Appart_Préféré, Loyer_Max)
PHOTO (Num_Photo, Num_Appart, Date, Commentaire, Photo)
Indiquer les problèmes ou insuffisances du modèle relationnel en termes de :
pouvoir d'expression du modèle,
pouvoir d'expression des requêtes,
Définir le domaine de définition des attributs, et notamment les attributs “non standards”.
Donner des exemples de requêtes mettant en évidence les insuffisances du modèle relationnel.
Proposer un schéma relationnel étendu de type relationnel-objet.
Insuffisances du modèle relationnel
La modélisation est limitée à des entités et attributs “simples” (nombres, chaînes de
caractères), sauf pour les dates pour lesquelles un type spécifique est en général
proposé dans les SGBD. Par exemple, l’attribut Adresse contient à la fois la rue, le
code postal et la ville, mais ils ne peuvent être différenciés. C’est ce qu’on appelle une
donnée complexe. De la même manière, le numéro de téléphone peut contenir l’indicatif
du pays et un indicatif régional, mais ils ne peuvent être distingués. Le type
d’appartement préféré par un client est limité à un choix simple (1 valeur), alors qu’il
pourrait être multiple et complexe (situation, ensoleillement, …). L’attribut Photo
contient la liste des pixels de l’image, mais aucun pixel ne constitue une information
extractible.
Les requêtes sont limitées aux opérateurs standards du langage SQL. Elles ne permettent
pas de traiter le contenu des attributs complexes tels qu’une adresse ou un numéro de
téléphone (cf. a)). Elles ne permettent pas non plus d’effectuer des opérations de type
applicatives sur des attributs tels que des images (extraction, filtrage, …).
Domaine de définition des attributs
APPARTEMENT (Num_Appart : integer, Adresse : string, Type : integer, Nb_Pièces :
integer)
CLIENT (Num_Client : integer, Nom : string, Prénom : string, Adresse : string, Tél :
string, Type_Appart_Préféré : char, Loyer_Max : float)
PHOTO (Num_Photo : integer, Num_Appart : integer, Date : date, Commentaire :
string, Photo : string)
Exemples de requêtes