# Programmation SQL/BD

* Introduction
** Installation d'interfaces
* Les bases de données
* Quelques définitions
* Langage de définition de données
* Langage de manipulation de données
* Langage de contrôle de données
* Exemples d'applications
* Mots réservés
* Introduction
** Installation d'interfaces
* Les bases de données
* Quelques définitions
* Langage de définition de données
* Langage de manipulation de données
* Langage de contrôle de données
* Exemples d'applications
* Mots réservés
[ Modifier le sommaire ]

## Les bases de données relationnelles
### Insuffisance des fichiers

En entreprise, les applications informatiques gèrent des volumes de données très importants : des informations sur les clients, sur les produits, sur les employés, sur la paye, sur la comptabilité, sur les stocks, etc. À l'origine, ces informations étaient stockées sous forme de fichiers. Un fichier dans ce contexte désigne une structure de données qui permet un accès séquentiel ou aléatoire à une suite d'octets. En d'autres termes les opérations que permet un fichier sont la lecture et l'écriture d'octets. Ce que représentent ces octets, le fichier ne l'impose pas; un fichier peut représenter aussi bien une image qu'un extrait sonore.
Rapidement, cette structuration montre ses limites : l'utilisation du fichier nécessite que l'on se préoccupe en permanence de la manière de stocker les données dans celui-ci. Supposons que l'on veuille stocker une liste de clients, chacun avec un numéro unique. Faut-il utiliser une ligne par client ? Comment délimiter le numéro du client et le nom du client de sorte que l'on puisse les extraire du fichier ? Quelle est la taille maximale du nom du client ? Que faire si le nom du client comporte un saut de ligne ?
Le but de la base de données relationnelle est de fournir à l'utilisateur une interface qui fasse abstraction de la manière dont sont stockées ces données. La structure de base est la relation (également appelée table).
Une relation est, pour schématiser, un ensemble de n-uplets de même nature. Le fait de pouvoir structurer les données dans un ensemble offre à l'utilisateur des outils de très haut niveau pour manipuler ces données : l'intersection, l'union, la projection, la sélection. La base de données relationnelle, même si elle va utiliser des fichiers pour le stockage. Plus besoin donc de se souvenir que l'octet 23 du fichier "clients.txt" est le numéro du client. Il suffit de parcourir la table clients et de ne retenir que l'attribut client. Comme les détails du stockage et de la persistance des informations sont pris en charge par la base de données, l'utilisateur peut se concentrer sur des problèmes bien plus fondamentaux, à savoir que faire des informations.
Le langage SQL est le langage qui permet d'interroger une base de données relationnelle pour en extraire et en modifier des informations.

### Importance stratégique des bases de données

Notre société moderne est une société où l'information a une valeur marchande considérable : si une entreprise perd la liste de ses clients ou sa comptabilité, les conséquences financières peuvent être catastrophiques. La possibilité de gérer rapidement et automatiquement des commandes, le suivi de celles-ci, les stocks, la comptabilité,... permet à beaucoup d'entreprises d'augmenter considérablement leur compétitivité.

### Introduction au modèle clients/serveur

Le modèle de base est le modèle clients/serveur : on installe le Système de Gestion de Base de Données (SGBD) sur un serveur et on installe un programme client sur chacune des machines de l'entreprise. Toutes les applications travaillent simultanément sur les données qui sont centralisées sur le serveur. Les applications clientes envoient des requêtes au SGBD (en général dans le langage SQL) et ensuite mettent en forme à l'écran la réponse à ces requêtes. Les applications clientes gèrent l'interaction avec l'utilisateur et le SGBD la manipulation des données.

### Des besoins sans limites

Dans beaucoup d'entreprises, les bases de données apparaissent pour gérer une fonctionnalité très spécifique : par exemple, on veut gérer la liste des commandes et on installe une base de données et une première application interrogeant la base de données. Très rapidement, il apparaît nécessaire d'utiliser une autre application gérant une nouvelle fonctionnalité : par exemple la liste des stocks. Les deux applications ne sont pas indépendantes et vont manipuler les mêmes données. Elles vont accéder à la même base de données. Au fur et à mesure de l'évolution de l'entreprise, le nombre de fonctionnalités informatisées va augmenter jusqu'à parfois englober la totalité du fonctionnement de l'entreprise. Pour permettre une telle évolution, il faut à tout prix que la base de données initiale soit correctement structurée : les tables doivent avoir une organisation très précise. Mieux la base est organisée, plus facile sera l'évolution de celle-ci lors de l'apparition de nouvelles applications. L'analyse est la science étudiant la structuration de la base de données. Une étude minutieuse de la base est absolument nécessaire avant le développement de toute application.

## L'algèbre relationnelle

Les bases de données relationnelles tiennent leur utilité des caractéristiques suivantes :
* La base théorique sur laquelle elles reposent, l'algèbre relationnelle, est à la fois relativement simple et éprouvée, ce qui garantit des résultats stables et prévisibles.
* Le haut niveau d'abstraction qu'offre l'algèbre relationnelle permet de se concentrer sur les propriétés des données, plutôt que la manière d'accéder à celles-ci.
Ces deux caractéristiques permettent en outre aux auteurs de SGBD d'offrir des produits fiables.