Donnée - LabUnix

publicité
Dépendances entre les chapitres
1
Introduction aux
systèmes de gestion de
bases de données
3.1 et 3.2
Concepts de base et
contraintes d'intégrité du
modèle relationnel
3.4
Algèbre relationelle
2
Analyse et modélisation
conceptuelle
7
Gestion des données en
mémoire secondaire
3.3
Conception logique
8
Organisations
unidimensionnelles :
indexage et hachage
4
Le langage SQL
5
Interface entre SQL et un
programme
11
Théorie de la
normalisation
6
Contraintes d'intégrité en
SQL
12
Cas d'utilisation détaillés et
processus d'élaboration du
modèle conceptuel de
données
14
L'intégrité et la gestion
des transactions
15
Développement
d'applications de bases de
données en Java
21/04/2017
10
Evaluation des requêtes
relationnelles
16
Bases de données objet
20
Données semistructurées et XML
9
Méthodes
multidimensionnelles et
représentation
d'associations
22
Logique et bases de
données
13
Conception dans un
contexte relationnel
17
Relationel-objet
21
Repérage de
l’information
18
Bases de données
parallèles et réparties
© Robert Godin. Tous droits réservés.
19
Les entrepôts de
données et l’analyse de
données
1
1
Introduction aux systèmes de
gestion de bases de données

BD : composante essentielle des systèmes
informatiques modernes
–
–
–
–
–

21/04/2017
systèmes d ’information de gestion
ingénierie
contrôle de processus
bibliothèques électroniques
...
Données persistantes
© Robert Godin. Tous droits réservés.
2
1.1 Donnée et de type de donnée

Donnée (data)
–

Une donnée au sens informatique est une
représentation d'un fait à l'aide d'un code binaire
stocké dans la mémoire de l'ordinateur
Type de données (data type)
–
21/04/2017
Le type de données détermine la nature du codage
utilisé pour représenter la donnée et les
opérations applicables à la donnée.
© Robert Godin. Tous droits réservés.
3
1.2 Donnée et information

Information : donnée interprétée
–
–
–
théorie de l'information
Shannon et Weaver (1959 )
mesure de la quantité d'information

–
–


message d'une source à un destinataire
diminution de l'incertitude au niveau du destinataire
information : relatif au destinataire du message
Changement d'état du destinataire
Souvent synonymes
21/04/2017
© Robert Godin. Tous droits réservés.
4
1.3 Donnée simple et complexe

Donnée simple

Donnée de type complexe, ou donnée complexe
–

composée de données simples
Donnée multimédia (multimedia data)
–
21/04/2017
texte, image, son, vidéo
© Robert Godin. Tous droits réservés.
5
1.4 Différentes facettes du
terme base de données

Base de données (BD)
–

Au sens large, collection de données
Différentes interprétations
21/04/2017

fichier de texte

ensemble de fichiers de textes

un seul fichier d'enregistrements

ensemble de fichiers d’enregistrements

plusieurs sous bases de données indépendantes les unes des autres

Toile : base de données de nature hétérogène et répartie

BD logique = une collection de BD physiques
© Robert Godin. Tous droits réservés.
6
1.5 Système de gestion de
base de données (SGBD)

Base de données (database)
–
Sens plus strict, ensemble de données :
1. fortement structurées
2. persistantes
3. structure définie dans un schéma
4. gérées par système de gestion de bases de données

Système de gestion de base de données (SGBD,
database management system - DBMS)
–
21/04/2017
Logiciel spécialisé pour la gestion de base de données
© Robert Godin. Tous droits réservés.
7
Mémoire centrale/secondaire


Mémoire centrale, principale, vive, primaire, volatile
(main memory, primary storage)
–
directement accessible par le processeur central
–
contient les instructions et les données d'un programme en exécution
–
rapidité
–
non persistance
Mémoire secondaire (secondary storage), permamente,
externe, stable, non volatile ou persistante
21/04/2017
–
indirectement via des opérations d'entrée/sortie
–
lenteur
–
persistance
© Robert Godin. Tous droits réservés.
8
Langage de définition des données et
schéma

