Introduction au cours Séance 1 Concepts de base de données
16/12/2016 Dr Yacouba Goïta 1
Objectifs du cours Introduire les notions fondamentales relatives aux bases de données afin de comprendre l’historique qui a conduit à la modélisation conceptuelle des données (ce qu’on verra dans les modules ultérieurs)
16/12/2016 Dr Yacouba Goïta 2
Types de base de données Plusieurs approches pour organiser les données dans un SGBD SGBD hiérarchique: les premiers, avec gestion de pointeurs arborescente SGBD réseau (20%) • les plus rapides, la navigation est aussi entre pointeurs, mais plus ouvertes.
16/12/2016 Dr Yacouba Goïta 3
Types de base de données(suite) SGBD relationnel (SGBDR) (75%) : la plus utilisée. Basé sur l'algèbre relationnelle. données représentées sous forme de tables Bases relationnelles : Oracle www.oracle.com DB2 www.software.ibm.com Sybase www.sybase.com SQL Server www.microsoft.com Ingres s2k-ftp.CS.Berkeley.EDU/pub/Ingres
Types de base de données(suite) Bases déductives -langage en calcul de prédicats et logique 1er ordre Bases objet -instances de classes hiérarchisées. Bases objet : O2 www.o2tech.fr Gemstone www.gemstone.com ObjectStore www.objectdesign.com Jasmine cai.com/jasmine
16/12/2016 Dr Yacouba Goïta 6
Interopérabilité avec les BD Interopérabilité avec les BD – Obstacle : Interfaces spécifiques des SGBD – Remèdes ODBC (Open Data Base Connectivity) Les scripts CGI, ISAPI ASP, IDC, PHP JDBC (Java Data Base Connection)
16/12/2016 Dr Yacouba Goïta 7
Base de données: Définition Définition : – Une BD est une collection de données enregistrées ensemble sans redondances inutiles – Les données conservées sont dites persistantes (pour être réutilisées) Une BD est utilisée pour servir plusieurs applications L’enregistrement des données est indépendant des programmes qui les utilisent Approche commune et contrôlée pour ajouter, modifier, retrouver des données
16/12/2016 Dr Yacouba Goïta 8
Concepts Clés des bases de données relationnelle Concepts clés: – Base de données – Table – Structure d’une table (Schéma) – Enregistrement – Attribut – Clé primaire – Clé lointaine – Liens entre les tables – Diagramme de structure de la BD
16/12/2016 Dr Yacouba Goïta 9
Organisation de la base de données
16/12/2016 Dr Yacouba Goïta 10
Table Dans une BD, une table est l’objet logique qui contient les données Une table est identifiée par son nom ( qui doit être unique ) Exemples : Table fournisseur, table client, table produit, table facture...
16/12/2016 Dr Yacouba Goïta 11
Table (suite) Une BD relationnelle (BDR) est composée d’un ensemble de tables reliées entre elles Les relations entre les tables facilitent l’accès aux données d’une table à partir des données d’une autre table Exemple : – Table Client contient : code du client, nom, adresse, numéro de téléphone – Table Commande contient : code du client, code du produit, quantité – Table Produit contient : code du produit, libellé du produit. – À partir de la table Commande on peut accéder aux 2 autres tables grâce à : code du client et code du produit
16/12/2016 Dr Yacouba Goïta 12
Table et enregistrement Code du client Nom Téléphone Ville Table Client C101 Mamadou 66125141 Bamako C102 Oumarou 65422108 Mopti C103 Ibrahima 72156251 Sélingué
• Chaque ligne de la table est appelée enregistrement
• Un enregistrement contient l’ensemble des valeurs composant la ligne • Exemple : (C101, Mamadou, 66125141, Bamako) est l’enregistrement du client C101
16/12/2016 Dr Yacouba Goïta 13
Attributs Les attributs sont les éléments d’information d’une table (aussi appelés champs) Exemple : Code, nom, téléphone, ville sont les attributs de la table Client Il faut distinguer entre un attribut (exemple : nom) et la valeur prise par l’attribut dans un enregistrement particulier (exemple : Oumarou)
16/12/2016 Dr Yacouba Goïta 14
Attributs (suite) Chaque attribut a des propriétés qui doivent être fixées lors de la conception : – Type de valeur : le type de donnée que doit avoir la valeur de l’attribut – Obligatoire : Cet attribut doit absolument posséder une valeur – Unique : Les valeurs prises par cet attribut sont toutes différentes – Intervalle de validité : les valeurs de ce champ doivent appartenir à un intervalle. Exemple : [0,100] pour la note de l’étudiant – Intégrité référentielle : la valeur prise par cet attribut doit absolument exister dans une autre table. Exemple : Code du produit dans la table Facture
16/12/2016 Dr Yacouba Goïta 15
Clef Un attribut est la clef d’une table s’il permet d’identifier d’une façon unique tous les enregistrements de cette table La clé d’une table doit être unique et obligatoire Exemples – Table Étudiant matricule – Table Produit code du produit Table Commande numéro de la commande
16/12/2016 Dr Yacouba Goïta 16
Clef (suite) Dans certains cas, deux ou plusieurs attributs d’une même table sont candidats pour devenir clé – Exemple : Les attributs matricule et NAS pour la table Étudiant Parfois, on a besoin de deux ou plusieurs attributs pour assurer l’unicité – Combiner ces attributs pour former la clé – Clé composée Les valeurs pour les deux attributs (pris ensemble) d’une clé composée doivent être uniques
Structure d’une table La structure d’une table est définie par l’ensemble des attributs qui la composent Il y a trois (3) représentations possibles 1. CLIENT (Numéro du client, Nom, téléphone, ville, pays)
2.
16/12/2016 Dr Yacouba Goïta 19
Structure d’une table (suite) 3.
16/12/2016 Dr Yacouba Goïta 20
Clef lointaine Un attribut est appelé clef lointaine lorsqu’il est clef primaire dans une autre table Exemple : – CLIENT (Numéro du client, Nom, téléphone, ville, pays) – PRODUIT (Numéro du produit, Numéro du fournisseur, Description) – COMMANDE (Numéro de la commande, Numéro du client, date de la commande) – DÉTAIL COMMANDE (Numéro de la commande, Numéro du produit,Quantité)
16/12/2016 Dr Yacouba Goïta 21
Clef lointaine(suite) Une clef lointaine n’est pas unique La clef lointaine sert à faire le lien entre deux tables La clef lointaine doit respecter l’intégrité référentielle Il n’est pas nécessaire que la clef lointaine soit obligatoire – Exemple : Ajouter un produit dans la BD sans connaître son fournisseur
16/12/2016 Dr Yacouba Goïta 22
Lien entre les tables de la BD Les liens entre les tables sont assurés par les attributs communs Lien entre la clef primaire d’une table et la clef lointaine d’une autre table Exemple – CLIENT (Numéro du client, Nom, téléphone, ville, pays) – COMMANDE (Numéro de la commande, Numéro du client, date de la commande) – DÉTAIL COMMANDE (Numéro de la commande, Numéro du produit, Quantité) – PRODUIT (Numéro du produit, Numéro du fournisseur, Description)
16/12/2016 Dr Yacouba Goïta 23
Lien entre les tables de la BD(suite) – Liens : Entre CLIENT et COMMANDE Entre COMMANDE et DETAIL COMMANDE Entre PRODUIT et DETAIL COMMANDE
16/12/2016 Dr Yacouba Goïta 24
Diagramme de structure de la BD Le DSBD sert à représenter le schéma de la BD – Tables (tous les attributs - clé soulignée) – Liens entre les tables (flèches reliant les attributs)
16/12/2016 Dr Yacouba Goïta 25
Diagramme de structure de la BD (suite) Pour compléter le DSBD, il faut construire un tableau décrivant les contraintes sur les attributs pour chaque table Exemple
16/12/2016 Dr Yacouba Goïta 26
Recommandations Donner des noms significatifs aux attributs – Au lieu de nommer un attribut ‘nom’ le nommer NomClient ou NomFournisseur – Au lieu d’indiquer dans une table l’attribut ‘date’ ou ‘quantité’, les nommer significativement comme ‘DateFacture’, ‘DateLivraison’, ‘QuantitéCommandée’ ‘QuantitéFacturée’ Pourquoi une telle recommandation?
16/12/2016 Dr Yacouba Goïta 27
Réponse: Langage de requête Permet de déterminer : – les informations que l’on veut obtenir (les attributs) et leur formulation – de quelle(s) table(s) on obtient ces informations – les contraintes sur ces informations – le tri des informations