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 Tirage: octobre 10, 2008
PLAN DE COURS

✔ Concepts de Bases
Base de Données
Système Gestion de Bases de Données
Intégration et Partage

✔ 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 Tirage: octobre 10, 2008 1
CONCEPTS
DE BASE

✔ Ce qu'est une Base de Données

SGBD

BD

Programmes Utilisation
d'Application Interactive

fig 1 Schéma de Principe d'une BD

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 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 Tirage: octobre 10, 2008 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 Tirage: octobre 10, 2008 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 Tirage: octobre 10, 2008 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 Tirage: octobre 10, 2008 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 Tirage: octobre 10, 2008 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 Tirage: octobre 10, 2008 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 Tirage: octobre 10, 2008 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.

m Niveau
Requêtes
Utilisateurs Logique

SGBD

Accès Aux Niveau


Fichiers Physique

BD

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.

Le SGBD gère aussi les programmes que l'utilisateur développe et permet leurs exécutions à la demande.

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 10
FOURNISSEURS PRODUITS Modèle Externe
-Numéro FOURNIT
-Numéro
-Nom
-Adresse
-Quantité -Nom
-Prix 

SGBD

FOURNISSEURS

Modèle Interne


PRODUITS

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 11
✘ 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 utilisateur .

– 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.

 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é.

 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).

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

 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 Tirage: octobre 10, 2008 12
✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Couche logicielle
Outils d'Exploitation Conversationnelle, Programmation, Externe.
Outils 4e Génération etc...
Orientée
utilisateurs

Langage d'Accès Unique ( e.g SQL)

Noyau SGBD Couche logicielle


interne.
Accès Disques
Orientée Fichiers

Base
de
Données

Fig 4 Composants d'un SGBD.

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 13
✘ Outils offerts par un SGBD:

✓ Interface SQL interactive (ISQL): (SQL/PLUS Oracle, RDSQL Informix, ModeSQL Access)

C'est le moyen le plus simple d'accéder à une BD. Requête/Réponse. (cf. interpréteur de commande)

✓ 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( critère recherche); SELECT FROM …; printf(résulat);…}

✓ Usage d'écrans de saisies/éditions (FORM Editer):


Ecran formaté avec rubriques libellées et données correspondantes affichées.
Users non informaticien(ne)s, Simplicité de manipulation.

✓ Edition de rapport (REPORT Writer):


Document chiffré (e.g. bilan) formaté contenant des données extraits de la BD.

 SQL ANSI: SQL 86 SQL 89 SQL2 92 (SQL96-Objet)


Seules les 2 premières Interfaces sont standardisées

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 14
✘ 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.

 Langages propriétaires

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


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

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 15
✔ Pourquoi les Bases de Données (SGBD)

• Intégration et partage

• Limitation (élimination) des redondances et des Incohérences

• Intégrité des données

• Rapprochement Users et Informations

• Indépendance Données/Programme.

– Niveau Physique:
Pgmes 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 à programme particulier. Chaque groupe d'utilisateurs peut
voir les données selon la forme désirée.

• Standardisation des SI

• Contrôle Centralisé.

• etc …

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 16
✔ Architecture des systèmes BD

Cadre formel pour la conception de SGBD.

Schéma Schéma Schéma


Externe ... Externe
Externe

Schéma Conceptuel

Schéma Interne

BD

Fig. 5 Architecture ANSI/SPARC Pour une BD

____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 17
✔ 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 Tirage: octobre 10, 2008 18
____________________________________________________________________________________________________________________
© Najib TOUNSI Tirage: octobre 10, 2008 19