La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "INFORMATIQUE IUT G.E.A. ¨Deuxième Année¨"— Transcription de la présentation:

1 INFORMATIQUE IUT G.E.A. ¨Deuxième Année¨
Jean louis Martineau

2 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

3 Plan du cours Chap. 1- introduction

4 1. 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

5 1. Organisation Systémique
Le système d’informations : Ensemble des informations utiles à la vie de l’entreprise Partie la moins visible, mais la plus fondamentale Interface entre le système de gestion et le système opérant

6 1. Organisation Systémique
Système de gestion Informations traitées Informations de décision Système d'information Informations externes Informations vers l'extérieur Informations de représentation Informations d'interactions règlements des fournisseurs règlements des clients Système opérant Produits achetés Produits vendus

7 Chap. 2 - Conception d’un système d’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

8 Objectif 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

9 2. Méthode de construction du modè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 Des erreurs dans le modèle 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

10 2. Méthode de construction du modè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

11 2.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

12 2.1. Le dictionnaire des données
Exemple de dictionnaire des données R1 est une règle de gestion permettant de calculer l’attribut MONTTTC depuis d’autres données contenues dans le dictionnaire

13 2.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 un prix NumSecu NomAssuré Par contre l’inverse n’est pas vrai car des personnes homonymes n’ont pas le même numéro de sécu. Pdt Prix Par contre l’inverse n’est pas vrai car plusieurs produits peuvent avoir le même prix

14 2.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é

15 2.2. Les dépendances fonctionnelles
Notation : Soient A,B et C des attributs A B On peut écrire de façon équivalente A B,C A C Exemple : NuméroClient NomClient, PrénomClient Les dépendances fonctionnelles portent sur des ensembles d’attributs

16 2.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

17 2.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 client Nom client Date commande Code représentant Nom représentant

18 2.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 client Nom client Date commande Code représentant Nom représentant

19 2.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.

20 2.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 produit Désignation Prix unitaire Client Numéro Client Nom client Adresse client Représentant Code représentant Nom représentant Qté

21 2.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.

22 2.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 Attributs : Nom Qté, Désignation Montant Date « Définition des informations » Format d’une facture « occurrences d’une entité » liste des factures (valeurs)

23 2.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 n Attribut 1 Attribut m Représentation graphique d’une entité dans le modèle E/A

24 2.3. Le modèle Entité/Association
Exemple d’entité : Un fournisseur Attributs : liste des informations utiles à la gestion d’un fournisseur Fournisseur Numéro Nom Fournisseur Adresse Fournisseur Nom Contact Numéro Téléphone Numéro Fax Adresse Attribut identifiant : Numéro - code créé par l’entreprise - détermine un et un seul fournisseur

25 2.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é Nom Fonction Rémunération Service Numéro service Localisation Affectation

26 2.3. Le modèle Entité/Association
Exemple (suite) Affectation d’un salarié dans un service : Problème : action dépendant de deux entités : - salarié - service La notion d’association va permettre de représenter les dépendances entre les entités

27 2.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 Association Attribut 1 Attribut m Nom Association Représentation graphique des associations

28 2.3 Le modèle Entité/Association
Exemple : Salariés Numéro salarié Nom Fonction Rémunération Service Numéro service Localisation Travaille dans Participation de l’entité à l’association L'identifiant d'une association est implicitement constitué par tous les identifiants des entités qui participent à l'association.

29 2.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. Participation Autorisée Nom Entité 1 Identifiant 1 Attribut 1.1 Attribut 1.m Nom Entité 2 Identifiant 2 Attribut 2.1 Attribut 2.m Nom Association Nom Association Participations interdites

30 2.3. Le modèle Entité/Association
Exemple (suite) : modélisation de la hiérarchie entre salariés Salariés Numéro salarié Nom Fonction Rémunération Service Numéro service Localisation Travailler dans Hiérarchique de Est dirigé par Est le chef de Rôle de la participation: explication pour lever les ambiguïtés

31 2.3. Le modèle Entité/Association
Permet Permet pas de représenter le lien entre les entités Connaître le nombre d’occurrences concernées par l’association Une association Solution : indiquer le nombre d’occurrences de l’association concernées par la participation Les cardinalités

32 2.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,Max Représentation graphique

