118
Institut Universitaire de Technologie de Poitiers Institut Universitaire de Technologie de Poitiers Gestion des Entreprises et Administrations Gestion des Entreprises et Administrations 8, rue des Carmes 8, rue des Carmes 86000 86000 Poitiers Poitiers INFORMATIQUE INFORMATIQUE IUT G.E.A. ¨Deuxième Année¨ IUT G.E.A. ¨Deuxième Année¨ Jean louis Martineau

INFORMATIQUE IUT G.E.A. ¨Deuxième Année¨

  • Upload
    marilu

  • View
    36

  • Download
    0

Embed Size (px)

DESCRIPTION

INFORMATIQUE IUT G.E.A. ¨Deuxième Année¨. Jean louis Martineau. Plan du cours. 1. Introduction aux bases de données 2. Conception d’un système d’information 3. Interrogation d’une base de données. Plan du cours. Chap. 1- introduction. 1. Organisation Systémique. Le système de gestion :. - PowerPoint PPT Presentation

Citation preview

Page 1: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

Institut Universitaire de Technologie de Poitiers Institut Universitaire de Technologie de Poitiers Gestion des Entreprises et AdministrationsGestion des Entreprises et Administrations

8, rue des Carmes8, rue des Carmes86000 86000 PoitiersPoitiers

INFORMATIQUE INFORMATIQUE IUT G.E.A. ¨Deuxième Année¨IUT G.E.A. ¨Deuxième Année¨

Jean louis Martineau

Page 2: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

2

Plan du coursPlan du cours

1. Introduction aux bases de données

2. Conception d’un système d’information

3. Interrogation d’une base de données

Page 3: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

3

Plan du coursPlan du cours

Chap. 1- introduction

Page 4: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

4

1. Organisation Systémique1. Organisation Systémique

Le système de gestion :

