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 Strate données BD INTERNET Utilisateur Serveur WEB Serveur / service d’application CLIENT 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
Création d’une BD : gestion_doc Tables : 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
Analyser la situation existante 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 Fournisseur 1,n 1,1 Clients Articles N° fournisseur Nom fournisseur Téléphone … Acheter Quantité C Date C Livrer Quantité L Date L N° client Nom client Prénom Adresse … N° article Nom article Caractéristiques …
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)