Vous êtes sur la page 1sur 49

06/09/2021 Cours de Formation en Algorithme et Base

de données
Je manipule les datas !

Filière Industrielle et Technologie


ARMAND KODJO : Ingénieur Concepteur des Systèmes d’Information
Cours de Formation en Algorithme et Base de données

PARTIE I : OBJECTICFS GENERAUX DU COURS


D’ALGORITHME
Il est question dans le cadre de ce cours de données à l’étudiant les
concepts de bases en algorithme, cela se fera en plusieurs étapes structurées
comme suit :
Le concept de base qui donne idée plus claire sur la notion d’algorithme ;
Les structures de données qui viennent un sens plus large à la mise sur
pied des algorithmes ;
Les fonctions et procédures qui facilitent l’écriture des algorithmes
Les tableaux qui décrivent l’aspect plus dynamique des algorithmes ;
Les tris qui permettent d’ordonner les objets manipulés au cours de
l’exécution d’un algorithme ;
Il faut noter que l’algorithme viendra faciliter la programmation et la
traduction de cet algorithme sera fait dans langage de programmation à l’instar
du pascal, le c et le vb.net.

Par Armand KODJO ING CSI Option Génie Logiciel Page 1


Cours de Formation en Algorithme et Base de données

CHAPITRE I : CONCEPS FONDAMENTAUX


I. OBJECTIFS GENERAUX

Le but de l’algorithme est d’acquérir une méthode, des outils (démarches) à suivre pour
résoudre un problème informatique. Il s’agit de donner les instructions à un ordinateur pour
qu’il nous produise un résultat. Cela passe par plusieurs étapes dont les plus importantes
(figure 1.1).cependant, le résultat qui sera obtenu à travers l’ordinateur se fera suivant les
méthodes fournit par le programme qui est une traduction de l’algorithme. Par ailleurs les
traitements se feront sur la base des informations pris en entrées.

Énoncé du Analyse du Algorithme Traduction en Exécution du Résultat


Problème Problème programme programme

Figure 1.1 : étape de mise en place d’un algorithme

II. OBJECTIFS SPECIQUES

Définir les éléments qui permettront la compréhension plus facile de l’algorithme, et qui
porte sur, l’algorithmique et, en mettant l’accent sur l’aspect programmation.
III. DEEFINITION
Un algorithme est une suite finie de règles à appliquer dans un ordre déterminé et en
nombre fini de données pour arriver à un certain résultat. Tout algorithme doit s’arrêter au
bout d’un temps donné.

IV. ALGORITHMIQUE

Il s’agit de la science qui étudie les algorithmes.

V. LES QUALITE REQUISE DANS UN ALGORITHME

Un bon algorithme possède les qualités suivantes :


doit être claire, facile à comprendre et facile à interpréter.
Il doit être documenté c'est-à-dire contenir les commentaires ou être
accompagné d’un guide d’utilisation.
Il doit tourner sur tous les cas possibles
Il doit être limité et minimiser le nombre le nombre d’opérations à effectuer
Il doit occuper très peu de case mémoire pour être efficace

VI. ORGANISATION DES INFORMATIONS

Par Armand KODJO ING CSI Option Génie Logiciel Page 2


Cours de Formation en Algorithme et Base de données

Pour organiser des informations, on peut par exemple faire une partition d’un
ensemble de données, créer des fils, énumérer les nombre d’éléments de chaque fil, suivit
d’une incrémentation et enfin faire la liste des informations traitées.
VII. LES INFORMATIONS ET LES DONNEES

Toutes information est associée à un objet du monde réel. On peut avoir un étudiant
de l’établissement X ou encore une pause qui se passe entre 12h et 13h. Un objet peut être
une constate ou une variable. Un objet est décrit par une ou plusieurs informations.
Exemple : la carte nationale d’identité décrit plusieurs informations comme la taille, le peut
le nom. Un objet, peut être structuré ou simple. Un objet est dit simple lorsqu’il décrit une
seule information et composé lorsqu’il décrit plusieurs informations.
Exemple :
 la couleur blanche décrit un objet simple
 Un pays de l’Afrique centrale est un objet composé.
Par ailleurs si un objet est une variable, il est désigné par un identificateur

VIII. NOTION D‘IDENFICATEUR


Un identificateur est un mot composé de lettre et des chiffres ainsi que certains
caractères spéciaux comme le souligné « _ ». Un nidificateur doit commencer par une
lettre et ne doit pas contenir des caractères accentués. Il doit être choisit de façon à
rappeler une mnémonique.
Exemple : un_homme, unhomme
Les caractères proscrits dans les identificateurs sont :
‘’ ‘’ + - / * . ; , %

IX. CARACTERISTIQUE D’UNE INFORMATION

Une information possède deux caractéristiques principales qui sont : le type et la nature.
Le type renseigne sur le contenu d’une variable. La nature renseigne sur la provenance, la
durée et l’activité d’une information.
1. Les types

a. Les types simples


On distingue les constantes qui sont numériques. Exemple : les entier, les dates, les
réels. On distingue aussi le type simple de caractères. Tout caractères du clavier est un
exemple de ce type, ici, on peut concaténer les caractères c'est-à-dire mettre l’un à la suite
des autres. On parle aussi des types chaines de caractères. Exemple : ’’ Cameroun ‘’.
b. Les types booléens
Peut prendre diverses écritures soit oui |non, vrai| faux, 1|0, yes|no et i|o. et ne
peuvent prendre qu’une des valeurs ci cités. Le type d’une variable est le type des valeurs

Par Armand KODJO ING CSI Option Génie Logiciel Page 3


Cours de Formation en Algorithme et Base de données

constantes que prenne la variable. Exemple : considérons la variable pays d’Afrique centrale
qui a pour identifiant pays_ac. Son type est chaine de caractères.

c. Le type structuré
Il concerne les objets composés. On distingue :
 Le type structuré homogène c'est-à-dire les objets qui le composent sont
tous de même type. Exemple : un vecteur en vecteur maths, matrix, file, une
pile
 Les objets structurés hétérogène : c’est une structure composé de plusieurs
objets différents. L’ensemble des informations décrivant un objet structuré
et hétérogène est appelé un enregistrement logique. Exemple un fichier.

2. La nature d’une information


La nature nous renseigne sur la provenance, la durée et l’activité d’une information.
a. La provenance
Elle peut être primaire ou calculé. Une donnée primaire est une donnée recueillie dans
le monde réel. Elle sera dont introduite par saisie. Exemple : la date de naissance. Une
donnée calculée est le résultat d’un traitement : mon âge d’aujourd’hui.
NB : la nature d’information dépend souvent du contexte de l’utilisateur.
b. La durée
Une donnée peut être avoir une durée permanente ou une durée évènement

X. RUBRIQUE EXERCICES

Exercice 1 : définir : algorithme, algorithmique et programmation


Exercice 2 : Quelles sont les étapes de mise en place d’un algorithme.
Exercice 3 : selon vous qui peut écrire des algorithmes.

Par Armand KODJO ING CSI Option Génie Logiciel Page 4


Cours de Formation en Algorithme et Base de données

CHAPITRE II : LES ELEMENTS D’UN BASE D’UN


ALGORITHME
I. OBJECTIFS GENERAUX

Il est question dans le cadre de ce chapitre de donner aux étudiants des notions

préliminaires qui leur permettront de maitriser les éléments de base en algorithme.

II. OBJECTIFS SPECIQUES

Donner aux étudiants des compétences pour la mise en place bien d’une structurés

minimale d’un algorithme en utilisant les mots clés ou les réservés englobent dans les noms

suivants : variables, les constantes, les types de données, l’affectation, les opérateurs, la

structure d’un algorithme et les instructions de lecture et écriture.

III. NOTION D’OBJET

Un objet est un outil ou un être du monde réel que l’on manipule dans l’algorithme. Le

traitement d’un objet concerne la valeur de cet objet. Si cette valeur ne peut être modifié

nous parlerons de constante, sinon, nous parlerons de variable. Un objet est parfaitement

définit si nous connaissons ses 3 caractéristiques :

