un aperçu de sql par l’exemple -...

Post on 29-Nov-2019

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ChristinaKHNAISSER etLucLAVOIEDépartementd’informatiqueFacultédessciences

Christina.Khnaisser@USherbrooke.cahttp://info.USherbrooke.ca/ckhnaisserLuc.Lavoie@USherbrooke.cahttp://info.USherbrooke.ca/llavoie

UnaperçudeSQLparl’exemple

2018-09-16

BASES DE DONNÉES

BD100v121c

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

2

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

PLAN¢Évaluation

� Rappels¢ Schémarelationnel¢ Exemplededonnées

� SchémaSQL¢ Itérations0,1,2,3

� Exempled’insertiondedonnées� Requêtes

¢Lescollesduprof

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

3

ÉVALUATION – RAPPELSSCHÉMA RELATIONNEL

¢ NousavonsdéjàutiliséleschémaÉvaluationlorsdelaprésentationdumoduleBD012pourillustrerlathéorierelationnelle:� L’activité desigle« sigle »etdetitre« titre »estofferteparl’UdeS.

� L’étudiant dontlematriculeest« matricule »,lenomest« nom »etl’adresseest« adresse »estinscritàl’UdeS.

� Letyped’évaluation decode« code »correspondantàladescription« description »estautoriséeàl’UdeS.

� Lerésultat « note »pourl’évaluation« TE »danslecadredel’activité« activité »autrimestre« trimestre »aétéobtenuparl’étudiant dontlematriculeest« matricule ».

Lesattributssoulignésformentlaclécandidateprimairedelarelation.

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

4

ÉVALUATION – EXEMPLE DE DONNÉES

sigle titre

IFT159 Analyseetprogrammation

IFT187 Élémentsdebasesdedonnées

IMN117 Acquisitiondesmédias numériques

IGE401 Gestiondeprojets

GMQ103 Géopositionnement

code description

IN Examenintra

FI Examenfinal

TP Travailpratique

PR Projet

Activité TypeÉvaluation

matricule TE activité trimestre note

15113150 TP IFT187 20133 80

15112354 FI IFT187 20123 78

15113150 TP IFT159 20133 75

15112354 FI GMQ103 20123 85

15110132 IN IMN117 20123 90

15110132 IN IFT187 20133 45

15112354 FI IFT159 20123 52

Résultatmatricule nom adresse

15113150 Paul ᐳᕕᕐᓂᑐᖅ

15112354 Éliane Blanc-Sablon

15113870 Mohamed Tadoussac

15110132 Sergeï Chandler

Étudiant

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec

Activité{sigle :Texte;titre :Texte}

Étudiant{matricule :Texte;nom :Texte;adresse :Texte}

CREATE TABLE Activite (

sigle CHAR(6) NOT NULL,

titre VARCHAR(46) NOT NULL

);

CREATE TABLE Etudiant (

matricule CHAR(8) NOT NULL,

nom VARCHAR(60) NOT NULL,

adresse VARCHAR(60) NOT NULL

);

2018-09-16

5

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

ÉVALUATION – ITÉRATION 0SCHÉMA RELATIONNEL ET SCRIPT SQL (1/2)

Départem

entd’informatiq

ue,F

acultéd

essciences,U

niversitéd

eSherb

rooke,Q

uébec

TypeÉvaluation {

code :Texte;

description :Texte

}

Résultat{

matricule :Texte;

TE :Texte;

activité :Texte;

trimestre :Entier;

note :Entier[0..100]

}

CREATE TABLE TypeEvaluation (

code CHAR(2) NOT NULL,

description VARCHAR(60) NOT NULL

);

CREATE TABLE Resultat (

matricule CHAR(8) NOT NULL,

TE CHAR(2) NOT NULL,

activite CHAR(6) NOT NULL,

trimestre CHAR(5) NOT NULL,

note INTEGER NOT NULL

);

2018-09-16

6

BD100:Unaperçu

deSQ

Lparl'exem

ple(v1

21c)—

Christin

aKhnaisseretL

ucLavo

ie

ÉVALUATION – ITÉRATION 0SCHÉMA RELATIONNEL ET SCRIPT SQL (2/2)

Départem

entd’informatique,Facultédessciences,U

niversitédeSherbrooke,Québec

2018-09-16

7

BD100

:UnaperçudeSQ

