École de bibliothéconomie et des sciences de l’information SCI6306 Bases de données documentaires Cours 1 Introduction Faculté des arts et des sciences 2 septembre 2016 © Christine Dufour, 2016 1 / 33 2 septembre 2016 SCI6306 2 / 33 Au programme aujourd’hui Présentation du plan de cours Introduction Principes généraux des systèmes de gestion de bases de données (SGBD) Historique et survol des principaux modèles de bases de données Deux principaux modèles de SGBD - Ressemblances et différences (Rappel SCI6052) Modèle textuel Modèle relationnel Introduction aux SGBD relationnels 2 septembre 2016 SCI6306 Plan de cours Description du cours Objectifs du cours Méthodes pédagogiques Calendrier des activités Évaluation Politiques Ressources Site Web du cours <http://cours.ebsi.umontreal.ca/sci6306> Modes de communication 3 / 33 2 septembre 2016 SCI6306 4 / 33 Systèmes de gestion de bases de données (SGBD) Définition Un système de gestion des bases de données (SGBD) est la composante logicielle la plus importante d’un système de base de données Système de base de données : système informatique servant à maintenir des informations et à les rendre disponibles à la demande; possède quatre composantes : Les données Le matériel Le logiciel Les utilisateurs Le SGBD prend en charge les requêtes pour accéder à la base de données, pour y faire des ajouts, des suppressions, des mises à jour, etc. 2 septembre 2016 SCI6306 5 / 33 Systèmes de gestion de bases de données (SGBD) Objectifs Offrir des mécanismes pour S’assurer de la cohérence des données Assurer la sécurité et le partage des données Assurer l’indépendance des données (par rapport au matériel et au logiciel) Permettre d’exploiter les liens entre les données Obtenir une bonne performance (vitesse et gestion d’espace) 2 septembre 2016 SCI6306 6 / 33 Systèmes de gestion de bases de données (SGBD) Classes d’utilisateurs Utilisateurs finaux Professionnel de l’information Interagissent avec la base de données principalement pour l’interroger et imprimer des rapports. Tout dépendant leur niveau de connaissance du langage d’interrogation, ils peuvent soit utiliser des requêtes prédéfinies ou en formuler eux-mêmes. Administrateurs de base de données (DBA) Assurent la gestion technique nécessaire pour implémenter les SGBD : définition de la structure conceptuelle et physique, définitions des règles de sécurité, interaction avec les utilisateurs finaux, supervision des performances, etc. Programmeurs d’applications Programment des applications pour interagir avec la base de données (par exemple des pages ASP pour mettre une base de données en ligne). 2 septembre 2016 SCI6306 7 / 33 Systèmes de gestion de bases de données (SGBD) Architecture des syst. de base de données Trois niveaux à prendre en considération dans la définition des données Niveau interne (vue physique) : niveau où les données sont enregistrées Niveau externe (vue d’un utilisateur particulier) : niveau où les utilisateurs voient les données Niveau conceptuel (vue commune à tous les utilisateurs) : niveau intermédiaire où les données sont organisées dans le logiciel 2 septembre 2016 SCI6306 8 / 33 Systèmes de gestion de bases de données (SGBD) Origine des SGBD Intrinsèquement liés aux langages de programmation Mise en commun des traitements liés à la gestion des données Encapsulation dans des « blocs » (sous-routines, bibliothèques de fonctions, etc.) Mise à disposition comme primitives Mais les BD évoluent comme entités indépendantes des langages Tout SGBD est basé sur un modèle de données, constitué de Une façon de structurer les données Des opérations pour agir sur les données © Yves Marcoux 2007 2 septembre 2016 SCI6306 9 / 33 SGBD / Modèles & historique Modèle textuel (fichier plat) Données organisées en une seule table, chaque ligne représente un enregistrement; chaque colonne, un champ Aucune relation entre les enregistrements Particulièrement bien adapté aux données textuelles, c'està-dire composées surtout de phrases ou de mots Ex. DB/TextWorks, TEXTO, Gesbib, Inmagic Plus, CDS/ISIS et EDIBASE La plupart des bases de données commerciales accessibles en ligne sur des serveurs sont gérées par des SGBD textuels © Yves Marcoux 2007 2 septembre 2016 SCI6306 10 / 33 SGBD / Modèles & historique Modèle hiérarchique Défini par des produits et non sur un modèle abstrait Produit le plus connu : Information management system (IMS) de IBM (1968) Utilise des pointeurs (à sens unique) Amène à des requêtes à saveur procédurale plutôt que déclarative (comment aller chercher les données plutôt que quoi aller chercher) 2 septembre 2016 SCI6306 11 / 33 SGBD / Modèles & historique Modèle réseau Langage de programmation COBOL Défini en 1960 par CODASYL (Conference on DAta SYstems and Languages) Modèle défini dans un rapport du Data Base Task Group de CODASYL (1971) Produit le plus connu : Integrated Database Management System (IDMS) de Computer Associates Pointeurs bidirectionnels © Yves Marcoux 2007 2 septembre 2016 SCI6306 12 / 33 SGBD / Modèles & historique Modèles hiérarchique et réseau Indépendance limitée des données par rapport aux applications et aux technologies Dépassés par le relationnel à partir des années 1980 Plus de développement de nouvelles applications selon ces modèles © Yves Marcoux 2007 2 septembre 2016 SCI6306 13 / 33 SGBD / Modèles & historique Modèle relationnel [1/8] Défini formellement (mathématiquement) avant toute implantation Codd † 2004 (1970) Encore le plus utilisé actuellement Beaucoup de SIGB et autres applications documentaires sont construites sur des SGBD relationnels Très présent aussi au niveau des systèmes d’information Web (quoiqu’il ne soit pas le seul!) Adaptation de © Yves Marcoux 2007 2 septembre 2016 SCI6306 14 / 33 SGBD / Modèles & historique Rappel SCI6052 Modèle relationnel [2/8] Petite pointure = SGBDR personnels Des BD relativement petites, pour une personne ou un groupe restreint Un volume des données et/ou d’accès réduit Des situations où la performance n’est pas un facteur critique Ex. : Access, FileMaker Pro, MySQL Grande pointure = SGBDR corporatifs Haute performance Habituellement sur un serveur dédié Permet l’intégration de toutes les BD d’une organisation Rôle du DBA très important Ex. : Oracle, SQL Server 2 septembre 2016 SCI6306 15 / 33 SGBD / Modèles & historique Rappel SCI6052 Modèle relationnel [3/8] Modèles relationnel et textuel : Principales ressemblances SGBD textuel SGBD relationnel Par ex. DB/TextWorks Par ex. Access et MySQL Type de « contenants » d’information BD créée avec le logiciel BD créée avec le logiciel Recherche de fichiers non non Recherche de fiches toujours toujours Structuration en champs toujours toujours Cellules : données Colonnes : champs Lignes : fiches (ou enregistrements) Unité de base : Table(s) de données 2 septembre 2016 SCI6306 16 / 33 SGBD / Modèles & historique Rappel SCI6052 Modèle relationnel [4/8] Modèles textuel et relationnel : Différences au niveau de la structure [1/2] Modèle textuel Modèle relationnel Table ARTISTE nono_cours*local nom genretitre musical Table ARTISTE nono_cours*local nom genretitre musical Plusieurs tables de données possibles Table PIECE nono_cours*local titre duréetitre Permet de représenter plus efficacement des réalités complexes Table ALBUM nono_cours*local titre anneetitre Une seule table de données 2 septembre 2016 SCI6306 17 / 33 SBGD / Modèles & historique Rappel SCI6052 Modèle relationnel [5/8] Modèles textuel et relationnel : Différences au niveau de la structure [2/2] Modèle textuel Modèle relationnel NO_ART 1 NOM NOM Robert Charlebois GENRE MUSICAL Robert Charlebois NO_ART •Pop •Rock Occurrences multiples possibles : 0, 1 ou plusieurs valeurs pour un champ dans un enregistrement Occurrences multiples impossibles : une et une seule valeur par champ pour un enregistrement GENRE MUSICAL 1 Pop 1 Rock Occurrences multiples recréées par des requêtes reliant deux tables 2 septembre 2016 SCI6306 18 / 33 SGBD / Modèles & historique Rappel SCI6052 Modèle relationnel [6/8] Modèles textuel et relationnel : Différences au niveau de la recherche Textuel : DbTextWorks Relationnel : MySQL Recherche indexée toujours facultatif Visualisation de l'index oui non Antidictionnaire un par base, modifiable (applicabilité par champ) non Autres critères sur métadonnées non non Signes diacritiques ignorés facultatif facultatif Opérateurs booléens oui oui Troncature oui oui oui (dans l’ordre ou non) non (pas de manière simple) limités oui Opérateurs de distance Autres opérateurs (e.g. mathématiques) 2 septembre 2016 SCI6306 19 / 33 SGBD / Modèles & historique Rappel SCI6052 Modèle relationnel [7/8] Modèles textuel et relationnel : En résumé SGBD textuel SGBD relationnel Par ex. DB/TextWorks Par ex. MySQL Nombre de table de données Une Une ou plus Occurrences multiples Oui Non Possibilité d'avoir 0 occurrence dans un champ Oui Types de données Plus limités Plus riches et plus forts Langage d'interrogation Plus limité globalement Plus riche (SQL) Mais présente plus d’opérateurs pour les données textuelles Sauf pour certains aspects du traitement des données textuelles Adaptation de © Yves Marcoux 2007 Les occurrences multiples sont recréées, à la demande, par des requêtes Non La valeur NULL est utilisée pour « simuler » l'absence d'occurrence 2 septembre 2016 SCI6306 SGBD / Modèles & historique Modèle relationnel [8/8] Montre des limites eu égard à l'évolution du matériel informatique (surtout réseau) des exigences des interfaces-utilisateurs des applications conception par ordinateur (CAO) multimédia des langages de programmation de la réseautique (systèmes distribués à grande échelle) Adaptation de © Yves Marcoux 2007 20 / 33 2 septembre 2016 SCI6306 21 / 33 SGBD / Modèles & historique Modèle hypertextuel [1/3] Vannevar Bush, à l'origine de l'idée de l'hypertexte ("As we may think", 1945) Pour résoudre les problèmes liés à l'explosion documentaire Machine (MEMEX) pouvant ranger et rendre accessible tous les documents Collection de documents sur microfilm pouvant être projetés sur écran et pouvant être additionnés d'images Possibilité de localiser les documents Capacité d'inclure des pistes associatives entre les documents 2 septembre 2016 SCI6306 SGBD / Modèles & historique Modèle hypertextuel [2/3] Theodore Nelson, à l'origine du néologisme «hypertexte» (1965) Système Xanadu (1960) permettant de regrouper tous les documents de l'humanité Accessible à tous, possibilité d'y ajouter des documents et d'y établir des liens Réflexion qui a eu une influence certaine sur le développement des systèmes hypertextes 22 / 33 2 septembre 2016 SCI6306 23 / 33 SGBD / Modèles & historique Modèle hypertextuel [3/3] HyperCard (Apple), 1987 Créé par Bill Atkinson Premier logiciel hypertexte grand public Utilisation de cartes présentant des contenus et pouvant inclure des liens entre elles sous forme de boutons Web, 1989 Créé au CERN par l'équipe de Tim Berners-Lee Version «allégée» des visions initialement proposées pour l'hypertexte Pas de gestion des droits d'auteur Liens unidirectionnels se cassant lorsque la ressource disparaît Pas d'aperçu des ressources liées Pas de système d'annotation ni de gestion de versions 2 septembre 2016 SCI6306 24 / 33 SGBD / Modèles & historique Familles NoSQL [1/3] Appellation « NoSQL » date de 2009 (phénomène récent) NoSQL = Not only SQL Nés des besoins de certains environnements Web distribués à grande échelle et possédant de grands volumes de données Manière de représenter et manipuler les données du modèle relationnel n’est pas efficace pour ce contexte Par exemple : Twitter, Facebook, eBay Source : Habert, Benoît (2016). MOOC Architecture de l’information – Module 5 : Bases de données relationnelles et réseaux sociaux massifs. 2 septembre 2016 SCI6306 25 / 33 SGBD / Modèles & historique Familles NoSQL [2/3] Délaissent les propriétés ACID des transactions relationnelles permettant de garantir et de maintenir la cohérence des données au profit des contraintes BASE qui priorisent la disponibilité Plusieurs familles NoSQL Familles Exemples d’utilisation Orientées graphes pour traiter les réseaux massifs Recommandations Twitter Orientées colonnes pour faciliter les traitements privilégiant les colonnes Calcul de l’âge moyen des utilisateurs Orientées clé/valeur pour gagner en efficacité en lecture/écriture et pour le changement d’échelle Système de sauvegarde de type Dropbox Orientées « document » pour supporter des structures variables Gestion des métadonnées des produits vendus chez eBay Source : Habert, Benoît (2016). MOOC Architecture de l’information – Module 7 : Familles de bases de données NoSQL. 2 septembre 2016 SCI6306 26 / 33 SGBD / Modèles & historique Familles NoSQL [3/3] Avantages Désavantages • Faible coût relatif • « Jeunesse » • Fortes performances • • Résistance au changement d’échelle Pas de langage de requête abstrait partagé • Capacité à faire évoluer la représentation des données • Travail de programmation spécifique plus important • Cohérence des données moins aisée à garantir Source : Habert, Benoît (2016). MOOC Architecture de l’information – Module 7 : Familles de bases de données NoSQL. 2 septembre 2016 SCI6306 27 / 33 SGBD relationnels Introduction Principes de base Tables (--> données structurées en champs) Relations (--> liens entre les tables) Requêtes (--> pour chercher dans les tables) Autres fonctionnalités vues au fur et à mesure du déroulement de la session 2 septembre 2016 SCI6306 28 / 33 SGBD relationnels Schématisation des principaux processus Création de la structure : tables, champs et relations entre les tables . . Via l’interface du SGBD À partir de requêtes SQL par exemple pour les tables SORTIE ENTRÉE Manipulation des données : ajout, mise à jour, suppression . Directement dans les tables . À l’aide d’un formulaire . Importation d’une source externe . À l’aide de requêtes SQL Extraction de données . Base de données Données persistantes structurées en champs et en tables . . Via l’interface du SGBD (e.g. filtre dans une table) À partir de requêtes SQL À l’aide de rapports 2 septembre 2016 SCI6306 29 / 33 SGBD relationnels Exemples d’implantation [1/3] Contexte pour l’exemple Base de données relationnelle servant à gérer une collection de pièces musicales Quatre éléments piece : pièces musicales (no, titre, durée, no album, no piste) artiste : artistes ayant enregistré les pièces (no, nom, genre musical) album : albums contenant les pièces (no, titre, année) enregistre : pièce(s) par artiste(s) (no pièce, no artiste) 2 septembre 2016 SCI6306 30 / 33 SGBD relationnels Exemples d’implantation [2/3] Base de données relationnelle sur un ordinateur personnel Contexte : volume de données restreint, un seul utilisateur à la fois Ex. SGBD : Microsoft Access (Windows) / LibreOffice Base (Windows, Mac, Linux) / FileMaker Pro (Windows, Mac) Saisie des données : formulaires préparés dans le SGBD Extraction des données : États pour imprimer le contenu de la base de données Requêtes SQL prédéfinies pour des besoins « type » 2 septembre 2016 SCI6306 31 / 33 SGBD relationnels Exemples d’implantation [3/3] Base de données relationnelle sur le Web Contexte : grand volume de données, accès distribué par de multiples utilisateurs sur des plateformes variées Ex. SGBD : MySQL sur un serveur Web / Microsoft Access (Windows) Saisie des données : formulaires Web sécurisés (e.g. en PHP ou ASP) Extraction des données : Interface de recherche Web (e.g. en PHP ou ASP) Pages Web dynamiques (e.g. en PHP ou ASP) présentant les résultats pour des besoins « type » 2 septembre 2016 SCI6306 32 / 33 SGBD relationnels Formule retenue pour le cours [1/2] SGBD : MySQL phpMyAdmin comme interface de gestion Langage de programmation Web : PHP Serveur : serveur de l’EBSI Espaces individuels et d’équipe Chaque étudiant aura une base de données personnelle sur le serveur MySQL pour le travail individuel Chaque équipe aura une base de données partagée sur le serveur MySQL pour le travail d’équipe Chaque équipe aura un espace partagé sur le serveur GINEBSI pour le travail d’équipe 2 septembre 2016 SCI6306 33 / 33 SGBD relationnels Formule retenue pour le cours [2/2] Serveur MySQL Navigateur Web (pour les bases de données) https://www.gin-ebsi.umontreal.ca/phpmyadmin/ BD individuelle Utilisateur : p0123456 Mot de passe : à venir BD équipe Utilisateur : sci6306a16-eqnn Mot de passe : à venir GIN-EBSI Poste de travail (pour les pages Web) (maison ou labos EBSI) Espace équipe Dossier : sci6306a16-eqnn Nom d’utilisateur et mot de passe SIM Lecteur réseau http://www.gin-ebsi.umontreal.ca/ pour info Navigateur Web (pour visualiser le résultat) http://www.ginebsi.umontreal.ca/ sci6306a16-eqnn/