• Aucun résultat trouvé

Principe des bases de données

N/A
N/A
Protected

Academic year: 2022

Partager "Principe des bases de données"

Copied!
106
0
0

Texte intégral

(1)

PRINCIPE DES

BASES DE DONNÉES

Jacqueline Konate

(2)

Avant-propos

L’Université Virtuelle Africaine (UVA) est fière de participer à accès à l’éducation dans les pays africains en produisant du matériel d’apprentissage de qualité. Nous sommes également fiers de contribuer à la connaissance globale, pour nos ressources éducatives sont principalement accessibles de l’extérieur du continent africain.

Ce module a été développé dans le cadre d’un programme de diplôme et diplôme en

informatique appliquée, en collaboration avec 18 institutions partenaires dans 16 pays africains.

Un total de 156 modules ont été développés ou traduits pour assurer la disponibilité en anglais, français et portugais. Ces modules sont également disponibles en tant que ressources éducatives ouvertes (OER) à oer.avu.org.

Au nom de l’Université Virtuelle Africaine et notre patron, nos institutions partenaires, la Banque africaine de développement, je vous invite à utiliser ce module dans votre

établissement, pour leur propre éducation, partager aussi largement que possible et participer activement aux communautés AVU de pratique d’intérêt. Nous nous engageons à être à l’avant-garde du développement et de partage ouvert de ressources pédagogiques.

L’Université Virtuelle Africaine (UVA) est une organisation intergouvernementale

panafricaine mis en place par lettre recommandée avec un mandat d’augmenter l’accès à l’enseignement supérieur et de formation de qualité grâce à l’utilisation novatrice des technologies de communication de l’information. Une charte instituant la UVA Organisation intergouvernementale, signée à ce jour par dix-neuf (19) Les gouvernements africains - Kenya, Sénégal, Mauritanie, Mali, Côte d’Ivoire, Tanzanie, Mozambique, République démocratique du Congo, Bénin, Ghana, République de Guinée, le Burkina Faso, le Niger, le Soudan du Sud, le Soudan, la Gambie, la Guinée-Bissau, l’Ethiopie et le Cap-Vert.

Les institutions suivantes ont participé au programme informatique appliquée: (1) Université d’Abomey Calavi au Bénin; (2) University of Ougagadougou au Burkina Faso; (3) Université Lumière Bujumbura Burundi; (4) Université de Douala au Cameroun; (5) Université de

Nouakchott en Mauritanie; (6) Université Gaston Berger Sénégal; (7) Université des Sciences, Techniques et Technologies de Bamako au Mali (8) Institut de la gestion et de l’administration

publique du Ghana; (9) Université des sciences et de la technologie Kwame Nkrumah au Ghana; (10) Université Kenyatta au Kenya; (11) Université Egerton au Kenya; (12) Université d’Addis-Abeba en Ethiopie (13) Université du Rwanda; (14) University of Salaam en Tanzanie Dar; (15) Université Abdou Moumouni Niamey Niger; (16) Université Cheikh Anta Diop au Sénégal; (17) Université pédagogique au Mozambique; E (18) L’Université de la Gambie en Gambie.

Bakary Diallo

(3)

Auteur

Jacqueline Konate

Pair Réviseur

Cherif Diallo

UVA – Coordination Académique

Dr. Marilena Cabral

Coordinateur global Sciences Informatiques Apliquées

Prof Tim Mwololo Waema

Coordinateur du module

Robert Oboko

Concepteurs pédagogiques

Elizabeth Mbasu Benta Ochola Diana Tuel

Equipe Média

Sidney McGregor Michal Abigael Koyier

Barry Savala Mercy Tabi Ojwang

Edwin Kiprono Josiah Mutsogu

Kelvin Muriithi Kefa Murimi

Victor Oluoch Otieno Gerisson Mulongo

(4)

Droits d’auteur

Ce document est publié dans les conditions de la Creative Commons Http://fr.wikipedia.org/wiki/Creative_Commons

Attribution http://creativecommons.org/licenses/by/2.5/

Le gabarit est copyright African Virtual University sous licence Creative Commons Attribution- ShareAlike 4.0 International License. CC-BY, SA

Supporté par

Projet Multinational II de l’UVA financé par la Banque africaine de développement.

(5)

Avant-propos 2

Crédits de production 3

Droits d’auteur 4

Supporté par 4

Aperçu du cours 6

Prérequis 6

Matériaux 6

Justification et Objectifs du cours 7

Objectifs 7

Unités et Activités 8

Unité 0. Évaluation diagnostique 14 Introduction à l’unité 14

Unité 1. Concepts sous-jacents aux bases de données 21 Introduction à l’unité 21

Objectifs de l’unité 21

Termes clés 21

Activité1.1 – Introduction aux Bases de données 23

Introduction à l’activité 23 Objectifs de l’activité 23 Activité d’apprentissage : A la découverte des bases de données 23 Systèmes de Gestion de Bases de Données (SGBD) 24 Évaluation de l’activité 26 Activité1.2 – Modèles de Bases de Données 27

Introduction à l’activité 27

Objectifs de l’activité 27

Activité d’apprentissage : Présentation et description des types

de bases de données 27

Évaluation de l’activité 32

(6)

Activité1.3 – Modélisation de données 33

Introduction à l’activité 33 Objectifs de l’activité 33

Activité d’apprentissage: Passage de l’information aux données? 33 Modélisation de données 33 Diagramme des classes UML 34 Évaluation de l’activité 37 Résumé de l’Unité 37

Lectures et autres ressources 38

Unité 2. Bases de Données normalisées et cohérentes et Algèbre relationnelle 40 Introduction à l’unité 40

Objectifs de l’unité 40

Termes clés 40

Activité 2.1 – Normalisation et création des tables de données 42

Introduction à l’activité 42 Objectifs de l’activité 42

Conception de la Table 49 Évaluation de l’activité 51 Activité 2.2 – Algèbre Relationnelle 52

Introduction à l’activité 52 Objectifs de l’activité 52

Activité d’apprentissage: la théorie des ensembles pour le traitement des données. 52

Algèbre Relationnelle 52

Opérations basiques 53

Optimisation de requêtes avec l’Algèbre Relationnelle 62

Évaluation de l’activité 63

(7)

Expression des contraintes d’intégrité 64 Évaluation de l’activité

69

Résumé de l’Unité 70

Lectures et autres ressources 71

Unité 3. Manipulation et Mise en Oeuvere de Bases de Données 73 Introduction à l’unité 73

Objectifs de l’unité 73

Termes clés 73

Activité 3.1 – Opérations SQL sur les bases de données 74

Introduction à l’activité 74 Objectifs de l’activité 74 Activité d’apprentissage : réalisation d’une base de données simple et son utilisation 74

Opérations de Consultation 75 Autres opérations 81 Évaluation de l’activité 84 Activité 3.2 – Mise en œuvre d’une Base de Données en SQL 86

Introduction à l’activité 86 Objectifs de l’activité 86

Activité d’apprentissage: développement d’une base de données 86

Évaluation de l’activité 89 Résumé de l’Unit 89

Lectures et autres ressources 90

Évaluation du cours 91

Références du cours 102

(8)

Aperçu du cours

Bienvenue au cours principe des bases de donees

Ce module porte est une introduction aux systèmes de base de données. Il aide l’étudiant à comprendre les principes sur lesquels les systèmes de gestion de base de données(SGBD) sont conçus et mis en œuvre. Le module fournit des outils pour la conception de base de données et l’utilisation des systèmes de gestion de base de données pour les applications. Les modèles de données, les schémas vs données, les langages de définition et de manipulation des données y sont présentés. En outre, l’apprenant explore les différents métiers impliqués dans la construction d’une base de données dont la conception de bases de données, le développement d’applications et l’administration de base de données. A la fin du module il est attendu de l’apprenant qu’il soit familiarisé avec la conception et le développement d’applications, notamment la conception en UML et les principes de conception des bases de données relationnelles. Plus précisément, l’auteur du module s’est efforcé de couvrir huits thèmes: introduction aux systèmes de base de données; Modélisation des données ; Modélisation des données; Normalisation de base de données; Algèbre Relationnelle;

