Vous êtes ici : AccueilCLASSESImplémentation d’une base de données : La création d'une base de données

Vote utilisateur: 4 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles inactives
 
Terminale
D & C
Informatique
Cours
Bonjour ! Notre page Facebook, la suivre pour nos prochaines publications

V La création d'une base de données

Il existe deux modes pour créer les éléments d'une base de données :
• Mode assisté
• Mode commande

V.1 Le mode assisté

Le mode assisté permet de créer les éléments de la base de données à travers des assistants graphiques ( Accès par exemple).
Un assistant graphique est une interface utilisateur en mode graphique composée d'une succession de fenêtres correspondant chacune à une étape du processus de création.

V.2 La création d'une table en mode commande

Le mode commande consiste à créer les différentes structures de la base de données à l'aide de commandes du langage SQL.

Le langage Structured Query Language (SQL), ou langage structuré de requêtes, est un langage informatique (de type requête) normalisé (standard) destiné à interroger ou à manipuler une base de données relationnelle avec :
• Un langage de définition de données (LDD, ou en anglais DDL, Data definition language) qui permet de modifier la structure de la base de données.
• Un langage de manipulation de données (LMD, ou en anglais DML, Data manipulation language) qui constitue la partie la plus courante et la plus visible de SQL, permettant de consulter et modifier le contenu de la base de données.
• Un langage de contrôle de données (LCD, ou en anglais DCL, Data control language) qui permet de gérer les privilèges, c'est-à-dire les utilisateurs et les actions qu'ils peuvent entreprendre sur la Base de Données.
Il permet de façon générale la définition, la manipulation et le contrôle de sécurité de données. Ce langage est composé de trois familles de commandes
• Commandes de définition de données;
• Commandes de manipulation de données;
• Commandes de contrôle de données.

V.3 Commandes de définition de données

Ce sont des commandes qui permettent de créer, modifier et supprimer les différentes structures de la base de données.
Les instructions du LDD sont : CREATE, ALTER, DROP, AUDIT, NOAUDIT, ANALYZE, RENAME, TRUNCATE.
La commande du langage SQL permettant de créer une table est la commande : CREATE TABLE
La forme générale de cette commande est la suivante :

CREATE TABLE nom_ table
(
colonne1 type_donnees,
colonne2 type_donnees,
….
)

Le nom de la table doit être unique au niveau de la base de données et ne doit pas être un mot-clé SQL.
Le nom de la colonne est suivi obligatoirement par le type de données. Il est à noter que le nombre et les noms des types de données varient d'un SGBD à un autre.
• INT (n) Numérique à n chiffres
• DECIMAL (n, m) Numérique à n chiffres dont m décimales.
• VARCHAR(n) Chaîne de caractères de longueur variable dont la taille maximale est n
• DATE Date et/ou heure

Exemple
CREATE TABLE utilisateur
(
id INT PRIMARY KEY NOT NULL,
nom VARCHAR(100),
prenom VARCHAR(100),
email VARCHAR(255),
code_postal VARCHAR(5),
)

L'option NULL veut dire que la colonne n'est pas obligatoire.
l'option NOT NULL veut dire que la colonne est obligatoire. On doit absolument renseigner cette colonne lors de la saisie d'une ligne de la table.
L'option DEFAULT permet d'attribuer une valeur par défaut à cette colonne lorsqu'aucune valeur ne lui a été affectée.
Cette option ne peut pas être indiquée lorsque la colonne est obligatoire (NOT NULL).

La commande du langage SQL permettant de modifier la structure d'une table est la commande ALTER TABLE.
Elle permet les modifications suivantes sur la structure d'une table existante :
• Ajout de nouvelles colonnes,
• Modification de colonnes,
• Suppression de colonnes,
• Ajout de contraintes d'intégrité,
• Suppression de contraintes d'intégrité,
• Activation ou désactivation de contraintes d'intégrité.
La forme générale de cette commande est la suivante :

ALTER TABLE nom_table
[ADD COLUMN définition_colonne]
[ADD CONSTRAINT définition_contrainte]
[MODIFY définition_colonne]
[DROP COLUMN nom_colonne ]
[DROP CONSTRAINT nom_contrainte]
[ENABLE | DISABLE nom_contrainte]

