HOOFDSTUK IV Toepassingen in Informatica

Maat: px
Weergave met pagina beginnen:

Download "HOOFDSTUK IV Toepassingen in Informatica"

Transcriptie

1 HOOFDSTUK IV Toepassingen in Informatica 1. DATABANKEN BEVRAGEN Deze slides zijn grotendeels een vertaling uit het Engels van cursusmateriaal van Levesque en Reiter.

2 Relationele databanken Een relationele databank is een systeem om informatie op te slaan en op te vragen. Dit is meest gebruikte methode hiervoor, bv: SQL, Access. De informatie wordt opgeslagen in tabellen. Een tabel is eigenlijk een relatie, inderdaad: Een rij in een tabel met 2 kolommen is een koppel. De verzameling van die koppels is een relatie op D, waarbij: D = de verzameling van al de items in de rijen van de tabellen. Deze relaties vormen een structuur D met universum D, en met constanten al de verschillende items.

3 Voorbeeld: StudentenDatabank Namen van de verschillende tabellen (relaties): Instructor: is docent voor Enrolled: is ingeschreven voor Prerequ: is (directe) nodige voorkennis voor Grade: behaalde voor (ooit) de score PassingGrade: is een slaag-score We laten toe dat een student meer dan één score heeft voor een zelfde vak.

4 M200 M200 M200 M100 M100 CS238 CS238 CS230 CS230 CS230 CS230 Flo Sam Jill Ann Tom Ann May Bill Sam Jack Jill Enrolled D M100 Flo Flo Sam Jill Ann Bill May Flo Jack Jill Bill Sam B AA B C F AA AA C A D AAA M100 M100 M100 CS230 CS230 CS230 CS230 CS148 CS148 CS148 CS148 Grade CS238 M200 M100 CS230 CS230 Pat Sue Sue Hec Ray Instructor M200 CS238 CS230 M100 CS230 CS148 Prerequ

5 PassingGrade AAA AA A B C Ter herinnering: Instructor(docent, vak) Enrolled(student, vak) Prerequ( voorkennis, opvolgvak) Grade(student, vak, score) PassingGrade(score)

6 Queries met antwoord ja of nee Behaalde Sam (ooit) een AAA in CS148? Yes Grade(Sam, CS148, AAA) Is Sue docent van zowel M100 als M200? Yes Instructor(Sue, M100) Instructor(Sue, M200) Is precies één van CS148 of M100 (directe) nodige voorkennis voor CS230? Yes {Prerequ(CS148,CS230) Prerequ(M100,CS230)} {Prerequ(CS148,CS230) Prerequ(M100,CS230)} Alternatief: {Prerequ(CS148,CS230) Prerequ(M100,CS230)} { Prerequ(CS148,CS230) Prerequ(M100,CS230)}

7 Queries, vervolg (1) Vereist CS238 nodige voorkennis? Yes ( x)prerequ(x,cs238) Is May geslaagd voor CS230? Yes ( x){ Grade(May,CS230,x) PassingGrade(x) } Heeft Ray minstens één student? Yes ( x){ Instructor(Ray, x) ( y)enrolled(y,x) } Instructor(docent, vak) Enrolled(student, vak) Prerequ( voorkennisvak, opvolgvak) Grade(student, vak, score) PassingGrade(score)

8 Queries, vervolg (2) Heeft Flo al een examen van een vak afgelegd? ( x)( y)grade(flo,x,y) Doceert Ray al de vakken die ( directe ) nodige voorkennis zijn voor CS238? Yes. ( x){ Prerequ(x,CS238) Instructor(Ray,x) } Is er iemand die ingeschreven is voor CS230 en die steeds geslaagd is voor alle vakken die hij/zij tot hiertoe aflegde? Yes ( x){ Enrolled(x,CS230) ( y)( z)[grade(x,y,z) PassingGrade(z)] } Instructor(docent, vak) Enrolled(student, vak) Prerequ( voorkennisvak, opvolgvak) Grade(student, vak, score) PassingGrade(score) Yes

9 Queries, vervolg (3) Is iedereen die ingeschreven is voor CS230, geslaagd voor minstens één vak gedoceerd door Sue? No! ( x){ Enrolled(x,CS230) ( w)[ Instructor(Sue,w) ( s)(grade(x,w,s) PassingGrade(s)) ] } Heeft John examen voor CS230 afgelegd? ( s)grade(john,cs230,s) Instructor(docent, vak) Enrolled(student, vak) Prerequ( voorkennisvak, opvolgvak) Grade(student, vak, score) PassingGrade(score) No!

10 Queries, vervolg (4) Zijn er studenten die bij elke docent les volgen? No! ( x)( y){ ( w)instructor(y,w) ( u)[ Instructor(y,u) Enrolled(x,u) ] } Is er een student die precies één vak volgt? Yes ( x)( w){enrolled(x,w) ( u)[enrolled(x,u) u = w]} Instructor(docent, vak) Enrolled(student, vak) Prerequ( voorkennisvak, opvolgvak) Grade(student, vak, score) PassingGrade(score)

11 Queries met antwoord een tabel Gevraagd: alle koppels (x,y) zodat student x geslaagd is voor vak y. Query: ( z){grade(x,y,z) PassingGrade(z)} Deze query heeft vrije variabelen x en y. Gevraagd: alle studenten x die precies één vak volgen. Query: ( w){enrolled(x,w) ( u)[enrolled(x,u) u = w]} Deze query heeft vrije variabele x.

12 Correctheid Een predikatenlogica-formulering van een query (geformuleerd in het Nederlands) is correct indien de predicatenlogica-formule dezelfde betekenis heeft als de Nederlandse zin, voor eender welke zinvolle waarden in de rijen en kolommen van de tabellen van de databank. Disclaimer: De definitie is eerder vaag, maar voldoende voor ons gebruik.

13 Specificaties en constraints Ontwerp van informatiesystemen vergt formulering van preciese specificaties, waaraan de programmeurs zich dienen te houden. Voor databanken bestaat een deel van die specificaties meestal uit integrity constraints. Integrity constraints zijn voorwaarden waaraan de data in de databank steeds moeten voldoen. Anders kan de software die de databank manipuleert verkeerd werken. Daar Engels en Nederlands soms niet erg precies (of dubbelzinnig) zijn is het beter de constraints in een formele taal te formuleren (bijvoorbeeld predikatenlogica-taal!).

14 Constraints, voorbeelden (1) Geen enkel vak is (directe) nodige voorkennis voor zichzelf. ( w)prerequ(w,w) Niemand kan meer dan één score hebben voor éénzelfde vak. Opgepast: die constraint is niet voldaan voor onze StudentenDatabank. ( x)( w)( s)( t){grade(x,w,s) Grade(x,w,t) s t} Instructor(docent, vak) Enrolled(student, vak) Prerequ( voorkennisvak, opvolgvak) Grade(student, vak, score) PassingGrade(score)

15 Constraints, voorbeelden (2) Geen enkele (huidige) student kan een docent zijn. ( x){( w)instructor(x,w) ( w)enrolled(x,w)} Iedereen die ingeschreven is voor een vak moet geslaagd zijn voor alle vakken die (directe) nodige voorkennis zijn voor dat vak. ( x)( w){enrolled(x,w) ( t)[prerequ(t,w) ( s)(grade(x,t,s) PassingGrade(s))]} Instructor(docent, vak) Enrolled(student, vak) Prerequ( voorkennisvak, opvolgvak) Grade(student, vak, score) PassingGrade(score)

