Vous êtes sur la page 1sur 20

INTRODUCTION

AUX
BASES DE DONNÉES

Najib TOUNSI

Cours à l'usage des premières années informatique

____________________________________________________________________________________________________________________________________
© Najib TOUNSI
SOMMAIRE

✔ Concepts de Bases
Base de Données
Système Gestion de Bases de Données

✔ Niveau Interne
Organisations des Fichiers H-Code, B-arbre, ISAM, Fichiers Indexes

✔ Modèles Relationnel de données


Structure de Données
Opérateurs de Manipulation
Contraintes Référentielles

____________________________________________________________________________________________________________________
© Najib TOUNSI 1
CONCEPTS
DE BASE

✔ Ce qu'est une Base de Données

Fig. 1 - Schéma de Principe d'une BD

____________________________________________________________________________________________________________________
© Najib TOUNSI 2
✔ Ce qu'est une Base de Données (BD)

Une base de données est une collection de données stockées dans des fichiers et
accessibles à la demande pour plusieurs utilisateurs et des besoins divers.

Ces données représentent des informations servant aux activités et au management d'une entreprise.

L'utilisateur dispose de moyens très élaborés pour effectuer un large éventail d'opérations:

- Créations de nouveaux fichiers,

- Consultation, ajout, modification ou suppression de données,

- Calculs et éditions de résultats.

- etc …

Les langages et les outils logiciels pour effectuer ces opérations sont évolués et très pratiques

____________________________________________________________________________________________________________________
© Najib TOUNSI 3
Exemple: Soit le fichier concernant les employés d'une organisation

EMPLOYES
------------------------------------------------------
NUM NOM PRENOM SALAIRE SERVICE
-----------------------------------------------------
e01 benali ali 5500 personnel
e04 benamine amine 6000 personnel
e02 benhlima halima 5700 clients
e10 bennani anis 7000 fournisseurs
e23 benahmed ahmed 8500 clients
e24 bensaid saida 6600 personnel
e08 benazi aziz 7000 founisseurs
e06 bendaoud daoud 7000 clients
e20 bennouna anas 5400 clients
e14 benkacem kacem 7800 direction

____________________________________________________________________________________________________________________
© Najib TOUNSI 4
✘ Exemples d'interrogations:

• Quel(le)s sont les personnes du service «clients»

SELECT *
FROM EMPLOYES
WHERE SERVICE = "clients"

Résultat:

---------------------------------------------------
NUM NOM PRENOM SALAIRE SERVICE
---------------------------------------------------
e02 benamina amina 5700 clients
e23 benahmed ahmed 8500 clients
e06 bendaoud daoud 7000 clients
e20 bennouna anas 5400 clients

____________________________________________________________________________________________________________________
© Najib TOUNSI 5
• Afficher le nom de tous avec leur salaires • Triés par salaire croissant

SELECT NOM, SALAIRE SELECT NOM, SALAIRE


FROM EMPLOYES FROM EMPLOYES
ORDER BY SALAIRE

--------------------
NOM SALAIRE --------------------
-------------------- NOM SALAIRE
benali 5500 --------------------
benamine 6000 bennouna 5400
benhlima 5700 benali 5500
bennani 7000 benhlima 5700
benahmed 8500 benamine 6000
bensaid 6600 bensaid 6600
benazi 7000 benazi 7000
bendaoud 7000 bendaoud 7000
bennouna 5400 bennani 7000
benkacem 7800 benkacem 7800
benahmed 8500

____________________________________________________________________________________________________________________
© Najib TOUNSI 6
– Idem mais pour les personnes du service clients

SELECT NOM, SALAIRE


FROM EMPLOYES
WHERE SERVICE = "clients"
ORDER BY SALAIRE

-----------------
NOM SALAIRE
-----------------
bennouna 5400
benamina 5700
bendaoud 7000
benahmed 8500

