Classes préparatoires La Salle HEI Année scolaire 2015/2016 Base de Données 2 APPLICATION AUX BASES DE DONNEES Beaucoup de SGBD existent, afin de minimiser les manipulations de fichiers, nous utiliserons SQLite ( en version 3 ) : SGBD gratuit, téléchargeable sur Internet et d’installation simplifiée. Comme interface, on choisit SQLitestudio . Une table ( d’une base de donnée ) est un ensemble (de données) semblable à une relation, mais acceptant dans certains cas ( résultat d’une requête ) les doublons des n-uplets. Les n-uplets d’une table sont dits : enregistrements de la table, les attributs sont dits aussi : champs. Les champs d’une base de données sont typés : entiers, flottants , chaine de caractères , … Eventuellement on limite ces types : entiers compris entre 0 et 999 … On parlera alors du domaine du champ. Souvent une clé est choisie, on dit qu’elle est primaire. Une clé est dite étrangère lorsqu’elle est clé primaire d’une autre table. Afin d’extraire des données d’une base, l’algèbre relationnelle est appliquée aux tables. Chaque table peut se visualiser par un tableau. Il est courant de schématiser une table. Nom de la table Attribut 1 Attribut 2 Attribut 3 … Attribut n Table1 Attribut 1 Attribut 2 Attribut 3 … Attribut n La clé primaire est visualisée sur le schéma par un soulignement. Visualisation d’une clé étrangère Table2 Attribut 1 Attribut 2 Attribut 3 … Attribut p LANGAGE DES SGBD ; SQL Chaque SGBD dispose d’un langage, par exemple : SQL ( Structured Query Language ). Ces langages permettent d’interroger les bases de données mais aussi de les gérer. 1 Classes préparatoires La Salle HEI Année scolaire 2015/2016 Ce sont des langages de type LDD ( Langage de Définition des Données ) , LMD ( Langage de Modification des Données ) et LCD ( Langage de Contrôle des Données). La casse des caractères n’est pas significative en SQL : Select équivaut à select équivaut à SELECT , etc… Pour l’usage de la suite, on utilisera la base "baseEcole", que l’on manipule à l’aide de l’interface SQLiteStudio. En particulier , on utilise la table tEleves comportant 6 champs. La clé primaire est le champ : idE de type entier. SQL comme langage de modification des donné es Partie 1 Dans cette première partie, les commandes envisagées concernent l’extraction de données. Etant donnée une base de données de tables : T1 , T2 , …. On crée une nouvelle table par : Select * from T1 : c’est une table virtuelle identique à la table T1 . 2 Classes préparatoires La Salle HEI Année scolaire 2015/2016 Contrairement aux tables initiales d’une base de données, on crée des tables virtuelles que l’on pourra conserver ou non. A l’aide de ce type de commande, on peut exploiter les opérations ensemblistes. La projection Données : une table T ( ch1 , ch2 , …) où ch1 est la clé primaire Select chj, .. chk from T table virtuelle de champ chj , …chk. Remarque : si le champ ch1 n’est plus dans la sélection il est possible qu’il y ait des doublons. Exemple : ici plusieurs enregistrements sont identiques. Le mot distinct permet d’éviter les doublons : Select distinct chj, .. chk from T La sélection Données : une table T ( ch1 , ch2 , …) où ch1 est la clé primaire ; P un prédicat sur certains champs. Select * from T where P table virtuelle ne contenant que les enregistrements « sélectionnés » par le prédicat. Exemple : Forme des prédicats : Une telle expression peut contenir : des opérateurs logiques : AND , OR , NOT un opérateur de comparaison : < , > , <= , >= , = un opérateur de comparaison au contenu d’une liste de valeurs : IN ( syntaxe : IN ( val1, val2,..,valP ) ) 3 Classes préparatoires La Salle HEI Année scolaire 2014/2015 un test existentiel : EXIST ( voir sous requêtes ) un test d’unicité : UNIQUE ( voir sous requêtes ) pour les chaines de caractères , un filtre : LIKE , avec éventuellement des caractères jockers : _ ( remplace n’importe quel caractère ) et % ( remplace n’importe quelle chaine de caractères y compris la chaine nulle ) un test d’indétermination : IS NULL ou IS Not NULL 4