Bases de données - Université d`Orléans

publicité
Bases de données
Au menu :
●
Vocabulaire
●
Le modèle relationnel
●
Types de bases de données
●
Implémentation libre : MySQL
●
Le SQL (Simple Query Language)
●
Administration d'un SGBD
●
Sécurité des SGBD
Vocabulaire 1/2
●
●
Base de données : collection de données inter­
reliées.
SGBD : système de gestion de bases de données.
–
Définition des la base de données (types d'objet à stocker)
–
Construction de la base de données (stockage des données proprement dites)
–
Manipulation des données (ajout / suppression / modification / consultation)
Vocabulaire 2/2
●
●
●
Le modèle de données
–
ensemble de concepts permettant de décrire la structure d'une base de données
–
Le modèle le plus employé est le modèle relationel
Le schéma de base de données : descrption des données à gérer
Une extension de la base de données : image des données à l'instant “t”
Le modèle relationnel 1/11
●
●
Représente l'information dans une collections de relations
Concept de table :
Numéro d'étudiant
Nom
Prénom
0089852213
Dupont
Pierre
1202505501
Denis
Thierry
Le modèle relationnel 2/11
●
●
Colonne : type de données (schéma)
Ligne : collection de données => une entité du monde réel
●
Une ligne est souvent appelée “nuplet”
●
Notion de clé primaires
–
Une clé primaire est un attribut du nuplet
–
Sa valeur est unique (numéro de sécurité sociale) au sein de la table
Le modèle relationnel 3/11
●
●
●
Création d'une table
–
Méthode merise
–
Projection des attributs de la classe (objet) à stocker
Une base de données est une collection de tables
On met en place des relations (requêtes) entre les differentes tables
Le modèle relationnel 4/11
●
●
Ces realtions peuvent être :
–
Séléctions
–
Unions
–
Intersections
–
...
Entre differentes tables
Le modèle relationnel 5/11
●
Notions de forme normales
–
1ère forme normale
●
●
Chaque attribut des entités contient une valeur atomique (non composée)
Problème :
Produit
Fournisseur
Télévision
SYNO, SANGSUM
Le modèle relationnel 6/11
●
Solution :
Produit
Fournisseur
Télévision
SYNO
Télévision
SANGSUM
Le modèle relationnel 7/11
–
2e forme normale
●
●
Relation en première forme normale où chaque attribut qui n'appartient pas à la clé (l'ensemble des attributs permettant d'identifier de manière unique un tuple de l'entité) ne dépend pas uniquement d'une partie de la clé
Problème :
Produit
Fournisseur
Adresse
Télévision LCD
SYNO
Rue de l'impasse
Télévision
SANGSUM
16 Rue du Bois
Télévision LCD
SANGSUM
16 Rue du Bois
Le modèle relationnel 8/11
●
Solution
Produit
Fournisseur
Télévision LCD
SYNO
Télévision
SANGSUM
Télévision LCD
SANGSUM
Fournisseur
Adresse
SYNO
Rue de l'impasse
SANGSUM
16 Rue du Bois
Le modèle relationnel 9/11
–
3e forme normale
●
●
Relation en deuxième forme normale où les attributs qui ne font pas partie de la clé ne dépendent pas d'attributs ne faisant pas non plus partie de la clé (les attributs sont donc complètement indépendants les uns des autres)
Problème :
Fournisseur
Adresse
Ville
Pays
SYNO
Rue de l'impasse
Paris
France
SANGSUM
16 Rue du Bois
Londres
Angleterre
Le modèle relationnel 10/11
●
Solution :
Fournisseur
Adresse
Ville
SYNO
Rue de l'impasse
Paris
SANGSUM
16 Rue du Bois
Londres
Ville
Pays
Paris
France
Londres
Angleterre
Le modèle relationnel 11/11
–
FNBC : forme normale de Boyce Codd
●
●
●
Respecte la forme normale de Boyce­Codd, la relation respectant la troisième forme normale et dont tous les attributs non­clé ne sont pas source de dépendance fonctionnelle (DF) vers une partie de la clé
Le non respect de la 2FN, 3FN et la FNBC entraîne de la redondance : une même information étant répétée un nombre considérable de fois
Ajout d'un attribut identifiant non corellé avec la valeur des autres attributs faisant office de clé primaire
Types de base de données 1/2
●
●
Base de données “texte plat”
–
Base de comptes Unix
–
Documents XML
–
...
Base de données d'objets
–
BerkleyDB
–
Utilisé derrière OpenLDAP (implémentation d'annuaire)
Types de bases de données 2/2
●
●
Base de données relationelles “standalone”
–
SQLite
–
Utilisable en locale sur la machine
Base de données relationelles réseau
–
MySQL, Postresql ...
–
Architecture client / serveur
Implémentation libre : MySQL 1/2
●
Modèle client serveur
●
Base de donnée relationelle
●
Un serveur “mysqld” communicant :
●
–
Soit par un socket local
–
Soit par un socket réseau (port 3306/TCP par défaut)
Un client “mysql”
Implémentation libre : MySQL 2/2
●
●
●
Elément essentiel des plates – formes LAMP (Linux Apache Mysql PHP)
Notions de cluster HA (High Availibilty) et LB (Load Balancing)
Journaux de transaction
SQL (présentation)
●
●
●
Simple Query Language
Langage de manipulation des nuplet commun aux SGBD relationnels
Des variantes peuvent cependant apparaître d'un SGBD à l'autre (support ou non des requêtes imbriquées, auto­incrémentations de clés primaires etc.)
SQL (synthaxe) 1/4
●
CREATE
CREATE DATABASE TEST01;
CREATE TABLE test (id INT not null
AUTO_INCREMENT, prenom VARCHAR
(50) not null , nom VARCHAR (50) not
null , ne_le DATE not null ,
ville VARCHAR (90), enfants INT,
PRIMARY KEY (id));
SQL (synthaxe) 2/4
●
INSERT / UPDATE
INSERT INTO test VALUES
(1,'Nicolas','GRENECHE','2009-01-19','
Orléans',0);
SQL (synthaxe) 3/4
●
SELECT
SELECT * FROM test WHERE
nom='GRENECHE';
SQL (synthaxe) 4/4
●
●
Beaucoup plus compliqué en pratique :
–
Optimisation des requêtes
–
Extensions propres aux differents moteurs de SGBD
–
Implémentations des differents schémas de données (ex : cartouches spatiales, entrepôts de données etc.)
DBA, C'est un métier à part entière !
Administration d'un SGBD
●
Arrêt / redémarrage
●
Reprise sur incident
●
Sauvegarde
●
Gestion des utilisateurs
●
Aspects réseau
●
Tuning / Performances
●
Système d'exploitation sous – jascent
Sécurité des SGBD
●
●
Chiffrement / Authentification des échanges
●
DoS (Denial of Service)
●
Gestion des utilisateurs :
●
Exposition du SGBD (périmètre système et réseau)
–
Mots de passe faibles
–
ACL (Access Control List) inapropriées
Valeur des données stockées
Téléchargement