Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012...

56
Michel Tollenaere SQL et 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes d’Information Objectifs : -Programmer dans MS-ACCESS (relationnel – SQL) - Modéliser, concevoir un SI (UML) : identifier les besoins, réaliser, déployer, récupérer données et +. - Préparer les enseignements ERP et PLM de 3 ème année Programmation fin dec : cours et TD - en janvier TP et projet Évaluation : - Projet / TP - examen

Transcript of Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012...

Page 1: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel1

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Cours de Management des Systèmes d’Information

Objectifs :- Programmer dans MS-ACCESS (relationnel – SQL)- Modéliser, concevoir un SI (UML) : identifier les besoins, réaliser,

déployer, récupérer données et +.- Préparer les enseignements ERP et PLM de 3ème année

Programmation fin dec : cours et TD- en janvier TP et projet

Évaluation :- Projet / TP- examen

Page 2: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel2

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

http://www.g-scop.inpg.fr/~tollenam/msi/

Page 3: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel3

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Modèle relationnel - SQL

Historique : E.F. CODD dans les années 70• modèle basé sur la théorie des ensembles• des langages pour manipuler les données (SQL)• une démarche pour représenter le « monde réel »

Nombreux outils :MySQL (logiciel libre)Access (Microsoft) versions 1997 – 2003 – 2007 - 2010ORACLE (Oracle corp.)SQL Server (Microsoft)Ingres (Computer Associates)

http://cerig.efpg.inpg.fr/tutoriel/bases-de-donnees/sommaire.htm

Page 4: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel4

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

S . I .

Organisations

Task 1

Task 2Task 3

Tâches, processus

PERSONNE Num_securite_sociale Nom Prenom Code_postal Telephonen-uplet1 1 76 02 99 167 098 Dupont Marcel 41500 06 08 78 65 88n-uplet2 2 76 04 95 165 008 Durand Elisabeth 31900 02 99 167 098n-uplet3 1 78 12 38 122 4332 Faure Bertrand 38700 04 38 56 45 32n-uplet4 1 68 02 99 5649 876 Dumontier Michel 75016 01 55 45 34 87

STAGE Num_securite_sociale D_type_stageTitren-uplet1 1 76 02 99 167 098 Inge_Adjoint Définition d'une politique Qualitén-uplet2 2 76 04 95 165 008 Inge_Adjoint Mise en place d'un SI pour la maintenancen-uplet3 1 68 02 99 5649 876 EDT Reconfiguration des achatsn-uplet4 2 76 04 95 165 008 EDT Reconfiguration des achatsn-uplet5 1 76 02 99 167 098 PFE Mise en place d'un ERP

propriétés propriétés

Constituant ConstituantConstituantConstituant

Information structurée,bases de données

Quels systèmes ?

Qu’est ce qu’un SI ?

Page 5: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel5

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

PERSONNE Num_securite_sociale Nom Prenom Code_postal Telephonen-uplet1 1 76 02 99 167 098 Dupont Marcel 41500 06 08 78 65 88n-uplet2 2 76 04 95 165 008 Durand Elisabeth 31900 02 99 167 098n-uplet3 1 78 12 38 122 4332 Faure Bertrand 38700 04 38 56 45 32n-uplet4 1 68 02 99 5649 876 Dumontier Michel 75016 01 55 45 34 87

STAGE Num_securite_sociale D_type_stageTitren-uplet1 1 76 02 99 167 098 Inge_Adjoint Définition d'une politique Qualitén-uplet2 2 76 04 95 165 008 Inge_Adjoint Mise en place d'un SI pour la maintenancen-uplet3 1 68 02 99 5649 876 EDT Reconfiguration des achatsn-uplet4 2 76 04 95 165 008 EDT Reconfiguration des achatsn-uplet5 1 76 02 99 167 098 PFE Mise en place d'un ERP

propriétés propriétés

Constituant ConstituantConstituantConstituant

Information structurée,bases de données

Quels systèmes ?

• Consulter• Ajouter• Modifier• Supprimer

Page 6: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel6

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Notion de modèle

• Qu’est ce qu’un modèle ? (Minsky 1968)

http://web.media.mit.edu/~minsky/papers/MatterMindModels.txt

A* est un modèle de A pour un observateur O

ssi A* aide O à répondre aux questions qu’il se pose sur A.

Système observé

ModèleObservateur

Où sont construites les ailes ?

Page 7: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel7

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Système opérantFlux entrants Flux sortants

Système

Système d ’informationsInformations externes

Informations vers l’extérieur

Informations collectées

Ordres, consignes

Système de pilotage (ou de décision)

Informations traitées

Décisions

Concepts de systémique (Lemoigne 1977)

Page 8: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel8

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : « Domaine »

