I. Présentation de SQL
Objectifs :
- Comprendre l'importance et la fonction du SQL en tant que langage de requête pour les SGBD relationnels.
- Connaître l'origine et l'évolution du SQL.
- Identifier les différents SGBD relationnels populaires.
- Reconnaître que, bien que le SQL soit standardisé, des différences existent selon le SGBD utilisé.
1. Qu'est-ce que le SQL?
Le SQL, ou Structured Query Language, est le langage standard pour la gestion des bases de données relationnelles. Il permet de créer, de manipuler et d'interroger des bases de données.
2. Origine et évolution du SQL
1975 : QUEL
- QUEL était un langage de requête initialement développé pour le système Ingres à l'Université de Californie, Berkeley.
1976 : Structured English QUEry Language (SEQUEL) par IBM
- SEQUEL était une tentative d'IBM pour améliorer et étendre le langage QUEL.
- C'était le prédécesseur direct du SQL.
1981 : SQL par IBM
- SEQUEL a été renommé SQL et est devenu le standard pour les requêtes de bases de données relationnelles.
- Il s'agit du langage que nous connaissons et utilisons aujourd'hui.
Standardisation
- ANSI-ISO a standardisé le SQL, aboutissant à différentes normes :
- SQL-86
- SQL-89
- SQL2-92
- ANSI-ISO a standardisé le SQL, aboutissant à différentes normes :
3. Principaux SGBD Relationnels
Plusieurs systèmes de gestion de bases de données relationnelles (SGBDR) ont adopté le SQL comme langage standard pour les requêtes. Voici quelques-uns des SGBDR les plus populaires :
- Oracle : L'un des premiers et des plus puissants SGBDR sur le marché.
- Sybase : Maintenant une partie de SAP, il est connu pour sa performance et sa stabilité.
- DB2 : Propriété d'IBM, c'est un produit robuste utilisé par de nombreuses grandes entreprises.
- Ingres : Étant l'un des premiers SGBDR, il a été à l'origine du développement de QUEL.
- MS SQL Server : Développé par Microsoft, il est largement utilisé dans les environnements Windows.
- MySQL : Un SGBDR open source très populaire pour les applications web.
- MS Access : Une solution de base de données pour bureau développée par Microsoft.
4. Différences selon le SGBD utilisé
Bien que le SQL soit un standard, chaque SGBD peut avoir des nuances ou des extensions spécifiques qui diffèrent des autres. Cela peut être dû à des raisons historiques, à des besoins spécifiques ou à des améliorations apportées par les développeurs du SGBD.
Par exemple, Oracle peut avoir des fonctions ou des procédures qui ne sont pas disponibles dans MySQL, et vice versa.
Il est donc essentiel pour les développeurs de bases de données d'être conscients de ces différences lorsqu'ils travaillent avec différents SGBDR.
Conclusion
Le SQL est un élément essentiel du paysage des bases de données, permettant aux professionnels de manipuler et d'interroger des données de manière efficace. Bien que son essence soit standardisée, il est crucial de comprendre les nuances entre différents SGBDR pour une utilisation optimale.
II. Introduction à l'Administration de Base de Données
L'administration de bases de données implique la gestion et la maintenance des bases de données pour assurer leur disponibilité, leur performance, leur intégrité et leur sécurité. Ces tâches sont essentielles pour garantir que les informations stockées soient accessibles et sécurisées.
1.1. Création d'une Base de Données
Pourquoi créer une base de données ?
- Stocker des informations structurées.
- Faciliter la récupération et la manipulation des données.
- Supporter les opérations des applications.
Syntaxe de création:
CREATE DATABASE NomBdd;
- Cette commande permet de créer une nouvelle base de données avec le nom spécifié.
- Après la création, la base de données est généralement vide, prête à accueillir des tables et d'autres objets.
1.2. Destruction Totale d'une Base de Données
Pourquoi détruire une base de données ?
- Suppression d'informations obsolètes ou inutiles.
- Réorganisation ou migration de données.
- Mais attention, cette opération est irréversible!
Syntaxe de destruction:
DROP DATABASE NomBdd;
- Cette commande supprime complètement la base de données spécifiée et toutes les données qu'elle contient.
- Il est crucial de sauvegarder toutes les données importantes avant d'utiliser cette commande.
1.3. Implications et Risques
Création d'une base de données:
- Assurez-vous de définir correctement les paramètres initiaux (taille, emplacement, etc.).
- Les coûts en ressources (stockage, mémoire, etc.) peuvent augmenter avec la taille de la base de données.
Destruction d'une base de données:
- C'est une opération irréversible.
- Une suppression accidentelle peut entraîner une perte totale de données.
- Toujours vérifier deux fois avant d'exécuter la commande
DROP DATABASE
.
1.4. Bonnes Pratiques
- Sauvegardes régulières : Toujours sauvegarder vos bases de données régulièrement et avant toute opération majeure.
- Autorisations : Seules les personnes autorisées devraient avoir le droit de créer ou de supprimer des bases de données.
- Documentation : Documentez toujours la raison de la création ou de la suppression d'une base de données.
Conclusion
L'administration de bases de données est une tâche cruciale qui nécessite une compréhension approfondie des commandes et des implications associées. La création et la destruction de bases de données doivent être effectuées avec soin et après mûre réflexion.
2.1. Introduction à la Création de Tables
Les tables sont des structures essentielles dans les bases de données relationnelles. Elles permettent de stocker les données de manière structurée. Une table est définie par ses colonnes (champs) et peut contenir plusieurs lignes (enregistrements).
2.2. Syntaxe pour la Création de Table
Pour créer une table, la commande CREATE TABLE
est utilisée suivie du nom de la table et des colonnes et leurs types de données.
Exemple de base :
CREATE TABLE Stock1 ( Pièce VARCHAR(20) NOT NULL, NbP INT, Fournisseur CHAR(20) NOT NULL, PRIMARY KEY (Pièce, Fournisseur) );
2.3. Composants d'une Définition de Table
Nom de la table : Dans cet exemple, le nom de la table est
Stock1
.Colonnes et types de données :
- Pièce : De type VARCHAR avec une longueur maximale de 20 caractères. La contrainte
NOT NULL
indique que cette colonne ne peut pas avoir de valeur nulle. - NbP : De type INT pour stocker des nombres entiers.
- Fournisseur : De type CHAR avec une longueur fixe de 20 caractères. La contrainte
NOT NULL
est également appliquée.
- Pièce : De type VARCHAR avec une longueur maximale de 20 caractères. La contrainte
Contraintes :
- PRIMARY KEY (Pièce, Fournisseur) : Cette contrainte indique que la combinaison des valeurs des colonnes
Pièce
etFournisseur
doit être unique pour chaque enregistrement. Elle aide également à accélérer les requêtes.
- PRIMARY KEY (Pièce, Fournisseur) : Cette contrainte indique que la combinaison des valeurs des colonnes
2.4. Création de Table - Exemple
Créons une table pour gérer le stock de pièces d'un fournisseur :
CREATE TABLE Stock1 ( Pièce VARCHAR(20) NOT NULL, NbP INT, Fournisseur CHAR(20) NOT NULL, PRIMARY KEY (Pièce, Fournisseur) );
Cette table, Stock1
, nous permettra de suivre combien de pièces (NbP
) nous avons pour chaque type de pièce (Pièce
) provenant d'un fournisseur spécifique (Fournisseur
).
V. Bonnes Pratiques
- Choisir les bons types de données : Cela garantit que vos données sont stockées de manière optimale et réduit les risques d'erreurs.
- Utiliser des contraintes appropriées : Elles assurent l'intégrité et la validité des données.
- Documenter vos tables : Gardez une documentation claire sur la finalité de chaque table et de chaque colonne. Cela facilite la maintenance et le développement ultérieurs.
Conclusion
La création de tables est une étape fondamentale dans la structuration d'une base de données relationnelle. Une conception judicieuse de la table garantit que les données sont stockées de manière optimale et peuvent être récupérées et manipulées efficacement.
3.1 Introduction à la Modification de Tables
Au fur et à mesure que les besoins métiers évoluent, il peut être nécessaire de modifier la structure d'une table existante. Cela pourrait inclure l'ajout de nouvelles colonnes, la modification de colonnes existantes ou la suppression de contraintes.
3.2. Modification de la Structure d'une Table
La commande ALTER TABLE
est utilisée pour effectuer diverses modifications sur une table existante.
Syntaxe générale :
ALTER TABLE nom_de_la_table [ADD (définition_attribut | Contrainte), ... ] [MODIFY (définition_attribut, ... )] [DROP CONSTRAINT nom_de_la_contrainte];
Explication :
- ADD : Ajoute une ou plusieurs nouvelles colonnes ou contraintes à la table.
- MODIFY : Modifie la définition d'une ou plusieurs colonnes existantes.
- DROP CONSTRAINT : Supprime une contrainte spécifique de la table.
3.3. Exemple de modification d'une Table
Supposons maintenant que nous voulions effectuer quelques modifications à la table Stock1
:
- Ajouter une nouvelle colonne pour le prix de chaque pièce.
- Modifier le type de données de la colonne
Fournisseur
pour qu'elle utiliseVARCHAR
au lieu deCHAR
. - Supprimer la contrainte de clé primaire existante.
Voici comment nous pourrions effectuer ces modifications (en utilisant une syntaxe similaire)
3.3.1. Ajouter une nouvelle colonne pour le prix
ALTER TABLE Stock1 ADD (Prix DECIMAL(10,2));
Cette commande ajoute une colonne Prix
avec un type de données DECIMAL
pouvant contenir des nombres avec jusqu'à 10 chiffres, dont 2 après la virgule.
3.3.2. Modifier le type de données de la colonne Fournisseur
ALTER TABLE Stock1 MODIFY (Fournisseur VARCHAR(25));
Cette commande modifie le type de données de la colonne Fournisseur
pour utiliser VARCHAR
avec une longueur maximale de 25 caractères.
3.3.3. Supprimer la contrainte de clé primaire existante
Tout d'abord, il est important de savoir le nom de la contrainte pour pouvoir la supprimer. Si vous n'avez pas nommé la contrainte lors de la création, le SGBD lui aurait donné un nom par défaut. Dans cet exemple, nous supposerons que la contrainte s'appelle PK_Stock1
.
ALTER TABLE Stock1 DROP CONSTRAINT PK_Stock1;
Après avoir effectué ces modifications, la table Stock1
aura une structure légèrement différente avec une nouvelle colonne pour le prix, une modification du type de données pour le fournisseur et sans sa contrainte de clé primaire originale.
3.3.4. Exemple en une seule opération
Voici comment vous pouvez effectuer toutes ces modifications en un seul bloc de code SQL, en utilisant la syntaxe que vous avez fournie :
ALTER TABLE Stock1 ADD (Prix DECIMAL(10,2)), MODIFY (Fournisseur VARCHAR(25)), DROP CONSTRAINT PK_Stock1;
Cette commande effectue toutes les opérations en une seule instruction : elle ajoute une colonne pour le prix, modifie le type de la colonne Fournisseur
et supprime la contrainte de clé primaire
3.4. Suppression de Tables
Pour supprimer une table et toutes ses données associées, la commande DROP TABLE
est utilisée.
Syntaxe :
DROP TABLE nom_de_la_table;
Attention : C'est une opération irréversible ! Une fois la table supprimée, toutes les données qu'elle contient sont définitivement perdues.
3.5. Implications et Risques
Modification de la structure d'une table:
- La modification d'une table peut rendre certains programmes ou requêtes incompatibles.
- La suppression de contraintes peut entraîner des problèmes d'intégrité des données.
- Ajouter ou modifier des colonnes peut nécessiter des changements dans le code ou les applications qui accèdent à cette table.
Suppression d'une table:
- Perte de données irréversible.
- Possibles dépendances avec d'autres tables ou vues, ce qui peut provoquer des erreurs ou des dysfonctionnements.
- Assurez-vous toujours de sauvegarder toutes les données importantes avant de supprimer une table.
3.6. Bonnes Pratiques
- Testez d'abord : Avant d'apporter des modifications à une table en production, testez les changements dans un environnement de développement ou de test.
- Sauvegardes régulières : Effectuez toujours des sauvegardes de vos données avant d'apporter des modifications majeures ou de supprimer des tables.
- Documentez vos changements : Gardez une trace de toutes les modifications apportées.