Vous êtes sur la page 1sur 64

Mourad Gridach

Department of Computer Science


High Institute of Technology - Agadir
2019 - 2020
About This Year

• Database and Information Systems

• Web Programming

• To know more about my research visit:


https://mouradgridach.github.io/

2
3
Volume Horaire / Evaluation

• Base de données (60%)


ü 22 heures de cours & 36 heures entre TD/TP
ü 2 mini projet
ü 1 final exam
• Programmation Web (40%)
ü 14 heures de cours & 14 heures de TP
ü 1 projet (to be validated)
ü 1 final exam

4
Remark
• I am going to use lots of English
vocabularies during this course

• Try to improve your level in English J

5
Rules During my Class

• Trois règles sont indispensables dans mon cours :

1. Les retards sont inacceptables

2. Le silence : si je sort quelqu’un de mon cours/TD, il ne


reviendra jamais.

3. Pas de tricheries à l’examen (otherwise « 0 » L)

6
Plan – Part 1
• Introduction

• Les modèles de données

• Le modèle relationnel de données

• La théorie de la conception des bases de données relationnelles

ü Les formes normales (1ere, 2nd et 3eme FN)

ü Les dépendances fonctionnelles à FNBC

• L’algèbre Relationnelle

• Le langage SQL
7
Plan – Part 2
• Le système d’information

• Digramme Entité – Association

• Développement des Modèles de Données

• Schéma de Conversion

à N.B. D’autres cours utilise la méthode Merise


8
Plan – Part 3 (In English)
• Additional part (one of these) :

ü XML Databases

ü NoSQL

ü Advanced Databases (Introduction)

9
Références

• A First Course in Database Systems (3rd edition)


by Ullman and Widom (U/W)

• Database System Concepts (6th edition)


by Silberschatz, Korth, and Sudarshan (S/K/S)

• Database Management Systems (3rd edition)


by Ramakrishnan and Gehrke (R/G)

10
Any organizational question ???

You are welcome to ask any question

11
Comment Structurés les Données ?

• En mémoire (temporaire) • Stockage (persistant)


– Variables simple : int, float, etc. – Fichiers dans les disques: texte,
– Structure de données: tableaux, XML, JSON, etc.
liste, dictionnaire, etc.

• Programmes
– C, C++, Pyhton, Java, etc.
13
Introduction
§ Question : comment gérer (mémoriser et traiter) les clients d’une banque (BP,
BMCE, etc.) dans toutes les villes Marocaines représentés par leurs CNE, Nom,
Prénom, Adresse, etc. ?

§ Solution N 1: utilisation des fichiers

§ Situation difficile lors du traitement des requêtes (répondre aux questions)


suivantes ?
• Les clients de la ville d’Agadir ?
• Les clients d’un quartier donné ?
• Les clients dont le compte contient 1.000.000 DH ?
• Les clients qui désactivés leurs comptes ?
• etc.
Inconvénients des Fichiers

Nooooo

15
Systèmes de Fichiers Caractéristiques

San Francisco Montreal

Problèmes

New York London

16
Format des Fichiers Caractéristiques
Plusieurs applications
Larry Lary
è plusieurs formats
Symptomes : y
Turlututu : sqj Symptom: yyyy
Analyses xxxx
Symptomes : y Turlututudhjsd
Turlututu : sdd Analyses :xx
Analyses : xxx

Problèmes
1. Difficultés de gestion

Larrey Larey
Turlututu : sq
Symptomes : yy
Symptomyyyy
Analyses : xxxx
Analysesxxxx
Symptomes : yy
Turlututudhjsd
17
Redondance (données) Caractéristiques
Plusieurs applications
Larry Lary è plusieurs formats
Symptomes : y Turlututusqjsk
Turlututu : sqj Symptom: yyyy
Symptomes : y
Turlututu : sdd
Analyses : xxx
Analyses xxxx
Turlututudhjsd
Analyses :xx
Redondance de données

Problèmes
1. Difficultés de gestion
2. Incohérence des données

Larrey Larey
Turlututu : sq
Symptomes : yy
Symptomyyyy
Analyses : xxxx
Analysesxxxx
Symptomes : yy
Turlututudhjsd
18
Interrogations Caractéristiques
Plusieurs applications
Larry Lary è plusieurs formats
SFGoogle

MontGoo
Symptomes : y Turlututusqjsk
Turlututu : sqj Symptom: yyyy
Symptomes : y
Turlututu : sdd
Analyses : xxx
Analyses xxxx
Turlututudhjsd
Analyses :xx
Redondance de données
Difficultés d’interrogation