Domaines : Di = {di1, di2, ….. din}, Dj = {d R}, Dk = Di x Dj Di défini en extension, Dj et Dk en intention

Exemples :• D_Num_securite_sociale = { n [1013 ; 3.1013]}• D_Nom = { chaine de 30 caractères}• D_Prenom = { chaine de 20 caractères}• D_Code_postal = { chaine de 5 chiffres}• D_Telephone = { chaine de 10 chiffres}• D_couleur = { bleu, vert, rouge, jaune }• D_type_stage = { operateur, Enquete, EDT, inge_adjoint, PFE}• D_titre = { chaine de 200 caractères}• D_date_début = {date} Espace discret (date)

ou réel (temps), non Fini !

Page 9: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel9

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

• Donnée = signe + code– exemple : code ASCII (7 bits) ou étendu

Premiers éléments

• Information = donnée + modèle d’interprétation

1 56 05 99 131 088

N° SS : un hommede 56 ansné à l’étranger

12-10-201210-12-2012588 DGA 3806-88-40-21-15+33-6-88-40-21-151560599131088156 05 99 131 0881 500,231500.28

588 DGA 38Immatriculation :un véhicule immatriculé dans l’Isère avant avril 2009

Page 10: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel10

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : « Relations »

Une relation (ou table) est un sous ensemble d’un produit cartésien de domaines. Une relation est définie par un nom. Le degré d’une relation est égal par définition au nombre de facteurs de ce produit cartésien.

Exemples : relations• PERSONNE D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone

• STAGE D_Num_securite_sociale x D_type_stage x D_Titre x D_date_deb

Personne est de degré 5, Stage est de degré 4

Page 11: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel11

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : « Constituants »

On appelle constituant (ou colonne ou attribut) d’une relation (ou table) le nom donné à une colonne de la table. On note R+ l’ensemble des constituants de R.

Exemples : les constituants d’une relation• PERSONNE+ = {Num_securite_sociale, Nom , Prenom , Code_postal, Telephone }

• STAGE + = { Num_securite_sociale , type_stage , Titre, date_deb }

• PERSONNE (Num_securite_sociale, Nom , Prenom , Code_postal, Telephone)• STAGE ( Num_securite_sociale , type_stage , Titre , date_deb )

Ou plus simplement

Page 12: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel12

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : « n-uplets »

Un n-uplet - ou tuple (en anglais), instance, ligne - d ’une relation est un élément de cette relation

Exemples : 2 relations• PERSONNE D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone• STAGE D_Num_securite_sociale x D_type_stage x D_Titre x D_date-deb

PERSONNE Num_securite_sociale Nom Prenom Code_postal Telephonen-uplet1 1 76 02 99 167 098 Dupont Marcel 41500 06 08 78 65 88n-uplet2 2 76 04 95 165 008 Durand Elisabeth 31900 02 99 167 098n-uplet3 1 78 12 38 122 4332 Faure Bertrand 38700 04 38 56 45 32n-uplet4 1 68 02 99 5649 876 Dumontier Michel 75016 01 55 45 34 87

STAGE Num_securite_sociale D_type_stageTitre Date-debutn-uplet1 1 76 02 99 167 098 Inge_Adjoint Définition d'une politique Qualité 01/02/2006n-uplet2 2 76 04 95 165 008 Inge_Adjoint Mise en place d'un SI pour la maintenance 02/02/2006n-uplet3 1 68 02 99 5649 876 EDT Reconfiguration des achats 15/03/2005n-uplet4 2 76 04 95 165 008 EDT Reconfiguration des achats 15/03/2005n-uplet5 1 76 02 99 167 098 PFE Mise en place d'un ERP 15/03/2005

Page 13: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel13

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : propriétés, constituants, n-uplets

Exemples : 2 relations• PERSONNE D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone• STAGE D_Num_securite_sociale x D_type_stage x D_Titre x D_date-deb

Num_securite_socialeD_type_stageTitre Date-debut1 76 02 99 167 098 Inge_Adjoint Définition d'une politique Qualité 01/02/20062 76 04 95 165 008 Inge_Adjoint Mise en place d'un SI pour la maintenance 02/02/20061 68 02 99 5649 876 EDT Reconfiguration des achats 15/03/20052 76 04 95 165 008 EDT Reconfiguration des achats 15/03/20051 76 02 99 167 098 PFE Mise en place d'un ERP 15/03/2005

propriétés propriétés

Constituant ConstituantConstituantConstituant

Page 14: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel14

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : clé, contraintes d’intégrité

Toute relation ou table doit comporter parmi l’ensemble de ses constituants un sous ensemble qui identifie sans ambiguité chaque

n-uplet : ce sous ensemble est appelé « clé » de la relation.Les constituants de ce sous ensemble sont présentés soulignés.

