Andra relationella språk
|
|
- Ingrid Eklund
- för 10 år sedan
- Visningar:
Transkript
1 Andra relationella språk Kapitel 5 Andra relationella språk sid Tupelrelationskalkyl 1 Domänrelationskalkyl 6 Query-by-Example (QBE) 8
2 Andra relationella språk, tupelrelationskalkyl 5-1 Tupelrelationskalkyl Tupelrelationskalkyl är ett icke-proceduralt frågespråk (dvs. en fråga beskriver vilken information som önskas).tupelrelationskalkyl (begränsad till säkra uttryck) är lika uttrycksfullt som relationsalgebra. Dvs. för varje relationsalgebraiskt uttryck där endast grundoperatorer ingår finns ett ekvivalent uttryck i tupelrelationskalkyl, och tvärtom. Varje fråga är av formen: { t P (t) } Dvs. mängden av alla tupler t så att predikatet P är sant för t. t är en tupel-variabel, t[a] betecknar värdet för tupel t på attribut A. t r betecknar att tupel t finns i relation r. P är en formel liksom en formel i predikatkalkylen. En predikatkalkylformel uppbyggs av Mängd av attribut och konstanter Mängd av jämförelseoperatorer: <, <, =,, >, > Mängd av konektiver: och, eller, icke Implikation : P 1 P 2 Kvantorer: t r (P(t)) det existerar en tupel t i relation r sådan att predikatet P(t) är sant t r (P(t)) P är sant för alla tupler t i relation r P 1 P 2 ( (P 1 ) (P 2 )) P 1 P 2 (P 1 ) P 2 t r (P(t)) t r ( P(t))
3 Andra relationella språk, tupelrelationskalkyl 5-2 Exempelfrågor Bestäm loan_number, branch_name, och amount för lån större än { t t loan t[amount] > 1200} σ amount >1200 (loan) dvs. alla attribut ingår i svaret Bestäm lånnumret för varje lån större än 1200 (dvs. samma som ovan men bara lånnumret önskas i svaret). Π loan_number (σ amount >1200 (loan)) { t s loan ( t[loan_number] = s[loan_number] s[amount] > 1200 ) } Svaret är en ett-attributig tabell på schemat (loan_number), vilket bara framgår implicit i frågan Bestäm lånnummer och lånebelopp för varje lån större än { t s loan ( t[loan_number] = s[loan_number] t[amount] = s[amount] s[amount] > 1200 ) } Svaret är en två-attributig tabell på schemat (loan_number, amount), eftersom t har värden specificerade för loan_number och amount. Π loan_number, amount (σ amount >1200 (loan)) customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)
4 Andra relationella språk, tupelrelationskalkyl 5-3 Bestäm namnen på alla kunder som har ett lån, ett konto, eller båda i banken. { t s depositor ( t[customer_name] = s[customer_name]) u borrower ( t[customer_name] = u[customer_name]) } Π customer_name (borrower) Π customer_name (depositor) Bestäm namnen på alla kunder som har ett lån och ett konto i banken. { t s depositor ( t[customer_name] = s[customer_name]) u borrower ( t[customer_name] = u[customer_name]) } Bestäm namnen på alla kunder som har ett lån i Perryridge-grenen. { t s borrower ( t[customer_name] = s[customer_name] u loan ( u[loan_number] = s[loan_number] u[branch_name] = Perryridge )) } Π customer_name (σ borrower.loan_number = loan.loan_number (borrower loan)) branch_name = Perryride customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)
5 Andra relationella språk, tupelrelationskalkyl 5-4 Bestäm namnen på alla kunder som har ett konto i banken men som inte har ett lån. alla kontoinnehavare { t s depositor ( t[customer_name] = s[customer_name] u borrower ( t[customer_name] = u[customer_name] )) } alla låntagare Π customer_name (depositor) Π customer_name (borrower) Bestäm namnen på alla kunder som har ett lån från Perryridge-grenen samt deras boningsort. { t s loan (s[branch_name] = Perryridge u borrower (s[loan_number] = u[loan_number] t[customer_name] = u[customer_name] ) v customer (u[customer_name] = v[customer_name] t[customer_city] = v[customer_city] )) } Π customer_name, customer_city (σ borrower.loan_number = loan.loan_number (loan borrower customer)) borrower.customer_name = customer.customer_name loan.branch_name = Perryride customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)
6 Andra relationella språk, tupelrelationskalkyl 5-5 Bestäm namnen på alla kunder som har ett konto i alla grenar belägna i Brooklyn. { t s customer (t[customer_name] = s[customer_name]) ( u branch (u[branch_city] = Brooklyn v depositor (t[customer_name] = v[customer_name] ) w account ( w[account_number] = v[account_number] w[branch_name] = u[branch_name] )))) } Mängden av alla kunder sådana att, för alla tupler u i branch-relationen, med värdet Brooklyn, kunden har ett konto i grenen vars namn är i branch_name attributet i u. Π customer_name, branch_name (depositor account) Π branch_name (σ branch_city = Brooklyn (branch)) Säkerhet av uttryck Det är möjligt att skriva tupelkalkyluttryck som genererar oändliga relationer. Ex.: { t t r } Resulterar i en oändlig relation om domänen för något attribut är oändlig För att skydda mot problemet, inskränker vi mängden av tillåtna uttryck till säkra uttryck: Ett uttryck { t P (t) } i tupelrelationskalkyl är säkert om alla värden i resultatet tillhör dom(p), där domänen dom(p) för P är mängden av alla värden som refereras av P (ingår i P eller i någon relation vars namn ingår i P). Dvs. varje komponent av t måste förekommer i en av de relationer, tupler, eller konstanter som förekommer i P. T.ex.: { t t[a] = 5 true } är ej säkert uttrycket genererar en oändlig mängd av attributvärden som inte förekommer i någon relation eller tupel eller konstant i P.
7 Andra relationella språk, domänrelationskalkyl 5-6 Domänrelationskalkyl Domänrelationskalkyl är ett icke-proceduralt frågespråk ekvivalent i styrka med tupelrelationskalkyl. Varje fråga är ett uttryck av formen: { < x 1, x 2,..., x n > P(x 1, x 2,..., x n ) } där x 1, x 2,..., x n representerar en domän variabler och P representerar en formel liksom en formel i predikatkalkylenl Exempelfrågor Π loan_number (σ amount >1200 (loan))? Bestäm loan_number, branch_name, och amount för lån större än σ amount >1200 (loan) { < l, b, a > < l, b, a > loan a > 1200} { t t loan t[amount] > 1200} Bestäm namnen på alla kunder som har ett lån större än {<c > l, b, a (< c, l > borrower < l, b, a > loan a > 1200)} Bestäm namnet och lånebeloppet för alla kunder som har ett lån från Perryridge-grenen. alt.: {<c, a > l (< c, l > borrower b (< l, b, a > loan b= Perryridge ))} { < c, a > l (< c, l > borrower < l, Perryridge, a > loan )} customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)
8 Andra relationella språk, domänrelationskalkyl 5-7 Bestäm namnen på alla kunder som har ett lån, ett konto, eller båda i Perryridge grenen. { < c > l (< c, l > borrower b, a (< l, b, a > loan b= Perryridge )) a (< c, a > depositor b, n (< a, b, n > account b= Perryridge )) } Bestäm namnen på alla kunder som har ett konto i alla grenar belägna i Brooklyn. { < c > s, n (< c, s, n > customer ) x, y, z (< x, y, z > branch y= Brooklyn ) a,b (< x, y, z > account < c, a > depositor ) } Säkerhet av uttryck Uttrycket { < l, b, a > (< l, b, a > loan ) } är ej säkert Ett uttryck är säkert om alla av följande gäller: { < x 1, x 2,..., x n > P(x 1, x 2,..., x n ) } Alla värden som förekommer i tupler av uttrycket är värden från dom(p) (dvs. värdena förekommer antingen i P eller en tupel av en relation nämnd i P). För varje det existerar delformel av formen x (P 1 (x)), är delformen sann omm det existerar ett värde på x i dom(p 1 ) så att P 1 (x) är sann. För varje för alla delformel av formen x (P 1 (x)), är delformen sann omm P 1 (x) är sann för alla värden x i dom(p 1 ). Dvs. de två sista kraven garanterar att för alla och det existerar kan testas utan att behöva testa oändligt många möjligheter. customer (customer_name, customer_street, customer_city) branch(branch_name, branch_city, assets) account(account_number, branch_name, balance) loan(loan_number, branch_name, amount) depositor (customer_name, account_number) borrower (customer_name, loan_number)
9 Andra relationella språk, QBE 5-8 QBE - Query by Example Ett grafiskt språk som är baserat på domänrelationskalkyl. Syntaxen är två-dimensionell - systemet skapar mallar av de relationer som begärs av användare och frågorna uttrycks som exempel. QBE skelettabeller för bankexemplet: customer customer-name customer-street customer-city branch branch-name branch-city assets borrower customer-name loan-number loan loan-number branch-name amount depositor customer-name account-number account account-number branch-name balance
10 Andra relationella språk, QBE 5-9 Frågor på en relation Bestäm alla lånenummer vid Perryridge-grenen: loan loan-number branch-name amount Perryridge _x är en variabel (kan utelämnas i frågan ovan) P. betyder print (display) Duplikat avlägsnas per default, för att behålla duplikat används P.ALL Visa fulla detaljer för alla lån: loan loan-number branch-name amount P._y P._z alt.: förkortad notation loan loan-number branch-name amount P. Bestäm lånenummer för alla lån med ett lånebelopp större än 700: loan loan-number branch-name amount P. > 700
11 Andra relationella språk,qbe 5-10 Bestäm namnen på alla grenar som inte är belägna i Brooklyn: branch branch-name branch-city assets P. Brooklyn Bestäm lånenummer för alla lån givna gemensamt åt Smith och Jones: borrower customer-name loan-number Smith Jones _x Bestäm alla kunder som bor i samma stad som Jones customer customer-name customer-street customer-city Jones _y _y
12 Andra relationella språk,qbe 5-11 Frågor på flera relationer Bestäm namnen på alla kunder som har ett lån från Perryridge-grenen: loan loan-number branch-name amount _x Perryridge borrower customer-name loan-number P._y _x Bestäm namnen på alla kunder som har både ett konto och ett lån i banken: depositor customer-name account-number borrower customer-name loan-number _x Bestäm namnen på alla kunder som har ett konto i banken, men inte har ett lån från banken: Negation depositor customer-name account-number borrower customer-name loan-number _x Bestäm namnen på alla kunder som har åtminståne två konton: depositor customer-name account-number _x _y _y
13 Andra relationella språk, QBE 5-12 Villkorsboxen Tillåter uttryck av begränsningar på domänvariabler som är antingen obekväma eller omöjliga att yttrycka inom skelettabeller. Komplicerade villkor kan användas i villkorsboxar Bestäm lånenummer för alla lån givna åt Smith, åt Jones eller åt båda gemensamt: borrower customer-name loan-number _n conditions _n = Smith or _n = Jones QBE understöder följande intressanta syntax för att uttrycka alternativa värden: branch branch-name branch-city assets P. _x conditions _x = (Brooklyn or Queens) Bestäm alla kontonummer med en balans större än 1300 och mindre än 1500: account account-number branch-name balance P. _x conditions _x > 1300 _x < 1500
14 Andra relationella språk, QBE 5-13 Bestäm alla kontonummer med en balans större än 1300 och mindre än 1500 men inte exakt 1400: account account-number branch-name balance P. _x conditions _x = (> 1300 and < 1500 and 1400 Bestäm alla grenar som har tillgångar större än åtminstone en gren belägen i Brooklyn: branch branch-name branch-city assets Brooklyn _y _z conditions _y > _z
15 5-14 Sammanfattning En realtidsdatamodell är baserad på en samling tabeller. Användaren kan ställa frågor mot dessa tabeller, insätta nya tupler, stryka tupler och modifiera tupler. Det finns flera språk för att utföra dessa operationer. Tupel relationskalkylen och domän relationskalkylen är icke-procedurala språk som representerar den grundläggande styrka som krävs i ett frågespråk. Relationsalgebra är ett proceduralt språk som är ekvivalent i styrka med båda formerna av rel.kalkyl när de begränsas till säkra uttryck. Relationsalgebra och relationskalkylerna är klara, formella språk som inte lämpar sig för den tillfällige användaren av databassystem. Kommersiella DBS har därför använt språk med mera "syntaktiskt socker". De vanligaste sådana språk är SQL, QBE och Quel, och kanske Datalog.
Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella
Relationsmodellen 2-1 Relationsmodellen Relations modellen är idag den mest änvända datamodellen för kommersiella applikationer. Relationsdatabasstruktur En relationsdatabas består av en samling tabeller,
SQL, nästlade delfrågor 3-19. Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.
SQL, nästlade delfrågor 3-19 Nästlade delfrågor SQL har en mekanism för nästling av delfrågor: En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga. Delfrågor används
Relationell databasdesign
Relationell databasdesign Kapitel 7 Relationell databasdesign sid Uppdelning m.h.a. funktionella beroenden 3 Funktionella beroenden - teori 12 Uppdelningsalgoritmer 27 Designprocess 33 Relational oath
Frågeoptimering. Frågeoptimering kapitel 14
Frågeoptimering kapitel 14 Frågeoptimering sid Introduktion 1 Transformering av relationsuttyck 4 Kataloginformation för kostnadsestimering Statisk information för kostnadsestimering Kostnadsbaserad optimering
Uppdelning. Relationell databasdesign, FB Teori 7-20. Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av
Relationell databasdesign, FB Teori 7-20 Uppdelning Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av R om R i = R, i=1,...,n. Dvs. varje R i är en delmängd av R och varje attribut
Databasdesign. E-R-modellen
Databasdesign Kapitel 6 Databasdesign E-R-modellen sid Modellering och design av databaser 1 E-R-modellen 3 Grundläggande begrepp 4 Begränsningar 10 E-R-diagram 14 E-R-design 16 Svaga entitetsmängder 19
Reducering till relationsscheman
E-R-modellen, Reducering till rel.scheman 6-26 Reducering till relationsscheman En databas som överensstämmer med ett E-R-databasschema kan representeras som en mängd relationsscheman ty E-R-modellen och
Relationskalkyl (RK)
1 Relationskalkyl (RK) Formellt frågespråk som är baserad på predikatkalkyl (logik) En formel i RK är icke-procedurell (deklarativ), dvs den specificerar vad som ska hämtas och inte hur Jämför med relationsalgebran
Avancerad SQL Kapitel 4. Databaser: Avancerad SQL. sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10
Avancerad SQL Kapitel 4 Avancerad SQL sid SQL datatyper 1 Integritetsbegränsningar 3 Auktorisering 7 Inbäddad SQL 10 Dynamisk SQL 10 Avancerad SQL, datatyper 4-1 Datatyper i SQL En datatyp, dvs. domän
Grunderna för relationsmodellen!
Grunderna för relationsmodellen! 1 Varför behöver jag lära mig relationsmodellen?! Relationsmodellen är den totalt dominerande datamodellen i moderna databassystem Beskriver databaser som en mängd tabeller
E-R-modellen, E-R-diagram 6-14. E-R-diagram. representerar entitetsmängder
E-R-modellen, E-R-diagram 6-14 Komponenter Rektanglar Ellipser Ruter Linjer E-R-diagram representerar entitetsmängder repr. attribut repr. relationskapsmängder länkar attribut till entitetsmängder och
Relationsalgebra. Relationsalgebra består av en mängd operatorer som tar en eller två relationer som input och producerar en ny relation som resultat.
Database: Relationsalgeba 2-11 Relationsalgeba Relationsalgeba bestå av en mängd opeatoe som ta en elle två elatione som input och poducea en ny elation som esultat. De fundamentala opeationena ä unäa
Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista
Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda
Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar
Innehåll Föreläsning 7 Logik med tillämpningar 99-03-01 Första ordningens predikatlogik Objekt, predikat, kvantifierare Funktioner, termer, wffs Bindning och räckvidd Tolkningar och värderingar Satisfiering,
DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL. r s använder vi för att uttrycka frågor där ordet alla figurerar:
DIVISIONSEXEMPEL RELATIONSALGEBRA OCH SQL r s använder vi för att uttrycka frågor där ordet alla figurerar: Ex. Vilka personer har stamkundskort vid ALLA klädesbutiker i stad X? Vilka personer har bankkonto
Relationsalgebra. Varför behöver jag lära mig relationsalgebra?!
Relationsalgebra 1 Varför behöver jag lära mig relationsalgebra?! Relationsmodellen är den datamodell som används i de flesta moderna databassystemen Data beskrivs och lagras som relationer, dvs. som ett
Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19
Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium IV v. 2.0, den 29/4 2013 III. Metalogik 17-19 Modeller för satslogiken 18.1 Vi har tidigare sagt att en modell är en tolkning av en teori
Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.
MATEMATISK LOGIK Matematisk logik formaliserar korrekta resonemang och definierar formellt bindeord (konnektiv) mellan påståenden (utsagor, satser) I matematisk logik betraktar vi påståenden som antingen
Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a.
1 Kap. 1 INTRODUKTION Ett databashanteringssystem (DBHS) skiljer sig från andra programmeringssystem bl.a. 1. Möjligheten att hantera persistenta data 2. Möjligheten att accessera stora mängder av data
Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto
Objekt och klasser - Introduktion Objekt Ð Begreppet objekt Ð Hur klasser anvšnds fšr att skapa objekt Ð Fšr-definierade klasser Ð Metoder och parameteršverfšring Ð Definiera klasser Ð Modifierare Ð Statiska
Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista
Databaser Vad är en databas? Vad du ska lära dig: Använda UML för att modellera ett system Förstå hur modellen kan översättas till en relationsdatabas Använda SQL för att ställa frågor till databasen Använda
Deklarativt programmeringsparadigm
Deklarativt programmeringsparadigm Det vi introducerade på förra föreläsningen var ett exempel på deklarativ programmering. Vi specificerade en fallanalys som innehöll fakta och regler för hur man skulle
Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet
Filosofisk logik Kapitel 15 Robin Stenwall Lunds universitet Dagens upplägg Första ordningens mängdlära Naiv mängdlära Abstraktionsaxiomet (eg. comprehension) Extensionalitetsaxiomet Små mängder Ordnade
Föreläsning 5. Deduktion
Föreläsning 5 Deduktion Hur ett deduktivt system fungerar Komponenter - Vokabulär Ett deduktivt system använder ett visst slags språk som kan kallas för systemets vokabulär. I mindre formella fall är kanske
Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet
Filosofisk logik Kapitel 19 Robin Stenwall Lunds universitet Dagens upplägg Gödels fullständighetsteorem Sundhet och fullständighet Fullständighetsbeviset Vittneskonstanter Henkinteorin Eliminationsteoremet
Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section
Föreläsning 1 Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section 1.1-1.3 i kursboken Definition En utsaga (proposition) är ett
Grundläggande logik och modellteori (5DV102)
Tentamen 2013-10-31 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 11 Maximalt antal poäng 30 Krav för 3 i betyg 14 poäng Krav för 4 i betyg 19 poäng,
Grundläggande logik och modellteori
Grundläggande logik och modellteori Kapitel 8: Predikatlogik Henrik Björklund Umeå universitet 2. oktober, 2014 Första ordningens predikatlogik Signaturer och termer Första ordningens predikatlogik Formler
EMPS(NAME, SALARY, DEPT)
Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer
Databaser - Design och programmering. Operationer i relationsalgebra. Att söka ut data. Exempel DBschema. Att plocka ut data, forts
Databaser Design och programmering Relationsalgebra den matematiska grunden för att bearbeta data representerad i relationsmodellen Operationer i relationsalgebra Två typer av operationer: Operationer
Design av en klass BankAccount som representerar ett bankkonto
Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers
Introduktion till formella metoder Programmeringsmetodik 1. Inledning
Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur
Induktion, mängder och bevis för Introduktionskursen på I
Induktion, mängder och bevis för Introduktionskursen på I J A S, ht 04 1 Induktion Detta avsnitt handlar om en speciell teknik för att försöka bevisa riktigheten av påståenden eller formler, för alla heltalsvärden
Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.
Databaser Design och programmering Relationsmodellen definitioner ER-modell -> relationsmodell nycklar, olika varianter Programdesign, databasdesign Databasdesign Konceptuell design Förstudie, behovsanalys
MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss
Explorativ övning 1 LMA100 vt 2003 MATEMATIKENS SPRÅK Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss förstå språket. Vi skall försöka utveckla vårt
Karlstads Universitet, Datavetenskap 1
2003-01-20 DAV B04 - Databasteknik 2003-01-20 KaU - Datavetenskap - DAV B04 - MGö 26 Relationsmodellen En formell teori som baserar sig på (främst) mängdlära predikatlogik Föreslogs av E.F Codd 1970 i
Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3
Föreläsning 2 Semantik 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 27 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 2.1 Innehåll Innehåll 1 Lite mer syntax 1 2 Strukturer
Grundläggande logik och modellteori
Grundläggande logik och modellteori Kapitel 12: Logikprogrammering Henrik Björklund Umeå universitet 16. oktober, 2014 Prolog Prolog har två klasser av formler. Atomära formler: country(sweden, 9000000).
Att öva på och förstå ett program med flera samverkande klasser.
Inlämningsuppgift 4 klassen Kund (Customer) Att öva på och förstå ett program med flera samverkande klasser. Redovisning: Uppgiften redovisas i datasal: o Körning av programmet. o Redogöra för vad de olika
Logik och kontrollstrukturer
Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch
Formell logik Kapitel 9. Robin Stenwall Lunds universitet
Formell logik Kapitel 9 Robin Stenwall Lunds universitet Kapitel 9: Introduktion till kvantifiering Vi har hittills betraktat logiska resonemang vars giltighet enbart beror på meningen hos konnektiv som
Normalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler
Normalisering av meningar inför resolution På samma sätt som i satslogiken är resolution i predikatlogiken en process vars syfte är att vederlägga att en klausulmängd är satisfierbar. Det förutsätter dock
Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system
Vad är det? Översikt Discrete structure: A set of discrete elements on which certain operations are defined. Discrete implies non-continuous and therefore discrete sets include finite and countable sets
Varför är logik viktig för datavetare?
Varför är logik viktig för datavetare? 1. Datavetenskap handlar ofta om att automatisera processer som tidigare styrts av människor. Intuition, intelligens och mänskliga resonemang ersätts av beräkningar.
Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18
LiTH, Tekniska högskolan vid Linköpings universitet 1(5) IDA, Institutionen för datavetenskap Juha Takkinen Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik 2008-08-11 kl. 14 18 Lokal T2 och
MATEMATIKENS SPRÅK. Avsnitt 1
Avsnitt 1 MATEMATIKENS SPRÅK Varje vetenskap, liksom varje yrke, har sitt eget språk som ofta är en blandning av vardagliga ord och speciella termer. En instruktionshandbok för ett kylskåp eller för en
p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik
DD1350 Logik för dataloger Fö 3 Satslogikens semantik 1 Kort repetition Satslogik formellt språk för att uttrycka påståenden med variabler och konnektiv /\, \/,, t.ex. p /\ q r 1 Kort repetition Naturlig
Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.
Lunds tekniska högskola Datavetenskap Lennart Andersson Föreläsningsanteckningar EDAF10 3 Predikatlogik 3.1 Motivering I satslogiken är de minsta beståndsdelarna satslogiska variabler som kan anta värdena
Objekt och klasser - Introduktion
Objekt och klasser - Introduktion Begreppet objekt Hur klasser används för att skapa objekt Fördefinierade klasser Metoder och parameteröverföring Definiera klasser Modifierare Statiska variabler och metoder
Grundläggande logik och modellteori
Modeller och uttrycksfullhet hos predikatlogik Department of mathematics Umeå university Föreläsning 10 Dagens föreläsning 1 Innehåll på resten av kursen 2 Varför verifikation? Formella metoder för verifikation
DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik
DD1350 Logik för dataloger Fö 7 Predikatlogikens semantik 1 Kryssprodukt av mängder Om A och B är två mängder så är deras kryssprodukt A B mängden av alla par (a,b), där a A och b B. Ex: A={1,2}, B={3,4},
Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema
Databaser Design och programmering Relationsmodellen definitioner ER-modell -> relationsmodell nycklar, olika varianter Relationsmodellen Introducerades av Edward Codd 970 Mycket vanlig Stödjer kraftfulla
D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2.
Logik Vid alla matematiskt resonemang måste man vara säker på att man verkligen menar det man skriver ner på sitt papper. Därför måste man besinna hur man egentligen tänker. Den vetenskap, som sysslar
PROV. 12 Egenskaper (provavsnitt)
12 Egenskaper (provavsnitt) 12.1 Egenskaper 12.2 Deklaration av egenskaper 12.3 Åtkomsttjänster för egenskaper 12.4 Åtkomsttjänster med genererade instansvariabler 12.5 Åtkomsttjänster med egna instansvariabelnamn
Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet
Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet Dagens upplägg Antalet element i en mängd Kardinalitet Humes princip Cantors teorem Den universella mängden Några mängdteoretiska paradoxer
Övningshäfte 1: Logik och matematikens språk
GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2014 INLEDANDE ALGEBRA Övningshäfte 1: Logik och matematikens språk Övning A Målet är att genom att lösa och diskutera några inledande uppgifter få erfarenheter
FUZZY LOGIC. Christopher Palm chrpa087
FUZZY LOGIC 900223-1554 Innehållsförteckning INLEDNING...2 HUR DET FUNGERAR...3 Crisp Sets och Fuzzy Sets...3 Operatorer...5 IF THEN regler...7 FUZZY INFERENCE...7 Fuzzification...8 Regelsättning...8
Föreläsning 3: Ekvationer och olikheter
Föreläsning 3: Ekvationer och olikheter En ekvation är en likhet som innehåller en flera obekanta storheter. Exempel: x = 9, x är okänd. t + t + 1 = 7, t är okänd. Vi säger att ett värde på den obekanta
DD1361 Programmeringsparadigm HT15
DD1361 Programmeringsparadigm HT15 Logikprogrammering 1 Dilian Gurov, TCS Innehåll Logikprogrammering Kontrollflöde Unifiering Backtracking Negation Snitt Induktiva datatyper och rekursion Inbyggda datatyper:
Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder
Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar
MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt,
Explorativ övning 1 MATEMATIKENS SPRÅK Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss förstå språket. Vi skall försöka utveckla vårt matematiska språk,
Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf
UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik II 1 Predikatlogik, generella
DD1361 Programmeringsparadigm HT16
DD1361 Programmeringsparadigm HT16 Logikprogrammering 1 Dilian Gurov, TCS Delkursinnehåll Logikprogrammering Logisk versus procedurell läsning Kontrollflöde Unifiering, Backtracking, Snitt Negation Induktiva
= 0 vara en given ekvation där F ( x,
DERIVERING AV IMPLICIT GIVNA FUNKTIONER Eempel. Vi betraktar som en funktion av och,,), given på implicit form genom + + 6 0. Bestäm partiella derivator och i punkten P,, ) a) med hjälp av implicit derivering
DD1350 Logik för dataloger. Fö 2 Satslogik och Naturlig deduktion
DD1350 Logik för dataloger Fö 2 Satslogik och Naturlig deduktion 1 Satslogik En sats(eller utsaga)är ett påstående som kan vara sant eller falskt. I satslogik(eng. propositionallogic) representeras sådana
DD1361 Programmeringsparadigm HT17
DD1361 Programmeringsparadigm HT17 Logikprogrammering 1 Dilian Gurov, KTH Delkursinnehåll Logisk versus procedurell läsning Kontrollflöde: Unifiering, Backtracking, Snitt Induktiva datatyper och rekursion
LULEÅ TEKNISKA UNIVERSITET Ämneskod S0002M, MAM801, IEK600,IEK309 Institutionen för matematik Datum 2009-12-17 Skrivtid 0900 1400
LULEÅ TEKNISKA UNIVERSITET Ämneskod S0002M, MAM801, IEK600,IEK309 Institutionen för matematik Datum 2009-12-17 Skrivtid 0900 1400 Tentamen i: Statistik A1, 15 hp Antal uppgifter: 6 Krav för G: 13 Lärare:
JavaScript del 3 If, Operatorer och Confirm
JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att
Chapter 4: Writing Classes/ Att skriva egna klasser.
Chapter 4: Writing Classes/ Att skriva egna klasser. I dessa uppgifter kommer du att lära dig om hur man definierar egna objekt genom att skriva klasser. Detta är grunden för att förstå objekt orienterad
FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS
729G06 Logik FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 160208 Idag C-regeln, informell (och formell) inledning till predikatlogik (Bevis kommer senare.) 2 3 Vår (Snöfritt Cykla) (Vår Snöfritt) Cykla Lätt
Logik. Boolesk algebra. Logik. Operationer. Boolesk algebra
Logik F4 Logik Boolesk algebra EDAA05 Roger Henriksson Jonas Wisbrant Konsten att, och vetenskapen om, att resonera och dra slutsatser. Vad behövs för att man ska kunna dra en slutsats? Hur kan man dra
Lek$on 4: Kunskapsrepresenta$on. Robin Keskisärkkä och Jonas Rybing
Lek$on 4: Kunskapsrepresenta$on Robin Keskisärkkä och Jonas Rybing Översikt Laborationerna så här långt Genomgång av Laboration 4 Uppgift Förberedelser Kunskapsrepresentation Framesteori Uppgi= Implementera
Schema XMLSIE_1_0.xsd
Schema XMLSIE_1_0.xsd Elements Groups Complex types Simple types SIE BalanceGROUP BalanceWithPeriodTYPE AccountIdTYPE JournalInfoTYPE AccountTypeTYPE LedgerEntryTYPE CurrencyIdTYPE ObjectGroupReferenceTYPE
Logik för datavetare DVK:Log Tisdagen 28 oktober 2014. Institutionen för dataoch systemvetenskap David Sundgren
Institutionen för dataoch systemvetenskap David Sundgren Logik för datavetare DVK:Log Tisdagen 28 oktober 2014 Skrivtid: 9 00-13 00. Inga hjälpmedel utom formelsamlingen på nästa sida är tillåtna. För
Structured Query Language (SQL)
Structured Query Language (SQL) Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Introduktion Enkla frågor (queries) Hämta en specifik kolumn Sök Sammanfattning
sanningsvärde, kallas utsagor. Exempel på utsagor från pass 1 är
PASS 7. EKVATIONSLÖSNING 7. Grundbegrepp om ekvationer En ekvation säger att två matematiska uttryck är lika stora. Ekvationen har alltså ett likhetstecken och två deluttryck på var sin sida om likhetstecknet.
Typsystem. Typsystem... Typsystem... Typsystem... 2 *
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Filosofisk Logik (FTEA21:4) föreläsningsanteckningar I. v. 2.0, den 24/4 2013
Filosofisk Logik (FTEA21:4) föreläsningsanteckningar I v. 2.0, den 24/4 2013 Om detta kompendium: Filosofiska institutionen, Lunds Universitet staffan.angere@fil.lu.se Förberedande Det här kompendiet är
Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
Predikatlogik: Normalformer. Klas Markström
1 Precis som i satslogik så är det bekvämt att kunna hitta en normalform för meningar. Om vi kan utgå från att alla meningar är på normalform så behöver vi t.e.x. inte bekymra oss om en massa specialfall
Typsystem. DA2001 (Föreläsning 23) Datalogi 1 Hösten / 19
Typsystem Typsystem finns i alla programmeringsspråk. Avsikten med typsystem är att kontrollera att uttryck är säkra i den bemärkelsen att innebörden i operanderna är klar och inte är motsägelsefull och
Språket Python - Del 1 Grundkurs i programmering med Python
Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR
Semantik och pragmatik
Semantik och pragmatik OH-serie 5 http://stp.lingfil.uu.se/~matsd/uv/uv12/semp/ Mats Dahllöf Institutionen för lingvistik och filologi Januari 2012 Så här långt Konjunktion (p q): att två enklare satser
Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad
1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen
Kapitel Ekvationsräkning
Kapitel Ekvationsräkning Din grafiska räknare kan lösa följande tre typer av beräkningar: Linjära ekvationer med två till sex okända variabler Högregradsekvationer (kvadratiska, tredjegrads) Lösningsräkning
Förra gången: Primitiva data
Förra gången: Primitiva data > 30 30 > 45.56 45.56 Variabler: > (define telnr 6000) > telnr 6000 DA2001 (Föreläsning 3) Datalogi 1 Hösten 2013 1 / 24 Förra gången: Procedurapplikation: > (+ 7900000 telnr)
SF1901 Sannolikhetsteori och statistik I
SF1901 Sannolikhetsteori och statistik I Jimmy Olsson Föreläsning 4 7 november 2017 1 / 29 Idag Förra gången Viktiga kontinuerliga fördelningar (Kap. 3.6) Fördelningsfunktion (Kap. 3.7) Funktioner av stokastiska
En introduktion till predikatlogik
rasmus.blanck@gu.se FT1200, LC1510 och LGFI52 VT2017 (Premiss 1) (Premiss 2) (Slutsats) Alla människor är dödliga Sokrates är en människa Sokrates är dödlig Detta argument är intuitivt giltigt: Det finns
Introduktion till programmering SMD180. Föreläsning 9: Tupler
Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]
Tentamen i. TDDC67 Funktionell programmering och Lisp
1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering
Objektorienterad programmering Föreläsning 4
Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion
TDIU01 - Programmering i C++, grundkurs
TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering
MA2047 Algebra och diskret matematik
MA2047 Algebra och diskret matematik Något om logik och mängdlära Mikael Hindgren 5 september 2018 Utsagor Utsaga = Påstående som har sanningsvärde Utsagan kan vara sann (S) eller falsk (F) öppen eller
1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående
MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Christian Gottlieb Gymnasieskolans matematik med akademiska ögon Induktion Dag 1 1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta
Booleska variabler och översättning mellan programuttryck och booleska variabler
Vad är Boolesk algebra Lite förenklat kan man säga att Boolesk algebra är räkneregler konstruerade av den engelske matematikern Gerge Boole för att kunna räkna med logiska uttryck. I den booleska algebran
TENTAMEN TDDB53. Programmering i Ada för MI (provkod TEN2) den 7 april 2010 kl Institutionen för datavetenskap, IDA Olle Willén mars 2010
Linköpings universitet Institutionen för datavetenskap, IDA Olle Willén mars 2010 Tentamen TDDB53 TENTAMEN TDDB53 (provkod TEN2) den 7 april 2010 kl 8 12 Jour: Emil Nielsen, tel 070 499 89 88 Hjälpmedel:
Vardagssituationer och algebraiska formler
Modul: Algebra Del 7: Kommunikation i algebraklassrummet Vardagssituationer och algebraiska formler Cecilia Kilhamn, Göteborgs Universitet och Jörgen Fors, Linnéuniversitetet En viktig del av algebran
Modularitet och tillstånd. Stora system kräver en uppdelning. En lösning: modularitet. Basera programmets struktur på den fysiska systemets struktur:
Modularitet och tillstånd Stora system kräver en uppdelning. En lösning: modularitet Basera programmets struktur på den fysiska systemets struktur: En fysisk objekt en beräkningsobjekt Ett agerande en
Logik och bevisteknik lite extra teori
Logik och bevisteknik lite extra teori Inger Sigstam 2011-04-26 1 Satslogik (eng: propositional logic) 1.1 Språket Alfabetet består av följande symboler: satssymbolerna p 0, p 1, p 2,.... konnektiverna,,,,.