Le nom de la table doit correspondre à une table qui existe déjà.
L'option ADD COLUMN permet de rajouter des nouvelles colonnes à la table.
La clause « définition_colonne » a la même syntaxe que celle utilisée dans la commande CREATE TABLE.

Exemple 
La commande suivante permet de rajouter une colonne « email » à la table Client.
ALTER TABLE client ADD COLUMN
(email VARCHAR(80)
);

L'option MODIFY permet la modification de certaines caractéristiques d'une colonne existante.

Exemple
Supposons qu'on souhaite élargir la taille de la colonne « email » qu'on vient de rajouter à la table client.
ALTER TABLE client MODIFY (email VARCHAR(100));

L'option DROP COLUMN permet de supprimer une colonne de la table. Cette option n'est pas prévue chez certaines versions de SQL.

Exemple
Supposons qu'on souhaite supprimer la colonne « email » qu'on vient de rajouter à la table client.
ALTER TABLE client DROP COLUMN email ;

L'option DROP COSTRAINT permet de supprimer une contrainte d'intégrité de la table.

L'option DISABLE permet de désactiver une contrainte d'intégrité.
Lorsqu'une contrainte est désactivée, le SGBD ne va plus effectuer le contrôle imposé par cette contrainte.
L'option ENABLE permet de réactiver une contrainte d'intégrité.

La commande du langage SQL permettant de supprimer la structure d'une table est la commande DROP TABLE.
Elle permet de supprimer à la fois le contenu et la structure d'une table existante.
La syntaxe de cette commande est la suivante :

DROP TABLE nom_table

Le nom de la table doit correspondre à une table qui existe déjà.

V.4 Commandes de manipulation de données

Ce sont des commandes qui permettent de manipuler le contenu de la base de données, c'est-à-dire d'insérer, de modifier, de consulter ou de supprimer des lignes dans les tables de la base de données.
la manipulation des données en mode commande est composée de deux types de commandes :
• Commandes de mise à jour de données
• Commande de consultation (ou recherche) de données.

IV.4.1 Mise à jour de données

La mise à jour des tables d'une base de données relationnelle se fait à l'aide de trois commandes : la commande d'insertion, la commande de modification et la commande de suppression de lignes.

a) Insertion de lignes

L'opération d'ajout de nouvelles données consiste à insérer de nouvelles lignes dans une table dont la structure a été déjà créée dans la base.
La commande du langage SQL permettant d'insérer une ligne dans une table est la commande INSERT.
La forme générale de cette commande est la suivante :

INSERT INTO table (nom_colonne_1, nom_colonne_2, ...)
VALUES ('valeur 1', 'valeur 2', ...) ;

b) Suppression de lignes

L'opération de suppression de données consiste à éliminer une ou plusieurs lignes existantes à partir d'une table.
La commande du langage SQL permettant de supprimer des lignes d'une table est la commande DELETE.
La forme générale de cette commande est la suivante :

DELETE FROM `table`
WHERE condition

S’il n’y a pas de condition WHERE alors toutes les lignes seront supprimées et la table sera alors vide.
Il est possible de supprimer une ligne en effectuant la requête SQL suivante :

DELETE FROM `Nom_ Table`
WHERE `id` = 1

c) Modification de lignes

La syntaxe basique d’une requête utilisant UPDATE est la suivante :

UPDATE table
SET nom_colonne_1 = 'nouvelle valeur'
WHERE condition

IV.4.2 La recherche de données : requêtes

La recherche de données est une opération qui consiste en la recherche de données appartenant à la base. Cette recherche peut être réalisée en faisant référence à une ou à plusieurs tables.
Elle peut se référer à une partie ou à la totalité des colonnes des tables concernées tout en étant, éventuellement, conditionnelle.
Une recherche peut consister à effectuer :
• Une projection sur certaines colonnes d'une table ;
• Une sélection sur certaines lignes d'une table ;
• Une jointure sur deux tables ;
• Toute combinaison de projection, sélection et jointure.
La commande permettant d'effectuer une recherche dans une base de données est la commande SELECT.

