TD 15 ème chapitre Bases de données



Documents pareils
Bases de Données relationnelles et leurs systèmes de Gestion

Le Langage De Description De Données(LDD)

Création et Gestion des tables

PHP 5. La base de données MySql. A. Belaïd 1

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Créer une base de données

I. MySQL : Serveur et SGBD

1/ Présentation de SQL Server :

Langage SQL : créer et interroger une base

Importer un fichier CSV

1. Base de données SQLite

I4 : Bases de Données

NF26 Data warehouse et Outils Décisionnels Printemps 2010

TP3 : Creation de tables 1 seance

Débuter avec OOo Base

MEDIAplus elearning. version 6.6

DOSSIER D'ACTIVITES SUR LE PHP N 03 Créer une base de données MySQL avec PHPMyAdmin

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

1. Installation du Module

Import de comptes (xls)

SAUVEGARDER SES DONNEES PERSONNELLES

Projet tablettes numériques Document de référence

Olivier Mondet

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Pour les débutants. langage de définition des données

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Les bases de données

PARAMETRER LA MESSAGERIE SOUS THUNDERBIRD

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

OpenOffice Base Gestionnaire de Base de Données

SOMMAIRE. Travailler avec les requêtes... 3

Modélisation et Gestion des bases de données avec mysql workbench

Vous venez d acquérir un fichier de données issues de la Base de données SIRENE. Comment utiliser votre fichier?

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Auguria_PCM Product & Combination Manager

Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online

Guide d installation du logiciel Proteus V.8 Sous Windows Vista, 7, 8

MySQL / SQL EXEMPLES

Tutoriel Drupal version 7 :

Le langage SQL (première partie) c Olivier Caron

Compte-rendu de projet de Système de gestion de base de données

CREATION WEB DYNAMIQUE

La gestion des boîtes aux lettres partagées

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Compétences Business Objects

Déploiement d'une application Visual Studio Lightswitch dans Windows Azure.

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Auto-évaluation Oracle: cours de base

Historisation des données

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

Les BASES de DONNEES dans WampServer

Import des utilisateurs depuis Sconet et STSweb - mise à jour du 04/10/06

TP Contraintes - Triggers

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

COURS WINDEV NUMERO 3

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva

CREATION D UNE EVALUATION AVEC JADE par Patrick RUER (

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Notice d'utilisation Site Internet administrable à distance

Structure fonctionnelle d un SGBD

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Bases de données élémentaires Maude Manouvrier

Application web de gestion de comptes en banques

Microsoft Application Center Test

Gestion de parc informatique - Prise en main

BIRT (Business Intelligence and Reporting Tools)

Le modèle de données

Mise à jour de version

Le langage SQL Rappels

Intégrité sémantique dans les bases de données relationnelles

ECLIPSE ET PDT (Php development tools)

Cours: Administration d'une Base de Données

CALC2QIF Conversion de données OpenOffice au format QIF

Guide d'utilisation. Mendeley

Emporter Windows XP sur une clé USB

La technologie au collège

A QUOI SERVENT LES BASES DE DONNÉES?

Les Utilisateurs dans SharePoint

Introduction au Système de Gestion de Base de Données et aux Base de Données

Base élèves : des étiquettes avec OpenOffice 2.0

Objectifs du TP : Initiation à Access

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

SQL MAP. Etude d un logiciel SQL Injection

Note : Ce tutoriel a été réalisé sur GNU/Linux (Ubuntu) avec un serveur LAMP installé en local.

Bases de données relationnelles

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Création d'un questionnaire (sondage)

Tutorial sur SQL Server 2000

Intégrité des données

Qu'est ce que le Cloud?

Cours Access 1) INTRODUCTION AU SGBD...4 2) LES TABLES...4

Vous y trouverez notamment les dernières versions Windows, MAC OS X et Linux de Thunderbird.

MODE OPERATOIRE OPENOFFICE BASE

Comment créer un nouveau compte? Pour une Borne en local on via Internet

Transcription:

TD 15 ème chapitre Bases de données Nous allons travailler dans un premier temps avec le sgbd SQLite qui, à proprement parler, ne s'installe pas vraiment. Les bases de données SQLite tiennent sur un fichier de petite taille que vous pouvez simplement copier d'un ordinateur à un autre. Nous aurons toutefois besoin d'un outil graphique pour gérer nos bases, ce sera SQLite Administrator (qui inclut le sgbd SQLite!). Pour commencer, télécharger le fichier zip ( pour windows ) de SQLite Administrator depuis le site : http://sqliteadmin.orbmu2k.de Décompresser l'archive sur le bureau, lancer sqliteadmin.exe. C'est tout. A la première utilisation, vous choisirez la langue de l'interface : français NOTA : : Click, CLDR : Click droit, DBCL : Double click Nous allons créer une base de données de gestion des élèves Création de la base : sur Base de donnée puis Nouvelle. 1. Donner le nom Gestion_eleve à votre base de type SQLite3 DB. Vous l'enregistrerez sur le bureau. La base est créée. 2. Tout comme en python, on évitera d'utiliser des caractères accentués (à,ê,etc.), des caractères spéciaux (#,-,%,etc.) ou des espace dans le noms des bases, des table et des attributs. Création de la table LYCEE : sur Table puis Nouvelle. Le nom sera LYCEE. sur Ajouter Champs : - Nom Champ : id_lycee - Type Champ : choisir dans la liste INTEGER Ne rien mettre dans Valeur défaut Cocher Clé Primaire et Auto Increment

Faites de même pour l'attribut nom : de nom nom, type VARCHAR(100) et cocher NOT NULL Puis l'attribut ville : de nom ville, type VARCHAR(100) et cocher NOT NULL Puis valider en sur Créer. La table devrait apparaître dans l'arborescence à gauche. 1. En cochant Clé Primaire et Auto Incremet pour le champs id_lycee, on a bien sur précisé qu'il s'agissait de la clé primaire de la table mais aussi que ce champs serait automatiquement incrementé à chaque nouveau tuple inséré dans la table. 2. Pour nom et ville nous avons coché NOT NULL, cela signifie que l'on ne peut insérer de tuple dans la table sans donner une valeur à ces champs. 3. En toute rigueur VARCHAR(100) signifie un conteneur pour du texte de taille variable jusqu'à 100 caractères. Sauf que SQLite ignore les tailles, mais cela est laissée par souci de compatibilité avec d'autres sgbd. On peut voir la requête SQL qui aurait permis de créer la table LYCEE en faisant un CLDR sur LYCEE puis Montrer SQL.

Création des autres tables : Table CLASSE On peut facilement créer la table avec la requête suivante : CREATE TABLE CLASSE (id_classe INTEGER PRIMARY KEY NOT NULL, nom VARCHAR(30) NOT NULL, niveau INTEGER NOT NULL) Saisir la requête précédente dans le zone Requête SQL puis sur ou appuyer sur F8. Sauf erreur de saisie la table est créée. 1. Il est possible que la table ne s'affiche pas, bien que créée. Dans ce cas, faire un CLDR sur Tables puis Rafraîchir. Table ELEVE Créer la table ELEVE avec les champs suivants (par l'assistant ou en construisant la requête): id_eleve : INTEGER PRIMARY KEY NOT NULL ; nom : VARCHAR(100) NOT NULL ; prenom : VARCHAR(100) NOT NULL ; email : VARCHAR(100) NULL ; sexe : INTEGER DEFAULT '0' NOT NULL ; adresse : VARCHAR(150) NULL ; telephone : CHAR(10) NULL (choisir VARCHAR si vous passez par l'ihm) ; id_lycee : INTEGER DEFAUT '1' NULL ; note_moyenne_bac : NUMERIC(4,2) NULL. 1. sexe a comme valeur par défaut 0 qui correspond au sexe masculin ( plus de garçons que de filles dans les filières d'ingénieurs ). 2. telephone est de type CHAR(10) car un numéro à toujours 10 chiffres. Ce serait une erreur de le stocker sous forme de nombre. 3. id_lycee correspond au lycée de terminale avec comme valeur par défaut 1 qui signifiera "lycée inconnue ". 4. note_moyenne_bac est de type NUMERIC(4,2), ce qui signifie maximum 4 chiffres dont 2 à droite de la virgule. Table CONCOURS De la façon dont il vous plaira, créer la table CONCOURS avec : id_concours : INTEGER PRIMARY KEY NOT NULL ;

nom : VARCHAR(100) NOT NULL. Table ECOLE Créer maintenant la table ECOLE avec : id_ecole : INTEGER PRIMARY KEY NOT NULL ; acronyme : VARCHAR(100) NOT NULL ; nom : VARCHAR(200) ; ville : VARCHAR(100) NOT NULL. Création de tables issues d associations Les tables qui représentent des associations sont plus complexes car elles font intervenir des clés étrangères. Entre ELEVE et CLASSE CREATE TABLE ELEVE_CLASSE ( id_eleve INTEGER NOT NULL, id_classe INTEGER NOT NULL, annee INTEGER NOT NULL, boursier INTEGER DEFAULT 0, PRIMARY KEY (id_eleve,id_classe,annee), FOREIGN KEY (id_classe) REFERENCES CLASSE ON DELETE CASCADE FOREIGN KEY (id_eleve) REFERENCES ELEVE ON DELETE CASCADE ) Expliquer les lignes foreign Key, primary key, on delete et on cascade. Entre ELEVE et CONCOURS CREATE TABLE NOTE_CONCOURS ( id_concours INTEGER NOT NULL, id_eleve INTEGER NOT NULL, moyenne NUMERIC(4,2), annee INTEGER NOT NULL, mois INTEGER NOT NULL, PRIMARY KEY(id_concours,id_eleve,annee,mois), FOREIGN KEY(id_concours) REFERENCES CONCOURS ON DELETE SET NULL, FOREIGN KEY(id_eleve) REFERENCES ELEVE ON DELETE CASCADE )

