L application de la physique classique dans le golf.pptx
Bases de donnees fondamentaux
1. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
2
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Table des matières
Les bases de données............................................................................................................................................................. 3
Qu’est-ce qu’une base de données ? .................................................................................................................................... 3
Usages des bases de données .............................................................................................................................................. 3
Objectifs des bases de données............................................................................................................................................ 4
Qu’est-ce qu’un SGBD ?........................................................................................................................................................ 4
Architecture d’un SGBD.................................................................................................................................................... 5
Objectifs des SGBD ........................................................................................................................................................... 7
Les objectifs orientés DONNEES ................................................................................................................................... 7
Les objectifs orientés TRAITEMENT............................................................................................................................. 8
Les objectifs orientés ORGANISATION ........................................................................................................................ 8
Fonctions d’un SGBD........................................................................................................................................................ 8
Types de SGBD................................................................................................................................................................. 9
Types d’utilisateurs d’un SGBD ........................................................................................................................................10
Cycle de vie d'une base de données .......................................................................................................................................11
Modèles de données, schémas et langages .............................................................................................................................11
Notion de modèle de données ..........................................................................................................................................11
Notion de schéma de données ..........................................................................................................................................12
Notion de langage de données...........................................................................................................................................13
2. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
3
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Concepts fondamentaux
Les bases de données
Qu’est-ce qu’une base de données ?
Une base de données est un ensemble de données modélisant les objets d’une partie du monde réel et servant de support à une
application informatique. Pour mériter le terme de base de données, un ensemble de données non indépendantes doit être
interrogeable par le contenu, c’est à dire que l’on doit pouvoir retrouver tous les objets qui satisfont à un certain critère
[G.Gardarin].
En d’autres termes, c’est un ensemble structuré de données mémorisé sur un support permanent (cohérent, intégré, partagé) qui
peut être manipulé par plusieurs utilisateurs ayant des vues différentes sur ces données.
Par données, il faut comprendre : une représentation d’un fait à l’aide d’un code binaire stocké dans la mémoire de l’ordinateur.
Une donnée doit avoir un type. Le type est ensemble d’objets ayant les mêmes caractéristiques et manipulables par des
opérations identiques. On distingue :
− Données simples : entier, réel, chaîne de caractères, réel, etc.
− Données de type complexe : composée de données de types simples
− Donnée de type multimédia : texte, image, son vidéo
Exemple de données :
• 500 (type de données : entier)
• Renault Megane Noir DK1234AX (type de données : véhicule)
Usages des bases de données
Voici des exemples classiques d’utilisation des bases de données :
− Gestion des comptes clients d’une banque
− Gestion des commandes d’un site d’e-commerce
− Système de réservation de billets d’avion
3. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
4
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
− Gestion des étudiants d’une université
− Gestion des personnels d’une entreprise
− Bases de données d’articles scientifiques
Les données manipulées dans ces applications sont stockées dans une base de données.
Objectifs des bases de données
• Centralisation logique de l’information
Non redondance (la même information ne doit pas figurer plusieurs fois dans la BD
⇒ Ce qui diminue les risques d’erreurs de mise à jour et supprime le problème
d’avoir des informations contradictoires sur une même donnée dans de fichiers
différents
• Indépendance données traitement
• Partage des données (accessibilité à plusieurs utilisateurs simultanés)
confidentialité (login, mot de passe)
autorisation d’accès (lecture, écriture)
accès concurrents
• Intégrité des données
règles permettant d’éliminer des donner incorrectes (contrainte d’intégrité
référentielle, unicité de l’identifiant…).
Qu’est-ce qu’un SGBD ?
Un système de gestion de base de données ou SGBD est un programme générique qui permet la définition, la mise en œuvre et
l’exploitation (insérer, supprimer, mettre à jour) d’une base de données.
Exemple de SGBD :
• MySQL
• Oracle Database
• Microsoft SQL Server
Le SGBD va permettre aux utilisateurs d’insérer, de modifier et de rechercher efficacement des données spécifiques dans une
grande masse de d’informations (pouvant atteindre des milliards d’octets).
Le SGBD constitue interface entre programme d'application des utilisateurs d'une part et Base de données d'autre part. Il sert à
masquer à l’utilisateur les détails complexes liés à la gestion des fichiers.
4. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
5
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Architecture d’un SGBD
Structure en couche
Comme cité précédemment le SGBD constitue l’interface entre les utilisateurs et la base de données (voir figure ci-dessous).
Un SGBD est comporte trois couches :
− Couche interne (ou physique) : stockage des données sur des supports physiques, gestions des structures de
mémorisation (fichiers) et des accès (gestions des index et des clés)
− Couche logique : contrôle global et structure globale des données
− Couche externe : dialogue avec les utilisateurs, analyse de leurs demandes, contrôle des droits d’accès et présentation
des résultats, environnement de programmation (intégration avec un langage de programmation). La représentation de
la base de données est composée de plusieurs schémas externes.
5. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
6
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Architecture ANSI/SPARC
Elle donne une vue plus détaillée du schéma précédent.
Schéma
Externe
Schéma
Externe
Schéma
Externe
Schéma Conceptuel
Schéma Physique
Correspondances
Externe/Conceptuel
Correspondances
Conceptuel/Physique
Utilisateurs
(Vues)
Concepteur,
administrateur
(modèle de données)
Structures de
données
(fichiers, index)
Couche
externe
Couche
logique
Couche
interne
Schémas
Externes
Schéma
Logique
Schéma
Interne
Dialogue Contrôle Stockage
B
Utilisateurs
Interface
utilisateur
Interface d’accès aux
données
SGBD
6. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
7
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Objectifs des SGBD
Le principal objectif d’un SGBD est d’assurer l’indépendance des programmes aux données, c’est à dire la possibilité de
modifier les schémas conceptuel et interne des données sans modifier les programmes. Cet objectif est justifié afin d’éviter une
maintenance coûteuse des programmes lors des modifications des structures logiques et physiques.
Les objectifs d’un SGBD sont [G.Gardarin]:
− Indépendance physique des programmes aux données
− Indépendance logique des programmes aux données
− Manipulation des données par des langages non procéduraux
− Administration facilitée des données
− Efficacité des accès aux données
− Partage des données
− Cohérence des données
− Redondance contrôlée des données
− Sécurité des données
Ces objectifs peuvent être classés en plusieurs catégories :
Les objectifs orientés DONNEES
− Non redondance des données : avec une approche base de données, les fichiers plus ou moins redondants seront
intégrés en un seul fichier ou plusieurs fichiers contenant des données distinctes.
− Partageabilité des données : permettre le partage des données de la base à plusieurs applications, utilisateurs,
simultanément.
− Sécurité des données : les données doivent être protégées contre les accès (non autorisés, mal intentionnés). D’où la
nécessité de contrôler les donnés.
− Cohérence des données : les données sont soumises à certaines règles. Par exemple : un compte bancaire est rattaché à
un et un seul client.
Le SGBD doit vérifier que les applications respectent ces règles et contraintes d’intégrité. Donc il faut avoir des connaissances
sur les données et leur signification.
7. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
8
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Les objectifs orientés TRAITEMENT
− Indépendance physique des données : on peut changer le schéma physique sans remettre en cause le schéma conceptuel
(et les schémas externes). On peut modifier l'organisation physique des fichiers, rajouter ou supprimer des méthodes
d'accès ;
− Indépendance logique des données : on peut changer le niveau conceptuel sans remettre en cause les schémas externes
ou les programmes d'application. L'ajout ou le retrait de nouveaux concepts ne doit pas modifier des éléments qui n'y
font pas explicitement référence ;
− Manipulation facile des données (pour les non-informaticiens) : pouvoir les consulter, les interroger, les mettre à jour
− Manipulation facile des données (pour les informaticiens) : langage de développement de haut niveau
Les objectifs orientés ORGANISATION
− Administration centralisée des données
o Permettre un contôlr efficace des données ;
o Résoudre les conflits entre divers point de vue d’utilisateurs ;
o Optimisation des accès aux données
o Optimisation des moyens informatiques
− Fonctions
o Administrateur des données
o Administrateur de base de données
− Centralisation/décentralisation
o La base de données peut être distribué/partagé.
Fonctions d’un SGBD
Un SGBD doit permettre de :
! Décrire les données qui seront stockées stocker
! Gérer les données
● Manipuler des données (ajout, modification, suppression d’informations) ,
● Assurer la cohérence (ou intégrité) des données (contraintes de domaines,
d’existence, etc.),
● Assurer la confidentialité des données (mots de passe, autorisation…),
● Résoudre des problèmes d’accès multiples aux données (blocages, transactions
8. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
9
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
parallèles),
● Prévoir des procédures de reprise en cas de panne ( copies de sauvegarde, journaux)
! Obtenir des renseignements à partir des données stockées au moyen de requêtes (sélection, tri, calcul,
agrégation, etc.),
! Permettre l’écriture d’applications indépendantes de l’implémentation physique des données (codage,
supports d’enregistrement) et aussi indépendantes que possible de l’implémentation logique des données
(index, décomposition en « fichiers logiques »)
Un SGBD sépare la partie description des données, des données elles mêmes. Cette description est stockée
dans un dictionnaire de données (également géré dans le SGBD) et peut être consultée par les utilisateurs.
De plus, un SGBD doit permettre d’écrire des applications indépendantes de l’implémentation physique des
données (codage des données, ordre dans lequel sont enregistrées les données, support d’enregistrement, etc.)
Types de SGBD
Historiquement les premiers types de SGBD étaient de type hiérarchique, puis sont apparu les SGBD de type
réseau. Actuellement la plupart des SGBD sont de type relationnel .On note aussi l’apparition sur le marché des
SGBD de type objet.
La différence entre ces types de SGBD réside dans les modèles sur lesquels ils s’appuient pour représenter les données.
Modèle hiérarchique :
Les données sont représentées sous forme d’une structure arborescente d’enregistrements. Cette structure est conçue avec des
pointeurs de détermine les chemins d’accès aux données
Modèle réseau
La structure des données peut être visualisée sous la forme d’un graphe quelconque. Comme pour le modèle hiérarchique, la
structure est conçue avec des pointeurs et détermine le chemin d’accès aux données
Pour ces deux modèles les programmes ne sont pas indépendant de la structure logique de la base et du chemin d’accès aux
données : ils doivent décrire comment retrouver les données. La suppression par exemple d’un index entraîne la réécriture de
tous les programmes qui l’utilisaient
Modèle Relationnel
9. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
10
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Fondé sur la théorie mathématique des relations, le modèle relationnel fournit une représentation très simple des données sous
forme de tables constituées de lignes et de colonnes. De plus il n’y a pas de pointeur qui fige la structure de la base.
La souplesse apportée par cette représentation a permis le développement de langages puissants non procéduraux. Dans ces
langages le programmeur indique quelles informations il veut obtenir et c’est le SGBD qui trouve la manière d’arriver au
résultat. Le programmeur ou l’utilisateur n’a plus à naviguer dans la base pour retrouver ses données. Ces langages peuvent être
utilisés par des non informaticiens et permettent l’écriture de programmes indépendants de la structure logique et physique des
données
Modèle Objet
Les données sont représentées sous forme d’objets au sens donné par les langages orientés objet. Les données sont enregistrées
avec les procédures et les fonctions qui permettent de les manipuler. Les SGBD objets supportent aussi la notion d’héritage
entre classes d’objets.
Types d’utilisateurs d’un SGBD
La gestion d’une base de données fait intervenir plusieurs types acteurs : administrateur, programmeur, utilisateur final. Une
même personne peut occuper plusieurs rôles et un rôle peut être occupé par plusieurs personnes.
L’administrateur de la base est chargé du contrôle de la base de données. Il permet l’accès aux données aux applications ou
individus qui y ont droit et de conserver de bonnes performances d’accès à ces données. Il est aussi chargé des sauvegardes et
des procédures de reprise après panne.
Le programmeur d’applications utilise la base de données pour construire ses applications. Il a le droit de créer de nouvelles
tables et les structures associées (vues, index, cluster, etc.). Il définit avec l’administrateur de la base les droits qui seront
accordés aux utilisateurs des applications qu’il développe.
L’utilisateur final n’a accès qu’aux données qui lui sont utiles. L’administrateur de la base de données peut lui en accorder
certains droits : consultation, modification, suppression de données. En général, il n’a pas le droit de créer de nouvelles tables ni
d’ajouter ou d’enlever des index. En définitive l’utilisateur final n’est pas un expert car il :
− sait ce qu'il veut,
− ne sait pas forcément ce qu'il faut faire pour l'obtenir,
− ne veut pas savoir comment ça marche,
− veut en faire un minimum pour faire tourner son application.
10. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
11
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Cycle de vie d'une base de données
Modèles de données, schémas et langages
Notion de modèle de données
• Un modèle de données est un ensemble de concepts permettant de décrire la structure d'une base de données. Un
modèle est souvent représenté au moyen d'un formalisme graphique permettant de décrire les données (ou plus
précisément les types de données) et les relations entre les données.
• On distingue trois niveaux de modélisation pour les bases de données :
♦ Le modèle conceptuel
Il permet de décrire le réel selon une approche ontologique, sans prendre en compte les contraintes techniques.
Monde
réel
Conception
(Analyse)
Information à stocker
(futur contenu de la base)
BD
LDD (langage de description des données)
SGBD
LMD (langage de manipulation des données)
Implémentation
Manipulation
11. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
12
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
♦ Le modèle logique
Il permet de décrire une solution, en prenant une orientation informatique générale (type de SGBD typiquement), mais
indépendamment de choix d'implémentation précis.
♦ Le modèle physique
Il correspond aux choix techniques, en terme de SGBD choisi et de sa mise en oeuvre (programmation, optimisation,
etc.).
Exemple de formalisme de modélisation conceptuelle
♦ Le modèle Entité-Association (Chen) a été le plus répandu dans le cadre de la
conception de bases de données.
♦ Le modèle UML, qui se généralise pour la conception en informatique, se fonde
sur une approche objet.
Exemple de formalisme de modélisation logique
♦ Le modèle relationnel est le modèle dominant.
♦ Le modèle relationnel-objet (adaptation des modèles relationnel et objet au cadre
des SGBD) est actuellement en pleine croissance.
♦ Le modèle objet "pur" reste majoritairement au stade expérimental et de la
recherche.
♦ Des modèles plus anciens (hiérarchique, réseau, etc.) ne sont plus guère utilisés
aujourd'hui.
Notion de schéma de données
Description, au moyen d'un langage formel, d'un ensemble de données dans le contexte d'une BD. Un schéma permet de
décrire la structure d'une base de données, en décrivant l'ensemble des types de données de la base. L'occurrence d'une base de
données est constituée de l'ensemble des données correspondant aux types du schéma de la base.
Exemple : Schéma de base de données
Etudiant (NumEtud, nom, ville)
Module(NumMod, titre)
Inscription(NumEtud, NumMod, date)
Exemple : Instance de base de données
Etudiant (172, Diop, 'Dakar')
12. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
13
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Etudiant (173, Fall, 'Thies')
Etudiant (174, Lam, 'Louga')
Module(1, 'SGBD')
Module(1, 'Systèmes d'exploitation')
Inscription(172, 1, 2002)
Inscription(172, 2, 2002)
Inscription(173, 1, 2001)
Inscription(174, 2, 2002)
On distingue trois niveaux d'abstraction de schémas :
♦ Le niveau conceptuel
Il permet de décrire les entités et les associations du monde réel. Il s'agit du schéma global de la base de données, il en
propose une vue canonique.
Le niveau conceptuel correspond au modèle conceptuel.
♦ Le niveau externe
Il permet de décrire les entités et les associations du monde réel, mais vues d'un utilisateur ou d'un groupe d'utilisateurs
particuliers (on parle d'ailleurs également de "vue" pour un schéma externe). Il s'agit d'une restriction du schéma
conceptuel orientée vers un usage précis. Il existe généralement plusieurs schémas externes pour un même schéma
conceptuel.
Le niveau externe correspond à un sous ensemble du modèle conceptuel restreint aux points de vue de certains
utilisateurs.
♦ Le niveau interne
Il correspond à l'implémentation physique des entités et associations dans les fichiers de la base.
Le niveau interne correspond aux modèles logiques et physiques.
Remarque :
Les trois niveaux, conceptuel, externe et interne, sont les trois niveaux distingués par le groupe de normalisation
ANSI/X3/SPARC.
Notion de langage de données
C’est un langage informatique permettant de décrire et de manipuler les schémas d'une BD d'une manière assimilable par la
machine.
♦ Synonyme : Langage orienté données.
Exemple : SQL
SQL est le langage orienté données consacré aux SGBD relationnels et relationnel-objet.
Un langage de données peut être décomposé en trois sous langages :
♦ Le Langage de Définition de Données
13. BASES DE DONNEES IHP/PHP | CONCEPTS FONDAMENTAUX
14
SUPPORT DE COURS VERSION IMPRIMABLE Version 2.0
Le LDD [Langage de Définition de Données] permet d'implémenter le schéma conceptuel (notion de table en SQL) et
les schémas externes (notion de vue en SQL).
♦ Le Langage de Contrôle de Données
Le LCD [Langage de Contrôle de Données] permet d'implémenter les droits que les utilisateurs ont sur les données et
participe donc à la définition des schémas externes.
♦ Le Langage de Manipulation de Données
Le LMD [Langage de Manipulation de Données] permet l'interrogation et la mise à jour des données. C'est la partie du
langage indispensable pour exploiter la BD et réaliser les applications.
En résumé
Conception
Modèle Conceptuel
Schéma conceptuel et
schémas externes
Modèle Physique
Schéma interne pour un
SGBD particulier
Modèle Logique
Schéma interne
indépendant d’un SGBD
Exemples
- E-A
- UML
Exemples
- Relationnel
- Objet
- Réseau
- Hiérarchique
Exemples
- Oracle
- MySQL
- PosgreSQL
- DB2
- Access
- SQLServer