Son identificateur ;

Son type ;

Sa valeur ;

1. Les types d’objet

Il existe trois grands types d’objet qui sont :

Par Armand KODJO ING CSI Option Génie Logiciel Page 5


Cours de Formation en Algorithme et Base de données

a. Les booléens

L’ensemble des constantes est vrai ou faux et l’ensemble des opérateurs est : ET,
OU, NON

a b a et b a ou b a Non a
V V V V V F
V F F V F V
F F F V
F V F F

b. Les numériques

L’ensemble des constantes est R ou Z qui peuvent être réels ou entiers. L’ensemble des

opérateurs sont +, -, *, /, MOD, DIV, ^(puissance).

c. Chaines de caractères

Une chaîne de caractères est :

Soit une chaîne vide matérialisé par les double cote (‘’ ‘’) ;

Soit un caractère suivi d’une chaîne caractères.

Un caractère est : soit une lettre de l’alphabet soit différents codes d’opérateur

(+,/ ,*,- ….), un signe de ponctuation ou tout autre codes. Un caractère est lié à un code

numérique (code ASCII) qui le représente en machine et qui permet d’établir une relation

d’ordre.

2. Les opérations sur les chaînes de caractères


Exemple de chaîne de caractères : ‘’ Bonjours’’ et ‘’ il est 15 heures’’

IV. LES INSTRUCTIONS ELEMENTAIRES

1. L’affectation
C’est l’opération qui consiste à affecter une valeur à un objet. La notation

syntaxique est la suivante « identificateur» « valeur »

Par Armand KODJO ING CSI Option Génie Logiciel Page 6


Cours de Formation en Algorithme et Base de données

2. Déclaration des variables et constates


La déclaration se fait à l’aide du mot réservé var et les constantes à l’aide du mot

const. Exemple de déclaration de variable: var identificateur : type de la variable ;

Var x : entier ;

Exemple de constante: const pi=3.14 ;

3. Expressions et operateurs

a. Opérateurs numériques

Comme opérateurs numérique, nous pouvons avoir :


+ addition ;
- soustraction ;
* multiplication ;
/ division ;
DIV division entière ;
MOD reste de la division
Précisons également que le symbole ^ qui signifie « puissance ». Exemple 45
au carré s’écrira donc 45 ^ 2.

b. Opérateurs logiques (ou booléens)

Il s’agit du ET, du OU, du NON et du mystérieux (mais rarissime XOR).

c. Opérateur de Comparaison
Les opérateurs sont :
< Inferieur ;
<= inferieur ou égale ;
= égale ;
>Supérieur ;
>= Supérieur ou égale ;
<> différent.

Par Armand KODJO ING CSI Option Génie Logiciel Page 7


Cours de Formation en Algorithme et Base de données

Il faut préciser que les opérateurs de comparaisons portent sur une ou plusieurs valeurs

et, peuvent concerner les types entiers, réels et chaîne de caractères. Le résultat de

cette comparaison est une valeur booléenne.

4. Incrémentation et décrémentation
L’algorithme autorise les écritures simplifies pour l’incrémentation et la décrémentation

des variables. Ainsi, on a :

I=i+1 ; est incrémenté à i++ ;

I=i-1 ; est décrémenté à i-- ;

5. Les opérateurs combinent


L’algorithme autorise des écritures simplifiées lorsqu’une même variable est utilisée de
chaque côté ou du signe = d’affectation. Exemple :

a=a+b ; est équivalent à a+=b ;


a=a-b ; est équivalent à a-=b ;
6. Instruction d’entrée / sortie
Il existe une instruction de saisie qui permet de récupère une valeur sur un

périphérique d’entrée (clavier) et une instruction qui permet l’édition (sur l’écran).la

syntaxe de ces instructions est la suivante : saisir | lire correspond l’instruction

d’entrée ; écrire | afficher correspond à l’instruction de sortie.

7. Structure d’un algorithme


Afin que nous soyons certains de bien nous comprendre lorsque nous rédigeons des

algorithmes définissons de façon précise des règles d'écriture. Un algorithme s'écrit en

trois parties :

L’entête qui porte un identificateur, tout algorithme porte un identificateur

qui nous renseigne sur ce que fait l'algorithme ;

Les déclarations des constantes et variables, c’est le lieu par excellence de

déclaration des constates, variables ainsi que des objets et grandeurs ;

Le corps, c’est à ce niveau que les instructions sont traitées.

Par Armand KODJO ING CSI Option Génie Logiciel Page 1


Cours de Formation en Algorithme et Base de données

La structure simple d’un algorithme n’intégrant pas les sous programmes

(procédures et fonction) est la suivante :

Algorithme : identificateur ;
Constante ;
Variables ;
DEBUT
Instruction1 ;
Instruction2 ;
Instruction3 ;
:
Instruction n ;
FIN.

Par Armand KODJO ING CSI Option Génie Logiciel Page 2


Cours de Formation en Algorithme et Base de données

CHAPITRE III : LE CONCEPT D’INSTRUCTION


I. OBJECTIFS GENERAUX

Plusieurs éléments entre dans la mise au point des algorithmes afin qu’il puisse obéir

à la description réel des besoins exprimées. Jusqu’ici, l’écriture de l’algorithme reste

limitée. Voilà pourquoi les structures de données ont été définir afin de prendre en compte

tous les cas pouvant être exprimés.

II. OBJECTIFS SPECIQUES

Il est question pour nous ici de donner à l’étudiant des compétences qui leurs

permettront de maitriser les structures afin d’aboutir à une analyse plus complète des

algorithmes. Les rubriques concernées sont les suivantes :

Les instructions alternatives ;

Les structures itératives ;

Les structures de choix ;

III. INSTRUCTION ALTERNATIVE

1. Alternative simple ou première forme

C’est une structure dont la validation d’une condition entraine l’exécution d’une

instruction. Sa notation est la suivante :

si (condition) alors
action ;
Finsi ;
Exercice : écrire un algorithme qui affiche bienvenue au campus x si votre âge est

inférieur ou égal à 19 ans.

Par Armand KODJO ING CSI Option Génie Logiciel Page 3


Cours de Formation en Algorithme et Base de données

2. Alternative deuxième forme

Elle n’offre que deux issues possible à la poursuite de l’algorithme et s’excluant

mutuellement. Dans cette structure, l’exécution d’un des deux traitements ne dépend que

du résultat d’un test effectué sur la condition. Sa notation est la suivante :

si (condition1) alors
action1 ;
sinon
action2
Finsi ;

3. Imbrication du si

Il se peut que dans certains cas, l’expression du de la condition si ne suffise pas pour

exprimer tous les cas possibles. Nous pouvons alors exprimer un si après le alors d’un si. Et

/ou après le si non d’un si on parle alors d’imbrication de si.

IV. STRUCTURE DE CHOIX

La structure de choix permet une représentation plus claire d’un ensemble

d’alternative imbriqué. Plusieurs valeurs peuvent entrainer un même traitement. Nous

pouvons alors énumérer ces valeurs en les séparant par des virgules. Sa notation est la

suivantes :

suivant < valeur > faire

< valeur 1 > < action 1 >

< valeur 2 > < action 2 >

. . .

< valeur n > < action n>

sinon < action n +1>

fin si suivant

Par Armand KODJO ING CSI Option Génie Logiciel Page 4


Cours de Formation en Algorithme et Base de données

V. LES STRUCTURES ITERATIVES

Cette structure permet la répétition d’une ou plusieurs actions tant qu’une condition

est satisfaite. La condition est testée avant la première exécution de l’action définie. La

condition exprimée après l’instruction tant que permet l’exécution de l’action définie.

tant que < condition > faire


< Instructions>
Fin tant que

Exemple Affichons tous les nombres compris entre 1 et 5 dans l'ordre croissant
Algorithme test1;
Var i : entier
Debut
i 1;
tant que (i<= 5) faire
ecrire(‘’ la valeur de i est :’’,i) ;
i i+1 ;
fintque
fin.
VI. LES STRUCTURES REPETITIVE