Exemples : clé d’une relation

• PERSONNE (Num_securite_sociale, Nom , Prénom , Code_postal, Téléphone)

• STAGE ( Num_securite_sociale , type_stage , Titre, Date-début )

Page 15: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel15

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : Schéma de relations

Le schéma d’une relation ou définition en intention de cette relation est constitué des éléments :• le nom de la relation• la liste des constituants et les domaines de chacun• les contraintes d’intégrité à respecter

Exemples : PERSONNE ( Num_securite_sociale : { n [1013 ; 3.1013]} ,

Nom : { chaine de 30 caractères},Prenom : { chaine de 20 caractères},Code_postal : { chaine de 5 chiffres} ,Telephone = { chaine de 10 chiffres} )

STAGE Num_securite_sociale : { n [1013 ; 3.1013]} , type_stage : { operateur, Enquete, EDT, inge_adjoint, PFE}, titre : { chaine de 200 caractères} date-début : {date} )

Page 16: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel16

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : Schéma de Base de données relationnelle

Le schéma d’une base de données est constituée par l’ensemble des schémas des relations qui la constituent.

CLIENT ( Num_client : entier long , Nom : chaine de 30 caractères,Prenom : chaine de 20 caractères,Code_postal : chaine de 5 chiffres ,Telephone : chaine de 10 chiffres )

COMMANDE Num_commande : entier long , date : date, montant : monétaire client : entier long )

ARTICLE ( Code_article : entier long,Désignation : chaine de 50 caractères,prix : monétaire )

LIGNECOMMANDE (code_article : entier long ,Num_commande : entier long ,quantité : entier)

Exemple :

Page 17: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel17

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Relationnel : opérateurs ensemblistes

• union T = (R1 R2) ou T = Union (R1, R2)• différence T = (R1 R2) ou T = Minus (R1, R2)• intersection T = (R1 R2) ou T = inter (R1, R2)

• Soient R1 et R2 deux relations, on peut définir entre R1 et R2 un certain nombre d’opérations

• produit cartésien T = (R1 R2) ou T = product (R1, R2)• jointure naturelle

T = (R1 R2)

R1 et R2 ont même schéma Opérations entre relations de schéma distinct

Page 18: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel18

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Relationnel : opérations unaires sur une relation

• projection de R sur les attributs Ai1, Ai2, Ai3, ... Aip avec p < nest une relation R’ de schéma (Ai1, Ai2, Ai3, ... Aip ) dont les n-uplets sont obtenus par élimination des attributs de R n’appartenant pas à R ’ et par suppression des doublons.On note T = Ai1, Ai2, Ai3, ... Aip (R)

ou T = proj Ai1, Ai2, Ai3, ... Aip (R) • restriction (ou sélection) de la relation R par une qualification Q est une relation R ’ de même schéma que R dont les n-uplets sont ceux de R satisfaisant Q.On note T = Q (R) ou T = selectQ (R)

• Soit R une relation de schéma (A1, A2, A3, ... An )

Page 19: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel19

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : opérateurs exemples

• union T = (R1 R2) ou T = Union (R1, R2)

• différence T = (R1 R2) ou T = Minus (R1, R2)

• intersection T = (R1 R2) ou T = inter (R1, R2)

• Soient R1 et R2 deux relations de même schémaR1 A B C

a c 10c d 15x y 20

R2 A B Cf g 10c d 15m p 12

T A B Ca c 10c d 15x y 20f g 10m p 12

T A B Ca c 10x y 20

T A B Cc d 15

Page 20: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel20

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : opérateurs exemples

• Soient R1 et R2 deux relations de schémas distincts, R1 A B C

a c 10c d 15x y 20

R2 M N Pfar 10 150car 15 1000min 8 1200

T A B C M N Pa c 10 far 10 150a c 10 car 15 1000a c 10 min 8 1200c d 15 far 10 150c d 15 car 15 1000c d 15 min 8 1200x y 20 far 10 150x y 20 car 15 1000x y 20 min 8 1200

• produit cartésien T = (R1 R2) ou T = product (R1, R2)

Page 21: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel21

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : opérateurs exemples

• Soient R1 et R2 deux relations de schémas distincts, R1 A B C

a c 10c d 15x y 20

R2 M C Pfar 10 150car 15 1000min 8 1200

T A B C M Pa c 10 far 150c d 15 car 1000

• jointure naturelle T = (R1 R2)T = R1 join (c=c) R2

Page 22: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel22

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : opérateurs exemples

• Soient R1 une relation, R1 A B Ca c 10c d 15x y 20c d 35x y 60

• restriction (ou sélection) de la relation R1 par une qualification Q = (C<30).T = ( C < 30) (R)

• projection de R1 sur les attributs A et B T = A, B, (R1)