____________________________________________________________________________________________________________________
© Najib TOUNSI 7
✘ Exemples d'interrogations avec calcul:

• Calculer le salaire moyen • Calculer le nombre d'employés


SELECT AVG (salaire) SELECT COUNT (*)
FROM EMPLOYES FROM EMPLOYES

----- -----
AVG COUNT
----- -----
7300 10

____________________________________________________________________________________________________________________
© Najib TOUNSI 8
✘ Exemples de modifications:

• Remplacer le salaire de l'employé «e06» par 8000

UPDATE EMPLOYES
SET SALAIRE = 8000
WHERE NUM = "e06"

• Ajouter un nouvel employé

INSERT INTO EMPLOYES VALUES


("e09", "BenSalah", "Salah", 8500, "clients")

____________________________________________________________________________________________________________________
© Najib TOUNSI 9
✔ Ce qu'est un Système de Gestion de Bases de Données (SGBD)

Le SGBD, Système de Gestion de Bases de Données, est le logiciel intermédiaire entre


l'utilisateur et la base et qui est chargé de réaliser toutes les opérations s'effectuant sur la BD.

Niveau
ß
Logique

Niveau
ß
Physique

Fig. 2 -Un Système de Gestion de Bases de Données

L'utilisateur a une vision logique des données, qui lui permet de les manipuler aisément (langages et interfaces
de haut niveau) et de façon proche de ses besoins. C'est le SGBD qui se charge des considérations physiques
liées au stockage des données sur disque et de la façon de les retrouver ou modifier (cf. TP fichiers).

Le SGBD gère aussi les programmes que l'utilisateur développe et permet leurs exécutions à la demande.
____________________________________________________________________________________________________________________
© Najib TOUNSI 10
✘ Rôle d'un SGBD:
Un SGBD est en général, multi utilisateurs, multitâches. Il

– Permet l'accès à la base à plusieurs utilisateurs simultanément

– Traite en les optimisant les requêtes utilisateurs

– Gère l'exécution cohérente de plusieurs programmes simultanés (accès concurrents)

– Assure l'intégrité la sécurité, et la protection des données

– Offre des moyens d'interaction, langages et interfaces, faciles à utiliser

F Langage base de Donnée (LBD), permet de définir et de manipuler des données dans une base.
Un LBD doit se conformer à un modèle de données évolué.

F Un modèle de Données permet à l'utilisateur de percevoir les données dans une forme plus simple,
par exemple des tables. (Forme dégagée des aspects techniques liés à la représentation en machine).

F Un LBD est suffisamment complet pour être utilisé seul et de façon interactive pour diverses requêtes.

F A cela s'ajoute la possibilité pour les non-initié(e)s de travailler sur la base via des interfaces conviviales
(menus, écrans de saisies, affichages de graphiques, éditions de rapport etc.)

Le SGBD contient les outils pour tout cela.