16 Test jezelf!!! Los al de vorige voorbeelden zelf op: Schrijf jouw oplossing met LogicPalet. Hint: Vul de tekstvakken S met de gebruikte relatiesymbolen: bijvoorbeeld: Enrolled(*,*) Grade(*,*,*). Vergelijk jouw oplossing met die van de docent, via AskSpass. Die oplossingen moeten logisch equivalent zijn (tenzij je het te ver gezocht hebt) Je kan de oplossingen in het huidige document met copy-paste overbrengen naar LogicPalet. (Slechts deels met Linux. Dan is het beter het bestand Toepassingen.utxt te importeren.) Voor AskSpass moet je de declaraties toevoegen die op de volgende slide staan:

17 Declaraties voor AskSpass voor StudentenDatabank Toevoegenaan declaraties van de relatie-identifiers:,(instructor,2),(enrolled,2),(prerequ,2),(grade,3),(passinggrade,1) Toevoegenaan declaraties van functies en constanten:,(ray,0),(hec,0),(sue,0),(pat,0),(jill,0),(jack,0),(sam,0),(bill,0),(may,0),(ann,0),(tom,0),(flo,0),(cs148,0),(cs230,0),(cs238,0),(m100,0),(m200,0),(aaa,0),(aa,0),(a,0),(b,0), (C,0),(John,0) Voeg dit toe achter de gebruikelijke declaraties voor Tarski en de oefeningenzittingen. Opgepast: de letters a,b,c,,q zijn voorbehouden voor constanten!!!

18 Disclaimer Twee correcte predikatenlogica-formuleringen van een zelfde query (geformuleerd in het Nederlands) hoeven niet noodzakelijk logisch equivalent te zijn. Maar de queries in de opgaven zijn zodanig opgesteld dat dit wel het geval is, tenzij jouw formulering te ver gezocht is. Voorbeeld: Behaalden Sam en Jill (ooit) een AAA in CS148? Grade(Sam, CS148, AAA) Grade(Jill, CS148, AAA) Grade(Sam, CS148, AAA) Grade(Jill, CS148, AAA) Sam Jill

19 Oefeningen Formuleer volgende queries of constraints in predikatenlogica: 1. Zijn alle studenten die ingeschreven zijn voor CS230 geslaagd voor dat vak? (Opgepast: student kan meerdere scores voor een vak hebben!) 2. Is er een student die ingeschreven is voor alle vakken die Sue doceert? 3. Is er een student die ingeschreven is voor meer dan twee vakken? 4. Zijn Ray en Hec docenten voor CS230 en tevens de enigen hiervoor? 5. Is er een student die (uiteindelijk) geslaagd is voor alle door hem afgelegde vakken? (Opgepast: een student kan meerdere scores voor een vak hebben!) 6. Constraint: Niemand mag ingeschreven zijn voor een vak waarvoor hij/zij al geslaagd is. 7. Constraint: Iedereen die ingeschreven is voor een vak moet geslaagd zijn voor alle vakken die (directe) nodige voorkennis zijn voor dat vak.

20 Toepassingen in Informatica 2. Formele Methoden in Software Engineering Deze slides zijn voor een groot deel gebaseerd op Engelstalig cursusmateriaal van Levesque en Reiter.

21 Informatiesystemen specificiëren Meestal werken meerdere groepen mensen aan een groot software systeem. Elke groep werkt aan een onderdeel (component, klasse). Duidelijke en precieze communicatie tussen die groepen is essentiëel. Engelse taal is soms niet precies genoeg. Code is te gedetailleerd. Ondubbelzinnige specificatie van wat elke component doet is noodzakelijk. Oplossing: formele taal voor specificaties. Meestal gebaseerd op predikatenlogica!

22 Systeemeigenschappen garanderen Systemen met grote veiligheidsvereisten: Controlesystemen voor de luchtvaart. Lanceren van ruimtetuigen. Medische toepassingen. Kerncentrales. Kritische systeemeigenschappen moeten met absolute zekerheid gegarandeerd worden. Vb: Twee vliegtuigen mogen nooit opstijgen vanop de zelfde startbaan binnen een interval van 1 minuut. Ideaal: met automated reasoning bewijzen dat die kritische systeemeigenschappen een logisch gevolg zijn van de specificaties v.d. componenten. De specificaties moeten dan geformuleerd in logicataal.

23 Voorbeeld: bibliotheek BibSys Als voorbeeld behandelen we een zeer eenvoudig informatiesysteem BibSys voor beheer van een bibliotheek. BibSys bestaat uit: Een databank met tabellen: InHoldings: tabel met één kolom: boeken in bezit v.d. bib. OnLoan: tabel met twee kolommen: geeft volgende relatie: boek is uitgeleend aan persoon Available: tabel met één kolom: boeken aanwezig in bib. Software om bewerkingen (transacties) op de databank uit te voeren.

24 Transacties, pre- en postcondities De meeste informatiesystemen zijn dynamisch: hun toestand verandert voortdurend. Bewerkingen die de toestand van een informatiesysteem veranderen heten transacties. Transacties hebben precondities: Een transactie mag alleen maar worden uitgevoerd indien de toestand v.h. systeem voldoet aan de precondities. Transacties hebben postcondities: dat zijn de eigenschappen waaraan de toestand van het systeem voldoet na uitvoering van de transactie.

25 De transacties van BibSys Borrow(u,x): persoon u leent boek x uit. Precondities: x is aanwezig in de bib. Return(u,x): persoon u geeft boek x terug aan bib. Precondities: x is uitgeleend aan u. Remove(x): boek x wordt uit bezit van bib. verwijderd. Precondities: x is aanwezig in de bib. Add(x): boek x wordt aangekocht door bib. Precondities: x is niet in bezit van de bib. Notatie: variabelen x, y, z voor boeken, u, w, v voor personen.

26 Toestandsvariabelen Een dynamisch informatiesysteem verandert van toestand telkens er een transactie wordt uitgevoerd. Het is in toestand 0 in het begin, in toestand 1 na eerste transactie, in toestand 2 na tweede transactie,, in toestand s na s de transactie. We gebruiken variabelen s, t, r, om (namen van) toestanden van het systeem aan te duiden. Dit zijn toestandsvariabelen. De systeemeigenchappen blijven dezelfde tijdens toestand s, voor eender welke s. We kunnen de systeemeigenschappen beschouwen als functies van s. Men kan gewoonlijk een aantal systeemeigenschappen opsommen die de toestand van het systeem volledig beschrijven. Dit noemt men dan de toestandseigenschappen.

27 Toestandseigenschappen van BibSys De volgende eigenschappen (relaties) geven een volledige beschrijving van BibSys tijdens toestand s. InHoldings(x,s): boek x is in bezit v.d. bib. tijdens toestand s. OnLoan(x,u,s): boek x is uitgeleend aan persoon u tijdens s. Available(x,s): boek x is aanwezig in bib. tijdens toestand s.

28 Pre & postcondities voor Borrow(u,x) Transactie: persoon u leent boek x. s=toestand vóór, t=toestand na. Precondities gegeven door volgende formule BorrowPrecond(u,x,s): Available(x,s) Postcondities informeel: Een boek y is Inholdings na transactie asa y is Inholdings vóór transactie. Een boek y is uitgeleend aan persoon w na transactie asa (y=x en w=u) of y is uitgeleend aan w vóór transactie. Een boek y is Available na transactie asa y x en y is available vóór transactie. Postcondities formeel: gegeven door formule BorrowPostcond(u,x,s,t): ( y)[ InHoldings(y,t) InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) y = x w = u OnLoan(y,w,s) ] ( y)[ Available(y,t) y x Available(y,s) ] boeken x, y personen u, w s= toestand vóór t= toestand na

