Introduction aux bases de donn - PowerPoint PPT Presentation

1 / 47
About This Presentation
Title:

Introduction aux bases de donn

Description:

Un acteur joue dans un film : un m me acteur peut jouer plusieurs r les dans un m me film... On identifie l'association avec le l'acteur, le r le et le film ... – PowerPoint PPT presentation

Number of Views:191
Avg rating:3.0/5.0
Slides: 48
Provided by: xavier81
Category:

less

Transcript and Presenter's Notes

Title: Introduction aux bases de donn


1
Introduction aux bases de données
  • Grégory Beurier
  • LIRMM Laboratoire d'Informatique de Robotique
    et de Microélectronique de Montpellier
  • CNRS Université Montpellier II

2
Définitions
  • Une Base de Données (BD) est un ensemble
    structuré d'informations mémorisées sur un
    support permanent et mises à disposition d'un
    ensemble d'utilisateurs, informaticiens ou non.
  • Un Système de Gestion de Base de Données (SGBD)
    est un logiciel général qui permet à
    l'utilisateur de manipuler les données dans des
    termes abstraits, sans tenir compte de la façon
    dont l'ordinateur les représente

3
Objectifs
  • Fidélité image fidèle de la réalité
  • Unicité Pas de redondances dinformation
  • Indépendance SGBD - modèle de stockage
  • Concurrence Plusieurs accès simultanés
  • Performance
  • Confidentialité
  • Intégrité fiabilité et cohérence
  • Robustesse tolérance aux problèmes

4
Historique
  • Systèmes hiérarchiques et réseaux
  • Systèmes relationnels
  • Systèmes objets

5
Les intervenants humains
  • Utilisateurs naïfs
  • Utilisateurs traditionnels
  • Utilisateurs confirmés
  • Concepteurs de BD
  • Développeurs dapplications
  • Administrateurs de BD
  • Développeurs de BD

6
Niveaux d'abstraction
  • Niveau Conceptuel
  • Niveau Logique
  • Niveau Physique
  • Niveau Externe

7
Plan du cours
  • Le modèle entité association
  • Le modèle relationnel
  • Les langages d'interrogation

8
Le modèle entité association
  • Défini dans la méthode MERISE
  • Joue un rôle primordial en matière de
    modélisation conceptuelle de BD
  • 2 concepts principaux
  • Entité
  • Association