____________________________________________________________________________________________________________________
© Najib TOUNSI 11
Structure Fonctionnelle
✘✘ Structure Fonctionnelle d'un d'un SGBD:
SGBD:
Structure
✘✘ Structure
✘ Fonctionnelle
Fonctionnelle
Structure Fonctionnelle d'un SGBD:
d'un SGBD:
d'un SGBD:
✘✘Structure
Structure
✘ StructureFonctionnelle
Fonctionnelle
Fonctionnelle d'un d'un
SGBD:
d'un SGBD: SGBD:
Structure Fonctionnelle d'un SGBD:
✘✘
✘✘ Structure
✘Structure
Structure Fonctionnelle
StructureFonctionnelle
Fonctionnelle
Fonctionnelle
Niveau des
Niveau
d'un
d'un
d'un
d'un SGBD:
SGBD:
SGBD:
SGBD:
des utilisateurs
utilisateurs et des
et des applications
applications
Structure
Structure Fonctionnelle
Fonctionnelle
Niveau
Niveau des
des d'un
d'un
utilisateurs
utilisateurs SGBD:
SGBD:
et
et des
des applications
applications
✘Structure
StructureFonctionnelle
✘ Niveau
Fonctionnelle
Niveau
Niveau des
des
des d'un
d'un SGBD:
utilisateurs
utilisateurs
utilisateurs
et
etSGBD:
des applications
desetapplications
des applications
Structure
✘✘ Structure Fonctionnelle
Fonctionnelle
✘ Structure Fonctionnelle
Niveau
Niveau des des d'un
d'un SGBD:
SGBD:
d'un
utilisateurs
utilisateurs SGBD:
etetdes
desapplications
applications
✘✘Structure
StructureFonctionnelle
Fonctionnelle
Niveau
Niveau des
des d'un
d'un SGBD:
SGBD:
utilisateurs
utilisateurs et
et des
des applications
applications Couche logicielle
Couche logicielle
Structure Fonctionnelle Niveau
Niveau
Outils d'Exploitation
Outils d'Exploitation
Niveau des
des
des d'un SGBD:
utilisateurs
utilisateurs et
et
Conversationnelle,
Conversationnelle,
utilisateurs des
des
etetdes applications
applications
Programmation,
Programmation,
applications Couche
Externe.
Externe. logicielle
externe.
externe. Couche logicielle
OutilsOutils
Outils Niveau
d'Exploitation
Niveau des
des utilisateurs
Conversationnelle,
utilisateurs
d'exploitation
d'exploitation interactive,
interactive, des
et applications
des Programmation,
applications
Programmation,
Programmation, Externe.
Coucheexterne.
logicielle
Outils d'ExploitationOutils
Outils
Niveau desd'un 4e
4e Génération
Génération
utilisateurs
Conversationnelle, etc...
etc...
et des applications
Programmation, ! Couche
Couche logicielle
logicielle
✘✘Structure
StructureFonctionnelle
Outils d'exploitation
Fonctionnelle
Niveau
Niveau
Outils Outils
des
des d'un SGBD:
interactive,
utilisateurs
utilisateurs
d'exploitation
Niveau des SGBD:
4e Génération
etet
et des
des
interactive,
utilisateurs des Programmation,
etc...
applications
applications
Programmation,
applications
!Orientée
Couche
Couche
Orientée
externe.
Couche
Externe.
logicielle
logicielleexterne.
logicielle
Outils
Outils
Outils d'Exploitation
d'Exploitation
d'exploitation
Niveau Outils
des Conversationnelle,
Conversationnelle,
4e
utilisateurs interactive,
Génération
etetdes Programmation,
Programmation,
Programmation,
etc... !Orientée
Externe.
Externe.
Couche! logicielle
Outils
Outils
Outils d'Exploitation
d'Exploitation
Niveau des
Outils
Outils
d'Exploitation utilisateurs
4e Génération
4e Génération desapplications
Conversationnelle,
Conversationnelle,
Conversationnelle, etc...
etc... Programmation,
Programmation,
applications
Programmation, Externe.
Externe.
Orientée Orientée
Orientée
utilisateurs
utilisateurs Couche
Couchelogiciell
logiciel
OutilsNiveau des
Outils
d'Exploitation utilisateurs
Outils 4e
4e Génération
Génération et
Conversationnelle, des applications
etc...
etc... Programmation, ß Externe.
Externe.
✘ Structure Outils d'Exploitation
Fonctionnelle Outils
d'un
Outils
Outils 4e
4e
4e Génération
Conversationnelle,
SGBD:
Génération
Génération etc...
etc...
etc... Programmation, Couche Orientée
logicielle
utilisateurs
Couche logicielleExterne.
utilisateursutilisateurs
utilisateurs
Outils d'Exploitation Outils
Outils Conversationnelle,
4e4e Génération
Génération etc...etc...Programmation,Couche
Orientée
Orientée Externe.
Orientée
Outils d'Exploitation
Outils d'Exploitation
Niveau Outils
Outils
des 4e
4e
utilisateurs Génération
Conversationnelle,
Conversationnelle,
Génération
et des etc...
Programmation,
Programmation,
etc...
applications Couche
Orientée
Orientée logicielle
logicielle
utilisateurs
Orientée
Externe.
Externe.
Langage
Langage
Niveau des d'Accès
d'Accès
Outils Unique
Unique
4e
utilisateurs (( e.g
e.g
Génération
et (des SQL)
SQL) etc...
applications Orientée
utilisateurs
utilisateurs
Orientée Couche logicielle
Outils
Outilsd'Exploitation
d'Exploitation
Langage
Outils Conversationnelle,
Conversationnelle,
d'Accès
Outils 4e
4e Unique
Génération
Génération e.g SQL)Programmation,
etc...
etc... Programmation, Externe.
externe.
Externe.
utilisateurs
utilisateurs
utilisateurs utilisateurs
Orientée
Outils d'Exploitation
Outils d'exploitation
Langage d'AccèsConversationnelle,
interactive,
Unique etc... Programmation,
Programmation,
( etc...
e.g SQL) utilisateurs
utilisateurs Orientée
Externe.
Outils
LangageOutils
Langage 4e4eGénération
d'Accès
d'Accès Génération
Unique
Unique (( e.g
e.g SQL)
SQL) ! Orientée
Orientée
Couche utilisateurs
logicielle
Langage
Langage
Niveau Outils d'Accès
d'Accès Unique
4eUnique
des utilisateurs et des(((e.g.
Génération e.g
e.g SQL)
SQL) etc...
applications Couche logicielle
Orientée
Orientée utilisateurs
Outils Langage
Langage
Langage
d'Exploitation
Langage
Langage d'Accès
d'Accès
d'Accès Unique
Unique
Unique
Conversationnelle,
d'accès
d'Accès unique
Unique ((( e.g
e.g
e.g
((e.g SQL)
SQL)
SQL)
SQL) Programmation, utilisateurs
utilisateurs
Externe.
Outils d'Exploitation
Langage Outils
Langage
Langage Noyau
NoyauConversationnelle,
4e SGBD
d'Accès
d'Accès
d'Accès Génération
SGBD Unique
Unique
Unique ( SQL)
etc...
e.g
( e.gProgrammation,
SQL)
e.g SQL)
SQL)
Externe.
Couche
CoucheOrientée
utilisateurs
utilisateurs Orientée
logicielle
logicielle
Langage Outils
Outils 4e
d'Accès
Noyau Génération
SGBD Unique etc...
4e Génération etc...
( e.g SQL) Couche
Couche logicielle
utilisateurs
logicielle
Langage
Langage d'Accès
d'Accès Unique
Unique (( e.g
e.g SQL)
SQL) interne.
interne.
utilisateurs
interne.
interne.
Orientée Couche logicielle
Outils d'Exploitation Noyau
Accès
Accès Disques
DisquesSGBD
Conversationnelle, Programmation, Orientée
Externe.interne.
interne.
Langage
Langaged'Accès
d'Accès
Noyau
NoyauUnique
Unique
SGBD
SGBD ( e.g
( e.gSQL)
SQL) !! Couche
Couche
utilisateurslogicielle
logicielle interne.
Langage Outils Accès
Noyau
Noyau
d'Accès Disques
4eNoyau
NoyauNoyau
Noyau SGBD
SGBD
Unique
Génération
SGBD etc... ( e.g SQL) Couche
utilisateurs
Couche
Couche
Orientée
Orientée interne.
logicielle
logicielle
logicielle
Fichiers
Fichiers
Accès
Noyau Disques
SGBD ! Couche
interne.
interne. logicielle
Noyau
Noyau SGBD Couche
Orientée
Orientée
interne.
interne.
Orientée
Orientée
interne. logicielle
Fichiers
! Couche logiciell
Langage d'Accès
Langage d'Accès
Accès
Accès
Noyau Unique
Disques
Disques
Unique SGBD(( e.g
e.g SQL)
SQL) interne. CoucheFichiers
logiciel
LangageNoyau Noyau SGBD
Accès
Accès
d'Accès Noyau
SGBD
SGBDDisques
Disques
SGBD
SGBD
Unique ( e.g SQL) interne.
Couche Orientée
utilisateurs
Couche Orientée
logicielle
logicielle
Fichiers
Fichiers interne.
Accès SGBDDisques Orientée
Orientée Fichiers
Fichiers
interne.
Orientée
NoyauAccès
Noyau
Accès Disques
SGBD
SGBD
Disques ßCouche
Couche
Orientée
Orientéelogicielle
logicielle
Fichiers Fichiers
Fichiers
Base
Base
Accès
Noyau SGBD Disques
SGBD interne.
interne.
Orientée Fichiers
Accès
Accès
Accès
AccèsDisques
Disques
de
de
Base
Disques
Disques( e.g SQL) Orientée
interne.
interne.
interne. Couche
Orientée Fichiers
Orientéelogicielle
FichiersFichie
Langage d'Accès Unique Orientée Fichi
Accès
Accès
Accès
Noyau Disques
Disques
Données
DonnéesBase
de
AccèsBaseDisques
Disques
SGBD Orientée
Orientée
Couche
Fichiers interne.
Fichiers
Fichiers
logicielle
Accès
Noyau
Accès Base
Disques
de
Données SGBD
Disques ! CoucheFichiers
logicielle
NoyauBase
Base
de
de
Base
Données Orientée
Orientée
interne. Fichiers
Accès
de
de
Base
Données
Disques
Données
deBase Orientée Orientée Fichiers
interne.
Accès
Noyau SGBD Disques
Données
Données
de
SGBD
Données
Base
Base
Base
de Couche logicielle
Fichiers
Données
de Orientée Fichiers
de
de
Base Données
BaseDonnées Orientée
interne. Fichiers
Fig
Fig 44 Composants
Composants
Accès d'un
d'un SGBD.
SGBD.
AccèsDisques
Fig 4 Composants
Données
Données
de de
Base
Disques
d'un SGBD.
Données
Données de
Fig 4 Composants Base d'un SGBD.
Données Orientée Fichiers
Fig
Fig 44 Composants
Composants Based'un
d'un SGBD.
SGBD.
Fig
Fig 44
Fig 4 Composants
Composants
Composants
de
de d'un
d'un SGBD.
d'un SGBD.
SGBD.
Fig
Fig 4 4 Données
Composants
Composants d'un
d'un SGBD.
SGBD.
Fig
Fig 4
4 Composants
ComposantsDonnées d'un SGBD.
d'un SGBD.
Fig.
Fig
Fig 344- Composants
Composants
Composants
Base d'un
d'un d'unSGBD.
SGBD. SGBD.
Fig
Fig 44 Composants
Composants de d'un
d'un SGBD.
SGBD.
____________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________
Fig 4 Composants d'un SGBD.
Fig4 4Composants
Fig Composants d'unSGBD.
d'un SGBD.
____________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________
©
©Najib
NajibTOUNSI
TOUNSI Données 12
12
©©Najib Fig 4 Composants d'un SGBD.
____________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________
©
NajibTOUNSI
TOUNSI
Najib TOUNSI 13
13 12
________________________________________________________________________________________________________________
©Najib____________________________________________________________________________________________________________________
©____________________________________________________________________________________________________________________
Najib TOUNSI
TOUNSI 13 12
Fig 4 Composants d'un SGBD.
____________________________________________________________________________________________________________________
©
© Najib TOUNSI Fig 4 Composants d'un SGBD.
____________________________________________________________________________________________________________________
____________________________________________________________________________________________________________________
Najib TOUNSI
____________________________________________________________________________________________________________________
©Najib 12 13
©Najib
TOUNSI
TOUNSI Fig 4 Composants d'un SGBD. 13
13
____________________________________________________________________________________________________________________
©
© Najib
NajibTOUNSI
TOUNSI
__________________________________________________________________________________________________________________
Najib TOUNSI 1313
13
✘ Outils offerts par un SGBD:

✓ Interface SQL Interactive (ISQL):


C'est le moyen le plus simple d'accéder à une BD. On tape une requête et on a la réponse.
(SQL/PLUS Oracle, Commande MySQL MySQL, ModeSQL Access)

✓ Interface SQL Programmée (EmbeddedSQL ): (SQLPRO Oracle, ESQL Informix)


Besoin de programmation : On a un langage conventionnel dans lequel est incorporé le LBD
main() {…
scanf(données); /* début de programme*/
SELECT … FROM … WHERE…; /* accès à la BD /
printf(résulat);… /* suite de programme */
}

F SQL ANSI: SQL 80s SQL2 90s SQL3-Objet


Seules ces deux Interfaces sont standardisées

____________________________________________________________________________________________________________________
© Najib TOUNSI 13
✓ Usage d'écrans de saisies/éditions (FORM):
Ecran formaté avec rubriques libellées et données correspondantes affichées.
Utilisateurs non informaticiens, Simplicité de manipulation.

Fig. 4 - Formulaire d’interrogation. On tape le n° département, son nom s’affiche,


on appuie sur calculer et la moyenne des salaires de ses employés s’affiche

____________________________________________________________________________________________________________________
© Najib TOUNSI 14
✓ Edition de rapport (REPORT Writer):
Document chiffré (e.g. bilan, facture etc.) formaté contenant des données extraits de la BD.