Contraintes d’intégrité référentielle; Opérations de mise à jour; Mise en œuvre de bases de données.

Pour chacun des objectifs, le module fournit les activités d’enseignement et d’apprentissage.

Cela met à la disposition de l’apprenant des activités qui permettraient d’améliorer l’apprentissage. Les activités doivent être faites en tandem avec des textes dans la liste de lecture. Enfin, une évaluation sommative s’ensuit pour aider l’apprenant à vérifier l’assimilation du contenu. Lorsque l’apprenant arrive à répondre aisément aux questions de l’évaluation sommative, alors il / elle a compris le contenu.

Prérequis

Avant de commencer ce module, l’apprenant doit avoir les bases suivantes: compétences basiques dans les TIC, les bases mathématiques comme la théorie des ensembles et l’introduction à la programmation.

Matériaux

Pour un apprentissage efficace, les ressources suivantes sont nécessaires:

• Un ordinateur;

• L’accès à une base de données et à SQL;

(9)

Justification et Objectifs du cours

Justification

Au cœur de tout système majeur se trouve un stockage de données derrière. Cette partie est appelée une base de donnée. Considérant que cette base de données constitue le point central des systèmes, le besoin d’intégrité et de disponibilité des données se pose. Lorsque les systèmes de base de données sont bien conçus, ils permettent aux utilisateurs d’accéder à des données intègres en toute confiance. Des individus capables de développer et de gérer ces bases de données sont donc nécessaires en ce temps de systèmes modernes. Le cours « Principe des bases de données est nécessaire pour aider à fournir les aptitudes et compétences nécessaires pour le niveau débutant (analystes système et programmeurs). Ce cours concerne la compréhension et le développement de la logique applicative des bases de données.

La technologie utilisée pour construire un Système de Gestion de Base de Données (SGBD) a des applications dans tout système qui doit stocker les données de manière persistante et avec des utilisateurs multiples. Ainsi, en résumé :

• Même si vous n’allez pas construire vous-même votre propre SGBD, certains de vos programmes peuvent avoir besoin d’exécuter les fonctions similaires.

• Les théories centrales s’étendent sur les thèmes traités dans les Systèmes d’Exploitation tels que la concurrence et les transactions.

Un SGBD est un des logiciels les plus sophistiqués.

• Comprendre son fonctionnement interne aide à mieux l’utiliser ;

• Comprendre la base de données en interne est profitable si on doit assurer le rôle d’administrateur du système ;

• La technologie des bases de données est un composant clé de notre infrastructure qui va continuer à évoluer en termes d’innovation dans le futur.

Objectifs

À la fin de ce cours, l›étudiant devrait être en mesure de :

1. Décrire, définir et appliquer les composants majeurs du modèle de base de données relationnelle pour la conception de la base de données;

2. Apprendre et appliquer le langage SQL (Structured Query Language) pour la définition et la manipulation des bases de données

3. Utiliser une technique de modélisation de base de données

4. Apprendre et implémenter les principes et concepts de l’intégrité, de sécurité et de confidentialité de l’information.

(10)

Unités et Activités

Unité 0: Évaluation diagnostique

Cette unité porte sur l’évaluation des connaissances de l’apprenant à l’entrée du module. Il doit répondre à une série de questions test visant à connaître son état de préparation pour affronter les différentes étapes du cours.

Unité 1 : Concepts sous-jacents aux bases de données Cette unité est constituée de trois activités que sont :

Activité 1.1 Introduction aux Bases de Données

Elle porte sur la définition des notions de base de données, de Systèmes de Gestion de Base de Données (SGBD) et des avantages de l’approche Base de Données comparativement au système de fichiers classique.

Activité 1.2: Modèles de bases de données

Elle présente les différents modèles de Bases de Données et leurs avantages les uns par rapport aux autres.

Activité 1.3: Modélisation de données

Elle porte sur la modélisation de données, particulièrement la conception du diagramme des classes UML qui est un modèle Entité-Relationnel utilisé dans la conception de bases de données.

Unité 2 : Bases de données normalisées et cohérentes Activité 2.1: Création de tables de données et Normalisation

Cette activité porte sur le processus de création de tables d’une base de données et la notion de normalisation.

Activité 2.2: Algèbre Relationnelle

Cette activité présente un outil mathématique, nommé Algèbre Relationnelle, qui est très puissant pour écrire des requêtes sur les bases de données. Les différentes opérations possibles y sont décrites.

Activité 2.3: Contraintes d’Intégrité Référentielle

Dans cette activité, les notions de clés primaire et étrangère, de cohérence ou intégrité de la base de données sont abordées.

(11)

Unité 3 : Manipulation et mise en œuvre de bases de données Activité 3.1: Opérations sur les bases de données

Dans cette activité, les différentes opérations qui peuvent être faites sur les bases de données sont présentées dans le langage SQL.

Activité 3.2: Mise en œuvre d’une base de données

A travers cette activité, l’apprenant acquiert la compétence pratique pour implémenter une base de données en SQL.

Numéro de l’unité

Numéro de l’activité

Description Durée estimée

en heures 1 1.1 Introduction aux systèmes de base de données 10

1.2 Modèles de bases de données. 10

1.3 Modélisation de données 20

2.1 Normalisation 15

2.2 Algèbre relationnelle 15

2.3 Contraintes d’intégrité référentielle 20

3.1 Opérations sur les bases de données 15

3.2 Mise en œuvre de bases de données 15

Évaluation

Les évaluations formatives (vérification de progrès) sont incluses dans chaque activité.

Les évaluations sommatives (tests et travaux finaux) sont fournies à la fin de chaque unité et traitent des connaissances et compétences de l’unité.

Une évaluation de l’ensemble du module est fournie à la fin du document.

(12)

Plan du module

Le module couvre principalement la conception et l’utilisation des bases de données dans les applications, avec une petite introduction à la structure interne des systèmes de base de données.

Le tableau suivant montre le plan du module.

Numéro de l’activité

Description Objectifs d’apprentissage

1.1 Introduction aux

systèmes de base de données

A la fin de cette activité, l’apprenant doit être capable de :

Faire la différence entre données et informations;

Expliquer ce qu’est une base de données et donner les différents types de bases de données ;

Expliquer pourquoi les bases de données sont des outils importants pour la prise de décision ; Expliquer l’importance de la conception des bases de données ;

Expliquer comment les bases de données modernes ont évolué à partir des systèmes de fichiers ;

Expliquer les failles dans la gestion des données à partir du système de fichiers;

Lister les principaux composants d’un système de base de données;

Expliquer les principales fonctions d’un système de gestion de base de données (SGBD).

(13)

1.2 Modèles de base de données

A la fin de cetteactivité, l’apprenant doit être capable de:

Décrire les différents types de bases de données ;

Identifier les avantages de chaque type de base de données;

Donner un exemple de chaque type de base de données.

1.3 Modélisation de

données

A la fin de cette activité, l’apprenant doit être capable de:

Comprendre les bases de la modélisation de données et la théorie relationnelle;

Expliquer l’importance de la modélisation de données;

Evaluer l’importance du modèle Entité-Relation pour la conception de base de données ; Développer les diagrammes de classes pour une application donnée ;

Décrire les concepts basiques du diagramme de classes ;

Décrire la modélisation de données comme une partie du processus de conception de base de données.

2.1 Normalisation de

données

A la fin de cetteactivité, l’apprenant doit être capable de:

Décrire les dépendances fonctionnelles et les différentes formes ;

