Vous êtes sur la page 1sur 32

R1.

05: INTRODUCTION AUX BASES DE DONNÉES ET SQL


CM-1: INTRODUCTION, BD, SGBD ET BD RELATIONELLE

1
CONTENU DU COURS

 L'objectif de cette ressource est la sensibilisation sur l’importance d’une base de données dans un système
d’information et montrer la complexité de la création d’une base répondant aux besoins et de bonne qualité.

 Savoirs de référence étudiés


 Approche de la conception des bases de données : modèle conceptuel de données et traduction vers le modèle relationnel
 Algèbre relationnelle
 Bases du SQL (Structured Query Language) : langage de manipulation de données, langage de définition de données
 Éléments sur les jeux de tests + jeux de données
 Principes et utilisation d'un SGBD

2
DES DONNÉES ET DES HOMMES

Une base de données (BD) est un ensemble d'informations qui est organisé de manière à être facilement accessible, géré
et mis à jour. Elle est utilisée par les organisations comme méthode de stockage, de gestion et de récupération de
l’informations.

Les données brutes (aussi connu comme données primaires) sont les données non interprétée (source: wikipedia.fr)

Ex: L'IUT de Montreuil est l'un des deux instituts universitaires de technologie de l'université Paris 8. Accueillant plus de 400
étudiants, l'IUT de Montreuil propose 3 DUT, 4 licences professionnelles.

R1.05: Introduction aux bases de données et SQL 3


DES DONNÉES ET DES HOMMES

Donnée = valeur numérisée décrivant de manière élémentaire un fait, une mesure, une réalité.
Exemple : le nom de l’elève, le cours qu’il suit

Les données décrivent des entités du monde réel, elles-mêmes associées les unes aux autres.

Exemple : Philippe Bouvier est un élève qui a eu une note de 15 concernant le cours de BD:

deux entités (l’élève et le cours) liées par la notion de note.

Une base de données a une structure, sinon c’est autre chose (une collection, un tas de documents, textes ou
images).

R1.05: Introduction aux bases de données et SQL 4


FICHIERS STRUCTURÉS

Format CSV : une ligne par entité ; champs séparés par des ’ ;’
"Bouvier" ; "Philippe"; "BD" ; 15

Base de données = 2, 10 ou 1 million de lignes sur le même format.


"Bouvier" ; "Philippe"; "BD" ; 15
"Blanchard" ; "Michel"; "BD" ; 12
"Bernet" ; "Lucie"; "BD" ; 18

Suffisant ? Possible si on avait 20 millions de lignes?

R1.05: Introduction aux bases de données et SQL 5


FICHIERS COMME BD?

Peut-on construire des applications directement sur des fichiers?

Insurmontables problèmes de productivité, de fiabilité, d’efficacité

R1.05: Introduction aux bases de données et SQL 6


BASE DE DONNÉES

Une base de données est un ensemble d’informations structurées mémorisées sur un support persistant.

R1.05: Introduction aux bases de données et SQL 7


SGBD

Un système de gestion de base de données (abr. SGBD, DBMS en anglais) est un système
informatique qui assure la gestion de l’ensemble des informations stockées dans une base de
données.

Il permet de gérer une BD partagée par plusieurs utilisateurs simultanément.

Les principaux systèmes sont


ORACLE, INGRES, MySQL,
PostGreSQL, DB2, SQL
SERVER, etc

R1.05: Introduction aux bases de données et SQL 8


SGBD

Un système de gestion de base de données permet:

 Organisation des données. Le SGBD organise les données d’une base de données sous la forme de
tables et de colonnes. Il vérifie les propriétés d’unicité et de référence
 Gestion des données. Il est possible d’ajouter et de retirer des lignes dans une table. Il est possible de
modifier les valeurs d’une colonne dans certaines lignes d’une table.
 Accès aux données. L’accès aux données et leur manipulation s’effectuent à l’aide du langage SQL

 Accès par programme. Les commandes SQL de définition, d’extraction et de modification de données
