# Introduction aux bases de données avec BASE/Les tables

Nous avons la possibilité de créer les tables de deux façons différentes.
Il nous permet de créer rapidement une table en utilisant des modèles prédéfinis.
Il nous permet de créer une table plus librement

## Création d'une table avec l'aide assistant

Nous avons la possibilité entre deux catégories : Professionnel ( Contacts, Fournisseurs, Livraisons ect) et Personnel ( Plantes, Comptes, Collection ect )
1 - Sélectionnez les champs voulus, ou tout les champs :
2 - Modifiez , si nécessaire , les critères des champs :
3 - Sélection de la clé primaire. (c'est une contrainte d'unicité qui permet d’identifier de manière unique un enregistrement dans une table)
4 - Donnez un nom à votre table et sélectionnez "insérer les données immédiatement" et Terminer

## Création des tables

( La table a une structure lignes / colonnes identique à celle des feuilles de calcul d’un tableur. Chaque ligne d’une table s’appelle un enregistrement. Chaque colonne d’une table s’appelle un attribut. )
* Création de la table Assistants :
Entrez les noms des champs et les types de champs (en définissant la clé primaire par un clic droit à gauche du champ)
Puis remplissez là :
* Création de la table Clients :
* Création de la table Lots :
* Création de la table Commandes :

### Nomenclature

Les noms des objets doivent être les plus explicites et expressifs possible. Ne pas utiliser ni espaces ni caractères accentués, cela pose des problèmes d’écriture pour la programmation Visual Basic et de portage vers d'autres systèmes de gestion de bases de données anglophiles.

### Identification

On devrait pouvoir identifier rapidement le type de chaque objet (si c’est une table, un formulaire, etc.). Ex ==> tPersonnes pour la table des personnes (une autre convention est tout simplement personnes).
On devrait pouvoir identifier rapidement le parent (ou conteneur) de chaque objet (champ, ...). Ex ==> perNom, perPrenom, … pour la table des personnes (une autre convention est tout simplement personnes.nom et personnes.prenom).

### Publication

Une fois la convention définie et acceptée par toute l'équipe de développement, il faut impérativement la rendre publique (charte, blog, wiki, …) et mettre en œuvre des contrôles réguliers sur le respect de la convention.
Un à plusieurs champs définissent une table, ces champs doivent être au minimum nommés et typés mais d'autres propriétés sont en général disponibles pour affiner la précision de la conception de la table.

### Nommage d'un champ

Le nom du champ doit identifier la table dont il est issu. Cela pour éviter des confusions entre deux champs qui porteraient le même nom, par exemple "Nom" dans la table personnes et rendezvous sera nommé respectivement perNom et renNom ou personnes.nom et rendezvous.nom

### Propriétés d’un champ

Selon le type de données choisies, différentes propriétés sont proposées : type et taille du champs, format, saisie requise, valeur par défaut, etc.

## Liaisons

Les liens entre les tables sont la particularité essentielle des bases de données relationnelles, les liens existent sous la forme de clés primaires, clés étrangères, index secondaires et parfois de contraintes.

### Clé primaire

Permet d’identifier un et un seul enregistrement ==> Ex : ID pour une personne (personne.ID)

### Index

Si la clé primaire est en général un identifiant (ID), il est parfois nécessaire de définir un autre index par un ou plusieurs champs pour obtenir une autre unicité de l’enregistrement ==> Ex : le nom et le prénom pour une personne

### Relations

Pour relier 2 tables celles-ci doivent impérativement contenir au moins un champ commun et de même type (les noms peuvent être différents)
* l’un de ces deux champs doit être une clé primaire ==> taches.ID, …
* l'autre champ peut être une clé étrangère ==> rendezvous.idtache, …
* ici, les relations BASE sont de type un à un ou un à plusieurs ==> une personne ou une tâche peut avoir plusieurs rendez-vous, …

### Intégrité référentielle

Cette intégrité permet de vérifier la présence d'une donnée liée avant l'insertion ou la mise à jour de nouvelles données; permet aussi de mettre à jour ou de supprimer des enregistrements en cascade. Exemple 1 : si on ajoute une personne à un rendez-vous, l'intégrité référentielle vérifiera la présence de la personne dans la table des personnes. Exemple 2 : si on supprime une tâche, il n’est plus nécessaire de conserver la liste de ses rendez-vous. Au lieu de supprimer les différents enregistrements liés à ses rendez-vous manuellement, la suppression de la tâche dans la table des tâches entraîne automatiquement la suppression de la liste de ses rendez-vous dans la table des rendez-vous.
| Les différentes étapes de la conception d'une base de données | Les requêtes |