29 Pre & postcondities voor Return(u,x) Transactie: persoon u geeft boek x terug. s=toestand vóór, t=toestand na. Precondities gegeven door volgende formule ReturnPrecond(u,x,s): OnLoan(x,u,s) Postcondities informeel: Een boek y is Inholdings na transactie asa y is Inholdings vóór transactie. Een boek y is uitgeleend aan persoon w na transactie asa (y=x en w=u) en y is uitgeleend aan w vóór transactie. Een boek y is Available na transactie asa y=x of y is available vóór transactie. Postcondities formeel: gegeven door formule ReturnPostcond(u,x,s,t): ( y)[ InHoldings(y,t) InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) (y = x w = u) OnLoan(y,w,s) ] ( y)[ Available(y,t) y = x Available(y,s) ] boeken x, y personen u, w s= toestand vóór t= toestand na

30 Pre & postcondities voor Remove(x) Transactie: boek x wordt verwijderd. s=toestand vóór, t=toestand na. Precondities gegeven door volgende formule RemovePrecond(u,x,s): Available(x,s) Postcondities informeel: Een boek y is Inholdings na transactie asa y x en y is Inholdings vóór transactie. Een boek y is uitgeleend aan persoon w na transactie asa y is uitgeleend aan w vóór transactie. Een boek y is Available na transactie asa y x en y is available vóór transactie. Postcondities formeel: gegeven door formule RemovePostcond(u,x,s,t): ( y)[ InHoldings(y,t) y x InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) OnLoan(y,w,s) ] ( y)[ Available(y,t) y x Available(y,s) ] boeken x, y personen u, w s= toestand vóór t= toestand na

31 Pre & postcondities voor Add(x) Transactie: boek x wordt aangekocht. s=toestand vóór, t=toestand na. Precondities gegeven door volgende formule AddPrecond(u,x,s): InHoldings(x,s) Postcondities informeel: Een boek y is Inholdings na transactie asa y=x of y is Inholdings vóór transactie. Een boek y is uitgeleend aan persoon w na transactie asa y is uitgeleend aan w vóór transactie. Een boek y is Available na transactie asa y=x of y is available vóór transactie. Postcondities formeel: gegeven door formule AddPostcond(u,x,s,t): ( y)[ InHoldings(y,t) y=x InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) OnLoan(y,w,s) ] ( y)[ Available(y,t) y=x Available(y,s) ] boeken x, y personen u, w s= toestand vóór t= toestand na

32 Pre & postcondities: algemeen Zij Trans(x 1,,x n ) een transactie, met parameters x 1,,x n. Met TransPrecond(x 1,,x n,s) duiden we de formule aan die de conjunctie is van al de precondities voor Trans, in functie van de toestand s vóór de transactie. Met TransPostcond(x 1,,x n,s,t) duiden we de formule aan die de conjunctie is van al de postcon-dities voor Trans, in functie van de toestand s vóór de transactie en de toestand t na de transactie. De postcondities drukken de toestandseigenschappen na de transactie uit in termen van de toestandseigenschappen vóór de transactie.

33 Software-ontwikkelingscyclus Programmeurs schrijven code voor elke transactie. Beschouw de pre- en postcondities van een transactie als een contract dat de programmeurs moeten tekenen. Correctheid van de code voor een transactie betekent: wanneer de code uitgevoerd wordt in toestand die aan de precondities voldoet dan stopt het programma na eindig stappen in toestand die voldoet aan de postcondities. Verificatie van correctheid v.d. code voor een transactie: dit is program verification: daar gaan we niet verder op in. Onder de veronderstelling dat elke programmeur aan zijn contract voldoet, moeten we toch nog verifiëren dat het geheel werkt zoals het moet. Kritische systeemeigenschappen moeten met absolute zekerheid gegarandeerd worden. (bv. Geen twee vliegtuigen op zelfde startbaan )

34 Invarianten Kritische systeemeigenschappen zijn dikwijls invariante systeemeigenschappen. Een systeemeigenschap P(s) heet invariant onder een transactie Trans indien het volgende geldt: Indien eigenschap P(s) geldt in toestand s, en indien de transactie Trans het systeem wijzigt van toestand s naar toestand t, dan geldt P(t), zelfs indien toestand s het resultaat is van een systeemfout. Een systeemeigenschap P(s) is invariant indien ze invariant is onder alle voorziene transacties. Indien bovendien de eigenschap P geldt in de initiële toestand van het systeem, dan geldt P(s) in alle toestanden s.

35 Formele bewijzen van invarianten Om aan te tonen dat systeemeigenschap P(s) invariant is onder transactie Trans volstaat het te bewijzen dat volgende formule logisch waar is: ( x 1 )( x 2 ) ( x n )( s)( t) { P(s) TransPrecond(x 1,,x n,s) TransPostcond(x 1,,x n,s,t) P(t) }

36 Systeemeigenschappen bewijzen Om te bewijzen dat systeemeigenschap P(s) geldt in elke toestand s volstaat het te bewijzen dat P geldt in de initiële toestand van het systeem en dat voor elke transactie Trans de volgende pred-taal-formule logisch waar is: ( x 1 )( x 2 ) ( x n )( s)( t) { P(s) TransPrecond(x 1,,x n,s) TransPostcond(x 1,,x n,s,t) P(t) } We gaan er wel van uit dat de code voor elke transactie correct is.

37 BibSys: Systeemeigenschappen E 1 : Een boek is in het bezit van de bib als en slechts als het aanwezig is of uitgeleend is. Formeel: voor elke toestand s geldt volgende formule E 1 (s): ( x)[ InHoldings(x,s) Available(x,s) ( u)onloan(x,u,s) ] E 2 : Geen enkel boek in bezit van de bib, is tegelijkertijd uitgeleend en aanwezig. Formeel: voor elke toestand s geldt volgende formule E 2 (s): ( x)[ InHoldings(x,s) ( u)onloan(x,u,s) Available(x,s) ] E 3 : Geen enkel boek in bezit van de bib, is uitgeleend aan meer dan één persoon. Formeel: voor elke toestand s geldt volgende formule E 3 (s): ( x)[ InHoldings(x,s) ( u)( w)(u w OnLoan(x,u,s) OnLoan(x,w,s)) ]

38 Formeel bewijs van E 1 (s) E 2 (s) E 3 (s) Zeker waar als s de initiële toestand is. Het volstaat dus invariantie te bewijzen. Het is voldoende te bewijzen dat E 1 (s) E 2 (s) E 3 (s) invariant is onder elk van de vier transacties. Bv. voor transactie Borrow(u,x) moeten we bewijzen dat volgende formule logisch waar is: ( u)( x)( s)( t) { P(s) BorrowPrecond(u,x,s) BorowPostcond(u,x,s,t) P(t) } met P(s) de formule E 1 (s) E 2 (s) E 3 (s). Hiervoor kunnen we de theorem prover SPASS gebruiken!!!