système de pilotage (cerveau de l'entreprise) :

il régule et contrôle le système opérant en décidant de son comportement en fonction des objectifs fixés

Page 5: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

5

1. Organisation Systémique1. Organisation Systémique

Le système d’informations :

Partie la moins visible, mais la plus fondamentale

Interface entre le système de gestion et le système opérant

Ensemble des informations utiles à la vie de l’entreprise

Page 6: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

6

1. Organisation Systémique1. Organisation Systémique

Système d'information

Informations traitées

Système de gestion

Système opérant

Informations de décision

Informations de représentation

Informations d'interactions

Informations externes Informations vers l'extérieur

Produits achetés

règlements desclients

Produits vendus

règlements desfournisseurs

Page 7: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

Institut Universitaire de Technologie de Poitiers Institut Universitaire de Technologie de Poitiers Gestion des Entreprises et AdministrationsGestion des Entreprises et Administrations

8, rue des Carmes8, rue des Carmes86000 86000 PoitiersPoitiers

Chap. 2 - Conception d’un système Chap. 2 - Conception d’un système d’informationd’information

1. Le modèle Entité/Association (E/A)

2. Méthode de construction du modèle E/A

3. Le modèle logique des données

Page 8: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

8

Objectif du chapitreObjectif du chapitre

Méthode de conception d’un schéma de base de données :

- éviter les redondances de données

- démarche méthodique

- support graphique

Page 9: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

9

2. Méthode de construction du 2. Méthode de construction du modèle E/Amodèle E/A

Construction d’un modèle Entité/Association depuis un problème réel :approche descendante

- beaucoup d’entités et d’associations- tâche trop complexe pour être effectuée sans méthode

Autre méthode de conception envisageable :

- approche ascendante (MERISE) : - des données détaillées vers le modèle E/A - regroupement pour constituer les entités et les associations

Des erreurs dans le modèle

Page 10: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

10

2. Méthode de construction du 2. Méthode de construction du modèle E/Amodèle E/A

Dictionnaire des données

Analyse des dépendances entre les données

Constitution des entités et des associations (par regroupement)

Établissement schéma Entité-Association final

Méthode ascendante :(approche MERISE)

Des outils (4)Des règles d'utilisation des outils

Page 11: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

11

2.1. Le dictionnaire des données2.1. Le dictionnaire des données

Objectif : recenser toutes les données qui seront stockées dans le système d’information

Pour chaque donnée il existe :

- un nom- un type (calculé ou non calculé)- un domaine de définition- une règle de gestion (si le type est calculé)

Regroupement de ces informations dans un tableau appelé :le dictionnaire des données

Page 12: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

12

2.1. Le dictionnaire des données2.1. Le dictionnaire des données

Nom de ladonnée

Signification Type Domaine dedéfinition

Règle de gestion

NUMFAC Numéro de lafacture

Non Calculé Entier

MONTHT Montant HT dela facture

Non Calculé Monnaie

TVA Taux de TVAappliqué

Non Calculé Entier

MONTTTC Montant TTC dela facture

Calculé Monnaie R1

R1 : MONTTC=MONTHT*(1+TVA/100)

Exemple de dictionnaire des données

R1 est une règle de gestion permettant de calculer l’attributMONTTTC depuis d’autres données contenues dans le dictionnaire

Page 13: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

13

2.2. Les dépendances fonctionnelles2.2. Les dépendances fonctionnelles

Exemples de D.F. entre deux attributs :

• Un numéro de sécurité social implique un, et un seul assuré social

• Une référence de produit implique unprix

NomAssuréNumSecu

PrixPdt

Par contre l’inverse n’est pas vrai car plusieurs produits peuventavoir le même prix

Par contre l’inverse n’est pas vrai car des personnes homonymes n’ont pas le même numéro de sécu.

Page 14: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

14

2.2. Les dépendances fonctionnelles2.2. Les dépendances fonctionnelles

Exemples de D.F. avec plusieurs attributs :

Jour,Mois,Année Date

NuméroProduit,BonCommande QuantitéCommandée

NuméroProduit,NumEntrepot QuantitéStock

Une valeur d’un identifiant détermine une et une seule occurrence de l’entité

Page 15: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

15

2.2. Les dépendances fonctionnelles2.2. Les dépendances fonctionnelles

Notation : Soient A,B et C des attributs

A B

CAOn peut écrire de façon équivalente

A B,C

Exemple :

NuméroClient NomClient, PrénomClient

Les dépendances fonctionnelles portent sur des ensembles d’attributs

Page 16: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

16

2.2. Les dépendances fonctionnelles2.2. Les dépendances fonctionnelles

Construction du graphe des dépendances fonctionnelles :

Etape 1 :

utiliser tous les attributs non calculés du dictionnaire des données

Etape 2 :

déterminer les D.F. simples et composées

Page 17: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

17

2.3. Construction du schéma E/A2.3. Construction du schéma E/A

Construction du schéma E/A depuis le graphe des D.F.

- 3 règles permettent d’établir une esquisse du schéma E/A

Présentation des règles sur un exemple :Numéro commande

Référence produit

Prix unitaire

désignation

Qté

Numéro client

Adresse clientNom client

Date commandeCode représentant

Nom représentant

Page 18: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

18

2.3. Construction du schéma E/A2.3. Construction du schéma E/A

Règle 1 : Les dépendances fonctionnelles sans successeur sont regroupées en entités. Les origines des arcs désignent les attributs identifiants de ces entités.

Application sur l’exemple :

Numéro commande

Référence produit

Prix unitaire

désignation

Qté

Numéro client

Adresse clientNom client

Date commandeCode représentant

Nom représentant

Page 19: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

19

2.3. Construction du schéma E/A2.3. Construction du schéma E/A

Les deux autres règles gèrent les associations et les attributs isolés :

Règle 2 : Les arcs restants mettent en évidence les associations. Les attributs restants dans le graphe des dépendances fonctionnelles sont les attributs des associations.

Règle 3 : les attributs isolés constituent des entités isolées. Les règles de gestion permettent de trouver les cardinalités.

Page 20: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

20

2.3. Construction du schéma E/A2.3. Construction du schéma E/A

Résultat de l’application de la règle 1 sur l’exemple

Commande

Numéro Commande

Date commande

Produit

Référence produitDésignationPrix unitaire

Client

Numéro ClientNom client

Adresse client

Représentant

Code représentantNom représentant

Qté

Page 21: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

21

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Définition L'information permet de représenter des connaissances.

Une information se décompose en trois niveaux :

- l'entité concernée par l'information. C'est l'objet, le concept ou l'individu dont il est question.

- les attributs (ou propriétés): ce sont les propriétés et les caractéristiques utilisées pour décrire l'entité.

- les valeurs d'un attribut permettent de définir une entité donnée.

Page 22: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

22

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Définition : l'occurrence d'une entité est l'ensemble des valeurs des attributs de cette entité.

Entité Facture

« Définition des informations »Format d’une facture

« occurrences d’une entité »liste des factures (valeurs)

Attributs :NomQté, DésignationMontantDate

Page 23: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

23

2.3 Le modèle Entité/Association2.3 Le modèle Entité/Association

Définition : Une entité est un concept, un objet ou une personne du monde réel. Elle possède :

- une existence propre- des occurrences multiples- au moins un attribut identifiant (souligné).

Nom Entité

Attribut Identifiant 1….

Attribut Identifiant nAttribut 1

…Attribut m

Représentation graphique d’uneentité dans le modèle E/A

Page 24: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

24

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Exemple d’entité : Un fournisseur

Fournisseur

NuméroNom FournisseurAdresse FournisseurNom ContactNuméro TéléphoneNuméro FaxAdresse e-mail

Attributs : liste des informationsutiles à la gestion d’un fournisseur

Attribut identifiant : Numéro- code créé par l’entreprise- détermine un et un seul fournisseur

Page 25: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

25

2.3 Le modèle Entité/Association2.3 Le modèle Entité/Association

Concept d’Association : toutes les informations n’ont pas d’existence intrinsèque

Elles ne peuvent pas être regroupées dans une entité

Exemple : affectation d’un salarié dans un service

Salariés

Numéro salariéNomFonctionRémunération

Service

Numéro serviceNomLocalisation

Affectation

Page 26: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

26

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Affectation d’un salarié dans un service :

Problème : action dépendant de deux entités :- salarié- service

Exemple (suite)

La notion d’association va permettre de représenter les dépendances entre les entités

Page 27: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

27

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Définition : Une association regroupe les informations relatives à une ou plusieurs entités définies par :

- absence d'existence intrinsèque,- au moins une occurrence,- le nombre d'entités associées,- un nom traduisant généralement une action.

Nom AssociationAttribut 1

…Attribut m

Nom Association

Représentation graphique des associations

Page 28: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

28

2.3 Le modèle Entité/Association2.3 Le modèle Entité/Association

Exemple :

Salariés

Numéro salariéNomFonctionRémunération

Service

Numéro serviceNomLocalisation

Travaille dans

L'identifiant d'une association est implicitement constitué par tous les identifiants des entités qui participent à l'association.

Participation de l’entité à l’association

Page 29: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

29

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Règles de construction du modèle Entité-Association : -Deux entités ne sont jamais reliées ensembles,-Deux associations ne sont jamais reliées ensembles.

Nom Entité 2

Identifiant 2Attribut 2.1

Attribut 2.m

Nom Entité 1

Identifiant 1Attribut 1.1

Attribut 1.m

Nom Associatio

n

Nom Associatio

n

Participations interdites

Participation Autorisée

Page 30: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

30

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Salariés

Numéro salariéNomFonctionRémunération

Service

Numéro serviceNomLocalisation

Travailler dans

Hiérarchique de

Exemple (suite) : modélisation de la hiérarchie entre salariés

Rôle de la participation:explication pour leverles ambiguïtés

Est le chef de Est dirigé par

Page 31: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

31

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

de représenter le lien entre les entités

Permet Permet pas

Connaître le nombred’occurrencesconcernées par l’association

Une association

Solution : indiquer le nombre d’occurrences de l’associationconcernées par la participation

Les cardinalités

Page 32: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

32

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Définition : CardinalitéLa Cardinalité précise pour chaque arc du modèle E/A - le nombre minimum d'occurrences d'une association liées à une occurrence d'entité.- le nombre maximum d'occurrences d'une association liées à une occurrence d'entité.

Remarque : si le nombre n'est pas connu précisément, une variable est utilisée (par exemple N ou M).

Entité

Association

Min,MaxReprésentationgraphique

Page 33: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

33

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Exemple : commande de produits par des clients

Client

NuméroNomAdresse

Produit

RéférenceDésignationPrix unitaire  HT

Commander

Qté

0,N 0,N

Combien de commandes au minimum peut faire un client donné : 0Combien de commandes au maximum peut faire un client donné : N

Combien de commandes au minimum peut contenir un produit donné : 0Combien de commandes au maximum peut contenir un produit donné : N

Page 34: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

34

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Salariés

Numéro salariéNomFonctionRémunération

Encadre

Est dirigé par

Est le chef de

(0,1)

(0,N)

Exemple 2:

Participation Cardinalités SignificationsSalarié - Encadre(est dirigé par)

(0;1) Un salarié n'a pas de hiérarchique et un employé a aumaximum un chef

Salarié - Encadre(est le chef de)

(0,N) Un salarié peut encadrer de 0 à N autres salariés

Explications des cardinalités dans un tableau séparé du modèle E/A

Page 35: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

35

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Client

NumClientNom

Adresse

Dépôt

NumDépôtAdresse

LivrerNb colis

(0,N) (0,N)

Exemple 3 :

Participation Cardinalités SignificationsClient - Livrer (0;N) Un client est livré par 0 à N dépôtsDépôt - Livrer (0,N) Un dépôt livre de 0 à N clients

Page 36: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

36

2.3. Le modèle Entité/Association2.3. Le modèle Entité/Association

Définition : Contrainte d'Intégrité Fonctionnelle (CIF)Une cardinalité (1;1) est appelée une Contrainte d'Intégrité Fonctionnelle

Salariés

Numéro salariéNomFonctionRémunération

Service

Numéro serviceNomLocalisation

Travailler dans

1,1 1,N

CIF

A chaque occurrence de « salarié » correspond une, et une seule, occurrence de « travailler dans »

Page 37: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

37

2.3. Construction du schéma E/A2.3. Construction du schéma E/A

Commande

Numéro CommandeDate commande

Produit

Référence produitDésignationPrix unitaire

Client

Numéro ClientNom client

Adresse client

Représentant

Code représentantNom représentant

ComposeQté

Obtient Passer0,N

0,N1,N

1,11,1

0,N

Résultat de l’application des règles 2 et 3 sur l’exemple :

Page 38: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

38

2. Le modèle Entité/Association2. Le modèle Entité/Association

Produits

NumProdDésignation

PrixHT

Etat Stock

NumProdQté Stock

Stock Mini

Stocker

Exercice : Compléter les cardinalités

Atelier

NumAtelNom

Mission

Produit

NumProdDésignation

Stocker

(?,?)1,1 (?,?)1,1

(?,?)0,N (?,?)0,N

Page 39: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

39

2. Le modèle Entité/Association2. Le modèle Entité/Association

Produit

NumProd

Machine

NumMachDésignationMaintenance

Fabrique

Formation

NumFourDésignation

Date

Salarié

NumSalNom

Adresse

Participe

Exercice (suite) :

(?,?)1,N (?,?)1,N

(?,?)0,N (?,?)0,N

Page 40: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

40

2. Le modèle Entité/Association2. Le modèle Entité/Association

Exercice (suite) :

Matière

NumMatLibelléAnnée

Profs

NumProfNom

Spécialité

EnseigneDateSalle

Etudiant

NumEtdNomAge

(?,?)1,N (?,?)1,N

(?,?)1,N

Page 41: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

41

2. Le modèle Entité/Association2. Le modèle Entité/Association

Proposer VinPrix

RESTAURANT

CodeNom

Adresse

VIN

NomRécolteRégion

JOUR

NomOuvrirHoraire

MidiHoraire Soir

COULEUR

Nom

Est

Proposer PlatPrix

PLAT

NomPlaceRepas

Recommander

Accompagner

Guide Gastronomique

Complétez les Cardinalités (?,?)1,N

(?,?)0,N

(?,?)1,N(?,?)0,N

(?,?)0,1

(?,?)0,1

(?,?)0,N

(?,?)0,N

(?,?)1,N (?,?)0,N(?,?)1,1

(?,?)0,N

Page 42: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

42

2. Le modèle Entité/Association2. Le modèle Entité/Association

AVION

NuméroDateRévision

Qualifier

TYPE AVION

TypeCapacité

Rayon Action

PILOTE

NuméroDateRévision

DESC. VOLS

NuméroHoraire

VilleDépartVilleArrivée

Vols

Est un

Compagnie aérienne

a) Complétez les Cardinalités