Il s’agit de la structure répéter……..jusqu’à, qui permet de repérer une action jusqu’à

ce qu’une condition soit vérifiée. La condition n’est test qu’après une première exécution de

l’action définie. Sa notation est la suivante :

repeter
action ;
Jusqu’à< condition > ;

Par Armand KODJO ING CSI Option Génie Logiciel Page 5


Cours de Formation en Algorithme et Base de données

Exemple : Reprenons précédent avec une boucle Répéter ... jusqu’a

Algorithme test2 ;

Var i : entier

Debut

i 1;

repeter

ecrire(‘’ la valeur de i est :’’,i) ;

i i+1 ;

Jusqu’à(i > 5);

fin.

VII. LES STRUCTURES POUR


Elle permet de repérer une action un certain nombre de fois. La notation de la boucle
pour est la suivante :
pour < identificateur > <première valeur > a < dernière valeur >
avec le pas de «1» de façon général.

< actions >

fin pour ;

Exemple : Reprenons précédent avec une boucle pour

Algorithme test3 ;

Var i : entier

Debut

pour i 1 à 5 faire

écrire (‘’ la valeur de i est :’’,i) ;

finpour ;

fin.

VIII. EXERCICES
Exercice 1 : écrire un algorithme qui affiche la table de multiplication par 9.

Par Armand KODJO ING CSI Option Génie Logiciel Page 6


Cours de Formation en Algorithme et Base de données

Exercice 2 : écrire un algorithme qui calcul le factorielle d’un nombre. L’algorithme

devrait vérifier si le nombre saisi est positif.

Exercice 3 : a partir de la saisie de deux nombres a et b au clavier, résoudre

l’équation ax+b=0.

Exercice 4 : a partir de la saisie du prix unitaire (pu) d’un produit et de la quantité

commandée (qte), afficher le prix à payer (pap) en détaillant le port (port) et la

remise (rem) sachant que :

Le port est gratuit si le prix des produits (tot) est supérieur à 500f, dans le

cas contraire le port est de 2% du prix des produits ;

La remise est de 5% si tot est compris entre 200 et 1000f et de 10% au-delà

Exercice 5: écrire un algorithme qui d’afficher la valeur absolue de la différence de

deux nombres saisies au clavier.

Exercice 6 : A partir d’un menu afficher à l’écran, effectuer la somme, la moyenne, et

le produit de trois nombres. Nous appelons menu l’association d’un numéro séquentiel

aux différents choix proposé dans l’algorithme.

Exercice 7 : Écrire un algorithme qui trois nombres réels et affiche dans l’ordre

croissant ces nombres.

Par Armand KODJO ING CSI Option Génie Logiciel Page 7


Cours de Formation en Algorithme et Base de données

CHAPITRE IV : LES SOUS PROGRAMMES


I. OBJECTIFS GENERAUX

Les sous programmes en algorithme facilitent la visibilité du code et surtout empêche


la réécriture du même code plusieurs fois, permet de d’composer un problème P en sous
problèmes P1, P2…………Pn et surtout d’écrire plusieurs fois la même suite d’instruction. Il
faut également mentionner que les sous programmes faciliteront la mise au point et la
maintenance des algorithmes (c'est-à-dire écrire la possibilité de faire écrire par plusieurs
personnes les différentes parties d’un algorithme). Les sous-programmes sont connus sur
le nom de procédure et fonction.
II. OBJECTIFS SPECIQUES

Faciliter l’écriture des algorithmes à travers les fonctions, les procédures en mettant
l’accent sur la notion de :
Structure d’un algorithme intégrant les fonctions et procédures ;
paramètre et de variables locales et globales ;
procédures sans paramètres et avec paramètres
Fonctions sans paramètres et avec paramètres ;
Appel des procures et fonctions ;
Intégration des procédures et fonction dans l’algorithme.
III. STRUCTURE DE L’ALGORITHME INTEGRANT LES SOUS
PROGRAMME
Algorithme : identificateur ;
Constante ;
Variables ;
Fonction ou Procédure ;
DEBUT
Instruction1 ;
Instruction n ;
Appel des fonctions et procédure ;
FIN.

IV. VARIABLES GLOBALES, VARIABLES LOCALES

1. Variable globales
On dit qu’une variable est globale lorsque son identifiant a été déclaré dans
l’algorithme. Elle est connue de toutes les procédures et fonctions qui sont déclarées par la
suite.
2. Variables locales

Par Armand KODJO ING CSI Option Génie Logiciel Page 8


Cours de Formation en Algorithme et Base de données

On dit qu’une variable est locale lorsque sa portée est limitée à la procédure ou la
fonction.

V. PROCEDURES
1. Procédure sans paramètres
a. Définition
Une procédure est un Object qui permet aux programmeurs de traiter un problème
sans s’embarrasser du règlement dans les détails des sous problèmes le composant
b. Déclaration
procedure identificateur () ;
declaration de variables locales
debut
corps de la proedure(instruction)
fin ;
c. Appel d’une procédure
Elle se fait uniquement à l’aide de l’identificateur de la procédure.la syntaxe est la
suivantes : identificateur ;
Remarque : un appel de procédure est une instruction.
Exercice d’application : écrire un algorithme qui affiche 5 fois la phrase il fait trop chaud
à douala.
Démarche à suivre : nous allons créer une procédure chaud et déclarer une variable
globale i comme compteur.
Algorithme proced1 ;
Var i : entier ;
Procedure chaud ;
Debut
Ecrire(‘’ il fait trop chaud à douala’’) ;
Fin ;
Debut
Pour i de 1 à 5 faire
chaud ;
Fin.
2. Procédure avec paramètres
a. définition
Une procédure qui utilise des données (par exemple les résultats des calculs
antérieurs) fournit par l’algorithme principal est appelé procédure avec paramètre. Cette
procédure sera écrite avec des arguments fictifs appelés paramètres formels auquel on
fera correspondre l’hors de l’appel des données réels appelées paramètres effectifs.
b. Déclaration

procedure identificateur (liste des paramètres formels) ;


Par Armand KODJO ING CSI Option Génie Logiciel Page 9
Cours de Formation en Algorithme et Base de données

declaration de variableslocales ;
debut
corps de la proedure
fin
c. Appel d’une procédure avec paramètres

Identificateur (liste des paramètres effectifs) ;

Exercice d’application : écrire un algorithme comportant une procédure qui permet


de calculer la somme de n premiers nombres entiers naturels ainsi que leur produit.

