Академический Документы
Профессиональный Документы
Культура Документы
AU : 2019 - 2020
Auditoire : 2ème Systèmes Informatiques et Logiciels
Reconnaissance
Structuration
Monde Réel
Perception
25/01/2020 5
Cycle de conception et de création d’une BD
Univers réel
Analyse
Spécification
de la BD
Conception Modèle
conceptuel Modèle Entité-Association
Transformation
en schéma
logique Schéma
Modèle Relationnel
logique
Conception
physique Modèle de
25/01/2020 6
données physique
Étapes de la mise en œuvre d’une BD
• Modélisation Conceptuelle de la BD
– Modèle Conceptuel
• Modèle Entité / Association (E/A)
• Diagramme de Classes UML
• Modélisation Relationnelle Logique de la BD
– Modèle Logique Relationnel
• Application des Règles de Passages : Modèle Conceptuel
Modèle Logique Relationnel
• Application des Règles de Normalisations : 1 FN 2 FN 3 FN
• Développement d’une BD
– Utilisation d’un SGBD
• Environnement de Développement de la BD : Par exemple SQL
Server, ORACLE, …
– Langage de développement de la BD
• SQL : Structured Query Language
25/01/2020 7
Création d’une BD
Modélisation Schéma Conceptuel
Monde Réel Conceptuelle
0:n 1:1
Personne Possède Voiture
Modélisation
Logique
25/01/2020 Implémentation 8
en SQL
Qu’est ce qu’un Système de Gestion de Base de
Données
› SGBD : un système de gestion de base de données (Data Base
Management System) est un logiciel qui gère, manipule et
contrôle l’accès à une BD partagée par plusieurs utilisateurs
simultanément.
25/01/2020 10
Que doit permettre un SGBD ?
› Contrôler les données : exprimer toutes les règles qui
contraignent les valeurs pouvant être enregistrées de façon
à éviter toute erreur qui peut être détectée.
Intégrité : vérification de contraintes d'intégrité
Confidentialité
Contrôle des droits d'accès, autorisation
Langage de contrôle des données (LCD)
25/01/2020 11
Que doit permettre un SGBD ?
› Assurer le partage et la sécurité des données :
Une BD est partagée entre plusieurs utilisateurs en
même temps ⇒ contrôle des accès concurrents
Les données doivent pouvoir être protégées contre les
accès non autorisés.
Associer à chaque utilisateur des droits d’accès aux
données.
25/01/2020 12
Le langage SQL
› SQL (Structured Query Language : langage structuré de
requêtes)
25/01/2020 13
Le langage SQL
› On peut diviser le langage SQL en 5 parties :
– Définition de données (LDD)
CREATE, ALTER, DROP
– Manipulation de données (LMD)
INSERT, UPDATE, DELETE
– Interrogation des données (LID)
SELECT
– Contrôle des données (LCD)
PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK
– Contrôle des transactions (LCT )
COMMIT, ROLLBACK
25/01/2020 14
Langage de définition de données : create table
› Création de table :
CREATE TABLE nom_table (
nom_col1 type_col1 [contrainte_col1]
[, nom_col2 type_col2 [contrainte_col2], ...]
[ [CONSTRAINT nom_contrainte_table1] contrainte_tab1,
[CONSTRAINT nom_contrainte_table2] contrainte_tab2,...] );
› Les contraintes :
Contraintes de colonne : Contraintes de table :
– [NOT] NULL – UNIQUE (nom-col)*
– UNIQUE – CHECK
– PRIMARY KEY – PRIMARY KEY (nom-col)*
– CHECK – FOREIGN KEY (nom-col)*
25/01/2020 REFERENCES nom_table [(nom-col)*]
15
Langage de définition de données : create table
› Exemple :
25/01/2020 16
Langage de définition de données : alter table
ALTER TABLE <nom_de_table>
RENAME TO nouv_nom_table; (Renommer une table)
ADD <attribut1 type1 [constraint1], attribut2 type2 [constraint2], …>;
(ajouter des colonnes)
MODIFY <attribut1 new_type1 [new_constraint1], attribut2 new_type
[new_constraint2], …>;
(modifier les types des colonnes / ajouter de nouvelles contraintes de
colonnes)
RENAME COLUMN old_name TO new_name; (changer le nom d’une colonne)
DROP COLUMN <attribut>; (supprimer une colonne)
DROP <attribut1, attribut2, …>; (supprimer plusieurs colonnes)
– Exemple
ALTER TABLE Employe ADD COLUMN Age Integer; 17
25/01/2020
Langage de définition de données : alter table
ALTER TABLE <nom_de_table>
MODIFY <attribut contrainte_de_colonne>; (ajouter une contrainte de colonne)
ADD <contrainte_de_table>; (ajouter une contrainte de table)
25/01/2020 19
Langage de manipulation de données : Insert
INSERT
INTO nom_table [ (liste de colonnes) ]
{VALUES (liste de valeurs) | requête};
› Exemple :
25/01/2020 20
Langage de manipulation de données : Update
UPDATE nom_table
SET nom_colonne1 = valeur1 [, nom_colonne2 = valeur2 ...]
[WHERE expression];
› Exemple :
25/01/2020 21
Langage de manipulation de données : Delete
› Exemple :
25/01/2020 22
Langage d’interrogation des données : select
SELECT [DISTINCT] liste d'attributs
FROM liste de tables
[WHERE qualification]
[GROUP BY attributs de partitionnement ]
[HAVING qualification de groupe]
[ORDER BY liste de colonnes [ ASC | DESC ]]
25/01/2020 23
Langage d’interrogation des données : select
5 fonctions agrégatives:
AVG ( ): calcul de la moyenne
SUM ( ): calcul de la somme
MIN ( ): calcul de la valeur minimale
MAX ( ): calcul de la valeur maximale
COUNT ( ): calcul du nombre de tuples
25/01/2020 24
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)
› Contraintes d’intégrité :
– Titre_presentation ne doit pas être nul.
– Tarif doit être > 0
1- Créer les tables en respectant les contraintes d’intégrité
Create table representation (
n_representation number Primary Key,
titre_representation varchar(30) not null,
Lieu varchar(30));
25/01/2020 25
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)
› Contraintes d’intégrité :
– Titre_presentation ne doit pas être nul.
– Tarif doit être > 0
1- Créer les tables en respectant les contraintes d’intégrité
Create table musicien (
Nom varchar(20) Primary Key,
n_representation number,
Foreign Key(n_representation) references representation); 26
25/01/2020
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)
› Contraintes d’intégrité :
– Titre_presentation ne doit pas être nul.
– Tarif doit être > 0
1- Créer les tables en respectant les contraintes d’intégrité
Create table programme (
date date,
n_representation number,
tarif number check(tarif > 0),
Primary Key(date, n_representation),
Foreign Key(n_representation) references representation);
27
25/01/2020
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)
Update representation
Set lieu = ‘Palais Garnier’
Where lieu = ‘Opéra Bastille’;
25/01/2020 29
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)
25/01/2020 30
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)
SELECT titre_representation
FROM REPRESENTATION;
25/01/2020 31
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)
SELECT titre_representation
FROM REPRESENTATION
WHERE lieu = ‘Opéra Bastille’;
25/01/2020 32
Exercice
› REPRESENTATION (n_representation, titre_representation, lieu)
MUSICIEN (nom, #n_representation)
PROGRAMME (date, #n_representation, tarif)