b) modifiez ce schémapour tenir compte desescales

(?,?)1,1 (?,?)1,N

(?,?)1,N

(?,?)0,N

(?,?)1,1(?,?)0,N

(?,?)0,N

Page 43: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

43

2. Le modèle Entité/Association2. Le modèle Entité/Association

Règle de Gestion :

Une réparation concerne une interventionUne réparation peut concerner plusieurs salariésUne intervention peut nécessiter plusieurs réparationsUn salarié est responsable d’une interventionUn salarié est affecté à un atelier et éventuellement à plusieurs services

Entreprise de Maintenance

Page 44: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

44

2. Le modèle Entité/Association2. Le modèle Entité/Association

Atelier

NumAtelierLibelAtelier

Service

NumServiceNbEmploySpécialité

Client

NumClientNomClientAdresseCliCpClient

VilleClient

Matériel

NumMatNomMatTypeMat

Salarié

NumSalNomSal

AdresseSalCpSal

VilleSalTélSal

Fonction

Réparation

NumRepaCoutRepa

Intervention

NumInterNatureDate

Demande

Responsable

Travaille

Regroupe

Chef de

Utilise

Concerne

EffectueDate

Compose

Entreprise de Maintenance

Complétez lescardinalités

(?,?)1,N

(?,?)1,1

