SGBDR

Introduction aux bases de données relationnelles

I.NOTION DE BASE DE DONNEES

1.Introduction à la gestion des données

1.1.  Notions de donnée et d’information

1.1.1.Activité :

Chaque étudiant fourni à l’administration de son école les documents nécessaires pour former un dossier d’obtention de sa bourse après sa réussite.

Les documents nécessaires sont :

Ü Photocopie de CIN

Ü Attestation de salaire du père et de la mère

Ü Fiche d’impôt.

A la direction générale de l’éducation (MEN) un agent fait le regroupement des différents dossiers et vérifie que tous les documents sont complets et élabore une fiche pour chaque élève contenant un numéro, nom et prénom, adresse et lycée et renvoie ces dossiers au service (MENHATY)

Dans le service MENHATY un agent vérifie l’exactitude des documents et saisie tous les renseignements nécessaires pour tout étudiant dans un ordinateur pour que ce dernier affiche une décision : refus ou acceptation

Question : donner un nom pour chaque étape pour le traitement des dossiers

Réponse :

Ü Collecte des renseignements : collecte

Ü Réalisation d’une fiche :

Ü Vérification des documents : contrôle

Ü Saisie des renseignements par l’ordinateur : saisie

Ü Affichage de résultat : traitement et résultat

ÞLes renseignements pour tout étudiant forme des données pour chacun qui à leur tour donne des informations sur chaque étudiant.

1.1.2.Définitions :

Une donnée est une description élémentaire d’une information

Plusieurs données regroupées et se rapportant à un même contexte donnent naissance à l’information.

1.1.3.Les éléments constitutifs de l’information

Ü L’information se réfère à un objet du monde réel : c’est l’entité

Ü Une entité est décrite par un ensemble de données : ce sont les attributs

ÜUn attribut prend des valeurs différentes ayant un type de données bien déterminées (Texte, Numérique, date, …).

ÜLes entités peuvent avoir des liens entre elles

Exemple1 : 

§  L’entité : personne

§  Les attributs : CIN, nom, prénom

§  Les valeurs : 021455898, Rezgui, Adel

1.2.  La persistance

Pour ne pas perdre ces données, que faut-il faire ? (Sauvegarde, enregistrement, mémorisation, stockage).

Par quel moyen ? (Papier ou outil informatique)

Donc une information qui a tendance de se perdre est une information volatile volatilité ≠ persistance donc

Persistance = mémorisation + disponibilité

Pour mémoriser une information on peut utiliser : le papier ou un outil informatique et former un fichier :

î  L’organisation en papier :

Elle consiste à utiliser des papiers, des registres, des fiches, etc.

Cette organisation présente plusieurs inconvénients : classement, recherche, taille, etc.

î  L’organisation en fichier :

- Elle consiste à utiliser un outil informatique pour sauvegarder les informations

- Cette solution présente des inconvénients : temps d’accès, redondances des informations, écriture du programme à chaque accès, etc.

Þ   Suite à ces inconvénients cités une recherche à été élaborer pour trouver une solution optimale ce qui a donner naissance aux concepts de base de données

2.Les bases de données : la notion de BD

2.1.  Définition

Ensemble informatique cohérent d'informations susceptibles d'être utilisées simultanément par plusieurs personnes.

En fait, une base de données est un ensemble de fichiers mis en commun par plusieurs utilisateurs. C'est donc un ensemble de données structurées, sûres, cohérentes et partageables.

2.2.  Avantages d’une BD

*La centralisation :

Les données sont saisies une seule fois ce qui évite la redondance et peuvent utiliser par plusieurs programmes et plusieurs utilisateurs.

*Indépendance des données et programmes :

Les données sont décrites indépendamment des programmes

*Intégrité des données :

Une base de données est subite à des règles fondamentales (unicité, référence, valeur) permettant d’assurer sa cohérence

*Partage des données :

Plusieurs utilisateurs accèdent au même temps à la base sans perturber son fonctionnement

2.3.  Les modèles de BD

On distingue 3 modèles de bases de données ; la différence entre les trois c’est la représentation des liens entre les données de la base

2.3.1.Le modèle hiérarchique

Le lien possible dans ce modèle est père-fils : un objet peut avoir plusieurs fils mais un fils à un seul père.

2.3.2.Le modèle réseau

Une base de données réseau se présente comme un graphe, ou réseau

2.3.3.Le modèle relationnel

Les entités et les liens sont représentes sous forme des tables sous forme d’un tableau à deux dimensions.

II.NOTION DE SYSTEMES DE GESTION DE BASES DE DONNEES

