• Aucun résultat trouvé

Transparents (PowerPoint)

N/A
N/A
Protected

Academic year: 2022

Partager "Transparents (PowerPoint)"

Copied!
53
0
0

Texte intégral

(1)

Dépendances entre les chapitres

(2)

1 Introduction aux systèmes de gestion de bases de données

 BD : composante essentielle des systèmes informatiques modernes

– systèmes d ’information de gestion

– ingénierie

– contrôle de processus

– bibliothèques électroniques

– ...

 Données persistantes

(3)

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)

– 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.

(4)

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

(5)

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)

texte, image, son, vidéo

(6)

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

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

(7)

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)

Logiciel spécialisé pour la gestion de base de données

(8)

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

indirectement via des opérations d'entrée/sortie

lenteur

persistance

(9)

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)

– structure des données définie à l'aide du LDD

(10)

Environnement SGBD

S y s t è m e d e g e s t i o n d e b a s e d e d o n n é e s ( S G B D )

P r o g r a m m e d 'a p p lic a t i o n U t il it a i r e d 'é d it i o n e t

d 'i n t e r p r é t a t io n d e c o m m a n d e s d u L M D

U t il it a ir e c o n v iv ia l d e m a n ip u la t io n

d e d o n n é e s

E v a l u a t e u r d e r e q u ê t e ( L M D ) I n t e r p r è t e d u L D D

U t i lit a ir e d 'é d it io n d u s c h é m a

D ic t io n n a ir e d e d o n n é e s ( c o n t ie n t le s c h é m a o u

m é t a - d o n n é e s )

B a s e d e d o n n é e s ( c o n t ie n t le s d o n n é e s ) A d m in is t r a t e u r d e b a s e d e d o n n é e s ( A B D )

U t ili s a t e u r e x p e r t

U t il is a t e u r P r o g r a m m e s o u r c e

i n c o r p o r a n t d e s a p p e ls à u n e li b r a i r ie s p é c ia lis é e p o u r le

S G B D P r o g r a m m e u r P r o g r a m m e s o u r c e

a v e c L M D e n c h â s s é

p r é - c o m p i la t e u r

C o m p i la t e u r

(11)

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)

langage de requête (query language )

ex: SQL, OQL

(12)

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

(e.g. C, C++, ADA, JAVA,…)

syntaxe spéciale non reconnue par compilateur

étape de pré-compilation

Interface programmatique (API)

e.g. ODBC, JDBC

LMD passé en paramètre

Utilitaire GUI convivial

(13)

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)

opération de manipulation de données

(14)

Définition des données

Administrateur de la base de données (ABD, database administrator - DBA)

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

Méta-données (metadata)

le schéma sous forme de données

Dictionnaire de données (métabase, data dictionary)

BD, gérée par le SGBD, qui contient les méta-données

(15)

1.6Principales

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

interface (« GUI ») + traitement du domaine d ’application

SGBD = serveur (de données « data server »)

machines (sites) différentes

deux couches, niveaux, strates (“two tier ”)

(16)

Architecture client-serveur

R é s e a u

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e

t é l é c o m m u n i c a t i o n P r o g r a m m e d 'a p p l i c a t i o n

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e

t é l é c o m m u n i c a t i o n S G B D

C l i e n t S e r v e u r

B D

(17)

Architecture à trois niveaux (three tier)

R é s e a u

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e t é l é c o m m u n i c a t i o n

A p p l i c a t i o n

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e t é l é c o m m u n i c a t i o n

S G B D

S e r v e u r d ' a p p l i c a t i o n

S e r v e u r d e d o n n é e s

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e t é l é c o m m u n i c a t i o n

I n t e r f a c e

C l i e n t m i n c e

R é s e a u

B D

(18)

Base de données répartie, distribuée (distributed database)

SGBD réparti (distributed DBMS)

répartition des données de manière transparente

R é s e a u

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e t é l é c o m m u n i c a t i o n

S G B D r é p a r t i

S e r v e u r d e d o n n é e s

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e t é l é c o m m u n i c a t i o n

P r o g r a m m e d 'a p p l i c a t i o n

C l i e n t

R é s e a u

L o g i c i e l i n t e r m é d i a i r e

P i l o t e d e t é l é c o m m u n i c a t i o n

S G B D r é p a r t i

S e r v e u r d e d o n n é e s

B D lo c a le

B D lo c a l e

(19)

Base de données parallèle (parallel database)

 Parallélisme à l'intérieur d'un site