(?,?)0,N

(?,?)1,N

(?,?)0,N(?,?)0,N

(?,?)1,1

(?,?)0,N

(?,?)0,N

(?,?)1,1

(?,?)1,N(?,?)1,1

(?,?)0,N

(?,?)1,N

(?,?)0,N (?,?)1,N

(?,?)0,N

(?,?)0,N

Page 45: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

45

2.4. Le modèle logique des données2.4. Le modèle logique des données

Dictionnaire des données

Etablissement schéma Entité-Association final

Modèle Logique des données

indépendant de l’organisation informatique

des données

Choix d’une organisation(relationnelle)

Page 46: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

46

2.4. Le modèle logique des données2.4. Le modèle logique des données

Le modèle logique des données relationnel (Codd, 1970):

Les données des entités et des associations sont mémorisées dans des relations :

RELATION(Attribut 1, …, Attribut n)

Nom de la relationAttribut identifiant

attribut

Page 47: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

47

2.4. Le modèle logique des données2.4. Le modèle logique des données

schéma Entité/Association

Modèle logique de données relationnel

4 règles de passage

Principe de transformation des entités et des associations :

Page 48: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

48

2.4. Le modèle logique des données2.4. Le modèle logique des données

Règle 1 : Transformation des entités- Toutes les entités deviennent des relations ; - Les identifiants deviennent des clés primaires.

Règle 2 : Transformation des associations binaires (?;1) - (?;N)Placer l'attribut clé de la relation (?;N) dans la relation (?;1), ainsi que tous les attributs de l'association.

Page 49: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

49

2.4. Le modèle logique des données2.4. Le modèle logique des données

Salarié

NumSalNomFonction

Service

NumServSpécialité

RegoupeDateArrivée

(1,N)(1,1)

Exemple d’application des règles 1 et 2 :

Application règle 1 :

SERVICE(NumServ, Spécialité)SALARIE(NumSal,Nom,Fonction, NumServ)

)

Application règle 2 :

Page 50: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

50

2.4. Le modèle logique des données2.4. Le modèle logique des données

Règle 3 : Transformation les associations n-aires (?;N) - (?;N)Transformer l'association en une relation contenant :- les clés primaires des deux entités reliées par l'association les attributs de l'association

Commande

NumCmdeDateCmde

Article

RefArticleLibelléPrixUnitaire

ConcernerQté Cmdée

(0,N)(1,N)

COMMANDE(NumCmde, DateCmde)ARTICLE(RefArticle,Libellé, PrixUnitaire)

Règle 1

CONCERNER(NumCmde,RefArticle,Qté Cmdée) Règle 3

Page 51: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

51

2.4. Le modèle logique des données2.4. Le modèle logique des données

Règle 4 : Transformation des associations réflexivesUne association réflexive, si elle ne correspond pas avec la règle 2, se transforme en une relation avec deux attributs qui sont la duplicationde la clé de l'entité, et toutes les deux renommées. Les attributs de l'association deviennent des attributs de la relation ainsi créée.

Personne

NumPersNomPrénom

Est Parent

(0,N)

(0,N)

PERSONNE(NumPers, Nom, Prénom)ESTPARENT(NumParent,NumEnfant)

Règle 1Règle 4

Parent

Enfant

Page 52: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

52

Tables RelationnellesTables Relationnelles

Illustration : Création d’une table avec Access

Nom Attribut

Domainede l’attribut

Clé

Page 53: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

53

Tables RelationnellesTables Relationnelles

Visualisationdu contenud’unetable Access

Page 54: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

54

Cohérence des donnéesCohérence des données

Représentation des liens avec Access (attention : lien=relation)

Liensdessinésavec la souris

Page 55: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

55

Cohérence des donnéesCohérence des données

Avec Access : double clic sur un lien pour définir les contraintes

Contraintes

Page 56: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

56

Cohérence des donnéesCohérence des données

Contrainte d’entité avec Access : à la création de la table

Null Interdit

Attribut clésélectionné

Page 57: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

57