39 Declaraties voor SPASS Toevoegen aan declaraties van relatieidentifiers:,(inholdings,2),(onloan,3),(available,2) Voeg dit toe achter de gebruikelijke declaraties voor Tarski en de oefeningenzittingen. Opgepast: de letters a,b,c,,q zijn voorbehouden voor constanten!!!

40 Invariantie onder Borrow Te bewijzen: volgende formule is logisch waar: ( u)( x)( s)( t) { ( x)[ InHoldings(x,s) Available(x,s) ( u)onloan(x,u,s) ] ( x)[ InHoldings(x,s) ( u)onloan(x,u,s) Available(x,s) ] ( x)[ InHoldings(x,s) ( u)( w)(u w OnLoan(x,u,s) OnLoan(x,w,s)) ] Available(x,s) ( y)[ InHoldings(y,t) InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) y = x w = u OnLoan(y,w,s) ] ( y)[ Available(y,t) y x Available(y,s) ] ( x)[ InHoldings(x,t) Available(x,t) ( u)onloan(x,u,t) ] ( x)[ InHoldings(x,t) ( u)onloan(x,u,t) Available(x,t) ] ( x)[ InHoldings(x,t) ( u)( w)(u w OnLoan(x,u,t) OnLoan(x,w,t)) ] } SPASS bewijst dit op minder dan 0,1 seconde!!!

41 Invariantie onder Return Te bewijzen: volgende formule is logisch waar: ( u)( x)( s)( t) { ( x)[ InHoldings(x,s) Available(x,s) ( u)onloan(x,u,s) ] ( x)[ InHoldings(x,s) ( u)onloan(x,u,s) Available(x,s) ] ( x)[ InHoldings(x,s) ( u)( w)(u w OnLoan(x,u,s) OnLoan(x,w,s)) ] OnLoan(x,u,s) ( y)[ InHoldings(y,t) InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) (y = x w = u) OnLoan(y,w,s) ] ( y)[ Available(y,t) y = x Available(y,s) ] ( x)[ InHoldings(x,t) Available(x,t) ( u)onloan(x,u,t) ] ( x)[ InHoldings(x,t) ( u)onloan(x,u,t) Available(x,t) ] ( x)[ InHoldings(x,t) ( u)( w)(u w OnLoan(x,u,t) OnLoan(x,w,t)) ] } SPASS bewijst dit op minder dan 0,1 seconde!!!

42 Invariantie onder Remove Te bewijzen: volgende formule is logisch waar: ( u)( x)( s)( t) { ( x)[ InHoldings(x,s) Available(x,s) ( u)onloan(x,u,s) ] ( x)[ InHoldings(x,s) ( u)onloan(x,u,s) Available(x,s) ] ( x)[ InHoldings(x,s) ( u)( w)(u w OnLoan(x,u,s) OnLoan(x,w,s)) ] Available(x,s) ( y)[ InHoldings(y,t) y x InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) OnLoan(y,w,s) ] ( y)[ Available(y,t) y x Available(y,s) ] ( x)[ InHoldings(x,t) Available(x,t) ( u)onloan(x,u,t) ] ( x)[ InHoldings(x,t) ( u)onloan(x,u,t) Available(x,t) ] ( x)[ InHoldings(x,t) ( u)( w)(u w OnLoan(x,u,t) OnLoan(x,w,t)) ] } SPASS bewijst dit op minder dan 0,1 seconde!!!

43 Invariantie onder Add Te bewijzen: volgende formule is logisch waar: ( u)( x)( s)( t) { ( x)[ InHoldings(x,s) Available(x,s) ( u)onloan(x,u,s) ] ( x)[ InHoldings(x,s) ( u)onloan(x,u,s) Available(x,s) ] ( x)[ InHoldings(x,s) ( u)( w)(u w OnLoan(x,u,s) OnLoan(x,w,s)) ] InHoldings(x,s) ( y)[ InHoldings(y,t) y=x InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) OnLoan(y,w,s) ] ( y)[ Available(y,t) y=x Available(y,s) ] ( x)[ InHoldings(x,t) Available(x,t) ( u)onloan(x,u,t) ] ( x)[ InHoldings(x,t) ( u)onloan(x,u,t) Available(x,t) ] ( x)[ InHoldings(x,t) ( u)( w)(u w OnLoan(x,u,t) OnLoan(x,w,t)) ] } SPASS bewijst dit op minder dan 0,1 seconde!!!

44 So what? Kritiek: veel werk om een evidentie te bewijzen? Fysisch bekeken kan een boek niet aan twee verschillende personen tegelijkertijd uitgeleend zijn Wat we bewezen gaat niet over de fysische werkelijkheid maar over inhoud van de databank. We bewezen dit onafhankelijk van de details van de software, onder voorwaarde dat de code van elke transactie voldoet aan het contract van de pre- en postcondities. (Dit is niet zo evident ) We bewezen zelfs meer: invariantie! Als de eigenschap geldt in een toestand die bekomen is door een systeemfout dan blijft ze toch nog gelden na eender welke (correct uitgevoerde) transactie!

45 Een subtiliteit De eigenschap E 3 (s) zelf, is niet invariant onder Borrow. Inderdaad de volgende formule is niet logisch waar: ( u)( x)( s)( t) { ( x)[ InHoldings(x,s) ( u)( w)(u w OnLoan(x,u,s) OnLoan(x,w,s)) ] Available(x,s) ( y)[ InHoldings(y,t) InHoldings(y,s) ] ( y)( w)[ OnLoan(y,w,t) y = x w = u OnLoan(y,w,s) ] ( y)[ Available(y,t) y x Available(y,s) ] ( x)[ InHoldings(x,t) ( u)( w)(u w OnLoan(x,u,t) OnLoan(x,w,t)) ] } SPASS verifieert dit in 0,11 seconden. Door een systeemfout zou het kunnen dat in toestand s, volgens de databank, het boek x is uitgeleend aan een persoon w u, maar toch genoteerd als available. Na de transactie is x dan uitgeleend aan w en u (althans volgens de databank ). Dus E 3 (s) is niet invariant, alhoewel E 1 (s) E 2 (s) E 3 (s) wel invariant is!!!

46 Oefening Beschouw volgende transacties op StudentenDatabank van 1: AddGrade(student,vak,score): toevoegen aan tabel Grade. EnrollStudent(student,vak): toevoegen aan tabel Enrolled. Formuleer in predikatenlogica-taal de voor de hand liggende pre- en postcondities voor deze transacties, zodanig dat het volgende gegarandeerd is: Een student die een score voor een vak verkrijgt moet daar voor ingeschreven zijn. Een student die een score voor een vak verkrijgt moet automatisch voor dat vak uit de tabel Enrolled verdwijnen. Hij mag zich eventueel later terug inschrijven. Iedereen die ingeschreven is voor een vak moet geslaagd zijn voor alle vakken die nodige voorkennis zijn voor dat vak. Iemand die ingeschreven is of reeds geslaagd is voor een vak mag zich niet inschrijven voor dat vak. Variabelen: studenten s1,s2, ; vakken v1,v2, ; score g1, g2,

OEFENEN MET TARSKI-WERELDEN

OEFENEN MET TARSKI-WERELDEN OEFENINGEN TARSKI-WERELDEN 1 OEFENEN MET TARSKI-WERELDEN Samenvatting - Een Tarski-wereld bestaat uit figuren (minstens 1) die zich op een schaakbord met 8x8 velden bevinden (zie tekening 1 verderop).

Nadere informatie

Ontwerp van Algoritmen: opgaven weken 3 en 4