Décrire les fondamentaux de la normalisation ; Identifier les façons d’accéder aux données stockées dans la base et communiquer avec elles ;

Décrire et distinguer les formes normales 1NF, 2NF, 3NF et BCNF.

(14)

2.2 Algèbre Relationnelle A la fin de cette activité, l’apprenant doit être capable de:

Décrire les concepts du modèle relationnel ; Décrire l’algèbre relationnelle ;

Reconnaître et utiliser les opérateurs en algèbre relationnelle

décomposer une requête en différentes étapes et l’exprimer avec l’outil mathématique ; identifier les étapes de l’exécution d’une requête ;

optimiser facilement des requêtes.

2.3 Contraintes d’intégrité référentielle

A la fin de cette activité, l’apprenant doit être capable de:

Décrire les propriétés d’une relation et des clés relationnelles ;

Décrire le modèle relationnel et les contraintes d’intégrité ;

Décrire les anomalies de mise à jour, d’insertion et de suppression ;

Utiliser un langage de base de données ; Décrire les contraintes, les triggers en SQL.

3.1 Opérations sur les bases de données

A la fin de cette activité, l’apprenant doit être capable de:

Définir le langage SQL;

Décrire les différentes commandes DDL, DML et DCL ;

insérer, supprimer, modifier des lignes et de colonnes dans les tables ;

renommer ou supprimer les tables ;

construire différents types de requêtes avec des calculs statistiques et des regrouppement suivant des critères ;

(15)

3.2 Mise en œuvre d’une base de données

A la fin de cetteactivité, l’apprenant doit être capable de:

Utiliser Oracle (un système de base de données relationnel) ;

Construire entièrement une base de données avec ses tables et contraintes.

(16)

Unité 0. Évaluation diagnostique

Introduction à l’unité

Cette activité porte sur l’évaluation des connaissances de l’apprenant à l’entrée du module.

Il doit répondre à une série de questions test visant à connaître son été de préparation pour affronter les différentes étapes du cours.

Apprenants:

Dans cette section, vous allez trouver des questions d’autoévaluation qui vont vous aider à tester votre niveau de préparation pour faire ce module. Vous devez vous juger sincèrement et faire l’action recommandée après la réalisation de l’autoévaluation. Vous êtes encouragés à prendre du temps pour répondre aux questions.

Instructeurs:

Les questions de pré-évaluation données ici guident les apprenants à décider si toutefois ils sont préparés à prendre le contenu présenté dans ce module. Il est fortement suggéré de respecter les recommandations faites sur la base de la note obtenue par l’apprenant. Comme instructeur, vous devez encourager les apprenants à s’auto-évaluer en répondant à toutes les questions ci-dessous. Plus précisément, les questions test permettent de vérifier que les apprenants comprennent les prérequis et qu’ils disposent du bagage nécessaire pour commencer le cours.

Questions : faites le bon choix pour chaque question

1. Quel est le plus bas niveau de représentation des données?

a. Mot mémoire

b. Octet

c. Bit

d. Caractère Sol. Bit

(17)

2. Le Système d’exploitation est comme

a. Un logiciel utilitaire

b. Un logiciel de traitement de texte

c. Un gestionnaire de l’ordinateur

d. Aucun de tout ce qui est cité ci-dessus Sol. D

3. Lequel des périphériques suivants n’est pas un dispositif de stockage?

a. DVD

b. Disque dur

c. Disquette

d. Souris Sol. D

4. Le cerveau de tout ordinateur est

a. L’UAL

b. La mémoire

c. La CPU

d. Le Système d’Exploitation Sol. C

(18)

5. Une méthode assistée par l’ordinateur pour l’enregistrement et l’analyse d’un système existant ou supposé est

a. La transmission de données

b. Le flot de données

c. La capture de données

d. Aucune des méthodes citées ci-dessus

Sol. B

6. Une table……… stocke les informations de la base de données ou du système.

a. SQL

b. Imbriquée

c. Système

d. Aucune des propositions ci-dessus Sol. C

7. Qu’est-ce que SQL signifie?

a. Structured Query Language

b. Sequential Query Language

c. Semantic Query Language

d. Solution-based Query Language Sol. A

(19)

8. Lequel des points suivants N’EST PAS un avantage des SGBD?

a. La redondance est contrôlée.

b. L’accès non autorisés est restreint.

c. La fourniture des interfaces multiutilisateurs.

d. Les problèmes de sécurité.

Sol. D

9. L’unité basique d’une feuille dans laquelle on entre des données en Excel est appelée une

a. Cellule b. Table c. Boîte d. Colonne Sol. D

10. Quel sera la sortie du programme C suivant?

#include<stdio.h>

int main() int goto=5;

printf(“%d”,goto);

return 0;

} 5

**

***

Erreur de compilation

Aucune des propositions citées

Sol. D. Explication. Nom de variable invalide. goto est un mot-clé en C. Le nom de variable ne peut pas être un mot clé du langage C.

(20)

11. Laquelle des déclarations suivantes doit être utilisée pour obtenir un reste après la division de 3.14 par 2.1 ?

a. rem = 3.14 % 2.1;

b. rem = modf(3.14, 2.1);

c. rem = fmod(3.14, 2.1);

d. le reste ne peut pas être obtenu dans une division avec virgule flottante Sol. Réponse: C

Explication:

fmod(x,y) - Calcule x modulo y, le reste de x/y. 

Cette fonction est la même que l’opérateur modulo. Mais, fmod() exécute les divisions avec virgule flottante.

12. Lequel des symboles spéciaux suivants est permis dans un nom de variable?

a. * (étoile)

b. | (barre verticale) c. - (tiret)

d. _ (tiret en bas)

Sol. D. les noms de variable en C sont faits de lettres (minuscules et

majuscules) et des chiffres. Le caractère tiret d’en bas (“_”) est aussi permis.

Les noms ne doivent pas commencer par un chiffre.

13. Laquelle des propositions suivantes ne peut pas représenter une variable en programmation

a. Variable b. Variable() c. Variable_a d. Aucune Sol. B

(21)

14. Les débitsdes réseaux LAN sont mesurés en a. Bits par second

b. Octets par second c. Caractères par second d. Taille du mot

SOL. A

15. Quelle est la similarité entre une structure, une union et une énumération?

a. Toutes permettent de définir de nouvelles valeurs

b. Toutes permettent de définir de nouveaux types de données c. Toutes permettent de définir de nouveaux pointeurs

d. Toutes permettent de définir de nouvelles structures Sol. B

16. Laquelle des déclarations suivantes est vraie?

a. L’utilisateur doit explicitement définir la valeur numérique des énumérations b. L’utilisateur a un contrôle sur la taille des variables d’énumération.

c. L’énumération peut avoir un effet local sur le block, si souhaité.

d. Les énumérations ont un effet global sur le fichier.

Sol. C

17. Un langage de programmation est a. N’importe quel programme.

b. Un langage artificiel.

c. Un langage naturel.

d. Aucune des propositions ci-dessus.

Sol. B

(22)

18. Java est un

a. Système d’Exploitation b. Compilateur

c. Périphérique d’entrée d. Langage de programmation Sol. D

19. WAN signifie a. Wap Area Network b. Wide Area Network c. Wide Array Net d. Wireless Area Network Sol. B

(23)

Unité 1. Concepts sous-jacents aux bases de données

Introduction à l’unité

L’unité introduit l’apprenant dans le monde des bases des données à travers des définitions élémentaires, la présentation des systèmes de gestion de base de données et la modélisation des données, qui est un préalable important avant la conception de toute base de données.

Objectifs de l’unité

À la fin de cette unité, vous devriez être capable de:

1. Définir ce qu’est une base de données

2. Connaître les différents types de bases de données

3. Modéliser les données qui doivent être dans une base de données

