• Aucun résultat trouvé

INTRODUCTION AUX BASES DE DONNÉES

N/A
N/A
Protected

Academic year: 2022

Partager "INTRODUCTION AUX BASES DE DONNÉES"

Copied!
20
0
0

Texte intégral

(1)

INTRODUCTION AUX

BASES DE DONNÉES

Najib TOUNSI

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

(2)

____________________________________________________________________________________________________________________

© Najib TOUNSI 1

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

(3)

CONCEPTS DE BASE

✔ Ce qu'est une Base de Données

(4)

____________________________________________________________________________________________________________________

© Najib TOUNSI 3

✔ 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

(5)

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

(6)

____________________________________________________________________________________________________________________

© Najib TOUNSI 5

✘ 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

(7)

• Afficher le nom de tous avec leur salaires

SELECT NOM, SALAIRE FROM EMPLOYES

--- NOM SALAIRE

--- benali 5500

benamine 6000 benhlima 5700 bennani 7000 benahmed 8500 bensaid 6600 benazi 7000 bendaoud 7000 bennouna 5400 benkacem 7800

• Triés par salaire croissant

SELECT NOM, SALAIRE FROM EMPLOYES

ORDER BY SALAIRE

--- NOM SALAIRE

--- bennouna 5400

benali 5500 benhlima 5700 benamine 6000 bensaid 6600 benazi 7000 bendaoud 7000 bennani 7000 benkacem 7800 benahmed 8500

(8)

____________________________________________________________________________________________________________________

© Najib TOUNSI 7

– 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

(9)

✘ Exemples d'interrogations avec calcul:

• Calculer le salaire moyen

SELECT AVG (salaire) FROM EMPLOYES

--- AVG --- 7300

• Calculer le nombre d'employés SELECT COUNT (*) FROM EMPLOYES

--- COUNT --- 10

(10)

____________________________________________________________________________________________________________________

© Najib TOUNSI 9

✘ 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")

(11)

✔ 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

(12)

____________________________________________________________________________________________________________________

© Najib TOUNSI 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 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.

(13)

____________________________________________________________________________________________________________________

© Najib TOUNSI 12

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

____________________________________________________________________________________________________________________

© Najib TOUNSI 12

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Outils d'exploitation interactive, Programmation,

Outils 4e Génération etc...

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

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

____________________________________________________________________________________________________________________

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Noyau

SGBD Accès Disques

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers

Fig 4 Composants d'un SGBD.

Couche logicielle externe.

!

Orientée utilisateurs

Couche logicielle interne.

!

Orientée Fichiers Outils d'exploitation interactive, Programmation,

Outils 4e Génération etc...

____________________________________________________________________________________________________________________

© Najib TOUNSI 12

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Outils d'exploitation interactive, Programmation,

Outils 4e Génération etc...

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

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

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Noyau

SGBD Accès Disques

____________________________________________________________________________________________________________________

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers

Fig 4 Composants d'un SGBD.

Couche logicielle externe.

!

Orientée utilisateurs

Couche logicielle interne.

!

Orientée Fichiers Langage d'accès unique (e.g. SQL)

____________________________________________________________________________________________________________________

© Najib TOUNSI 12

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Outils d'exploitation interactive, Programmation,

Outils 4e Génération etc...

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

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

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Noyau

SGBD Accès Disques

____________________________________________________________________________________________________________________

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers

Fig 4 Composants d'un SGBD.

Couche logicielle externe.

!

Orientée utilisateurs

Couche logicielle interne.

!

Orientée Fichiers Noyau

SGBD

____________________________________________________________________________________________________________________

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Outils d'exploitation interactive, Programmation,

Outils 4e Génération etc...

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

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

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Noyau

SGBD Accès Disques

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers

Fig 4 Composants d'un SGBD.

Couche logicielle externe.

!

Orientée utilisateurs

Couche logicielle interne.

!

Orientée Fichiers Accès Disques

____________________________________________________________________________________________________________________

© Najib TOUNSI 12

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Outils d'exploitation interactive, Programmation,

Outils 4e Génération etc...

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

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

____________________________________________________________________________________________________________________

© Najib TOUNSI 13

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers Noyau

SGBD Accès Disques

✘ Structure Fonctionnelle d'un SGBD:

Niveau des utilisateurs et des applications

Outils d'Exploitation Conversationnelle, Programmation, Outils 4e Génération etc...

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

Noyau SGBD Accès Disques

Base de Données

Fig 4 Composants d'un SGBD.

Couche logicielle Externe.

Orientée utilisateurs

Couche logicielle interne.

Orientée Fichiers

Fig 4 Composants d'un SGBD.

Couche logicielle externe.

!

Orientée utilisateurs

Couche logicielle interne.

!

Orientée Fichiers

Fig. 3 - Composants d'un SGBD.

Couche logicielle externe.

ß

Orientée utilisateurs

Couche logicielle interne.

ß

Orientée Fichiers

(14)

____________________________________________________________________________________________________________________

© Najib TOUNSI 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 (E

mbedded

SQL ):

(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 SQL

2

90s SQL3-Objet

Seules ces deux Interfaces sont standardisées

(15)

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

(16)

____________________________________________________________________________________________________________________

© Najib TOUNSI 15

✓ 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

(17)

✘ 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 …

(18)

____________________________________________________________________________________________________________________

© Najib TOUNSI 17

✔ 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 …

(19)

Architecture des systèmes BD

Cadre formel pour la conception de SGBD.

(20)

____________________________________________________________________________________________________________________

© Najib TOUNSI 19

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

Références

Documents relatifs

Ensuite, pour un programme en mode normal on peut utiliser Compile ASM file, puis Link OBJ File, ou encore Assemble & Link dans le menu Project.... Unité A2:

– priority_queue : manipule des objets de type T dans un conteneur (par défaut vector) et les range en fonction d’une relation d’ordre (par

Pour recherche dans une même table (même numéro pour quels clients?) utiliser un AS pour renommer .... Le natural join, je dois renommer les champs à ne

Pilote : INRA Unité Infosol ; copilote : Agrocampus Ouest.. Axe 4 : faire connaître et former à l’utilisation des données sol Pilote : Groupe ISA Lille ; copilote : APCA

Remarques : les classes accédant aux bases de données faisant partie du framework sont des classes managées ; il en découle les corollaires suivants :.. • Pour créer un objet

Par exemple pour utiliser la librairie libtest.a du répertoire /usr/src/test avec le programme prg3.c il faut lors de l'édition des liens exécuter la commande..

On plus des commandes, Matlab comme tout langage de calcul scientifique et riche avec son bibliothèques de fonction mathématiques, ces fonctions sont offertes pour implémenté

ANNEXE A10 • LES BASES DE DONNÉES NON RELATIONNELLES ANNEXE A11 • CONSTRUCTION D’UNE BASE DE DONNÉES ANNEXE A12 • LE MODÈLE ENTITÉ-ASSOCIATION DE BASE ANNEXE A13