Ontwerp van Algoritmen: opgaven weken 3 en 4 0 Ontwerp van Algoritmen: opgaven weken 3 en 4 Voor alle volgende opgaven over programmaatjes geldt de spelregel: formuleer altijd eerst alle bewijsverplichtingen. selectie 45. (tail distribution)(prima

Nadere informatie

OEFENINGEN LOGICA 1 OEFENINGEN LOGICA

OEFENINGEN LOGICA 1 OEFENINGEN LOGICA 1 Opmerking. Indien je werkt met Windows 95, 98, 2000,,XP (niet met Linux) dan kun je alle formules met copy-paste vanuit dit pdf document (klik op T in de werkbalk bovenaan het pdf venster) overbrengen

Nadere informatie

Tentamen Informatica 6, 2IJ60,

Tentamen Informatica 6, 2IJ60, Tentamen Informatica 6, 2IJ60, 29-04-2005 Dit tentamen bestaat uit 6 opgaven. Bij elke opgave staat aangegeven hoeveel punten te behalen zijn. Één punt ontvang je cadeau voor de aanwezigheid. Het eindresultaat

Nadere informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster 4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens

Nadere informatie

Tentamen Informatica 6, 2IJ60,

Tentamen Informatica 6, 2IJ60, Tentamen Informatica 6, 2IJ60, 18-03-2005 Dit tentamen bestaat uit 6 opgaven. Bij elke opgave staat aangegeven hoeveel punten te behalen zijn. Één punt ontvang je cadeau voor de aanwezigheid. Het eindresultaat

Nadere informatie

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit.

Labo IDP. In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. XOR Q AND. Figuur 1: Een logisch circuit. Labo IDP In dit labo gaan we IDP gebruiken voor het analyseren van logische circuits. K L A XOR N B XOR P M D AND Q AND C O OR E R R Tuesday 15 December 2009 Figuur 1: Een logisch circuit. Veronderstel

Nadere informatie

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015

Je hebt twee uur de tijd voor het oplossen van de vraagstukken. µkw uitwerkingen. 12 juni 2015 Je hebt twee uur de tijd voor het oplossen van de vraagstukken. Elk vraagstuk is maximaal 10 punten waard. Begin elke opgave op een nieuw vel papier. µkw uitwerkingen 12 juni 2015 Vraagstuk 1. We kunnen

Nadere informatie

Bespreking Examen Analyse 1 (Augustus 2007)

Bespreking Examen Analyse 1 (Augustus 2007) Bespreking Examen Analyse 1 (Augustus 2007) Vooraf: Zoals het stilletjes aan een traditie is geworden, geef ik hier bedenkingen bij het examen van deze septemberzittijd. Ik zorg ervoor dat deze tekst op

Nadere informatie

ling van die eigenschap binnen het model geldt. In het bijzonder bij het wiskundig modelleren van een programma kan een eigenschap met wiskundige zeke

ling van die eigenschap binnen het model geldt. In het bijzonder bij het wiskundig modelleren van een programma kan een eigenschap met wiskundige zeke De Nederlandse samenvatting van een proefschrift is bij uitstek het onderdeel van het proefschrift dat door familie en vrienden wordt gelezen. Voor hen wil ik deze samenvatting dan ook schrijven als een

Nadere informatie

1. Databanken. Wat is een databank? Verschillende opslagmethodes

1. Databanken. Wat is een databank? Verschillende opslagmethodes 1. Databanken Wat is een databank? Verschillende opslagmethodes Tekst bestanden Spreadsheet Relationele gegevensbanken Relationeel model De gestandaardiseerde opvraagtaal SQL Beheer van een mysql databank

Nadere informatie

Module Limieten van de berekenbaarheid : antwoorden

Module Limieten van de berekenbaarheid : antwoorden Module Limieten van de berekenbaarheid : antwoorden Gilles Coremans 2018 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license. Dit werk is gebaseerd

Nadere informatie

rh276a 0 We breiden nu bovenstaand programmafragment uit door assignments toe te voegen aan een nieuwe variabele m, aldus:

rh276a 0 We breiden nu bovenstaand programmafragment uit door assignments toe te voegen aan een nieuwe variabele m, aldus: rh276a 0 Een paar praktische stellinkjes 0 Standaardeindiging stelling (standaardeindiging 0) : Het volgende programmafragment eindigt, heeft als repetitie-invariant 0 n n N en als variante functie N n

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

Nadere informatie

Formeel Denken 2014 Uitwerkingen Tentamen

Formeel Denken 2014 Uitwerkingen Tentamen Formeel Denken 2014 Uitwerkingen Tentamen (29/01/15) 1. Benader de betekenis van de volgende Nederlandse zin zo goed mogelijk (6 punten) door een formule van de propositielogica: Als het regent word ik

Nadere informatie

Bespreking van het examen Complexe Analyse (tweede zittijd)

Bespreking van het examen Complexe Analyse (tweede zittijd) Bespreking van het examen Complexe Analyse (tweede zittijd) Bekijk ook de bespreking van het examen van de eerste zittijd (op Toledo). Het valt hier op dat de scores op sommige vragen wel heel slecht zijn.

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Tentamen Formele Methoden voor Software Engineering (213520)

Tentamen Formele Methoden voor Software Engineering (213520) Tentamen Formele Methoden voor Software Engineering (213520) 15 april 2010, 8:45 12:15 uur. BELANGRIJK: geef op je tentamen duidelijk aan: je studierichting of je beide huiswerkopgaven gemaakt hebt, en

Nadere informatie

V.2 Limieten van functies

V.2 Limieten van functies V.2 Limieten van functies Beschouw een deelverzameling D R, een functie f: D R en zij c R. We willen het gedrag van f in de buurt van c bestuderen. De functiewaarde in c is daarvoor niet belangrijk, de

Nadere informatie

Inleiding Analyse 2009

Inleiding Analyse 2009 Inleiding Analyse 2009 Inleveropgaven A). Stel f(, y) = In (0, 0) is f niet gedefinieerd. We bestuderen y2 2 + y 4. lim f(, y). (,y) (0,0) 1. Bepaal de waarde van f(, y) op een willekeurige rechte lijn

Nadere informatie

VERZAMELINGEN EN AFBEELDINGEN

VERZAMELINGEN EN AFBEELDINGEN I VERZAMELINGEN EN AFBEELDINGEN Het begrip verzameling kennen we uit het dagelijks leven: een bibliotheek bevat een verzameling van boeken, een museum een verzameling van kunstvoorwerpen. We kennen verzamelingen

Nadere informatie

Gaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien:

Gaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien: Van de opgaven met een letter en dus zonder nummer staat het antwoord achterin. De vragen met een nummer behoren tot het huiswerk. Spieken achterin helpt je niets in het beter snappen... 1 Stelling van

Nadere informatie

In deze appendix wordt bekeken wat er moet gebeuren voordat

In deze appendix wordt bekeken wat er moet gebeuren voordat Normaliseren A In deze appendix wordt bekeken wat er moet gebeuren voordat een systeem kan worden gedefinieerd. Dit begint met een analyse van de gegevens die de basis vormen. Daarbij wordt gekeken naar

Nadere informatie

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules.

I.3 Functies. I.3.2 Voorbeeld. De afbeeldingen f: R R, x x 2 en g: R R, x x 2 zijn dus gelijk, ook al zijn ze gegeven door verschillende formules. I.3 Functies Iedereen is ongetwijfeld in veel situaties het begrip functie tegengekomen; vaak als een voorschrift dat aan elk getal een ander getal toevoegt, bijvoorbeeld de functie fx = x die aan elk

