1 of 44

Université Gustave Eiffel - IUT de Marne-la-Vallée - DUT MMI

Bases de données – 31/01/2020

Cours 1

Introduction, modèle relationnel

https://tinyurl.com/M2203-BD-2020

Philippe Gambette

2 of 44

• Contact

- Courriel : philippe.gambette@u-pem.fr

(M2203 doit apparaître dans le sujet du courriel).

- Avant ou après le cours.

- Possibilité de poser des questions, de demander des exercices supplémentaires d'entraînement.

• Enseignants

Cours, TP & TD par Thanh-Long Dang et Philippe Gambette

• Notes et devoirs

- travail de modélisation pour le projet tutoré de ce semestre (rendu le 1er avril avant 22h)

- devoir final le 4 juin 2020 (tous documents papier autorisés)

Présentation

3 of 44

• Cours de Tony Grandame à l'IUT de Marne-la-Vallée en 2010-2011

�• Cours de Mathieu Mangeot, IUT de Savoie

http://jibiki.univ-savoie.fr/~mangeot/Cours/BasesDeDonnees.pdf

�• Cours de Fabrice Meuzeret, IUT de Troyes

http://195.83.128.55/~fmeuzeret/vrac/

�• Livre de Laurent Audibert : Bases de données - de la modélisation au SQL

Version partielle sur :�http://laurent-audibert.developpez.com/Cours-BD/html/index.php

• Cours de SNT sur « les données structurées et leur traitement » en cours de réalisation avec Victor Rabiet pour les éditions Spartacus IDH

Sources

4 of 44

• Introduction aux bases de données

• Modèle relationnel

• Modèle logique des données

• Modèle physique des données, types et tables

• Le langage SQL

• Méthodes de modélisation (MERISE, UML)

Plan des cours

5 of 44

• Introduction aux bases de données

• Le modèle relationnel : entités et attributs

• Le modèle relationnel : relations et cardinalité

• Choix de modélisation

Plan du cours 1 – Introduction, modèle relationnel

6 of 44

• Introduction aux bases de données

• Le modèle relationnel : entités et attributs

• Le modèle relationnel : relations et cardinalité

• Choix de modélisation

Plan

7 of 44

Introduction aux bases de données

Pourquoi une base de données ?

    • Exemples
    • Enjeux des systèmes de gestion de bases de données

Différents types de base de données

    • Les bases hiérarchiques
    • Les bases en réseau
    • Les bases relationnelles
    • Les bases de données objet
    • Les bases de données XML

8 of 44

Exemples des sites avec une base de données

Critiques de films