Termes clés

Attribut: un Attribut est un détail qui sert à identifier, décrire, classifier ou fournir l’état d’une entité. Pour un système de gestion d’une librairie, une entité livre peut être décrite par un numéro ISBN, un éditeur, une date de publication, etc. (Cf. entité).

Base de données: un ensemble d’informations structurées stockées de manière permanente. Elle peut aussi être vue comme une collection de données organisées utiles à une organisation.

Base de Données Hiérarchique: données organisées dans une structure arborescente, chaque élément de cette structure a seulement un élément supérieur (nœud père).

Base de Données en réseau: données organisées en graphe avec des nœuds interconnectés.

Base de Données Orientée Objets: données organisées en des instances de classes hiérarchiques.

(24)

Base de Données Relationnelle: les données sont organisées en tables comme des n-uplets. Chaque table (aussi appelée relation) est composé de plusieurs lignes (attributs). Chaque attribut doit être élémentaire.

Cardinalité: elle caractérise le lien entre une entité et une association. La cardinalité d’une association est constituée du nombre minimal (généralement 0 ou 1) et du nombre maximal (généralement 1 ou n) d’éléments impliqués dans la relation;

Diagramme Entité-Relation: modélisation Entité-Relation impliquant les choses importantes dans une organisation (entités), les propriétés de ces choses (attributs) et la façon dont elles sont reliées les unes aux autres (relations).

Données: informations, spécifiquement des informations organisées et représentées dans un format convenable au traitement par un ordinateur.

Entité: une chose d’importance, concrète ou abstraite, concernant laquelle l’activité ou le système à modéliser a besoin pour tenir l’information. Par exemple, pour développer un système de gestion d’une bibliothèque, les entités évidentes peuvent être : Livre et Personnel.

Modélisation des données: processus de structuration des données.

Système de Gestion de Base de Données (SGBD): Le principal outil de gestion d’une base de données permettant d’insérer, de modifier et de rechercher efficacement des données spécifiques parmi un grand nombre d’informations.

UML (Unified Modeling Language): c’est un outil permettant la modélisation de données.

(25)

Activité1.1 – Introduction aux Bases de données Introduction à l’activité

Cette activité introduit les concepts fondamentaux des bases de données, leur historique et les systèmes de gestion de base de données.

Objectifs de l’activité

À la fin de cette activité, vous devriez être capable de:

• Définir le terme base de données.

• Lister des avantages des systèmes de base de données.

• Donner des exemples d’applications des bases de données.

Activité d’apprentissage : A la découverte des bases de données

Base de Données

Il y a plusieurs définitions de la donnée. Une d’entre elles est la suivante : « une information, spécifiquement une information organisée et représentée sous une forme qui se prête au traitement par un ordinateur» (Zanella et al., 2013).

Une base de données est un ensemble structuré d’informations stockées de manière

permanente. De ce fait, l’information contenue dans la base représente la banque de données.

Ainsi, la base de données est le contenant et la banque de données est le contenu. Une base de données permet de rassembler et de centraliser l’information nécessaire aux diverses applications pour une meilleure distribution (Mathieu, 2000).

Logiquement, une base de données est compose d’un ensemble d’informations concernant un thème spécifique. Cet ensemble doit être complet, non redondant et structure. En d’autres termes, toutes les informations sur le sujet donné doivent être disponibles, chaque information doit être unique et structurée.

Le répertoire des étudiants inscrits dans une université est un exemple de base de données contenant les identifiants de tous les étudiants, leurs noms et prénoms, leurs parcours, leurs notes pour toutes les matières, leurs adresses et leurs numéros de téléphone. L’accès à cette base de données est possible à travers la recherche par identifiant ou par nom par exemple.

(26)

Systèmes de Gestion de Bases de Données (SGBD)

Avant d’accéder à une base de données, elle doit être construite à l’aide d’un outil appelé Système de Gestion de Base de données (SGBD). Le SGBD est le principal outil de gestion de base de données qui permet la définition, l’insertion, la modification et la recherche efficace de données spécifiques parmi une multitude d’autres (banque de données). Un SGBD est aussi considéré comme une interface entre les utilisateurs et la mémoire secondaire. Cette interface facilite le travail des utilisateurs en leur donnant l’impression que toutes les informations sont comme ils souhaitent. Chaque utilisateur a l’impression qu’il est seul à utiliser les données.

Le SGBD est compose de trios parties comme indiqué sur la Figure 1.

Figure 1: Modèle à trois couches.

• Le Système de Gestion de Fichiers: Cette couche gère le stockage physique de l’information. Cela dépend du matériel utilisé.

• Le SGBD interne: il organise le placement et l’assemblage des données, gère les liens et l’accès rapide aux données.

• Le SGBD externe: il permet aux concepteurs et utilisateurs d’accéder et de manipuler les données. Il gère aussi les langages de requête et les outils de présentation comme les états et les formes.

La base de données permet de définir une structure au dessus de la couche physique (peu convenable à la manipulation des données). En d’autres termes, le Système de Gestion de Fichiers et le SGBD interne composent la structure physique tandis que le SGBD interne représente la structure logique du SGBD comme montré à la Figure 2.

(27)

Figure 2: Architecture d’un SGBD.

Avantages des SGBD

L’analyse comparative des Systèmes de Gestion de Fichiers avec l’approche des SGBD a révélé certains avantages en faveur des SGBD dont:

1. L’indépendance Physique: le SGBD dissimule les détails sous-jacents et offre simplement une structure globale pour présenter des données sans tenir compte des aspects physiques.

2. Indépendance logique: Chaque groupe de travail peut faire ce qui l’intéresse indépendamment des autres. Le groupe doit être avoir la possibilité de gérer les données comme il veut même si les autres utilisateurs ont accès aux mêmes données. L’administrateur peut intervenir sur le système sans influencer l’organisation de chaque groupe de travail.

3. Utilisation par des non-techniciens: Le SGBD permet d’accéder aux données par des méthodes simples sans utiliser les langages de programmation en décrivant la manière d’obtenir ces données.

4. Accès efficace aux données: le SGBD offre aux utilisateurs les meilleurs algorithmes de recherche de données.

5. Administration centralisée des données: le SGBD doit offrir aux administrateurs de données les outils pour vérifier la cohérence des données, l’éventuelle restructuration, la sauvegarde ou la réplication de la base de données.

L’administration est centralisée et assurée seulement par des utilisateurs spécifiques pour des raisons de sécurité.

6. Données non-redondantes: le SGBD doit éviter la duplication d’informations en raison de la limitation de la mémoire et la multitude de maintenances

(28)

des mêmes données.

7. Cohérence des données: La cohérence est gagnée à travers la vérification des contraintes d’intégrité. Une contrainte d’intégrité est une exigence concernant les données qui doit être respectée dans le but d’assurer la cohérence de cette base. Le SGBD doit permettre une gestion automatique de ces contraintes d’intégrité sur les données.

8. Accès concurrent aux données: le SGBD permet les accès multiples et simultanés aux informations stockées dans la base de données sans violations de l’intégrité de la base. Chaque utilisateur paraît être le seul à utiliser les données.

9. Sécurité des données: Les données doivent être protégées des accès non autorisés et malicieux. Le SGBD doit offrir la possibilité d’autoriser, de contrôler et de supprimer les droits d’accès à certaines données. Le SGBD doit aussi être tolérant aux fautes, c’est-à-dire, être capable de revenir à un état dans lequel les données sont cohérentes après un délestage ou un échec dans l’exécution d’un programme Durant une opération sur les bases de données. Les aspects de sécurité sont pris en charge par les Systèmes de Gestion des Transactions.

Un bon SGBD doit inclure toutes les propriétés ci-dessus même si cela n’est pas toujours car, en réalité, seules certaines d’entre elles se rencontrent dans la plupart des systèmes. En effet, l’implémentation de toutes les propriétés dans un SGBD est un travail assez ardu.