T A Ba cc dx y

Attention à la suppression des doublons

T A B Ca c 10c d 15x y 20

Page 23: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel23

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : fonctions de calcul

Opération CALCULER     R = CALCULER (R0, fonction1, fonction2, ...)     

ou     

N = CALCULER (R0, fonction)

R = fonction 1, fonction 2 (R)

N°BonCommande

CodeProduit

Quantité

PuHT

96008 A10 10 83

96008 B20 35 32

96009 A10 20 83

96010 A15 4 110

96010 B20 55 32

On désire obtenir le chiffre d'affaires total HT, ainsi que le nombre total de produits commandés :

R1 = CALCULER (LIGNE_COMMANDE, Somme (Quantité*PuHT), Somme (Quantité))

R1 = SUM Quantité*PuHt , SUM Quantité (LIGNE_COMMANDE)

Somme (Quantité*PuHT

)

Somme (Quantité)

5 810 124

ExempleR0 = LIGNE_COMMANDE

Les calculs et/ou comptage portent sur la relation R0.

La relation résultat ne comportera qu'une ligne avec autant de colonnes que de résultats demandés ou pourra simplement être considérée comme un nombre N utilisable ultérieurement en tant que tel dans le cas où un seul résultat est attendu.

Page 24: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel24

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012Définitions : fonctions

regrouper et calculer

R= REGROUPER_ET_CALCULER (R0, att1, att2, ..., fonction1, fonction2, ...)R = att1, att2, …, fonction 1, fonction 2,…

(R0)

N°BonCommande

CodeProduit

Quantité

PuHT

96008 A10 10 83

96008 B20 35 32

96009 A10 20 83

96010 A15 4 110

96010 B20 55 32

On désire obtenir le montant total HT de chaque bon de commande :

R2= REGROUPER_ET_CALCULER (LIGNE_COMMANDE, N°BonCommande, MontantHt : Somme (Quantité*PuHT))

R = N°BonCommande, MontantHt : SUM Quantité*PuHT

(LIGNE_COMMANDE)

N° BonCommand

e

Montant HT

96008 1 950

96009 1 660

96010 2 200

 

Le regroupement s'effectue sur un sous ensemble des attributs de la relation R0

La relation résultat comportera autant de lignes que de groupes de n-uplets, les fonctions s'appliquant à chacun des groupes séparément.

ExempleR0 = LIGNE_COMMANDE

Page 25: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel25

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : fonctions d’agrégation

Les Fonctions d'agrégation       Elles sont utilisées dans les opérateurs : CALCULER et REGROUPER_ET_CALCULER.Les fonctions statistiques de base :Elles portent sur un ou plusieurs groupes de n-uplets et évidemment sur un attribut de type numérique.Somme (attribut) : total des valeurs d'un attributMoyenne (attribut) : moyenne des valeurs d'un attributMinimum (attribut) : plus petite valeur d'un attributMaximum (attribut) : plus grande valeur d'un attributRemarque : les valeurs "non renseignées" de l'attribut sont ignorées.La fonction de comptage : Compte ()La fonction de comptage donne le nombre de n-uplets d'un ou de plusieurs groupes de n-uplets. Il n'est donc pas nécessaire de préciser d'attribut.

Page 26: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel26

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : contraintes dans une BD

L’intérêt de l’usage de Base de données et que la BD permet la définition de « contraintes d’intégrité » qui seront nécessairement vérifiées à tout instant par la base : ces contraintes permettent de garantir la « cohérence » de la base. Elles sont de trois types :

1) contrainte de clé2) contrainte de type de données (date, intervalle, liste… entier)3) contrainte d’intégrité référentielle

Page 27: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel27

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : contrainte d’intégrité référentielle

Permet de vérifier la présence de données référencées dans des tables différentes. Une contrainte d ’intégrité référentielle peut s’utiliser dès qu’une clé primaire d’une table est utilisée comme référence dans une autre table. On

la nomme « clé étrangère » de la seconde table.

CLIENT (Num_client : entier long , Nom : chaine de 30 caractères,Prenom : chaine de 20 caractères,Code_postal : chaine de 5 chiffres ,Telephone : chaine de 10 chiffres )

COMMANDE Num_commande : entier long , date : date, montant : monétaire client : entier long )

ARTICLE (Code_article : entier long,Désignation : chaine de 50 caractères,prix : monétaire )

LIGNECOMMANDE (code_article : entier long ,Num_commande : entier long ,quantité : entier)

Page 28: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel28

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : 1ère Forme Normale

• PERSONNE (Num_securite_sociale, Nom , Prenom , Code_postal, Telephone)

On ne peut gérer des listes de prénom ou plusieurs adresses, dans la table PERSONNE ; par contre prénom peut être une chaine de nn caractères