Langage de définition des données (LDD, data
definition language - DDL )
–

permet la définition des types des données de la BD
Schéma de la base de données (database
schema)
–
21/04/2017
structure des données définie à l'aide du LDD
© Robert Godin. Tous droits réservés.
9
Environnement SGBD
Programme source
avec LMD enchâssé
Programmeur
Programme source
incorporant des appels à une
librairie spécialisée pour le
SGBD
pré-compilateur
Utilisateur expert
Utilisateur
Administrateur de base de données (ABD)
Compilateur
Utilitaire d'édition et
d'interprétation de
commandes du LMD
Utilitaire d'édition
du schéma
Interprète du LDD
Programme
d'application
Utilitaire convivial
de manipulation
de données
Evaluateur de requête (LMD)
Système de gestion de base de
données (SGBD)
Dictionnaire de données
(contient le schéma ou
méta-données)
21/04/2017
Base de données
(contient les données)
secondaire permanente
© Robert Godin. TousMémoire
droits réservés.
10
Langage de manipulation de
données/ de requête


Manipulation des données (data manipulation)
–
lire (sélectionner)
–
ajouter
–
supprimer
–
modifier
Langage de manipulation des données (LMD, data manipulation
language - DML)
21/04/2017
–
langage de requête (query language )
–
ex: SQL, OQL
© Robert Godin. Tous droits réservés.
11
Contexte d ’utilisation du LMD

Langage de manipulation des données enchâssé (embedded data
manipulation language), langage hôte (host language)
–
LMD enchâssé un langage de programmation hôte

–
syntaxe spéciale non reconnue par compilateur



(e.g. C, C++, ADA, JAVA,…)
étape de pré-compilation
Interface programmatique (API)
–
e.g. ODBC, JDBC
–
LMD passé en paramètre
Utilitaire GUI convivial
21/04/2017
© Robert Godin. Tous droits réservés.
12
Exécution des requêtes


Évaluateur de requête (query processor)
–
composante du SGBD responsable de l'exécution des requêtes
–
processus complexe
Requête (query)
–
21/04/2017
opération de manipulation de données
© Robert Godin. Tous droits réservés.
13
Définition des données

Administrateur de la base de données (ABD, database
administrator - DBA)
–
–
–

Méta-données (metadata)
–

responsable de la gestion d'une base de données
maintien du schéma de la base de données
utilitaire d ’édition du schéma
le schéma sous forme de données
Dictionnaire de données (métabase, data dictionary)
–
21/04/2017
BD, gérée par le SGBD, qui contient les méta-données
© Robert Godin. Tous droits réservés.
14
1.6
Principales
architectures des BD


Architecture centralisée
–
programme d'application et SGBD sur même machine (même site)
–
premiers systèmes
Architecture du type client-serveur (client-server architecture)
–
programme d'application = client

21/04/2017
interface (« GUI ») + traitement du domaine d ’application
–
SGBD = serveur (de données « data server »)
–
machines (sites) différentes
–
deux couches, niveaux, strates (“two tier ”)
© Robert Godin. Tous droits réservés.
15
Architecture client-serveur
BD
Réseau
Programme
d'application
Logiciel
intermédiaire
Pilote de
télécommunication
Client
21/04/2017
SGBD
Logiciel
intermédiaire
Pilote de
télécommunication
Serveur
© Robert Godin. Tous droits réservés.
16
Architecture à trois niveaux
(three tier)
BD
Réseau
Réseau
Interface
Application
SGBD
Logiciel
intermédiaire
Pilote de
télécommunication
Logiciel
intermédiaire
Pilote de
télécommunication
Logiciel
intermédiaire
Pilote de
télécommunication
Client
mince
Serveur
d'application
Serveur de
données
21/04/2017
© Robert Godin. Tous droits réservés.
17
Base de données répartie, distribuée
(distributed database)