Cohérence des donnéesCohérence des données

Contrainte de domaine avec Access : à la création de la table

Assertion logiquedéfinissant une contrainte de domaine

Attributsélectionné

Page 58: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

Institut Universitaire de Technologie de Poitiers Institut Universitaire de Technologie de Poitiers Gestion des Entreprises et AdministrationsGestion des Entreprises et Administrations

8, rue des Carmes8, rue des Carmes86000 86000 PoitiersPoitiers

Chap. 3 - Langages de requêtesChap. 3 - Langages de requêtes

2. QBE

3. SQL

4. Les transactions

Page 59: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

59

3. Introduction3. Introduction

Langages de requêtes : partie d ’un SGBD permettant d’interroger une base de

données

Principales Caractéristiques : simplicité : accessible à des non informaticiens complet : doit permettre toutes les interrogations et

manipulation de la base efficace : fournir les résultats dans un temps

raisonnable

Page 60: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

60

3. Introduction3. Introduction

Principaux langages pour les SGBD relationnels SQL : Structured Query Language

QBE : Query By Example

- Ecriture des requêtes sous la forme d’un texte en anglais- la référence dans le domaine

- Support graphique sous la forme de tableau- présentation des requêtes en construisant la relation résultat- moins complet que SQL

Page 61: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

61

3. QBE3. QBE

QBE : Query By Example(Interroger par un exemple)

Formulation de la requête en spécifiant la forme de la réponse

- Formulation graphique (à la souris)

- supporté par ACCESS

Page 62: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

62

3. QBE3. QBE

Ecrire requête QBE

Requêteéquivalente

SQL

Traduction automatique

Exécution

QBE est une sur couche graphique à SQL

Relationrésultat

SGBD avec QBEVu par l’utilisateur

Page 63: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

63

3. QBE3. QBE

Relations utilisées(FROM)

Attributs durésultat (SELECT)

Attributs avecune condition(WHERE)

SELECT Nom,Prénom FROM Client WHERE NumClient<100

Page 64: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

64

3. QBE3. QBE

Expression des jointures :

Jointure entre lestables Clientet Facture

Page 65: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

65

3. SQL3. SQL

SQL : Structured Query Language

Langage Normalisé : supporté par de nombreux SGBD

Normes 1989 et 1992

Access supporte partiellement ces deux normes

Page 66: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

66

3. Éléments de base3. Éléments de base

Les valeurs logiques peuvent prendre trois états différents :

- VRAI (TRUE)- FAUX (FALSE)- INCONNUE (NULL)

AND VRAI FAUX NULLVRAI VRAI FAUX NULLFAUX FAUX FAUX FAUXNULL NULL FAUX NULL

Incidence sur les tables de vérité

Exemple : l’opérateur ET logique

Page 67: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

67

3. Éléments de base3. Éléments de base

OR VRAI FAUX NULLVRAI VRAI VRAI VRAIFAUX VRAI FAUX NULLNULL VRAI NULL NULL

Opérateur OU logique :

Opérateur Complémentation :

NOT VRAI FAUX NULLFAUX VRAI NULL

(Opérateurs logiques ...suite)

Page 68: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

68

3. Éléments de base3. Éléments de base

Types de requêtes SQL :

- Recherche de données : clause SELECT...FROM...WHERE

- modification de données : clause UPDATE

- Ajout de données : clause INSERT

- ...

Page 69: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

69

3. Recherche de données3. Recherche de données

Requête de recherche de données :

- Manipule des tables ou des relations (résultats d’autres requêtes)

- résultat : relation

Table Relation

Enregistrement permanentdans la base de données

Enregistrement temporaire

Page 70: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

70

3. Recherche de données3. Recherche de données

Structure générale d’une requête de recherche de données :

Exemple :

SELECT NOMCLIENTFROM FACTURE

NOMCLIENTMr RobertMr Marcel...

Exécution

Texte de la Requête Relation résultat

Page 71: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

71

3. Recherche de données3. Recherche de données

• Sélectionner tous les attributs des relations utilisées dans la clauseFROM

SELECT *

• Sélectionner tous les attributs d’une relation de la clause FROM

SELECT NomRelation.*

• Sélectionner un attribut d’une relation de la clause FROM

SELECT NomRelation.NomAttribut

Page 72: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

72

3. Recherche de données3. Recherche de données

SELECT Relation.Attribut....

Relation.Attribut

Renommer le nom d’un colonne du résultat (clause AS) :

SELECT Relation.Attribut AS MonAttribut....

MonAttribut

Page 73: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

73

3. Recherche de données3. Recherche de données

A) PROJECTION (éliminer des colonnes du résultat)

SELECT <liste des attributs à présenter dans la relation résultat>FROM <Nom de la relation utilisée>

Exemple :

en SQL : SELECT Nom,CouleurFROM PeintureVoiture

Page 74: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

74

3. Recherche de données3. Recherche de données

B) SELECTION (éliminer des lignes du résultat)

SELECT *FROM <Nom de la relation>WHERE <conditions>

Exemple :

SELECT *FROM CouleurVoitureWHERE Moteur="Essence"

SQL

Page 75: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

75

3. Recherche de données3. Recherche de données

B1) SELECTION dans un texte

"*cice" mot se terminant par "cice"."exer* " mot commençant par "exer""ex*ce" mot débutant par "ex" et se terminant par "ce".

Recherche du type :

Utilisation de la clause LIKE (comme)

SELECT NomClientFROM ClientWHERE NomClient LIKE "DUR*"

Page 76: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

76

3. Recherche de données3. Recherche de données