Une relation est en PREMIERE FORME NORMALE ssi • les valeurs de tous les attributs qui la composent sont atomiques• la relation possède une « clé »

Exemple

Page 29: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel29

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : Dépendance fonctionnelle

Cette notion permet de capturer l’idée de dépendance entre informations en visant à limiter la redondance.

Soit R une relation et X et Y des groupes d’attributs de R, il existe une dépendance fonctionnelle entre X et Y (on dit que X détermine Y) si dans R chaque valeur de X détermine une et une seule valeur de Y.

Attention, cette propriété doit être vérifiée pour tous les n-uplets, y compris ceux à créer

Page 30: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel30

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : 2ème Forme Normale

• PRET (Num_etudiant, NumLivre, Nom_etud , Prenom_etud , NomLivre, Auteurs, date_emprunt)

Une relation est en DEUXIEME FORME NORMALE ssi • elle est en première forme normale• tout attribut n ’appartenant pas à une clé ne dépend pas d ’une partie de cette clé

Exemple

N ’est pas en 2ème FN car « Nom_etud » ne dépend que de Num_etudiant, et de même « NomLivre », et « Auteurs » ne dépend que de NumLivre

Page 31: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel31

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Définitions : 3ème Forme Normale

• EMPLOYE (Num_securite_sociale, Nom , Prenom , Service, Adresse_service)

Une relation est en TROISIEME FORME NORMALE (dite de Boyce Codd) ssi • elle est en deuxième forme normale• tout attribut n ’appartenant pas à une clé ne dépend pas d ’un autre attribut non clé

Exemple

Adresse_service dépend de service, la relation n’est pas en 3eme FN.

Page 32: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel32

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

SQL

Le SQL (Structured Query Language) permet d'interroger une base de données, d'en modifier des informations. C'est un langage universel d'interrogation des bases de données, qui permet à différents systèmes d'échanger des données entre eux.

ACCESS peut être interrogé en SQL via un macro langage qui “ cache ” le SQL (voir à ce sujet le Menu “ Requêtes ”, “ Spécifique SQL ” “ SQL direct ”).

Normalisation ISO :norme SQL1 (1986, 1989) norme SQL2 (1992) norme SQL3 (1999) implémentée dans Oracle

Dans la suite, le code SQL est représenté en ARIAL 12, les commentaires en Italique.

MySQL 5.1 http://dev.mysql.com/downloads/

Page 33: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel33

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2013

SQL comporte 3 parties

1) - Le DML (Data Manipulation Language)

Sélection d’information, création et mise à jour d’enregistrements

SELECT, INSERT, UPDATE, DELETE, JOIN

2) - Le DDL (Data Definition Language)

Création des tables, des attributs et des contraintes d’intégrité

CREATE, ALTER, DROP, RENAME

3) - Le DCL (Data Control Language)

Pour contrôler l’accès aux données

GRANT, REVOKE

Page 34: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel34

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Les requêtes simples

Soit 3 tables : Eleves (NomElv, AdrElv, VilleElv), Matieres (NomMat, Coef, Intitule), Notes (NomElv, NomMat, Date, Note).

Attribut souligné = clé primaire

Eleves

• NomElv • AdrElv • VilleElv

Matieres

• NomMat • Coef• Intitulé

Notes

• NomElv • NomMat• Date• Note

DML

(Data Manipulation Language)

Page 35: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel35

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Des enregistrements dans les tables

Eleves

• NomElv • AdrElv • VilleElv

Matieres

• NomMat • Coef• Intitulé

Notes

• NomElv • NomMat• Date• Note

Eleves

Nomelv Adresse Ville

Bastien Montmartre Paris

Clerget-Gurnaud Bastille Paris

Deltour Romain Bastille Grenoble

Denoual St Michel Paris

Le Bas Cointrin Geneve

Miguel Goyena Plaza de la Constitucíon

Mexico

Pelayo Menendez Garcia

Anáhuac Mexico

Pop Trocadero Paris

Simon-Suisse Jet d'eau Geneve

Thevenot Ile verte Grenoble

Viard Gare Grenoble

Matiere

NomMat Coef Intitulé

Gest-prod 3 Gestion de production

Gest-proj 2 Gestion de projets

MSI 3 Management des SI

Qualité 1 Qualité

Sports 2 Sports

Notes

Nomelv NomMat Date Valeur

Bastien Gest-prod 25/09/2004 15

Bastien MSI 09/09/2004 16

Bastien MSI 25/09/2004 15

Clerget-Gurnaud

Gest-prod 25/09/2004 12

Clerget-Gurnaud

MSI 09/09/2004 9

Clerget-Gurnaud

MSI 25/09/2004 12

Deltour Romain

Gest-prod 25/09/2004 17