SGBD réparti (distributed DBMS)
–
répartition des données de manière transparente
BD
locale
Réseau
Programme
d'application
Logiciel
intermédiaire
Pilote de
télécommunication
Client
21/04/2017
BD
locale
Réseau
SGBD réparti
SGBD réparti
Logiciel
intermédiaire
Pilote de
télécommunication
Logiciel
intermédiaire
Pilote de
télécommunication
Serveur de
données
Serveur de
données
© Robert Godin. Tous droits réservés.
18
Base de données parallèle
(parallel database)

Parallélisme à l'intérieur d'un site
Unité de
traitement
Disque
21/04/2017
Unité de
traitement
Disque
Disque
Unité de
traitement
Disque
© Robert Godin. Tous droits réservés.
Mémoire vive
Disque
19
Entrepôt de données
BD
opérationnelle
(OLTP)
BD
opérationnelle
(OLTP)
Extraction :
filtrage,
synthèse,
transformation,
fusion
Entrepôt de données
(« data wharehouse »)
Analyse
(OLAP),
prospection
Autre
source de
données
21/04/2017
© Robert Godin. Tous droits réservés.
20
Entrepôt de données



Base de données opérationnelle
–
traitement des données quotidiennes et récentes
–
OLTP (“ On Line Transaction Processing ”).
Entrepôt de données (data wharehouse)
–
grand volume de données historiques extraites de bases opérationnelles pour le
support à la prise de décision
–
OLAP (“ On Line Analytical Processing ”)
Prospection de données , ou forage, fouille, exploration de données, ou
découverte de connaissances dans les BD (data mining, analysis,
dredging, archeology, knowledge discovery in databases - KDD)
21/04/2017
–
extraction non triviale d'informations implicites, inconnues et utiles
–
apprentissage machine , statistiques
© Robert Godin. Tous droits réservés.
21
1.7 Des systèmes de gestion
de fichiers aux SGBD

Système de gestion de fichier (SGF, file
system)
21/04/2017
–
gestionnaire de fichiers (file manager)
–
composante du système d’exploitation
–
abstraction des mémoires secondaires sous forme
d'un ensemble de fichiers
© Robert Godin. Tous droits réservés.
22
Utilisation d'un système de
gestion de fichier
Application de gestion des comptes
Fichier des
comptes
21/04/2017
Fichier des
transactions
Application de gestion des prêts
Fichier des prêts
Fichier des
transactions
Mise à jour en lot
des comptes
Mise à jour en lot
des prêts
Fichier des
comptes
mis à jour
Fichier des prêts
mis à jour
© Robert Godin. Tous droits réservés.
23
Exemple de contenu des fichiers de comptes
et de prêts (fichiers séquentiels triés)
noCompte
100
200
300
400
600
nomClient
Hugh Paycheck
Dollard Cash
Hugh Paycheck
Ye San Le Su
Ye San Le Su
noPrêt
nomClient
1000
Hugh
Paycheck
Ye San Le Montréal
Su
Hugh
Ottawa
Paycheck
2000
3000
21/04/2017
adresse
Client
Ottawa
adresseClient
Ottawa
Montréal
Ottawa
Montréal
Montréal
noTéléphone
noTéléphone
(999)999-9999
(888)888-8888
(999)999-9999
(777)777-7777
(777)777-7777
dateOuverture
5/05/1999
10/10/1999
10/10/1999
20/7/2000
15/10/2000
solde
1000.00
2000.00
1000.00
5.00
10.00
(999)999-9999
montant
Prêt
10000.00
dateDébut taux
fréquence
Intérêt Paiement
10/6/2000 10
12
(777)777-7777
20000.00
20/7/2000
12
52
(999)999-9999
5000.00
15/8/2000
12
12
© Robert Godin. Tous droits réservés.
24
1.7.1 Redondance et
incohérence des données
Modifications
anarchiques
noCompte
100
200
300
400
600
nomClient
Hugh Paycheck
Dollard Cash
Hugh Paycheck
Ye San Le Su
Ye San Le Su
noPrêt
nomClient
1000
Hugh
Paycheck
Ye San Le Montréal
Su
Hugh
Ottawa
Paycheck
2000
3000
21/04/2017
adresse
Client
Alma
adresseClient
Ottawa
Montréal
Québec
Montréal
Montréal
noTéléphone
(999)999-9999
(888)888-8888
(555)555-5555
(777)777-7777
(777)777-7777
noTéléphone
(444)444-4444
montant
Prêt
10000.00
dateDébut taux
fréquence
Intérêt Paiement
10/6/2000 10
12
(777)777-7777
20000.00
20/7/2000
12
52
(999)999-9999
5000.00
15/8/2000
12
12
© Robert Godin. Tous droits réservés.
dateOuverture
5/05/1999
10/10/1999
10/10/1999
20/7/2000
15/10/2000
solde
1000.00
2000.00
1000.00
5.00
10.00
25
1.7.2
Mécanismes d'organisation
de données limités des SGF

