Aller au contenu

Entraînement sur les Schémas Relationnels

Introduction

Nous disposons d'une base de données pour une sandwicherie. Voici les tables de cette base, comprenant des informations sur les sandwichs proposés, les clients, et les commandes passées.


1. Tables initiales

Table : Sandwichs

Nom_Sandwich Type Prix
Cheeseburger Classique 3.98
Double cheese Classique 4.90
Italien Végétarien 4.90
Foie gras Gastronomique 8.50

Table : Clients

ID_Client Nom Prénom Adresse
1 Bernard Alain 9, rue Bienvenu, Marseille
2 Bernard Yves 2, rue Vive la Joie, Aubagne
3 Dupont Sophie 154, boulevard Aune, Lyon

Table : Commandes

ID_Commande Date ID_Client Nom_Sandwich Quantité
12452 2019-12-11 1 Italien 2
12453 2019-12-11 2 Foie gras 1
13301 2019-12-23 3 Cheeseburger 3

2. Questions pour réflexion

  1. Analyse des clés :
  2. Quelle est la clé primaire de chaque table ?
  3. Les tables comportent-elles des clés étrangères ? Si oui, lesquelles ?

  4. Problèmes de modélisation :

  5. La base est-elle bien modélisée ?
  6. Proposez des améliorations pour éviter la redondance et mieux gérer les relations.

3. Modélisation d'une base pour un forum

Contexte :

On souhaite modéliser une base de données simplifiée pour un forum en ligne avec deux tables principales : - Users : contenant des informations sur les utilisateurs (pseudonyme, email, rôle). - Posts : contenant des informations sur les messages (titre, contenu, date, auteur).

Questions :

  1. Quel serait le schéma relationnel de la table Users ?
  2. Quel serait celui de la table Posts ?
  3. Les tables comportent-elles des clés primaires ou clés étrangères ? Si oui, lesquelles ?
  4. Comment gérer les modifications de pseudonymes des utilisateurs ?

4. Extension : Albums sur le forum

Nouvelle fonctionnalité :

Chaque utilisateur peut créer un ou plusieurs albums contenant des messages du forum.

  1. Modèle Entité-Association : Dessinez un modèle entité-association pour cette fonctionnalité.
  2. Schéma Relationnel : Proposez un schéma relationnel cohérent.
  3. Donnez un exemple d’enregistrement pour illustrer le fonctionnement.

5. Normalisation : Exemple pour un lycée

Extrait initial :

Nom Prénom Date_Naissance Classe Option1 Option2 Option3
Alan Michel 12/12/2005 2de1 CIT Chinois NULL
Bergue John 13/01/2006 2de1 CIT Chinois Latin
Zidane Michel 12/12/2005 1S2 Maths Physique NSI
Bergue Inès 06/04/2004 T-STL NULL NULL NULL

Problèmes :

  1. Quel est le schéma relationnel de cette base ?
  2. La table contient-elle une clé primaire ? Des clés étrangères ?
  3. Quels sont les défauts de conception (redondance, incohérences) ?

Amélioration :

  • Proposez un schéma relationnel alternatif pour corriger ces défauts.

Auteur : Florian Mathieu

Licence CC BY NC

Licence Creative Commons
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d'Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.