Lparl'exemple(v121c)—

ChristinaKhnaisseretLucLavoie

ÉVALUATION – ITÉRATION 1AJOUTER DES CLÉS :LE DIAGRAMME RELATIONNEL

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

8

ÉVALUATION – ITÉRATION 1AJOUTER DES CLÉS :LE SCRIPT SQL(1/2)CREATE TABLE Activite (

sigle CHAR(6) NOT NULL,titre VARCHAR(46) NOT NULL,PRIMARY KEY (sigle)

);CREATE TABLE Etudiant (

matricule CHAR(8) NOT NULL,nom VARCHAR(60) NOT NULL,adresse VARCHAR(60) NOT NULL,PRIMARY KEY (matricule)

);CREATE TABLE TypeEvaluation (

code CHAR(2) NOT NULL,description VARCHAR(60) NOT NULL,PRIMARY KEY (code)

);

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

9

ÉVALUATION – ITÉRATION 1AJOUTER DES CLÉS :LE SCRIPT SQL(2/2)CREATE TABLE Resultat (

matricule CHAR(8) NOT NULL,TE CHAR(2) NOT NULL,activite CHAR(6) NOT NULL,trimestre CHAR(5) NOT NULL,note SMALLINT NOT NULL,PRIMARY KEY (matricule, activite, TE, trimestre),FOREIGN KEY (matricule)

REFERENCES Etudiant (matricule),FOREIGN KEY (activite)

REFERENCES Activite (sigle),FOREIGN KEY (TE)

REFERENCES TypeEvaluation (code));

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

10

ÉVALUATION – ITÉRATION 2AJOUTER DES IDENTIFIANTS AUX CLÉS (1/2)CREATE TABLE Activite (

sigle CHAR(6) NOT NULL,titre VARCHAR(46) NOT NULL,CONSTRAINT Activite_cc0 PRIMARY KEY (sigle)

);CREATE TABLE Etudiant (

matricule CHAR(8) NOT NULL,nom VARCHAR(60) NOT NULL,adresse VARCHAR(60) NOT NULL,CONSTRAINT Etudiant_cc0 PRIMARY KEY (matricule)

);CREATE TABLE TypeEvaluation (

code CHAR(2) NOT NULL,description VARCHAR(60) NOT NULL,CONSTRAINT TypeEvaluation_cc0 PRIMARY KEY (code)

);

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

11

ÉVALUATION – ITÉRATION 2AJOUTER DES IDENTIFIANTS AUX CLÉS (2/2)CREATE TABLE Resultat (

matricule CHAR(8) NOT NULL,TE CHAR(2) NOT NULL,activite CHAR(6) NOT NULL,trimestre CHAR(5) NOT NULL,note SMALLINT NOT NULL,CONSTRAINT Resultat_cc0

PRIMARY KEY (matricule, activite, TE, trimestre),CONSTRAINT Resultat_cr0 FOREIGN KEY (matricule)

REFERENCES Etudiant (matricule),CONSTRAINT Resultat_cr1 FOREIGN KEY (activite)

REFERENCES Activite (sigle),CONSTRAINT Resultat_cr2 FOREIGN KEY (TE)

REFERENCES TypeEvaluation (code));

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

12

ÉVALUATION – ITÉRATION 3AJOUTER DE CONTRAINTES GÉNÉRALES

¢Sigledecours:� troislettresmajusculessuiviesdetroischiffres.

¢Matricule:� huitchiffres.

¢Codedetyped’évaluation:� deuxlettres.

¢Trimestre:� l’annéesuivied’unchiffre:1 (hiver),2 (été)ou3 (automne).

¢Note:� entiercomprisen0et100.

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

13

ÉVALUATION – ITÉRATION 3AJOUTER DES CONTRAINTES GÉNÉRALES (1/4)CREATE TABLE Activite (

sigle CHAR(6) NOT NULL,titre VARCHAR(46) NOT NULL,CONSTRAINT Activite_cc0 PRIMARY KEY (sigle),

-- On s’assure que les trois premiers caractères-- du sigle sont des lettres latines majuscules et-- les trois derniers des chiffres.

CONSTRAINT Activite_sigle CHECK (sigle SIMILAR TO '[A-Z]{3}[0-9]{3}')

);

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

14