1.Définition et exemples de SGBD :

1.1.  Définition :

(Système de Gestion de Bases de Données) ou (Data Bases Management System)

C’est un logiciel qui permet de décrire, modifier, interroger et administrer les données d’une base de données.

Un S.G.B.D est constitué de deux composantes principales :

§Le moteur qui réalise les fonctions principales d’un SGBD.

§L’interface (entre les utilisateurs de BD et le moteur) permet un accès facile aux données.

1.2.  Les principaux SGBD :

2.Les fonctions d’un SGBD

Le SGBD assure un ensemble de fonctions

Figure 1 : architecture fonctionnelle d’un SGBD

2.1.  La définition des données :

Le SGBD offre un Langage de Description de Données (LDD), qui permet de décrire :

ÜLa liste des objets (entités)

ÜLa liste des attributs de chaque objet

ÜLa liste des liens entre les objets

ÜLa liste des contraintes (une contrainte est une règle obligatoire qui peut s’appliquer sur un objet, un attribut ou un lien)

Exemple : 

§Liste des objets : client, location, voitures

§Liste des attributs : (voir exemple leçon précédente)

§Contrainte : un client ne peut pas louer plus qu’une voiture à la fois.

2.2.  La manipulation des données

Le SGBD offre un Langage de Manipulation de Données (LMD), qui permet, en utilisant des requêtes, de réaliser :

ÜDes recherches de données

ÜDes créations de données

ÜDes modifications de données

Ü Des suppressions de données.

Exemples :

§  Insertion/ajout de nouvelles voitures.

§  Modification de l’adresse d’un client

§  Suppression d’un DVD

§  Recherche des clients fidèles (qui louent souvent des voitures)

2.3.  L’intégrité des données

L’intégrité permet d’assurer la cohérence et la fiabilité des données en respectant certaines règles appelées contraintes d’intégrité.

Exemples : dans la base de données d’un lycée, l’attribut note doit contenir des valeurs comprises entre 0 et 20.

2.4.  La gestion des accès concurrents

Le SGBD offre des mécanismes de gestion de conflits (problèmes) des accès simultanés. Parmi ces mécanismes : permettre un accès multiple lors de la consultation des données ou   verrouiller les données en cas de modification pour certains utilisateurs.

Exemples : interdire la modification des données pour un groupe d’utilisateurs et l’autoriser pour d’autres

2.5.  La confidentialité

Le SGBD assure la confidentialité des données par le biais de mots de passe et de privilèges d’accès.

Exemple : seul le directeur peut modifier l’affectation d’un élève.

2.6.  La sécurité de fonctionnement

Le SGBD offre des mécanismes permettant de remettre rapidement la BD dans un état opérationnel en cas d’incident matériel ou logiciel. Elles sont basées sur La journalisation (historique) de la BD et leur réexécution automatique.

Exemples : Sauvegarde de la BD une fois par semaine ; Restauration de la BD en cas de panne.

Remarques : un SGBD portable est un SGBD indépendant du système d’exploitation il est opérationnel quelque soit ce système : il n’utilise pas les fonctionnalités du S.E.

3.Le cycle de développement des BD

On distingue 4 niveaux de représentation des données (conceptuel, logique, externe et interne) :

§Le niveau conceptuel est indépendant de toute technologie (indépendant du SGBD) ; il concerne la définition des données

§Le niveau logique qui structure les données selon le modèle relationnel

§Le niveau externe concerne la manipulation de la BD par des applications utilisateurs

§Le niveau interne (physique) renferme la liste des contraintes liées au matériel et aux logiciels utilisés. (ça dépend du SGBD)

Þ   Pour achever la mise en place de la BD, on doit écrire la liste des programmes, tester, installer, exploiter et maintenir une base d’essai.

Figure 2 : Cycle de développement d’une BD

4.Les intervenants du domaine BD

Les intervenants du domaine peuvent être classifiés en fonction de leur fonction, de leur type d’activité et du degré de spécialisation requis pour assurer cette activité.

4.1.  Les utilisateurs de BD

§Utilisateurs occasionnels utilisent le LMD

§Utilisateurs naïfs accèdent à la BD par « presse-bouton »

§Utilisateurs spécialisés maîtrisent l’utilisation des différents outils du SGBD

4.2.  Les concepteurs er les développeurs

§Concepteurs définissent la structure des BD et manipulent la conception des logiciels

§Développeurs d’application réalisent la construction des programmes et maîtrisent le LMD

4.3.  Les administrateurs des bases et des systèmes

