31
1 Bases de Données Stella MARC-ZWECKER Maître de conférences Dpt. Informatique - UdS [email protected]

Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

1

Bases de Données

Stella MARC-ZWECKERMaître de conférences

Dpt. Informatique - UdS

[email protected]

Page 2: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

2

Plan du cours

❚ 1. Introduction aux BD et aux SGBD❙ Objectifs, fonctionnalités et évolutions

❚ 2. Modèle relationnel❙ Définitions et concepts

❙ Langages d’interrogation❘ Algèbre relationnelle

❚ 3. Langage SQL (Structured Query Lang.)• => TD et TP + contrôle continu

Page 3: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

3

Plan du cours

❚ 4. Normalisation d’un schéma relationnel❘ Dépendances fonctionnelles

❘ Formes normales

❚ 5. Modèle entité/association❘ Conception du schéma logique

❘ Production du schéma de la BD• Passage du modèle E/A aux tables (SQL)

Page 4: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

4

Chapitre 1

Introduction

aux Bases de Données (BD)

et

aux Systèmes de Gestion

de Bases de Données (SGBD)

Page 5: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

5

1. Introduction

❘ Bases de données utilisées dans :• Le domaine de l’informatique de gestion

• Le monde du web et des applications client/serveur dynamiques

❘ Discipline s’appuyant sur une théorie fondamentale

❘ Qu’est-ce qu’une base de données ?• Une base de données est une collection de données organisées et

reliées entre elles de telle sorte que l'on puisse accéder à une quelconque d'entre elles par l'intermédiaire d'un programme informatique.