SGBD supporte
–
–
–
–
21/04/2017
Indexage
Hachage
Organisation par grappe
Liens entre fichiers
© Robert Godin. Tous droits réservés.
26
1.7.3


Intégrité sémantique
Contrainte
d'intégrité
sémantique
(semantic integrity constraint)
–
ou simplement contrainte d'intégrité
–
une règle qui doit toujours être respectée par les
données de la BD
–
ex: “ le solde d'un compte ne peut être négatif ”
Supporté par SGBD (pas SGF)
21/04/2017
© Robert Godin. Tous droits réservés.
27
1.7.4

Contrôle de concurrence
Empêcher interférences indésirables
Temps
t1
Processus #1
Lire(SoldeCompte, s)
{s = 8}
t2
État du fichier
SoldeCompte = 8
Lire(SoldeCompte, s)
{s = 8}
t3
t4
t5
t6
t7

Processus #2
s=s+5
Écrire(s, SoldeCompte)
SoldeCompte = 13
s=s+2
Écrire(s, SoldeCompte)
SoldeCompte = 10
Saperlipopette!
SGBD : mécanismes raffinés
21/04/2017
© Robert Godin. Tous droits réservés.
28
1.7.5 Fiabilité
Exemple de panne
 SGBD : mécanismes de récupération
 Revenir à un état cohérent suite à une panne

–
–
21/04/2017
journal des transactions
duplication des composantes et des données
© Robert Godin. Tous droits réservés.
29
1.7.6 Sécurité

SGF :
–

lecture, écriture au niveau fichier
SGBD : contrôle plus fin
–
–
–
–
–
21/04/2017
types de données
enregistrements
champs
type d ’opération
cryptage
© Robert Godin. Tous droits réservés.
30
1.7.7

Gestion des transactions
Transaction
21/04/2017
–
séquence d'opérations de manipulation
données exécutées par un programme
–
délimitées par une opération de début et une
opération de fin de transaction
–
propriétés d'Atomicité, de Consistance, d'Isolation et
de Durabilité (ACID).
© Robert Godin. Tous droits réservés.
de
31
1.7.8
Indépendance des données
 Indépendance
–
formulation d'une requête (QUOI)

–
21/04/2017
entre :
langage non procédural
façon d'effectuer la requête par le SGBD
(COMMENT)
© Robert Godin. Tous droits réservés.
32
1.8 Perspective historique

Modèle de définition de données (“ data definition model ”)
–

1ère génération (années 70): réseau, hiérarchique (CODASYL, IMS,...)
–

–
objet (Object Store, Versant,…)
relationnel objet (Oracle8, DB2 UDS, Informix US)
4ième génération ?
–

LMD non procédural
3ième génération (années 90)
–

LMD navigationnel
2ième génération (années 80) :relationnel (Oracle, Ingres, DB2, SQL server,…)
–