D is q u e D is q u e D is q u e D is q u e

U n it é d e t r a it e m e n t

U n it é d e t r a i t e m e n t

U n it é d e t r a it e m e n t

D is q u e

M é m o i r e v iv e

(20)

Entrepôt de données

E n t r e p ô t d e d o n n é e s ( « d a t a w h a r e h o u s e » )

B D o p é r a t i o n n e l l e

( O L T P )

A u t r e s o u r c e d e

d o n n é e s

E x t r a c t i o n : f i l t r a g e , s y n t h è s e , t r a n s f o r m a t i o n ,

f u s i o n B D

o p é r a t i o n n e l l e ( O L T P )

A n a l y s e ( O L A P ) , p r o s p e c t i o n

(21)

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)

extraction non triviale d'informations implicites, inconnues et utiles

(22)

1.7 Des systèmes de gestion de fichiers aux SGBD

Système de gestion de fichier (SGF, file system)

gestionnaire de fichiers (file manager)

– composante du système d’exploitation

– abstraction des mémoires secondaires

sous forme d'un ensemble de fichiers

(23)

Utilisation d'un système de gestion de fichier

F ic h ie r d e s c o m p t e s

F ic h i e r d e s t r a n s a c t io n s

F ic h i e r d e s c o m p t e s m i s à j o u r

M i s e à jo u r e n l o t d e s c o m p t e s

A p p l i c a t i o n d e g e s t i o n d e s c o m p t e s

F ic h ie r d e s p r ê t s F ic h i e r d e s

t r a n s a c t io n s

F ic h ie r d e s p r ê t s m i s à j o u r

M i s e à jo u r e n l o t d e s p r ê t s

A p p l i c a t i o n d e g e s t i o n d e s p r ê t s

(24)

Exemple de contenu des fichiers de comptes et de prêts (fichiers séquentiels triés)

noPrêt nomClient adresse

Client noTéléphone montant

Prêt dateDébut taux

Intérêt fréquence Paiement 1000 Hugh

Paycheck Ottawa (999)999-9999 10000.00 10/ 6/ 2000 10 12 2000 Ye San Le

Su Montréal (777)777-7777 20000.00 20/ 7/ 2000 12 52 3000 Hugh

Paycheck Ottawa (999)999-9999 5000.00 15/ 8/ 2000 12 12

noCompte nomClient adresseClient noTéléphone dateOuverture solde

100 Hugh Paycheck Ottawa (999)999-9999 5/ 05/ 1999 1000.00

200 Dollard Cash Montréal (888)888-8888 10/ 10/ 1999 2000.00

300 Hugh Paycheck Ottawa (999)999-9999 10/ 10/ 1999 1000.00

400 Ye San Le Su Montréal (777)777-7777 20/ 7/ 2000 5.00

600 Ye San Le Su Montréal (777)777-7777 15/ 10/ 2000 10.00

(25)

1.7.1 Redondance et

incohérence des données

noCompte nomClient adresseClient noTéléphone dateOuverture solde 100 Hugh Paycheck

Ottawa (999)999-9999

5/ 05/ 1999 1000.00 200 Dollard Cash Montréal (888)888-8888 10/ 10/ 1999 2000.00 300 Hugh Paycheck

Québec (555)555-5555

10/ 10/ 1999 1000.00 400 Ye San Le Su Montréal (777)777-7777 20/ 7/ 2000 5.00 600 Ye San Le Su Montréal (777)777-7777 15/ 10/ 2000 10.00

noPrêt nomClient adresse

Client noTéléphone montant

Prêt dateDébut taux

Intérêt fréquence Paiement 1000 Hugh

Paycheck

Alma (444)444-4444

10000.00 10/ 6/ 2000 10 12 2000 Ye San Le Montréal (777)777-7777 20000.00 20/ 7/ 2000 12 52

Modifications

anarchiques

(26)

1.7.2Mécanismes d'organisation de données limités des SGF

 SGBD supporte

– Indexage

– Hachage

– Organisation par grappe

– Liens entre fichiers

(27)

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)

(28)

1.7.4 Contrôle de concurrence

 Empêcher interférences indésirables

 SGBD : mécanismes raffinés

Temps Processus #1 Processus #2 État du fichier t

1

Lire ( SoldeCompte , s )

{s = 8} SoldeCompte = 8

t

2

Lire ( SoldeCompte , s )

{s = 8}

t

3

s = s + 5

t

4

Écrire ( s , SoldeCompte ) SoldeCompte = 13

t

5

s = s + 2

