Système de gestion de base de données

Système de gestion de base de données

Introduction

Une base de données est un conteneur servant à stocker des données: des renseignements bruts tels des chiffres, des dates ou des mots, qui peuvent être retraités par des moyens informatiques en vue de produire une information; par exemple, des chiffres et des noms assemblés et triés pour former un annuaire téléphonique. Ce dispositif comporte également un logiciel moteur (le SGBD), des logiciels applicatifs, et un ensemble de règles relatives à l'accès et l'utilisation des informations.

Le système de gestion de base de données est une suite de programmes qui manipule la structure de la base de données et dirige l'accès aux données qui y sont stockées. Une base de données est composée d'une collection de fichiers; le seul moyen d'accéder aux données est par le SGBD (qui sert alors d'intermédiaire entre la base de données et ses usagers). Celui-ci reçoit des demandes de manipulation du contenu et effectue les opérations nécessaires sur les fichiers. Il cache la complexité des opérations et offre une vue synthétique sur le contenu.

Il existe une multitude de moteur BD et chacun comporte ses particularités, mais il est admis que le langage SQL rejoint la grande majorité. Nous pouvons voir la base de données comme un ensemble d’objets (tables, vues, procédures stockées, fonctions, déclencheurs, indexes, contraintes) travaillant ensemble pour manipuler et présenter les données.

 

Modèle relationnel

Le modèle de données relationnel est fondé sur la notion de relation : une matrice qui contient un ensemble de groupes de valeurs stockés dans les enregistrements d'une base de données. Chaque relation est stockée dans une table de la base de données.

Selon le modèle relationnel, il peut y avoir plusieurs relations connexes. Dans une base de données relationnelle, chaque enregistrement d'une table contient un groupe d'informations relatives à un sujet et les différents sujets sont connexes. Les liens existants entre les informations sont stockés dans les champs des enregistrements sous forme de clé primaire et clé étrangère.

Les opérations d'algèbre relationnelle telles l'intersection, la jointure ou le produit cartésien sont utilisées pour faire des rapprochements entre les enregistrements et créer de nouvelles relations à partir des relations enregistrées dans la base de données.

Une composante est une clé primaire lorsque, par nature, la valeur de cette composante est différente pour chaque enregistrement, et que, pour une valeur donnée, il n'existe qu'un seul enregistrement dans toute la relation dont la composante a cette valeur (absence de redondance).

Une composante est une clé étrangère lorsque les valeurs de cette composante sont des références à une clé primaire. Il y a une situation d'intégrité référentielle lorsqu'à chaque valeur de la clé étrangère A correspond une valeur de la clé primaire référencée B.

Le schéma, c'est-à-dire le plan des relations, des clés et des références est créé par un ingénieur. Il vise à minimiser la redondance, et maximiser la cohérence. Les formes normales sont des modèles d'organisation du contenu des bases de données relationnelles.

Schéma des relations d'une requete SQL - Excel.Québec

 

Normalisation

Dans une base de données relationnelle, une forme normale désigne un type de relation particulier entre les entités. Le but essentiel de la normalisation est d'éviter les anomalies transactionnelles pouvant découler d'une mauvaise modélisation des données et ainsi éviter un certain nombre de problèmes potentiels tels les anomalies de lecture, les anomalies d'écriture, la redondance des données et la contre-performance.

La normalisation des modèles de données permet de vérifier la robustesse de leur conception pour améliorer la modélisation (et donc obtenir une meilleure représentation) et faciliter la mémorisation des données en évitant la redondance et les problèmes sous-jacents de mises à jour ou de cohérence. La normalisation s’applique à toutes les entités et aux relations porteuses de propriétés.

Les formes normales s'emboîtent les unes dans les autres, tant et si bien que le respect d'une forme normale de niveau supérieur implique le respect des formes normales des niveaux inférieurs. Dans le modèle relationnel de type OLTP, il existe huit formes normales, les trois premières étant les plus connues et utilisées :

  • Première forme normale
    • Toutes les données sont atomiques. Les valeurs ne peuvent pas être divisées en plusieurs sous-valeurs dépendant également individuellement de la clé primaire.
  • Deuxième forme normale
    • Un attribut non-clé ne dépend pas d'une partie de la clé primaire (composée d'un seul champ).
  • Troisième forme normale
    • Un attribut non-clé ne dépend pas de toutes les parties de la clé primaire (composée de plusieurs champs).

La forme normale vient après la simple validité d'un modèle relationnel, c'est-à-dire que les valeurs des différents attributs soient bien en dépendance fonctionnelle avec la clé primaire (complètement déterminés par la clé primaire).

Normalisation d'une requete SQL - Excel.Québec

 

Langage

