Bases de Données Cécile Capponi Rémi Eyraud cecile.capponi@lif.univ-mrs.fr Université d Aix-Marseille L3 Info
Organisation Organisation de l UE Cours : tous les lundis, 10h - 12h (5 séances) TD et TP (sous Oracle) : lundis (5 séances de chaque) à partir de la semaine du 24 septembre. Dernière séance de TP : une évaluation TP. Evaluation (examen E, TP) : max( (2E+TP)/3 ; E ) Intervenants : C.C., Viet Phan Luong
Organisation de l UE (cont d) Plan du cours Vaste introduction Le modèle relationnel Le langage SQL La notion de vue
Plan Bases de données : de quoi parlons-nous? Système de Gestion de Bases de Données Modélisation des données Mise en oeuvre des SGBDs
Où trouver des bases de données? Partout (ou presque) Médecine Biologie Astronomie Géographie Administrations Commerce et marketing Production et gestion des stocks Audiovisuel, arts Tourisme, loisirs Internet 2.0 Gestion des données personnelles Agenda Répertoire Bibliothèque
Qu est-ce qu une base de données? Définition Une base de données regroupe, au sein d un stockage informatique de haut niveau, un ensemble de données de façon suffisamment organisées pour que ces données puissent être facilement : retrouvées, interrogées, enrichies, mises à jour, supprimées, comparées. sans perturber la cohésion de l ensemble. Importance de la structure de l ensemble L organisation structurée de l ensemble de données explicite sa cohésion.
Plus fort qu un fichier excel! Plus expressif que des tableaux.
Exemples et contre-exemples Guess 1. Toute source de données 2. Un fichier texte 3. Un ensemble de fichiers texte 4. Un site internet quelconque 5. Le web dans son ensemble 6. Un répertoire de téléphone 7. L ensemble des informations utilisées par la SNCF pour le commerce de billets de train 8. La gestion des abonnés d une bibliothèque
Les usagers interactifs Les usagers des bases de données Une personne quelconque, qui n est pas toujours consciente qu elle utilise une base de données. Une personne qui visualise des données via une interface conviviale (consultation d horaires, consultation d un catalogue de bibliothèque, achat en ligne d un vélo, etc.) Les programmeurs d applications Construisent les interfaces destinées aux usagers interactifs Spécialistes de langages informatiques propres à la manipulation et au rendu de données (SQL, SPARQL, etc.) Développeur Web Les administrateurs (Définissent) maintiennent et sécurisent la base de données Possèdent plus de droits sur la base Une compétence recherchée
Types de bases de données Les Bases de données personnelles : 10 à 100 Ko Un répertoire téléphonique, une CDthèque, etc. Les Bases de données professionnelles : 100 Ko à 100 Go Les données clients d une PME, le catalogue produits d une pharmacie, les données administratives des patients d un hôpital, etc. Les très grandes Bases de données : plus de 100 Go Les données des voyages SNCF (1.5 To en 2006), qui s appuient sur d autres bases de données.
Plan Bases de données : de quoi parlons-nous? Système de Gestion de Bases de Données Modélisation des données Mise en oeuvre des SGBDs
Qu est-ce qu un Système de Gestion de Bases de Données? Le SGBD Oracle est à une base de données, ce que Word est à un fichier.doc Objectif Logiciel pour simplifier la tâche de tous les usagers. Aider au développement et à l exploitation des Bases de Données Caractéristiques Langage(s) spécifique(s) pour : définition, programmation, et accès à la base de données ; contrôle et sécurité des bases de données ; optimisation des accès aux bases de données Un logiciel de gestion Gestion des couches physiques et logiques Outre les outils indispensables, modules supplémentaires (générateurs de rapports, utilitaires statistiques, interface web, outils de fouille, etc.) Il existe plusieurs SGBDs...
Historique des SGBDs Comment stocker les informations d Apollo (1950-1960)? Approche basée sur des fichiers Fichiers reliés par des pointeurs Le programme gère les fichiers Structure du stockage visible Dépendance donnée - programme Redondance des données : problèmes de maintenance Lenteur
Historique des SGBDs La pré-histoire (1960-1970) Approche navigationnelle (Bachman) A base de fichiers gérés par des arborescences de pointeurs Redondance limitée Parcours toujours depuis racine, un record à la fois : encore coûteux Premiers vrais SGBD : approche toujours utilisée (IDS2, IMS2, PHOLAS)
Historique des SGBDs (cont d) La révolution (1970) : le modèle relationnel Succès du modèle relationnel Publication de A Relational Model of Data for Large Shared Data Banks, juin 1970, par Edgar Frank Codd d IBM Idées qui ont permis à Oracle Corporation de se créer (Larry Elisson), IBM n ayant pas réagi Premier SGBD : 1980 Simplicité des concepts de base Cadre théorique simple Idée majeure : Indépendance des données Fondé sur un modèle des données (donc respect de l intégrité) Approche déclarative de haut niveau (SQL) SGBDs performants Portabilité des bases et des applications
Historique des SGBDs (cont d) Inconvénients du modèle relationnel Types de données prédéfinis (non adapté aux données complexes) Modélisation conceptuelle assez pauvre Trop grande séparation données / procédures Théorie relationnelle non entièrement exploitée (e.g. : contraintes d intégrité) Grand écart entre SQL et langages de programmation Non adapté à la fouille de données SGBDs relationnels La plupart des SGBDs utilisés sont relationnels : Oracle (1979) PostgreSQL (1985) Microsoft SQL Server (1989) Microsoft Access (1992) MySQL (1995)
Historique des SGBDs (cont d) L ère post-révolutionnaire : les évolutions Pour des applications de plus en plus complexes 1. Approches orientées-objet 2. Approches par documents semi-structurés (échanges de données) Pour prendre en considération les idées de l intelligence artificielle 1. Bases de données déductives 2. Outils de fouille de données 3. Business Intelligence Absence de standards, absence de théorie unifiée
Plan Bases de données : de quoi parlons-nous? Système de Gestion de Bases de Données Modélisation des données Mise en oeuvre des SGBDs
Modéliser pour structurer le réel Séparer description et manipulation des données Norme ANSI-SPARC Description spécification des structures des données, et de leurs types Manipulation opération d interrogation, d insertion, de mise à jour, de suppression, etc. Exemple Livres d une bibliothèque Description année de la première édition, auteur(s), titre, éditeur, langue originale, [traducteur], etc. Manipulation ajouter livre, rechercher un livre à partir de son titre, emprunter un livre, etc.
Description des données Définition Données = ensembles d entités reliés par des associations Associations = ensembles de liens Exemple : base de données cinématographique Données = ensemble des films, ensemble des acteurs, ensemble des liens entre les films et les acteurs Décrire les données = définir tous ces ensembles via leurs propriétés (caractéristiques). Notions essentielles Type de données : construction informatique spécifiant un ensemble de valeurs (données) et les opérations manipulant ces valeurs Instance : une donnée particulière appartenant à un type spécifié, munie d un identifiant. Modèle de description spécification d un ensemble de types de données. Schéma mise en oeuvre d un modèle de description à l aide d un Langage de Description des Données (LDD souvent algébrique).
Exemples de description de données Le type Entier Le type Entier, muni des opérations standards de l arithmétique, est un type de données élémentaires. La valeur 12 est une valeur de ce type. La spécification age=12 est une donnée. Le type Film Le type Film, a comme propriétés (caractéristiques) : titre, réalisateur, langues, acteurs, durée, année, etc. Il est muni d opérations internes comme traduire. C est un type composé. Une instance de Film Le film dont les propriétés sont Usual Suspects, Bryan Singer, [ anglais, francais ], [ Byrne, Spacey, Del Toro ], 108, 1994 est une instance du type Film dont l identifiant pourrait être le produit cartésien de chaque propriété nommée.
Niveaux d abstraction d un modèle de données Les trois niveaux de l ANSI-SPARC Pour faciliter construction, maintenance et évolution des bases de données : spécification de la façon dont on passe de la vision de chaque utilisateur jusqu à la représentation en machine schéma interne schéma conceptuel schémas externes
Le niveau conceptuel Niveau le plus important Détaillé avant la réalisation de la base, car il conditionne les autres niveaux (vues des usagers extérieurs, et dév. dans le SGBD), la qualité de la base, la cohérence des données à venir Niveau conceptuel et modélisation du domaine Correspond à l explication et la description sémantique des concepts et relations du domaine modélisé Indépendant du SGBD, il reflète une réalité cohérente du domaine et des acteurs de ce domaine Couverture du niveau conceptuel Référence aux concepts élémentaires (durée d un film = entier positif qui correspond au nombre de minutes) Définition des types composés : regroupement des propriétés nommées d un ensemble d objet. Spécification des règles qui doivent être respectées (ex. un acteur doit obligatoirement avoir tourné dans un film)
Le niveau conceptuel (cont d) Exemples de types composés et d association FILM(titre, année, durée, nbprix, réalisateur) ACTEUR(nom, prénom, datenaissance, genre) CASTING(FILM, ACTEUR, personnage) Types et instances Le niveau conceptuel ne spécifie pas les instances de types ou d associations, mais on les imagine... F 1( La vie est belle, 1998, 117, 6, Roberto Benigni ) A 1( Benigni, Roberto, 1952 M ) A 2( Braschi, Nicoletta, 1960, F ) C 1(F 1, A 1, Guido Orefice ) C 2(F 1, A 2, Dora )
Le niveau interne (ou physique) Il dérive du niveau conceptuel Niveau le plus proche de l implantation Concerne la façon dont les données sont stockées Partiellement lié au choix du SGBD Couverture du niveau interne Les fichiers contenant les données Les articles de ces fichiers (longueur, mode de placement, etc.) Le mode d accès à ces articles (pointeur, index, etc.)
Le niveau externe Il dépend du niveau conceptuel Indépendant du niveau interne, chaque niveau externe : spécifie des vues différentes associées aux différents groupes d utilisateurs, spécifie ses droits d accès Plusieurs niveaux externes possibles Exemple de la base SNCF : vues différentes (DRH, contrôleurs, conducteurs, usagers, etc.) Base cinématographique :
Le modèle entité-relation Objectif Pour réaliser un schéma conceptuel, le modèle E-R permet de décrire visuellement les types composés (les entités) et les liens qu ils entretiennent (les relations). Notions principales Agrégation : construction d un objet complexe à l aide d objets plus élémentaires Distinction entre agrégations de données élémentaires (ce qui compose le type FILM), et relations entre entités (la relation CASTING). Entité = agrégation d attributs élémentaires Une relation peut s établir entre des entités, et posséder des attributs.
Plan Bases de données : de quoi parlons-nous? Système de Gestion de Bases de Données Modélisation des données Mise en oeuvre des SGBDs
Caractéristiques des SGBDs Indépendance programmes / données Gestion des données en respectant l indépendance des programmes aux données, tant aux niveaux logique que physique. Niveau physique = les aspects matériels de stockage et d accès Niveau logique = les aspects fonctionnels d organisation, de récupération, et de manipulation. Indépendance physique Si modification du schéma interne, les programmes d applications ne sont pas modifiés (ajout de fichier, suppression d index, etc.) Modifier les propriétés de stockage ne doit pas altérer le schéma conceptuel Quid de l inverse? Non. Indépendance logique Si modification d un schéma externe, les autres schémas externes et le schéma conceptuel ne doivent pas être touchés Quid de l inverse? Partiellement.
Manipulation à l aide d un langage NON-procédural Le Quoi plutôt que le Comment, HTML versus Java Garantir l indépendance Un usager voit les données indépendamment de leur implémentation en machine Consultation des donnée affranchie du schéma interne Le moyen physique d accéder et de mettre à jour les données est la problème du SGBD, pas du programmeur Langages de très haut niveau Pour s adresser à la base de données via entités nommées, relations nommées, et propriétés nommées Basé sur l algèbre et la logique du premier ordre Plusieurs classes selon usager
Administration des données Cycle de vie d une base de données 1. Description (trois niveaux) 2. Création 3. Evolution (des trois niveaux), schéma et données Faciliter la gestion Nécessité d outils d administration, aide à la gestion de la cohérence Cohérence des données Le SGBD doit veiller à cette cohérence, sur la base de ce que le programmeur a exprimé déclarativement via contraintes d intégrité et déclencheurs. Respect des propriétés élémentaires (la durée d un film est positive, le nom d un acteur ne doit pas être inconnu alors qu on accepte que la date d un film le soit, etc.) La modification ou la suppression de données peut altérer les autres (enlever un acteur de la base doit mener à enlever toutes les données de casting qui impliquaient cet acteur)
Efficacité des accès aux données Mesures débit (nombre de transactions élémentaires par seconde) temps de réponse (temps moyen pour une requête type) Objectifs des SGBDs : être bons! Les petites requêtes ne doivent pas attendre la fin des grandes, Problème : accès disque (10 ms), solutions inspirées des systèmes d exploitation (ex. tampon en mémoire vive) Autre problème : langages de haut niveau.
Partage et sécurité des données Accès concurrents Les données (une ressource) sont accessibles simultanément par plusieurs usagers (toute type d usager, lecture et écriture). La notion de transaction Une transaction est un programme consultant ou modifiant une base de données, dont l exécution est indivisible. Exemple : réservation d un billet de train (accès simultané au même siège) Deux transactions concurrentes ne doivent pas être emmêlées pour assurer la cohérence : on réserve pour Paul de Nantes puis pour Jacques de Nancy (sans que cela ne se voit...) Sécurité des données Restauration à l identique après une panne (transaction interrompue?) Gestion des droits d accès
Fonctionnalités des SGBDs Quelques exemples de fonctionnalités pour atteindre les objectifs. Langage de description des données langage de modification des données Langage d interrogation des données Fonctions de transformation des données Fonctions de gestion de l intégrité
Description des données Réservée aux administrateurs (et concepteurs) : comment sont structurées et rangées les données (schéma conceptuel et ce qui en découle) Un langage dédié LDD algébrique (type LDD de SQL) 3 niveaux de langages (interne à externe) Assistance graphique Contrôle d intégrité par le SGBD à chaque transaction Exemple CREATE TABLE Film ( titre TEXT, annee DATE, duree INTEGER, nbprix INTEGER, realisateur VARCHAR) ; CREATE INDEX idxfilmannee ON Film (annee) ; Intégrité : avant que la table Film soit créée : il ne doit pas y avoir une table Film déjà existante (sinon, message d erreur du SGBD)
Interrogation des données (requêtes) Une fonctionnalité majeure des SGBDs Quels sont les trains au départ de Marseille et arrivant à Lille, le 25 octobre 2013 à partir de 12h, ayant des places disponibles en deuxième classe? Un langage assertionnel dédié Indications pour retrouver les données par leur contenu, en fonction de la description (schéma conceptuel) et de ce qui est accessible dans le schéma externe. Notion de qualification Propre à SQL, c est une expression logique impliquant des critères simples. Pour comparer les données entre elles, ou avec des valeurs données Notion de navigation Des opérateurs utiles pour parcourir les relations entre entités : la navigation permet de construire des requêtes complexes.
Interrogation des données (requêtes) (cont d)
Interrogation des données (requêtes) (cont d) Exemple (SQL) Sélection des films ayant été réalisés après 1997 SELECT titre FROM Film WHERE annee > TO_DATE( 1997, yyyy) ; Autre exemple (SQL, avec résultat IMDB) Sélection du nombre de prix que chaque film (indiqué par son titre et le nb de pris obtenus) a obtenu, à condition que le titre contienne le mot suspect, et que le film ait été réalisé après 1990. SELECT titre, nbprix FROM Film WHERE titre LIKE %suspect% AND annee > 1990 ; The usual suspects 18 Prime suspect 5 Suspect down NULL
Un langage dédié Ajout, modification et suppression de données partie du LMD (modif données), et partie du LDD (modif description) Ajout, modification et suppression en toute cohérence : importance de spécifier (lors de la description de la base), les contraintes à respecter Critères de modification, de suppression Lors d une suppression : conséquences en cascade à prévoir (si possible dès la description de la base) Exemples Ajout d un champ dans la table Acteur, puis ajout des initiales pour chaque acteur : ALTER TABLE Acteur ADD (initiales VARCHAR) ; UPDATE TABLE Acteur SET initiales = FIRST(nom)+.+first(PRENOM)+. ; Ajout d un film INSERT INTO Film ( Into the wild, TO DATE( 2008, yyyy), 147, 0, Penn ) ; Suppression de données DELETE FROM Casting WHERE personnage = Popeye ;
Transformation de données interne conceptuel = externe Règles de correspondances définies par concepteur
Gestion de l intégrité Fonctionnalité importante des SGBDs Explicitation des règles de cohérence Le concepteur exprime les règles à l aide du langage dédié Le SGBDs garantit le respect de ces règles Différents types de contraintes Chaque instance d entité est munie d un identifiant unique Contrainte de clé primaire Une relation associe deux entités Contrainte référentielle Les valeurs des attributs d entités doivent appartenir à un ensemble précisé (sous-ensemble d un type de données) Contrainte de domaine
Bibliographie indicative Quelques livres Bases de données, par J.L. Hainaut, Dunod (2009) Bases de données relationnelles, par C. Christment et al., Hermès-Lavoisier (2008) Algèbre relationnelle, par M. Clouse, Eni, 2008. Sur internet http://sql.developpez.com/ http://oracle.developpez.com/faq/ http://www.oracle.com/technetwork/indexes/documentation/ind http://www.oracle.com/pls/db112/homepage?remark=tahiti