En liten saga om en databas

Relevanta dokument
Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Lärarhandledning. Bråk från början. en tredjedel ISBN

Publicerat med tillstånd Stora boken om Sandvargen Text Åsa Lind Rabén & Sjögren 2006

Erik på fest Lärarmaterial

54 kort: 10 plockarkort 10 trädgårdsmästarkort 10 extra arbetarkort 24 fruktträdskort

Se inkomna olästa meddelanden

Malmö stad, Gatukontoret, maj 2003 Trafiksäkra skolan är framtaget av Upab i Malmö på uppdrag av och i samarbete med Malmö stad, Gatukontoret.

Kraaam. Publicerat med tillstånd Kartkatastrofen Text Ingelin Angeborn Rabén & Sjögren Kartkatastrofen.indd

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Hur kommer jag igång?

10minus4. Kanske gör de sex så äckligt som möjligt så att man skall hålla sig borta från det och inte vilja göra det?

Hubert såg en gammal gammal gubbe som satt vid ett av tälten gubben såg halv död ut. - Hallå du, viskar Hubert

Föräldrahyllan Leva med barn Lars H. Gustafsson & Marie Köhler

Häng med tjejerna från Malmö Ridklubb `` en dag i mitt liv

Introduktion till frågespråket SQL (v0.91)

Veronica s. Dikt bok 2

E&M Motivation and Solutions AB, tel: ,

Sömngångare. Publicerat med tillstånd Förvandlad Text Mårten Melin Bild Emma Adbåge Rabén & Sjögren. I_Förvandlad2.indd

LÄRARHANDLEDNING EN NATT I FEBRUARI. Mittiprickteatern Box 6071, Stockholm info@mittiprickteatern.se

Kapitel 1 - Hörde ni ljudet? sa Felicia. - Nej det är ju bara massa bubbel och pys som hörs här, sa Jonathan. Felicia och Jonathan var bästisar och

Gabriella. Innerhållsförteckning

Kopplingar via datalänk från Winbas till Excel samt Pivottabell 1 (13)

Idag ska jag till djurparken! Wow vad kul det ska bli. Det var 2 år sedan jag var där sisst? Hur gammal var Rut då?

En samling övningar för att komma igång med samtal

BOBAROMETERN Delrapport: Svenskarna om att flytta ihop

BOK➑. IB8_SWE.indd :28:41

1 Skapa Tabell Skapa Relationer Redigera Relationer Redigera Fält i Tabell Lägga till Poster i Tabell...

Vem blir man i Vård och omsorgsutbildningen? En studie om vuxenstuderandes erfarenheter /Katarina Lagercrantz All 1

Kapitel 1 Hej Hej jag heter Henke. Min bäste vän heter Ludvig, men han kallas Ludde. Vi är lika gamla, vi är 8år. Vi är rädda för städerskan.

Vem Väljer Passivhus?

Orientering - Teori. Björn Johansson

Rymdis... och Rymdalina Plåtis, Kattapult [och rymden]

En formell affär DET HÄR ÄR JU INTE BARA EN FRÅGA OM TYCKE OCH SMAK

Vad ingår i att fälla ett smakomdöme? Att uppfatta något som vackert eller fult? På vilka grunder fälls sådana omdömen? Och med vilka anspråk?

De gröna demonerna. Jorden i fara, del 2

I Lilla Fridolf och Selma upplever jag att Selma ofta talar om för Fridolf vad han skall göra och hur han skall vara.