Algorithme proced2 ;
Var i,n : entier ;
Procedure somme ;
Var som, prod : reel ;
Debut
Som 0 ;
prod1 ;
Pour i de 1 à 10 faire
som som+i ;
prod prod*i ;
ecrire(‘’la somme est :’’, som, ‘’ et le produi
est : ‘’, prod
Fin ;
Debut
Ecrire (‘’ entrez un entier naturel’’) ;
Lire(n) ;
Somme(n) ;
Fin.

VI. FONCTIONS
1. Définition
Une fonction est une procédure avec paramètre ou sans paramètre qui rend un résultat
unique de type déterminé.
2. Déclaration des fonctions sans paramètre
Fonction identificateur () : type de sortie ;
Déclaration de variables locales

Par Armand KODJO ING CSI Option Génie Logiciel Page 10


Cours de Formation en Algorithme et Base de données

debut
corps de la fonction
fin

Exemple 1: écrire une fonction qui calcule le cube d’un nombre.


Fonction cube () : reel;
Var e : reel ;
Debut
cube e*e*e ;
fin
3. fonction avec paramètres
fonction identificateur (liste des paramètres formels) : type de sortie ;
declaration de variables
debut
corps de la fonction
fin
Exemple 2: écrire une fonction qui calcule le cube d’un nombre.
Fonction cube (var e : reel) : reel;
Debut
cube e*e*e ;
fin ;
VII. EXERCICES
Exercice 1 : écrire une procédure qui affiche la table de multiplication par 9.
Exercice 2 : écrire une fonction qui calcul le factorielle d’un nombre. L’algorithme
devrait vérifier si le nombre saisi est positif.
Exercice 3 : à partir de la saisie de deux nombres a et b au clavier, résoudre
l’équation ax+b=0 on utilisera une fonction dans un premier temps plus une procédure.

Par Armand KODJO ING CSI Option Génie Logiciel Page 11


Cours de Formation en Algorithme et Base de données

CHAPITRE V : LES TABLEAUX


I. OBJECTIFS GENERAUX

L’un des inconvenant des algorithmes écrits jusqu’ici est que, en cas d’erreur sur la
saisie d’un objet, on est obligé de tout recommencer. De plus il n’y a aucun moyen de voir
dans sa totalité les différents objets saisis. Il existe une structure (tableau) capable de
stocker plusieurs valeurs. Il sera dont question dans le cadre de ce chapitre d’apprendre à
manipuler les tableaux et en mettant avant tout l’accent sur les procédures de création des
tableaux (notion de dimension, type, élément et indice).

II. OBJECTIFS SPECIFIQUES

Permettre à l’étudiant de manipuler les tableaux en maitrisant les concepts de bases


qui seront directement mise en valeurs dans les exercices, autrement dit l’approche
utilisée dans le cadre de ce chapitre sera totalement différente. Ainsi les compétences
seront développées dans les aspects suivants :
Création d’un tableau ;
Manipulation des tableaux ;
Recherche dans un tableau ;
Sommes de deux tableaux ;
Suppression dans un tableau.

III. DEFINITION

Un tableau est une structure de donnée ayant une dimension et un type déterminés
qui permet de stocker en mémoire plusieurs valeurs de même type. Ces valeurs sont
appelées éléments du tableau. Chacun de ces éléments est repéré par un indice indiquant
sa position relative par rapport au début du tableau.

1. La dimension

Le nombre d’élément que peut contenir un tableau détermine la dimension du tableau.


2. Le type

Par Armand KODJO ING CSI Option Génie Logiciel Page 12


Cours de Formation en Algorithme et Base de données

Il désigne la nature des valeurs stockées dans le tableau (entier, réel, caractère,
chaîne de caractères …..)
3. Elément
C’est la façon de designer une valeur du tableau.
4. Indice
C’est un entier naturel donc les valeurs varient de 1 à la dimension du tableau. A chaque
valeur de l’indice correspond une seule valeur dans le tableau.
5. Exemple de tableau

5 14 7 15 8

ieme
Le premier élément du tableau est noté T[1] et sa valeur est 5 le n élément du
tableau est noté T[n].

IV. La syntaxe

Identificateur [dimension] tableau de « type » ;


Exemple : déclaration d’un tableau de 100 notes ;
Tnotes[1 :100] Tableau de réel ; ou encore Tnotes[1 :100] réel ;

V. UTILISATION D’UN TABLEAU

Un tableau est dit a une dimension lorsqu’un seul indice suffit à adresser les éléments
du tableau dans ce cas, l’utilisation des éléments du tableau ne peut se faire qu’élément par
élément. L’accès à un élément peut se faire :
Avec une constante comme indice ;
Avec une variable comme indice ;
Avec une expression comme indice.

1. Manipulation des tableaux à une dimension


a. Recherche d’un élément dans un tableau
Pour rechercher un élément dans un tableau, il faut soit connaitre la position relatif de
l’élément soit la valeur en question.

Exercice d’application 1 : soit un tableau de 100 notes, écrivons un algorithme qui permet
de rechercher un élément à l’aide de sa position relative (donne par l’utilisateur)

Par Armand KODJO ING CSI Option Génie Logiciel Page 13


Cours de Formation en Algorithme et Base de données

Algorithme recherche1 ;

Var Tnotes[1 : 100] : reel ;


Var i,position, : entier ;
Debut
pour i de 1 à 100 faire
ecrire(‘’entrez la valeur de la note n° :’’, i) ;
lire(Tnotes[i]) ;
finpour ;
ecrire(‘’entrez la position de la note recherchée’’) ;
lire(position) ;
ecrire(‘’la note recherchée est :’’, Tnotes[position]) ;
fin.

Exercice d’application 2 : écrire un algorithme qui permet rechercher la position d’une


note dans un tableau de 100 notes. On tiendra compte du fait que l’élément peut ne pas
être retrouvé. L’algorithme affichera l’indice de la première occurrence rencontrée.
Algorithme recherche2 ;

Var Tnotes[1 : 100] : reel ;


Var i,position, : entier ;
Var note : reel ;
Debut
pour i de 1 à 100 faire
ecrire(‘’entrez la valeur de la note n° :’’, i) ;
lire(Tnotes[i]) ;
finpour ;
ecrire(‘’entrez la note recherche la position’’) ;
lire(note) ;
pour i de 1 à 100 faire
si(note= Tnotes[i]) ) alors
ecrire(‘’la position est :’’, i) ;
else
ecrire(‘’la note n’existe pas’’) ;
fin si ;
finpour ;
fin

Par Armand KODJO ING CSI Option Génie Logiciel Page 14


Cours de Formation en Algorithme et Base de données

PARTIE II : CONCEPTS SUR LES BASES DE DONNÉES ET


LANGAGES RELATIONNELS

OBJECTIFS GÉNÉRAUX

L’indépendance entre les données et les traitements vise à permettre une évolution

des structures de données sans répercussion sur les programmes d’application utilisant

ces données. Voilà pourquoi ce cours est consacré à la mise en place d’une base de

données sans au préalable définir un SGBD par défaut. Pour y arriver, l’enseignant

devrait l’accent sur le modèle entité association et surtout le langage SQL.

SPÉCIFIQUES DU COURS DE BASE DE DONNÉES

Les objectifs spécifiques qu’on peut assigner de façon généralement aux bases de

données et aux systèmes de Gestion des Bases de données sont les suivants :

Gestion de la centralisation des données,

Gestion de l’indépendance entre les données et les traitements,

Gestion de la structuration de données complexes,

Gestion des partages des données,

Gestion l’intégrité et la cohérence des données,

Gestion la confidentialité,

Gestion de la sécurité.

Par Armand KODJO ING CSI Option Génie Logiciel Page 15


Cours de Formation en Algorithme et Base de données

CHAPITRE I : GÉNÉRALITÉS SUR LES BASES DE DONNÉES

OBJECTIFS GÉNÉRAUX

La mise en place d’une base de données passe par plusieurs étapes, mais il faudrait

au préalable maitriser les concepts d’élémentaires pour les bases de données. L’accent

sera mis beaucoup plus sur la notion de SGBD qui est un système de gestion des bases

de données et sur l’évolution des bases de données.

OBJECTIFS SPÉCIFIQUES

Il sera question dans le cadre de ce cours de donnée aux étudiants des

compétences nécessaires à la mise en place des bases de données à travers les

concepts suivants :

Le langage de manipulation des données ;

Le langage de définition des données ;

Le langage de contrôle des données.

QUELLES NOTIONS

1. Base de données
C’est un ensemble structuré de données apparentées qui modélisent un univers

réel, une BD est faite pour enregistrer des faits, des opérations au sein d'un organisme

(administration, banque, université, hôpital, ...) Les BD ont une place essentielle dans

l'informatique.

2. Système de Gestion de Base de Données (SGBD)


DATA BASE MANAGEMENT SYSTEM (DBMS) il s’agit ici du Système qui

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

3. Des fichiers aux Base de Données

Par Armand KODJO ING CSI Option Génie Logiciel Page 16


Cours de Formation en Algorithme et Base de données

Un fichier est un ensemble d’information de même nature regroupé sur un même

nom ayant une extension (il faut noter ici l’extension permet d’identifier la nature du

fichier) exemple Doc pour Word 2003, docx pour Word 2007, txt pour les fichiers

tests…..

Séparation des données et des


programmes

FICHIER BASE DE DONNEES

Données des fichiers sont décrites Les données de la BD sont décrites hors des
dans les programmes programmes dans la base elle-même

Description des fichiers


Description
unique

Description des fichiers

Programme
Programme

La multiplication des fichiers entraînait la redondance des données, ce qui rendait

difficile les mises à jour. D'où l'idée d'intégration et de partage des données. D’où les