ÉVALUATION – ITÉRATION 3AJOUTER DES CONTRAINTES GÉNÉRALES (2/4)CREATE TABLE Etudiant (

matricule CHAR(8) NOT NULL,nom VARCHAR(60) NOT NULL,adresse VARCHAR(60) NOT NULL,CONSTRAINT Etudiant_cc0 PRIMARY KEY (matricule),

-- On s’assure que le matricule soit composé-- de huit chiffres.

CONSTRAINT Etudiant_matricule CHECK (matricule SIMILAR TO '[0-9]{8}')

);

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

15

ÉVALUATION – ITÉRATION 3AJOUTER DES CONTRAINTES GÉNÉRALES (3/4)CREATE TABLE TypeEvaluation (

code CHAR(2) NOT NULL,description VARCHAR(60) NOT NULL,CONSTRAINT TypeEvaluation_cc0 PRIMARY KEY (code),

-- On s’assure que le code soit composé de-- deux lettres latines.

CONSTRAINT TypeEvaluation_code CHECK (code SIMILAR TO '[A-Za-z]{2}')

);

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

16

ÉVALUATION – ITÉRATION 3AJOUTER DES CONTRAINTES GÉNÉRALES (4/4)

CREATE TABLE Resultat (matricule CHAR(8) NOT NULL,TE CHAR(2) NOT NULL,activite CHAR(6) NOT NULL,trimestre CHAR(5) NOT NULL,note SMALLINT NOT NULL,CONSTRAINT Resultat_cc0PRIMARY KEY (matricule, activite, TE, trimestre),

CONSTRAINT Resultat_cr0 FOREIGN KEY (matricule)REFERENCES Etudiant (matricule),

CONSTRAINT Resultat_cr1 FOREIGN KEY (activite)REFERENCES Activite (sigle),

CONSTRAINT Resultat_cr2 FOREIGN KEY (TE)REFERENCES TypeEvaluation (code),

CONSTRAINT Resultat_note CHECK (note BETWEEN 0 AND 100),-- Les trimestres sont encodés en suffixant le no du-- trimestre à l’année.

CONSTRAINT Resultat_trimestre CHECK(trimestre SIMILAR TO '[0-9]{4}[1-3]{1}’)

);

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

17

ÉVALUATIONEXEMPLE D’INSERTION DE DONNÉESINSERT INTO Activite (sigle, titre) VALUES

('IFT159', 'Analyse et programmation'),('IFT187', 'Éléments de bases de données'),('IMN117', 'Acquisition des médias numériques'),('IGE401', 'Gestion de projets'),('GMQ103', 'Géopositionnement');

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

18

ÉVALUATIONREQUÊTES

1. QuelssontlesétudiantsinscritsenIFT187?2. Quelssontlesétudiantsinscritsàuneactivité

d’informatiqueàl’automne2013?3. Quelsétaientétudiantsensituationd’échecau

finalàl’automne2012?4. Produirelerelevédenotesd’Éliane.5. Quelsétudiantsnesontinscritsàaucuneactivité?

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

19

ÉVALUATION – R1QUELS SONT LES ÉTUDIANTS INSCRITS EN IFT187?

¢Clarification� Laformulationutiliséepourraitindiquerqu’ons’intéresseauseultrimestrecourant.Lerequérantnousprécisecependantqu’ilvisetouteslesinscriptionsdepuislapremièreoffredel’activité.

¢Entête� InscritsIFT187{matricule :Texte}

¢Requête� (Résultatσ (activité=‘IFT187’))π{matricule}

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

20

ÉVALUATION – R1SCRIPT SQLSELECT DISTINCT matriculeFROM ResultatWHERE activite='IFT187’

¢Rappels� Larequêten’estcorrectequesi:

• matriculeestunecléréférentielledeRésultatversÉtudiant;

• « on »définitqu’uneinscriptionn’estenvigueurquesil’étudiantacomplétéunepremièreévaluationetquecelle-ciaétésaisie;

• Silapremièreconditionestnaturelle,ladeuxièmel’estmoinsetsoulèveuneinterrogationquantàlajustessedelamodélisation.

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

21

ÉVALUATION – R2QUELS SONT LES ÉTUDIANTS INSCRITS À UNE ACTIVITÉ D’INFORMATIQUE À L’AUTOMNE 2013?

¢Clarification� Uneactivitéd’informatiqueestdéfiniecommeétanttouteactivitédontlesigledébuteparlepréfixe‘IFT’.Noussupposonsqu’ilexisteunefonctionpréfixedéfiniesurleschainesdecaractères(letypeTexte).

� “Automne2013”doitêtrerecodésouslaformedel’entier20133.

¢Entête� InscritsIFT {matricule :Texte}

¢Requête� (Résultatσ (préfixe(activité,3)=‘IFT’)⋀trimestre=‘20133’)π{matricule}

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

22

ÉVALUATION – R2SCRIPT SQLSELECT matriculeFROM ResultatWHERE SUBSTRING(activite, 1, 3)='IFT'

AND trimestre = '20133';

SELECT DISTINCT matriculeFROM ResultatWHERE SUBSTRING(activite, 1, 3)='IFT'

AND trimestre = '20133';

matricule151131501511315015110132

matricule1511315015110132

Avecdoublons

Sansdoublons

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

23

ÉVALUATION – R3QUELS ÉTAIENT ÉTUDIANTS EN SITUATION D’ÉCHEC AU FINAL À L’AUTOMNE 2012?

¢Clarification� Unesituationd’échecestunenoteinférieureà60.� Unfinalestun‘Examenfinal’représentéparlecode‘FI’.� « Automne2012 »doitêtrerecodésouslaformedel’entier20123.

¢Entête� Échecs20123{matricule :Texte}

¢Requête� (Résultatσ (note<60⋀TE=‘FI’⋀trimestre=‘20123’))π{matricule}

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

24

ÉVALUATION – R3SCRIPT SQLSELECT DISTINCT matriculeFROM ResultatWHERE note < 60

AND TE = 'FI' AND trimestre = '20123';

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

25

ÉVALUATION – R4PRODUIRE LE RELEVÉ DE NOTES D’ÉLIANE.

¢Clarification� Lematriculeaétéintroduitpourdifférencierleshomonymes.Unrelevéproduitsurlaseulebasedunomestdoncsusceptibled’êtreinexact.Enconséquence,nousdemanderonsàÉliane sonmatricule(nousneconsultonspaslabasededonnées).

¢Entête� RelevéÉliane

{TE :TypeEval;activité :SigleCours;trimestre :Trimestre;note :Note}

¢Requête� ((Résultat⋈Étudiant)σ (matricule=‘15112354’))π

{TE,activité,trimestre,note}

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

26

ÉVALUATION – R4SCRIPT SQLSELECT DISTINCT TE, activite, trimestre, noteFROM ResultatWHERE matricule = ' 15112354';

Pourquoin’est-cepasnécessaire,maisnéanmoinspasinexact,despécifierDISTINCT?

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

27

ÉVALUATION – R4(BIS)PRODUIRE LE RELEVÉ DE NOTES D’ÉLIANE.

¢ Clarification� Ondemanded’ajouterletitredel’activitédanslerelevé.

¢ Entête� Relevé2Éliane{TE :Texte;sigle :Texte; titre :Texte;trimestre :Entier;note :Entier[0..100]}

¢ Requête� Remarquonsqu’ilestnécessairedejoindrelarelationActivitépourobtenirletitreetquel’attributdejointuren’yportepaslemêmenomquedanslarelationRésultat.

� ((((Résultat⋈Étudiant)σ (matricule=‘15112354’))ρ {activité→sigle})⋈Activité)π{TE, sigle,titre,trimestre,note}

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

28

ÉVALUATION – R4(BIS)SCRIPT SQLSELECT TE, sigle, titre, trimestre, noteFROM Resultat

JOIN Activite ON(activite = sigle)WHERE matricule = ' 15112354';

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

29

ÉVALUATION – R5QUELS ÉTUDIANTS NE SONT INSCRITS À AUCUNE ACTIVITÉ?¢ Clarification

� Encoreunefois,ilestnécessairedefairepréciserlapériodeàcouvrir,entermedetrimestres.Supposonsquecesoitlestroistrimestresdel’année2013,laquestiondevientdonc:¢ Quelsétudiantsnesontinscritsàaucuneactivitéen2013?

� Supposonségalementqu’ondésireavoirunmaximumd’informationsurcesétudiantsetpasseulementleurmatricule(àsavoirtouslesattributsdisponiblesdanslarelationÉtudiant).

¢ Entête� NonInscrits2013

{matricule :Texte;nom :Texte;adresse :Texte}

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

30

ÉVALUATION – R5(SUITE)QUELS ÉTUDIANTS NE SONT INSCRITS À AUCUNE ACTIVITÉ EN 2013?¢Requête

� Nousréalisonscetterequêteencalculantd’abordlesétudiantsinscritsàaumoinsuneactivitéen2013puisenlessoustrayantdel’ensembledesétudiants.

� Inscrits2013:(Résultatσ (‘20131’≤trimestre≤’20133’))π{matricule}

� NonInscrits2013:Étudiant– (Étudiant⋈Inscrits2013)

� ou,enextension:Étudiant–(Étudiant⋈((Résultatσ (‘20131’≤trimestre≤’20133’))π{matricule}))

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

31

ÉVALUATION – R5:SCRIPT SQLVERSION 2

SELECT matricule, nom, adresseFROM EtudiantEXCEPT

SELECT matricule, nom, adresseFROM Etudiant

JOIN (SELECT matricule FROM ResultatWHERE '20131' <= trimestre

AND trimestre <= '20133' ) AS Inscrit2013

USING(matricule);

matricule nom adresse15112354 Éliane Blanc-Sablon15113870 Mohamed Tadoussac

ÉlianePaul

Sergeï

Mohamed

Étudiants

Autres années2013

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

32

ÉVALUATION – R5(BIS)QUELS ÉTUDIANTS NE SONT INSCRITS À AUCUNE ACTIVITÉ EN 2013?¢ Justinremarquequ’ilestpossibledesimplifierl’expressionprécédentesionadmetqu’auseindumodèlelanégation delaproposition

(20131≤trimestre≤20133)s’exprimepar

(trimestre<20131⋁20133<trimestre)¢ Ilobtientalors(Étudiant⋈(Résultatσ (trimestre<'20131'⋁'20133'<trimestre)))π{matricule,nom,adresse}

¢ A-t-ilraison?� NON!

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

33

ÉVALUATION – R5(BIS):SCRIPT SQL

SELECT DISTINCT matricule, nom, adresseFROM Etudiant

JOIN (SELECT matricule FROM ResultatWHERE trimestre < '20131’

OR '20133’ > trimestre ) AS NonInscrit2013

USING(matricule);

matricule nom adresse15112354 Éliane Blanc-Sablon15110132 Sergeï Chandler

Paul Éliane

Sergeï

Mohamed

Étudiants

2013 Autres années

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

34

ÉVALUATION – R5(BIS)POURQUOI ?

¢Parcequ’unétudiantpeuts’inscrirelorsdeplusieurstrimestres,onnepeutpaslogiquementconclurequ’unétudiantinscriten2013nes’estinscritàaucuneautreannée:� Parexemple,Sergeï s’estinscriten2012eten2013.

¢Onnepeutpaslogiquementconclurequ’unétudiantquines’estpasinscriten2013s’estinscritlorsd’uneautreannée:� Parexemple,Mohamedestétudiant,maisnes’estencoreinscritàaucuneactivité.

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

35

ÉVALUATIONDU VRAI CODE!

¢Lesscriptscompletsdel’exemplesontdisponiblessurlesitewebdecoursExemples/Evaluation.

¢Lireducodedemeurelameilleurefaçond’apprendreàenécrireJ

Départementd’inform

atique,Facultédessciences,UniversitédeSherbrooke,Québec2018-09-16

BD100:UnaperçudeSQLparl'exem

ple(v121c)—ChristinaKhnaisseretLucLavoie

36

LES COLLES DU PROF

¢ Quelleestladifférenceentreunschéma,undiagrammeetunscript?

¢ Ya-t-iluneseulefaçondetraduireuneexpressionrelationnelleenscriptSQL?

¢ Commentdécririez-vousl’instructionSELECT?¢ Est-ilpertinentdeformulerunerequêted’abordsousformed’expressionrelationnellepuisdelatraduireenscriptSQL?

¢ Est-ilpréférabledeformulerdirectementunerequêteenscriptSQL?

¢ ComparerlesprédicatsutilisésdansBD100avecceuxproposésparl’exempledéposédanslerépertoirepublicducours.Décrirelaportéedesdifférences,indiquerles"meilleures"formulationsetmotiverleschoix.

top related