Problèmes
1. Difficultés de gestion
2. Incohérence des données
3. Coûts élevés
LondGoo
NYGoog

Larrey Larey
Turlututu : sq
4. Maintenance difficile
Symptomes : yy
Symptomyyyy
Analyses : xxxx
Analysesxxxx
Symptomes : yy
Turlututudhjsd
19
Goal

Trouver la solution du problème posé


par le système de fichiers ?
Solution

Bases de données
(Databases) J
Example: Youtube DB
Example

Self Driving Cars


Bases de Données (BD) - Définition
§ Définition : Une BD est une collection structurée de données
(fichiers) résidant dans un ordinateur (souvent un serveur)
dont le but est la facilité d’accès, de gestion et de mise à jour.

§ Pourquoi une base de données ?


è Eliminer (minimiser) la redondance de données
è Centraliser et organiser correctement les données

§ Logiciel « Système de Gestion de Bases de Données »


è Persistance, sécurité, fiabilité, gestion de pannes, etc…
è Administration faciles des données

25
C’est Quoi un SGBD (DBMS) ?
Très grand programme C L Da
tab
a se
Ma
na
ge
me
nt
Massive (Terabytes or Sy
Petabytes of data) Fiabilité ste
m

Persistance Efficacité (Performance)

BD
Sécurité Indépendance physique

Multi-Utilisateurs
26
SGBD : Principes
§ Création de la base de données : deux possibilités offertes :
(1) utilisation du langage SQL, ou (2) utilisation des interfaces graphiques.

§ Massive : manipulation de Téraoctets (Terabytes) de données ne pouvant


pas être chargées en mémoire.
§ Persistance : on doit assurer que les données persistent à la fin de la
manipulation (exemple : un programme utilisant les données).

§ Sécurité : un SGBD gère des applications critiques (systèmes bancaires,


comptes des utilisateurs, etc.), donc il doit garantir la consistance des
données (défaillance matériel ou logiciel, utilisateur malveillant, etc.)
27
SGBD : Principes
§ Multi-utilisateurs : mécanismes de contrôle de concurrence entre plusieurs
utilisateurs.
§ Indépendance physique : la façon dont les données sont stockés dans le disque est
indépendante de la façon dont un programme voit la structure des données.

§ Efficacité : concerne la performance du SGBD. Un SGBD doit trouver les


mécanismes nécessaires pour la gestion des milliers de requêtes / mise à jour par
seconde.

§ Fiabilité : le système doit être en fonctionnement totale et ce fonctionnement doit


atteindre 99.9999%.
28
Principaux SGBD
ü Open source
§ SQLite
§ MySQL
§ PostgreSQL

ü Avec une License


§ SQL Server (Microsoft)
§ Oracle
§ Sybase
§ DB2 (IBM)
29
Market Shares (2018)

30
Top 10 Market Shares (January 2020)

More details can be found here: https://db-engines.com/en/ranking


31
Tailles des Systèmes
ü Systèmes plus petits
u Petites applications sur des PCs
u Megabytes (Mo) ou encore Gigabytes (Go)
u Exemple : Base de données des étudiants de l’EST.
ü Systèmes plus grands
u Base de données des grandes sociétés.
u Petabytes ou encore Terabytes.
u Exemple : Google, Facebook, Twitter, YouTube, iMDB, etc.
32
Base de Données : Définition
§ Définition : (1) un ensemble structuré de données (2) enregistrées sur des
supports accessibles par l’ordinateur (3) pour satisfaire simultanément plusieurs
utilisateurs (4) de manière sélective (5) en un temps opportun.

(1) : Organisation et description de données


(2) : Stockage sur disque
(3) : Partage des données
(4) : Confidentialité
(5) : Performance

33
Utilisateurs Clés
§ Responsable de l’Implémentation du SGBD : personne responsable du
développement du système tout entier.

§ Concepteur de la base de données : personne responsable de l’établissement


du schéma de la bases de données.

§ Développeur des applications de BD : personne responsable du codage des


programmes qui opèrent sur la base de données.

§ Administrateur de la base de données : personne responsable du chargement


des données, affectations des rôles entre les utilisateurs, etc.
34
Database Applications
– Informations de l’Enterprise (Ventes, Ressources humains, Fabrication)
– Finance et Banques
– Universités
– Systèmes de réservations des compagnies aériennes
– Télécommunication
– Des sites web tels que : Google, Facebook, Twitter, Amazon.com, YouTube,
Baidu, iMDB, etc.
– Le service informatique de l’EST
35
Conclusion