SQL (Structured Query Language) est un langage informatique normalisé servant à exploiter des bases de données relationnelles. La partie langage de manipulation des données de SQL permet de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de données relationnelles. Outre le langage de manipulation des données, la partie langage de définition des données permet de créer et de modifier l'organisation des données dans la base de données, la partie langage de contrôle de transaction permet de commencer et de terminer des transactions, et la partie langage de contrôle des données permet d'autoriser ou d'interdire l'accès à certaines données à certaines personnes.

C'est un langage déclaratif, c'est-à-dire qu'il permet de décrire le résultat escompté, sans décrire la manière de l'obtenir. Les SGBD sont équipés d'optimiseurs de requêtes - des mécanismes qui déterminent automatiquement la manière optimale d'effectuer les opérations, notamment par une estimation de la complexité algorithmique. Celle-ci est fondée sur des statistiques récoltées à partir des données contenues dans la base de données (nombre d'enregistrements, nombre de valeurs distinctes dans une colonne, etc.).

Les instructions de manipulation du contenu de la base de données commencent par les mots clés SELECT, UPDATE, INSERT ou DELETE qui correspondent respectivement aux opérations de recherche de contenu, modification, ajout et suppression. Divers mots clés tels que FROM, JOIN et GROUP permettent d'indiquer les opérations d'algèbre relationnelle à effectuer en vue d'obtenir le contenu à manipuler.

Les instructions de manipulation des métadonnées - description de la structure, l'organisation et les caractéristiques de la base de données - commencent avec les mots clés CREATE, ALTER ou DROP qui correspondent aux opérations d'ajouter, modifier ou supprimer une métadonnée. Ces mots clés sont immédiatement suivis du type de métadonnée à manipuler - TABLE, VIEW, INDEX, ...

Les mots clés GRANT et REVOKE permettent d'autoriser des opérations à certaines personnes, d'ajouter ou de supprimer des autorisations. Tandis que les mots clés COMMIT et ROLLBACK permettent de confirmer ou annuler l'exécution de transactions.

La syntaxe de SQL fait l'objet de la norme ISO 9075. Cette norme laisse la possibilité aux producteurs de SGBD d'y ajouter des instructions spécifiques et non normalisées. Ces différences font qu'un code source écrit sans précautions pour un SGBD donné ne fonctionnera pas forcément avec un autre SGBD.

 

Assistant

De par sa nature, le langage SQL peut être difficile à utiliser pour certains. Les SGBD offrent des outils de création et d’édition de requêtes. Ces outils possèdent une interface graphique permettant, à l’aide de clics et de glisser-déplacer, de créer des requêtes simples.

Assistant de requête SQL - Excel.Québec

 

Langages apparentés

Créé par Extension de SQL, Transact-SQL est un langage de programmation des SGBD SQL Adaptive Server Anywhere (ASA), SQL Adaptive Server Enterprise (ASE), Sybase IQ de Sybase ainsi que SQL Server de Microsoft.

PL/SQL est un langage de programmation du SGBD Oracle Database de Oracle Corporation. PL/pgSQL est un langage de programmation du SGBD PostgreSQL. Ce sont des langages de programmation procédurale dans lesquels peuvent être ajoutées des instructions en langage SQL. Le code source écrit dans ce type de langage est compilé par le SGBD, puis enregistré dans la base de données et exécuté au besoin.

OQL est un langage similaire à SQL, pour les demandes des opérations aux bases de données orientées objet et obtenir les résultats sous forme d'objets. Le langage est normalisé par le Object Data Management Group - un consortium d'industriels informatiques qui a cessé toute activité en 2001.

Parmi les autres langages de requêtes, citons les ancêtres de SQL comme QUEL (QUery English Language) ou SEQUEL (Structured English QUEry Language) ou encore le langage QBE (Query By Example). Cependant le langage QBE, très différent de SQL, est encore en vigueur dans le SGBDR de type « fichier » qu'est Paradox (Ansa Software/Borland/Corel).

 

Null et la logique ternaire

Le mot-clé Null fut introduit dans SQL pour exprimer les informations manquantes dans le modèle relationnel. L'introduction de Null, avec True et False est le fondement de la logique ternaire. Null n'a pas de valeur (et n'est membre d'aucun type de donnée), c'est un mot-clé réservé, indiquant qu'une information est manquante. Par conséquent, la comparaison avec Null, même avec Null lui-même, ne peut ni être True ni être False, elle est obligatoirement inconnue (Unknown). En effet, Null ne peut pas être considéré égal à Null, puisque les deux informations manquantes, que ces deux Null distincts représentent, peuvent s'avérer différentes. On dit généralement que NULL est un « marqueur ».

 

Pilotes

ODBC (Open Database Connectivity) est un logiciel middleware qui permet à une application informatique, par un procédé unique, de manipuler plusieurs bases de données qui sont mises à disposition par des systèmes de gestion de bases de données (SGBD) ayant chacun un procédé propre.

ODBC comporte un registre des bases de données (sources de données) disponibles depuis l'ordinateur de l'usager. Une interface graphique permet à l'usager d'ajouter des bases de données au registre.

Une interface de programmation permet aux applications informatiques de l'usager de manipuler les différentes bases de données inscrites dans le registre. L'utilisation de l'interface de programmation permet à une application de manipuler les bases de données mises à disposition par l'intermédiaire de la plupart des systèmes de gestion de base de données (SGBD) du marché.

Pour chaque SGBD, un pilote informatique permet de manipuler les bases de données en utilisant l'interface de programmation propre au SGBD. Lorsqu'une demande de manipulation est faite par une application informatique, cette demande est transmise au pilote informatique correspondant. Le nom du pilote informatique ainsi que d'autres informations se trouvent dans le registre des sources de données.

Le logiciel ODBC de Microsoft est fourni avec les pilotes pour les SGBD Access, FoxPro et SQL Server, du même auteur. De nombreux éditeurs de SGBD (Oracle, IBM, Teradata, MySQL,...) fournissent les pilotes pour leurs produits.

 

Connexion

Vous pouvez vous connecter à une source de données en utilisant le pilote du SGBD lorsque celui-ci est installé.

Connexion pour requete SQL - Excel.Québec

 

Ou à l’aide du pilote ODBC. Il faut cependant avoir créé une entrée dans son registre qui contient le nom du serveur et la base de données.

Connexion ODBC pour requete SQL - Excel.Québec

 

Déclencheurs

Le déclencheur constitue un code stocké qui s'exécute après (AFTER) ou à la place (INSTEAD OF) d'une action particulière (insertion, modification, suppression) sur une table ou vue. Il est possible de coder autant de déclencheurs AFTER qu'on le souhaite sur une même action (INSERT, UPDATE ou DELETE) d'une même table ou vue. En cas de pluralité de déclencheurs sur une même action d'une même table, l'ordre des déclencheurs est arbitraire, sauf pour les trois premiers que l'on peut imposer. Les déclencheurs INSTEAD OF doivent être uniques par événement/table.

 

Procédures stockées

Les requêtes envoyées à un serveur SQL font l'objet d'une 'analyse syntaxique' puis d'une interprétation avant d'être exécutées. Ces étapes sont très lourdes si l'on envoie plusieurs requêtes complexes.

Les procédures stockées répondent à ce problème : une requête n'est envoyée qu'une unique fois sur le réseau puis analysée, interprétée et stockée sur le serveur sous forme exécutable (précompilée). Pour qu'elle soit exécutée, le client n'a qu'à envoyer une requête comportant le nom de la procédure stockée.

On peut ainsi passer des paramètres à une procédure stockée lors de son appel, et recevoir le résultat de ses opérations comme celui de toute requête SQL.

 

Fonctions

Le but d'une fonction est avant tout d'être utilisé au sein d'une requête.

Ces fonctions sont de trois types :

- Scalaire : Plusieurs instructions renvoient alors une valeur de type simple.

- Table à instructions multiples : plusieurs instructions renvoient alors une table.

- Table en-ligne (vue paramétrée) : une instruction de type SELECT renvoie une table.

Il existe cependant des restrictions quant aux fonctionnalités utilisables dans le corps d'une fonction.

 

Versions gratuites

La plupart des SGDB offrent une version gratuite qui possèdent les fonctionnalités de base.

  • PostgreSQL,
  • MySQL,
  • Firebird,
  • SQL Server Express,
  • SQLite,
  • Oracle SQL Developer.

 

Intégration avec Excel

Un jeu de résultat étant essentiellement une grille de données, l’intégration de celui-ci sur une feuille Excel est aisée. En utilisant la fonctionnalité sur les données externes, vous pouvez assigner le résultat d’une requête à un tableau.

Emplacement pour les requetes SQL dans Excel - Excel.Québec

 

L’interface de l’assistant diffère selon la connexion utilisée, mais, sauf pour certains paramètres, la connexion et le résultat final est le même. Une fois le nom du serveur ou la source de données, la table ou la vue ou la requête choisie, le jeu de données est placé sur la feuille sous forme de tableau.

 

Assistant SQL Server

Assistant SQL Server pour les requetes SQL dans Excel - Excel.Québec

Assistant SQL Server pour les requetes SQL dans Excel - Excel.Québec

Assistant SQL Server pour les requetes SQL dans Excel - Excel.Québec

 

Assistant ODBC

Assistant ODBC pour les requetes SQL dans Excel - Excel.Québec

Assistant ODBC pour les requetes SQL dans Excel - Excel.Québec

Assistant ODBC pour les requetes SQL dans Excel - Excel.Québec

Assistant ODBC pour les requetes SQL dans Excel - Excel.Québec

Assistant ODBC pour les requetes SQL dans Excel - Excel.Québec