B2) SELECTION dans une liste

Vérifier l’appartenance à un mot d’une liste : Clause IN

Exemple :

WHERE Attribut IN ( <liste de valeurs>)

SELECT Modele,Moteur,CouleurFROM VoitureWHERE Couleur IN ("Verte","Grise")

Page 77: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

77

3. Recherche de données3. Recherche de données

B3) SELECTION dans un intervalle

Vérifier l’appartenance à un intervalle de valeurs: Clause BETWEEN

WHERE attribut BETWEEN val_debut AND Val_fin

Exemple :

SELECT NomClient, MontantFROM ClientWHERE Montant BETWEEN 10 AND 1000

Page 78: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

78

3. Recherche de données3. Recherche de données

C) Produit Cartésien

SQL SELECT *FROM Voiture,OptionPeinture

SELECT *FROM R1,R2,....,Rn

Produit cartésien : R1R2 ... Rn

Exemple :

Page 79: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

79

3. Recherche de données3. Recherche de données

D) Jointure

C’est une sélection sur le produit cartésien :

SELECT *FROM R1,R2WHERE <condition rapprochement R1.Attribut = R2.attribut>

Exemple :

SELECT *FROM Fournisseur,HistoriqueWHERE Fournisseur.Four=Historique.Four

Page 80: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

80

3. Recherche de données3. Recherche de données

La norme SQL2 (1992) apporte une nouvelle formulation

SELECT *FROM R1 INNER JOIN R2 ON R1.attribut=R2.Attribut

Les jointures sont exprimées dans la clause FROM

SELECT *FROM Fournisseur INNER JOIN Historique ON Fournisseur.Four=Historique.Four

Exemple précédent :

Page 81: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

81

3. Recherche de données3. Recherche de données

E) Requête d’UNION de deux relations

SELECT … FROM … WHEREUNIONSELECT … FROM … WHERE

Formulation générale d’une requête UNION :

SELECT * FROM Client1UNIONSELECT * FROM Client2

SQL

Page 82: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

82

3. Recherche de données3. Recherche de données

F) Trier les lignes du résultat

Clause ORDER BY <liste ordonnée attributs > [ASC;DESC]

Ordre croissantOrdre décroissant

SELECT ...FROM ...WHERE ...ORDER BY .... [ASC;DESC]

Extension de la clause select from where :

Page 83: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

83

3. Recherche de données3. Recherche de données

Exemple : liste des noms des clients par ordre alphabétique

SELECT Nom,PrénomFROM ClientORDER BY Nom,Prénom ASC

Exemple : même question dans l’ordre inverse

SELECT Nom,PrénomFROM ClientORDER BY Nom,Prénom DESC

Page 84: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

84

3. Recherche de données3. Recherche de données

Exemples de requêtes :

Modèle relationnel et contrainte d’intégrité référentielle:

Client(numcli,nom,prenom,rue,CodePostal,Ville)

Facture(numfac,numcli,montant,date)

Requête : Liste des clients (Nom,Prenom)

SELECT nom,prenomFROM Client

Page 85: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

85

3. Recherche de données3. Recherche de données

Liste de numéro des montants des factures du client DUPONT :

SELECT numfac,montantFROM FACTURE,CLIENTWHERE FACTURE.numcli=CLIENT.numcli

Autre formulation (SQL2-1992) :

SELECT numfac,montantFROM FACTURE INNER JOIN CLIENT ON FACTURE.numcli=CLIENT.numcli

Page 86: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

86

3. Recherche de données3. Recherche de données

Liste des factures d’un montant supérieur à 20000F

SELECT *FROM FactureWHERE montant > 20000

Même question avec les noms des clients dans la liste résultat :

SELECT Client.nom, Facture.*FROM Facture INNER JOIN Client ON Client.numcli=Facture.numcliWHERE montant > 20000

Page 87: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

87

3. Recherche de données3. Recherche de données

Même question pour les clients de la vienne et par ordre alphabétique

SELECT Client.nom, Facture.*FROM Facture INNER JOIN Client ON Client.numcli=Facture.numcliWHERE montant > 20000 AND CodePostal LIKE "86* »ORDER BY Client.nom ASC

Page 88: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

88

3. Fonctions et agrégats3. Fonctions et agrégats

Dans ce qui précède Select From Where... permet :

- Extraction de données

- mais pas de calculs

Deux types de calculs sont envisageables :

- en ligne : utilisation de fonctions pour créer des colonnes

- en colonne : agrégats pour regrouper des lignes et faire des calculs

Page 89: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

89

3. Fonctions et agrégats3. Fonctions et agrégats

A) Fonctions (calculs en ligne)

Exemple :

MONTANT_TTC=MONTANT_HT 20.6

Colonnes existantesNouvelle colonne liée au calcul

Solution SQL :

SELECT MONTANT_HT*TVA AS MONTANT_TTC FROM ...

Constante

Page 90: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

90

3. Fonctions et agrégats3. Fonctions et agrégats

Exemple : Compléter la relation en calculant le montant TTC

Facture(numfac,numcli,montant_ht)

Solution :

SELECT *, montant_ht*20.6 AS montant_ttcFROM Facture

Page 91: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

91

3. Fonctions et agrégats3. Fonctions et agrégats

B) Agrégats (calculs en colonne)

Agrégats : Ensemble d’attributs d’une relation, utilisé pour

regrouper des enregistrements durant des calculs sur les colonnes

n’appartenant pas à cet ensemble.

Exemple : calcul de la somme des montants des factures par client

Regroupement client 1

Regroupement client 2

Facture ... Numcli Montant 1 10001 20002 4000