§ Insuffisance du modèle fichier dans la représentation des données.

§ Utiliser l’approche base de données.

§ Gestion faite par l’intermédiaire des SGBDs.

§ Un SGBD offre un ensemble de fonctionnalités pour une gestion


efficace des bases de données.

§ Les bases de données sont utilisées dans plusieurs domaines.

§ Utilisateurs clés.
36
Like it or not, you are using
databases everyday or every
hour or every minute J
Les Modèles de Données
(Data Models)
Why Models ?
• Importants pour examiner ou gérer une partie du monde réel
• Le cout pour utiliser un modèle est moins couteux que
l’utilisation ou l’expérimentation direct du monde réel lui même
• Exemple:
– Carte d’un pays
– Modèle d’un robot
– Self driving car

39
Question
§ Nous avons déjà vu un modèle de données

§ Lequel ?

§ Réponse

ü Le modèle fichier

40
Modèles de Données

§Le modèle fichier L

§Le modèle hiérarchique

§Le modèle réseau

§Le modèle relationnel

41
Modèle de Données - Définition

• Une collection d’outils conceptuel pour la description des données, les


relations entre les données, la sémantique des données, et les contraintes de
consistances.

§ Généralement, cette description se manifeste dans trois parties :


1. Structure des données
2. Operations sur les données
3. Contraintes sur les données
42
Description des Modèles de Données (1)
1. Structure des données
§ Ressemble aux structures, aux tableaux dans les langages de programmation (C, etc.)
§ Les objets dans les langages de programmation orienté-objet (C++, Java, etc.)

2. Operations sur les données


§ Langages de programmation : n’importe quelle opération qu’on peut programmer
§ Les modèles de base de données :
ü Requêtes : Opérations de la recherche des informations
ü Modifications : opérations qui modifient la base de données

43
Description des Modèles de Données (2)

3. Contraintes sur les données

§ Manière de décrire les limitations sur les données

§ Contraintes simples

E.g. : l'âge d’une personne est > 0.

§ Contraintes complexe

E.g. : les Transactions et les Triggers (voir plus loin)

44
Le Modèle Fichier

§ Les fichiers de données contiennent les enregistrement qui ne possèdent pas


des relations structurelles.

§ Autrefois, dans une organisation, chaque application ou programme utilise


son propre fichier.

§ En 1889, Hollerith décrit dans ‘Art of Compiling Statistics’ comment chaque


citoyen américain peut être représenté avec une chaine de caractères de 80
caractère et nombres.
45
Le Modèle Fichier - Exemple

§ Par exemple, dans un hôtel, chaque service possède ses propres fichiers :

ü Le service de comptabilité conserve les informations sur la comptabilité.

ü Le service des ressources humaines conserve les noms des employés et les
informations sur chaque employé.

ü Le service de réservation gère les réservations des clients.

ü Etc.

46
Le Modèle Hiérarchique

§ Populaire dans les années 1960/1970 avec Information Management System


(IMS) d’IBM.

§ Les données sont organisées dans des arbres.

§ Les niveaux consistent en des enregistrements de même type

§ 1:N - Relation (Père – Fils) entre deux types d’enregistrements : (Father à


Children; Child à one Father).

§ Les documents XML sont un autre exemple du modèle hiérarchique

47
Le Modèle Hiérarchique - Exemple

Filière

GI GE TM

DB AI C++ C Ard SI Cmp Eco

48
Modèle Réseau
§ Définit officiellement en 1971 par la spécification CODASYL (Conference on
Data Systems Languages)

§ C’est une généralisation du modèle hiérarchique.

§ Un père peut avoir plusieurs fils, (mais aussi un fils peut avoir plusieurs
pères).

§ Permet la modélisation de la relation ‘plusieurs-à-plusieurs’ (many to many).

§ Représentation sous forme d’un graphe

49
Modèle Réseau - Exemple

GI GE TM

C Math Comptabilité

50
Modèle Relationnel

Objectif principal dans ce cours J

51
Modèle Relationnel
• Proposé en 1969/70 par E. F. Codd.
• Une seule manière de représenter les données : Relations.
• Modèle de description des informations
• Modèle très utilisé, quoique ancien
• Fondement mathématique
• Modèle associé à l’algèbre relationnelle