33 2.3. Le modèle Entité/Association
Exemple : commande de produits par des clients 0,N Combien de commandes au minimum peut faire un client donné : 0 Combien de commandes au maximum peut faire un client donné : N Client Numéro Nom Adresse Produit Référence Désignation Prix unitaire  HT Commander Qté 0,N Combien de commandes au minimum peut contenir un produit donné : 0 Combien de commandes au maximum peut contenir un produit donné : N

34 2.3. Le modèle Entité/Association
Exemple 2: Salariés Numéro salarié Nom Fonction Rémunération Encadre Est dirigé par Est le chef de (0,1) (0,N) Explications des cardinalités dans un tableau séparé du modèle E/A

35 2.3. Le modèle Entité/Association
Exemple 3 : Client NumClient Nom Adresse Dépôt NumDépôt Livrer Nb colis (0,N)

36 2.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 CIF Salariés Numéro salarié Nom Fonction Rémunération Service Numéro service Nom Localisation 1,1 Travailler dans 1,N A chaque occurrence de « salarié » correspond une, et une seule, occurrence de « travailler dans »

37 2.3. Construction du schéma E/A
Résultat de l’application des règles 2 et 3 sur l’exemple : Commande Numéro Commande Date commande Produit Référence produit Désignation Prix unitaire Client Numéro Client Nom client Adresse client Représentant Code représentant Nom représentant Compose Qté Obtient Passer 0,N 1,N 1,1

38 2. Le modèle Entité/Association
Exercice : Compléter les cardinalités Produits NumProd Désignation PrixHT Etat Stock Qté Stock Stock Mini Stocker (?,?) 1,1 (?,?) 1,1 Atelier NumAtel Nom Mission Produit NumProd Désignation Stocker (?,?) 0,N (?,?) 0,N

39 2. Le modèle Entité/Association
Exercice (suite) : Produit NumProd Machine NumMach Désignation Maintenance Fabrique (?,?) 1,N (?,?) 1,N Formation NumFour Désignation Date Salarié NumSal Nom Adresse Participe (?,?) 0,N (?,?) 0,N

40 2. Le modèle Entité/Association
Exercice (suite) : Matière NumMat Libellé Année Profs NumProf Nom Spécialité (?,?) 1,N Enseigne Date Salle (?,?) 1,N (?,?) 1,N Etudiant NumEtd Nom Age

41 2. Le modèle Entité/Association
Guide Gastronomique (?,?) Proposer Vin Prix RESTAURANT Code Nom Adresse VIN Récolte Région JOUR Ouvrir Horaire Midi Horaire Soir COULEUR Est Proposer Plat PLAT PlaceRepas Recommander Accompagner 0,N (?,?) 0,N Complétez les Cardinalités (?,?) 1,N (?,?) 1,1 1,N (?,?) (?,?) 0,N (?,?) 0,N (?,?) 1,N 0,1 (?,?) (?,?) 0,N (?,?) 0,N (?,?) 0,1

42 2. Le modèle Entité/Association
Compagnie aérienne AVION Numéro DateRévision Qualifier TYPE AVION Type Capacité Rayon Action PILOTE DESC. VOLS Horaire VilleDépart VilleArrivée Vols Est un (?,?) 1,1 (?,?) 1,N a) Complétez les Cardinalités b) modifiez ce schéma pour tenir compte des escales (?,?) 0,N (?,?) 0,N (?,?) 1,1 (?,?) 1,N (?,?) 0,N

43 2. Le modèle Entité/Association
Entreprise de Maintenance Règle de Gestion : Une réparation concerne une intervention Une réparation peut concerner plusieurs salariés Une intervention peut nécessiter plusieurs réparations Un salarié est responsable d’une intervention Un salarié est affecté à un atelier et éventuellement à plusieurs services

44 2. Le modèle Entité/Association
Entreprise de Maintenance Atelier NumAtelier LibelAtelier Service NumService NbEmploy Spécialité Client NumClient NomClient AdresseCli CpClient VilleClient Matériel NumMat NomMat TypeMat Salarié NumSal NomSal AdresseSal CpSal VilleSal TélSal Fonction Réparation NumRepa CoutRepa Intervention NumInter Nature Date Demande Responsable Travaille Regroupe Chef de Utilise Concerne Effectue Compose (?,?) 1,N (?,?) (?,?) 1,N 1,1 Complétez les cardinalités (?,?) 0,N (?,?) 0,N (?,?) 0,N 0,N (?,?) (?,?) 0,N (?,?) 0,N 0,N (?,?) 0,N (?,?) (?,?) 1,N (?,?) 0,N (?,?) 1,1 (?,?) 1,N (?,?) 1,1 (?,?) 1,1 1,N (?,?)