Deltour Romain

MSI 09/09/2004 17

Deltour Romain

MSI 25/09/2004 20

Denoual Gest-prod 25/09/2004 8

Denoual MSI 09/09/2004 20

Denoual MSI 25/09/2004 10

Le Bas Gest-prod 25/09/2004 11

Le Bas MSI 09/09/2004 12

Le Bas MSI 25/09/2004 11

Miguel Goyena

Gest-prod 25/09/2004 15

Miguel Goyena

MSI 09/09/2004 15

Miguel Goyena

MSI 25/09/2004 18

Pelayo Menendez Garcia

Gest-prod 25/09/2004 13

Pelayo Menendez Garcia

MSI 09/09/2004 14

Pelayo Menendez Garcia

MSI 25/09/2004 13

Pop Gest-prod 25/09/2004 17

Pop MSI 09/09/2004 18

Pop MSI 25/09/2004 17

Simon-Suisse

Gest-prod 25/09/2004 12

Simon-Suisse

MSI 09/09/2004 10

Simon-Suisse

MSI 25/09/2004 12

Thevenot Gest-prod 25/09/2004 11

Thevenot MSI 09/09/2004 11

Thevenot MSI 25/09/2004 14

Viard Gest-prod 25/09/2004 13

Viard MSI 09/09/2004 13

Viard MSI 25/09/2004 16

Simon-Suisse

Qualité 30/09/2004 10

Le Bas Qualité 30/09/2004 17

Pelayo Menendez Garcia

Qualité 30/09/2004 10

Bastien Qualité 30/09/2004 10

Pop Qualité 30/09/2004 17

Denoual Qualité 30/09/2004 8

Clerget-Gurnaud

Qualité 30/09/2004 6

Thevenot Qualité 30/09/2004 4

Viard Qualité 30/09/2004 2

Miguel Goyena

Qualité 30/09/2004 13

Deltour Romain

Qualité 30/09/2004 15

DML

(Data Manipulation Language)

Page 36: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel36

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

1.1 L'interrogation simple Liste des élèves.

SELECT NomElv (ce qui doit être affiché ?)FROM Eleves; (dans quelle table rechercher l’information ?)

Liste des matières avec leurs coefficients.

SELECT NomMat, CoefFROM Matieres;

Toutes les notes classées par élèvesSELECT Notes.Nomelv, Notes.NomMat,

Notes.Date, Notes.ValeurFROM NotesORDER BY Notes.Nomelv;

Nomelv NomMat Date Valeur

Bastien Gest-prod 25/09/2004 15

Bastien MSI 09/09/2004 16

Bastien MSI 25/09/2004 15

Clerget-Gurnaud Gest-prod 25/09/2004 12

Clerget-Gurnaud MSI 09/09/2004 9

Clerget-Gurnaud MSI 25/09/2004 12

Deltour Romain Gest-prod 25/09/2004 17

Deltour Romain MSI 09/09/2004 17

Deltour Romain MSI 25/09/2004 20

Denoual Gest-prod 25/09/2004 8

Denoual MSI 09/09/2004 20

Denoual MSI 25/09/2004 10

Toutes-les-notes/eleves

DML

(Data Manipulation Language)

Page 37: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel37

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

1.1 L'interrogation simple (suite)

Toutes les notes moyenne de matière classées par élèvesSELECT [Toutes-les-notes/eleves].Nomelv, [Toutes-les-notes/eleves].NomMat,

Avg ([Toutes-les-notes/eleves].Valeur) AS MoyenneDeValeurFROM [Toutes-les-notes/eleves]GROUP BY [Toutes-les-notes/eleves].Nomelv, [Toutes-les-notes/eleves].NomMat;

Nomelv NomMat Date Valeur

Bastien Gest-prod 25/09/2004 15

Bastien MSI 09/09/2004 16

Bastien MSI 25/09/2004 15

Clerget-Gurnaud Gest-prod 25/09/2004 12

Clerget-Gurnaud MSI 09/09/2004 9

Clerget-Gurnaud MSI 25/09/2004 12

Deltour Romain Gest-prod 25/09/2004 17

Deltour Romain MSI 09/09/2004 17

Deltour Romain MSI 25/09/2004 20

Denoual Gest-prod 25/09/2004 8

Denoual MSI 09/09/2004 20

Denoual MSI 25/09/2004 10

Toutes-les-moyennes-mat/élèves

Nomelv NomMat MoyenneDeValeur

Bastien Gest-prod 15

Bastien MSI 15,5

Clerget-Gurnaud Gest-prod 12

Clerget-Gurnaud MSI 10,5

Deltour Romain Gest-prod 17

Deltour Romain MSI 18,5

Toutes-les-notes/eleves

On compose les requêtes

DML

(Data Manipulation Language)