Nadere informatie

Maak automatisch een geschikte configuratie van een softwaresysteem;

Maak automatisch een geschikte configuratie van een softwaresysteem; Joost Vennekens joost.vennekens@kuleuven.be Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal

Nadere informatie

Programmeren in Access 2016 met VBA

Programmeren in Access 2016 met VBA Programmeren in Access 2016 met VBA Kosten: 750,- excl. BTW per deelnemer Duur: 2 dagen Max Deelnemers: 8 Je leert tijdens deze training alle concepten van de programmeertaal VBA (Visual Basic for Applications)

Nadere informatie

Het installatiepakket haal je af van de website http://www.gedesasoft.be/.

Het installatiepakket haal je af van de website http://www.gedesasoft.be/. Softmaths 1 Softmaths Het installatiepakket haal je af van de website http://www.gedesasoft.be/. De code kan je bekomen op de school. Goniometrie en driehoeken Oplossen van driehoeken - Start van het programma:

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank Inhoud Computervaardigheden Hoofdstuk 5 Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.) Terminologie Data importeren Basis queries Allerhande Joins Doe dit. Aandachtspunt! Wat gebeurt hier?

Nadere informatie

Maak een analyse van deze gegevens door middel van ER-modellering.

Maak een analyse van deze gegevens door middel van ER-modellering. B Oefening: databanken B.1 Beschrijving van de gegevens Voor het creëren van een uurrooster is informatie in verband met opleidingen, activiteiten, docenten en lokalen nodig. Een opleiding wordt gekenmerkt

Nadere informatie

lengte aantal sportende broers/zussen

lengte aantal sportende broers/zussen Oefening 1 Alvorens opgenomen te worden in een speciaal begeleidingsprogramma s voor jonge talentvolle lopers, worden jonge atleten eerst onderworpen aan een aantal vragenlijsten en onderzoeken. Uit het

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Projectieve Vlakken en Codes

Projectieve Vlakken en Codes Projectieve Vlakken en Codes 1. De Fanocode Foutdetecterende en foutverbeterende codes. Anna en Bart doen mee aan een spelprogramma voor koppels. De ene helft van de deelnemers krijgt elk een kaart waarop

Nadere informatie

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Motivatie Software projecten mislukken vaker Vaker dan bouwkunde Vaker dan EM Vaker dan Oorzaak? Omgaan met verandering Vereisten Technologie Externe systemen

Nadere informatie

Informatie Systeem Ontwikkeling ISO 2R290

Informatie Systeem Ontwikkeling ISO 2R290 Informatie Systeem Ontwikkeling ISO 2R290 docent: Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. doel van dit vak kennis van en inzicht in basisbegrippen over informatiesystemen

Nadere informatie

ExpertHandboek Business Intelligence met Power BI in Excel Wim de Groot

ExpertHandboek Business Intelligence met Power BI in Excel Wim de Groot ExpertHandboek Business Intelligence met Power BI in Excel Wim de Groot Van Duuren Media, ISBN 9789463560665 Inhoud Voorwoord 1. Goed beginnen Voor wie is dit boek bedoeld? Werken met dit boek Afspraken

Nadere informatie

EXAMEN juni 2016 Gegevensbanken

EXAMEN juni 2016 Gegevensbanken EXAMEN juni 2016 Gegevensbanken 8 juni 2016 14.00 u. Het examen bestaat uit twee vragen die schriftelijk uitgewerkt worden. Instructies a. De vragen moeten worden opgelost in de volgorde waarin ze genummerd

Nadere informatie

Programmeren in Access met VBA

Programmeren in Access met VBA Programmeren in Access met VBA Kosten: 750,- excl. BTW per deelnemer Duur: 2 dagen Max Deelnemers: 8 U leert tijdens deze training alle concepten van de programmeertaal VBA (Visual Basic for Applications)

Nadere informatie

Stelling. SAT is NP-compleet.

Stelling. SAT is NP-compleet. Het bewijs van de stelling van Cook Levin zoals gegeven in het boek van Sipser gebruikt niet-deterministische turing machines. Het is inderdaad mogelijk de klasse NP op een alternatieve wijze te definiëren

Nadere informatie

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief

Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Helden van de wiskunde: L.E.J. Brouwer Brouwers visie vanuit een logica-informatica perspectief Herman Geuvers Radboud Universiteit Nijmegen Technische Universiteit Eindhoven 1 Helden van de wiskunde:

Nadere informatie

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3 Koen Rutten, Aris van Dijk 30 mei 2007 Inhoudsopgave 1 Verzamelingen 2 1.1 Definitie................................ 2 1.2 Eigenschappen............................

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

Nadere informatie

Design principes.

Design principes. Design principes joost.vennekens@kuleuven.be Doelstelling Code die werkt doet wat klant wil betrouwbaar is gemakkelijk te veranderen is En dit ook blijft doen Software rot Rottende software geeft geurtjes

Nadere informatie

II. ZELFGEDEFINIEERDE FUNCTIES

II. ZELFGEDEFINIEERDE FUNCTIES II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2006 2007, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. 1. Verzamelingen:

Nadere informatie

Les S-01: De basisbeginselen van SQL

Les S-01: De basisbeginselen van SQL Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database

Nadere informatie

Abstraheren van modellen

Abstraheren van modellen Abstraheren van modellen Geert Delanote 7 maart 2005 Geert.Delanote@cs.kuleuven.ac.be Software Development Methodology 1 Inhoudstafel Motivatie Denkpistes Software Development Methodology 2 Motivatie Verslag

Nadere informatie

standaarduurtarieven Europees Fonds voor Regionale Ontwikkeling VLAANDEREN Europese Unie

standaarduurtarieven Europees Fonds voor Regionale Ontwikkeling VLAANDEREN Europese Unie Praktische Handleiding gids bulk Comm toevoegen standaarduurtarieven Europees Fonds voor Regionale Ontwikkeling VLAANDEREN 2014-2020 1 Europese Unie Inhoud 1 Inleiding... 1 2 Hoe de functie Bulk toevoegen

Nadere informatie

Handleiding SNS online docent (dus niet de beheerstool!) Let op: er is een verschil tussen: Openen

Handleiding SNS online docent (dus niet de beheerstool!) Let op: er is een verschil tussen: Openen Handleiding SNS online docent (dus niet de beheerstool!) Let op: er is een verschil tussen: Sns voor de docent (waar onder andere tests worden aangemaakt en gekoppeld aan studentengroepen). Dit vind je

Nadere informatie

Logica in het (V)WO. Barteld Kooi

Logica in het (V)WO. Barteld Kooi Logica in het (V)WO Barteld Kooi Wie ben ik? Bijzonder hoogleraar logica en argumentatietheorie Ik geef al meer dan tien jaar colleges logica aan de RuG voor de opleidingen wijsbegeerte, wiskunde, (alfa-)informatica,

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie

FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie FACULTEIT ECONOMIE EN BEDRIJFSKUNDE Afdeling Kwantitatieve Economie Lineaire Algebra, tentamen Uitwerkingen vrijdag 4 januari 0, 9 uur Gebruik van een formuleblad of rekenmachine is niet toegestaan. De

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Extra Tentamen Databases 1, 2M400, 8 oktober 2003. Alle uitwerkingen van de opgaven moeten worden ingevuld in de daarvoor bestemde vrije