9
Concept d'entité
  • Une entité est définie comme tout concept concret
    ou abstrait que l'on reconnaît comme
    individualisable
  • Une entité possède une liste de propriétés
    appelées attributs
  • Le regroupement d'entités de même nature ayant
    les mêmes propriétés structurelles constitue un
    niveau générique appelé classe d'entités ou type
    d'entités
  • Exemples (classe d'entité entité, )
  • Voiture 206, clio,
  • Departement Informatique, Math, Physique,
    Chimie,

10
Identifiant d'une entité
  • Il faut prévoir un moyen de distinguer les
    entités identifiant
  • A une valeur d'un identifiant correspond au plus
    une entité du type
  • Cette propriété est un invariant de la base, et
    constitue une contrainte d'intégrité
  • Exemples d'identifiants
  • Pour une personne le numéro de sécurité sociale
  • Pour une voiture le numéro d'immatriculation

11
Représentation d'une classe d'entité
  • Nom de la classe
  • Identifiant
  • Liste d'attributs

12
Concept d'association (1)
  • On admet que les entités sont en association les
    unes avec les autres
  • Dans le modèle de base, une association est
    définie comme un groupe de deux ou plusieurs
    entités, chacune jouant un rôle dans ce groupe
  • Une classe d'association est un regroupement
    d'associations de même sémantique

13
Concept d'association (2)
  • Une association peut avoir des attributs
  • Exemples d'associations
  • Une personne conduit une voiture
  • Une personne travaille dans un département
  • Un acteur joue dans un film

14
Représentation d'une association (1)
  • Le nom du rôle

15
Représentation d'une association (2)
  • L'association peut avoir un ou plusieurs attributs

16
Identifiant d'une association
  • Il faut prévoir un moyen de distinguer les
    associations d'une même classe l'identifiant
  • Souvent on peut identifier une association à
    partir des entités qu'elle met en jeu
  • Une personne possède une voiture
  • Pas toujours
  • Un acteur joue dans un film un même acteur peut
    jouer plusieurs rôles dans un même film
  • On identifie l'association avec le l'acteur, le
    rôle et le film

17
Cardinalité
  • Permettent d'affiner la modélisation en en
    précisant le nombre d'association dans lesquelles
    une entité peut apparaître
  • Cardinalité minimum
  • Cardinalité maximum

18
Notation des cardinalités
  • Valeurs 0, 1, N
  • On peut donc avoir (0,1) ou (1,1) ou (0,N) ou
    (1,N)

(min,max)
(min,max)
19
Exemple de cardinalité (1)
(0,N)
(1,1)
20
Exemple de cardinalité (2)
(0,N)
(0,N)
21
Construction d'un schéma entité association
  • A partir d'un texte écrit par un non spécialiste
  • Recenser toutes les informations pertinentes pour
    le problème
  • Recenser les classes d'entités
  • Définir les attributs des classes d'entités
  • Créer des classes d'associations pour relier les
    classes d'entités
  • Définir les attributs des associations
  • Ajouter les cardinalités

22
Exemple de problème modélisation d'une
bibliothèque universitaire
  • La bibliothèque possède une collection de
    livres. Pour chaque livre on connaît le titre, le
    ou les auteurs, la maison d'édition, l'année.
    Pour chaque auteur on connaît le nom et le
    prénom, ainsi que la nationalité. (On note aussi
    la langue dans lequel le livre est écrit). La
    bibliothèque possède plusieurs exemplaires d'un
    même livre, et on connaît la date d'achat. Les
    étudiants peuvent emprunter plusieurs livres à la
    fois. On note la date d'emprunt. Pour chaque
    étudiant, on connaît le nom, le prénom, le numéro
    de carte d'étudiant ainsi que l'adresse. On
    associe aussi une catégorie à chaque livre.

23
Schéma E/A de la bibliothèque universitaire
1,N
1,1
EXISTE
1,1
1,N
DATE_EMPRUNT
1,N
1,N
24
Le modèle relationnel
  • Proposé par Boyce CODD en 1970
  • Concept clé la RELATION
  • Normalisation
  • Beaucoup de SGBD commerciaux
  • Langage d'interrogation SQL

25
Concepts de base (1)
  • Un ATTRIBUT est une colonne d'une relation,
    caractérisée par un nom
  • Gérard
  • Labrador
  • Bureau Louis XV
  • Un DOMAINE est un ensemble de valeurs,
    caractérisé par un nom
  • Ensemble d'entiers
  • Ensemble de chaînes de caractères
  • rouge, vert, bleu

26
Concepts de base (2)
  • Une RELATION est un sous ensemble du produit
    cartésien d'une liste de domaine, caractérisée
    par un nom
  • Arité nombre de domaines
  • Cardinal nombre de tuples
  • Le SCHEMA D'UNE RELATION est le nom de la
    relation suivie de la liste de ses attributs
  • Par exemple LIVRE(N_LIVRE, TITRE, LANGUE)
  • Le SCHEMA D'UNE BASE DE DONNEES est l'ensemble
    des schémas des relations de la base et les
    contraintes associées
  • Une relation est appelée TABLE dans les SGBD

27
Les contraintes
  • CLE PRIMAIRE ensemble d'attributs identifiant
    la relation
  • Correspond à la notion d'identifiant du modèle
    E/A
  • Plusieurs notations
  • LIVRE(N_LIVRE, TITRE, LANGUE)
  • LIVRE(N_LIVRE, TITRE, LANGUE, clé N_LIVRE)
  • CLE ETRANGERE spécifie que la valeur de
    l'attribut doit exister dans l'extension d'une
    autre relation
  • Permet de représenter une association du modèle
    E/A quand la cardinalité maximale est 1
  • Plusieurs notations
  • EXEMPLAIRE(N_EXEMPLAIRE, DATE_ACHAT, N_ETUDIANT)
  • EXEMPLAIRE(N_EXEMPLAIRE, DATE_ACHAT, N_ETUDIANT,
    clé N_EXEMPLAIRE, clé étrangère N_ETUDIANT)

28
Valeurs nulles
  • Valeur particulière, notée NULL
  • Signifie pas de valeur
  • (Différente de 0)
  • Contrainte NOT NULL

29
Construction d'un schéma relationnel à partir
d'un schéma E/A
  • Chaque classe d'entité devient une relation
  • La clé la chaque relation est définie à partir de
    l'identifiant de la classe d'entité
  • Chaque classe d'association devient
  • Si la cardinalité maximum est à 1 une clé
    étrangère
  • Si la cardinalité maximum est à N une relation
  • La clé de la relation est définie à partir de
    l'identifiant de la classe d'association

30
Construction du schéma relationnel de la
bibliothèque
LIVRE(N_LIVRE, TITRE, LANGUE) EXEMPLAIRE(N_EXEMPLA
IRE, DATE_ACHAT, N_ETUDIANT, N_LIVRE) AUTEUR(N_AUT
EUR, NOM_AUT, PRENOM_AUT, NATIONALITE) ETUDIANT(N_
ETUDIANT, NOM_ETU, PRENOM_ETU, ADRESSE) ECRIT(N_AU
TEUR, N_LIVRE)
31
Les langages d'interrogation
  • Langage d'interrogation "théorique" algèbre
    relationnelle
  • Utilise les opérateurs ensemblistes
  • Langage d'interrogation réels
  • SQL (Simple Query Language)
  • Langage standard pour le modèle relationnel
  • Supporté par la majorité des SGBD
  • QBE (Query By Example)
  • Langage graphique, simple pour l'utilisateur
  • Utilisé par Access (SGBD Microsoft étudié en TP)

32
Union
  • Opération ensembliste notée ?
  • Deux relations avec le même schéma
  • Résultat les tuples des deux relations (sans
    les doublons)

33
Intersection
  • Opération ensembliste notée ?
  • Deux relations A et B avec le même schéma
  • Résultat les tuples qui sont dans A et dans B

34
Différence
  • Opération ensembliste notée -
  • Deux relations A et B avec le même schéma
  • Résultat les tuples de A qui ne sont pas dans B

35
Projection
  • Opération unaire, notée ?
  • Elimination des attributs non désirés
  • Exemple ? ETUDIANT, NUM_ETUDIANT, NOM_ETU
  • Résultat R(NUM_ETUDIANT, NOM_ETU)

36
Sélection
  • Opération unaire notée ?
  • Elimination des tuples non désirés
  • Exemple ?ETUDIANT, ADRESSE"MONTPELLIER"
  • Résultat tous les étudiants de Montpellier

37
Produit cartésien
  • Opération binaire notée ?
  • Composition de deux relations sur un domaine
    commun
  • Exemple AUTEUR ? LIVRE
  • Résultat R(NUM_AUTEUR, NOM_AUT, PRENOM_AUT,
    NATIONALITE, NUM_ETU, NOM_ETU, PRENOM_ETU,
    ADRESSE) contenant tous les auteurs et tous les
    livres

38
Jointure
  • Opération binaire notée ?predicat
  • Composition de deux relations sur un domaine
    commun, avec un prédicat de jointure
  • Exemple
  • LIVRE ?LIVRE.NUM_LIVREEXEMPLAIRE.NUM_LIVRE
    EXEMPLAIRE
  • Résultat R(même schéma que le produit
    cartésien) contenant tous les tuples satisfaisant
    le prédicat

39
Exemple de requête en langage algébrique
  • Trouver les titres des livres écrits par
    "Gardarin"
  • R1 SELECTION(AUTEUR, NOM_AUT"Gardarin")
  • R2 JOINTURE(ECRIT, R1, ECRIT.NUM_AUTEURR1.NUM_A
    UTEUR)
  • R3 JOINTURE(R2, LIVRE, R2.NUM_LIVRELIVRE.NUM_LI
    VRE)
  • R PROJECTION(R3, TITRE)
  • On peut aussi utiliser une notation graphique

40
Définition du schéma avec SQL
  • CREATE TABLE permet de créer des tables
  • On peut aussi définir des contraintes (PRIMARY
    KEY, FOREIGN KEY, NOT NULL, UNIQUE,)
  • On peut aussi créer des tables par recopie (en
    utilisant d'autres tables)
  • D'autres fonctionalités
  • Effacer, modifier des tables
  • Ajouter des contraintes
  • Definir des index

41
Requête SQL
  • Forme générale d'une requête SELECTFROMWHERE
  • SELECT attributs de la relation du résultat
  • FROM tables utilisées par la requête
  • WHERE (optionnelle) conditions
  • Permet de sélectionner des valeurs
  • Permet de faire des jointures
  • Une requête peut contenir aussi
  • Des requêtes imbriquées
  • Des regroupements
  • Des fonctions d'agrégation
  • Des opérateurs ensemblistes

42
Exemple de requête SQL (1)
  • Retrouver les titres des livres écrits par
    Gardarin

SELECT L.TITRE FROM LIVRE L, ECRIT E, AUTEUR
A, WHERE A.NOM_AUT "Gardarin"
AND L.NUM_LIVRE E.NUM_LIVRE AND E.NUM_AUTEUR
A.NUM_AUTEUR
43
Exemple de requête SQL (2)
  • Requêtes imbriquées (titres des livres écrits par
    Gardarin)

SELECT L.TITRE FROM LIVRE L WHERE L.NUM_LIVRE
IN (SELECT E.NUM_LIVRE FROM ECRIT E, AUTEUR A
WHERE E.NUM_AUTEUR A.NUM_AUTEUR
AND A.NOM_AUT "Gardarin")
44
Exemple de requête SQL (3)
  • Fonction de comptage (Le nombre d'exemplaire de
    la bibliothèque)

SELECT COUNT() FROM EXEMPLAIRE
45
Exemple de requête SQL (4)
  • Fonction de groupement et de comptage (le nombre
    d'exemplaire de chaque livre)

SELECT L.TITRE, COUNT(NUM_EXEMPLAIRE) FROM LIVRE
L, EXEMPLAIRE E WHERE L.NUM_LIVRE
E.NUM_LIVRE GROUP_BY L.TITRE
46
Microsoft Access
  • SGBD Microsoft
  • Simple d'utilisation, suffisant pour une
    utilisation mono-poste avec des données de taille
    raisonnable
  • Interface graphique
  • Création du schéma
  • Création de formulaire
  • Création de requêtes (QBE)
  • Création d'état (impression)
  • Possibilité de programmer en VBA (Visual Basic
    for Application)

47
QBE
  • Tous les étudiants de Montpellier
Write a Comment
User Comments (0)
About PowerShow.com