t

6

Écrire ( s , SoldeCompte ) SoldeCompte = 10

t

7

Saperlipopette!

(29)

1.7.5 Fiabilité

 Exemple de panne

 SGBD : mécanismes de récupération

 Revenir à un état cohérent suite à une panne

– journal des transactions

– duplication des composantes et des

données

(30)

1.7.6 Sécurité

 SGF :

– lecture, écriture au niveau fichier

 SGBD : contrôle plus fin

– types de données

– enregistrements

– champs

– type d ’opération

– cryptage

(31)

1.7.7 Gestion des transactions

Transaction

– séquence d'opérations de manipulation de 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).

(32)

1.7.8Indépendance des données

 Indépendance entre :

– formulation d'une requête (QUOI)

 langage non procédural

– façon d'effectuer la requête par

le SGBD (COMMENT)

(33)

1.8 Perspective historique

Modèle de définition de données (“ data definition model ”)

nature des types de données supportés par le SGBD.

1ère génération (années 70): réseau, hiérarchique (CODASYL, IMS,...)

LMD navigationnel

2ième génération (années 80) :relationnel (Oracle, Ingres, DB2, SQL server,…)

LMD non procédural

3ième génération (années 90)

objet (Object Store, Versant,…)

relationnel objet (Oracle8, DB2 UDS, Informix US)

4ième génération ?

déductif (« Datalog »), entrepôt de données, data mining, support du WEB (XML, XMLQL)

Modèles pour conception

(34)

1.9 Exemple introductif : Banque SansIntérêts

Table Client

noClient nomClient adresseClient noTéléphone 10 Hugh Paycheck Ottawa (999)999-9999 20 Dollard Cash Montréal (888)888-8888 30 Ye San Le Su Montréal (777)777-7777

Table Compte

noCompte solde dateOuverture noClient 100 1000.00 5/ 05/ 1999 10

200 2000.00 10/ 10/ 1999 20 300 1000.00 10/ 10/ 1999 10

400 5.00 20/ 7/ 2000 30

600 10.00 15/ 10/ 2000 30 Table Prêt

noPrêt montantPrêt dateDébut tauxIntérêt fréquence

Paiement noClient

1000 10000.00 10/ 6/ 2000 10 12 10

2000 20000.00 20/ 7/ 2000 12 52 30

3000 5000.00 15/ 8/ 2000 12 12 10

(35)

Code du schéma avec le LDD SQL

(script Oracle)

(36)

Création du schéma avec

l'outil SQL*plus d'Oracle

(37)

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),

Création du schéma

(38)

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

(39)

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

(40)

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 /

(41)

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

(42)

SELECT SQL

SQL> SELECT noCompte, solde 2 FROM Compte

3 WHERE noClient = 10 4 /

NOCOMPTE SOLDE --- --- 100 1000 300 1000

SELECT noCompte, solde FROM Compte

WHERE noClient = 10

noCompte solde

100 1000.00

300 1000.00

noCompte solde dateOuverture noClient 100 1000.00 5/ 05/ 1999 10 200 2000.00 10/ 10/ 1999 20 300 1000.00 10/ 10/ 1999 10

400 5.00 20/ 7/ 2000 30

600 10.00 15/ 10/ 2000 30

(43)

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");

(44)

Pilote JDBC

R é s e a u

P r o g r a m m e d 'a p p l i c a t i o n ( J a v a )

C l i e n t

S e r v e u r

B D

L o g i c i e l i n t e r m é d i a i r e ( P i l o t e J D B C )

P i l o t e d e

t é l é c o m m u n i c a t i o n ( T C P / I P )

S G B D ( O r a c l e )

C l i e n t

L o g i c i e l i n t e r m é d i a i r e

( N E T 8 ) P i l o t e d e

t é l é c o m m u n i c a t i o n ( T C P / I P )

C l i e n t

(45)

SELECT sur plusieurs tables

SQL> SELECT nomClient, noCompte, solde 2 FROM Client, Compte

3 WHERE Client.noClient = Compte.noClient AND 4 dateOuverture = '10/10/1999'

5 /

NOMCLIENT NOCOMPTE SOLDE

--- --- ---

Dollard Tremblay 200 2000

Luc Sansom 300 1000

(46)

suite

 Requête complexe

noCompte solde dateOuverture noClient 100 1000.00 5/ 05/ 1999 10 200 2000.00 10/ 10/ 1999 20 300 1000.00 10/ 10/ 1999 10

400 5.00 20/ 7/ 2000 30

