';function Lazy(){if(LazyAdsense){LazyAdsense = false;var Adsensecode = document.createElement('script');Adsensecode.src = AdsenseUrl;Adsensecode.async = true;Adsensecode.crossOrigin = 'anonymous';document.head.appendChild(Adsensecode)}}
NOUVEAU

Cours de bases de donnees s4 BCG

 Cours de bases de donnees s4 BCG

Cours de bases de donnees s4 BCG


1. Résumé

Le document "Cours de bases de données" par Philippe Rigaux, daté du 13 juin 2001, offre une vue d'ensemble complète sur les bases de données et les systèmes de gestion de bases de données (SGBD). Il commence par une introduction générale aux données et aux SGBD, puis explore les éléments nécessaires pour utiliser un SGBD, comme la définition du schéma de données, les opérations sur les données, l'optimisation et la gestion de la concurrence d'accès. Le document est structuré en plusieurs parties, couvrant des sujets tels que le modèle Entité/Association, le modèle relationnel, l'algèbre relationnelle, et le langage SQL. Il traite également des schémas relationnels, des techniques de stockage, et de la programmation avec SQL, incluant des interfaces avec des langages de programmation comme C et Java.


Introduction

Les bases de données sont au cœur de la gestion de l'information moderne, permettant le stockage, la récupération et la manipulation efficace de vastes quantités de données. Comprendre les principes fondamentaux des bases de données et des systèmes de gestion de bases de données (SGBD) est essentiel pour quiconque souhaite travailler dans le domaine de l'informatique ou de la gestion de l'information. Dans cet article, nous explorerons les concepts clés abordés dans le "Cours de bases de données" de Philippe Rigaux, un document complet qui couvre tout, des modèles de données aux techniques de stockage avancées.

Présentation générale des bases de données et des SGBD

Les bases de données sont des collections organisées de données qui peuvent être facilement accessibles, gérées et mises à jour. Les systèmes de gestion de bases de données (SGBD) sont des logiciels qui interagissent avec les utilisateurs, les applications et la base de données elle-même pour capturer et analyser les données. Le SGBD gère les données, le moteur de la base de données et le schéma de la base de données, facilitant ainsi la gestion des grandes quantités d'informations.

Modèle Entité/Association (E/A)

Le modèle Entité/Association est un modèle conceptuel qui décrit les données de manière structurée. Ce modèle utilise des entités (objets ou choses dans le monde réel) et des associations (relations entre ces entités). Il permet de créer des schémas de données qui sont à la fois compréhensibles et extensibles. Parmi les avantages de ce modèle, on trouve la clarté dans la représentation des données et la facilitation de la conception de la base de données.

Le modèle relationnel

Le modèle relationnel, introduit par Edgar F. Codd en 1970, est basé sur l'idée que toutes les données sont représentées sous forme de tables (relations). Chaque table contient des lignes (enregistrements) et des colonnes (attributs). Ce modèle est la base des SGBD relationnels modernes comme MySQL, PostgreSQL et Oracle. La conversion des schémas E/A en schémas relationnels est une étape cruciale dans la conception de bases de données relationnelles.

L'algèbre relationnelle et le langage SQL

L'algèbre relationnelle est un ensemble d'opérations mathématiques utilisées pour manipuler les tables dans une base de données relationnelle. Elle comprend des opérations telles que la sélection, la projection, la jointure, l'union et la différence. Le langage SQL (Structured Query Language) est utilisé pour interagir avec une base de données relationnelle, permettant la définition, la manipulation et le contrôle des données.

Techniques de stockage et programmation avec SQL

Le stockage des données est un aspect essentiel de la gestion des bases de données. Les techniques de stockage incluent l'utilisation de disques durs, de la technologie RAID pour la redondance des données, et l'optimisation des accès aux données. En outre, la programmation avec SQL permet d'intégrer les bases de données dans des applications écrites en langages de programmation comme C et Java, facilitant ainsi le développement d'applications robustes et performantes.

Conclusion

Les bases de données et les SGBD sont des piliers de l'informatique moderne, permettant une gestion efficace et sécurisée des données. La compréhension des concepts de base, des modèles de données, des langages de requête et des techniques de stockage est essentielle pour tirer le meilleur parti de ces technologies. Le "Cours de bases de données" de Philippe Rigaux offre une ressource précieuse pour quiconque souhaite approfondir ses connaissances dans ce domaine. Pour aller plus loin, il est recommandé de pratiquer les exercices proposés et de se familiariser avec les outils et les langages utilisés dans la gestion des bases de données.

TELECHARGER EN OFPPT PDF

TELECHARGER EN MEGA

TELECHARGER EN MEDIAFIRE

Table des matières

1 Introduction 7

2 Présentation générale 9

2.1 Données, Bases de données et SGBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Que doit-on savoir pour utiliser un SGBD ? . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.1 Définition du schéma de données . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.2 Les opérations sur les données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.3 Optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.4 Concurrence d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3 Le plan du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

I Modèles et langages 15

3 Le modèle Entité/Association 17

3.1 Principes généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.1 Bons et mauvais schémas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1.2 La bonne méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.2 Le modèle E/A : Présentation informelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3 Le modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3.1 Entités, attributs et identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3.2 Associations binaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.3.3 Entités faibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.3.4 Associations généralisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4 Avantage et inconvénients du modèle E/A . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

