« Programmation SQL/Exemples » : différence entre les versions

Contenu supprimé Contenu ajouté
Alq666 (discussion | contributions)
Ligne 1 :
{{Programmation SQL}}
== Exemple d'applications ==
=== UnUne forumbibliothèque de discussiond'images ===
Nous allons construire une bibliothèque d'images qui permet à plusieurs utilisateurs de partager des images et de les annoter en associant à chaque image, un ou plusieurs mot-clés. Le dialecte SQL utilisé dans cette exemple est celui de [http://www.postgresql.org PostgreSQL], pour des raisons de simplicité. Les types de données varient d'un SGBD à l'autre mais les concepts resteront les mêmes.
 
==== UnModèle livrede d'ordonnées ====
Créons tout d'abord une représentation d'un utilisateur.
create table utilisateur
(
sid serial primary key not null,
prenom varchar(256) not null,
nom varchar(256) not null,
email varchar(256) not null
);
<tt>sid</tt> est un identifiant dont la particularité est d'être unique et strictement monotone grâce au fait qu'il est basé sur une <tt>séquence</tt> qui possède les mêmes propriétés. Une séquence est une fonction strictement monotone qui renvoie une liste d'entiers distincts à chaque fois qu'elle est appelée. <tt>sid</tt> se prête donc particulièrement à une utilisation comme clé primaire. Utiliser des clés primaires arbitraires, c'est-à-dire créer un identifiant spécifiquement à cet usage, plutôt que d'utiliser des attributs uniques existants (comme dans ce cas, l'adresse email) facilite les jointures.
 
Pour s'assurer de l'unicité de l'adresse email dans cette table, ajoutons une contrainte d'unicité sur l'attribut <tt>email</tt>
 
alter table utilisateur add constraint email_unique unique(email);
<gallery>
'''''===Une bibliothèque==='''''</gallery>