nature des types de données supportés par le SGBD.
déductif (« Datalog »), entrepôt de données, data mining, support du WEB (XML,
XMLQL)
Modèles pour conception
–
21/04/2017
E/R, UML
© Robert Godin. Tous droits réservés.
33
1.9 Exemple introductif :
Banque SansIntérêts
Table Client
noClient nomClient
adresseClient
10
Hugh Paycheck
Ottawa
20
Dollard Cash
Montréal
30
Ye San Le Su
Montréal
noCompte
100
200
300
400
600
21/04/2017
Table Compte
solde
dateOuverture
1000.00 5/05/1999
2000.00 10/10/1999
1000.00 10/10/1999
5.00
20/7/2000
10.00
15/10/2000
noPrêt
montantPrêt
1000
2000
3000
10000.00
20000.00
5000.00
noTéléphone
(999)999-9999
(888)888-8888
(777)777-7777
noClient
10
20
10
30
30
Table Prêt
dateDébut
tauxIntérêt fréquence
Paiement
10/6/2000
10
12
20/7/2000
12
52
15/8/2000
12
12
© Robert Godin. Tous droits réservés.
noClient
10
30
10
34
Code du schéma avec le LDD SQL
(script Oracle)
21/04/2017
CREATE TABLE Client
(noClient
nomClient
adresseClient
noTéléphone
INTEGER PRIMARY KEY,
VARCHAR(15),
VARCHAR(20),
VARCHAR(15))
CREATE TABLE Compte
(noCompte
solde
dateOuverture
noClient
INTEGER PRIMARY KEY,
DECIMAL(10,2) CHECK (solde >= 0),
DATE,
INTEGER REFERENCES Client)
CREATE TABLE Prêt
(noPrêt
montantPrêt
dateDébut
tauxIntérêt
fréquencePaiement
noClient
INTEGER PRIMARY KEY,
DECIMAL(10,2),
DATE,
DECIMAL(8,2),
INTEGER,
INTEGER REFERENCES Client)
© Robert Godin. Tous droits réservés.
35
Création du schéma avec l'outil
SQL*plus d'Oracle
21/04/2017
© Robert Godin. Tous droits réservés.
36
Création du schéma
SQL> CREATE TABLE Client
2 (noClient
INTEGER PRIMARY KEY,
3
nomClient
VARCHAR(18),
4
adresseClient VARCHAR(20),
5
noTéléphone
VARCHAR(15))
6 /
Table created.
SQL> CREATE TABLE Compte
2 (noCompte
INTEGER PRIMARY KEY,
3
solde
DECIMAL(10,2) CHECK (solde >= 0),
4
dateOuverture DATE,
5
noClient
INTEGER REFERENCES Client)
6 /
Table created.
SQL> CREATE TABLE Prêt
2 (noPrêt
INTEGER PRIMARY KEY,
3
montantPrêt
DECIMAL(10,2),
4
dateDébut
DATE,
5
tauxIntérêt
DECIMAL(8,2),
6
fréquencePaiement INTEGER,
7
noClient
INTEGER REFERENCES Client)
8 /
Table created.
21/04/2017
© Robert Godin. Tous droits réservés.
37
Manipulation de données
SQL> INSERT INTO Client
2
VALUES(10,'Luc Sansom','Ottawa','(999)999-9999')
3 /
1 row created.
SQL> SELECT *
2 FROM Client
3 /
NOCLIENT NOMCLIENT
ADRESSECLIENT
NOTÉLÉPHONE
---------- ------------------ -------------------- --------------10 Luc Sansom
Ottawa
(999)999-9999
21/04/2017
© Robert Godin. Tous droits réservés.
38
Transaction (COMMIT)
-- Session parallèle avec Oracle (multiversion) :
SQL> SELECT *
2 FROM Client
3 /
no rows selected
SQL> COMMIT
2 /
Commit complete.
Session parallèle :
SQL> SELECT *
2 FROM Client
3 /
NOCLIENT NOMCLIENT
ADRESSECLIENT
NOTÉLÉPHONE
---------- ------------------ -------------------- --------------10 Luc Sansom
Ottawa
(999)999-9999
21/04/2017
© Robert Godin. Tous droits réservés.
39
Insertion d ’un lot en
une transaction
SQL> INSERT INTO Client
2
VALUES(20,'Dollard Tremblay','Montréal','(888)888-8888')
3 /
1 row created.
SQL> INSERT INTO Client
2
VALUES(30,'Lin Bô','Montréal','(777)777-7777')
3 /
1 row created.
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY'
2 /
Session altered.
SQL> INSERT INTO Compte
2
VALUES(100,1000.0,'5/5/1999',10)
3 /
1 row created.
…
SQL> INSERT INTO Prêt
2
VALUES(3000,5000,'15/8/2000',12,12,10)
3 /
1 row created.
SQL> COMMIT
2 /
Commit complete.
21/04/2017
© Robert Godin. Tous droits réservés.
40
Respect des contraintes d’intégrité
SQL> INSERT INTO Client
2
VALUES(10,'Jean Leconte','Montréal','(666)666-6666')
3 /
INSERT INTO Client
*
ERROR at line 1:
ORA-00001: unique constraint (IDUTIL1.SYS_C001737) violated
21/04/2017
© Robert Godin. Tous droits réservés.
41
SELECT SQL
SQL>
2
3
4
SELECT noCompte, solde
FROM
Compte
WHERE noClient = 10
/
NOCOMPTE
SOLDE
---------- ---------100
1000
300
1000
noCompte
100
200
300
400
600
SELECT
FROM
WHERE
solde
1000.00
2000.00
1000.00
5.00
10.00
dateOuverture
5/05/1999
10/10/1999
10/10/1999
20/7/2000
15/10/2000
noCompte, solde
Compte
noClient = 10
noCompte
100
300
21/04/2017
noClient
10
20
10
30
30
solde
1000.00
1000.00
© Robert Godin. Tous droits réservés.
42
Exécution d'un SELECT dans une
application client-serveur Java
// Exemple de programme JAVA qui utilise le pilote JDBC thin d'Oracle
// pour effectuer un SELECT et itérer sur les lignes du résultat
// Il faut importer le paquetage java.sql pour utiliser JDBC
package ExemplesJDBC;
import java.sql.*;
import java.math.BigDecimal;
class ExempleSelectCompte
{
public static void main (String args [])
throws SQLException, ClassNotFoundException, java.io.IOException
{
// Charger le pilote JDBC d'Oracle
Class.forName ("oracle.jdbc.driver.OracleDriver");
// Connection à une BD avec un pilote thin
Connection uneConnection =
DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:ora817i",
"idutil1", "oracle");
// Création d'un énoncé associé à la Connection
Statement unEnoncéSQL = uneConnection.createStatement ();
// Exécution d'un SELECT
// Le code du SELECT est passé en paramètre sous forme d'un String
ResultSet résultatSelect = unEnoncéSQL.executeQuery
("SELECT noCompte, solde FROM Compte WHERE noClient = 10");
// Itérer sur les lignes du résultat du SELECT et extraire les valeurs
// des colonnes dans des variables JAVA
while (résultatSelect.next ()){
int noCompte = résultatSelect.getInt ("noCompte");
BigDecimal solde = résultatSelect.getBigDecimal ("solde");
System.out.println ("Numéro du compte:" + noCompte);
System.out.println ("Solde:" + solde);
}
// Fermeture de l'énoncé et de la connexion
unEnoncéSQL.close();
uneConnection.close();
}
}
21/04/2017
© Robert Godin. Tous droits réservés.
43
Pilote JDBC
BD
Réseau
Programme
d'application (Java)
SGBD
(Oracle)
Logiciel
intermédiaire
(Pilote JDBC)
Pilote de
Client
télécommunication
(TCP/IP)
Logiciel
intermédiaire
(NET8)
Pilote de
Client
télécommunication
(TCP/IP)
Client
21/04/2017
Serveur
© Robert Godin. Tous droits réservés.
44
SELECT sur plusieurs tables
SQL>
2
3
4
5
SELECT nomClient, noCompte, solde
FROM
Client, Compte
WHERE Client.noClient = Compte.noClient AND
dateOuverture = '10/10/1999'
/
NOMCLIENT
NOCOMPTE
SOLDE
------------------ ---------- ---------Dollard Tremblay
200
2000
Luc Sansom
300
1000
21/04/2017
© Robert Godin. Tous droits réservés.
45
suite