Fig. 5 - Facture imprimée contenant des données calculées et extraites


d’une base de données
____________________________________________________________________________________________________________________
© Najib TOUNSI 15
✘ Autres Outils :

✓ Outils d'éditions graphiques :


Histogrammes, Diagrammes sectoriels (camemberts), tableurs ...

✓ Langage de « 4e génération (L4G) »:


Langage de très haut niveau intégrant à la fois le LBD, les écrans, les Reports dans

un même environnement de programmation.

L Langages propriétaires

✓ Interfaces avec autres systèmes / Communication en réseau.


BD Réparties, Architectures Clients/Serveurs, Serveurs WEB …

____________________________________________________________________________________________________________________
© Najib TOUNSI 16
✔ Pourquoi les Bases de Données (SGBD)

• Intégration et partage des données.

• Elimination (ou limitation) des redondances et des incohérences

(Intégrité des données)

• Rapprochement Users et Informations

• Indépendance Données/Programme.

– Niveau Physique :
Programmes indépendants des détails liés à l'organisation des fichiers et des méthodes d'accès etc …

– Niveau Logique :
BD conçue globalement, sans référence à un programme particulier. Chaque groupe d'utilisateurs peut
voir les données selon la forme désirée.

• Standardisation

• Contrôle Centralisé.

• What else …

____________________________________________________________________________________________________________________
© Najib TOUNSI 17
✔ Architecture des systèmes BD

Cadre formel pour la conception de SGBD.

Fig. 6 - Architecture ANSI/SPARC Pour une BD

____________________________________________________________________________________________________________________
© Najib TOUNSI 18
✔ Architecture des systèmes BD

✘ Schéma Conceptuel de Données: Représentation (abstraite) de tout le contenu de la base


Description de l'ensemble des informations dans le langage de définition de données.

✘ Schéma Interne : Représentation interne (concrète) de ce contenue.


gérée directement par le SGBD

✘ Schémas Externes (Vues externes) : Représentation de parties de la base.


Description des données telles qu'elles sont vues par un utilisateur (ou groupe).

____________________________________________________________________________________________________________________
© Najib TOUNSI 19