naissances des SGBD.

OBJECTIFS ET AVANTAGES DES SGBD

1. La description des données

Il s’agit de décrire les données indépendamment des applications (de manière

intrinsèque), c’est le langage de définition des données connu sur le nom DATA

DEFINITION LANGUAGE (DDL).

Par Armand KODJO ING CSI Option Génie Logiciel Page 17


Cours de Formation en Algorithme et Base de données

2. Manipuler les données

Il s’agit ici d’interroger et mettre à jour les données sans préciser l'algorithme

d'accès c'est-à-dire dire le QUOI sans dire COMMENT. On parle dans ce cas de

langage de requêtes déclaratif ou encore langage de manipulation des données connu

sous le nom de DATA MANIPULATION LANGUAGE (DML). Exemple : quels sont les

noms des étudiants de BTS 1 ?

3. Contrôler les données

Le contrôle de données porte sur deux aspects fondamental à savoir :

4. L’intégrité

Il est question de s’assurer de la vérification des contraintes d'intégrité des objets

manipulés. Comme exemple, on peut avoir la pension des étudiants qui doit être comprise

entre 400 000F et 200 000F.

5. confidentialité

Il s’agit ici du contrôle des droits d'accès et d’autorisation à chaque objet

manipulé. Dans les deux cas à savoir l’intégrité et la confidentialité, on parle du langage

de contrôle des données connu sur le nom DATA CONTROL LANGUAGE (DCL).

6. Partage

Une BD doit être partagée entre plusieurs utilisateurs en même temps, il s’agit du

contrôle des accès concurrents, la notion de transaction : L'exécution d'une transaction

doit préserver la cohérence de la BD.

7. Sécurité

Reprise après panne, journalisation (qui consiste à stocker de façon permanente et

journalière les mouvements ou les différentes transactions de la base de données).

8. Performances d'accès

La notion d’index (hashage, arbres balancés ...) permet de faciliter la recherche dans

les tables.

Par Armand KODJO ING CSI Option Génie Logiciel Page 18


Cours de Formation en Algorithme et Base de données

9. Indépendance physique

Pouvoir modifier les structures de stockage ou les index sans que cela ait de

répercussion au niveau des applications, les disques, les méthodes d’accès, les modes de

placement, le codage des données ne sont pas apparents.

10. Indépendance logique

Permettre aux différentes applications d’avoir des vues différentes des mêmes

données Permettre au DBA (data base administrator) de modifier le schéma logique sans

que cela ait de répercussion au niveau des applications.

L’ARCHITECTURE ANSI/SPARC

L’ANSI 1 /SPARC entendu par (Standard Planning And Requirement Comitte) qui

définir les 3 niveaux de représentation des données selon le schéma ci-dessous.

1. Le concept de vue
Permet d'obtenir l'indépendance logique, la modification du schéma logique

n’entraîne pas la modification des applications (une modification des vues est cependant

nécessaire) Chaque vue correspond à la perception d’une partie des données, mais aussi des

données qui peuvent être, synthétisées à partir des informations représentées dans la BD

(par ex. statistiques)

2. Le niveau conceptuel
Il contient la description des données et des contraintes d’intégrité (Dictionnaire

de Données) le schéma logique découle d’une activité de modélisation.

3. Le niveau interne
Il correspond aux structures de stockage et aux moyens d’accès (index). Ainsi nous

pouvant résumer ce qui suit en trois points selon la fonction d’un SGBD:

1
American National Standard Institute (Organisme de normalisation Américaine)

Par Armand KODJO ING CSI Option Génie Logiciel Page 19


Cours de Formation en Algorithme et Base de données

DEFINITION DES DONNEES : Langage de définition des données (DDL) (conforme à un


modèle de données)
MANIPULATION DES DONNEES : Interrogation, Mise à jour, insertion, suppression,

modification ⇒ Langage de manipulation des données (DML) (langage de requête

déclaratif) ;

CONTRÔLE DES DONNEES : Contraintes d’intégrité, Contrôle des droits d'accès,

Gestion de transaction⇒ Langage de contrôle des données (DCL)

EXERCICES

Exercice 1 : Établissez le lien qui existe entre une base de données et un SGBD.

Exercice 2 : Quelles différences faites-vous entre un fichier et une base de données.

Exercice 3 : établissez une relation entre la DDl, la DML et la DCL.

Par Armand KODJO ING CSI Option Génie Logiciel Page 20


Cours de Formation en Algorithme et Base de données

CHAPITRE II : NOTION DE MODELISATION DES DONNEES

OBJECTIFS GENERAUX

Il est question dans ce premier chapitre de présenter de façon générale

l’évolution des bases de données en mettant l’accent sur leur architecture et surtout

de parler du modèle entité/association(E/A) ou de Modèle conceptuel de Données

qui nous permettra d’implémenter les bases de données.

OBJECTIFS SPECIFIQUE

À la fin de ce cours, l’étudiant devrait être capable :

D’analyser un problème posé en dégageant les règles de gestion ;

D’identifier les entités qui participe au système à modéliser ;

De déterminer l’inter action entre les entités afin de mettre en place le model

entité /association.
NOTION DE MODELISATION

UNIVERS
REEL

MODELE CONCEPTUEL Modèles sémantiques Orientés «


MCD conception »Entité-Association, Merise

MODEL LOGIQUE DE Modèles de BD Hiérarchique, Réseau


DONNEES Relationnel …

Par Armand KODJO ING CSI Option Génie Logiciel Page 21


Cours de Formation en Algorithme et Base de données

Les modèles de BD sont souvent trop limités pour pouvoir représenter

directement le monde réel Méthodologies de conception présentées en ACSI, SGBD2.

LE MODÈLE ENTITÉ-ASSOCIATION

