Introduction aux bases de données relationnelles.
Réponse AJAX

Présentation des bases de données relationnelles

Nécessité de stocker les données structurées

Les bases de données sont particulièrement adaptés pour gérer de grands volumes de données : elles permettent de les stocker de façon organisée, et elles offrent des outils adaptés à la manipulation et à l'interrogation de ces grands volumes. Les applications informatiques seront chargées de nourrir et d'interroger ces bases de données.

Les outils informatiques permettant de gérer les bases de données relationnelles s'appellent les SGBDR : Systèmes de Gestion de Bases de Données Relationnelles.

Les SGBDR les plus répandus sont :

A ce jour, quelle est la toute dernière version de Microsoft Access ?

Votre réponse n°1

A ce jour, quelle est la toute dernière version de MySQL ?

Votre réponse n°2

Exemple de données issues d'une base de données

Allons sur Amazon.fr et essayons de voir quelles sont les informations qui proviennent d'une base de données

Sur la page d'accueil du site www.bts-sio.com, dites quelles sont les informations qui dépendent ou qui proviennent d'une base de données.

Votre réponse n°3

Exemples de bases de données

Base simple Artiste / Album de musique

Voici le Modèle Conceptuel de Données (MCD) correspondant à la base (au deuxième semestre, les développeurs apprendrons à créer ces MCD) :

MCD artiste album

Voici les tables correspondantes :

MLD artiste album

Et voici un exemple de ce qu'elles peuvent contenir :

Artiste
art_numart_nomart_naissance
1Bob Dylan1941
2Jean-Jacques Goldman1951
Album
alb_numalb_titrealb_anneeartiste_art_num
1World gone wrong19931
2Down in the flood19951
3Love and Theft20011
4Modern Times20061
5Entre gris clair et gris foncé19872
6En passant19972
7Chansons pour les pieds20012

Base améliorée : un album de musique a plusieurs artistes

Dans la base précédente, l'inconvénient est qu'à un album ne correspond qu'un seul artiste, ce qui n'est pas satisfaisant du point de vue de la réalité.

Voici le MCD qui corrige cet inconvénient :

MCD artiste album

Voici les tables correspondantes :

MLD artiste album

Et voici un exemple de ce qu'elles peuvent contenir :

Artiste
art_numart_nomart_naissance
3Noir Désir
4Manu chao1951
Participe
art_numalb_num
38
48
Album
alb_numalb_titrealb_annee
8Des visages des figures2001

Deuxième amélioration : Un artiste intervient de plusieurs façons sur un disque

Grâce à cette nouvelle amélioration, nous allons pouvoir préciser de quelle façon l'artiste participe au disque.

Voici le MCD correspondant :

MCD artiste album

Voici les tables correspondantes :

MLD artiste album

Et voici un exemple de ce qu'elles peuvent contenir :

Artiste
art_numart_nomart_naissance
3Noir Désir
4Manu chao1951
5Bertrand Cantat1964
6Léo Ferré1916
Participe
art_numalb_numpart_type
38Principal
48Invité à la guitare
58Chant
68Auteur Invité
Album
alb_numalb_titrealb_annee
8Des visages des figures2001

Mon modèle préféré pour représenter des disques de musiques

À vous de jouer

Vous pouvez utiliser le logiciel gratuit AnalyseSI pour répondre à ces questions, ou utiliser le logiciel de modélisation de votre choix.

Créez le modèle conceptuel et le modèle relationnel qui permet de représenter le système de données suivant, issu de la vraie vie IRL :

Collez ici une capture d'écran du modèle conceptuel :

Votre réponse n°4

Collez ici une capture d'écran du modèle physique :

Votre réponse n°5

La clé primaire

Qu'est-ce qu'une clé primaire ?

La notion de clé primaire (appelée aussi identifiant) est une notion fondamentale dans les bases de données relationnelles, nous allons l'expliquer ici.

La valeur de la clé primaire permet d'identifier de façon unique un enregistrement (par exemple, le client n°1). C'est important car, lorsque nous ferons référence à ce client à partir d'une autre table (par exemple pour dire qu'une facture est associée à ce client), nous utiliserons cette clé primaire. C'est pourquoi il est important que la clé primaire identifie de façon unique et stable le client (en général, l'enregistrement) en question. Les clés primaires doivent avoir les propriétés suivantes :

Clés naturelles et clés artificielles

Pour le choix de la clé primaire, on peut choisir une clé naturelle, c'est à dire une valeur existant dans le problème que l'on informatise. Par exemple, une référence de produit pourrait servir de clé primaire.

