COURS : ENJEUX DE LA DOCUMENTATION ET PRATIQUES DOCUMENTAIRES EC 3 : N 3 Logiciels documentaires Par : Sahbi SIDHOM MCF.Université de Lorraine & Lab. LORIA / KIWI Cours en ligne : www.loria.fr/~ssidhom/ Licence L3 cours Logiciels Documentaires 1
Objectifs de ce : A. Ce cours présente les bases nécessaires pour réaliser une communication entre : Un serveur de base de données (ex. PHPMyAdmin) et Un langage d interrogation des données (ex. MySQL) B. Des exercices sont réalisés pour créer : une base de données, des tables, des tuples des requêtes entre MySQL et les tables dans la base de générer des réponses en termes de données croisées et de gérer des contenus structurés : requêtes, données et contenus/e-documents C. Le but est de comprendre le fonctionnement interne des logiciels documentaires par les notions : base de données, données stockées et requête (formelle) d interrogation
Introduction
Qu'est-ce que MySQL? MySQL est un SGBD-R (Système de Gestion de Bases de Données Relationnelles) client-serveur. La Base de Données est une collection de données structurées, elle comporte des : Tables : des collections de données (ex. le nom, le prénom, l'adresse et le numéro de téléphone de tous les particuliers qui habitent dans le Rhône, c'est une table que nous nommerons ANNUAIRE) Tuples/n-uplets/ Enregistrements/Lignes : un tuple est un enregistrement complet dans la table (ex. un particulier : Sidhom / Sahbi / LORIA BP.239 54506 Nancy cedex / +33 6 71 90 71 59) Attributs/colonnes : les colonnes de la table dans notre exemple : (nom, prénom, adresse, numéro de téléphone)
le Système de Gestion (par son interface PhpMyAdmin) est un logiciel utilisé pour créer, insérer, modifier, supprimer, lire des enregistrements. le modèle Relationnel permet de stocker les informations dans des tables séparées et d'associer des données d'une table à une autre : si l'adresse ne soit pas stockée dans une colonne de la table ANNUAIRE, mais elle peut l être dans une table ADRESSE qui permet de décomposer l'adresse en colonnes (n de Rue, Nom de Rue, Code_Postal, Ville, Pays).
MySQL est client-serveur le serveur est une application installée sur l'ordinateur où sont stockées les données ; il attend des requêtes des clients, accède à la base pour exécuter la requête du client et lui fournir une réponse ; le client est un programme installé sur votre ordinateur qui se connecte par l'intermédiaire d'un réseau au serveur pour effectuer une requête ;
Que comporte MySQL? un serveur SQL (Structured Query Language) ; des programmes clients pour accéder au serveur (mysql, mysqldump, mysqlimport) ; des outils d'administration ; une interface de programmation pour écrire des applications.
Avantages? «très» rapide ; multi-utilisateurs ; disponible sur Internet (http://www.mysql.com) ; gratuit ; facile à utiliser : un manuel de référence est fourni ; interfaces de programmation (API) : C, Perl, PHP, Python et Java ; langage de requête : SQL (langage de requête le plus répandu) ; portabilité, MySQL fonctionne sous : unix et linux ; solaris (OS/2) ; Mac Os Xserver ; windows. open software, i.e. le code source est disponible ( bugs sont corrigés par la communauté et des nouvelles versions sont disponibles sur Internet dès leurs apparitions).
Syntaxe du langage SQL : SGBD & Gestion avec PhpMyAdmin Exemples de requête en SQL
Création : base, table Base de données : -- Base de données: `document` -- CREATE DATABASE `document` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `document`; Tables : -- Structure de la table `image` -- CREATE TABLE `image` ( `ISBN` int(11) NOT NULL, `Titre` varchar(100) NOT NULL, `Auteur` varchar(100) NOT NULL, `Annee` varchar(10) NOT NULL, `Resume` text NOT NULL, PRIMARY KEY (`ISBN`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- Structure de la table `livre` -- CREATE TABLE `livre` ( `ISBN` int(11) NOT NULL, `Titre` varchar(100) NOT NULL, `Auteur` varchar(100) NOT NULL, `Annee` varchar(10) NOT NULL, `Resume` text NOT NULL, PRIMARY KEY (`ISBN`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Insertion : tuple / n-uplet Insertion d un tuple ou n-uplet : -- Contenu de la table `image` -- INSERT INTO `image` (`ISBN`, `Titre`, `Auteur`, `Annee`, `Resume`) VALUES (1111, 'photos documentaires', 'Sahbi Sidhom', '2015', 'Logiciels documentaires'), (3333, 'documentaire sur les logiciels', 'Audrey Knauf', '2015', ' un documentaire sur les logiciels documentaires'); -- Contenu de la table `livre` -- INSERT INTO `livre` (`ISBN`, `Titre`, `Auteur`, `Annee`, `Resume`) VALUES (1111, 'logiciels documentaires', 'Sahbi Sidhom', '2015', 'Logiciels documentaires'), (2222, 'logiciels documentaires', 'Sahbi Sidhom', '2014', 'Logiciels documentaires');
Mise à jour Mise à jour d un tuple : UPDATE `image` SET `Annee` = 2014' WHERE `ISBN` =3333;
Suppression d un tuple DELETE FROM image WHERE ISBN=6666;
Requête SELECT Requête d interrogation : SELECT * FROM image ; SELECT `ISBN`, `Titre`, `Auteur` FROM `livre` ; SELECT * FROM `image` WHERE Nom = 'Sahbi Sidhom ;
Produit cartésien Entre 2 tables : SELECT * FROM livre, image ;
Jointure naturelle Entre 2 tables : SELECT * FROM livre, image WHERE image.auteur = livre.auteur ;
I. SERVEURS Wamp, EasyPhp,
Serveur : WAMP server http://www.en.wampserver.com/
Serveur : EasyPHP http://www.easyphp.org/
Plus d'informations Pour plus d'informations ou en cas de problème avec un serveur, allez sur : wampserver.com, ou EasyPHP.org Commencez par consulter : FAQ, puis le Forum
PhpMyAdmin avec EasyPHP
II. Interface de PhpMyAdmin avec Wamp, MySQL,
Interface de phpmyadmin
Fonctionnalités : créer une BDD : créer une Table :
Fonctionnalités : consulter une table
Fonctionnalités : création des attributs
Fonctionnalités : insertion de valeurs
Affichage : table dans une BDD
Interface de modification
Modifications sur un attribut
Interface d insertion
III. Langage SQL Syntaxe du langage des requêtes
Langage : SQL requête
CREATE
INSERT
SELECT
DELETE
JOINTURE