Avis cinéma de Monique Pantel�(http://monique.pantel.free.fr)

Films, articles.

Livre géolocalisé interactif

Lisbonne par Fernando Pessoa�(http://lisbon.pessoa.free.fr)

Lieux, mots du texte.

Extraits de textes littéraires

Extraits d'ouvrages écrits par des femmes�(http://ledeuxiemetexte.fr)

Autrices, œuvres, extraits...

9 of 44

Les bases de données et le web

Les années 1990 : le web sans base de données

  • langage HTML développé au début des années 1990
  • séparation entre contenu (HTML) et mise en page (CSS) à la fin des années 1990

Les années 2000 : le web 2.0

  • sites web adossés à une base� de données (forum, blogs, etc.)
  • possibilité pour les internautes �d’ajouter du contenu dans la base �de données (contributions, �commentaires, etc.)

Les années 2010 : le web des données

  • abondance de données (personnelles) sur les réseaux sociaux
  • bases de données ouvertes/partagées, interrogeables automatiquement par d’autres sites web

Page HTML

Code PHP

Code PHP

Base de données �SQL

Le code PHP inclus dans la page HTML interroge la base de données SQL pour récupérer des informations

10 of 44

Enjeux des systèmes de gestion de bases de données

SGBD = système informatique qui gère une base de données

Exemples : MySQL, Oracle Database

  • indépendance : la base de données est un module dissocié du système d'information, le format des données est indépendant du système.
  • persistance des données : les informations restent présentes dans la base même quand le logiciel qui ne les utilise pas ne fonctionne pas.
  • accès : le système de gestion de la base de données gère les accès aux données en gérant les accès concurrentiels.
  • cohérence : le système de gestion de la base de données assure l'intégrité des données.
  • sécurité : le système de gestion de la base de données gère les accès aux données en fonctions des utilisateurs.
  • administration : la base de données peut être administrée ou sauvegardée de façon autonome.

11 of 44

Différents types de bases de données

hiérarchique

Base hiérarchique

Lie les enregistrements dans une structure arborescente où chaque enregistrement n'a qu'un seul possesseur.

Exemple : arbre de Porphyre (III° siècle)

12 of 44

Différents types de bases de données

Base hiérarchique

Lie les enregistrements dans une structure arborescente où chaque enregistrement n'a qu'un seul possesseur.

Base en réseau

Est une base hiérarchique mais permet en plus d'établir des relations transverses.

Base relationnelle

Stocke les informations décomposées et organisées dans des matrices appelées relations ou tables. → SQL

Base objet

Stocke les informations groupées sous forme de collections d'objets persistants.

Base XML

S'appuie sur le modèle de données fourni par XML.

hiérarchique

réseau

relationnelle

13 of 44

Les dernières tendances en bases de données

NoSQL (not only SQL)

Pour manipuler d’énormes bases de données, réparties sur un grand nombre de serveurs.

→ Cassandra, MongoDB, etc.

@mfiguiere, ancien étudiant de l’UPEM

Le « web des données » :

interroger plusieurs bases de données disponibles sur le web

→ protocole SPARQL, modèle RDF

triplets�RDF

14 of 44

Les dernières tendances en bases de données

Serge Abiteboul, un des chercheurs en informatique français les plus cités : bases de données XML, web des données

15 of 44

• Introduction aux bases de données

• Le modèle relationnel : entités et attributs

• Le modèle relationnel : relations et cardinalité

• Choix de modélisation

Plan

16 of 44

Le modèle relationnel – modèle conceptuel des données

  • Lentité
  • Lattribut
  • Lidentifiant
  • Loccurrence
  • Lassociation ou relation
  • La cardinalité ou multiplicité

17 of 44

Définitions

Pour décrire un objet en informatique, on en isole des caractéristiques dont les valeurs sont appelées données.

Une donnée est une représentation d’une information destinée à être traitée ou transmise. Les données peuvent être structurées au sein d'une base de données, c’est-à-dire organisées de manière à faciliter leur traitement : ajout, suppression, recherche, filtre, tri, calcul, etc.

Les caractéristiques des objets sur lesquelles on choisit de stocker les données sont appelés attributs. Plusieurs objets qui partagent les mêmes attributs correspondent à une même entité.

Exemple : l’entité élève et ses attributs nom, prénom, classe.

Le modèle relationnel décrit les entités reliées les unes avec les autres par des relations. On le représente visuellement par un schéma relationnel

18 of 44

La modélisation

Créer un modèle relationnel, c’est :

  • réfléchir à toutes les informations qu’on veut stocker dans la base de données
  • structurer la base de données pour faciliter le traitement (extraction, tris, filtres, etc.) de ces informations

La modélisation est une tâche qui ne nécessite pas de connaître un langage de programmation.

Elle demande de bien connaître le projet pour lequel on crée la base de données, notamment la cible : tâche à l’interface entre les besoins des utilisateurs (qui nécessitent de stocker des données) et la solution technique pour répondre à ces besoins.

Vidéo d’Oussama Ammar de The Family à propos �de l’utilité d’avoir une certaine connaissance des �aspects techniques quand on fonde une start-up, �même quand on les sous-traite :

19 of 44

Le modèle relationnel

L’entité

Concept concret ou abstrait du monde à modéliser.

Elle se représente par un cadre contenant son nom.

Présentation :

Exemple :

Nom

Etudiant

20 of 44

Etudiant

nom

prenom

groupe

formation

année

Nom

attribut 1

attribut 2

....

attribut n

Le modèle relationnel

L’attribut

Caractéristique d'une entité ou d'une association.

Les attributs sont listés dans l'entité.

Présentation :

Exemple :

21 of 44

Nom

identifiant

attribut 2

....

attribut n

Le modèle relationnel

L’identifiant (ou clé)

Attribut(s) particulier(s) permettant d'identifier chaque occurrence d'une entité.

Les attributs servant d'identifiant sont soulignés.

Présentation :

Exemple :

Etudiant

nom

prenom

groupe

formation

semestre

Etudiant

id

nom

prenom

groupe

formation

semestre

22 of 44

Nom

identifiant

attribut 2

....

attribut n

Le modèle relationnel

L’occurrence

Élément particulier d'une entité (ou d'une association).

L'occurrence ne fait pas partie du modèle relationnel mais est expliquée ici pour mieux comprendre l'entité.

Présentation :

Exemple :

id

nom

prénom

groupe

formation

semestre

1

Aubry

Alice

B

DUT MMI

2006-S2

2

Bourguignon

Antoine

D

DUT MMI

2006-S2

3

Boyard

Noa

A

DUT MMI

2006-S2

4

Cede

Eric

C

DUT MMI

2006-S2

5

Charrier

Garnet

B

DUT MMI

2006-S2

23 of 44

id

nom

prénom

groupe

formation

semestre

1

Aubry

Alice

B

DUT MMI

2006-S2

2

Bourguignon

Antoine

D

DUT MMI

2006-S2

3

Boyard

Noa

A

DUT MMI

2006-S2

4

Cede

Eric

C

DUT MMI

2006-S2

5

Charrier

Garnet

B

DUT MMI

2006-S2

Récapitulatif sur les entités, attributs et identifiants

entité Etudiant

identifiant

occurrences

valeur de l’attribut groupe pour�l’occurrence d’identifiant 5

attribut

24 of 44

• Introduction aux bases de données

• Le modèle relationnel : entités et attributs

• Le modèle relationnel : relations et cardinalité

• Choix de modélisation

Plan

25 of 44

L’association ou relation

  • L’association binaire
  • Les cardinalités
  • Association un à un
  • Association un à plusieurs
  • Association plusieurs à plusieurs
  • Association plurielle
  • Association N-aire
  • Association réflexive

26 of 44

Lie

attributs

Appartient

Les relations

L’association binaire

Permet de relier deux entités entre elles.

Elle se représente par le biais d'un ovale ou d'un losange contenant son nom et ses éventuels attributs.

Leur nom est généralement un verbe.

Présentation :

Exemple :

Entite_2

Entite_1

Formation

Etudiant

27 of 44

Les relations

L’association binaire

Permet de relier deux entités entre elles.

Elle se représente par le biais d'un ovale ou d'un losange contenant son nom et ses éventuels attributs.

Leur nom est généralement un verbe.

Présentation :

Exemple :

Entite_2

Entite_1

Lie

attributs

Formation

Etudiant

Appartient

semestre

28 of 44

Les relations

L’association binaire

Permet de relier deux entités entre elles.

Elle se représente par le biais d'un ovale ou d'un losange contenant son nom et ses éventuels attributs.

Leur nom est généralement un verbe.

Présentation :

Exemple :

Entite_2

Entite_1

Lie

attributs

Formation

Etudiant

Appartient

semestre�année

29 of 44

Lie

attributs

Les relations

Les cardinalités

Couple de valeurs indiqué à l'extrémité de chaque lien d'une association.

La cardinalité minimum indique le caractère optionnel (0) ou obligatoire (1) de la relation.

La cardinalité maximum indique le caractère unique (1) ou multiple (n) de la relation.

Présentation :

Exemple :

Entite_2

Entite_1

min,max

min,max

Formation

Etudiant

Appartient

semestre

0,1

0,n

30 of 44

Lie

attributs

Les relations

Les cardinalités

LA phrase :

Pour une occurrence d’Entité_1 donnée, elle est Liée à entre min et max occurrences de l’Entité_2.

Pour un étudiant donné, il appartient à entre 0 et 1 formation (une formation maximum, mais potentiellement aucune en cas d'année de césure).

Présentation :

Exemple :

Entité_2

Entité_1

min,max

min,max

Formation

Étudiant

Appartient

semestre

0,1

0,n

Pour une formation donnée, elle est suivie par entre 0 et n étudiants (elle peut être suivie par plusieurs étudiants et ne pas être ouverte une année s'il n'y a aucun étudiant qui la suit)

31 of 44

Les relations

Les cardinalités

Couples de cardinalités possibles

Card.

Lecture

0 , 1

Lien vers 0 ou 1

1 , 1

Lien vers 1

0 , n

Lien vers 0 ou n

1 , n

Lien vers 1 ou n

Entite_1

Entite_2

Lecture

1

1

Association 1 à 1

1

n

Association 1 à plusieurs

n

1

Association 1 à plusieurs

n

n

Association plusieurs à plusieurs

Associations selon les cardinalités maximum

32 of 44

Les relations

L’association un à un

Est caractérisée par des cardinalités maximales à 1.

Ces associations sont à proscrire dans un modèle entité-association car les 2 entités peuvent être fusionnées.

Présentation :

Exemple :

Entite_2

Entite_1

Lie

attributs

min,1

min,1

Adresse

Etudiant

Habite

année

0,1

0,1

33 of 44

Les relations

L’association un à plusieurs

Est caractérisée par une cardinalité maximale à 1 et une cardinalité maximale à n.

Ici, une personne exerce au plus une profession et une profession peut être exercée par aucune ou plusieurs personnes.

Présentation :

Exemple :

Entite_2

Entite_1

Lie

attributs

min,n

min,1

Formation

Etudiant

Appartient

semestre

0,1

0,n

34 of 44

Les relations

L’association plusieurs à plusieurs

Est caractérisée par des cardinalités maximales à n.

Ici, une personne exerce aucune ou plusieurs professions et une profession peut être exercée par aucune ou plusieurs personnes.

Présentation :

Exemple :

Entite_2

Entite_1

Lie

attributs

min,n

min,n

Formation

année

Etudiant

Appartient

0,n

0,n

35 of 44

Lie

Lie

Les relations

L’association plurielle

Deux entités peuvent être liées par plusieurs relations.

Présentation :

Exemple :

Entite_2

Entite_1

Formation

Etudiant

Appartient

Est_délégué

36 of 44

Les relations

L’association n-aire

Il est possible d'associer autant d'entités que nécessaire.

Associations à des degrés supérieurs à 3 : rare

Présentation :

Exemple :

Entite_3

Entite_1

Lie

attributs

Min,Max

Min,Max

Entite_2

Min,Max

Matiere

Personne

Enseigne��jour

heure

0,n

0,n

Universite

0,n

37 of 44

Les relations

L’association réflexive

L’association réflexive permet d'associer une entité à elle-même.

Dans cet exemple, une personne est parent d'une autre personne.

Présentation :

Exemple :

Entite_1

Lie

attributs

Etudiant

même_projet

38 of 44

• Introduction aux bases de données

• Le modèle relationnel : entités et attributs

• Le modèle relationnel : relations et cardinalité

• Choix de modélisation

Plan

39 of 44

Choix de modélisation

  • Il n’existe pas de modèle de données idéal.
  • Le modèle doit correspondre à un besoin précis.
  • Il est indispensable que chaque décision, chaque façon de faire soit réfléchie.
  • En cas de multiples possibilités, il faut s’assurer que le fonctionnement mis en place répondra au besoin.

Risques :

  • Il peut être tentant de créer un modèle le plus généraliste possible.
  • Attention toutefois à ce type de modèles qui mèneront à des bases de données trop complexes.
  • Les performances seront alors moindres et les fonctionnalités mises en place pas forcément utilisées.

40 of 44

Choix de modélisation

Une base données doit permettre de stocker toutes les informations nécessaires à son utilisation.

Toute la complexité réside dans l’organisation de ces attributs.

Toute redondance est interdite.

Il faut essayer de créer un modèle à la fois évolutif mais aussi suffisant pour le besoin.

41 of 44

Choix de modélisation

Utiliser un attribut dans l'entité ou créer une association ?

id

nom

prenom

adresse

cp

ville

Adresse

Personne

id

voie

cp

ville

Reside

date_debut

date_fin

0,1

0,n

id

nom

prenom

Personne

OU

?

42 of 44

Choix de modélisation

Choix des cardinalités ?

Adresse

id

voie

cp

ville

Reside

date_debut

date_fin

1,n

0,n

id

nom

prénom

Personne

Adresse

id

voie

cp

ville

Reside

0,1

0,n

id

nom

prenom

Personne

43 of 44

Usages et conventions de nommage

Pour nommer les entités et les attributs, il est déconseillé dutiliser espaces et accents.

Les relations sont nommées par des verbes à la forme active ou passive.

Attention à la casse, certaines bases de données y sont sensibles, dautres non. Il est donc fréquent de devoir appliquer une normalisation propre au contexte (par exemple en entreprise).

Nous appliquerons dans ce cours les règles suivantes :

  • pour les entités, première lettre en majuscule, les suivantes en minuscules, avec utilisation éventuelle de _
  • pour les attributs, snake case : en minuscules, en séparant les minuscules d’un mot composé par des _�(autres options : camelCase, kebab-case)
  • accents possibles dans le modèle conceptuel des données, �pas dans les modèles logique et physique des données (cours suivant)

44 of 44

Aberrations

Toute répétition dentité doit être supprimée.

Relations binaires un pour un déconseillées a priori : peuvent être remplacées par des attributs à ajouter pour une des deux entités, en supprimant l'autre.

Relations n-aires à utiliser avec parcimonie : souvent complexes à comprendre et à interpréter.