4 Le modèle relationnel 35

4.1 Définition d’un schéma relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.2 Passage d’un schéma E/A à un schéma relationnel . . . . . . . . . . . . . . . . . . . . . . 37

4.2.1 Règles générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.2.2 Retour sur le choix des identifiants . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2.3 Dénormalisation du modèle logique . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.3 Le langage de définition de données SQL2 . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3.1 Types SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3.2 Création des tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.3.3 Contraintes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.3.4 Modification du schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

4.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5 L’algèbre relationnelle 55

5.1 Les opérateurs de l’algèbre relationnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5.1.1 La sélection, . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.1.2 La projection,  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

5.1.3 Le produit cartésien,  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

5.1.4 L’union,  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5.1.5 La différence,


 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.1.6 Jointure,  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

5.2 Expression de requêtes avec l’algèbre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.2.1 Sélection généralisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.2.2 Requêtes conjonctives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.2.3 Requêtes avec  et


 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.3 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6 Le langage SQL 67

6.1 Requêtes simples SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

6.1.1 Sélections simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

6.1.2 La clause WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

6.1.3 Valeurs nulles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6.2 Requêtes sur plusieurs tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

6.2.1 Jointures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

6.2.2 Union, intersection et différence . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

6.3 Requêtes imbriquées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6.3.1 Conditions portant sur des relations . . . . . . . . . . . . . . . . . . . . . . . . . 74

6.3.2 Sous-requêtes correllées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6.4 Agrégration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6.4.1 Fonctions d’agrégation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

6.4.2 La clause GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

6.4.3 La clause HAVING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.5 Mises-à-jour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.5.1 Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.5.2 Destruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

6.5.3 Modification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

6.6 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

7 Schémas relationnels 81

7.1 Schémas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

7.1.1 Définition d‘un schéma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

7.1.2 Utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

7.2 Contraintes et assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

7.3 Vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.3.1 Création et interrogation d’une vue . . . . . . . . . . . . . . . . . . . . . . . . . 85

7.3.2 Mise à jour d’une vue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

7.4 Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

7.4.1 Principes des triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

7.4.2 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

7.5 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

8 Programmation avec SQL 91

8.1 Interfaçage avec le langage C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

8.1.1 Un exemple complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

8.1.2 Développement en C/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

8.1.3 Autres commandes SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

8.2 L’interface Java/JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

TABLE DES MATIÈRES 5

8.2.1 Principes de JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

8.2.2 Le plus simple des programmes JDBC . . . . . . . . . . . . . . . . . . . . . . . . 99

8.2.3 Exemple d’une applet avec JDBC . . . . . . . . . . . . . . . . . . . . . . . . . . 100

II Aspects systèmes 105

9 Techniques de stockage 107

9.1 Stockage de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

9.1.1 Supports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

9.1.2 Fonctionnement d’un disque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

9.1.3 Optimisations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

9.1.4 Technologie RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

9.2 Fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

9.2.1 Enregistrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

9.2.2 Blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

9.2.3 Organisation d’un fichier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

9.3 Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

9.3.1 Fichiers et blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

9.3.2 Les tablespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

9.3.3 Création des tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

10 Indexation 133

10.1 Indexation de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

10.1.1 Index non-dense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

10.1.2 Index dense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

10.1.3 Index multi-niveaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

10.2 L’arbre-B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

10.2.1 Présentation intuitive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

10.2.2 Recherches avec un arbre-B+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

10.3 Hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

10.3.1 Principes de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

10.3.2 Hachage extensible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

10.4 Les index bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

10.5 Indexation dans Oracle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

10.5.1 Arbres B+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

10.5.2 Arbres B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

10.5.3 Indexation de documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

10.5.4 Tables de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

10.5.5 Index bitmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

11 Introduction à la concurrence d’accès 155

11.1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

11.1.1 Exécutions concurrentes: sérialisabilité . . . . . . . . . . . . . . . . . . . . . . . 156

11.1.2 Transaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

11.1.3 Exécutions concurrentes: recouvrabilité . . . . . . . . . . . . . . . . . . . . . . . 158

11.2 Contrôle de concurrence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.2.1 Verrouillage à deux phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

11.2.2 Contrôle par estampillage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11.3 Gestion des transactions en SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

11.4 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

12 Travaux pratiques 167

12.1 Environnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

12.1.1 Connexion au système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

12.1.2 Les commandes utiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

12.1.3 Utilisation de SQLPLUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

12.2 Requêtes SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

12.2.1 Sélections simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

12.2.2 Jointures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

12.2.3 Négation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.2.4 Fonctions de groupe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.3 Concurrence d’accès . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

12.4 Normalisation d’un schéma relationnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

lhou10
By : lhou10
Hello, I’m lhou10 I am a Blogger, SEO expert and Adsense Expert with 10+ years of experience. I design and develop responsive websites using the most recent technologies to provide the best user experience also I write blog posts for several websites with genuine and engaging content for Google AdSense approval, Feel free to ask me if you have any questions.
Commentaires



Font Size
+
16
-
lines height
+
2
-