Entre ELEVE,CONCOURS et ECOLE CREATE TABLE POURSUITE ( id_eleve INTEGER NOT NULL, id_ecole INTEGER NOT NULL, id_concours INTEGER NOT NULL, annee INTEGER NOT NULL, PRIMARY KEY(id_eleve,id_ecole), FOREIGN KEY(id_eleve) REFERENCES ELEVE ON DELETE CASCADE, FOREIGN KEY(id_ecole) REFERENCES ECOLE ON DELETE SET NULL, FOREIGN KEY(id_concours) REFERENCES CONCOURS ON DELETE SET NULL ) La base de donnée est maintenant créée, on va pouvoir ajouter des données. Insertion des données dans la base Par l IHM ( Interface Homme Machine ) : Dans la zone Données (à droite), Sélectionner la table CLASSE dans la liste déroulante. sur le + pour insérer un tuple - nom : TSI1, niveau : 1 Recommencer pour les tuples : - TSI2,2 - PCSI,1 - MP,2 1. On ne saisit pas la valeur de id_classe car il est définit AUTO INCREMENT. Cette façon d'insérer des données semble simple et pratique mais elle devient très vite pénible lorsque l'on doit ajouter une grande quantité de données. Il est alors possible d'utiliser des requêtes (pré enregistré) ou une importation depuis un fichier de sauvegarde. Par requête INSERT : Dans la zone Requête SQL - Ecrire la requête INSERT permettant l'ajout des classes : PTSI, 1 PSI, 2 ATS, 2

Il est possible pour de grandes quantités de données ou pour restaurer une base "plantée" d'importer des données se trouvant dans un fichier (dump). Par importation : sur Données puis Importer des données. sur Ouvrir fichier et choisir le fichier concours.csv fournit. Préciser comme caractères de séparation le ; (cela peut être vérifié au préalable en ouvrant le fichier avec le bloc note) Répondre Oui à la question sur le contenu de la première ligne Dans la liste des tables de destination choisir la table CONCOURS Associer chaque colonne du fichier avec le bon champs dans la table de destination, comme ci-dessous Si les nouvelles données doivent remplacer complétement les données actuelles de la table, cocher Vider table avant import. sur Importer les données sur fermer quand l'importation est terminée Ajout de données simples : Refaites une importation pour remplir la table LYCEE à partir du fichier lycee.csv. Avec Excel, créer un fichier de type csv comme celui utilisé pour les concours et les lycées, on le nommera : ecole.csv. Il y aura 4 colonnes : id_ecole, acronyme, nom et ville. Ajouter y une dizaine d'école. Enfin importer les données dans la table ECOLE

Ajout de données complexes : Nous souhaitons maintenant ajouter un élève. il est nécessaire de connaître l'identifiant de son lycée (voire le cas échéant d'ajouter son lycée sans la table LYCEE). - Ecrire la requête SQL pour ajouter l'élève Zinedine Zidane venant du lycee Thiers de Marseille. Il sera nécessaire d'utiliser une sous requête pour trouver l'id_lycee Utiliser le fichier eleve.csv en remplacement du contenu actuel de la table ELEVE. Il y une limite à ce que l'on peut faire "à la main", cela devient très difficile et pénible pour ajouter un élève dans une classe dans la table ELEVE_CLASSE car il faut connaître l'id_lycee qui est stocke dans la table LYCEE. Importer le fichier eleve_classe.csv pour placer les élèves dans des classes. On suppose pour cela que les élèves et les classes ont précédemment été créé. L'insertion de données dans la table POURSUITE ne peut se faire "à la main". car elle relie 3 tables (ELEVE, CONCOURS et ECOLE). Nous utiliserons par la suite l'application gestion_eleve qui simplifie cette saisie Application Gestion_eleve Démarrez spyder ( ou autre IDLE) sur Fichier puis Nouveau projet Si c'est la première fois, il faudra designer un dossier pour les projets (choisir un dossier sur votre lecteur réseau), Nommez le projet Gestion_eleve Rendez vous dans le dossier qui vient d'être créé pour le projet et copiez y le contenu du dossier logiciel_cpge (une trentaine de fichiers) Renommez votre fichier de base de donnée en GestionEleve.sqlite Copiez ensuite votre fichier renommé dans le dossier Gestion_eleve du projet Dans spyder, ouvrez le fichier main.py (en DBCL dessus) puis exécutez le (touche F5). Le logiciel vous permet : ajouter de nouveaux élèves ; les faire évoluer vers de nouvelles classes leur faire passer des concours leur faire intégrer des écoles