45 2.4. Le modèle logique des données
Dictionnaire des données indépendant de l’organisation informatique des données Etablissement schéma Entité-Association final Choix d’une organisation (relationnelle) Modèle Logique des données

46 2.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) attribut Nom de la relation Attribut identifiant

47 2.4. Le modèle logique des données
Principe de transformation des entités et des associations : schéma Entité/Association 4 règles de passage Modèle logique de données relationnel

48 2.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.

49 2.4. Le modèle logique des données
Exemple d’application des règles 1 et 2 : Salarié NumSal Nom Fonction Service NumServ Spécialité Application règle 2 : Regoupe DateArrivée (1,1) (1,N) Application règle 1 : SERVICE(NumServ, Spécialité) SALARIE(NumSal,Nom,Fonction, NumServ) )

50 2.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 NumCmde DateCmde Article RefArticle Libellé PrixUnitaire Concerner Qté 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

51 2.4. Le modèle logique des données
Règle 4 : Transformation des associations réflexives Une association réflexive, si elle ne correspond pas avec la règle 2, se transforme en une relation avec deux attributs qui sont la duplication de 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. Parent Personne NumPers Nom Prénom (0,N) Est Parent (0,N) Enfant PERSONNE(NumPers, Nom, Prénom) ESTPARENT(NumParent,NumEnfant) Règle 1 Règle 4

52 Tables Relationnelles
Illustration : Création d’une table avec Access Nom Attribut Clé Domaine de l’attribut

53 Tables Relationnelles
Visualisation du contenu d’une table Access

54 Cohérence des données Représentation des liens avec Access (attention : lien=relation) Liens dessinés avec la souris

55 Cohérence des données Avec Access : double clic sur un lien pour définir les contraintes Contraintes

56 Cohérence des données Contrainte d’entité avec Access : à la création de la table Attribut clé sélectionné Null Interdit

57 Cohérence des données Contrainte de domaine avec Access : à la création de la table Attribut sélectionné Assertion logique définissant une contrainte de domaine

58 Chap. 3 - Langages de requêtes
2. QBE 3. SQL 4. Les transactions

59 Principales Caractéristiques :
3. 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

60 Principaux langages pour les SGBD relationnels
3. 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

61 3. 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

62 3. QBE QBE est une sur couche graphique à SQL Requête équivalente SQL
Ecrire requête QBE Traduction automatique Exécution Relation résultat Vu par l’utilisateur SGBD avec QBE

63 3. QBE Relations utilisées (FROM) Attributs du résultat (SELECT)
Attributs avec une condition (WHERE) SELECT Nom,Prénom FROM Client WHERE NumClient<100

64 3. QBE Expression des jointures : Jointure entre les tables Client
et Facture

65 3. SQL SQL : Structured Query Language
Langage Normalisé : supporté par de nombreux SGBD Normes 1989 et 1992 Access supporte partiellement ces deux normes

66 3. Éléments de base Les valeurs logiques peuvent prendre trois états différents : - VRAI (TRUE) - FAUX (FALSE) - INCONNUE (NULL) Incidence sur les tables de vérité Exemple : l’opérateur ET logique

67 3. Éléments de base (Opérateurs logiques ...suite)
Opérateur OU logique : Opérateur Complémentation :

68 3. É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 - ...

69 3. 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 permanent dans la base de données Enregistrement temporaire

70 3. Recherche de données Structure générale d’une requête de recherche de données : Exemple : NOMCLIENT Mr Robert Mr Marcel ... Exécution SELECT NOMCLIENT FROM FACTURE Texte de la Requête Relation résultat

71 3. Recherche de données Sélectionner un attribut d’une relation de la clause FROM SELECT NomRelation.NomAttribut Sélectionner tous les attributs d’une relation de la clause FROM SELECT NomRelation.* Sélectionner tous les attributs des relations utilisées dans la clause FROM SELECT *

72 3. Recherche de données SELECT Relation.Attribut Relation.Attribut
.... Relation.Attribut Renommer le nom d’un colonne du résultat (clause AS) : SELECT Relation.Attribut AS MonAttribut .... MonAttribut