Évaluation de l’activité

Vérifiez votre compréhension!

1. Donnez une définition pour les termes suivants :

• Données

• Information

• Base de données

• Systèmes de gestion de base de données

• Système de gestion de fichiers

2. Citez trois avantages d’une base de données par rapport à un système de gestion de fichiers

3. Quels sont les différentes couches d’un SGBD ? Quel est le rôle de chacun ? 4. Donnez deux exemples de SGBD.

(29)

Activité1.2 – Modèles de Bases de Données Introduction à l’activité

Cette activité présente les différents modèles de Bases de Données et leurs avantages les uns par rapport aux autres.

Objectifs de l’activité

À la fin de cette activité, vous devriez être capable de:

• Lister les différents modèles de bases de données.

• Donner un exemple de chaque modèle.

Activité d’apprentissage : Présentation et description des types de bases de données

Pendant longtemps, les bases de donnéesont eu des problèmes d’accès en raison de leur manière de conception. En fait, lors de la constructionde labase de données, il est nécessaire de prévoir lesrequêtes à exécuter pour déterminer les clés d’accès et organiser la base de données en conséquence. Afin de remédier àce problème d’accès, plusieurs modèles debase de données et de SGBD sont apparus. La présentation de chacun des modèles est faite ci-dessous.

Pour faciliter la compréhension, prenons un exemple simple de base de données: la gestion des achats dans une librairie. Les éléments suivants seront pris en compte: les articles, les achats, les auteurs, le titre des ouvrages, le prix de l’article, la date d’achat, la quantité achetée, etc.

(30)

Modèle hiérarchique

Ce modèle est le premier dans la liste des modèles existants. Il s’agit de l’organisation de données en une structure arborescente qui est facile à gérer, car chaque élément de cette structure ne comporte qu’un seul élément supérieur. La connectivité est limitée: des éléments des branches du même niveau ne sont pas connectés comme représenté sur la Figure3.

Figure 3: Base de données hiérarchique.

Ce modèle debase de données permetlesrequêtessimples du type « combien de livresont été vendus au cours dela semaine précédente ? » ou « qui sont les auteurs du livre intitulé

« la conception de bases de données ? ». Mais, il n’est paspossible de déterminer les achats qui contiennent lelivre intitulé”la conception de base de données”, car il consiste à examinertous les achatsafin de déterminersi lelivre en question y existe.Pour éviter ces problèmeshiérarchiques, les modèles flexiblessuivantsont été inventés pour faciliterlesrequêtes.

Modèle en réseau

Le présent modèle est une extension dela précédente.Cependant, les limites de connectivité des éléments du modèle hiérarchique sont dépassées dansle modèle en réseau car les

différents éléments sont interconnectés. Cela permet de formuler ungrand nombre derequêtes qui doivent toujours êtreprévueslors de la constructionbase de données.

Modèle Relationnel

Le modèle relationnelélimine lacontrainte existantedans les modèles précédents: la nécessité de connaître à l’avancela requêteà exécuter.Les données sont stockéesdans les tablessous forme de n-uplets (figure4). Chaque table (également appeléerelation) est composée deplusieurs colonnes (attributs). Par exemple, la table achat contient cinq attributs (numAchat, numAuteur, numArticle, dateAchat, quantité) comme indiquédans le tableau 3. Chaque attributdoit êtreunique. Par exemple, l’attribut “auteurs” au plurielest interdit.

Leslibrairiesdoivent mettreun seul auteur (le premier par exemple) ou de diviser la table livre en

(31)

Ce type de structure permet d’établir des connexions lors de l’exécution d’une requête. Ainsi, il est possible de faire tous les types de requêtes aussi complexes soient-elles.

Le modèle relationnelest basé surl’algèbre relationnelle. Les bases de données

relationnellessont principalementaccessiblesà travers des opérationsde sélection, de projection et de jointure (voir l’activité 5 qui porte sur les opérations en page).

Figure 4: interface entre application et base de données relationnelle

Num_Article Description Prix

111 Livre – humour 2500

112 Livre – roman policier 3000

113 DVD – Bande dessinné 1750

124 CD – Musique classique 4000

130 CD – Music RNB 3500

131 Livre – Informatique 5000

135 CD – Sciences mathématiques 3250

140 Livre – Science de l’éducation 4500

141 Livre – Science géographique 5000

Table 1: table des articles.

(32)

Num_Auteur Nom

9 Jacqueline KONATE

10 Robert OBOKO

11 John KANDIRI

12 Aurelio RIBEIRO

15 Pascaline KONE

19 Jessica SOGOBA

25 Jonathan KARIBA

26 Jacques DEMBELE

Table 2: table des auteurs.

Num_Achat Num_Auteur Num_Article dateAchat Quantité

602 19 113 10/08/2014 1

603 10 131 10/08/2014 4

701 9 112 12/08/2014 2

702 15 124 13/09/2014 1

703 12 140 03/09/2014 5

704 11 135 01/10/2014 1

705 9 111 12/10/2014 10

708 25 130 13/10/2014 3

710 19 113 13/10/2014 1

Table 3: Table des achats.

Dans les modèles hiérarchiques et en réseau, le niveau de l’utilisateur (structure logique) représente la manière dont les données sont organisées et mémorisées sur un support physique (structure physique). Dans ces modèles, les requêtes doivent être planifiées à l’avance, c’est-à-dire, lors de la construction des bases de données. Ainsi, seul un tuple peut être manipulé à la fois et la navigation se fait d’information en information. Dans le modèle relationnel, une base de données est une série de tables. Chaque table contient des champs; chaque champ est un type simple de données comme un entier ou une chaîne. Il est nécessaire de convertir les données d’application en tables et vice versa. L’interface entre une application etune base de données est faite avec des langages spécifiques comme SQL

(33)

Dans le modèle relationnel, la structure physique est cachée à l’utilisateur qui ne peut voir la représentation logique: une série de tables. Les requêtes sont faites à travers le langage SQL en fonction des besoinsdes utilisateurs.

Modèle Orienté Objets

Ce modèle vient de la conception orientée objet qui est apparuà la fin de1980. Ce concept a été utilisé dans plusieurs domaines tels que les langages de programmation, systèmes d’exploitation et les bases de données. L’application de l’approche orientée objet aux bases de donnéesa conduit aux bases de données orientées objets (BDOO). Ces types de bases de données combinent les caractéristiques de la modélisation orientée objet et les fonctionnalités des bases de données (voir figure 5).

Figure 5: interface entrel’application etla base de données objets.

Le principe d’une DBOO est simple car la même structure de données est utilisée dans l’application etla base de données. Ainsi, il y a une correspondance directe entre l’application etla base de données. Ces structures de données sont des classes d’objetsetla base de donnéesestla based’objets. Ainsi, les objets de labase de données sont persistants (ils

continuent à exister après avoir quitté l’application), contrairement aux objets de l’application.

Les propriétés des classes d’objets telles que l’abstraction de données, l’héritage et le polymorphisme sont conservées et permettent une bonne flexibilité. Comparé aumodèle relationnel, le modèle objets offre une meilleure gestion des objets et leurs relations parfois complexes. La requête sur la base de données est aussi plus facile parce qu’on navigue d’un objet à un autre. Les multiples opérations peuvent être contenues dans la requête unique.

La modélisation Orientée Objet (MOO) permet une représentation plusdirecteet la

modélisation desproblèmes réels. Cependant, malgré des caractéristiques intéressantes du modèle objets, le modèle relationnel demeure celui qui a le plus de succès parce qu’il est utilisé dans la majorité des systèmes de base de données. Cependant, la plupart des langages de programmation modernes sont orientés objets orientés et ont besoin de persistance pour leurs données. Différentes techniques, comme ORM (Object/Relational Mapping), ont été prises pourla persistance des données dans les bases de données relationnelles. ORM est un framework pour la transformation objet/relationnel.

