Bases de données relationnelles Base de données Ensemble de données qui modélisent une partie du monde réel pour une application informatique. Système de gestion de base des données (SGBD) : Outil qui permet d’insérer, modifier, retirer et rechercher des données ; le tout de façon efficace Interface entre les utilisateurs et l’information brute Présente les informations dans une forme exploitable Les 3 couches d’un SGBD Système de gestion de fichiers Gère le stockage physique des informations (dépend du matériel) SGBD interne Assemble et place les données, gère les liens entre les données et y garantit un accès rapide SGBD externe S’occupe de la présentation de la manipulation des données. Permet l’utilisation de langages de requêtes élaborés et d’outils de présentation adaptés. Propriétés des SGBD(1) Indépendance physique Transparence de la gestion des données au niveau physique Indépendance logique Chacun possède sa propre vue des données (plusieurs groupes d’utilisateurs par rapport à un bdd) Manipulable par des non informaticiens Utilisation de langages non procéduraux (pas de prog) Propriétés des SGBD(2) Accès aux données efficaces Optimisation des accès aux données Administration centralisées des données Outils de sauvegarde des données, replication Non redondance des données Evite la duplication des informations ce qui facilite la gestion Cohérence des données Gestion automatique des contraintes d’intégrité Types de bases de données Les bases hiérarchiques Les bases réseaux Les bases relationnelles Données sous formes de tables basées sur l’algèbre relationnelle et un langage, de manipulation, déclaratif (SQL) Les bases déductives Données sous formes de tables (prédicats), le langage d’interrogation est basé sur le calcul des prédicats et la logique du premier ordre Les bases objets Données représentées sous forme d’instance de classes hiérarchisées. 75% de SGBD sont des bases relationnelles ; les bases objets gagnent du terrain. Modèle Conceptuel de Données Réalité perçue Modélisation conceptuelle (modèle entité association) Transformation dans un modèle supporté par un SGBD (modèle relationnel) Définition de la structure de données de la base (SQL) Exercices 1 : Un magasin de sport a besoin de stocker des informations principales dans une base de données. Il s’agit de stocker toutes les informations relatives à ses produits, ses clients et ses fournisseurs. Il souhaite que l’organisation soit facilitée par le regroupement des produits en différentes catégories. Et il souhaite à partie de là pouvoir facilement consulter ses stocks, la liste des meilleurs clients, le top 10 de ses produits vendus. Créer les MCD et MLD correspondant. Schéma D’une relation Nom de la relation, liste des attributs avec domaines et clés de la relation Transformation Traitement des entités Chaque entité devient une table Chaque propriété devient une colonne de cette table L’identifiant Concepts manipulatoires Un ensemble d’opérations formelles Ces opérations permettent d’exprimer toutes les requêtes sous forme d’expressions algébriques Restriction Sélection des tuples de >R satisfaisant un critère Q Exercice 1 La base de données « médecins » est composée de trois relations qui peuvent être schématisées comme suit : Consultation (num-cons, date-cons, code-patient) Patient (code-patient, nom-pat, adresse) Maladie (*num-cons,num-maladie, symptome-maladie, observations) Exprimer les requêtes suivantes : 1 - Afficher les num-cons effectués par le patient numéro 852 sur les 5 dernières années 2 - Afficher toutes les informations sur les consultations effectuées par le même patient de la question 1 et sur la même période 3 – Afficher le nombre de consultations effectuées le mois 12 de l’année 99 4 – Afficher les patients qui sont client du cabinet avant le début de l’année 98 5 – Afficher le nombre de consultations effectuées par chacun des clients pendant les 5 dernières années. 6 – Afficher les numéros de maladie, le cod-patient et leurs dates de détection concernant les maladies ayant pour symptôme la fièvre. 1) SELECT num-cons FROM consultation WHERE (code-patient = 852) and (date-cons>01.01.2003) 2) SELECT * FROM consultation WHERE(code-patient = 852) and (date-cons>01.01.2003) 3) SELECT Content * FROM Consultation WHERE (date-cons >01.12.99) and (date-cons<= 31.12.99)