peuvent être exécutées soit à partir d’un terminal, soit à partir d’un programme d’application

R1.05: Introduction aux bases de données et SQL 9


SGBD

R1.05: Introduction aux bases de données et SQL 10


3 NIVEAUX D’ABSTRACTION ET MODÈLE DES DONNÉES

Le serveur peut présenter une représentation logique des données très éloignée de la représentation
physique.

• Le niveau externe: il définit les vues


des utilisateurs.

• Le niveau logique: Il définit


l'arrangement des informations au
sein de la base de données;

• Le niveau interne (ou physique):


définit la façon selon laquelle sont
stockées les données

R1.05: Introduction aux bases de données et SQL 11


CONCEPTS DES BASES DE DONNÉES RELATIONELLES

En informatique, une base de données relationnelle est une base de données où l'information est
organisée dans des tableaux à deux dimensions appelés des relations ou tables, selon le modèle
introduit par Edgar F. Codd en 1960.
Une base de données peut être composée par plusieurs schémas.
Un schéma est une représentation structurée d'un ensemble de concepts reliés sémantiquement.
Les concepts qui le forme sont structurés en tables.

IUT
élève enseignant
ressource

R1.05: Introduction aux bases de données et SQL 12


CONCEPTS DES BASES DE DONNÉES RELATIONELLES

A l’intérieur d’une base de données, selon les besoins, nous pourrions avoir plusieurs schémas.
BD

enseignant
IUT
élève
Musique

album artiste

R1.05: Introduction aux bases de données et SQL 13


CONCEPTS DES BASES DE DONNÉES RELATIONELLES

Chaque table se compose de un ou plusieurs colonnes (ou attributs).

Une table contient une collection de lignes (ou tuples).

Une ligne est elle-même une suite de valeurs, chacune d’un type (ou domaine de valeurs) déterminé.

elève
nom prenom adresse dateNaissance
Bouvier Philippe 5, Rue de Paris 12/01/2004
Blanchard Michel 17, rue de Trévise 01/05/2004
Bernet Lucie 50, rue de la Bourse 23/11/2005

R1.05: Introduction aux bases de données et SQL 14


CONCEPTS DES BASES DE DONNÉES RELATIONELLES

Colonne (ou attribut)


élève

nom prenom adresse dateNaissance


Bouvier Philippe 5, Rue de Paris 12/01/2004
Blanchard Michel 17, rue de Trévise 01/05/2004
Ligne Bernet Lucie 50, rue de la Bourse 23/11/2005
(ou tuple)

Type de données: Type de données:


chaîne de caractère! date

R1.05: Introduction aux bases de données et SQL 15


TYPE DE DONNEES

Le SGBD offrent un large choix de types de données disponibles nativement.

Type Description
int Entier signé sur 4 octets
date date du calendrier (année, mois, jour)
varchar[n] Chaîne de caractères de longueur variable
float Nombre à virgule flottante de simple précision
serial Entier à incrémentation automatique
char[n] chaîne de caractères de longueur fixe
boolean Booléen (Vrai/Faux)
… …

R1.05: Introduction aux bases de données et SQL 16


VALEURS

Il est possible d’ajouter des lignes à une table et d’en supprimer. Il est possible également de
modifier la valeur d’une colonne d’une ligne.
Selon les contraintes imposées, il est également possible de laisser de valeurs vides.
Trois scénarios :
• l’information est pertinente mais n’existe pas pour l’entité (le fait) correspondant à la ligne (l’étudiant existe mais n’a pas
encore d’adresse connu sur place ),
• l’information n’est pas pertinente pour les entités telles que celle qui correspond à la ligne (le nom d’usage n’est pas attribué à
tous les étudiants),
• l’information existe mais n’est pas connue à ce moment (date de naissance d’un élève n’a pas encore été communiquée).

L’absence de valeur d’une colonne dans une ligne, quelle qu’en soit la raison, se signalera par
l’affectation de la valeur conventionnelle NULL à cette colonne.

R1.05: Introduction aux bases de données et SQL 17