Restaurang Example. ( Analys av nuvarande hemsida. Av Kharma Concept

Paper Piecing, modell från boken A Quilter s Ark, av Rolfe, Isbn:

KAPITEL 6. Verb: preteritum. *imperativ som slutar på p, k, s, t eller x +te. Special (it-verb och oregelbundna verb) T ex: gå-gick, drick-drack

Möt världen. Bli utbytesstudent. Åk på AFS Skolprogram och välj mellan 50 länder!

Exempel från: Håll Sverige Rent. Äppeltestet

Tentamen för DD1370 Databasteknik och informationssystem

Min individuella uppgift om hamnens Webbsida

1. Hur blev du mottagen vid ankomsten?: bra Kommentar mottagande: -Fick bara vänta 30 minuter på flygplatsen,helt OK

Vikingarna. Frågeställning: Ämne: Historia, vikingarna.

Kays måndagstips Nr 24 Den 26 nov. 2012

Öppen data och vad vi kan vinna på att offentliggöra uppgifter! Formatdag i västerås Björn Hagström bjorn.

Introduktion till Winbas. excel till Winbas

Svenska GRAMMATIK

Matematik. Ämnesprov, läsår 2014/2015. Delprov B. Årskurs. Elevens namn och klass/grupp

FRÄSCHA FrUKtER & GRÖNSAKER

Har du koll på energi kostnaderna hemma eller springer den bara iväg varje månad och du har absolut ingen koll på vart det går?

Pedagogiskt material för teckeninlärning Logopedprogrammet, Sagan om Citron

Rebecka Harvyl. Portfolio

Diskussionsfrågor <3mig.nu. - Om Internet, trakasserier och livet IRL

Lathund olika typer av texter

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Laboration SQL. Kom igång.

T-tunika med formremsa i halsringningen

Vad ingår i att fälla ett smakomdöme? Att uppfatta något som vackert eller fult? På vilka grunder fälls sådana omdömen? Och med vilka anspråk?

Manual för Aktivitetskort på Nätet (ApN) för föreningsledare

Någon fortsätter att skjuta. Tom tänker sig in i framtiden. Början Mitten Slut

Nu är pappa hemma Lärarmaterial. Vad handlar boken om? Mål från Lgr 11 och förmågor som tränas. Eleverna tränar på följande förmågor

Boken om svenska för 3:an

Anvisningar för att fylla i djur-och medlemsregister Det är mycket viktigt att du inte ändrar någonting i rubrikraden i mallen!

SkövdeNät Nöjd Kund Analys

INTERAKTIVA WORKSHOPÖVNINGAR

Det kanske inte är en fråga om tycke och smak; semi kolon kanske handlar om mod.

Rödluvan. Med bilder av Mati Lepp

Kapitel 1 hej Hej jag heter Trulle jag har ett smeknamn de är Bulle. Min skola heter Washinton Capitals jag går i klass 3c de är en ganska bra klass.

Logik. Dr. Johan Hagelbäck.

Kleindagarna Snabbrapport

Lasermätning som hjälpmedel?

HANDLEDNING TILL WEBBUTSTÄLLNINGEN HEM, LJUVA HEM - OM BROTT I NÄRA RELATIONER

1. Enkel sökning Globalsökning Avancerad sökning Historik Söka via klassificeringsstruktur 14

Containerdykare. Text: Magnus Carlsson Bild: Mario Prhat

Innanför Mina rosa Små väggar. En självbiografi av Cassandra Solback

Manual C3 BMS v. 3 för iphone/ipad

1 december B Kära dagbok!

Ordningsregler - Borgstenaskolan

WHAT! Fuck life, fuck death, fuck you... Därför älskar vi Jane Austen. Tranås, alltid i våra hjärtan. Frukost och en liten Calvados

I do for money sattes upp i regi av Åsa Olsson på Dramalabbet under Teater Scenario 2008.

Hur har ni informerat om stödet från Leader Bergslagen? Bifoga affisch eller liknande!

Användarbeskrivning ARBETSGIVARINTYG. för Sveriges alla arbetsgivare. arbetsgivarintyg.nu. En ingång för alla användare. Innehåll. Version 1.

Inledning (Problemlösning 1.)

Djurdoktorn: Linus och Smulan

Bilarnas äventyr ett helt års projektarbete

Tips för en bra redovisning

GUD ÄLSKAR DIG! Gud älskar Dig och har skapat Dig till att känna Honom personligen.

"Siri och ishavspiraterna"

Du och ditt personliga varumärke LJK loredana jelmini kommunikation Malmö 7 oktober

Först ett kort stopp i Nairobi, där man inte fick ut och gå själv. Hotellet var dock fint.

Labb LABB 15. XML användande i praktiken. Plushögskolan Frågeutveckling inom MSSQL - SU14

Den magiska dörren Av julia

Extratips. Lärarhandledningen är gjord av Ulf Nilsson, lärare i svenska och SO på Skönadalsskolan.

Konstsagor. H.C Andersen

UGGLEPOSTEN 2011:1 ANSVARIG UTGIVARE: DANIEL GAUSEL

Fjällpoesi av de glada eleverna i 6 Gul 2008

HIR-Växt- Näsgård Karta. HIR-Växt och Näsgård Karta

Saffranspannkaka är enkelt fixat på gårdagens gröt. Bara att blanda ihop och grädda. Naturligt

Transkript:

En liten saga om en databas Av Marcus Medina

Det här är en liten saga om en databas, öar, broar och en massa personer och saker. Det var en gång en grupp människor. De hade olika namn, de gjorde olika saker och de tyckte om olika sorters mat. Dessa människor hade helt vanliga namn som Johanna, Marie, Niklas, Magnus, Peter, Marcus mm En dag hade Johanna ett fint rött äpple, hon var inte hungrig så hon gav det fina röda äpplet till Niklas. Niklas tyckte om det fina röda äpplet, men då han hade en stor gul banan som han inte skulle äta så gav han den till Peter. Peter hade nyss köpt en stor mumsig chokladkaka och tyckte den stora gula bananen verkade godare så han gav den stora mumsiga chokladen till Marie. Niklas åt upp sitt fina röda äpple Marie la undan den stora mumsiga chokladen i skåpet (hon var inte sugen på choklad just då) Marcus åt en liten söt clementin Magnus gick till restaurangen och åt en stor muffin Johanna lämnade över shoppinglista till Magnus Magnus hade inte tid så Marcus fick ta hand om shoppinglistan Marie åt upp den stora mumsiga chokladen Det hände alltså en massa saker, det var flera människor inblandade och flera objekt som brukades på ett eller annat sätt. I själva berättelsen upprepas en hel del information och det gör att sagan blir lång och samtidigt en smula tråkig. En människa kan förstå texten, men en dator skulle bli förvirrad av händelseförloppet. SELECT page WHERE id = 1

För att kunna göra berättelsen enklare skulle man kunna dela upp den i tre listor (eller kolumner). Allt i tabellform Personer Händelser Objekt Johanna att ge Ett fint rött äpple Niklas tycka om Ett fint rött äpple Peter tycka om En stor gul banan Peter Handla En stor mumsig chokladkaka Marie lägga undan En stor mumsig chokladkaka Magnus Äta Restaurang Marcus Äta Clementin Johanna lämna Shoppinglista Marcus ta hand om Shoppinglista Marie Äta En stor mumsig chokladkaka Nu har vi tre kolumner. För att databasen ska kunna förstå informationen får vi skriva in det som data. Alltså snyggt uppdelat tabeller där varje tabell börjar på ett och räknar sedan uppåt. Siffran kallas för ett ID. Personer ID Namn 1 Johanna 2 Marie 3 Niklas 4 Magnus 5 Peter 6 Marcus SELECT page WHERE id = 2

Händelser ID Händelse 1 ge 2 tycka om 3 handla 4 lägga undan 5 äta 6 gå 7 Lämna 8 ta hand om Objekt ID Objekt 1 Ett fint rött äpple 2 En stor gul banan 3 En stor mumsig chokladkaka 4 En söt clementin 5 Restaurang 6 En stor muffin 7 Shoppinglista Nu har vi tre tabeller. Varje tabell har ett ID. Det ID är unikt för varje objekt i tabellen. Alltså Niklas har nummer 3, det innebär att ingen annan person har samma ID, ungefär som ett personnummer fast här är det en mindre siffra. Varje händelse har sitt specifika ID likaså varje objekt. Även om Niklas och chokladkakan har samma ID så har de egentligen ingen koppling alls. Man kan poetiskt uttrycka det som att varje tabell är som en ö i databasens hav. För att kunna föra över information mellan tabellerna måste vi skapa en relation (koppling/samband). Det innebär med andra ord att om öarna ska mötas så måste vi bygga broar. Om vi nu tittar på första meningen i sagan En dag hade Johanna ett fint rött äpple, hon var inte hungrig så hon gav det fina röda äpplet till Niklas. Vi kan undersöka meningen genom att ställa följande frågor. SELECT page WHERE id = 3

1. Vem gör vad? 2. Vad är det som görs? 3. Vad är det som används? 4. Mot eller med vem görs detta? Vi läser meningen igen och hittar följande svar till frågorna 1. Johanna 2. ge 3. Ett fint rött äpple 4. Niklas Nu har vi all information vi behöver för att förse databasen med information om händelsen. Frågan är nu var vi ska fylla i det och hur vi ska lagra informationen så att kommande generationer inte går miste om det spännande händelseförloppet i sagan. Vi får helt enkelt skapa en ny tabell som håller reda på hur vi ska koppla informationen i databasen. En slags karta på hur broarna dras mellan öarna. Den sortens tabell kallas kopplingstabell (eller sambandstabell) och den innehåller bara hänvisningar till ID i de första tabellerna. Det är en karta med streck och pilar som egentligen inte säger något om man inte vet vilka tabeller som beskrivs. Den här tabellen bygger vi upp precis som frågorna vi ställde innan Koppling/Samband Person1 Handling Objekt Person2 Vi säger som så att Person1 är den som gör något, Handling beskriver vad som görs, Objekt är själva saken som användes och Person2 är mottagaren. Hur beskriver vi första meningen för databasen då? Den informationen vi har är följande Johanna, Ge, Ett fint rött äpple, Niklas men för att slippa skriva detta om och om igen så använder vi oss av IDsiffror i stället. Om vi tar en titt på tabellerna vi skapade först så ser vi att SELECT page WHERE id = 4

Johanna = personer ID 1 Ge = Händelse ID 1 Ett fint rött äpple = objekt ID 1 Niklas = personer ID 3 För databasen ser det ut såhär 1,1,1,3 Om vi nu skulle ändra historien att Magnus lämnar en stor mumsig chokladkaka hos Marcus får vi följande värden. Magnus = personer ID 4 Lämna = händelse ID 7 En stor mumsig Chokladkaka=objekt ID 3 Marcus = personer ID 6 För databasen ser det ut såhär 4,7,3,6 För oss ser det helt obeskrivligt dumt att skriva berättelsen i form av 1,1,1,3 men för databasen är saken väldigt klar. Det är det för oss också om vi tittar på tabellerna. Vi går nu tillbaka till vår karta på broarna. Den saknar en sak som de andra har, och det är ett ID. Den tabellen har ingen ID, det behövs inte för informationen kopplas från de andra tabellerna, men tänk om man vill veta vad som hände vid tredje händelsen, hur ska man då veta det? Det kan vi inte. Alltså måste vi ha ett ID. Koppling/Samband (med ID) ID Person1 Handling Objekt Person2 Med hjälp av den här tabellen kan vi nu se vad som hände och när det hände, självklart skulle vi kunna lägga in datum och tid till händelserna också, eller lägga till efternamn på personerna, eller mer utförliga beskrivningar på objekten. Men i detta fallet bryr vi oss inte om detaljer. SELECT page WHERE id = 5

Som jag sa innan så är kartan helt betydelselös om man inte vet hur den är kopplad och till vad den är kopplad. Siffrorna 1,1,1,3 har absolut ingen betydelse om man inte vet varför de är där och vad de betyder. Vi får alltså skapa index och relationer. Genom att tala om att ID fälten i varje tabell är ett index så skapar databasen en dold tabell med bara länkar till informationen så att den lättare ska kunna hitta det du söker. Det fungerar ungefär som när man ska beskriva en bil, för mig som är helt ointresserad av bilar är bilen som körde förbi bara en röd liten sak, en bilintresserad vet direkt att det rör sig om en Ford och vilket årtal den är från. En som är riktigt snabb på ögat kommer säker att se bilnumret. Man kan sammanfatta situationen som sådan Jag (helt ointresserad av bilar) har information om bilen (röd, liten) Den bilintresserade har ID till bilen (ford + årtal) Den snabbögde har indexet till bilen, alltså bilnumret. Det skulle ta mig flera år att hitta rätt bil, den bilintresserade skulle kunna hitta de på kortare tid, och den snabbögde hittar bilen på ett par sekunder genom att kontakta bilregistret. Alltså behöver vi indexnycklar och samband. Sambanden beskriver hur broarna går mellan öarna. Då utgår man ifrån att bron alltid står på samma plats från samma ö till samma grann-ö. Vi tittar nu på kopplingstabellen vi gjorde (kartan) Förklarad kopplingstabell ID Person1 Handling Objekt Person2 Händelse Kopplas till index på Persontabellen Kopplas till index på Handling Kopplas till index på Objekt Kopplas till index på Persontabellen Först nu blir kartan läsbar, när vi kan se var informationen hämtas ifrån. SELECT page WHERE id = 6

Nu fyller vi i några rader ur sagan En dag hade Johanna ett fint rött äpple, hon var inte hungrig så hon gav det fina röda äpplet till Niklas. Niklas tyckte om det fina röda äpplet, men då han hade en stor gul banan som han inte skulle äta så gav han den till Peter. Peter hade nyss köpt en stor mumsig chokladkaka och tyckte den stora gula bananen verkade godare så han gav den stora mumsiga chokladen till Marie. Jag skriver orden i parantes, men när informationen matas in i databasen sker det enbart i siffror. Fylld kopplingstabell ID Person1 Handling Objekt Person2 1 1 (Johanna) 1 (ge) 1 (Äpple) 3 (Niklas) 2 3 (Niklas) 2 (tycka om) 1 (Äpple) 3 3 (Niklas) 1 (ge) 2 (Banan) 5 (Peter) 4 5 (Peter) 3 (handla) 3 (choklad) 5 5 (Peter) 2 (tycka om) 2 (Banan) 6 5 (Peter) 1 (ge) 3 (choklad) 2 (Marie) I databasens ögon blir det såhär ID Person1 Handling Objekt Person2 1 1 1 1 3 2 3 2 1 3 3 1 2 5 4 5 3 3 5 5 2 2 6 5 1 3 2 Genom att ge varje person, handling och objekt ett värde så slipper vi skriva om informationen samtidigt som vi kan lägga det i databasen på ett trevligt sätt som inte alls tar upp mycket plats. Vi har nu tabeller där namn och händelser beskrivs i textform, men resten av tabellerna innehåller mest siffror. Det gör att det blir enklare och snabbare att söka i tabellerna. SELECT page WHERE id = 7

Om sagan hade handlat om folk som säljer saker på Blocket så skulle tabellerna ändå varit ganska lika det de är nu, händelsetabellen skulle sett annorlunda ut, men resten skulle varit nästan likadant. Det är hela magin med databaser, man skapar listor på information och kopplar sedan ihop det med andra tabeller genom hänvisningar till ID. Självklart hade vi kunnat skapa en tabell med en rad text i var datarad, men det skulle innebära att texten upprepas och att man måste ändra i texten för att ändra i sagan. Det finns olika sätt att dela upp informationen på, och så länge man inte upprepar för mycket data så är alla sätt bra (utom de dåliga). Så var det med det. Nu vet du i alla fall lite mer om hur en dator med databas tänker. Prova själv med att skapa tabellerna, mata in datan och se sedan vilken saga du får ut från databasen... SELECT page WHERE id = 8

Disclaimer Alla personer och händelser i detta häfte är uppdiktade och historien är i sin helhet ett resultat av min fantasi (dock är informationen om databasens funktion och uppbyggnad helt sann). All eventuell liknelse med namn på levande eller döda personer är rena tillfälligheter. SELECT page WHERE id = 9