Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chap1 Intro BDs

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 68

Spécialité: Statistiques-Informatique

Cours de Bases de données 1


Cours/TD: 36 heures
TP: 12 heures
Go Issa TRAORE, Doctorant à Semestre 3
l’UNB Octobre 2024
Informations pratiques

✓ Cours combiné avec les TDs (36h)


✓ TP (12h)
✓ Un examen sur table
✓ Un projet
Prérequis

✓ Avoir des notion en algorithmique et programmation;


✓ avoir des notions en algèbre relationnelle;
✓ avoir des notions en conception de système d’information
Objectifs

Objectif général : permettre à l’étudiant de développer les aptitudes à faire une analyse et
une conception de système d’information informatisé

Objectif spécifiques : l’étudiant doit être capable:


✓ Modéliser un système d’information d’une structure,
✓ Concevoir une base de données relationnelle,
✓ Interroger et plus généralement interagir avec la base de données en vue de rendre
disponible des informations sur les données
Chap 1: Introduction au Bases de données
Tables des Chap 2: Modèle relationnel

matières Chap 3: Langage de Définition de données SQL.

Chap 4: Algèbre relationnelle

Chap 5: Normalisation

Chap 6: Langage de Manipulation de données SQL

En TP: Langage de Contrôle de données


Introduction
Historique
Les BD [Base de Données] sont nés vers la fin des années
1960 pour combler les limites des systèmes de fichiers.
Les BD relationnelles, issues de la recherche de Codd, sont
celles qui ont connu le plus grand essor et qui reste encore
aujourd'hui les plus utilisées.
Le langage SQL [Structured Query Language] est une
couche technologique, idéalement indépendante des
implémentations des SGBDR [Système de Gestion de Bases
de Données Relationnelles], qui permet de créer et
manipuler des BD relationnelles.
Chapitre 1: Introduction aux bases de
données
Agenda
➢ Vue d'ensemble
– Notion de BD
– Notion de SGBD
– Caractéristiques des SGBD
➢ Notions générales
– Architecture d’un SGBD (ANSI/X3/SPARC)
– Notion de données
– Notion de modèle de données
– Architecture de référence
– Notion de langage de données
– Notion de Transactions
– Notion d'administration de données
Vue d’ensemble
Qu’est ce qu’une base de données ?

➢ Une Base de données est


✓ un ensemble volumineux,
✓ structuré et minimalement redondant de
données,
✓ reliées entre elles,
✓ stockées sur supports numériques
centralisés ou distribués,
✓ servant pour les besoins d'une ou
plusieurs applications,
✓ interrogeables et modifiables par un ou
plusieurs utilisateurs travaillant
potentiellement en parallèle.
Qu'est ce qu'un SGBD ?

➢ Système de Gestion de Bases de Données


➢ Un SGBD est un logiciel qui prend en charge la
structuration, le stockage, la mise à jour et la
maintenance d'une base de données. Il est l'unique
interface entre les informaticiens et les données
(définition des schémas, programmation des
applications), ainsi qu'entre les utilisateurs et les
données(consultation et mise à jour).
Exemple de SGBD