VALEUR NULL

élève

nom prenom adresse dateNaissance


Bouvier Philippe NULL 12/01/2004
Blanchard Michel 17, rue de Trévise 01/05/2004
Bernet Lucie 50, rue de la Bourse

Deux façons d’insérer la valeur NULL:


- rien insérer
- insérer explicitement la valeur « NULL »

R1.05: Introduction aux bases de données et SQL 18


DEGRE D’UNE TABLE

On définit comme « degré » d’une table le nombre de ses attributs (ou colonnes).

DEGRE = 4

élève
nom prenom adresse dateNaissance
Bouvier Philippe NULL 12/01/2004
Blanchard Michel 17, rue de Trévise 01/05/2004
Bernet Lucie 50, rue de la Bourse NULL

R1.05: Introduction aux bases de données et SQL 19


IDENTIFIANTS

Chaque ligne (ou tuple) doit pouvoir être identifiée à travers une valeur unique. Ce rôle sera joué par
une colonne (ou attribut).

DEFINITION: Une colonne constitue un identifiant (ou clé primaire) de sa table si, à tout instant, il ne
peut exister plus d’une ligne possédant une valeur déterminée de cette colonne. Cette propriété on
l’appelle contrainte d’unicité

Cette définition est valable également pour un groupe de colonnes (on parle d’identifiant composite,
ou clé composite).

Cet attribut (ou ensemble d’attribut) est défini comme CLE PRIMAIRE de la table.
R1.05: Introduction aux bases de données et SQL 20
IDENTIFIANT – CLE PRIMAIRE
élève
nom prenom adresse dateNaissance
Bouvier Philippe NULL 12/01/2004
Blanchard Michel 17, rue de Trévise 01/05/2004
Bernet Lucie 50, rue de la Bourse NULL

Aucun identifiant claire ici..(on pourrait avoir deux personnes avec même nom et/ou prénom). Deux solutions:

Identifiant composite (trois attributs forme, ensemble,


Ajout d’attribut, artificiel, unique. l’identifiant)
ID nom prenom adresse date nom prenom adresse date
Naissance Naissance
1 Bouvier Philippe NULL 12/01/2004 Bouvier Philippe NULL 12/01/2004

2 Blanchard Michel 17, rue de 01/05/2004 Blanchard Michel 17, rue de 01/05/2004
Trévise Trévise
3 Bernet Lucie 50, rue de NULL Bernet Lucie 50, rue de NULL
la Bourse la Bourse

R1.05: Introduction aux bases de données et SQL 21


IDENTIFIANTS

Pour jouer correctement ce rôle d’identification, il est donc nécessaire que l’identifiant possède des
valeurs distinctes, propriété qu’on appelle contrainte d’unicité.

Celle-ci est garantie par le SGBD, qui rejettera automatiquement toute tentative d’insertion d’une
ligne dont la valeur de l’identifiant est déjà présente dans la table.

Nous ne pouvons pas insérer des tuples qui ne respectent pas cette contrainte!

R1.05: Introduction aux bases de données et SQL 22


REFERENCEMENT – CLE ETRANGERE

Une colonne d’une table dont le rôle est de référencer une ligne dans une autre table est dénommé
clé étrangère (foreign key.)

Ressource enseignant
id titre semestre idEns idEns nom prenom dept

1 Cataldi Mario INFO


1 BD 1 1

2 Maths 1 2 2 Homps Marc INFO

3 BD2 2 1 3 Bellabes Sihem INFO

Pour exister, la valeur de la clé étrangère doit déjà exister dans la table cible avant de pouvoir être
insérée!

R1.05: Introduction aux bases de données et SQL 23


REFERENCEMENT – CLE ETRANGERE

DEFINITION: il est nécessaire que l’ensemble des valeurs d’une clé étrangère soit un sous-ensemble
des valeurs de l’identifiant cible. Cette propriété est appelée contrainte référentielle

Ressource enseignant
id titre semestre responsable idEns nom prenom dept