Page 38: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel38

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

SELECT [Toutes-les-moyennes-mat/élèves].NomMat, Avg ([Toutes-les-moyennes-mat/élèves].MoyenneDeValeur)

AS MoyenneDeMoyenneDeValeurFROM [Toutes-les-moyennes-mat/élèves]GROUP BY [Toutes-les-moyennes-mat/élèves].NomMat;

Moyenne par matière

Moyennes par matière

NomMatMoyenne de la division

Gest-prod 13,09

MSI 14,22

Qualité 10,18

DML

(Data Manipulation Language)

Page 39: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel39

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

1.2 La close WHERE Elle permet de spécifier la ou les conditions que doivent remplir les lignes choisies.

Liste des élèves habitant Mexico.SELECT NomElvFROM ElevesWHERE VilleElv = ‘Mexico';

Liste des matières pour lesquelles l'élève "Simon-Suisse" a eu au moins une note.

SELECT NomMatFROM NotesWHERE NomElv = 'Simon-Suisse';

Remarque : Dans la close WHERE, on ne peut utiliser que des propriétés qui sont dans la table sélectionnée

DML

(Data Manipulation Language)

Page 40: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel40

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Les jointures

Matieres

• NomMat • Coef• Intitulé

Notes

• NomElv • NomMat• Date• Note

Toutes-les-moyennes-mat/élèves

• NomElv • NomMat• Moyenne

Tous les totaux/matiere Nomelv Total ds la matière Coef Intitulé

Bastien 45 3 Gestion de production

Bastien 46,5 3 Management des SI

Bastien 10 1 Qualité

Clerget-Gurnaud 36 3 Gestion de production

Clerget-Gurnaud 31,5 3 Management des SI

Clerget-Gurnaud 6 1 Qualité

Deltour Romain 51 3 Gestion de production

Deltour Romain 55,5 3 Management des SI

Deltour Romain 15 1 Qualité

Denoual 24 3 Gestion de production

Denoual 45 3 Management des SI

Denoual 8 1 Qualité

SELECT [Toutes-les-moyennes-mat/élèves].Nomelv, Matiere!Coef*[Toutes-les-moyennes-mat/élèves]!MoyenneDeValeur AS Expr1, Matiere.Coef, Matiere.IntituléFROM [Toutes-les-moyennes-mat/élèves] INNER JOIN Matiere ON [Toutes-les-moyennes-mat/élèves].NomMat

= Matiere.NomMat;

DML

(Data Manipulation Language)

Page 41: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel41

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

La somme des coefficients

Matieres

• NomMat • Coef• Intitulé

SELECT Sum(Matiere.Coef) AS SommeDeCoefFROM Matiere;

SommeDeCoef

11

DML

(Data Manipulation Language)

Page 42: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel42

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Les totaux puis les moyennes par élève,

Nom eleveMoyenne semestrielle

Deltour Romain 11,05

Pop 10,95

Miguel Goyena 9,77

Bastien 9,23

Pelayo Menendez Garcia 8,14

Viard 7,68

Le Bas 7,68

Simon-Suisse 7,18

Denoual 7,00

Thevenot 6,77

Clerget-Gurnaud 6,68

SELECT [Tous les totaux/matiere].Nomelv, Sum([Tous les totaux/matiere].Expr1) AS SommeDeExpr1FROM [Tous les totaux/matiere]GROUP BY [Tous les totaux/matiere].Nomelv;

SELECT [Total/eleve].Nomelv, [Total/eleve]!SommeDeExpr1/[Somme-coef]!SommeDeCoef AS Expr1FROM [Total/eleve], [Somme-coef]ORDER BY [Total/eleve]!SommeDeExpr1/[Somme-coef]!SommeDeCoef DESC;

DML

(Data Manipulation Language)

Page 43: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel43

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Toutes-les-moyennes-mat/élèves_Analyse croisée

Nomelv Gest-prod MSI Qualité

Bastien 15 15,5 10

Clerget-Gurnaud 12 10,5 6

Deltour Romain 17 18,5 15

Denoual 8 15 8

Le Bas 11 11,5 17

Miguel Goyena 15 16,5 13

Pelayo Menendez Garcia 13 13,5 10

Pop 17 17,5 17

Simon-Suisse 12 11 10

Thevenot 11 12,5 4

Viard 13 14,5 2

DML

(Data Manipulation Language)

Page 44: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel44

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

dans MS Access

DML

(Data Manipulation Language)

Page 45: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel45

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

dans MS Access

SELECT CLIENT.Telephone, COMMANDE.MontantFROM CLIENT INNER JOIN COMMANDE

ON CLIENT.Num_client = COMMANDE.Num_clientWHERE (((COMMANDE.Montant)>10000));

DML