Toutefois, l'utilisation de clés naturelles peut s'avérer inappropriée si la clé ne respecte pas les propriétés énoncées ci-dessus. On l'a vu, un numéro d'immatriculation de voiture (avant 2009) ou un numéro de sécurité sociale ne peuvent servir de clé primaire. De plus, les clés naturelles ne sont pas forcément optimales au niveau de l'occupation mémoire et des vitesses de traitement.

Je recommande donc l'utilisation systématique de clés artificielles, c'est-à-dire une clé créée de toute pièce car elle n'existe pas dans le système d'information d'origine. Cela nous assure qu'elle aura toutes les propriétés d'une bonne clé primaire.

Numéro automatique

Un numéro automatique est un entier long, qui occupe 4 octets en mémoire (soit 32 bits), et permet donc de représenter 232 = 4 milliards d'enregistrements différents, ce qui est suffisant dans la quasi-totalité des problèmes. Lorsqu'on crée un nouvel enregistrement, le SGBDR choisit automatiquement une nouvelle valeur pour la clé primaire, c'est le principe du numéro automatique.

La notion de numéro automatique est présente dans tous les systèmes de gestion de bases de données. C'est un type de données parfaitement approprié pour gérer les clés artificielles.

Clé étrangères et intégrité référentielle

La clé étrangère

La clé étrangère n'est pas forcément la clé primaire d'une table. Par contre, elle est reliée à une clé primaire dans une autre table.

Par exemple, dans le schéma ci-dessous :

La contrainte d'intégrité référentielle

L'intégrité référentielle est une notion importante dans les bases de données relationnelles. Cela consiste à vérifier, quand on donne une valeur à un champ dans une clé étrangère, que cette valeur existe dans la table liée. Par exemple, si je crée une facture pour le client n°1, il faut que le client n°1 existe dans la table des clients.

On dit que l'intégrité de la base n'est plus respectée lorsque on tombe sur des cas où des clés étrangères existent, mais pas la clé primaire correspondante. Selon le SGBDR et la façon dont il est utilisé, il vous avertira par une erreur ou il laissera faire.

Par exemple, voici l'erreur obtenue sous Microsoft Access quand je crée une facture pour un numéro de client qui n'existe pas :

Remarque sur... L'intégrité référentielle dans MySQL

De nombreux programmeurs préfèrent MyISAM pour améliorer les performances, et ils gèrent l'intégrité référentielle au niveau du code de programmation lorsque cela est important, au lieu de laisser MySQL le gérer systématiquement même lorsque cela est inutile.

Pour choisir le moteur de stockage lorsqu'on crée une table dans MySQL :

Pour changer le moteur de stockage d'une table existante :

Interroger les bases de données relationnelles

Le QBE : Query By Example

Dans Microsoft Access, on peut interroger les données de façon intuitive (par l'interface graphique, sans utiliser de langage particulier). C'est ce qu'on appelle le mode QBE (Query By Example).

Par exemple, voici comment afficher les noms et les prénoms des clients, qui s'appellent DURAND, triés par ordre alphabétique sur le prénom.

En tant que futurs professionnels de l'informatique, cette méthode ne nous intéresse pas car elle a ses limites, et on ne peut pas l'intégrer à nos propres applications.

Le langage SQL : Structured Query Language

Le langage SQL permet d'aller beaucoup plus loin en matière d'interrogation des données. Il permet également de créer les tables, insérer les données, gérer les utilisateurs et leurs droits, etc.

Par exemple, en SQL, l'équivalent de la requête précédente s'écrit :

Intégration des requêtes dans une application

Sur l'exemple du site bts-sio.com, montrez des requêtes SQL.

Quelle est l'année de création du langage SQL ?

Votre réponse n°6

A quelle version en sommes-nous maintenant ?

Votre réponse n°7

Nécessité de protéger les données

Les entreprises stockent toutes leurs données dans des bases de données. En cas de problème (crash, piratage), c'est toute la mémoire de l'entreprise qui peut disparaître. Pour éviter cela, il faut :

Des cours ultérieurs permettront de voir comment gérer cette sécurité.

Vous aussi vous risquez d'être confrontés à la perte de données. Ca peut être lourd de conséquences si vous perdez des documents de travail qui vous serviront pour valider le BTS. Avez-vous l'intention de faire des sauvegardes régulières de vos travaux (par exemple sur clé USB), ou pas ?

Votre réponse n°8

Actualités sur les SGBDR