a) Recherche de colonnes à partir d'une table : Projection

Une projection est une instruction permettant de sélectionner un ensemble de colonnes dans une table.
Le résultat de la projection doit comporter au moins une colonne de la table. Cependant, toutes les lignes relatives à cette colonne feront partie du résultat.

L’utilisation basique de cette commande s’effectue de la manière suivante:

SELECT nom_du_champ FROM nom_du_tableau

Cette requête SQL retourne exactement les mêmes colonnes qu’il y a dans la base de données.

SELECT * FROM client

Le paramètre DISTINCT sert à éliminer les lignes en double dans le résultat puisque la commande SELECT peut ramener des doublons si la clé primaire ne figure pas dans la liste des colonnes à afficher, ainsi, la forme générale de la commande de projection est la suivante :

SELECT [DISTINCT] * / liste_Nom_colonne
FROM nom_table

• Le paramètre liste_Nom_colonne sert à préciser la liste des colonnes, que l'on veut voir affichées.
• Le paramètre liste_Nom_colonne peut être remplacé par * qui désigne toutes les colonnes de la table.
• L'ordre d'affichage du résultat donné par le contenu des colonnes est le même que celui indiqué par le paramètre liste_Nom_colonne.
• Dans le cas où le paramètre * est donné, l'ordre sera celui spécifié dans la structure de la table.
• Le paramètre DISTINCT sert à éliminer les lignes en double dans le résultat puisque la commande SELECT peut ramener des doublons si la clé primaire ne figure pas dans la liste des colonnes à afficher).
• Le paramètre nom_table sert à se référer à la table concernée par l'opération de sélection.

b) Recherche de lignes à partir d'une table : Sélection

On parle de Sélection si la recherche est relative à un sous ensemble de lignes d'une table vérifiant une certaine condition.
La sélection est souvent combinée avec la projection. Dans ce cas le résultat est un sous ensemble de lignes et de colonnes de cette table.
La forme générale de la commande de sélection est la suivante :

SELECT [DISTINCT] * / liste_Nom_colonne
FROM nom_table
WHERE condition

• Le paramètre condition sert à préciser le critère qui doit être vérifié par les lignes à afficher. Ce prédicat est donné sous la forme d'une expression logique.
• Si le résultat de l'évaluation de l'expression logique est vrai, pour une ligne, celle-ci fera partie du résultat.
• Dans l'expression logique, on peut utiliser en particulier :
1. Les opérateurs de comparaison : =, >, <, >=, <= et <>.
2. L'opérateur BETWEEN pour les intervalles de valeurs, bornes incluses.
3. L'opérateur IN pour les listes de valeurs.
4. L'opérateur IS NULL et IS NOT NULL pour les valeurs indéterminées.
5. L'opérateur LIKE pour filtrer une chaîne de caractères.
6. Les opérateurs logiques : AND, OR et NOT.

c) Recherche de données à partir de plusieurs tables : Jointure

On parle de Jointure si la recherche est relative à deux tables ayant au moins une colonne en commun. La condition de jointure doit porter sur ces colonnes communes.
La forme générale de la commande de Jointure est la suivante :

SELECT [DISTINCT] * / liste_Nom_colonne
FROM nom_table1 [alias1], nom_table2 [alias2] …
WHERE condition

• L'opération relationnelle de jointure réalise une liaison entre deux tables en se basant sur l'égalité des valeurs entre l'une des colonnes de chaque table.
• Un alias permet de donner un nom synonyme, abrégé, à une table. Il permet d'alléger l'écriture de la commande SELECT en cas d'ambiguïté.
• Le paramètre condition sert, particulièrement, à préciser la condition de jointure.
Cette condition ne doit pas être confondue avec celle indiquée pour l'opération relationnelle de sélection.
• La condition de jointure doit porter sur les colonnes en commun aux tables utilisées pour l'opération de jointure (voir contrainte d'intégrité référentielle : clé primaire - clé étrangère).

Exemple : Afficher la date de chaque commande ainsi que le nom et le prénom du client qui a fait la commande.

SELECT Nom_client, Prénom_client, date_comm
FROM Client, Commande
WHERE Client.code_client = Commande.code_client;