Nadere informatie

Semantiek 1 college 10. Jan Koster

Semantiek 1 college 10. Jan Koster Semantiek 1 college 10 Jan Koster 1 Vandaag Vorige keer: conceptuele structuur en semantische decompositie Vandaag: inleiding in de formele semantiek Gebruikt notaties uit formele logica plus de daar gehanteerde

Nadere informatie

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen

Hoofdstuk 3. Equivalentierelaties. 3.1 Modulo Rekenen Hoofdstuk 3 Equivalentierelaties SCHAUM 2.8: Equivalence Relations Twee belangrijke voorbeelden van equivalentierelaties in de informatica: resten (modulo rekenen) en cardinaliteit (aftelbaarheid). 3.1

Nadere informatie

Getallensystemen, verzamelingen en relaties

Getallensystemen, verzamelingen en relaties Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,

Nadere informatie

ADVANCED DATABASES Syllabus versie 2.0

ADVANCED DATABASES Syllabus versie 2.0 ECDL-MODULE ADVANCED DATABASES Syllabus versie 2.0 Doel Dit document bevat de syllabus van de module Advanced Databases. In de syllabus worden aan de hand van leeruitkomsten de kennis en vaardigheden uiteengezet

Nadere informatie

compact weer te geven (ken ook een waarde toe aan n).

compact weer te geven (ken ook een waarde toe aan n). 1 HOVO: Gravitatie en kosmologie OPGAVEN WEEK 2 - Oplossingen Opgave 1: Er geldt n 3 en we hebben de compacte uitdrukking y i a r i x r, waarbij we gebruik maken van de Einsteinsommatieconventie. a Schrijf

Nadere informatie

Ternaire relaties in ERDs zijn lastig

Ternaire relaties in ERDs zijn lastig Ternaire relaties in ERDs zijn lastig Maarten M. Fokkinga Versie van 3 juni 2002, 9:54 Inleiding In het afgelopen tentamen OIS (Ontwerpen van Informatiesystemen; 233026) stond onderstaande opgave over

Nadere informatie

Algebra groep 2 & 3: Standaardtechnieken kwadratische functies

Algebra groep 2 & 3: Standaardtechnieken kwadratische functies Algebra groep 2 & 3: Standaardtechnieken kwadratische functies Trainingsweek juni 2008 Kwadraat afsplitsen Een kwadratische functie oftewel tweedegraads polynoom) px) = ax 2 + bx + c a 0) kan in verschillende

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Data Manipulatie. Query Talen. / Informatica

Data Manipulatie. Query Talen. / Informatica Data Manipulatie Query Talen 1 Queries maken in TC en SQL (ter verduidelijking) We kijken nog even naar bier-query q: Geef alle paren van drinkers die niet samen naar een kroeg kunnen gaan en daar allebei

Nadere informatie

MODULETOETS 4 Eenvoudige Functies 20 minuten

MODULETOETS 4 Eenvoudige Functies 20 minuten MODULETOETS 4 Eenvoudige Functies 20 minuten Met deze moduletoets test u of u de opties geleerd uit het Praktijkboek kunt toepassen. Deze moduletoets is een prima voorbereiding op het Microsoft Office

Nadere informatie

OEFENINGEN PYTHON REEKS 4

OEFENINGEN PYTHON REEKS 4 Vraag 1: Introductie Tekenen OEFENINGEN PYTHON REEKS 4 Vanaf deze les gaan we gebruik maken van het pakket VPython om de objecten te tekenen en weer te geven. Om aan alle functies te kunnen die VPython

Nadere informatie

Van CaseTalk naar een database in SQLite studio

Van CaseTalk naar een database in SQLite studio Van CaseTalk naar een database in SQLite studio Dit document legt uit hoe je een SQL export uit CaseTalk kunt importeren in het DBMS (Database Management System) SQLite Studio. SQLIte studio is handig

Nadere informatie

Inschrijving met een STUDENTEN PROFIEL. INSCHRIJVING STAP 1 - Persoonsgegevens. INSCHRIJVING STAP 2 Aanbod en opleiding

Inschrijving met een STUDENTEN PROFIEL. INSCHRIJVING STAP 1 - Persoonsgegevens. INSCHRIJVING STAP 2 Aanbod en opleiding Inschrijving met een STUDENTEN PROFIEL INSCHRIJVING STAP 1 - Persoonsgegevens INSCHRIJVING STAP 2 Aanbod en opleiding INSCHRIJVING STAP 3&4 - Je profiel INSCHRIJVING STAP 5 - Wachtwoord INSCHRIJVING STAP

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

III.3 Supremum en infimum

III.3 Supremum en infimum III.3 Supremum en infimum Zowel de reële getallen als de rationale getallen vormen geordende lichamen. Deze geordende lichamen zijn echter principieel verschillend. De verzameling R is bijvoorbeeld aanzienlijk

Nadere informatie

III.2 De ordening op R en ongelijkheden

III.2 De ordening op R en ongelijkheden III.2 De ordening op R en ongelijkheden In de vorige paragraaf hebben we axioma s gegeven voor de optelling en vermenigvuldiging in R, maar om R vast te leggen moeten we ook ongelijkheden in R beschouwen.

Nadere informatie

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE The European Computer Driving Licence Foundation Ltd. Portview House Thorncastle Street Dublin 4 Ierland Tel: + 353 1 630

Nadere informatie

Aanvullingen bij Hoofdstuk 6

Aanvullingen bij Hoofdstuk 6 Aanvullingen bij Hoofdstuk 6 We veralgemenen eerst Stelling 6.4 tot een willekeurige lineaire transformatie tussen twee vectorruimten en de overgang naar twee nieuwe basissen. Stelling 6.4. Zij A : V W

Nadere informatie

Antwoorden bij Testtheorie. Inleiding in de theorie van de psychologische test en zijn toepassingen, door P. J. D. Drenth en K.

Antwoorden bij Testtheorie. Inleiding in de theorie van de psychologische test en zijn toepassingen, door P. J. D. Drenth en K. Antwoorden bij Testtheorie. Inleiding in de theorie van de psychologische test en zijn toepassingen, door P. J. D. Drenth en K. Sijtsma Opmerking vooraf: Enkele docenten hebben ons laten weten dat zij

Nadere informatie

Dimensie van een deelruimte en rang van een matrix

Dimensie van een deelruimte en rang van een matrix Dimensie van een deelruimte en rang van een matrix Definitie (Herinnering) Een basis voor een deelruimte H van R n is een lineair onafhankelijke verzameling vectoren die H opspant. Notatie Een basis van

Nadere informatie

Een introductie tot gegevensbanken

Een introductie tot gegevensbanken Een introductie tot gegevensbanken Kris Luyten Tom Van Laerhoven Expertisecentrum Digitale Media Limburgs Universitair Centrum Wetenschapsdagen 2002 1. Overzicht Wat zijn gegevensbanken? Bestanden versus

Nadere informatie

Leeswijzer bij het college Functies en Reeksen

Leeswijzer bij het college Functies en Reeksen Leeswijzer bij het college Functies en Reeksen Erik van den Ban Najaar 2012 Introductie eze leeswijzer bij het dictaat Functies en Reeksen (versie augustus 2011) heeft als doel een gewijzigde opbouw van

Nadere informatie

Uitwerkingen tentamen Lineaire Algebra 2 16 januari, en B =