(Data Manipulation Language)

Page 46: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel46

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

SELECT personne.Nom, personne.Prenom, stage.Titre, stage.[Date-debut], stage.D_type_stage

FROM personne INNER JOIN stage ON personne.Numéro = stage.Numéro;

Les jointures

Page 47: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel47

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

SELECT personne.Nom, personne.Prenom, stage.Titre, stage.[Date-debut], stage.D_type_stage

FROM personne INNER JOIN stage ON personne.Numéro = stage.Numéro;

!! La jointure a été faite sur l’attribut « numéro » !!!! personne.Numéro = stage.Numéro;

Les jointures

Page 48: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel48

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

SELECT personne.Nom, personne.Prenom, stage.Titre, stage.[Date-debut], stage.D_type_stage

FROM personne INNER JOIN stage ON personne.Num_securite_sociale = stage.Num_securite_sociale;

Les jointures

Page 49: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel49

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Les jointures

Page 50: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel50

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Les jointures

Page 51: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel51

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Les jointures

SELECT personne.Nom, personne.Prenom, stage.D_type_stage, stage.Titre, stage.[Date-debut]

FROM personne LEFT JOIN stage ON personne.Num_securite_sociale = stage.Num_securite_sociale;

Page 52: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel52

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

1.1 La close GROUP BY

Liste des élèves par ville.SELECT NomElv, VilleElvFROM ElevesGROUP BY VilleElv;

1.2 La close HAVINGElle ne s'utilise qu'avec le GROUP BY et permet de donner la ou les conditions quedoivent remplir ces groupes.

Liste des élèves regroupés par ville où habitent plus de 10 élèves.SELECT NomElv, VilleElvFROM ElevesGROUP BY VilleElvHAVING Count(NomElv) > 10;

Liste des matières où plus de 35 notes ont été données.SELECT NomMatFROM NotesGROUP BY NomMatHAVING Count(Note) > 35;

DML

(Data Manipulation Language)

Page 53: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel53

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

1.1 La close ORDER BYElle permet de spécifier l'ordre dans lequel vont être affichées les lignes.

Liste des matières dans l'ordre alphabétique.SELECT NomMatFROM MatieresORDER BY NomMat;

Liste des matières par ordre décroissant de coef., puis par ordre alpha. de nom.SELECT NomMatFROM MatieresORDER BY Coef Desc, NomMat Asc;

1.2 RécapitulatifSELECT noms des colonnes à afficherFROM nom de la table où se trouvent les colonnessusmentionnéesWHERE condition(s) à remplir par les lignesGROUP BY condition(s) de regroupement des lignesHAVING condition(s) à remplir par le groupeORDER BY ordre (Asc, Desc) d'affichage

DML

(Data Manipulation Language)

Page 54: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel54

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

1 Les requêtes multi-tables

Soit 4 tables : Eleves (RefElv, NomElv, PreElv, VilleElv, ClasseElv), Classes (NomCla, Niveau), Cours (NomCla, NomMat, NbHeure), Matieres (NomMat).

1.1 Requêtes où les données sélectionnées sont dans plusieurs tables

Liste des élèves avec leur niveau. SELECT NomElv, PreElv, Niveau FROM Eleves JOIN Classes ON ClasseElv = NomCla WHERE Eleves.ClasseElv = Classes.NomCla;

Liste des élèves et nom des cours qu'ils suivent pendant plus de 3 heures. SELECT NomElv, NomMat FROM Eleves JOIN Cours ON ClasseElv = NomCla WHERE (Eleves.ClasseElv = Cours.Nomcla) AND (Cours.NbHeure > 3)

(il faut faire d'abord les jointures puis les sélections)

DML

(Data Manipulation Language)

Page 55: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel55

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012DDL

(Data Definition Language)

2 – Création des tables, des attributs et des contraintes d’intégrité

Le DDL (Data Definition Language)CREATEALTERDROPRENAME

3 – Restreindre des droits d’accesGRANTREVOKE

Page 56: Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.4 du 5 novembre 2012 Cours de Management des Systèmes dInformation Objectifs.

Michel Tollenaere SQL et relationnel56

Cours MSI-2A filière ICLversion 1.4 du 5 novembre 2012

Schéma …. qui peut aussi se représenter

CLIENT

• Num_client : entier long , • Nom : chaine de 30 caractères,• Prenom : chaine de 20 caractères,• Code_postal : chaine de 5 chiffres ,• Telephone : chaine de 10 chiffres

COMMANDE

• Num_commande : entier long , • date : date, • montant : monétaire • client : entier long

ARTICLE

• Code_article : entier long,• Désignation: chaine de 50 caractères,• prix : monétaire

LIGNECOMMANDE

• code_article : entier long ,• Num_commande : entier long ,• quantité : entier