1 Cataldi Mario INFO


1 BD 1 1

2 Maths 1 2 2 Homps Marc INFO

3 BD2 2 1 3 Bellabes Sihem INFO

Autrement dit, le nom d’une colonne d’une clé étrangère est indépendant de celui de l’identifiant
qu’elle référence.

R1.05: Introduction aux bases de données et SQL 24


REFERENCEMENT – CLE ETRANGERE

Nous pouvons avoir plusieurs clés étrangères dans la même table.


enseignant
idEns nom prenom dept

Ressource 1 Cataldi Mario INFO

id titre semestre responsable 2 Homps Marc INFO

3 Bellabes Sihem INFO


1 BD 1 1

2 Maths 1 2
semestre
3 BD2 2 1
idSemestre nom nombreCredits

1 S1 50

2 S2 35

R1.05: Introduction aux bases de données et SQL 25


REFERENCEMENT – CLE ETRANGERE

BONNE PRATIQUE: les clés étrangères, souvent, pointent vers une une clé primaire.
POURQUOI?

Ressource enseignant
id titre semestre idEns idEns nom prenom dept

1 Cataldi Mario INFO


1 BD 1 1

2 Maths 1 2 2 Homps Marc INFO

3 BD2 2 1 3 Bellabes Sihem INFO

R1.05: Introduction aux bases de données et SQL 26


NOTATIONS

Une notation souvent utilisée pour représenter une table est ses attribut est la suivante:
t (a1, a2, a3, … an);
Ou T est le nom de la table et, entre parenthèses, les noms de ses attributs.
La clé primaire est soulignée (ou précedée par #si pas possible de la souligner).

EX: etudiant[idEtud, nom, prenom, noTelephone];


enseignant[idEns, nom, prenom];
ressource[codeRessource, nom, semestre, profResponsable]; Clé primaire composite!
Un des attributs, tout seul, ne
notes[idEtud, codeRessource, note]; souffrirait pas!!
R1.05: Introduction aux bases de données et SQL 27
NOTATIONS

Pour ce qui concerne les clés étrangères, nous les signalerons avec une @ devant l’attribut.

Ex:
etudiant[idEtud, nom, prenom, noTelephone];
Celle-ci est une clé étrangère.
enseignant[idEns, nom, prenom] Attention: avec cette notation nous
ne disons pas quel est l’attribut cible.
ressource[codeRessource, nom, semestre, @profResponsable];

R1.05: Introduction aux bases de données et SQL 28


NOTATIONS

Un attribut pourrait être clé primaire et étrangère à la fois!

Ex:
etudiant[idEtud, nom, prenom, noTelephone];
ressource[codeRessource, nom, semestre, @profResponsable];
notes[@idEtud, @codeRessource,note]; Ici c’est le cas plus..complexe!

Une clé primaire composite..composée par 2


clés étrangères! (chacune pointe sur un
attribut diffèrent)

R1.05: Introduction aux bases de données et SQL 29


ATTENTION! QUELQUES RÈGLES

Quelques règles:
1. Dans la même BD, pas 2 schémas avec même nom!
2. Dans le même schéma, pas 2 tables avec même nom! (mais possible dans 2 schémas
différents!

OK!!
entreprise
cours employé salle
salle

IUT

R1.05: Introduction aux bases de données et SQL 30


ATTENTION! QUELQUES RÈGLES

Quelques règles:
3. Dans la même table, pas 2 attributs avec même nom (mais il possible d’avoir 2 attributs avec
même noms dans 2 tables différentes!

NON!! OK!!
cours cours salle

id nom nom id nom etage nom

IUT IUT

R1.05: Introduction aux bases de données et SQL 31


BONNE PRATIQUE

Pas une règle mais..bonne pratique!


 Les noms (tables, attributs) il est préférable qu’ils soient en minuscule, sans accents ou
caractères spéciaux.

OK!!
iut salle
id nom prenom
etage nom
etudiant

R1.05: Introduction aux bases de données et SQL 32

Vous aimerez peut-être aussi