(34)

Les modèles présentés ci-dessous décrivent l’évolution des bases de données. Les deux premiers sont largement dépassés. Mais, ils sont toujours utilisés en raison de leur efficacité etaussi parce qu’il est difficile de passer d’un modèle à l’autre. Le modèle relationnel offre beaucoup de souplesse pour la définition des bases de données et des requêtes, même s’il est souffre aussi du manque deperformance et de flexibilité.

Évaluation de l’activité

Vérifiez votre compréhension!

A. Combien de types de bases de données existent t-ils ? Citez-les.

B. Répondre par vrai ou faux aux affirmations suivantes :

1. Le modèle objet est le modèle le plus utilisé dans les applications actuelles

2. La connectivité des éléments est le plus élevée dans le modèle hiérarchique.

3. Le modèle relationnel est le modèle le plus ancien dans les bases de données

4. SQL est un modèle de base de données.

C. Qu’est-ce qu’un langage de base de données ? Donnez-en un exemple.

D. Que signifie ORM ? Quel est son rôle ?

(35)

Activité1.3 – Modélisation de données Introduction à l’activité

Cette activité porte sur la modélisation de données, particulièrement la conception du diagramme des classes UML qui est un modèle Entité-Relation utilisé dans la conception de bases de données.

Objectifs de l’activité

À la fin de cette activité, vous devriez être capable de:

• Expliquer le besoin de modélisation des données.

• Modéliser des données à partir d’informations.

Activité d’apprentissage: Passage de l’information aux données?

Modélisation de données

En général, avant d’aborder une question, nous avons besoin d’analyser en profondeur les tenants et les aboutissants du problème auquel nous sommes confrontés. La phase de conception comprend cette analyse eta besoin de plusieurs choix qui peuvent avoir une incidence sur le système (par exemple un système de base de données). De nombreuses méthodes ont été proposées pour structurer un projet et montrer une vue abstraite du système ciblé. La discipline qui traite deces méthodes est appelée l’analyse et elle est faite par des analystes. L’analyse s’occupe de l’étude d’un problème et de la proposition d’une solution abstraction. La phase d’analyseest très importante carelle seraitvalidée parl’utilisateur avantla mise au pointdu système.Il existe plusieurs méthodes d’analyse comme AOO

(Analyse Orientée Objet), OMT (ObjectModelingTechnique), OOSE (ObjectOrientedSystem Engineering) et UML (Unified Modeling Language). En effet, UML est le plus utilisé des

méthodes de modélisation et il est presque devenu un standard dans le domaine. UML sépare les données et le traitement des données dans le système d’information à travers ses différents diagrammes. Les bases de données sont conçues avec le diagramme de classes qui est un modèle abstraitde tous les concepts du domaine ciblé.Le diagramme de classesoffrent une vuestatique dusystème d’informationà travers des classes (abstraction des entités) et des relations.

Une conception de base de données peut commencer juste après que les analystes aient fini de proposer le diagramme de classes.

(36)

Diagramme des classes UML

UMLestun langage de modélisationtrès vaste. Pour des besoins d’étudesdes bases de données, on ne considère quele diagramme de classesqui est égalementconsidéré commele schémale plus importantdans la modélisation orientée objets.Ce schémaest utilisé pourreprésenter la structure desconcepts manipulés dans le système. La figure6 présente les principaux concepts de la modélisation de diagramme de classe.

Classe: c’est le concept fondamental qui permet la modélisation de certaines caractéristiques et comportementscommunsà plusieursobjets. Une classe est un modèle conceptuel

représentant soitun objet réel, soit unobjet abstrait. Une classe est désignée parun nom;

elle a quelquesattributs et opérations. Elle estreprésentée graphiquement par un rectangle.

Sesattributs ou opérationssont éventuellement représentées. Une subdivisionpeut êtreattachée à une classepour représenter un compartiment relatifs aux règles métier, aux contraintes, aux exceptions, etc.

Héritage: l’héritage estla relation «est un» ou «est une sorte de”. Par exemple, une voiture estune sorte devéhicule outout simplementune voiture estun véhicule. Du point de vuedes ensembles, on peut dire quel’ensemble des voitures fait partiede l’ensemble desvéhicules. La classede baseest appelée “super classe” ou “classe mère”. Une classe peut avoir plusieurs sous-classes ou classes enfants. Le symbolede l’héritage est un trait partant d’un enfant de la classe et qui se termine parun triangle vers le côté de la classe mère.Chaque sous-classe hérite des caractéristiques de ses classes ascendantes successives. Quand une classe hérite d’une seule classe, nous avons l’héritage simple (Figure 7: VOITUREESSENCE). Mais, quand une classe hérite de deux ou plusieurs classes, il s’agit de l’héritage multiple (figure 7:

VOITUREHYBRIDE).

(37)

Figure 7: Héritage

Dépendance: la relation de dépendance est une généralisation de la relation d’utilisation. Tout élément du modèle peut être lié à un autre par la relation de dépendance. Le symbole de la dépendance est un trait en pointillés avec une flèche.

Objet ou Instance d’une classe: A partir d’une classe, nous pouvons construire des objets. Un objet possède les propriétés définies au niveau de la classe. Cependant, un objet a ses propres états et les comportements du point de vue de la mise en œuvre. Par exemple, la voiture immatriculée “AH -7486-MD” est une instance de la classe voiture.

Attributs d’une Classe: un attribut de classe représente une information caractéristique d’une classe. La définition d’un attribut est la spécification d’un nom de variable, d’un nom de type et éventuellement d’une valeur d’initialisation. Quand un attribut peut être utilisé par une autre classe, celui-ci est public et sa définition est précédée par le symbole «+». D’un autre côté, lorsqu’un attribut n’est pas accessible par d’autres classes, celui-ci est privé et sa définition est précédée par le symbole”-”. Quand un attribut privé d’une classe donnée peut être utilisé par ses classes héritières (sous classes), cet attribut est dit protégé et le symbole “#” est utilisé pour le définir. Enfin, un attribut est dérivé lorsque sa valeur peut être obtenue à partir d’autres attributs de la classe. Le symbole utilisé pour un attribut dérivé est “/”. Le type d’un attribut peut être un type atomique ou prédéfini comme int, char, string, float, date, etc. Le type d’un attribut peut également être défini par une classe.

Méthodes de classe: les méthodes de classes ont les opérations sur le comportement d’un objet en fonction de son état courant. Comme les attributs, les méthodes peuvent être privées ou publiques. Quand une méthode prend des arguments, ces derniers doivent être précisés.

Cardinalité: les cardinalités sont utilisées pour donner des informations sur le nombre d’instances concernées. La relation N-M signifie une relation entre N instances d’une classe de M instances d’une autre classe. La relation 1-1 définit un couple d’objets. La cardinalité est représentée par un intervalle numérique I-J. La borne inférieure (resp. Supérieure) donne le nombre minimal (resp. maximal) des instances impliquées dans la relation. L’indication des cardinalités dans un modèle objets est très importante de la conception.

(38)

1 une et seulement une instance 0..1 Au plus une instance

0..* zéro ou plusieurs instances 1..* au moins une instance

* plusieurs instances

6 Un nombre fixe d’instances 2..5 Un interval fixe d’instances

Table 4: Notation des cardinalités.

Exemple : Diagramme de classes pour la gestion des clients et de leurs comptes dans une banque

Figure 8 : Exemple de diagramme de classes.

La figure 8 montre un diagramme de classes UML assez simple pour la modélisation des concepts du domaine de gestion bancaire.

Le Client possède une Adresse et chaque Adresse appartient soit à un Client soit à une Agence. Une Agence possède un ou plusieurs Clients, mais un Client appartient à une seule

