INTRODUCTION AUX BASES DE DONNÉES Najib TOUNSI Cours à l'usage des premières années informatique Najib TOUNSI
SOMMAIRE Concepts de Bases Base de Données Système Gestion de Bases de Données Niveau Interne Organisations des Fichiers H-Code, B-arbre, ISAM, Fichiers Indexes Modèles Relationnel de données Structure de Données Opérateurs de Manipulation Contraintes Référentielles Najib TOUNSI 1
CONCEPTS DE BASE Ce qu'est une Base de Données Fig. 1 - Schéma de Principe d'une BD Najib TOUNSI 2
Ce qu'est une Base de Données (BD) Une base de données est une collection de données stockées dans des fichiers et accessibles à la demande pour plusieurs utilisateurs et des besoins divers. Ces données représentent des informations servant aux activités et au management d'une entreprise. L'utilisateur dispose de moyens très élaborés pour effectuer un large éventail d'opérations: - Créations de nouveaux fichiers, - Consultation, ajout, modification ou suppression de données, - Calculs et éditions de résultats. - etc Les langages et les outils logiciels pour effectuer ces opérations sont évolués et très pratiques Najib TOUNSI 3
Exemple: Soit le fichier concernant les employés d'une organisation EMPLOYES ------------------------------------------------------ NUM NOM PRENOM SALAIRE SERVICE ----------------------------------------------------- e01 benali ali 5500 personnel e04 benamine amine 6000 personnel e02 benhlima halima 5700 clients e10 bennani anis 7000 fournisseurs e23 benahmed ahmed 8500 clients e24 bensaid saida 6600 personnel e08 benazi aziz 7000 founisseurs e06 bendaoud daoud 7000 clients e20 bennouna anas 5400 clients e14 benkacem kacem 7800 direction Najib TOUNSI 4
Exemples d'interrogations: Quel(le)s sont les personnes du service «clients» SELECT * FROM EMPLOYES WHERE SERVICE = "clients" Résultat: --------------------------------------------------- NUM NOM PRENOM SALAIRE SERVICE --------------------------------------------------- e02 benamina amina 5700 clients e23 benahmed ahmed 8500 clients e06 bendaoud daoud 7000 clients e20 bennouna anas 5400 clients Najib TOUNSI 5
Afficher le nom de tous avec leur salaires Triés par salaire croissant SELECT NOM, SALAIRE FROM EMPLOYES SELECT NOM, SALAIRE FROM EMPLOYES ORDER BY SALAIRE -------------------- NOM SALAIRE -------------------- benali 5500 benamine 6000 benhlima 5700 bennani 7000 benahmed 8500 bensaid 6600 benazi 7000 bendaoud 7000 bennouna 5400 benkacem 7800 -------------------- NOM SALAIRE -------------------- bennouna 5400 benali 5500 benhlima 5700 benamine 6000 bensaid 6600 benazi 7000 bendaoud 7000 bennani 7000 benkacem 7800 benahmed 8500 Najib TOUNSI 6
Idem mais pour les personnes du service clients SELECT NOM, SALAIRE FROM EMPLOYES WHERE SERVICE = "clients" ORDER BY SALAIRE ----------------- NOM SALAIRE ----------------- bennouna 5400 benamina 5700 bendaoud 7000 benahmed 8500 Najib TOUNSI 7
Exemples d'interrogations avec calcul: Calculer le salaire moyen SELECT AVG (salaire) FROM EMPLOYES Calculer le nombre d'employés SELECT COUNT (*) FROM EMPLOYES ----- AVG ----- 7300 ----- COUNT ----- 10 Najib TOUNSI 8
Exemples de modifications: Remplacer le salaire de l'employé «e06» par 8000 UPDATE EMPLOYES SET SALAIRE = 8000 WHERE NUM = "e06" Ajouter un nouvel employé INSERT INTO EMPLOYES VALUES ("e09", "BenSalah", "Salah", 8500, "clients") Najib TOUNSI 9
Ce qu'est un Système de Gestion de Bases de Données (SGBD) Le SGBD, Système de Gestion de Bases de Données, est le logiciel intermédiaire entre l'utilisateur et la base et qui est chargé de réaliser toutes les opérations s'effectuant sur la BD. ß Niveau Logique ß Niveau Physique Fig. 2 -Un Système de Gestion de Bases de Données L'utilisateur a une vision logique des données, qui lui permet de les manipuler aisément (langages et interfaces de haut niveau) et de façon proche de ses besoins. C'est le SGBD qui se charge des considérations physiques liées au stockage des données sur disque et de la façon de les retrouver ou modifier (cf. TP fichiers). Le SGBD gère aussi les programmes que l'utilisateur développe et permet leurs exécutions à la demande. Najib TOUNSI 10
Rôle d'un SGBD: Un SGBD est en général, multi utilisateurs, multitâches. Il Permet l'accès à la base à plusieurs utilisateurs simultanément Traite en les optimisant les requêtes utilisateurs Gère l'exécution cohérente de plusieurs programmes simultanés (accès concurrents) Assure l'intégrité la sécurité, et la protection des données Offre des moyens d'interaction, langages et interfaces, faciles à utiliser F F F F Langage base de Donnée (LBD), permet de définir et de manipuler des données dans une base. Un LBD doit se conformer à un modèle de données évolué. Un modèle de Données permet à l'utilisateur de percevoir les données dans une forme plus simple, par exemple des tables. (Forme dégagée des aspects techniques liés à la représentation en machine). Un LBD est suffisamment complet pour être utilisé seul et de façon interactive pour diverses requêtes. A cela s'ajoute la possibilité pour les non-initié(e)s de travailler sur la base via des interfaces conviviales (menus, écrans de saisies, affichages de graphiques, éditions de rapport etc.) Le SGBD contient les outils pour tout cela. Najib TOUNSI 11
Structure Fonctionnelle d'un SGBD: Structure Structure Fonctionnelle Fonctionnelle d'un d'un SGBD: SGBD: Structure Fonctionnelle d'un d'un SGBD: Structure Fonctionnelle d'un SGBD: Structure Fonctionnelle d'un SGBD: Niveau des utilisateurs et des applications Niveau des utilisateurs et des applications Niveau des utilisateurs et des applications Niveau Outils d'exploitation Niveau des des utilisateurs Conversationnelle, utilisateurs et et des des applications applications Programmation, n Conversation Outils Niveau d'exploitation Outils des utilisateurs 4e Génération interactive, et des applications etc... Programmation, Outils d'exploitation Niveau des des utilisateurs Conversationnelle, et et des des applications Outils d'exploitation Outils Conversationnelle, Programmation, 4e 4e Génération etc... Programmation, Outils Niveau des Outils 4e utilisateurs 4e Génération Génération etc... et des applications etc... Outils d'exploitation Langage Niveau des d'accès utilisateurs Conversationnelle, Unique et ( des e.g applications SQL) Programmation, Outils d'exploitation Outils 'Accès 4e 4e Génération interactive, Unique ( etc... Programmation, Outils Outils d'exploitation Niveau d'exploitation des utilisateurs d'accès Conversationnelle, unique et des (e.g. applications Langage Langage Programmation, Outils d'accès d'accès Conversationnelle, 4e Génération Unique Unique ( e.g e.g etc... SQL) SQL) Langage Programmation, Outils d'accès Outils Noyau 4e 4e Génération Unique ( e.g Génération SGBD etc... SQL) etc... Outils d'exploitation Langage d'accès Conversationnelle, Unique ( e.g ( e.g SQL) Programmation, Outils Accès Noyau 4e Génération Noyau Disques SGBD etc... Noyau SGBD Langage Langage d'accès d'accès Noyau SGBD Unique Unique ( e.g e.g SQL) SQL) Langage d'accès Unique Disques ( e.g SQL) Noyau Accès SGBD SGBD Disques Structure Fonctionnelle d'un d'un SGBD: Structure Fonctionnelle d'un SGBD: Couche logicielle Couche externe. logicielle Couche Externe. externe. logicielle!! Couche externe. Orientée Couche logicielle logicielle ß Externe. Orientée Couche utilisateurs Externe. Orientée logicielle Externe. Couche utilisateurs Orientée logicielle Externe. Orientée utilisateurs externe. Orientée Couche utilisateurs! logicielle Couche logicielle utilisateurs Orientée Externe. Couche utilisateurs Externe. Orientée logicielle Couche Orientée utilisateurs interne. logicielle Externe. interne. Orientée interne.! utilisateurs! Couche utilisateurs Couche logicielle logicielle Orientée Couche interne. interne. Fichiers logicielle Couche utilisateurs interne. Fichiers Orientée logicielle ß interne. Couche Orientée Fichiers logicielle Fichiers interne. interne. Orientée Fichiers Orientée Couche logicielle Fichiers Orientée Couche Fichiers logicielle Fichiers Base Langage d'accès Unique ( e.g SQL) Accès Noyau de Disques SGBD Noyau Données SGBD! Noyau Base interne. Accès Disques de Base interne. Orientée Noyau Accès SGBD Données Disques de SGBD Données Fichiers Base Base interne. Accès de Disques de Fig 4 Composants Données d'un SGBD. Base de Base Fig 4 Composants Données de d'un SGBD. Fig Fig 44 Composants Données d'un SGBD. Fig. Base Fig Fig 3 4 Composants 4 - Composants de d'un d'un SGBD. SGBD. Fig Fig 4 4 Composants Données d'un SGBD. Najib TOUNSI 12 Najib TOUNSI Fig 4 Composants d'un SGBD. 13 Najib TOUNSI Fig 4 Composants d'un SGBD. 12 Fig 4 Composants d'un SGBD. Najib TOUNSI 13 Couche Orientée logicielle Fichiers Orientée Fichiers Orientée Fichiers
Outils offerts par un SGBD: Interface SQL Interactive (ISQL): C'est le moyen le plus simple d'accéder à une BD. On tape une requête et on a la réponse. (SQL/PLUS Oracle, Commande MySQL MySQL, ModeSQL Access) Interface SQL Programmée (EmbeddedSQL ): (SQLPRO Oracle, ESQL Informix) Besoin de programmation : On a un langage conventionnel dans lequel est incorporé le LBD main() { scanf(données); /* début de programme*/ SELECT FROM WHERE ; /* accès à la BD / printf(résulat); /* suite de programme */ } F SQL ANSI: SQL 80s SQL 2 90s SQL3-Objet Seules ces deux Interfaces sont standardisées Najib TOUNSI 13
Usage d'écrans de saisies/éditions (FORM): Ecran formaté avec rubriques libellées et données correspondantes affichées. Utilisateurs non informaticiens, Simplicité de manipulation. Fig. 4 - Formulaire d interrogation. On tape le n département, son nom s affiche, on appuie sur calculer et la moyenne des salaires de ses employés s affiche Edition de rapport (REPORT Writer): Najib TOUNSI 14
Document chiffré (e.g. bilan, facture etc.) formaté contenant des données extraits de la BD. Fig. 5 - Facture imprimée contenant des données calculées et extraites d une base de données Najib TOUNSI 15
Autres Outils : Outils d'éditions graphiques : Histogrammes, Diagrammes sectoriels (camemberts), tableurs... Langage de «4e génération (L4G)»: Langage de très haut niveau intégrant à la fois le LBD, les écrans, les Reports dans un même environnement de programmation. L Langages propriétaires Interfaces avec autres systèmes / Communication en réseau. BD Réparties, Architectures Clients/Serveurs, Serveurs WEB Najib TOUNSI 16
Pourquoi les Bases de Données (SGBD) Intégration et partage des données. Elimination (ou limitation) des redondances et des incohérences (Intégrité des données) Rapprochement Users et Informations Indépendance Données/Programme. Niveau Physique : Programmes indépendants des détails liés à l'organisation des fichiers et des méthodes d'accès etc Niveau Logique : BD conçue globalement, sans référence à un programme particulier. Chaque groupe d'utilisateurs peut voir les données selon la forme désirée. Standardisation Contrôle Centralisé. What else Najib TOUNSI 17
Architecture des systèmes BD Cadre formel pour la conception de SGBD. Fig. 6 - Architecture ANSI/SPARC Pour une BD Najib TOUNSI 18
Architecture des systèmes BD Schéma Conceptuel de Données: Représentation (abstraite) de tout le contenu de la base Description de l'ensemble des informations dans le langage de définition de données. Schéma Interne : Représentation interne (concrète) de ce contenue. gérée directement par le SGBD Schémas Externes (Vues externes) : Représentation de parties de la base. Description des données telles qu'elles sont vues par un utilisateur (ou groupe). Najib TOUNSI 19