Bases de Données. L3 Info. Cécile Capponi Rémi Eyraud cecile.capponi@lif.univ-mrs.fr. Université d Aix-Marseille

Documents pareils
Bases de données Cours 1 : Généralités sur les bases de données

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Présentation du module Base de données spatio-temporelles

Cours Bases de données

Structure fonctionnelle d un SGBD

Bases de Données relationnelles et leurs systèmes de Gestion

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

Cours Base de données relationnelles. M. Boughanem, IUP STRI

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Introduction aux Bases de Données

Bases de données relationnelles

Les bases de données Page 1 / 8

CREATION WEB DYNAMIQUE

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Bases de Données Avancées

Bases de données cours 1

Les bases de données

Introduction aux Bases de Données Relationnelles Conclusion - 1

A QUOI SERVENT LES BASES DE DONNÉES?

CESI Bases de données

Information utiles. webpage : Google+ : digiusto/

Introduction au Système de Gestion de Base de Données et aux Base de Données

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Notes de cours : bases de données distribuées et repliquées

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

INTRODUCTION AUX BASES de DONNEES

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Systèmes d information et bases de données (niveau 1)

Bases de Données. Plan

Bases de données Outils de gestion

Bases de données élémentaires Maude Manouvrier

IFT3030 Base de données. Chapitre 1 Introduction

CHAPITRE 1 ARCHITECTURE

Bases de données relationnelles : Introduction

Bases de données et sites WEB

Bases de données - Modèle relationnel

Bases de données avancées Introduction

Création et Gestion des tables

Application web de gestion de comptes en banques

PHP 5. La base de données MySql. A. Belaïd 1

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Compétences Business Objects

16H Cours / 18H TD / 20H TP

Rappel sur les bases de données

1 Introduction et installation

SQL Historique

Le langage SQL (première partie) c Olivier Caron

PHP 4 PARTIE : BASE DE DONNEES

TP Contraintes - Triggers

Le Langage De Description De Données(LDD)

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Introduction aux bases de données

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

I4 : Bases de Données

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Olivier Mondet

Gestion des bases de données

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Conception des bases de données : Modèle Entité-Association

Cours: Administration d'une Base de Données

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Pratique et administration des systèmes

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

et les Systèmes Multidimensionnels

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

CHAPITRE 1. Introduction aux bases de données

TP3 : Creation de tables 1 seance

Langage SQL : créer et interroger une base

UML et les Bases de Données

1. Base de données SQLite

A QUOI SERVENT LES BASES DE DONNÉES?

Base de Données et Langage SQL

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

Cours Bases de données 2ème année IUT

Bases de données et sites WEB Licence d informatique LI345

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Introduction aux SGBDR

Qu est-ce que ArcGIS?

Introduction aux bases de données: application en biologie

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

MyReport, une gamme complète. La Business Intelligence en toute simplicité : Concevez, partagez, actualisez! pour piloter votre activité au quotidien.

PROJET 1 : BASE DE DONNÉES REPARTIES

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Une ergonomie intuitive

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Les Entrepôts de Données

Le langage SQL Rappels

Le Langage SQL version Oracle

Transcription:

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