EA en français, ER en anglais (pour Entity Relationship Formalisme retenu par l'ISO

pour décrire l'aspect conceptuel des données à l’aide d’entités et d’associations.

1. Le concept d’entité

C’est la représentation d’un objet matériel ou immatériel appartenant à l’univers

concerné par l’étude. Comme exemple d’entité, on a : un employé, un projet, un bulletin de

paie. Le formalise d’une entité est le suivant :

NOM ENTITE

Liste des
propriétés

Les entités peuvent être regroupées en types d’entités. Par exemple, on peut

considérer que tous les employés particuliers sont des instances du type d’entité générique

EMPLOYE Par exemple l’employé nommé DUPONT est une instance ou occurrence de

l’entité EMPLOYE.

2. Les propriétés
Il s’agit des données élémentaires relatives à une entité, les propriétés sont des

données élémentaires relatives à une entité. Par exemple, un numéro d’employé, une date

de début de projet. On ne considère que les propriétés qui intéressent un contexte

particulier. En outre les propriétés d’une entité sont également appelées des attributs, ou

des caractéristiques de cette entité.

Par Armand KODJO ING CSI Option Génie Logiciel Page 22


Cours de Formation en Algorithme et Base de données

3. L’identifiant
Il s’agit d’une propriété ou groupe de propriétés qui servent à identifier une entité.

L’identifiant d’une entité est choisi par l’analyste de façon à ce que deux occurrences de

cette entité ne puissent pas avoir le même identifiant. Par exemple, le numéro d’employé

sera l’identifiant de l’entité EMPLOYÉ.

4. Les associations
Représentation d’un lien entre deux entités ou plus une association peut avoir des

propriétés particulières. Par exemple, la date d’emprunt d’un livre.

Adhérent Exemplaire

Emprunter
Liste des Liste des
propriétés Date emprunté propriétés

5. Les cardinalités

La cardinalité d’une association pour une entité constituante est constituée d’une

borne minimale et d’une borne maximale :

Minimale : Nombre minimum de fois qu’une occurrence de l’entité participe aux

occurrences de l’association, généralement 0 ou 1

Maximale : Nombre maximum de fois qu’une occurrence de l’entité participe aux

occurrences de l’association, généralement 1 ou n

Par Armand KODJO ING CSI Option Génie Logiciel Page 23


Cours de Formation en Algorithme et Base de données

Par exemple :

Adhérent Exemplaire

Emprunter
Liste des Liste des
propriétés Date emprunté propriétés

EXEMPLE DE DIAGRAMME ENTITÉ ASSOCIATION

Employé Projets

Participer

1,n 1,n

1,1

Travailler

1,n

Département

LES DIFFÉRENTS MODÈLES DE DONNÉES

L'organisation des données au sein d'une BD a une importance essentielle pour

faciliter l'accès et la mise à jour des données.

Par Armand KODJO ING CSI Option Génie Logiciel Page 24


Cours de Formation en Algorithme et Base de données

Modèle hiérarchique lien de type 1 : n Modèle réseau lien de type n : m

Modèle relationnel lien de type n : 1 SGBD

NB :

Les modèles hiérarchiques et réseau sont issus du modèle GRAPHE ainsi,

 Les données sont organisées sous forme de graphe

 Les langages d'accès sont navigationnels (adressage par liens de chaînage)

 on les appelle "modèles d'accès"

Le modèle relationnel est fondé sur la notion mathématique de RELATION introduit


2
par CODD ainsi, on a :

 Les données qui sont organisées en tables (adressage relatif)

 La stratégie d'accès est déterminée par le SGBD

2
Le père du modèle relationnel

Par Armand KODJO ING CSI Option Génie Logiciel Page 25


Cours de Formation en Algorithme et Base de données

1. Présentation du modèle hiérarchique

Il faut noter ici qu’il s’agit schéma logique représenté par un ARBRE (voir schémas

ci-dessous) par ailleurs il important de préciser que c’est en 1970, que CODD présente

le modèle relationnel qui est en réalité le schéma logique des relations.

2. Le schéma relationnel
Le schéma relationnel est l'ensemble des RELATIONS qui modélisent le monde réelLes

relaitions représentent les entités du monde réel (comme des personnes, des objets, etc.) ou

les associations entre ces entités.Passage d'un schéma conceptuel EA à un schéma relationn

el est représenté par une entité ou relation suivant le schéma ci-dessous.

Nom_de_l’entité (liste des attributs de l'entité)

nom_de_l'association (liste des identifiants des entités participantes, liste des attributs

de l'association) il s’agit dans ce cas d’une association de type M : N.

Exemple : à travers les règles de gestions suivantes, faites le schéma conceptuel E-A et

ressortez le schéma de relation et les tables relatives à chaque relation. Ainsi comme règle

on a :

Un client peut passer une ou plusieurs commandes ;

Une commande est portée sur un ou plusieurs produits ;

Un produit peut être livré par un ou plusieurs fournisseurs.

3. Les avantages du modèle relationnel

Les avantages du modèle relationnel peuvent être classés selon les descriptions

suivantes :

Simplicité de présentation

La représentation des relations se fait sous forme de tables et facilite

l’accès aux informations.

Par Armand KODJO ING CSI Option Génie Logiciel Page 26


Cours de Formation en Algorithme et Base
de données

Opérations relationnelles

L’algèbre relationnelle définir ici les différentes relations possibles entre

les tables

Indépendance physique

Dans le cas de l’indépendance physique, nous avons :

 optimisation des accès

 stratégie d'accès déterminée par le système

Indépendance logique

L’indépendance logique est basée sur le concept de vues facilitant l’accès aux informations

déjà stocker en base de données.

Maintien de l’intégrité

Il s’agit des contraintes d'intégrité définies au niveau du schéma

PRINCIPAUX SYSTÈMES

Oracle-DB2 (IBM)- Ingres-Informix-Sybase- SQL Server (Microsoft)-O2- Gemstone-

Sur micro : Access-Paradox-FoxPro-4D-Windev

Sharewares (logiciel libre): MySQL- MSQL- Postgres- InstantDB

EXERCICES

Exercice 1 : vous êtes concepteur des systèmes d’information et le responsable

des ressources humaines de l’entreprise X, vous contacté pour participer à une

séance de travail portant sur la gestion des congés, au cours d’une séance de

travail tenue en date du 12/10/2017, avec le Directeur général et les responsable

service, il a été conclu ce qui suit :

La mise en place d’un congé est effective après décision du chef hiérarchie

direct du salarie (responsable du service);

Un salarie peut prendre plusieurs congés au cours d’une même année ;

Plusieurs salaries peuvent aller en congé à la même période ;


Par Armand KODJO ING CSI Option Génie Logiciel Page 27
Cours de Formation en Algorithme et Base de données

Il existe plusieurs types de congés ;

Un congé peut être accompagné des indemnités de congé.

Exercice 2 : compte tenu des difficultés que vous rencontrez dans le

processus du recrutement, des affections et sanctions, vous avez été interpellé de

concevoir une base de données devant palier à cela. Vous disposez des informations

suivantes :

Après recrutement, un salarié doit être affecté à un poste dans un service ;

Un service est constitué de plusieurs postes ;

Après 6 mois de service, un emploie doit être évaluer ;

Une évaluation peut entrainer une formation ou une affection ;

L’affectation est lié à un poste dans un service ;

Un salarié peut être sanctionné une ou plusieurs fois ;

Il existe plusieurs types de sanction.

Orientation pour l’exercice 1 et 2 : identifier les acteurs internes et externes

puis déterminé les liens directes – identifier les objets pouvant être entités ainsi

que leurs attributs- déterminer les règles de gestion qui vous permettra

d’identifier les cardinalités.

Par Armand KODJO ING CSI Option Génie Logiciel Page 28


Cours de Formation en Algorithme et Base de données

CHAPITRE III : LE MODÈLE RELATIONNEL

OBJECTIFS GÉNÉRAUX

Proposer des schémas de données faciles à utiliser, améliorer l'indépendance logique

et physique, mettre à la disposition des utilisateurs des langages de haut niveau pouvant

éventuellement être utilisés par des non informaticiens,

Optimiser les accès à la base de données, améliorer l'intégrité et la confidentialité,

fournir une approche méthodologique dans la construction des schémas

OBJECTIFS SPÉCIFIQUES

De façon informelle, on peut définir le modèle relationnel de la manière suivante :

Les données sont organisées sous forme de tables à deux dimensions, encore

appelées relations et chaque ligne est un n-uplet ou tuple, les données sont manipulées

par des opérateurs de l'algèbre relationnelle,

L’état cohérent de la base est défini par un ensemble de contraintes d'intégrité.

Au modèle relationnel est associée la théorie de la normalisation des relations qui

permet de se débarrasser des incohérences au moment de la conception d'une base de

données.

PRÉSENTATION DES CONCEPTS DE BASES

1. Le domaine

C’est un ensemble de valeurs atomiques d'un certain type sémantique. Comme

exemple, on a : Exemple. : Nom_de_ville = {, Yaoundé, Bafoussam}. Par ailleurs, il faut

noter que les domaines sont les ensembles de valeurs possibles dans lesquels sont puisées

les données, en plus, deux ensembles peuvent avoir les mêmes valeurs bien que

sémantiquement distincts.

Exemple :

Par Armand KODJO ING CSI Option Génie Logiciel Page 29


Cours de Formation en Algorithme et Base de données

Num_fournisseur = {1, 2, … , 5000 }

num_client = {1, 2, … , 2000}

2. La relation

C’est le sous ensemble du produit cartésien de plusieurs domaines.il se

matérialise sous la forme suivante : R ⊂ D1 × D2 × ... × Dn. Ou D1, D2, ... , Dn sont

les domaines de R et n est le degré ou l’arité de R.

Exemple : soit les domaines :

Nom_etudiant = { Tenfack, Nsangou, TChoffo }

Prenom_etudiant = {Armand, Serges, Jules}

Date_naissance_etudiant = {1 1/01/2000 ,30/10/2010, 05/04/2014}

Nom_sport = {tennis, judo, foot}

Établissons la relation qui donnera lieu à l’étudiant.

ETUDIANT ⊂ Nom_etudiant × Prenom_etudiant ×

Date_naissance_etudiant

ainsi comme résultat on obtient ce qui suit : = { (Tenfack, Armand, 1 1/01/2000),

(Nsangou, Serges, 30/10/2010), (TChoffo, Jules, 05/04/2014) }

Il est aussi possible d’avoir une relation INSCRIT qui découle de la relation

Nom_etudiant et la relation Nom_sport ce qui nous permet d’avoir :

INSCRIPT ⊂ Nom_etudiant × Nom_sport

INSCRIT = { (Tenfack, tennis), (Tenfack, judo), (Tenfack, foot) }

3. Les n-uplets

Un élément d'une relation est un n-uplet de valeurs (tuple en anglais). Un n-uplet

représente un fait. Comme exemple nous avons : «Tenfack pierre est un étudiant né le 1

1 1/01/2000» ou encore «Tenfack est inscrit au judo »

Par Armand KODJO ING CSI Option Génie Logiciel Page 30


Cours de Formation en Algorithme et Base de données

4. Les attributs

Chaque composante d'une relation est un attribut, cependant, le nom donné à un

attribut est porteur de sens et, Il est en général différent du nom de domaine, il est

aussi possible d’avoir Plusieurs attributs avec le même domaine.

Exemple : soit la relation TRAJET qui définit un point de départ et un point d’arrivé. On

a la relation suivante TRAJET ⊂ nom_ville × nom_ville, dans laquelle la première

composante représente la ville de départ, la deuxième composante la ville d’arrivée d’un

trajet.

5. Le schéma d’une relation

Le schéma d'une relation est défini par le nom de la relation et la liste de ses

attributs sa matérialisation ce fait selon ce qui suit : R (A1, A2, ... , An)

Exemple :

ETUDIANT

(Nom_etudiant,Prenom_etudiant,Date_naissance_etudiant)

INSCRIT (Nom_etudiant, Nom_sport)

6. Le schéma d’une BDR

Le schéma d'une base de données est défini par l’ensemble des schémas des

relations qui la composent, par ailleurs, il faut notez qu’il existe une différence entre le

schéma de la BDR qui dit comment les donné sont organisées dans la base de donnée

alors que l’ensemble des n-uplets de chaque relation, représentent les données stockées

dans la base de données. La représentation d’une relation (une relation=une table) est :

Par Armand KODJO ING CSI Option Génie Logiciel Page 31


Cours de Formation en Algorithme et Base de données

COLONNE
Attribut 1 Attribut 2 Attribut 3
LIGNE V1 V1 V1

V2 V2 V2

Il faut préciser ici que 1 ÉLÉMENT ou n-uplet = 1 LIGNE alors que un 1 attribut ou

propriété=1 colonne. Attention : une relation est un ensemble ou on ne peut pas avoir 2 lignes

identiques.

Exemple : soit la relation étudiant plus haut on peut avoir ce qui suit

Nom_etudiant Prenom_etudiant Date_naissance_etudiant

Tenfack Armand 1 1/01/2000

TChoffo Jules 05/04/2014

LES DÉPENDANCES FONCTIONNELLES

1. La clé d’une relation


Il s’agit d’un attribut (ou groupe minimum d'attributs) qui détermine tous les
autres
Exemple : PRODUIT (numprod, designation, pu)
numprod → (designation, pu)
numprod est une clé
NB :
Une clé détermine un n-uplet de façon unique
Pour trouver la clé d'une relation, il faut examiner attentivement les
hypothèses sur le monde réel
Une relation peut posséder plusieurs clés, on les appelle clés candidates

Par Armand KODJO ING CSI Option Génie Logiciel Page 32


Cours de Formation en Algorithme et Base de données

Exemple: Dans la relation PRODUIT, nom est une clé candidate (à condition
qu'il n'y ait jamais 2 produits de même nom).

2. Clé primaire
Le choix d'une clé parmi les clés candidates
3. Clé étrangère ou clé secondaire
C’est un attribut (ou groupe d'attributs) qui fait référence à la clé
primaire d'une autre relation. Exemple:

CATEGORIE (numcat, nom, tva)


PRODUIT (numprod, designation, pu numcat) numcat dans PRODUIT est une clé
étrangère. CLÉ ÉTRANGÈRE = CLÉ PRIMAIRE dans une autre relation.

LES RÈGLES D'INTÉGRITÉ

Les règles d'intégrité sont les assertions qui doivent être vérifiées par les données
contenues dans une base de données. Le modèle relationnel impose les contraintes
structurelles suivantes :
Intégrité de domaine
Intégrité de clé
Intégrité référentielle
La gestion automatique des contraintes d’intégrité est l’un des outils les plus
importants d’une base de données. Elle justifie à elle seule l’usage d’un SGBD.

1. Intégrité de domaine
Les valeurs d'une colonne de relation doivent appartenir au domaine
correspondant :
contrôle des valeurs des attributs ;
contrôle entre valeurs des attributs.

2. Intégrité de clé

Les valeurs de clés primaires doivent être unique et non nul. Il s’agit bien attendu de:

Unicité de clé ;

Unicité des n-uplets.

Par Armand KODJO ING CSI Option Génie Logiciel Page 33


Cours de Formation en Algorithme et Base de données

La valeur null est une valeur conventionnelle pour représenter une information

inconnue. Cependant, dans toute extension possible d'une relation, il ne peut exister 2

n-uplets ayant même valeur pour les attributs clés sinon 2 clés identiques

détermineraient 2 lignes identiques (d'après la définition d’une clé), ce qui est

absurde.

3. Intégrité révérencielle

Les valeurs des clés étrangères sont 'NULL' ou sont des valeurs de la clé

primaire auxquelles elles font référence. C’est dans ce cas précis que nous évoquons

les relations dépendantes qui portent généralement sur des Liaisons de un à plusieurs

exprimées par des attributs particuliers : clés étrangères ou clés secondaires.

L’objectif ici étant de les contraintes de référence qui ont un impact important pour

les opérations de mises à jour car, elles permettent d’éviter les anomalies de mises à

jour.

LES FORMES NORMALES

Les formes normales permettent de :

mettre en évidence les relations "indésirables" ;

définir les critères des relations "désirables" appelées formes normales

déterminer les propriétés indésirables des relations qui sont des

redondances et des valeurs null

En outre l’un de ces rôles majeurs est de définir le processus de normalisation

permettant de décomposer une relation non normalisée en un ensemble équivalent de

relations normalisées. Parlant de la décomposition, son objectif est de :

décomposer les relations du schéma relationnel sans perte

d’informations

obtenir des relations canoniques ou de base du monde réel

Par Armand KODJO ING CSI Option Génie Logiciel Page 34


Cours de Formation en Algorithme et Base de données

aboutir au schéma relationnel normalisé.

Il existe trois formes normales à mettre en place pour la formalisation des relations
ou tables. Cependant elles doivent être prises en compte dans le processus de mise en
place des bd. Ainsi on a :

1. 1ère Forme Normale 1FN


Une relation est en 1FN si tout attribut est atomique (non décomposable). Comme
Exemple on prendre l’étudiant ayant les propriétés suivantes :
etudiant (matricule, nom, prenom, liste_notes) ; Il faut préciser qu’un attribut ne peut pas

être un ensemble de valeurs comme liste_notes, il faut dont décomposer la relation. Ainsi,

nous avons ce qui suit :

etudiant (matricule, nom, prenom)

note_etudiant(matricule,num_matiere,note)

2. 2ème Forme Normale 2FN

Une relation est en 2FN si elle est en 1FN et si tout attribut n’appartenant pas à la clé

ne dépend pas d’une partie de la clé. C’est le moment idéal pour identifier des clés et éviter

certaines redondances afin de s’assurer que tout attribut dépendre fonctionnellement de la

totalité de la clé.

Exemple : commande (date, numclt, numpdt, qte, pu) elle n'est pas en 2FN car le pu ne

dépend que de numpdt. La solution meilleure esr :

commande (date, numclt, numpdt, qte)

produit (numpdt,designation,pu).

3. 3ème Forme Normale 3FN

Une relation est en 3FN si elle est en 2FN et si tout attribut n’appartenant pas à la clé ne

dépend pas d’un attribut non clé. Ce qui évite les redondances.

EXERCICES

Questions : faites un tableau comparatif entre les règles d’intégrités et les formes
normales.

Par Armand KODJO ING CSI Option Génie Logiciel Page 35


Cours de Formation en Algorithme et Base de données

Orientation : Servez-vous de deux entités de votre choix pour exprimer cette


comparaison.

Par Armand KODJO ING CSI Option Génie Logiciel Page 36


Support de Cours de Base de données

CHAPITRE V : LES LANGAGES DE REQUÊTE : SQL

OBJECTIFS GENERAL

L'algèbre relationnelle fait partie des fondements des bases de données relationnelles,

utilisée en interne par le SGBD pour évaluer les requêtes. Le langage SQL quant à lui est

destiné aux utilisateurs du SGBD et, à l'heure actuelle, est le langage standard

d'interrogation. Il marie d'une certaine façon l'algèbre relationnelle et le calcul relationnel

de n-uplets.

OBJECTIFS SPÉCIFIQUES

Ce chapitre est concentré à la structure des requêtes et qui permet d’interroger une
bd sur toutes ces formes. Pour y parvenir, l’accent sera mis sur les points suivants :
La structure de base d’une requête ;
Les fonctions d’agrégats ;

PRÉSENTATION

C'est un langage fourni avec tout SGBD relationnel commercialisé. C'est un standard

reconnu par l'IS0 depuis 87 (standard donc portabilité). On en est à la version 2 (SQL92)

et la version 3 est annoncée pour bientôt. SQL est un LDD et un LMD. Il est aussi utilisé

pour définir des vues, les droits d'accès, manipulation de schéma physique…

STRUCTURE DE BASE

1. La clause select

Une requête SQL typique est de la forme

SELECT A1,, ... , An FROM r1,... ,rm WHERE P

Les Ai sont des attributs, les rj sont des noms de relations et P est un prédicat 3.

Cette requête est équivalente à  A1 ,…, An ( P(r1 x … x rm))

3
Conditions d’entrées

Par Armand KODJO Page 37


Support de Cours de Base de données

SELECT peut contenir des expressions arithmétiques ainsi que le renommage

d'attributs :

SELECT Prix_HT * 1.206 AS ‘Prix TTC’ FROM produit

LA CLAUSE WHERE: Elle correspond au prédicat ou condition qui porte sur des attributs

des relations apparaissant dans la clause FROM

Remarque: SQL utilise les connecteurs AND, OR et NOT. Pour simplifier la clause

WHERE, on peut utiliser la clause BETWEEN.

SELECT Num FROM compte WHERE Solde BETWEEN 0 AND 10000

2. La clause order by

SQL permet de trier les résultats de requête

SELECT* FROM programme WHERE NomCiné="UGC" ORDER BY Horaire

ASC, Titre DESC

LES FONCTIONS D’AGREGATS

Ce sont des fonctions qui agissent sur des ensembles (multi-ensembles) de valeurs :

AVG : la valeur moyenne de l'ensemble


MIN : la valeur minimale
MAX : la valeur maximale
SUM : le total des valeurs de l'ensemble
COUNT : le nombre de valeur dans l'ensemble
Exemple : SELECT COUNT (Titre) FROM Programme

Cette requête retourne le nombre de films programmés.

Attention : Un même titre peut être compté plusieurs fois s'il est programmé à des heures

différentes et dans des salles différentes.

SELECT COUNT (DISTINCT Titre) FROM Programme

Par Armand KODJO Page 38


Support de Cours de Base de données

AGREGATS ET GROUP BY

Le nombre de films programmés dans chaque salle :

SELECT NomCiné, COUNT (DISTINCT Titre) FROM Programme GROUP BY NomCiné

Les attributs qui apparaissant dans la clause SELECT en dehors des agrégats doivent être

associés à la clause GROUP BY

AGREGATS ET LA CLAUSE HAVING

Les salles où sont programmés plus de 3 films :


SELECT NomCiné, COUNT (DISTINCT Titre) FROM Programme GROUP BY NomCiné
HAVING COUNT (DISTINCT Titre) > 3
Le prédicat associé à la clause HAVING est testé après la formation des groupes définis
dans la clause GROUP BY.

REQUETES IMBRIQUEES
SQL fournit un mécanisme qui permet d'imbriquer les requêtes. Une sous requête est
une requête SQL (SELECT-FROM-WHERE) qui est incluse dans une autre requête. SQL
permet l'imbrication de sous-requêtes au niveau de la clause WHERE d'où le terme
"structuré" dans Structured Query Language. Les sous-requêtes utilisées les prédicats
suivants:
un prédicat d’égalité ou d’inégalité (=, <>, <, >, <=, >=)

LES VUES
Équivalent à une requête. Une vue peut être considérée comme une relation quelconque
lors de l’expression des requêtes. Une vue est une relation virtuelle dans le sens où elle ne
contient pas effectivement des « tuples ». Elles permettent de définir des relations
virtuelles dans le but de :
Cacher certaines informations à des utilisateurs,
Faciliter l'expression de certaines requêtes,
Améliorer la présentation de certaines données.
Une vue est définie par une expression de la forme : CREATE VIEW V AS requête.
Requête est une expression quelconque de requête et V est le nom de la vue. Exemple : Emp
(NumE, Salaire, Dept, Adresse)
CREATE VIEW EmpGen AS ( SELECT NumE, Dept, Adresse FROM Emp )

Par Armand KODJO Page 39


Support de Cours de Base de données

MODIFICATION DES RELATIONS

Suppression (delete * From……..where p)


Supprimer tous les employés du département 5 : DELETE FROM Emp WHERE Dept = 5
Insertion (insert into (liste des champs) values (liste des valeurs))
Mise à jour (UPDATE nom_de_la_table set (liste des attributs et valeurs….where P)

SQL EN TANT QUE LDD

Le schéma des relations La gestion des autorisations


Les domaines des attributs La gestion du stockage physique
Les contraintes d'intégrité Les index associés à chaque relation

1. Domaines

char(n) : chaîne de caractères de taille fixe n


varchar(n) : chaîne de caractères de taille variable mais inférieure à n
int : Entier (un sous ensemble fini des entiers, dépend de la machine)
smallint : Entier. Sous ensemble d’Int
numeric(p,d) : Réel codé sur p digits et max d digits pour partie à droite de la
décimale.
real : Un réel flottant.
date : YYYY-MM-DD (année, mois, jours)
time : HH :MM :SS (heure, minute, seconde)
Les valeurs nulles (NULL) sont possibles dans tous les domaines. Pour déclarer qu'un
attribut ne doit pas être nul, il faut rajouter NOT NULL

 CREATE DOMAIN nom-client char(20)

2. Création des tables

ON UTILISE LA CLAUSE CREATE TABLE

 CREATE TABLE compte (


Num int NOT NULL,
Solde int,
NomTit varchar(20)
)

Par Armand KODJO Page 40


Support de Cours de Base de données

RAJOUT DE CONTRAINTES

CREATE TABLE compte (


Num int NOT NULL,
Solde int DEFAULT 0,
NomTit varchar(20),
PRIMARY KEY (Num),
CHECK (Num > 1)
)
MANIPULATION DE SCHEMA

La commande DROP TABLE permet de supprimer une table.

Ex: DROP TABLE compte.

La commande ALTER TABLE permet de modifier le schéma d'une relation.

Exemple : ALTER TABLE compte ADD Date_ouverture

ALTER TABLE compte DROP Solde CASCADE

CLE ETRANGERE

Soient Personne (NSS, Nom) et Voiture (Matricule, modèle, Proprio). « Proprio » correspond

au NSS du propriétaire. C'est une clé étrangère dans le schéma Voiture car c'est une clé

dans un autre schéma.

CREATE TABLE Voiture (


Matricule CHAR(8),

Modele CHAR (10),

Proprio CHAR (3),

PRIMARY KEY (Matricule),

FOREIGN KEY (Proprio) REFERENCES Personne


ON [DELETE | UPDATE] CASCADE |RESTRICT |SET NULL

Par Armand KODJO Page 1

Vous aimerez peut-être aussi