Page 92: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

92

3. Fonctions et agrégats3. Fonctions et agrégats

Facture Numcli Montant 1 30002 4000

Après regroupement par numéro de client et cumul des montants

Il faut donc préciser dans la requête SQL :

- les attributs utilisés pour le regroupement (agrégats)

- les opérations utilisés

Page 93: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

93

3. Fonctions et agrégats3. Fonctions et agrégats

Préciser les agrégats : clause GROUP BY

SELECT A1,A2,A3,fonctions de calculFROM ....GROUP BY A1,A2,A3

Listes identiques d’attributs

Page 94: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

94

3. Fonctions et agrégats3. Fonctions et agrégats

Les fonctions de calculs sur les attributs non agrégats:

Descriptif SQL

SOMME(Attribut) SUM (Attribut)MOYENNE(Attribut)  AVG (Attribut)MNIMUM(Attribut) MIN(Attribut)MAXIMUM(Attribut)  MAX(Attribut)COMPTE  COUNT(*)

Exemple :

SELECT numcli,SUM(Montant)FROM FactureGROUP BY numcli

Page 95: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

95

3. Fonctions et agrégats3. Fonctions et agrégats

a) sélection avant regroupement (clause Where)

b) sélection après regroupement (clause Having)

SELECT ...FROM ...WHERE <sélection avant regroupement>GROUP BY ...

SELECT ...FROM ... GROUP BY ...HAVING <sélection après regroupement>

Page 96: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

96

3. Fonctions et agrégats3. Fonctions et agrégats

SELECT numcli,SUM(Montant)FROM FactureWHERE montant>2000GROUP BY numcli

Exemples : a) clients avec cumuls des factures de plus de 2000 F

b) clients avec un cumul de facture de plus de 100000F

SELECT numcli,SUM(Montant)FROM FactureGROUP BY numcliHAVING SUM(Montant)>100000

Page 97: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

97

3. Synthèse sur SELECT FROM WHERE3. Synthèse sur SELECT FROM WHERE

SELECT <liste d’attributs>,fonctionsFROM relations et jointure INNER JOIN ... ON condition rapprochementWHERE <sélection avant regroupement>GROUP BY <attributs agrégats>HAVING <sélection après regroupement>ORDER BY <attributs pour le tri>

La clause SELECT permet de tout combiner !

C’est très puissant - mais il faut réfléchir

Page 98: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

98

3. Synthèse sur SELECT FROM WHERE3. Synthèse sur SELECT FROM WHERE

Enregistrement de la relation résultat dans une nouvelle table(si elle existe déjà elle sera effacée !)

SELECT <liste d’attributs>,fonctions INTO NomTableFROM relations et jointure INNER JOIN ... ON condition rapprochementWHERE <sélection avant regroupement>GROUP BY <attributs agrégats>HAVING <sélection après regroupement>ORDER BY <attributs pour le tri> À ajouter à la

fin du SELECT

Page 99: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

99

3. Les sous-requêtes3. Les sous-requêtes

SQL autorise l’imbrication des requêtes SELECT

- après un comparateur =,<,>,>=,<=- dans une expression IN

- dans une expression EXISTS

Avoir des écritures très concises pour traiter des requêtes complexes.

Intérêt :

La sous-requête est unerelation avec une colonne(liste de valeurs possibles)

Sous-requête quelconque

Page 100: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

100

3. Les sous-requêtes3. Les sous-requêtes

a) Sous-requête après un comparateur

La clause WHERE s’écrit alors de la façon suivante :

Comparateur (< requête SELECT … FROM … WHERE > )

Exemple :requête qui retourne de le nom d'un produit et son prix, parmi les produits ayant un prix de produit du Marché numéro 1

SELECT NomProduit, Prix FROM ProduitsWHERE Prix = (SELECT PrixUnitaire FROM Produit WHERE NumMarche = 1) 

Sous-requête

Page 101: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

101

3. Les sous-requêtes3. Les sous-requêtes

b) Sous-requête après l'instruction IN

La clause WHERE s'écrit de la façon suivante:

IN (< requête SELECT … FROM … WHERE > )

Exemple : recherche les produits dont les couleurs appartiennent à la relation NouvelleCouleur et sont du type 'Nacré'.

SELECT NumProduit, NomProduit FROM ProduitWHERE Couleur IN (SELECT Couleur FROM NouvelleCouleur WHERE TypeCouleur='Nacré')

Page 102: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

102

3. Les sous-requêtes3. Les sous-requêtes

c) Sous-requête après l'instruction EXISTS

But : Tester l’existence (on non) d’enregistrements dans le résultat de la sous-requête

WHERE [NOT] EXISTS (< requête SELECT … FROM … WHERE > )

Remarques

• Le NOT permet de tester l’inexistence• Il doit exister une jointure entre les relations de la requête principal et la sous-requête

Page 103: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

103

3. Les sous-requêtes3. Les sous-requêtes

Exemple : la liste des vendeurs de l'entreprise n'ayant pas passé des commandes.

SELECT Prénom, Nom FROM VendeurWHERE NOT EXISTS (SELECT NumCmde FROM CommandesWHERE Commandes.NumVendeur= Vendeur.NumVendeur)

Liens entre les deux requêtes

Page 104: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

104

3. Sous-requêtes3. Sous-requêtes

Sous-Requête et Jointure :

SELECT R1.* FROM R1,R2WHERE R1.a=R2.b

Jointure

SELECT R1.* FROM R1WHERE EXISTS (SELECT * FROM R2 WHERE R1.a=R2.b)