600 10.00 15/ 10/ 2000 30

SELECT nomClient, noCompte, solde FROM Client, Compte

WHERE Client.noClient = Compte.noClient AND dateOuverture = '10/10/1999'

noClient nomClient adresseClient noTéléphone 10 Hugh Paycheck Ottawa (999)999-9999 20 Dollard Cash Montréal (888)888-8888 30 Ye San Le Su Montréal (777)777-7777

nomClient noCompte solde Dollard Cash 200 2000.00 Hugh Paycheck 300 1000.00

(47)

UPDATE SQL

SQL> UPDATE Compte

2 SET solde = solde - 100 3 WHERE noCompte = 100 4 /

1 row updated.

SQL> UPDATE Compte

2 SET solde = solde + 100 3 WHERE noCompte = 300 4 /

1 row updated.

SQL> COMMIT 2 /

Commit complete.

SQL> SELECT noCompte, solde 2 FROM Compte

3 WHERE noClient = 10 4 /

(48)

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

(49)

Organisation physique des données

SQL> CREATE INDEX indexNoClientCompte ON Compte(noClient) 2 /

Index created.

(50)

Dictionnaire de données

SQL> SELECT TABLE_NAME 2 FROM USER_TABLES 3 /

TABLE_NAME

--- CLIENT

COMPTE PRÊT

SQL> SELECT COLUMN_NAME 2 FROM USER_TAB_COLUMNS

3 WHERE TABLE_NAME = 'CLIENT' 4 /

COLUMN_NAME

--- NOCLIENT

NOMCLIENT ADRESSECLIENT NOTÉLÉPHONE

(51)

Allocation d ’espace

SQL> SELECT TABLESPACE_NAME, EXTENTS, BLOCKS 2 FROM USER_SEGMENTS

3 WHERE SEGMENT_NAME = 'CLIENT' 4 /

TABLESPACE_NAME EXTENTS BLOCKS

--- --- ---

USERS 1 16

(52)

1.10 Conception du schéma d'une base de données

Prêt noPrêt montantPrêt dateDébut tauxIntérêt

fréquencePaiement

<<entity>>

Compte noCompte solde

dateOuverture

<<entity>>

Client noClient nomClient adresseClient noTéléphone

<<entity>>

1

0..*

1

0..*

0..*

1

0..*

1

Prêt {CléPrimaire : noPrêt}

noPrêt montantPrêt dateDébut tauxIntérêt

fréquencePaiement noClient

<<Table>>

Compte {Clé primaire : noCompte}

noCompte solde

dateOuverture noClient

<<Table>>

Client {Clé primaire : noClient}

noClient nomClient adresseClient noTéléphone

<<Table>>

Modèle conceptuel

Schéma

relationnel

(53)

1.11 Architecture à trois niveaux des schémas (ANSI/SPARC)

S c h é m a e x t e r n e

S c h é m a e x t e r n e

S c h é m a e x t e r n e . . .

S c h é m a c o n c e p t u e l

S c h é m a

Références

Documents relatifs

CREATE VIEW Article (noArticle, description, prixUnitaire, quantitéEnStock)AS SELECT C.noArticle, description, prixUnitaire, quantitéEnStock FROM Catalogue AS C, Inventaire AS

noArticle :40 quantité :2 livraison complétée noArticle :95 quantité :3 quantité en attente :2 PL/SQL procedure successfully completed. SQL&gt;

titre nomProducteur nomActeur La vie est belle Elda Ferri Roberto Benigni La vie est belle Elda Ferri Nicoletta Braschi La vie est belle Elda Ferri Giorgio Cantarini La vie est

Description: Ce cas d'utilisation est déclenché par le commis au prêt suite à une requête d'un membre ou d'un employé. Il lui permet d'enregistrer un prêt ou un retour ,

FOREIGN KEY (idUtilisateur) REFERENCES Utilisateur, FOREIGN KEY (idExemplaire) REFERENCES Exemplaire, CHECK (dateRetour &gt;=

public static void main (String args []) throws Exception { // Création d'une Connection globale pour l'application UsineConnection uneUsineConnection =

public class exempleInsertionsNouveauxObjetsOMLJava { public static void main (String args []){. /* Ouvrir

CONSTRAINT annéeSup0 CHECK(annéeParution.valeurAnnée &gt; 0), CONSTRAINT referenceTableEditeur éditeur SCOPE IS Editeur) CREATE INDEX indexEditeurLivre ON Livre(éditeur). CREATE