73 3. 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,Couleur FROM PeintureVoiture

74 3. Recherche de données B) SELECTION (éliminer des lignes du résultat)
FROM <Nom de la relation> WHERE <conditions> Exemple : SELECT * FROM CouleurVoiture WHERE Moteur="Essence" SQL

75 3. Recherche de données B1) SELECTION dans un texte
Recherche du type : "*cice" mot se terminant par "cice". "exer* " mot commençant par "exer" "ex*ce" mot débutant par "ex" et se terminant par "ce". Utilisation de la clause LIKE (comme) SELECT NomClient FROM Client WHERE NomClient LIKE "DUR*"

76 3. Recherche de données B2) SELECTION dans une liste
Vérifier l’appartenance à un mot d’une liste : Clause IN WHERE Attribut IN ( <liste de valeurs>) Exemple : SELECT Modele,Moteur,Couleur FROM Voiture WHERE Couleur IN ("Verte","Grise")

77 3. 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, Montant FROM Client WHERE Montant BETWEEN 10 AND 1000

78 3. Recherche de données C) Produit Cartésien
Produit cartésien : R1R2 ... Rn SELECT * FROM R1,R2,....,Rn Exemple : SQL SELECT * FROM Voiture,OptionPeinture

79 3. Recherche de données D) Jointure
C’est une sélection sur le produit cartésien : SELECT * FROM R1,R2 WHERE <condition rapprochement R1.Attribut = R2.attribut> Exemple : SELECT * FROM Fournisseur,Historique WHERE Fournisseur.Four=Historique.Four

80 3. Recherche de données La norme SQL2 (1992) apporte une nouvelle formulation Les jointures sont exprimées dans la clause FROM SELECT * FROM R1 INNER JOIN R2 ON R1.attribut=R2.Attribut Exemple précédent : SELECT * FROM Fournisseur INNER JOIN Historique ON Fournisseur.Four=Historique.Four

81 3. Recherche de données E) Requête d’UNION de deux relations
SELECT * FROM Client1 UNION SELECT * FROM Client2 SQL Formulation générale d’une requête UNION : SELECT … FROM … WHERE UNION

82 3. Recherche de données F) Trier les lignes du résultat
Clause ORDER BY <liste ordonnée attributs > [ASC;DESC] Ordre croissant Ordre décroissant Extension de la clause select from where : SELECT ... FROM ... WHERE ... ORDER BY .... [ASC;DESC]

83 3. Recherche de données Exemple : liste des noms des clients par ordre alphabétique SELECT Nom,Prénom FROM Client ORDER BY Nom,Prénom ASC Exemple : même question dans l’ordre inverse SELECT Nom,Prénom FROM Client ORDER BY Nom,Prénom DESC

84 3. 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,prenom FROM Client

85 3. Recherche de données Liste de numéro des montants des factures du client DUPONT : SELECT numfac,montant FROM FACTURE,CLIENT WHERE FACTURE.numcli=CLIENT.numcli Autre formulation (SQL2-1992) : SELECT numfac,montant FROM FACTURE INNER JOIN CLIENT ON FACTURE.numcli=CLIENT.numcli

86 3. Recherche de données Liste des factures d’un montant supérieur à 20000F SELECT * FROM Facture WHERE 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.numcli WHERE montant > 20000

87 3. 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.numcli WHERE montant > AND CodePostal LIKE "86* » ORDER BY Client.nom ASC

88 3. 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

89 3. Fonctions et agrégats A) Fonctions (calculs en ligne) Exemple :
MONTANT_TTC=MONTANT_HT  20.6 Constante Colonnes existantes Nouvelle colonne liée au calcul Solution SQL : SELECT MONTANT_HT*TVA AS MONTANT_TTC FROM ...

90 3. 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_ttc FROM Facture

91 3. 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 Facture ... Numcli Montant Regroupement client 1 Regroupement client 2

92 3. Fonctions et agrégats Après regroupement par numéro de client et cumul des montants Facture Numcli Montant Il faut donc préciser dans la requête SQL : - les attributs utilisés pour le regroupement (agrégats) - les opérations utilisés

93 3. Fonctions et agrégats Préciser les agrégats : clause GROUP BY
SELECT A1,A2,A3,fonctions de calcul FROM .... GROUP BY A1,A2,A3 Listes identiques d’attributs