§Il est responsable d’une ou de plusieurs BD.

§Il assure le rôle de délivrance des autorisations d’accès à la base et à la coordination des activités

§Il est responsable des problèmes de performances et de sécurité de fonctionnement de SGBD

4.4.  Les réalisateurs de logiciels de gestion et de développement de bases de données

§Les développeurs d’outils facilitant la conception, l’implémentation et l’utilisation de BD

§Les concepteurs de SGBD maîtrisent les techniques d’implantation des SGBD, la compilation, le système d’exploitation, les réseaux, …

III.STRUCTURE D’UNE BASE DE DONNEES RELATIONNELLE

1.Notion de table :

1.1.  Activité 1

On se propose de créer la base de données gestion de notes pour manipuler les notes d’un élève dans un lycée.

Dans cette base on peut avoir les entités suivantes : élève, matière, note

ü Un élève peut être identifié par sa matricule, son nom, son prénom, sa classe, sa section et son adresse.

ü Une matière peut être identifiée par code matière, libellé et coefficient.

ü L’entité note peut avoir comme attribut la matricule de l’élève, le code matière, la note de contrôle et la note de synthèse.

1.2.  Définition :

Une table est un ensemble de données relatives à une même entité. Elle est structurée sous forme d’un tableau (liste). Une table peut être appelée aussi une relation (elle contient les données qui sont en relation avec un objet donné)

1.3.  Exemples de l’activité:

ü Table Elève

mat_eleve

Nom 

Prénom 

Classe 

Section 

Adresse 













ü Table Matière

Code_mat

Libellé

Coefficient







üTable Note :

Mat_eleve

Code_mat

Note_cont

Note_synth









Structure d’une table

Þ   Remarques :

Les données d’une table peuvent être stockées sur un ou plusieurs fichiers. Le même fichier peut contenir aussi les données de plusieurs tables.

La table peut être considérée comme un ensemble mathématique ainsi nous pouvons faire l’intersection et l’union de deux tables

2.Notion de colonnes:

2.1.  Définition:

Une colonne (ou champ ou attribut) est une propriété élémentaire de l’entité décrite par une table. (en anglais column)

2.2.  Les caractéristiques d’un champ:

Nom (le choix du nom est assujetti aux mêmes règles de choix de noms de variables en programmation

type des données (numérique, texte, date, booléen, etc.)

taille éventuelle (longueur maximale prise par les valeurs de ce champ)

un indicateur de présence obligatoire (OUI/NON) (OUI c.-à-d. que le champ doit être toujours renseigné Not Nul; NON c.-à-d. que le champ peut être vide donc on dit qu’il a la valeur Nul ≠ zéro (numérique) ≠ chaine vide (texte))

Valeur par défaut

Validité si: il y a une règle sur  les valeurs qu’il faut utiliser pour ce champ (supérieur à une certaine valeur, comprises entre deux valeurs, etc.)

2.3.  Exemples de l’activité :

Pour la table Note

Mat_eleve

Code_mat

Note_cont

Note_synth

M1456

145An2

14.50

12.00

K7896

123Re3

10.75

11.25


Nom

Description 

Type de données

Taille

Obligatoire

valeur par défaut

valeurs autorisées

mat_el

matricule de l’élève

texte (ou chaine)

5

oui 



code_mat

code de la matière

texte (ou chaine)

6

oui



note_cont

note de contrôle

numérique

4,2

non

88.88

>=0

<= 20

note_synth

note de synthèse

numérique

4,2

non 

88.88

>=0

<= 20

Þ   Remarques:

4,2 veut dire que la valeur de ce champ de type numérique peut contenir au maximum 4 chiffres dont deux chiffres après la virgule (deux décimales)

6 veut dire que les valeurs de ce champ de type texte peuvent contenir au maximum 6 caractères

3.Notion de lignes:

3.1.  Définition :

Une ligne (ou enregistrement ou n-uplet) est une occurrence de l’entité représentée par la table. (en anglais record ou raw)

3.2.  Exemples de l’activité : Pour la table Elève

mat_eleve

Nom 

Prénom 

Classe 

Section 

Adresse 

M1456

Kaabi

Besma

4 SI 2

SI

Tunis

K7896

Agha

Ahmed

4 Math 1

Math

Manouba

Þ   Remarque:

Lorsque nous créons une table, elle est initialement vide. Donc pour l’exploiter, nous pouvons insérer de nouvelles lignes, modifier certaines lignes, supprimer certaines lignes dont nous avons plus besoin ou consulter certaines lignes selon un critère bien déterminé.

4.Notion de clé primaire :

Question: Dans l’activité, quels sont les champs qui permettent d’identifier d’une manière uniques chacune des entités?

Þ   Définition:

La clé primaire (ou identifiant) d’une table est un champ ou un ensemble de champs permettant d’identifier de manière unique chaque enregistrement de la table. Donc elle est unique et non Nul (en anglais primary key)

5.Liens entre tables :

5.1.  Activité 2:

On se propose de créer la base de données « gestion de bibliothèque » d’un lycée

Dans cette base de données, on a les tables suivantes :

*La table Livre caractérisée par le code du livre, son titre, son auteur et son thème

*La table Elève caractérisé par son numéro d’inscription, son nom, son prénom et sa classe

*La table Emprunt caractérisé par sa référence, le numéro d’inscription de l’élève qui a fait l’emprunt, le code du livre emprunté, date de l’emprunt.

  1. Quels sont les clés primaires de chaque table ?
  2. Quels sont les liens entre les tables ?

5.2.  Définition :

Un lien entre deux tables A et B se traduit par l’ajout dans la table B d’un champ correspondant à la clé primaire de la table A. Ce champ est appelé clé étrangère.

Dans ce cas, A est la table mère et B est la table Fille

5.3.  Exemple :

Table élève :

Numero_inscri

Nom

Prenom

classe






Table emprunt :

Reference

Numero_inscri #

Code #

Date_emprunt





Þ   La table élève est la table mère et la table emprunt est la table fille

Þ   Dans ce contexte relationnel, les tables du domaine géré admettent des liens entre elles qu’on peut formuler de la façon suivante :

î  Exemple de l’activité 2 :

ÜUn élève peut emprunter un ou plusieurs livres.

ÜUn emprunt concerne un et un seul élève.

ÜUn livre peu être emprunté par un ou plusieurs élèves.

ÜUn emprunt concerne un et un seul livre.

Þ   On parle donc de liens de types 1 à plusieurs (1, n) ou (1, ∞).

6.Notion de contraintes d’intégrité

6.1.  Définition :

Une contrainte d’intégrité est une règle appliquée à une colonne (champ) ou une table et qui doit être toujours vérifiée.

6.2.  Types de contraintes :

Les principaux types de contraintes d’intégrité sont :

ØLes contraintes de domaine : elles s’appliquent sur les champs pour définir leur validité (valide si)

ØLes contraintes d’intégrité des tables : elles permettent de s’assurer que chaque table possède obligatoirement une clé primaire

ØLes contraintes d’intégrité référentielle : elles permettent de s’assurer que les valeurs introduites dans le champ clés étrangère d’une table fille figure déjà dans la table mère. Donc la suppression d’un enregistrement d’une table mère A utilisé par la table fille B est interdite

7.Représentation de la structure de la base de données

La structure d’une base de données peut être représentée de deux manières : la représentation textuelle et la représentation graphique

7.1.  Représentation textuelle :

Þ   Exemple de l’activité 2 :

Eleve(numero_inscri, nom, prenom, classe)

Livre(code, titre, auteur, thème)

Emprunt(reference, numero_inscri #, code #, date_emprunt)

7.2.  Représentation graphique :

Þ   Exemple de l’activité 2 :

IV.DEMARCHE DE DETERMINATION DE LA STRUCTURE D’UNE BASE DE DONNEES

1.Introduction :

Une base de données représente un domaine du monde réel

Les étapes qui consistent à identifier les tables, les colonnes, les clés, etc. permettent la conception de la base de données.

Ces étapes sont les suivantes : 

Délimiter le(s) domaine(s)

Déterminer les colonnes

Déterminer les tables

Affecter les colonnes aux tables

Déterminer les clés primaires

Déterminer les relations entre les tables

Analyser et affiner la BD

2.Délimiter le(s) domaine (s):

(Voir activité/ question 1)

Domaine = Société X de confection

Il s’agit de déterminer le domaine ou le monde réel de la base de données.

Exemple : la base de données d’une bibliothèque, d’un lycée, d’une banque, etc.

3.Délimiter les colonnes :

(Voir activité/ question 2)

Colonne

Description

Type de données

Taille

Obligatoire

Valeurs par défaut

Valeurs autorisées

Sujet

Nom_anim

Nom de l’animateur

Texte 

15

O



Animateur 

Prenom_anim

Prénom de l’animateur 

Texte

15

O



Animateur 

Adr_anim

L’adresse de l’animateur

Texte 

30

N



Animateur 

Tel_anim

Le numéro de téléphone de l’animateur 

Texte 

15 

O



Animateur 

cin

Le numéro de carte d’identité nationale

Texte

8

O



Animateur 

Code 

Le code du séminaire

Texte

10

O



Séminaire 

theme

Le thème traité par le séminaire

Texte

15

O



Séminaire 

Date_sem

La date du séminaire 

Date


O



Séminaire

Duree 

La durée du séminaire

numérique

4

O


>=240

Et

<=1440

Séminaire 

Lieu 

Le lieu du séminaire

Texte 

10

O

"Société X"


Séminaire 

Nom_emp

Le nom de l’employé

Texte

15

O



Employé 

Prenom_emp

Le prénom de l’employé

Texte

15

O



Employé 

Adr_emp

L’adresse de l’employé

Texte 

30

N



Employé 

Tel_emp

Le numéro de téléphone de l’employé

Texte 

15

O



Employé 

matricule

Le matricule de l’employé

Texte

10

O



Employé 

Il s’agit de déterminer la liste des colonnes de la base de données, ainsi que leurs caractéristiques et le sujet auquel elles se rapportent

Une colonne (champs ou attribut) représente une information élémentaire en relation avec le domaine (nom et prénom par exemple doit être décomposé en deux)

ÜElle ne doit pas être un résultat d’un calcul (prix_total= quantité*prix_unitaire ne peut pas être une colonne).

ÜOn ne doit ni omettre une colonne, ni mettre deux colonnes similaires.

4.Délimiter les tables :

(Voir activité/ question 3)

Nom table

Description

Séminaire 

Elle décrit un séminaire de formation 

Animateur 

Elle contient les informations d’un animateur de séminaire

Employé 

Elle contient les données relatives à un employé.

Il s’agit de déterminer la liste des tables de la base de données ainsi que leurs descriptions

5.Affecter les colonnes aux tables:

(Voir activité/ question 4)

Table séminaire : code, theme, date_sem, duree, lieu 

Table employé : matricule,nom_emp, prenom_emp, adr_emp, tel_emp 

Table animateur : cin, nom_anim, prenom_anim, adr_anim, tel_anim

Il s’agit d’attribuer les colonnes dégagées dans l’étape 2 aux tables dégagées dans l’étape 3 en respectant les règles suivantes :

  • Un champ doit appartenir à une seule table (sauf la clé étrangère)
  • Si la présence d’un champ dans une table entraine la répétition de la même information dans plusieurs lignes de la table alors ce champ doit nécessairement appartenir à une autre table (par exemple on ne peut pas inclure le prénom de l’animateur dans la table séminaire, parce que nous allons avoir des lignes contenant des séminaires différents avec le même prénom de l’animateur vu qu’il peut animer plusieurs séminaires)

6.Déterminer les clés primaires

(Voir activité/ question 5)

Table

Clé primaire

Séminaire 

Code 

Animateur 

Cin

Employé

Matricule 

Il s’agit de préciser pour chaque table, le ou les champ (s) qui permettent d’identifier d’une manière unique chaque occurrence de la table.

ð En cas où, vous ne trouverez pas dans l’énoncé un tel champ, il faut l’ajouter.

7.Déterminer les liens entre les tables

(Voir activité/ question 6)

  • Il y a un lien entre la table séminaire et animateur donc on doit ajouter le champ cin dans la table séminaire (clé étrangère) : table mère : animateur, table fille : séminaire
  • Il y a un lien entre la table séminaire et employé donc on doit ajouter le champ code dans la table employé (clé étrangère) : table mère : séminaire, table fille : employé 

Il s’agit de déterminer les liens entre les tables : Tout d’abord déterminer les tables mères et les tables filles et puis déduire les clés étrangères dans chaque table fille en se basant sur les contraintes d’intégrité.

8.Analyser et affiner la base de données :

8.1.  Représentation textuelle

(Voir activité/ question 7)

Animateur (cin, nom_anim, prenom_anim, adr_anim, tel_anim)

Séminaire (code, theme, data_sem, duree, lieu, cin#)

Employé (matricule, nom_emp, prenom_emp, adr_emp, tel_emp, code#)

8.2.  Représentation graphique

(Voir activité/ question 8)


Après la conception de la base de données, il est préférable de la représenter sous sa forme graphique pour pourvoir vérifier s’il y a des anomalies ou des omissions de quelques champs.


Télécharger le cours

Télécharger l'activité



Partager ce cours avec tes amis :
 
Rédigé par Mostafa Sedoki
Professeur d'Informatique dans les CPGE

Cours Similaires :