(39)

Évaluation de l’activité

Vérifiez votre compréhension!

A. Définissez les termes suivants :

– Modèle de données – Modélisation

– Digramme de classes – Attribut

– Relation – Cardinalité – Entité – Classe

– Objet d’une classe – Instance d’une classe – Héritage

B. Donnez deux exemples de méthodes de modélisation.

C. Qu’est-ce qu’un diagramme de classe UML ?

D. Soit un système de gestion d’un établissement scolaire. Identifiez les différents concepts du domaine et proposez le diagramme de classes correspondant.

Résumé de l’Unité

Cette unité est focalisée sur la présentation des concepts importants dans l’étude des bases de données, l’évolution que les bases de données ont connue depuis les systèmes à base de fichiers, les systèmes de gestions de base de données ainsi que leurs avantages. Aussi, les différents types de bases de données ont été présentés ainsi que leurs forces et faiblesses.

Pour terminer, l’unité introduit la modélisation de données qui est très importante dans l’élaboration des bases de données. Il existe différents outils de modélisation des données dont UML (Unified Modeling Language) qui a été présenté dans l’unité.

(40)

Lectures et autres ressources

Les lectures et autres ressources dans ce cours sont indiquées ci-dessous.

Ressource # 1 : Modélisation de données

Référence Complète : http://www.jlpi.ch/livremd/livremd.htm

Justification: donne un aperçu complet de la modélisation de données

Ressource # 2 :

Référence Complète : http://www.ddegjust.ac.in/studymaterial/mca-3/ms-11.pdf http://www.ddegjust.ac.in/studymaterial/mca-3/ms-11.pdfhttp://www.ddegjust.ac.in/

studymaterial/mca-3/ms-11.pdf

Résumé : Le document fournit des ressources complètes de lectures Justification: Document écrit dans un langage simple à comprendre

Ressource #3 : Introduction aux bases de données

URL: http://liris.cnrs.fr/jean-marc.petit/ferme/lib/exe/fetch.php/cours_md.pdf Justification: le contenu est librement disponible en ligne.

Ressource #4

Titre: Termes clés sur les bases de données

URL: http://www-inf.int-evry.fr/COURS/BD/glossaire.html Description: Page Web des termes sur les bases données Justification: fournit un dictionnaire des termes pertinents.

Ressource #5

Titre: Modélisation de l’Entité

URL: http://laurent-audibert.developpez.com/

Cours-BD/?page=conception-des-bases-de-donnees-modele-a Description: document PDF en ligne sur le Diagramme Entité-Relation

Justification: fournit une compréhension approfondie sur le diagramme Entité-Relation.

(41)

Ressource #6

Titre: Des Bases de Données à Internet

Auteur et éditeur: Mathieu P., Vuibert, Paris 2000 Description: ouvrage sur les bases de données

Justification: le livre fournit des notes importantes sur le cours.

Ressource #7

Titre: Architecture et Technologies des Ordinateurs

Auteur et éditeur: Zanella P., Ligier Y., Lazard E. ; Dunod, Paris 2013.

Description: livre sur l’architecture des ordinateurs et leurs technologies.

Justification: le livre fournit des notes importantes pour le cours, notamment l’historique des bases de données.

Ressource #8

Titre: Ingénierie et Intégration des systèmes

Auteur et éditeur: Meinadier J. P.; Hermes, Paris 1998.

(42)

Unité 2. Bases de Données normalisées et cohérentes et Algèbre relationnelle

Introduction à l’unité

L’unité comporte trois activités qui conduisent l’apprenant à découvrir les concepts d’intégrité des données, leur cohérence et leurs différentes réprésentations normalisées ; un outil

mathématique qu’est l’aglèbre relation est également introduit.

Objectifs de l’unité

À la fin de cette unité, vous devriez être capable de:

1. Définir la normalisation et décrire son processus 2. Normaliser une base de données

3. Connaître les différentes contraintes d’intégrité

4. Reconnaître et d’utiliser les opérations de l’Algèbre Relationnelle

Termes clés

Anomalie: une incohérence dans une base de données.

Algèbre Relationnelle: Outil mathématique qui permet de définir les opérations sur les bases de données.

Arbre de requête: la décomposition d’une requête en ses différentes étapes (sous-requêtes) sous forme d’arbre.

Les opérateurs sont des nœuds et les feuilles sont des relations (tables).

Clé candidate: c’est une combinaison d’attributs qui peuvent être uniquement utilisés pour identifier un enregistrement d’une base de données. Chaque table a une ou plusieurs clés candidates. Une de ces clés candidates est sélectionnée comme la clé primaire de la table (Cf. clé primaire).

Opérations de base de données: requêtes

(43)

Clé Etrangère: Une clé utilisée dans une table pour représenter la valeur d’une clé primaire dans une table qui lui est reliée. Tandis qu’une clé primaire doit contenir des valeurs uniques, les clés étrangères peuvent être dupliquées (Cf. clé primaire).

Clé Primaire : c’est une clé (attribut) utilisée pour identifier de manière unique un enregistrement ou un tuple dans une table. La clé primaire est utilisée en conjonction avec une clé étrangère dans une autre (ou la même) table pour relier deux tables entre elles. Par exemple, la clé primaire dans une table auteur va correspondre à la clé étrangère dans une table livre en vue de relier un auteur particulier aux livres de cet auteur (Cf. clé candidate et clé étrangère).

Contrainte d’intégrité référentielle: Une condition à laquelle les valeurs de la colonne de la clé étrangère dans toutes les lignes d’une table ont des lignes correspondantes dans la table référencée par la clé primaire.

Normalisation: le processus de structuration des données pour minimiser la duplication et les incohérences (Cf.

anomalie).

Optimisation de requêtes: le processus de transformation des requêtes relativement complexes en des requêtes plus simples.

Requête: pour avoir une information à partir de la base de données, pour mettre à jour, modifier, supprimer des données ou insérer de nouvelles données.

Trigger: une procédure lancée lorsqu’une action se produit sur la base de données et qui permet de définir des contraintes d’intégrités complexes.

(44)

Activité 2.1 – Normalisation et création des tables de données Introduction à l’activité

Cette activité porte sur le processus de création de tables d’une base de données et la notion de normalisation.

Objectifs de l’activité

À la fin de cette activité, vous devriez être capable de:

Concevoir une table de données.

Normaliser une table.

Ecrire le code SQL approprié pour une table.

Activité d’apprentissage: représenter les données sous une forme qui assure la cohérence des données

Cette activitécouvre tous les aspectspratiques etconnaissancesdans la conception etla mise en œuvrebase de données. Cela inclut: la Normalisationdes donnéeset la conception de table.

(45)

Les tables ci-dessus montrent des données non normalisées extraites du Rapport de Gestion de Projets. A partir des données disponibles;

1. Normaliser l’ensemble des données en 3NF ; 15 points

2. Identifier les entités et attributs utilisant le format simple pour les informations sur un professeur : Numéro du Professeur, Nom du Professeur, Grade du Professeur, Code du Département, Nom du département; 15 points

3. Modéliser le système à l’aide d’un diagramme Entité Relation qui montre clairement la relation; (15 points)

4. Proposer une conception des tables physiques (15 points)

Solution simple de Normalisation

La normalisationest une techniqueascendante pour la conceptionde base de données, normalementbasée surun système existant. Nouscommençons l’analysede la documentation, par exempleles rapports, les présentations d’écran de ce système. Nous allons commencer avecle rapport de gestionde projets, qui décritles projetsen cours d’élaborationparles employés. Ce rapportdoit être«normalisé». Chacune desquatre premières étapesde normalisationest expliquée.

(46)

Étape 1

Sélectionnez la source de données (c’est-à-dire le rapport présenté ci-dessus) et de convertir en une table «dénormalisée» (UNF). Leprocessus est le suivant:

• Créer les titres des colonnes de la table pour chaque élément de données sur le rapport (ne pas tenir compte des champs calculés). Un champ calculé est celui qui peut être dérivé d’autres informations sur le formulaire. Dans ce cas, l’effectif total et le taux horaire moyen sont des exemples de champs dérivés.

• Entrez les données d’échantillon dans la table. (Ces données ne sont pas simplement des données du rapport, mais un échantillon représentatif. Cet exemple montre plusieurs employés travaillant sur différents projets. Dans cette société le même employé peut travailler sur différents projets et à un taux horaire différent).

• Identifier une clé pour la table (et le souligner).

• Supprimer les données en doublons. (Dans cet exemple, pour la clé choisie du Code du Projet, les valeurs du Code du Projet, le Titre du Projet, le Gestionnaire du Projet et le Budget du Projet sont dupliqués s’il y a deux ou plusieurs

employés travaillant sur le même projet. Le Code du projet choisi pour la clé et les données dupliquées, associés à chaque code de projet, est supprimé. Ne pas confondre les données en double attributs répéter qui sont décrites dans l’étape suivante.

(47)

Etape 2

Transformer une table de données dénormalisée de la première forme normale (1NF) tous les attributs répétés en une nouvelle table. Un attribut répété est un champ de données à l’intérieur de la relation UNF qui peut se produire avec des valeurs multiples pour une seule valeur de la clé. Le processus est le suivant:

• Identifier les attributs répétés.

• Déplacer ces attributs répétés dans une nouvelle table avec une copie de la clé de la table UNF.

• Attribuer une clé à la nouvelle table (et la souligner). La clé de la table

dénormalisée originale devient toujours une partie de la clé de la nouvelle table.

Une clé decomposée est créée. La valeur de cette clé doit être unique pour chaque occurrence d’entité.

Notes:

• Après avoir supprimé les données dupliquées, les attributs répétés sont facilement identifiables.

• Dans le tableau précédent N° Employé, Nom Employé, N° Département, Nom Département et Taux Horaires ont des attributs répétés. De ce fait, il est possible d’avoir plus d’une occurrence de ces attributs pour chaque code de projet.Ce sont les attributs répétés qui ont été déplacés dans une nouvelle table avec une copie de la clé d’origine (ex: Code du projet).

• Une clé composée de Code Projet et N° Employés a été définie pour cette nouvelle table. Cette combinaison est unique pour chaque ligne de la table.

1NF Tables: Attributs Répétés Supprimés

Code Projet Titre Projet Gestionnaire Projet BudgetProjet

PC010 SystèmePensions M Phillips 24500

PC045 Système Salaires H Martin 17400

PC064 Système RH K Lewis 12250

Code Projet

No Employé. Nom Employé No Département Nom

Département

Taux Horaire

PC010 S10001 A Smith L004 Informatique 22.00

PC010 S10030 L Jones L023 Pensions 18.50

PC010 S21010 P Lewis L004 Informatique 21.00

PC045 S10010 B Jones L004 Informatique 21.75

PC045 S10001 A Smith L004 Informatique 18.00

(48)

PC045 S31002 T Gilbert L028 Base de données

25.50

PC045 S13210 W Richards L008 Salarie 17.00

PC064 S31002 T Gilbert L028 Base de

données

23.25

PC064 S21010 P Lewis L004 Informatique 17.50

PC064 S10034 B James L009 RH 16.50

Étape 3

Transformer les données de la première forme normale (1NF) à la deuxième forme normale (2NF). Déplacer dans une nouvelle table tous les attributs clés (dépendances partielles) qui ne dépendent que d’une partie de la cléde table.

Ce qui doit être déterminée « est le champ A dépendant du champ B ou vice versa? » Cela signifie: «Etant donné une valeur de A, alors avons-nous une seule valeur possible pour B, et vice versa? » Si la réponse est oui, A et B devraient être mis en relation et A devient la clé primaire. A doit être laissé dans la relation originale et marqué comme une clé étrangère.

Ignorer les tables avec (a) une simple clé ou (b) sans attributs non-clés (ceux-ci deviennent directement 2NF sans conversion).

Le processus est le suivant:

Prendre chaque attribut non-clé un à un et se demander : cet attribut dépend t-il d’une partie de la clé?

• Si oui, déplacez l’attribut dans une nouvelle table avec une copie de la partie de la clé dont il dépend. La clé dont il est dépendant devient la clé dans la nouvelle table. Soulignez la clé de cette nouvelle table.

• Si non, vérifier encore l’autre partie de la clé et répéter le processus du dessus

• Si toujours non, c’est-à-dire: ne dépend pas non plus de l’autre partie de la clé, gardez l’attribut dans la table courante.

Notes:

• La première table va directement en 2NF puisqu’elle a une clé simple (Code Projet).

• Nom Employé, N° Département et Nom Département sont dépendants

seulement du N° Employé. De ce fait, ils seront déplacés dans une nouvelle table dont la clé sera N° Employé.

(49)

2NF Tables: Dépendances partielles de clé supprimées

Code Projet TitreProjet Gestionnaire Projet

Budget Projet

PC010 Système Pensions M Phillips 24500

PC045 SystèmeSalaires H Martin 17400

PC064 Système RH K Lewis 12250

Code Projet

No.

Employé

Taux Horaire

No.Employé Name Employé

No.

Département

Nom

Département

PC010 S10001 22.00 S10001 A Smith L004 Informatique

PC010 S10030 18.50 S10030 L Jones L023 Pensions

PC010 S21010 21.00 S21010 P Lewis L004 Informatique

PC045 S10010 21.75 S10010 B Jones L004 Informatique

PC045 S10001 18.00 S31002 T Gilbert L028 Base de

données PC045 S31002 25.50 S13210 W Richards L008 Salaire

PC045 S13210 17.00 S10034 B James L009 RH

PC064 S31002 23.25 PC064 S21010 17.50 PC064 S10034 16.50

Etape 4 : Donnéessous la deuxième forme normale (2NF) versla troisième forme normale (3NF).

Déplacer dans une nouvelle table tous les attributs qui sont plus dépendants des attributs non clés que de la clé de la table.

Ce qui doit être déterminé est « est-ce que lechamp A dépend du champ B ou vice versa ? » Cela signifie : “étant donné une valeur pour A, peut-il y avoir seulement une valeur possible pour B, et vice versa ? » Si la réponse est oui, alors A et B doivent être mis dans une nouvelle table, A devient la clé primaire. A devrait rester dans la table originale et marqué comme clé étrangère.

Ignorer les tables avec zéro ou seulement un attribut non clé (ceux-ci deviennent directement 3NF sans conversion).

Références

Documents relatifs

Système de Gestion de Bases de Données SGBD Rappel sur les niveaux d’abstraction MySQL Principaux types de données disponibles Créer une BD phpMyAdmin Pour finir... Système de

h) Nom et prime des joueurs sponsorisés par Peugeot entre 1985 et 1990. i) Nom et année de naissance des joueurs ayant participé au tournoi de Rolland Garros de 1989. j) Nom

- le mode création pour définir ou modifier l'objet - le mode feuille de données pour voir le résultat avec les deux boutons suivants de la barre d'outils :!. Ouvrez de nouveau

Thus, if the data has only local dependencies and if the query is a tree-pattern without value joins, the EvalDP algorithm from [4] yields a polynomial-time computation of

Bon, maintenant je pense que vous avez compris le principe des différentes fonctions que nous devons utiliser pour stocker les sessions dans la base de données.

● les 2 entités peuvent être placées dans la même

● les 2 entités peuvent être placées dans la même table.

Systèmes de gestion de fichiers, collection de données, bases de données (modèle réseau)2. - nécessité de savoir où et comment sont stockées quelles