Sous-Requête

Ces deux requêtes ont le même résultat

Page 105: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

105

3. Jointures externes3. Jointures externes

Dans une jointure classique :

- tous les enregistrements ne vérifiant pas la condition derapprochement ne sont pas dans la relation résultat.

• Une jointure externe va permettre de conserver tout ou partie de ces informations. Les informations manquantes seront représentées par la valeur NULL

• Lorsque la condition de rapprochement est vérifiée, l’opérationest identique à la jointure classique

Page 106: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

106

3. Jointures externes3. Jointures externes

RESULTAT- -JOINTURE EXTERNEFour Société Adresse Facture Four Montant Date1 Soc 1 Adr 1 1 1 2000 F 20/10/982 Soc 2 Adr 2 2 2 1000 F 20/10/983 Soc 3 Adr 3 NULL NULL NULL NULL4 Soc 4 Adr 4 NULL NULL NULL NULL

FournisseurFour Société Adresse1 Soc 1 Adr 12 Soc 2 Adr 23 Soc 3 Adr 34 Soc 4 Adr 4

HistoriqueFacture Four Montant Date1 1 2000 F 20/10/982 2 1000 F 20/10/98

Fournisseur.Four = Historique.FourLa condition de rapprochement

est vérifiée pour chaque couple d’enregistrements des deux relations

Page 107: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

107

3. Jointures externes3. Jointures externes

• jointure externe à gauche :

Syntaxe dans la clause FROM :

Relation1 LEFT JOIN Relation2 ON condition_rapprochement

Résultat :

les enregistrements de Relation1 sans correspondance dans Relation2sont conservés

Page 108: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

108

3. Jointures externes3. Jointures externes

• Exemple de jointure externe à gauche :

Table1 Table 2NumFacture Fournisseur Montant NumFour NomFour1 1 1000 1 TotoSA2 2 5000

Select * From Table1 LEFT JOIN Table 2 ON Fournisseur=NumFour

NumFacture Fournisseur Montant NumFour NomFour1 1 1000 1 TotoSA2 2 5000 NULL NULL

Page 109: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

109

3. Jointures externes3. Jointures externes

• jointure externe à droite :

Syntaxe dans la clause FROM :

Relation1 RIGHT JOIN Relation2 ON condition_rapprochement

Résultat :

les enregistrements de Relation2 sans correspondance dans Relation1sont conservés

Page 110: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

110

3. Jointures externes3. Jointures externes

• Exemple de jointure externe à gauche :

Table1 Table2NumFacture Fournisseur Montant NumFour NomFour1 1 1000 1 TotoSA2 2 5000

Select * From Table2 RIGHT JOIN Table1 ON Fournisseur=NumFour

NumFour NomFour NumFacture Fournisseur Montant 1 TotoSA 1 1 1000NULL NULL 2 2 5000

Page 111: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

111

3. Jointures externes3. Jointures externes

• Tester la valeur NULL dans une relation :

Clause IS NULL ou bien IS NOT NULL dans la clause WHERE

Exemple : trouver les factures sans fournisseur

SELECT Table1.* FROM Table1 LEFT JOIN Table2 ON Fournisseur=NumFourWHERE Table2.NumFour IS NULL

Page 112: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

112

3. Jointures externes3. Jointures externes

Jointure externe avec ACCESS :

Dans l’assistant double-clic sur la jointure

LEFTJOIN

RIGHTJOIN

Page 113: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

113

3. Requête INSERT3. Requête INSERT

Insertion d’enregistrement dans une table : clause INSERT

L ’exécution de la requête va insérer des enregistrements depuis :

• le résultat d’une requête SELECT...FROM...WHERE

• la liste des valeurs d’un enregistrement

Page 114: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

114

3. Requête INSERT3. Requête INSERT

Insertion depuis la liste des valeurs des attributs :

INSERT INTO <nom de la table>(<Attribut1,…, Attribut n)VALUES (Attribut1,…, Attribut n)

Eventuellement sous-ensemble des attributs de la table

Même ordre dans leslistes des attributs

Page 115: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

115

3. Requête INSERT3. Requête INSERT

Exemple :

Avant

Client Nom Prénom Adr

A a 1 B b 2

Client Nom Prénom Adr

Après

INSERT INTO Client (Nom,Prénom,Adr)VALUES (C,c,3)

A a 1 B b 2

C c 3

Page 116: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

116

3. Requête INSERT3. Requête INSERT

Insertion depuis une requête SELECT :

INSERT INTO <nom de la relation R1>SELECT <liste des attributs renommés comme dans la relation R1>FROM <liste des relations utilisées>WHERE <conditions>

Exemple : insertion des nouveaux clients

INSERT INTO Clients SELECT * FROM ClientsNouveaux 

Page 117: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

117

3. Requête UPDATE3. Requête UPDATE

Requête de mise-à-jour (modification) d’enregistrements

UPDATE <nom de la relation>SET <Attribut> = <expression>WHERE <condition>

Exemple : augmentation de 15% des produits de luxe et baisse de500 F des coûts d’expédition

UPDATE ProduitSET PrixVente = PrixVente * 1.15 , Expedition=Expedition-500WHERE TypeProduit = 'LUXE';

Page 118: INFORMATIQUE  IUT G.E.A. ¨Deuxième Année¨

118

3. Requête DELETE3. Requête DELETE

Suppression d’enregistrements dans une table

DELETE FROM <nom de la table>WHERE <condition de recherche>

Exemple : Suppression des factures antérieures à 1990

DELETE FROM HistoriqueFactureWHERE Annee<1990