• Les données doivent être exhaustives (la base contient toutes les informations requises pour le service que l'on en attend), non redondantes (la même information n'est présente qu'une seule fois).

• Les données doivent être interrogeables par le contenu et selon n’importe quel critère

Page 6: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

6

Exemple de base de données

❚ BUVEUR❚ -----------------------------------------------❚ Nom Prénom Adresse❚ -----------------------------------------------❚ Dupont Jean Lyon❚ Schmidt Titou Colmar❚ Lopez Carmen Madrid❚ Costes Maria Toulouse❚ Chassin Malik Bordeaux❚ -----------------------------------------------

❚ VIN❚ -----------------------------------------------❚ Cru Millésime Quantité❚ -----------------------------------------------❚ Saint Emilion 2001 1243❚ Riesling 2003 734❚ Pinot Gris 1997 2874❚ Cahors 1985 112❚ Bourgogne 1966 56❚ -----------------------------------------------

Page 7: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

7

❚ CONSOMMATION❚ --------------------------------------------------------------------------❚ Buveur Vin Date Quantité❚ --------------------------------------------------------------------------❚ Costes Saint Emilion 25/12/05 3❚ Chassin Pinot Gris 10/07/05 2❚ Lopez Saint Emilion 04/08/05 5❚ Lopez Riesling 31/12/05 2❚ Schmidt Riesling 05/11/05 6❚ Schmidt Riesling 05/12/05 6❚ Schmidt Riesling 05/01/06 6❚ Dupont Cahors 15/01/06 7❚ Dupont Bourgogne 30/01/06 8❚ ---------------------------------------------------------------------------

❚ BUVEURS DE VINS❚ ----------------------------------------------------------------------------------------------❚ Nom Prénom NbCons Cru Millésime❚ ----------------------------------------------------------------------------------------------❚ Dupont Jean 2 Cahors 1985❚ Bourgogne 1966❚ Schmidt Titou 3 Riesling 2003❚ Riesling 2003❚ Riesling 2003

Page 8: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

8

1. Introduction

❘ Qu’est-ce qu’un SGBD ?• Ensemble des logiciels système implémentant la BD• Le SGBD rend transparent le partage des données

❘ Problèmes à résoudre par le SGBD :• Fournir un accès efficace aux données• Contrôler la redondance des données• Cohérence des données• Partage des données• Sécurité des données

❘ Dans un SGBD, les programmes qui traitent les données, i.e. les programmes applicatifs implémentant les opérations du SGBD, sont indépendants des données

⇒⇒⇒⇒ abstraction des données⇒⇒⇒⇒ l'utilisateur travaille avec une représentation conceptuelle des données.

Page 9: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

9

2. Modèles de données

❘ Un modèle de données est un mode de représentation des informations caractérisé par :

❘ 1. Les structures des données2. Les contraintes qui permettent de spécifier les règles

que doit respecter une base de données.3. Les opérations permettant de manipuler les données

(interroger ou mettre à jour la base).

❘ DDL : langage de description des données (1. et 2.)

(Data Description Language) • langage utilisé pour décrire le schéma d’une base de données

• Ex : SQL DDL

❘ LMD : langage de manipulation des données (3.)

(Data Manipulation Language) • Ex : SQL DML

Page 10: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

10

2. Modèles de données

❘ Un modèle de données est indépendant de la représentation physique

⇒⇒⇒⇒ séparation des tâches :- des administrateurs de la base chargés de l’optimisation de ses performances - des développeurs d’application ou utilisateurs finaux qui n’ont pas à se soucier de la manière dont le système satisfait leurs demandes.

❚ Le catalogue système ou dictionnaire de données

❙ Il contient toutes les méta-données utiles au système. Les méta-données sont les représentations permettant la description:

❘ des données (type, taille, valeurs autorisées, etc...), ❘ des autorisations d’accès, ❘ des vues et autres éléments systèmes.

❙ Le catalogue renferme aussi la description des différents schémas des trois niveaux (physique, conceptuel et externes -voir ci-après-) ainsi que les règles de passage d’un schéma vers l’autre.

Page 11: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

11

2. Modèles de données

❙ Trois niveaux de description du système de bases de données (ANSI/SPARC) :

Page 12: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

12

2. Modèles de données

❘ 2.1. Niveau externe (niveau vue) :

• Ce niveau comprend les vues des utilisateurs

• Chaque utilisateur décrit une partie de la base qui convient àses besoins.

• Chaque groupe d'utilisateurs s'intéresse uniquement à son propre schéma externe et le SGBD doit transformer toute demande d'utilisateur de haut niveau en requêtes de schéma conceptuel puis en requêtes de schéma interne appliquées aux données stockées.

• Protection des données (accès limité aux données du schéma externe pour un groupe donné)

Page 13: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

13

Exemple de schémas externes

Page 14: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

14

2. Modèles de données

❘ 2.2. Niveau conceptuel (schéma conceptuel) :

• Ce niveau ne se soucie pas de l’implémentation physique des données ni de la façon dont chaque groupe d'utilisateurs voudra se servir de la base de données

• Ce niveau se concentre sur la description des entités, du type des données, des relations existant entre les entités et des opérations des utilisateurs.

– Types de données élémentaires décrivant les propriétés des objets (ex: cru d’un vin, millésime)

– Types de données composés décrivant les objets ou les relations entre objets (ex: vin, buveur)

– Types de données composés décrivant les associations (ex: consommation de vin par un buveur)

– Règles que devront suivre les données (ex: âge d’un buveur compris entre 14 et 120)

Page 15: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

15

Exemple de schéma conceptuel

❚ Types d’objets :

❙ BUVEUR (Nom, Prénom, Adresse)

❙ VIN (Cru, Millésime, Quantité)

❚ Types d’associations :

❙ CONSOMMATION ( BUVEUR, VIN, Date, Quantité)

Page 16: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

16

2. Modèles de données

❘ 2.3. Niveau interne (niveau physique) :

• Le niveau interne est un schéma qui décrit la structure de stockage physique de la base de données. Il s’appuie sur un système de gestion de fichiers pour définir la politique de stockage ainsi que le placement des données. ⇒ Nécessite le choix préalable d’un SGBD

• Le niveau physique est donc responsable du choix de l’organisation physique des fichiers ainsi que de l’utilisation de méthodes d’accès en fonction de la requête.

• Les données sont décrites en termes de représentation physique en machine, i.e de structures de mémorisation, de méthodes de stockage et d’accès utilisées pour ranger et retrouver les données sur disque. Par ex :– Fichiers contenant les données (nom, localisation…)– Articles de ces fichiers (longueur, champs…)– Chemins d’accès à ces articles (index, chaînages…)

Page 17: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

17

Exemple de schéma interne

- fichier BUVEURS décrivant les buveurs et leurs consommations : chaque article contient le nom, prénom, adresse du buveur, suivi d’un groupe répétitif comprenantle nombre de consommations, et pour chaque consommation, un pointeur sur le vinbu, la date et la quantité

- un index sur le nom de buveur et sur la date permet d’accéder directement aux articles de ce fichier à partir de la valeur de ces attributs.

- fichier VINS : chaque article contient le cru, le millésime et la quantité de vin en stock. Ce fichier est indexé sur le couple (Cru, Millésime).

Page 18: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

18

3. Objectifs et fonctionnalités d’un SGBD

❘ L'architecture à trois niveaux définit ci-dessus permet de garantir l'indépendance des donnéespar rapport aux programmes :

• elle permet de modifier le schéma de la base de données àun niveau sans restructurer les autres

❘ L’indépendance physique est la possibilité de changer le schéma physique et de modifier l'organisation physique des fichiers, de rajouter ou supprimer des méthodes d'accès sans remettre en cause le schéma conceptuel

Page 19: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

19

3. Objectifs et fonctionnalités d’un SGBD

❘ Manipulation par des langages non procéduraux

• Manipulation via un langage déclaratif

– La question déclare l’objectif sans décrire la méthode

– Le langage suit une norme commune à tous les SGBD

– SQL : Structured Query Language

• Sémantique

– Logique du premier ordre ++

• Syntaxe

– SELECT <structure de résultats>

– FROM <relations>

– WHERE <conditions>

Page 20: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

20

3. Objectifs et fonctionnalités d’un SGBD

❘ Intégrité logique

• Objectif : détecter les mises à jour erronées

– => contrôle sur les données :

- contrôle de types

- contrôle de valeurs

– => contrôle sur les relations entre les données :

- relations entre données élémentaires

- relations entre objets

• Contraintes d’intégrité

– => langage de définition des contraintes d’intégrité

– => vérification automatique de ces contraintes

Page 21: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

21

3. Objectifs et fonctionnalités d’un SGBD

❘ Intégrité physique

• Tolérance aux fautes– Transaction failure : contraintes d’intégrité non respectées– System failure : panne de courant, crash serveur– Media failure : perte du disque– Communication failure : panne du réseau

• Objectifs (ACID)– Atomicité des transactions– Correction des transactions– Isolation des transactions– Durabilité des transactions

• Moyens– Journalisation : mémorisation des états successifs– Mécanismes de reprise

Page 22: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

22

Intégrité physique

❘ Exemple de transaction

BeginCEpargne = CEpargne – 1000CCourant = CCourant + 1000

Commit T1

• Atomicité

BeginCEpargne = CEpargne – 1000

>>>> panneCCourant = CCourant + 1000

Commit T1

=> annuler le débit !

• DurabilitéBegin

CEpargne = CEpargne – 1000CCourant = CCourant + 1000

Commit T1

>>>>> crash disque=> s’assurer que le virement a été fait !

Page 23: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

23

4. Architecture des SGBD

❘ client/serveur

• un serveur de données communique avec les clients via un réseau au moyen de requêtes question/réponse

• Procédures stockées• Architecture à deux « strates »

– Deux couches applicatives (client, serveur)• Architecture à trois « strates »

– Client chargé de la présentation (navigateur web)– Serveur d’application– Serveur de données

❘ Architectures réparties

• Coopération entre différents serveurs transparente aux utilisateurs

Page 24: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

24

Architectures client/serveur

Page 25: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

25

Architectures réparties

Page 26: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

26

5. Historique et évolution des SGBD

❘ Années 60

• Données stockées sur des fichiers sur disque

• Accès séquentiel puis sur clé :

– Lire (Nomf, Article), Ecrire (Nomf, Article)

– Lire (Nomf, Article, clé), Ecrire (Nomf, Article, clé)

❘ Années 70 (première génération)

• Séparation entre la description des données et leur manipulation par les applications

• Avènement des Bases de Données Réseaux ou hiérarchiques

• Ex : SGBD TOTAL, IDMS, IDS 2 (Bull), IMS 2

Page 27: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

27

5. Historique et évolution des SGBD

❘ Modèles réseaux et hiérarchiques

• BD = ensemble de fichiers reliés par des pointeurs– => approche « système »

• Modélisation :– d’articles stockés dans des fichiers– des liens entre ces articles

• Langages de manipulation de données navigationnels– => basés sur le parcours de fichiers et de liens entre fichiers, article par article

❘ Avantages de ces modèles• Très performants car proches du niveau physique• Restent compétitifs au niveau interne

❘ Inconvénients de ces modèles• Pas d’indépendance des programmes aux données• Complexité des langages de manipulation navigationnels

Page 28: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

28

5. Historique et évolution des SGBD

❘ Années 80 (deuxième génération)

• Avènement des Bases de Données Relationnelles (BDR)

• Relations entre ensembles de données

– => données présentées sous forme de relations entre domaines de valeurs (tables)

• Langage d’interrogation par assertion logique (SQL)

– => exprime des requêtes traduisant directement des phrases du langage naturel

– Ex : SGBD Oracle, MySQL, Sybase, DB2, Access, Microsoft SQL Server, PostgreSQL, Ingres, etc.

– => essentiel du marché actuel

Page 29: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

29

5. Historique et évolution des SGBD

❘ Avantages du modèle relationnel

• Indépendance entre niveaux logique (modélisation des données) et physique (accès aux données)

• Simplicité de la structure

❘ Inconvénients du modèle relationnel

• Langage mal adapté aux structures de données complexes (ex: données multimédia)

=> Extension aux « objets »

Page 30: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

30

5. Historique et évolution des BD

❘ Années 90 (troisième génération)

• Extension objet des modèles relationnels : – Conserve les acquis du relationnel– Définit des sous-types par héritage– SQL étendu aux objets– Utilisation de règles logiques pour le maintien de cohérence

– => adaptation aux nouvelles applications manipulant des objets complexes

– Exemple : Oracle 8, DB2 Universal Database

❘ Années 2000 (quatrième génération)

• Meilleur support d’Internet et du Web– => interrogation d’objets multimédia distribués– => extraction de connaissances (« data mining »)

Page 31: Bases de Données - UFR Mathématique et Informatiquestella/... · Modèles de données Un modèle de données est un mode de représentation des informations caractérisépar : 1

31

5. Historique et évolution des BD

❘ Années 2010 (NoSQL : Not Only SQL)

• Bases de données non relationnelles :

– manipulent d’énormes volumes de données, – adaptées aux applications manipulant des pages web– bases de données distribuées

• ne garantissent pas ACID :

– le maintien de la cohérence des données distribuées est très coûteux en temps

• Exemples :

– Facebook utilise Cassandra (2500 fois plus rapide que MySQL) : orientée « colonnes » (permet de rajouter plus facilement des colonnes aux tables)

– MongoDB : orientée « documents » (association « clé-valeur »remplacée par association « clé-document ») : tient mieux compte de la structure du document manipulé