Séance 2 – Communication des organisations – Octobre 2006 SGBD - Approches & Principes Les limites du HTML • Contenu et contenant sont mêlés – fond et forme sur le même document • Peu d’interactivité native – besoin de javascript, CSS, DHTML,… • Pages HTML statiques – mises à jour fastidieuses qui nécessitent de réécrire le code – client FTP • Nécessite un navigateur Internet sur un ordinateur – quid de la mobilité : PDA, GSM, palm... 1ère solution : JAVASCRIPT • A ne pas confondre avec JAVA • Netscape et SUN (1995) • Intégration du code Javascript dans le code HTML • Le Javascript est exécuté par le navigateur : – langage interprété (<> compilé) • Plusieurs versions (1.0 à 1.3) • Illustration…intégration d’un code dans du HTML (plus tard) 2ème solution : les sites dynamiques ou interactifs Architecture 3 Tiers : Client - Serveur WEB - Serveur d’Application - SGBD Strate client Strate application BD Utilisateur CLIENT Strate données INTERNET Serveur WEB Serveur / service d’application SGBD Principes des sites dynamiques • Le serveur WEB (http) envoie les pages générées au format HTML et réceptionne les requêtes du client • Le serveur d’application est un logiciel qui traite les pages qui contiennent des scripts ou des balises coté serveur et assure la relation avec la SGBD. • Les données sont stockées dans une BD Avantages des sites dynamiques • Interactivité accrue avec l’internaute • Partage de l’information et traitement de l’information • Personnalisation de l’interface selon le profil de l’internaute • Fond et forme séparés • Mises à jour plus aisées Les technologies « serveur » • Les langages de scripts : PHP, ASP, JSP, Coldfusion (CFM), PERL (Scripts CGI),... • Les frameworks applicatifs : J2EE (Java), .NET • Serveurs WEB (HTTP) – – – – APACHE IIS (Internet Information Serveur) de Microsoft Domino (Lotus IBM), OS X, Sun, etc. Les technologies « serveur » • Scripts CGI (Common Gateway Interface) en Perl ou C • ASP/IIS et .NET : Microsoft • Le monde JAVA / SUN (dérivé du C++) – – – – – serveur d’application Machine Virtuelle Java sur le poste client Framework J2EE : Sun, Tomcat, Jboss, IBM Websphere, BEA,... Applets Java (côté client) Servlets (coté serveur) • ColdFusion .CFM (Allaire racheté par Macromedia) Les technologies « serveur » : PHP • • • • • • • Pesonnal Home Page - Hypertexte Preprocessor 1994 par Rasmus Lerdorf Issu du monde Libre et Open Source Moteur ZEND Engine 2.0 (applicatif) PHP 5 depuis août 2004 Une véritable alternative professionnelle On y reviendra... LAMP : puissance & simplicité adaptées pour le web • LAMP : Open Source leader sur le WEB – – – – Linux APACHE (Serveur HTTP) => près de 70 % des serveurs WEB (2004) MySQL (SGBD) PHP • PHP (01 Informatique Novembre 2003) : – près de 40 % des sites web dynamique en France – 55 % des grandes entreprises FR – 78 % des entreprises FR du CAC 40 utilisent cette technologie Rappel sur le Système d’information : SGBD : – – – – – centralisation et fiabilisation des données partage de l’information simplification de la gestion de l’information sauvegarde intégration du et au Système d’Information SGBD ? Définition... • Système de Gestion de Bases de Données • Logiciel ou application pour créer et manipuler les Bases de Données • A ne pas confondre SGBD avec « Bases de Données » Les éditeurs de SGBD • Oracle - 10i (à partir de 125 € par users) • IBM - DB2 • Microsoft - SQL Serveur 2000 / Yukon SQL Serveur 2005 (De 1 560 € à 21 000 € selon version) • Sybase - Adaptative Serveur Entreprise • Informix (éditeur racheté par IBM en 2001) • MySQL (Open Source) • PostgreSQL (Open Source) • Les autres (locales) : MS Access, Filemaker Pro, etc. Les principes des Bases de données • Base de donnés (BD) = base de stockage sous forme de tables • TABLE = ensemble des données ayant un lien logique entre elles – exemple DB « gestion du personnel » avec les tables salariés, type contrat de travail et congés • Chaque table est définie par des CHAMPS ou ATTRIBUTS • Chaque attribut a un TYPE (chaîne, entier, booléen, date,…) • ENREGISTREMENT = ligne dans une table = TUPLE Les principes des Bases de données (suite) • Requête = interrogation de la BD (requête SQL) • Jeu d’enregistrement = sous ensemble de données extraites d’une ou plusieurs tables d’une BD • Clé primaire = champ qui identifie de manière unique chaque enregistrement – exemple : le champ ID • Clé étrangère = clé primaire d’une autre table SGBDR, R pour relationnelles • Théorisées début des années 70 par Edgar. F. CODD (E.-U.)… chez IBM • IBM « System R » en 1974 (1er prototype) • Elles dominent actuellement le marché et se sont imposées face aux SGBDO Principe des SGBDR • Base de données relationnelle : BD contenant plusieurs tables qui partagent des données. Les tables sont liées entre elles. • Maintenir la cohérence des données (éviter doublon, etc.) • Souplesse dans la structure des données • Meilleure disponibilité des données Un langage pour manipuler les données : SQL • Structured Query Language (SQL) • Mis au point début des années 70 • Normalisé au niveau international (ISO 92,…) • Un langage d’interrogation des BD « proche du langage humain » ??? • Ce langage permet – d’écrire les données – de manipuler et trier des données – d’effectuer des requêtes – ... SQL dans la pratique • Création / suppression de bases – CREATE DATABASE nomdelabase – DROP DATABASE nomdelabase • Création / suppression de tables – CREATE TABLE nomdelatable (attribut 1 type 1, …, attribut N type N); • exemple : CREATE TABLE etudiant (nom varchar(20), adresse varchar(30), numero_carte int(11),); – DROP TABLE nomdelatable • Manipulation des données : interrogation et extraction – SELECT attribut 1, …, attribut N FROM table 1, …, table N WHERE prédicat; – SELECT * FROM etudiant WHERE nom=‘ toto ’; SQL dans la pratique (suite) • Le prédicat reprend – Des attributs indiqués dans la clauses SELECT – Des opérateurs de comparaison (>, <, >=, =, <>) – Des opérateurs booléens (AND, OR, NOT) • Insertion de données – INSERT INTO nomdelatable VALUES (val1, …, val N); – Ex : INSER INTO employes VALUES (‘toto’, 15000, ‘Bron’); • UPDATE / DELETE • Tri des résultats… SGBDR Open Source : MySQL • Lancer EasyPHP puis PHPMYADMIN • Création de la table master_2007 • Création de la table etudiants avec les attributs – – – – id INT NOT NULL AUTO_INCREMENT, nom varchar(50), prenom VARCHAR(50), email VARCHAR(75), • Saisir des données (onglet insérer) • Utilisation de SQL Exercice pratique • Création d’une BD : gestion_doc • Tables : – – – – document ( id_titre , nom_doc, date_pub, commentaire, ) type_doc (id_type, nom_type) Auteur (id_auteur, nom_auteur, prenom_auteur, email,) Rubrique (id_rub, nom_rub,) • Rajouter dans la table document les attributs pour lier le document à un auteur, un type de document et une rubriqe) • Insérer des données Formaliser et concevoir une base de données • Modéliser la complexité • Modèle entités - association (depuis années 1970) • Merise (Projet Français - 1978) – Modèle entité-association évolué – MERISE = Méthode d’Etude et de Réalisation Informatique de Système d’Entreprise) – Concevoir un système d’information et BD de façon standardisée et méthodique – Méthode très répandue en France Les principes du modèle entité-association • Partir d’une situation réelle • Repérer un nombre fini de données pertinentes (entités) • Établir leur « type » • Chercher les relations entre ces données Quelques définitions « entité – association » • Entité = représentation simplifiée d’un objet ou d’un concept • Entité = une population d’individus ou d’objets ayant des caractéristiques communes – Exemple d’entités : clients / articles / fournisseurs – Auteurs / articles / rubriques … • Une association = un lien entre plusieurs entités • Type d’entités = décrit les entités d’une même famille • Attribut = propriété d’une entité ou d’une association Merise = Méthode d’Étude et de Réalisation Informatique de Systèmes d’Entreprise • Analyser la situation existante • Création d’une série de modèles qui permettent de représenter tous les aspects importants – MCD : Modèle conceptuel des données – MLD : Modèle logique des données – MPD : Modèle physique de données • Implémenter la Base de données Schéma entité association (basique) Fournisseur Clients Articles Acheter Livrer Schéma entité association : Etape MCD Clients N° client Nom client Prénom Adresse … 1,n 0,n 1,n Articles Acheter Quantité C Date C 1,1 N° article Nom article Caractéristiques … Livrer Quantité L Date L Fournisseur N° fournisseur Nom fournisseur Téléphone … En pratique... Etape MCD • • • • • • • • Identifier les entités Lister les attributs des entités Ajouter les identifiants Établir les relations (et leurs attributs) Éliminer les synonymes Normer les relations Représenter graphiquement des associations Remarque : on ne tient pas compte de la forme informatique et des tables à ce stade En pratique…Etape MLD • Organisation en TABLES (unicité des tables) • Les 5 règles de conception • Clé primaire à choisir - Exemple : clients (N° client, nom client, adresse,#…) • Établir les relations entre les tables • Utilisation du MLD pour créer des tables dans un SGBD • Le MLD peut être généré par des outils En pratique…Etape MPD • Le modèle physique de données est l’implémentation particulière du MLD dans un environnement, un matériel ou un logiciel donné • Et concrètement : c’est la saisie dans une SGBD avec ses particularités… • C’est aussi une représentation graphique complète et juste des tables et de leur relation Des logiciels pour représenter les tables • Power AMC • DB Designer (Gratuit) • … Exemple (DB Designer)