Uitwerkingen tentamen Lineaire Algebra 2 16 januari, en B = Uitwerkingen tentamen Lineaire Algebra 2 16 januari, 215 Deze uitwerkingen zijn niet volledig, maar geven het idee van elke opgave aan. Voor een volledige oplossing moet alles ook nog duidelijk uitgewerkt

Nadere informatie

Examen VWO - Compex. wiskunde A1

Examen VWO - Compex. wiskunde A1 wiskunde A1 Examen VWO - Compex Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 25 mei totale examentijd 3 uur 20 05 Vragen 14 tot en met 21 In dit deel staan de vragen waarbij de computer

Nadere informatie

Het Gegevensmodel en draaitabellen in Excel 2013 (tip 193)

Het Gegevensmodel en draaitabellen in Excel 2013 (tip 193) Het Gegevensmodel en draaitabellen in Excel 2013 (tip 193) In vorige versies van Excel moest men om data te analyseren van verschillende bronnen deze data eerst ingeven of importeren in Excel, en om deze

Nadere informatie

Examen G0U13 Bewijzen en Redeneren Bachelor of Science Fysica en Wiskunde. vrijdag 3 februari 2012, 8:30 12:30

Examen G0U13 Bewijzen en Redeneren Bachelor of Science Fysica en Wiskunde. vrijdag 3 februari 2012, 8:30 12:30 Examen G0U13 Bewijzen en Redeneren Bachelor of Science Fysica en Wiskunde vrijdag 3 februari 2012, 8:30 12:30 Naam: Geef uw antwoorden in volledige, goed lopende zinnen. Het examen bestaat uit 5 vragen.

Nadere informatie

Introductie (relationele) databases

Introductie (relationele) databases Eerste les Introductie (relationele) databases Database en DBMS Een verzameling van gestructureerd opgeslagen gegevens Dus ook een kaartenbak is een database Van oudsher waren er hiërarchische en netwerkdatabases

Nadere informatie

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN

TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN TENTAMEN WISKUNDIGE BEELDVERWERKINGSTECHNIEKEN Vakcode: 8D2. Datum: dinsdag 29 april 28. Tijd: 14: 17:. Lees dit vóórdat je begint! Maak iedere opgave op een apart vel. Schrijf je naam en studentnummer

Nadere informatie

Voortgezette Logica, Week 2

Voortgezette Logica, Week 2 Voortgezette Logica, Week 2 Joost J. Joosten Universiteit Utrecht (sub)faculteit der Wijsbegeerte Heidelberglaan 8 3584 CS Utrecht Kamer 164, 030-2535575 jjoosten@phil.uu.nl www.phil.uu.nl/ jjoosten (hier

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.3 email: J.C.M.Keijsper@tue.nl studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds6 Technische Universiteit Eindhoven college 6 J.Keijsper (TUE)

Nadere informatie

CODEER- EN ANALYSEERBOEK VERSIE 6. Opdracht 3: begrijpend lezen Onderwijskunde Praktijk Onderzoek en Beleid

CODEER- EN ANALYSEERBOEK VERSIE 6. Opdracht 3: begrijpend lezen Onderwijskunde Praktijk Onderzoek en Beleid CODEER- EN ANALYSEERBOEK VERSIE 6 Opdracht 3: begrijpend lezen Onderwijskunde Praktijk Onderzoek en Beleid 2017-2018 1 Inhoudsopgave CODEER- EN ANALYSEERBOEK... 1 INHOUDSOPGAVE... 2 ALGEMEEN... 3 CODEREN...

Nadere informatie

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Oefenopgaven Grondslagen van de Wiskunde A

Oefenopgaven Grondslagen van de Wiskunde A Oefenopgaven Grondslagen van de Wiskunde A Jaap van Oosten 2007-2008 1 Kardinaliteiten Opgave 1.1. Bewijs, dat R N = R. Opgave 1.2. Laat Cont de verzameling continue functies R R zijn. a) Laat zien dat

Nadere informatie

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens

Nadere informatie

Steeds betere benadering voor het getal π

Steeds betere benadering voor het getal π Wiskunde & Onderwijs 38ste jaargang (2012 Steeds betere benadering voor het getal π Koen De Naeghel Samenvatting. We bespreken een oplossing voor de (veralgemeende opgave Noot 4 uit Wiskunde & Onderwijs

Nadere informatie

Vandaag. Onderzoeksmethoden: Statistiek 3. Recap 2. Recap 1. Recap Centrale limietstelling T-verdeling Toetsen van hypotheses

Vandaag. Onderzoeksmethoden: Statistiek 3. Recap 2. Recap 1. Recap Centrale limietstelling T-verdeling Toetsen van hypotheses Vandaag Onderzoeksmethoden: Statistiek 3 Peter de Waal (gebaseerd op slides Peter de Waal, Marjan van den Akker) Departement Informatica Beta-faculteit, Universiteit Utrecht Recap Centrale limietstelling

Nadere informatie

Wiskunde met (bedrijfs)economische toepassingen

Wiskunde met (bedrijfs)economische toepassingen FACULTEIT TEW Wiskunde met (bedrijfs)economische toepassingen Oefenexamens 1ste Bachelor TEW Eerste deel (januari) Academiejaar 2013-2014 Het examen vindt voor iedereen plaats in twee delen : het eerste

Nadere informatie

Logica voor Informatica

Logica voor Informatica Logica voor Informatica 13 Programma verificatie Wouter Swierstra University of Utrecht 1 Programmeertalen en logica Bij logische programmeertalen hebben we gezien dat we rechstreeks met (een fragment

Nadere informatie

HBO5 Informatica Netwerkbeheer (90 studiepunten)

HBO5 Informatica Netwerkbeheer (90 studiepunten) STUDIEFICHE CVO DE AVONDSCHOOL Opleiding HBO5 Informatica Netwerkbeheer (90 studiepunten) Module A8 Databanken (5 studiepunten) Plaats van de module in de opleiding: In deze module 'Netwerkbeheer 2' de

Nadere informatie

Propositionele logica en predikatenlogica. 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica :

Propositionele logica en predikatenlogica. 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica : HOOFDSTUK 4. LOGICA Opgaven Propositionele logica en predikatenlogica 1. Noteer volgende Nederlandse uitspraken formeel m.b.v. propositionele logica : a) Als de maan ichtbaar is en het niet sneeuwt, al

Nadere informatie

Vak: Toegepaste informatica

Vak: Toegepaste informatica Vak: Toegepaste informatica Let op: de inhoud van een vakfiche wordt jaarlijks aangepast. Zorg ervoor dat u de juiste vakfiche raadpleegt. Deze vakfiche is geldig van 1 januari 2015 tot en met 31 december

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Inhoud. CVO VIVO Kortrijk

Inhoud. CVO VIVO Kortrijk Flubaroo 2014-2015 Inhoud 1 Stappenplan... 2 2 Flubaroo installeren... 3 2.1 Add on toevoegen... 3 2.2 Taal instellen... 5 3 Beoordeel toets... 6 3.1 De beoordeling instellen... 6 3.2 Het overzicht...

Nadere informatie

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking

Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking Tentamen Grondslagen van de Wiskunde A Met beknopte uitwerking 10 december 2013, 09:30 12:30 Dit tentamen bevat 5 opgaven; zie ook de ommezijde. Alle opgaven tellen even zwaar (10 punten); je cijfer is

Nadere informatie