94 3. 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 Facture GROUP BY numcli

95 3. 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>

96 3. Fonctions et agrégats Exemples :
a) clients avec cumuls des factures de plus de 2000 F SELECT numcli,SUM(Montant) FROM Facture WHERE montant>2000 GROUP BY numcli b) clients avec un cumul de facture de plus de F SELECT numcli,SUM(Montant) FROM Facture GROUP BY numcli HAVING SUM(Montant)>100000

97 3. Synthèse sur SELECT FROM WHERE
La clause SELECT permet de tout combiner ! SELECT <liste d’attributs>,fonctions FROM relations et jointure INNER JOIN ... ON condition rapprochement WHERE <sélection avant regroupement> GROUP BY <attributs agrégats> HAVING <sélection après regroupement> ORDER BY <attributs pour le tri> C’est très puissant - mais il faut réfléchir

98 3. 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 NomTable FROM relations et jointure INNER JOIN ... ON condition rapprochement WHERE <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

99 3. Les sous-requêtes SQL autorise l’imbrication des requêtes SELECT
après un comparateur =,<,>,>=,<= dans une expression IN dans une expression EXISTS La sous-requête est une relation avec une colonne (liste de valeurs possibles) Sous-requête quelconque Intérêt : Avoir des écritures très concises pour traiter des requêtes complexes.

100 3. 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 Sous-requête SELECT NomProduit, Prix FROM Produits WHERE Prix = (SELECT PrixUnitaire FROM Produit WHERE NumMarche = 1) 

101 3. 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 Produit WHERE Couleur IN (SELECT Couleur FROM NouvelleCouleur WHERE TypeCouleur='Nacré')

102 3. 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

103 3. Les sous-requêtes Exemple : la liste des vendeurs de l'entreprise n'ayant pas passé des commandes. Liens entre les deux requêtes SELECT Prénom, Nom FROM Vendeur WHERE NOT EXISTS (SELECT NumCmde FROM Commandes WHERE Commandes.NumVendeur= Vendeur.NumVendeur)

104 3. Sous-requêtes Sous-Requête et Jointure : SELECT R1.* FROM R1,R2
WHERE R1.a=R2.b Jointure SELECT R1.* FROM R1 WHERE EXISTS (SELECT * FROM R2 WHERE R1.a=R2.b) Sous-Requête Ces deux requêtes ont le même résultat

105 3. Jointures externes Dans une jointure classique :
- tous les enregistrements ne vérifiant pas la condition de rapprochement 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ération est identique à la jointure classique

106 3. Jointures externes La condition de rapprochement
Fournisseur.Four = Historique.Four est vérifiée pour chaque couple d’enregistrements des deux relations

107 3. 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 Relation2 sont conservés

108 3. Jointures externes Exemple de jointure externe à gauche :
Table1 Table 2 NumFacture Fournisseur Montant NumFour NomFour TotoSA Select * From Table1 LEFT JOIN Table 2 ON Fournisseur=NumFour NumFacture Fournisseur Montant NumFour NomFour TotoSA NULL NULL

109 3. 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 Relation1 sont conservés

110 3. Jointures externes Exemple de jointure externe à gauche :
Table1 Table2 NumFacture Fournisseur Montant NumFour NomFour TotoSA Select * From Table2 RIGHT JOIN Table1 ON Fournisseur=NumFour NumFour NomFour NumFacture Fournisseur Montant 1 TotoSA NULL NULL

111 3. 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=NumFour WHERE Table2.NumFour IS NULL

112 3. Jointures externes Jointure externe avec ACCESS :
Dans l’assistant double-clic sur la jointure LEFT JOIN RIGHT

113 3. 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

114 3. 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 les listes des attributs

115 3. Requête INSERT Exemple : INSERT INTO Client (Nom,Prénom,Adr)
VALUES (C,c,3) Client Nom Prénom Adr A a B b Client Nom Prénom Adr A a B b C c Avant Après

116 3. 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 

117 3. 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 de 500 F des coûts d’expédition UPDATE Produit SET PrixVente = PrixVente * 1.15 , Expedition=Expedition-500 WHERE TypeProduit = 'LUXE';

118 3. 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 HistoriqueFacture WHERE Annee<1990


Télécharger ppt "INFORMATIQUE IUT G.E.A. ¨Deuxième Année¨"

Présentations similaires


Annonces Google