52
Modèle Relationnel
§ Une seule manière de représenter les données : Relations, ou encore
Tables.
CourseID Title Hours Semester
CS01 Algorithms & C Programming 26 S1
CS02 Introduction to Databases 22 S2
La relation
CS03 Artificial Intelligence 30 S6
« Course »
CS04 Data Structures & C++ 34 S2
CS05 Software Engineering 24 S3
…. … … …

§ Sa structure ressemble à un tableau des structures en langage C


§ Les noms des colonnes sont les noms des champs
§ Chaque ligne représente les valeurs d’une seule structure dans le tableau
53
Relation vs. Structure en C
CourseID Title Hours Semester
CS01 Algorithms & C Programming 26 S1
CS02 Introduction to Databases 22 S2 La relation
CS03 Artificial Intelligence 30 S5 « Course »
CS04 Data Structures & C++ 34 S2
CS05 Software Engineering 24 S3
…. … … …

§ struct Course {
char CourseID[20];
char Title[20];
int Hours;
Char Semester[20];
};
§ Course c1 = {"CS02","Introduction to Databases", 22, "S2"}; 54
Concepts (1)
§ Attributs : Un attribut est une information qui contribue à la description de
l’objet que l’on veut modéliser (les noms des colonnes de la relation).

ü Exemple : CourseID, Title, Hours, Semester.

§ Schéma : le nom de la relation + l’ensemble des attributs de la relation

ü Exemple : Course (CourseID, Title, Hours, Semester)

§ Tuples : (ou enregistrements) sont lignes de la relation.

ü Exemple : ("CS02","Introduction to Databases", 22, "S2").

55
Concepts (2)

§ Domaines

ü Dans le modèle relationnel, chaque composant de chaque tuple est


atomique (type élémentaire).

ü Pour chaque attribut, on associe un domaine.

ü Exemple : CourseID : String, Hours : int, Title: String, Semester: String.

56
Base de Données Relationnelles

§ Dans le modèle relationnel, une base de données consiste en une


ou plusieurs relations (ou tables).

§ L’ensemble des schémas pour les relations d’une base de données


est appelé schéma de la base de données relationnelle ou encore
schéma de la base de données.

57
Instances d’une Relation
§ La relation « Course » n’est pas statique à Changement au cours du temps
§ Mais, rarement qu’on change le schéma de la base de données à très coutant
(Can you guess why ?).
§ L’ensemble des tuples d’une relation donnée est appelé « instance » de cette
relation.
§ Dans l’exemple ci-dessous, les 5 tuples forment une instance de la relation
Course.
CourseID Title Hours Semester
CS01 Algorithms & C Programming 26 S1
tuple CS02 Introduction to Databases 22 S2
CS03 Artificial Intelligence 30 S6
CS04 Data Structures & C++ 34 S2
CS05 Software Engineering 24 S3 58
Clé d’une Relation
§ Première contrainte qu’impose le modèle relationnel est la notion de clé

§ Un ou plusieurs attributs constituent une clé pour une relation si et seulement si


les valeurs de ces attributs sont unique

§ Autrement dit, on ne peut pas avoir deux tuples d’une relation dont les valeurs
des clés sont les mêmes.

§ Dans une relation, on souligne l’attribut (ou les attributs) qui forment une clé.

59
Clé d’une Relation
§ Exemple

Course (CourseID, Title, Hours, Semester)

§ Remarque

Dans une relation, on peut avoir plusieurs choix de clés.

§ Exemple

Student (CIN, CNE, name, adress, phone)


60
Quelques Concepts
§ Modèle de données : la description de la structure des données.
Exemples : ensemble de tuples, XML, graphe, etc.

§ Schéma vs. données : c’est l’équivalent de Types vs. Variables.

§ Langage de définition des données (LDD) : c’est le langage pour établir le


schéma de la base de données.

§ Langage de manipulation des données (LMD) : après avoir établir le


schéma, ce langage nous permet des requêtes d’interrogation de la base
de données.
61
Conclusion

§ Un modèle est un moyen de communication

§ Les concepteurs d’un modèle doivent avoir des connaissances


communs entre eux

§ Un modèle sera décrit par un langage

62
Next Lecture

§La théorie des bases de données

§Les formes normales

ü 1ere, 2eme et 3eme formes normales

ü Forme normale de Boyce-Codd


63
Thanks for coming to my first lecture J J

Any question about this first


introduction to Database Course

64

Vous aimerez peut-être aussi