Requête complexe
noClient
10
20
30
nomClient
Hugh Paycheck
Dollard Cash
Ye San Le Su
SELECT
FROM
WHERE
adresseClient
Ottawa
Montréal
Montréal
noTéléphone
(999)999-9999
(888)888-8888
(777)777-7777
solde
1000.00
2000.00
1000.00
5.00
10.00
dateOuverture
5/05/1999
10/10/1999
10/10/1999
20/7/2000
15/10/2000
noClient
10
20
10
30
30
nomClient, noCompte, solde
Client, Compte
Client.noClient = Compte.noClient AND
dateOuverture = '10/10/1999'
nomClient
Dollard Cash
Hugh Paycheck
21/04/2017
noCompte
100
200
300
400
600
noCompte
200
300
solde
2000.00
1000.00
© Robert Godin. Tous droits réservés.
46
UPDATE SQL
SQL>
2
3
4
UPDATE Compte
SET solde = solde - 100
WHERE noCompte = 100
/
1 row updated.
SQL>
2
3
4
UPDATE Compte
SET solde = solde + 100
WHERE noCompte = 300
/
1 row updated.
SQL> COMMIT
2 /
Commit complete.
SQL>
2
3
4
SELECT noCompte, solde
FROM
Compte
WHERE noClient = 10
/
NOCOMPTE
SOLDE
---------- ---------100
900
300
1100
21/04/2017
© Robert Godin. Tous droits réservés.
47
DELETE SQL
SQL> DELETE FROM Compte WHERE noCompte = 100
2 /
1 row deleted.
SQL> COMMIT
2 /
Commit complete.
SQL> SELECT * FROM Compte
2 /
NOCOMPTE
SOLDE DATEOUVERT
NOCLIENT
---------- ---------- ---------- ---------200
2200 10/10/1999
20
300
1000 10/10/1999
10
400
5 20/07/2000
30
600
10 15/10/2000
30
21/04/2017
© Robert Godin. Tous droits réservés.
48
Organisation physique des données
SQL> CREATE INDEX indexNoClientCompte ON Compte(noClient)
2 /
Index created.
21/04/2017
© Robert Godin. Tous droits réservés.
49
Dictionnaire de données
SQL> SELECT TABLE_NAME
2 FROM USER_TABLES
3 /
TABLE_NAME
-----------------------------CLIENT
COMPTE
PRÊT
SQL>
2
3
4
SELECT COLUMN_NAME
FROM USER_TAB_COLUMNS
WHERE TABLE_NAME = 'CLIENT'
/
COLUMN_NAME
-----------------------------NOCLIENT
NOMCLIENT
ADRESSECLIENT
NOTÉLÉPHONE
21/04/2017
© Robert Godin. Tous droits réservés.
50
Allocation d ’espace
SQL>
2
3
4
SELECT TABLESPACE_NAME, EXTENTS, BLOCKS
FROM USER_SEGMENTS
WHERE SEGMENT_NAME = 'CLIENT'
/
TABLESPACE_NAME
EXTENTS
BLOCKS
------------------------------ ---------- ---------USERS
1
16
21/04/2017
© Robert Godin. Tous droits réservés.
51
1.10 Conception du schéma
d'une base de données
<<entity>>
Client
noClient
nomClient
adresseClient
noTéléphone
Modèle
conceptuel
1
<<entity>>
Compte
noCompte
solde
dateOuverture
0..*
1
0..*
<<entity>>
Prêt
noPrêt
montantPrêt
dateDébut
tauxIntérêt
fréquencePaiement
<<Table>>
Client
{Clé primaire : noClient}
noClient
nomClient
adresseClient
noTéléphone
<<Table>>
Compte
{Clé primaire : noCompte}
noCompte
solde
dateOuverture
noClient
21/04/2017
© Robert Godin. Tous droits réservés.
Schéma
relationnel
<<Table>>
Prêt
{CléPrimaire : noPrêt}
noPrêt
montantPrêt
dateDébut
tauxIntérêt
fréquencePaiement
noClient
52
1.11 Architecture à trois niveaux des
schémas (ANSI/SPARC)
Schéma
externe
Schéma
externe
...
Schéma
externe
Schéma
conceptuel
Schéma
interne
21/04/2017
© Robert Godin. Tous droits réservés.
53
Téléchargement