➢ Oracle est un SGBD relationnel (et Relationnel-Objet dans ses dernières versions)
très reconnu pour les applications professionnelles.
Exemple de SGBD
➢ Oracle
Exemple de SGBD
MySQL est un SGBD relationnel libre (licence GPL et commerciale), simple
d'accès et très utilisé pour la réalisation de sites Web dynamiques. Depuis la
version 4 MySQL implémente la plupart des fonctions attendues d'un SGBD
relationnel
Exemple de SGBD
MySQL
Exemple de SGBD
Access est un SGBD relationnel Microsoft, qui offre une interface
conviviale permettant de concevoir rapidement des applications de
petite envergure ou de réaliser des prototypes à moindre frais.
Eléments de comparaison entre les SGBDs
Eléments de comparaison entre les SGBDs
Eléments de comparaison entre les SGBDs
Tableau de quelques SGBDs
Pourquoi des SGBD ?
Avant l'avènement des SGBD, chaque application
informatique dans l'entreprise impliquait à l’entreprise
d’avoir:
✓ sa propre équipe de développement,
✓ ses propres supports physiques,
✓ ses propres fichiers,
✓ ses propres normes,
✓ ses propres langages, etc.
Conséquences
L'existence conjointe et croissante de ces applications
indépendantes a des effets négatifs, tels que :
– La multiplication des tâches de saisie, de développement et de
support informatique;
– La redondance anarchique des informations dans les fichiers;
– L'incohérence des versions simultanées de fichiers;
– La non-portabilité des traitements en raison des différences
dans les formats et langages;
– La multiplication des coûts de développement et de
maintenance des applications.
Problèmes
Les conséquences précédemment citées se répercutent
sur l'entreprise en générant des problèmes humains et
matériels.
✓ Coûts en personnels qualifiés et en formations
✓ Remise des pouvoirs de décision entre les mains de
spécialistes informatiques
✓ Tout changement matériel ou logiciel a un impact sur les
applications
✓ Tout changement de la structure des données nécessite
de modifier les programmes
Observations
En réalité les applications ne sont jamais totalement disjointes.
Il y a des données similaires (le cœur de l'information
d'entreprise) qui sont toujours à la base des traitements.
On peut citer typiquement les données relatives:
✓ À la comptables
✓ Aux clients et fournisseurs
✓ à la gestion des stocks
✓ aux livraisons
✓ Au marketing, commerciales et communication
✓ au personnel
✓ aux Etudiants .
Caractéristiques des SGBD
La conception d'un système d'information pour être
rationnelle à l'échelle d'une entreprise se doit d'adopter un
certain nombre de principes, tels que :
✓ Une description des données indépendante des
traitements
✓ Une maintenance de la cohérence de données
✓ Le recours à des langages non procéduraux,
✓ Mais à des langages interactifs et structurants
Les SGBD se fixent les objectifs suivants
Indépendance physique des données

Le changement des modalités de stockage de l'information n'implique


pas de changements des programmes.
Indépendance logique des données

L'évolution de la structure d'une partie des données n'influe pas sur


l'ensemble des données.
Manipulation des données par des non informaticiens

L'utilisateur n'a pas à savoir comment l'information est stockée et calculée par la machine, mais
juste à pouvoir la rechercher et la mettre à jour à travers des IHM ou des langages assertionnels
simples.
Administration facilitée des données

Le SGBD fournit un ensemble d'outils (dictionnaire de données, audit, tunning, statistiques, etc.)
pour améliorer les performance et optimiser les stockages.
Optimisation de l'accès aux données

Les temps de réponse et de débits globaux sont optimisés en


fonctions des requêtes sur la BD.
Contrôle de cohérence (intégrité sémantique)
des données

Le SGBD doit assurer à tout instant que les données respectent les règles d'intégrité qui
leurs sont imposées.
Partageabilité des données

Les données sont simultanément consultables et modifiables.


Sécurité des données

La confidentialité des données est assurée par des systèmes d'authentification, de droits d'accès,
de cryptage des mots de passe, etc.
Sûreté des données

La persistance des données, même en cas de panne, est assurée, grâce à des sauvegardes et à des
journaux qui gardent une trace persistante des opérations effectuées.
La prise de point de contrôle pour remettre la BD dans un état satisfaisant.
Notions générales
Architecture d’un SGBD (ANSI/X3/SPARC)
Les trois niveaux, conceptuel, externe et interne, sont les trois
niveaux distingués par le groupe de normalisation ANSI/X3/SPARC
en 1975.
Architecture d’un SGBD (ANSI/X3/SPARC)
1 - 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 Langage de Définition des Données (LDD) permet de spécifier le schéma conceptuel :
✓ définition et dénomination des catégories d'objets,
✓ définition et dénomination des relations entre les objets,
✓ expression des contraintes sur les données.
Architecture d’un SGBD (ANSI/X3/SPARC)

2 - niveau interne ou physique


✓ Le schéma interne décrit l’organisation des données en
mémoire secondaire (sur disque) et la façon d’y accéder.
✓ L’organisation choisie doit permettre :
– d’accéder le plus rapidement possible à un ensemble de données vérifiant certaines conditions,
– de créer, modifier ou supprimer des données avec une réorganisation minimale et une
utilisation optimale de la place disponible.
Architecture d’un SGBD (ANSI/X3/SPARC)
3 - niveau externe
Un schéma externe représente la façon dont un utilisateur final ou un programme d’application
voit la partie de la BD qui le concerne.
✓ Il existe en général plusieurs modèles externes pour une
même BD.
✓ Le schéma conceptuel d’une BD peut être complexe : les schémas externes donnent aux
utilisateurs une vision plus simple de ce schéma.
✓ Les schémas externes permettent aussi de protéger la BD contre des manipulations
incorrectes ou non autorisées, en cachant certaines données à certains utilisateurs.
Notion de données
✓ Type de données
– Ensemble d'objets qui possèdent des caractéristiques similaires et manipulables
par des opérations identiques.
– Synonyme : Classe.
✓ Données
– Elément effectif, réel, correspondant à un type de données.
– Synonymes : Occurrence, Instance.
✓ Exemple : Type de données
– Entier = { 0, 1, 2, ... , N }
– Ordinateur= (Serie, marque, type, couleur, ram,…)
✓ Exemple : Données
– L'entier 512
– L’ordinateur(1200CXV09, HP, Portable, Noir, 4G, ….)
Notion de modèle de données
Modèle de données
Ensemble de concepts et de règles de composition de ces concepts permettant de décrire des
données (littérature).
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.
Niveaux de modélisation
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.

✓ 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 œuvre (programmation, optimisation, etc.).
Générations de modèles
✓ 1ère génération :
– hiérarchique (IMS d’IBM)
– réseau (CODASYL et SOCRATE)
✓ 2ème génération :
– relationnel
– entité-association
✓ 3ème génération :
– modèle orienté objet
– modèle objet-relationnel
– UML
✓ 4ème génération (les données du Web)
– XML
Exemple
✓ Soit une BD décrivant les livres d’une bibliothèque et leurs
auteurs.
✓ On suppose qu’un livre est identifié par sa cote et un
auteur par son nom.
✓ On se place à l’instant où la bibliothèque contient:
– un seul livre,
– ayant la cote BD01 et le titre « Oracle 9i sous Linux »,
– écrit par Gilles BRIARD né en 1960 et Peter S. GORDON né en
1953.
Exemple en relationnel

✓ Schéma
livre(cote: texte, titre: texte)
auteur(nom: texte, prénom: texte, année_naissance: entier)
écrire(cote=>livre: texte, nom => auteur: texte)
Exemple en orienté objet
✓ Schéma
– classe livre
› attribut cote: texte
› attribut titre: texte
› attribut écrit_par: liste(auteur)
– classe auteur
› attribut nom: texte
› attribut prénom: texte
› attribut année_naissance: entier
– méthode age(): entier {année_courante - self->année_naissance}
– livres: ensemble(livre)
– auteurs: ensemble(auteur)
✓ Instances
– (l1, {cote = "BD01", titre = " Oracle 9i sous Linux ", écrit_par = [a1,a2]})
– (a1, {nom = "BRIARD", prénom = « Gilles", année_naissance = 1960})
– (a2, {nom = "GORDON", prénom = « Peter", année_naissance = 1953})
✓ Variables persistantes
– livres = {l1}
– auteurs = {a1, a2}
Exemple en XML (DTD)
<!ELEMENT bd (livres, personnes)
<!ELEMENT livres (livre*)>
<!ELEMENT livre (cote, titre, écrit_par*)>
<!ELEMENT cote (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT écrit_par EMPTY>
<!ATTLIST écrit_par ref IDREF>
<!ELEMENT auteurs (personne*)>
<!ELEMENT auteur (nom, prénom, année_naissance)>
<!ATTLIST auteur id ID>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prénom (#PCDATA)>
<!ELEMENT année_naissance (#PCDATA)>
Exemple en XML (Document)
<bd>
<livres>
<livre>
<cote>BD01</cote>
<titre> Oracle 9i sous Linux </titre>
<écrit_par ref="a1"/><écrit_par ref="a2"/>
</livre>
</livres>
<auteurs>
<auteur id="a1">
<nom>BRIARD</nom>
<prénom>Gilles</prénom>
<année_naissance>1960</année_naissance>
</auteur>
<auteur id="a2">
<nom>GORDON</nom>
<prénom>Peter</prénom>
<année_naissance>1953</année_naissance>
</auteur>
</auteurs>
</bd>
Dictionnaire des données
Le dictionnaire de données d'un SGBD contient les informations relatives aux schémas et aux
droits de toutes les bases de données existantes au sein de ce SGBD. Il s'agit d'un outil
fondamental pour les administrateurs.
Les dictionnaires de données sont généralement implémentés sous la forme d'une base de
données particulière du SGBD, ce qui permet de gérer les données relatives aux bases de
données de la même façon que les autres données de l'entreprise.
Le dictionnaire des données est aussi appelé
– Catalogue des données,
– Ou Métabase
Architecture de référence
Architecture de référence
✓ Analyseur
Analyse syntaxique et sémantique des requêtes
✓ Traducteur
Traduire les références externe en des références internes, c à d par
exemple les nom en adresse physique
✓ Optimiseur
Selon la base théorique optimise le processus de recherche de la réponse
› Exécuteur
Exécute le chemin de solution proposé par l’optimiseur
Architecture opérationnelle
✓ On distingue 4 grands types d’architecture :
✓ architecture centralisée,
✓ architecture client-serveur,
✓ architecture trois-tiers,
✓ architecture décentralisée.
Notion de langage de données
✓ Langage de données
Langage informatique permettant de décrire et de manipuler les
schémas d'une BD d'une une manière assimilable par la machine.
✓ Exemple : SQL (Structured Query Language)
SQL est le langage orienté données consacré aux SGBD
relationnels et relationnels-objet.
Notion de langage de données
Un langage de données peut être décomposé en trois sous langages :
✓ Le Langage de Définition de Données
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.
Notion de langage de données
✓ Exemple : Définition de données en SQL
create table Etudiant (
id Number (5),
nom Varchar (20),
prenom Varchar (20),
ville Varchar (20),
constraint Etudiant_PK primary key (id)
) ;.

Cette instruction permet de créer une relation "Etudiant" comportant les propriétés id, nom,
prenom, ville, et une contrainte de clé primaire sur id.
Notion de langage de données
✓ Exemple : Contrôle de données en SQL
GRANT ALL PRIVILEGES ON Etudiant TO TP_USER;

Cette instruction permet de donner tous les droits à l'utilisateur "TP_USER"


sur la relation "Etudiant".
Notion de langage de données
✓ Exemple : Manipulation de données en SQL
SELECT Nom
FROM Etudiant
WHERE Ville = ‘Banfora’;

Cette instruction permet de rechercher les noms de tous les étudiants habitant la ville de Banfora.
Notion de Transactions
Notion de Transactions
✓ Pour un SGBD l’unité de traitement est la transaction.
✓ Une transaction est un fragment de programme qui fait passer une BD d’un état cohérent à un
autre état cohérent, par une suite d’actions élémentaires.
Notion de Transactions
Déroulement d'une transaction ✓ Tant qu'une transaction n'a pas été terminée
1. DEBUT correctement, elle doit être assimilée à une
2. TRAITEMENT tentative ou une mise à jour virtuelle, elle reste
– Accès aux données en lecture incertaine.
– Accès aux données en écriture ✓ Une fois terminée correctement la transaction
3. FIN ne peut plus être annulée par aucun moyen.
– Correcte : Validation des modifications
– Incorrecte : Annulation des modifications
Propriétés ACID d'une transaction
Une transaction doit respecter quatre propriétés
fondamentales :
✓ L'atomicité
✓ La cohérence
✓ L'isolation
✓ La durabilité
Propriétés ACID d'une transaction
L'atomicité
✓ Les transactions constituent l'unité logique de travail,
✓ toute la transaction est exécutée ou bien rien du tout, mais jamais une partie seulement de la
transaction.
Propriétés ACID d'une transaction
La cohérence
✓ Les transactions préservent la cohérence de la BD,
✓ c'est à dire qu'elle transforme la BD d'un état cohérent à un autre (sans nécessairement que
les états intermédiaires internes de la BD au cours de l'exécution de la transaction respectent
cette cohérence
Propriétés ACID d'une transaction
L'isolation
✓ Les transactions sont isolées les unes des autres,
✓ c'est à dire que leur exécution est indépendante des autres transactions en cours.
✓ Elles accèdent donc à la BD comme si elles étaient seules à s'exécuter, avec comme corollaire
que les résultats intermédiaires d'une transaction ne sont jamais accessibles aux autres
transactions.
Propriétés ACID d'une transaction
La durabilité
✓ Les transactions assurent que les modifications qu'elles induisent perdurent, même en cas de
défaillance du système.
Exemple de Transactions
✓ Un exemple classique de transaction est l’opération qui transfère d’un crédit S d’un numéro A
à un numéro B :
début transaction
solde(A) = solde(A) - S
solde(B) = solde(B) + S
fin transaction
✓ Il est clair que cette opération ne doit pas être interrompue entre le débit de A et le crédit de
B
Notion d'administration de données
Administrateur
Personne ou groupe de personnes responsables de la définition des différents niveaux de schéma.
On distingue un type d'administrateur par niveau de schéma :
✓ L'administrateur entreprise est en charge de la gestion du schéma conceptuel et des règles
de contrôle des données.
✓ L'administrateur de données est en charge de la gestion des schémas externes et de leur
correspondance avec le schéma conceptuel.
✓ L'administrateur base de données est en charge de la gestion du schéma interne et de sa
correspondance avec le schéma conceptuel.

Vous aimerez peut-être aussi