Databasdesign: Nulägesanalys av normalisering

Storlek: px
Starta visningen från sidan:

Download "Databasdesign: Nulägesanalys av normalisering"

Transkript

1 Uppsala Universitet Instutitionen för Informatik och Media Databasdesign: Nulägesanalys av normalisering Johannes Wesslén Weiler Emelie Öhrn Kurs: Examensarbete Nivå: C Termin: VT-16 Datum:

2 Sammanfattning År 1970 introducerades normalisering med syfte att organisera data i relationsdatabaser för att undvika redundant data och reducera risker för anomalier. Idag finns indikationer på att en mer nyanserad bild av normalisering behövs då dagens databaser ställs inför nya utmaningar och krav. Det här arbetet utförs i form av en fallstudie där en analys av tre databaser inom olika verksamheter genomförs. Med utgångspunkt i normalformerna genomförs en explorativ analys för att identifiera vilka aspekter som påverkar normalisering i industrin. Slutsatsen av arbetet är att det är svårt för en oberoende part till databasen att avgöra och tolka normalformernas uppfyllnad. Faktorer som påverkar normalisering av databaser är: utvecklarens intuition, användarens påverkan av datakvalitet samt den tekniska skuld som quickfixes orsakar. Nyckelord: databasdesign, normalisering, normalform, denormalisering

3 Abstract Normalization was first introduced in 1970 with the purpose to organize data within relational databases in a way to avoid data redundancy and reduce the number of anomalies. As databases are facing new challenges and requirements, indications have been identified which points to a need for a more detailed view of normalization. This work is the outcome of a case study where three databases are analyzed. With the normal forms as starting point, an explorative analysis is made with the goal to identify different aspects that affects the way normalization is conducted within the industry. The conclusion is that it is difficult for an outsider to the database to interpret and determine whether the normal forms are fulfilled or not. Aspects affecting normalization are: the developer s intuition, users impact on data quality and the technical debt that quickfixes creates. Keywords: database design, normalization, normal form, denormalization

4 Begreppslista Attribut En egenskap som entiteten kan ha. Egenskap och attribut kommer i uppsatsen att användas som synonymer. BI (Business Intelligence) En samling olika färdigheter, tekniker, applikationer, processer och metoder som används av en organisation för att bättre förstå sin verksamhet och dess omvärld. Används för att kunna göra mer välavvägda affärsbeslut. Constraints Restriktioner som används för att skapa kontroll över hur data interagerar med annan data och hur relationer kopplas mellan entiteter. Dashboard En visuell och lättbegriplig display som visar information om nyckeltal som är viktiga för dess användare. DBMS (Database Management System) Mjukvara som tillåter användare interagera med databaser. MySQL & Microsoft SQL Server är exempel på denna typ av program. Entitet Något som verksamheten vill upprätthålla data om. Kan t.ex. vara en person, produkt, objekt eller koncept. ERD (Entity Relationship Diagram) En datamodell för att beskriva entiteter samt attribut och de relationer som finns mellan dem. GUI (Graphical User Interface) Ett grafiskt användargränssnitt som används för att förenkla interaktion mellan användare och dator. Join En query som kombinerar data från mer än en tabell för att forma en ny tabell med information från originaltabellerna. Kandidatnyckel Attribut som skulle kunna användas för att bli primär- eller främmande nyckel. OLAP (Online Analytical Processing) Ett tillvägagångssätt för att på en större mängd data på ett effektivt sätt genomföra queries snabbt. Exempelvis går det i en OLAP-kub att göra exekveringar snabbt på flerdimensionella databassökningar.

5 OLTP (Online Transaction Processing) Ett tillvägagångssätt för att i en databas utföra update-queries på ett bra och pålitligt sätt. OLTP stödjer även spårbarhet i större utsträckning än OLAP. Query En exakt begäran som extraherar viss information från en databas eller utför något i databasen. Sammansatt nyckel En kombination av attribut som tillsammans skapar en nyckel. SLA (Service Level of Agreement) En del av ett tjänstekontrakt som formuleras mellan olika parter. Överenskommelsen berör den kvalitet och omfattning en leverans ska ha och vilka skyldigheter som finns mellan de olika parterna för kontraktet. SSAS (SQL Server Analysis Services) Ett verktyg utvecklat av Microsoft som används för att granska och analysera data. Verktyget kan användas över flera olika databaser för att sammankoppla data och hitta mönster mellan den information som finns. Kan appliceras på data warehouses och är bland annat använt i BI-syfte.

6 Innehållsförteckning 1 Inledning Problemformulering Syfte Avgränsning Disposition Teori Traditionell modellering Konceptuell modellering Logisk modellering Fysisk modellering Normalisering Normalformer Teknisk skuld Anomalier Denormalisering Data warehouse Modellering Tidigare forskning Metod Forskningsstrategi och paradigm Val av respondenter Metodik för datainsamling Insamling av dokument Intervju Metodik för dokumentanalys Dokumentanalysmall Resultat Databas för bilder till kataloger Bakgrund Uppbyggnad och designval Databas för rapportering över ärendehantering Bakgrund Uppbyggnad och designval Databas för filmförsäljning Bakgrund Uppbyggnad och designval Analys Tolkning av normalformer Semantik Kontext

7 5.1.3 Censurerad data Intuition Användarens påverkan på datakvalitet Teknisk skuld och quickfixes Slutsats Förslag till vidare forskning Diskussion 34 Referenser 35

8 1 Inledning Att hålla en god databasdesign är grunden till att snabbt, pålitligt och konsekvent kunna hämta data ur databaser (Badia och Lemire, 2011). Ett verktyg för att på ett strukturerat sätt organisera sin data är att normalisera den i flera steg. År 1970 introducerade E.F Codd normalisering och den första normalformen (Codd, 1970). Normalformerna kan beskrivas som riktlinjer för organisering av data i en databas (Kent, 1983), och en närmare redogörelse för normalisering och normalformerna görs i avsnitt 2.2. Normalisering av relationsdatabaser görs för att undvika redundant data och anomalier vid queries i form av insert (insättning), modification (modifiering) och delete (borttagning) (Codd, 1970). Genom en bra design av databasen kan exempelvis backup-funktioner tillhandahållas vilket gör att återhämtningen efter eventuell datakorruption kan gå snabbare och mer smärtfritt (Stephens, 2010, s.8-9). Vid normalisering av databaser blir anpassningar till förändringar som insättning och borttagning av data enklare (Stephens, 2010, s ). Enligt Stephens (2010, s.154) stannar många databasdesigner vid tredje normalformen, detta för att det anses vara den nivå av normalisering som förhindrar de flesta anomalier. Här menar Stephens att de högre normalformerna leder till onödigt komplicerade datamodeller som är svåra att implementera, underhålla och använda. En annan svårighet som Jagadish m.fl. (2007) lyfter är att högre normalformer skapar svårigheter för användare som inte kan interagera direkt med databasen på grund av att dess design är för komplex. Målet är att normalisera relationer tills den normalform som är den mest kostnadseffektiva uppnås, med hänsyn till ökad prestanda och reducerat antal anomalier (Lee, 1995). Hur långt och hur mycket en databas ska normaliseras är en avvägning mellan å ena sidan minskade risker för anomalier och å andra sidan försämrad systemprestanda i form av längre svarstider. På senare tid har en debatt förts av ett antal större verksamhetsaktiva bloggare, t.ex. Pat Helland (Microsoft, 2007) om huruvida det kan vara mer lönsamt att denormalisera data snarare än att normalisera den. Denormalisering innebär att sänka graden av normalisering av databasen för att uppnå bättre systemprestanda (Hoffer, Prescott och McFadden, 2006, s.249). System som behöver vara skalbara och leverera data i varierande storlek tjänar på att denormaliseras (Obasanjo, ). Åtskilliga större aktörer inom IT-industrin såsom Google, ebay och Amazon väljer idag att använda sig av denormaliserade tabeller i större utsträckning för att snabbare leverera resultat och för att bättre skala sina databaser (Obasanjo, ; Rotem-Gal-Oz, ). Ett exempel på fördelaktig denormalisering tar Flickr s då ledande webbutvecklare Cal Henderson upp. Flickr har valt att denormalisera data då deras teknik kräver att 13 joins av tabeller måste göras för varje insert-, delete- och modification-query (Henderson, 2004). Debatten om normalisering och denormalisering är fortfarande aktuell då det inte finns tydliga riktlinjer om när och hur det är lämpligt att använda de olika verktygen vilket tyder på att det fortfarande finns problematik inom ämnet (Green, ). 1

9 1.1 Problemformulering Normalisering är idag ett vida känt koncept och som trots sin ålder fortfarande är aktuellt. Teorin lärs ut som ett av de främsta verktygen inom introduktionskurser till databaser (Badia och Lemire, 2011). Detta är något som även författarna av denna uppsats har erfarenhet av genom sin utbildning. Badia & Lemire (2011) belyser vidare att medan viss litteratur faktiskt beskriver svårigheterna med normalisering, ger andra bilden av normaliseringsteorin som ett closed case eftersom ämnet är så pass vedertaget och etablerat att ytterligare forskning anses onödig. Badia & Lemire menar att tillräcklig forskning inte bedrivs inom ämnet databasdesign. Flertalet forskare lyfter att normalisering inte enbart är en uppsättning regler att förhålla sig till, utan är beroende av utvecklarens intuition och erfarenheter (Badia och Lemire, 2011; Sanders och Shin, 2001). Vidare diskuterar Shin & Sanders (2006) att denormalisering (som trots namnet ej bör ses som motsats till normalisering, se avsnitt 2.4) av databaser är frekvent använt inom industrin, men kommer i skymundan inom akademia. Forskarna belyser också att inom den akademiska världen behandlas avvägningen mellan normalisering och denormalisering av databaser bristfälligt (Shin och Sanders, 2006). Tillvägagångssättet att organisera data genom normalisering uppfyller inte alltid de krav användare och verksamheter har på moderna databaser. Exempel på en anledning till att inte normalisera data kan vara att bättre svarstid är mer önskvärt än uppfyllda normalformer (Badia och Lemire, 2011). Värt att beakta är dessutom aspekten att idag är lagringsutrymme för data mycket billigare än för 35 år sedan (Ahl, 1981; WD US Online Store, 2016). Således fanns tidigare en större motivation för lagringsbesparande teknik. Därför kan en diskussion föras kring huruvida förhållningssättet till normalisering borde förändras för att bättre spegla dagens klimat. Avsikten med denna uppsats är att i form av en fallstudie genom dokumentanalys och intervjuer undersöka hur normalisering används i empiriska fall. De tankegångar som beskrivs i ovanstående stycken tyder på att det finns anledning att undersöka hur normalisering används inom industrin idag. Genom att utgå från normalformerna, tillsammans med arbetets explorativa karaktär, identifieras och undersöks vilka aspekter som påverkar normalisering och således kan en mer nyanserad bild av normalisering erhållas. 1.2 Syfte Uppsatsen genomförs i form av en explorativ flerfallsstudie. Genom dokumentanalys av tre databaser samt intervjuer undersöks i vilken utsträckning en oberoende part till databasen kan avgöra huruvida normalformerna uppfylls. Uppsatsens syfte är att med normalformerna som utgångspunkt skapa en nyanserad bild för vilka aspekter som påverkar hur normalisering inom industrin används. Detta är intressant på grund av att dagens databaser ställs inför nya utmaningar och krav. En sådan indikation är exempelvis fallet med Flickr i inledningen, där det är tveksamt om endast normaliseringsteorin, med fokus på dataredundans och minskat antal anomalier, är tillräcklig. 2

10 Uppsatsens område och det som diskuteras är intressant för bland annat IT-industrin och IT-konsulter. I händelsen av att externa IT-konsulter anlitas med uppdraget att för en organisation vidareutveckla system finns en stor sannolikhet att stöta på databaser och datastrukturer som funnits i bruk över en längre tidsperiod. Därav är det intressant att analysera hur normaliseringsteorin fungerar just när databaser och kringliggande system granskas. I uppsatsen används oberoende part som synonym till dessa IT-företag och konsulter. 1.3 Avgränsning Det finns olika typer av databaser med skilda syften och funktionalitet. Analysen i denna uppsats avgränsas till att undersöka relationsdatabaser då det är den vanligaste typen av databas (Stephens, 2010) och normaliseringsreglerna vanligen tillämpas på dessa. Normalformerna kan även i viss mån appliceras på data warehouse om det synsätt som Inmon (2000) förespråkar används. Andra typer av databaser än relationsorienterade berörs ej. Analysen av databasernas design utgår från normalisering. Som nämnts tidigare i inledningen förhindrar den tredje normalformen de flesta anomalier, och implementation av högre normalformer kan ge onödigt svåra datamodeller. Med detta i åtanke görs en avgränsning där brott mot eller användandet av normalformer över tredje normalformen inte tas i beaktning och ej heller behandlas. Uppsatsen redovisar eller producerar inte någon metod eller norm för hur framtagandet av designen för databaser bör gå till, utan ämnar endast undersöka och analysera hur situationen ser ut idag. 1.4 Disposition Inledningsvis i kapitel 2 redogörs den teoretiska grunden för arbetet. Normalisering och denormalisering behandlas grundligt tillsammans med de tre första normalformerna. Här berörs även den tidigare forskning som finns i ämnet. Kapitel 3 utgör uppsatsens metoddel där forskningsstrategi och paradigm presenteras, samt datainsamlingsmetodik och den dokumentanalysmall som använts. I kapitel 4 sammanställs resultatet av dokumentanalysen samt intervjuerna. Även databasernas strukturer presenteras genom ERD. Kapitel 5 är analysavsnittet där resultatet från kapitel 4 analyseras efter ett antal olika teman som påverkar normalisering. I kapitel 6 presenteras slutsatser och förslag till framtida forskning och i kapitel 7 presenteras en diskussion utifrån materialet. 3

11 2 Teori I avsnittet berörs de centrala begreppen normalisering och denormalisering samt kriterierna för de tre första normalformerna. Vidare ges förklaringar till de anomalier som kan uppstå när databaser inte är tillräckligt normaliserade. Avsnittet presenterar också den modellering som genomförs av både traditionella databaser samt data warehouses. Sist behandlas den tidigare forskning som existerar inom ämnet. 2.1 Traditionell modellering Det finns ett flertal metoder för utformning och modellering av databaser. Ett sätt att modellera en databas är genom följande tre steg: konceptuell, logisk och fysisk modellering (Teorey, Lightstone och Nadeau, 2010) Konceptuell modellering I detta steg analyseras vilka krav som ställs och utifrån kraven genereras sedan en konceptuell modell av databasen, vanligen ett ERD (se Figur 1) (Badia och Lemire, 2011). Detta steg kan vara problematiskt för verksamheter då mappningen mellan entitet och verkligheten inte enbart är av teknisk karaktär (Eriksson och Ågerfalk, 2010). Att använda rätt identifierare är också en kritisk del i designprocessen. En identifierare är något som används för att identifiera enskilda objekt, och utgör en viktig del av informationsinfrastrukturen för organisation och samhälle. Vidare diskuterar Eriksson & Ågerfalk tre problem gällande identifierare och visar att svårigheterna vid utformning, val, förvaltning och kontroll av identifierare. Dåligt utformade identifierade skapar låsningar, ineffektivitet och kvalitetsproblem. (Eriksson och Ågerfalk, 2010) Figur 1: ERD - exempel 4

12 2.1.2 Logisk modellering För att skapa en logisk modell krävs den konceptuella modellen av databasen tillsammans med de funktionella beroenden som finns mellan de olika entiteterna som identifierats. När entiteternas funktionella beroenden utstakats skapas en modell för hur dessa ser ut tillsammans med primära och främmande nycklar som symboliserar relationerna mellan entiteterna (se Figur 2). Efter detta skapas ett databasschema där varje entitet listas tillsammans med dess attribut och de primärnycklar som finns kopplade till respektive entitet. Normalformerna bör finnas i åtanke från starten av modelleringen. Dock blir det tydligare i den logiska fasen vilka entiteter som bör få egna tabeller då attributs kopplingar och beroenden blottas på ett begripligare sätt. Därav bör den slutgiltiga normaliseringen ske i den logiska modelleringsfasen. (Teorey m. fl., 2010, s ) Tabell Primärnyckel Troliga icke-nycklar Författare Personnummer Förnamn, Efternamn, isbn_id (FK) Bok isbn_id Titel, Förlag_ID (FK) Förlag Förlag_ID Namn, Telefonnummer Figur 2: Exempel på logisk modell Fysisk modellering Den fysiska modelleringen använder sig av databasschemat från den logiska modelleringen för att skapa lagringsutrymmen (Badia och Lemire, 2011). I denna fas fattas beslut angående den fysiska organisationen för datan och program för databasbearbetning designas (Hoffer m. fl., 2006, s.47). I den fysiska modelleringen ingår bland annat indexering, partitionering och klustring av data. Fokus ligger på hur datan lagras och hur åtkomst till informationen behandlas. Målet med fysisk modellering är att maximera effektiviteten för databasen och de applikationer som körs mot den. I åtanke finns bland annat processorkraft, in-/outputkapacitet och nätverksbandbredd (Lightstone, Teorey och Nadeau, 2010, s.7). 2.2 Normalisering Genom att implementera de olika normalformerna ges en struktur på databasen för att undvika oönskade anomalier vid insert-, modification- och delete-queries. Genom att undvika att lagra samma information på flera olika ställen i databasen (s.k. redundant data) kan modifiering och insättning av data göras på ett snabbt och smidigt sätt då lagringen sker på ett enda ställe i databasen. Uppbyggnaden genom normalformerna ger också upphov till ökad datatillgänglighet. En fördel med strukturen är att den producerar naturligt normaliserade relationsscheman. Normalformerna genererar också en ökad kontroll av stabiliteten och integriteten av ERD:s genom att uppkomsten av anomalier förebyggs. (Sanders och Shin, 2001) 5

13 En ytterligare fördel med normalisering är att det sparar lagringsutrymme (Jagadish m. fl., 2007). Enligt Figur 3, som är onormaliserad, behöver ett fält med all information per bok läggas till vid varje insert-query. Detta skapar redundant information där Nordstedts Förlag upprepas vid varje insert. Istället för att lista Nordstedts Förlag på alla rader i tabellen skapas en referens till en annan entitet genom en främmande nyckel som sedan länkas i originaltabellen. I tabellen Författare (Figur 6) hittas isbn_id som är främmande nyckel till entiteten Bok. Denna entitet har i sin tur en främmande nyckel som refererar till det förlag boken hör till. Genom denna teknik minimeras lagringsmändgen då varje informationen för varje entitet endast behöver lagras på ett ställe, en gång. Personnummer Författarnamn isbn Titel Förlag Förl. telefonnummer Astrid Lindgren Mio, min Mio Rabén & Sjögren Herman Lindqvist Gustavs dagar Wahlströms Jan Guillou Tempelriddaren Nordstedts Förlag Tess Ward Ät naturligt Nordstedts Förlag Figur 3: Ingen normalform Trots många fördelar med normalisering av databaser finns det ett flertal nackdelar. Först och främst leder det till minskad systemprestanda i form av längre svarstider på grund av de join-queries som behöver utföras. I en relativt liten databas behöver detta inte ses som ett problem, men till följd av större datamängder blir svarstiderna onödigt långa när joins måste utföras på data utifrån många olika tabeller (Shin och Sanders, 2006). Generalisering och fragmentering av databaser leder också till mer komplicerade databasmodeller (Sanders och Shin, 2001). Jagadish m.fl. (2007) argumenterar för att användbarheten av en databas är minst lika viktig som dess operativa kapacitet. De betonar att fragmentering av tabeller minskar användbarheten av databaser när det gäller schemaförståelse, och till följd av detta måste experter med erfarenhet och kunskap hjälpa användarna att tillhandahålla den data som efterfrågas (Jagadish m. fl., 2007). Ytterligare en nackdel är att normalisering är ineffektiv på databaser där data sällan behöver modifieras och där hämtning av data är primärt (Lee, 1995) Normalformer En normalform kan ses som en riktlinje för design och organisation av data i en databas (Kent, 1983). Normalformerna implicerar hur olika attribut kan grupperas (Lee, 1995). De normalformer som finns är: onormaliserad form, första normalformen, andra normalformen, tredje normalformen, Boyce-Codd normalform, fjärde normalformen, femte normalformen samt domain/key normalform (Stephens, 2010, s.138; Kent, 1983). När databasen uppfyller första normalformen sägs den vara i första normalformen. Om de tre första normalformerna uppfylls anses databasen vara i tredje normalformen. Detta innebär att om en databas är på en viss nivå av normalisering utnyttjar den även fördelarna med de tidigare normalformerna. (Stephens, 2010, s ) 6

14 Personnummer (PK) Förnamn Efternamn isbn Titel Förlag Förl. telefonnummer Astrid Lindgren Mio, min Mio Rabén & Sjögren Herman Lindqvist Gustavs dagar Wahlströms Jan Guillou Tempelriddaren Nordstedts Förlag Tess Ward Ät naturligt Nordstedts Förlag Figur 4: Första normalformen Den första normalformen (1NF) innebär att de egenskaper en entitet kräver blir naturliga för att skapa entiteten (se Figur 4). Varje kolumn måste ha ett unikt namn och varje kolumn måste ha en och endast en datatyp. Varje kolumn får bara innehålla ett enda värde och är då s.k. atomär/atomisk. Kolumner kan inte heller innehålla upprepade grupper. (Stephens, 2010, s.100, s , Kent, 1983) Personnummer (PK) Förnamn Efternamn isbn_id (FK) Astrid Lindgren Herman Lindqvist Jan Guillou Tess Ward (a) Författare isbn_id (PK) Titel Förlag Förl. telefonnummer Mio, min Mio Rabén & Sjögren Gustavs dagar Wahlströms Tempelriddaren Nordstedts Förlag Ät naturligt Nordstedts Förlag (b) Förlag Figur 5: Andra normalformen Den andra normalformen (2NF) kräver att tabellen är i första normalformen, samt att alla attribut som inte är en nyckel är beroende av hela nyckeln. Detta kallas för funktionella beroenden (Stephens, 2010, s ). Konceptet är endast väsentligt när det finns en sammansatt nyckel, alltså när en nyckel består av flera kolumner (Kent, 1983). Exempelvis är Titel i Figur 4 beroende av både isbn, som kan ses som kandidatnyckel, och Personnummer vilket gör att informationen behöver delas upp för att uppfylla andra normalformen (se Figur 5). 7

15 Personnummer (PK) Förnamn Efternamn isbn_id (FK) Astrid Lindgren Herman Lindqvist Jan Guillou Tess Ward (a) Författare isbn_id (PK) Titel Förlag_ID (FK) Mio, min Mio Gustavs dagar Tempelriddaren Ät naturligt 3 (b) Bok Förlag_ID (PK) Namn Förl. telefonnummer 1 Rabén & Sjögren Wahlströms Nordstedts Förlag (c) Förlag Figur 6: Tredje normalformen Den tredje normalformen (3NF) kräver att tabellen är i andra normalformen och att det inte finns några transitiva beroenden (se Figur 6). Det betyder att det inte finns något attribut, som ej är en nyckel, som är beroende av något annat attribut, som ej heller är någon nyckel. (Stephens, 2010, s.150) Teknisk skuld Vid för låg grad av normalisering finns det risk för att s.k. teknisk skuld kan uppstå. Teknisk skuld kan användas som metafor till ej optimal kod. Om det intialt i ett projekt utvecklas något som inte är optimalt blir det svårare att bygga vidare på det över tid. Detta innebär att det blir dyrare och tar längre tid att utveckla funktioner ovanpå den kodbas som redan existerar. Wolff beskriver att ju mer tid som läggs på att utveckla ett system kring kod som inte är optimal desto mer ökar den tekniska skulden. Försök att kringgå problemet gör att kostnaden ökar med tiden. (Wolff och Johann, 2015) Sundvall kopplar metaforen teknisk skuld till databasstrukturen och hur det finns risk för att manuellt behöva uppdatera och mappa information när data ska förändras eller matas in i databasen (Sundvall, 2013). 8

16 2.3 Anomalier Begreppet anomali har sitt ursprung i grekiskan och betyder avvikelse från det normala, från en regel eller en lag (Anomali, 2016). En anomali i en databas är ett fel eller inkonsekvent data som kan uppkomma när det görs försök att uppdatera en tabell som innehåller redundant data (Hoffer m. fl., 2006 s.197). Anomalier i databaser innebär att datan inte sätts in korrekt eller saknar vissa delar och på så sätt är ofullständig. De förekommer i samband med för låg nivå av normalisering (Makowsky och Ravve, 1998). De tre typer av update-anomalier som förekommer är: insert, modification och delete. Onormaliserade databaser kan vara en bidragande orsak till att anomalier uppkommer (Westland, 1992). Anomalier åsamkar även inkonsekvent data och förlorad affärsdata (Lee, 1995). En insert-anomali uppstår när användare försöker lagra en viss typ av information som kräver att även information om en annan entitet anges (Makowsky och Ravve, 1998). Exempelvis så kräver en insert-query all information om författaren, boken samt förlaget för att den ska fungera (se Figur 3). En modification-anomali uppstår när användaren behöver modifiera data på flera olika ställen i databasen på grund av duplicering av data (Lee, 1995). För att modifiera kolumnen Förlag (se Figur 4) som finns i en tabell som är i första normalformen, kommer även förlagets telefonnummer att behöva modifieras för att inte skapa inkonsekvent data. Om Förlag existerat oberoende av Bok eller Författare hade förändringen inte skapat denna typ av anomali. En delete-anomali uppstår när information som finns i databasen tas bort av misstag vid en delete-query. Om en delete-query körs med syftet att ta bort författaren Herman Lindqvist (Figur 4) kommer även förlaget Wahlströms samt boken Gustavs dagar försvinna från databasen vilket skapar en delete-anomali. Tabellen behöver normaliseras för att inte skapa inkonsekvens i informationen då författare, bok och förlag behöver kunna existera utan att vara beroende av varandra. 2.4 Denormalisering Denormalisering är processen att minska normaliseringsgraden av databasen för att uppnå bättre systemprestanda (Hoffer m. fl., 2006 s.249). Många kommersiella databaser använder denormalisering för att reducera antalet joins, optimera evalueringen av queries samt underlätta interaktionen med användarna. Utmaningarna kan inte lösas genom ett förbättrat query interface utan utvecklare måste börja tänka om gällande själva arkitekturen på databasen (Jagadish m. fl., 2007). Genom denormalisering minskar antalet tabeller vilket gör att färre joins mellan tabellerna måste genomföras (Sanders och Shin, 2001). Ett användningsområde som är relativt stort för denormaliseringsstrategin är data warehousing. Ett syfte med data warehousing är att hämta en organisations data för att blotta den för beslutsfattare inom organisationen. Att hämta, konvertera och migrera data från databasen till de system som finns hos den organisation som är målet för informationen är ett av de områden 9

17 där data warehousing förekommer. Genom att användare oftast utför hämtning av data, och modifieringar av individuella attribut sällan förekommer, kan det vara fördelaktigt att denormalisera data warehouses. (Shin och Sanders, 2006) En av de negativa sidorna med alltför denormaliserade tabeller är ökad risk för de anomalier som kan uppstå i samband med insert-, delete- och modification-queries (se avsnitt 2.3). Ytterligare nackdelar med denormaliseringen är att valet att denormalisera vanligtvis resulterar i kompromisser mellan flexibilitet och prestanda. För att fatta beslut med god grund behöver kunskap finnas om hur frekvent datan uppdateras, hur serverns DBMS fungerar och hur övriga system samverkar för att leverera bästa möjliga resultat. (Shin och Sanders, 2006) Trots begreppen normalisering och denormalisering, är dessa två inte motsatser till varandra. Om en tabell inte är normaliserad innebär inte detta att den är denormaliserad. Den är då endast onormaliserad, alltså ej i den första eller någon av de högre normalformerna. (Shin och Sanders, 2006) 2.5 Data warehouse Data warehouses används för att lagra stora mängder data. Datan lagras som en multidimensionell datastruktur, och en mer denormaliserad sådan för att på ett effektivt sätt bistå med information som sträcker sig över ett stort spann. Informationen i data warehouset presenteras ofta i kuber vilket den multidimensionella strukturen är väl anpassad för. Målet med informationen i data warehouset är att på ett enkelt sätt filtrera, dela upp och lyfta ut information som är värdefull för en given verksamhet. Informationen ska vara enkel att förstå och endast det som är relevant ska visas. För att förstå hur datastrukturen ska modelleras behövs kunskap för att förstå verksamhetens behov. Även kännedom om den underliggande datakällan behövs. (Kimball och Ross, 2013) Ett data warehouse byggs genom en iterativ process, eftersom kraven på det inte på förhand är kända (Inmon, 2000). Ett data warehouse tillsammans med dess BI-verktyg måste kunna anpassa sig till förändringar. Användares behov, data och teknologin som används tenderar alla att förändras över tid. Existerande data och applikationer kopplade till datan ska inte behöva modifieras eller störas när organisationen behöver lägga till ny typ av data. (Kimball och Ross, 2013) Modellering De två vanligast förekommande tillvägagångssätten för datalagring i data warehouses är dimensionell och normaliserad modellering (Breslin, 2004). Dimensionell modellering är enligt Kimball en bottom-up -strategi (Breslin, 2004). Det är en logisk designteknik med målet att presentera data på ett standardiserat sätt som är ämnat att ha hög prestanda, d.v.s. kort svarstid, när det gäller åtkomst (Connolly och Begg, 2005, s.1183). Inom denna typ av modellering används Entity-Relationshipkonceptet tillsammans med 10

18 ytterligare strategier. Varje dimensionsmodell består av en tabell med sammansatt nyckel som kallas för faktatabell, samt några mindre tabeller som kallas dimensionstabeller. Varje dimensionstabell har en enkel primärnyckel som är kopplad till en matchande främmande nyckel i faktatabellen. (Connolly och Begg, 2005, s.1183) Ytterligare en viktig metod inom dimensionell modellering är att alla dimensionstabellers naturliga primärnycklar byts ut till en ersättningsnyckel (en teknisk nyckel) som baseras på en simpel integerstruktur. Detta innebär att varje join som sker inom databasen baseras på de ersättande nycklarna istället för en primärnyckel. Anledningen till att primärnyckel byts ut mot en annan är för att skapa ett oberoende från själva datan i data warehouset för att få struktur i mappningen mellan datan. Den dimensionella modellen är denormaliserad för att snabbt kunna svara med relevant information. (Connolly och Begg, 2005, s ) Den logiska strukturen, när det finns en faktatabell omgiven av dimensionstabeller med refererande data, kallas starschema (se Figur 7). Den refererande datan kan i sin tur denormaliseras (Connolly och Begg, 2005, s.1183). En alternativ form till starschema är snowflakeschema. Ett snowflakeschema tillåter dimensioner att ha dimensioner, dvs. en dimensionstabell kan ha ytterligare tabeller under sig vilket främjar en normaliserad struktur. Anledningen till att ha normaliserad data i data warehouset är att enklare kunna filtrera den data som används i det. Inom denna struktur innehåller inte dimensionstabellerna någon denormaliserad data. (Connolly och Begg, 2005, s ) Figur 7: Starschema Inmons normaliserade modellering är till skillnad från Kimballs en top-down -strategi. Inmon beskriver en datamodell med tre lager, där kuben designas med hjälp av ERD (Breslin, 2004). Data warehouse bygger på samma standard som traditionella relationella databaser. Tabeller grupperas enligt subject areas och följer till en viss grad normalformerna (Inmon, 2000). 11

19 2.6 Tidigare forskning Lee (1995) belyser i sin artikel svårigheterna med att bestämma vilken normalform som är lämplig för databasstrukturen ur ett ekonomiskt perspektiv. Han presenterar därefter en metodologi för att definiera normalformer genom en cost/benefit-modell. Lee hävdar att riktlinjerna sannolikt leder till en bättre databasdesign (Lee, 1995). Badia & Lemire (2011) beskriver hur traditionell databasdesign inte efterlevs i praktiken. En svårighet som existerar är att den teori och metodologi som finns inte ger de redskap och verktyg som krävs. Problemet försvårar metodens tillämpning i den moderna miljö som utvecklarna arbetar i idag. Forskarna belyser att traditionella metoder, dit normaliseringsteorin kvalificeras, väljs bort vid design av databaser trots att det existerar en bred teoretisk bas. De hävdar att traditionella metoder inte ger tillräckligt med vägledning hur de ska tillämpas i olika situationer, särskilt när informationen inte passar med den konceptuella modellen (se avsnitt 2.1.1). Vidare menar Badia & Lemire att denna situation medverkar till att vidmakthålla problemet och försvåra vidare utveckling av metoder för databasdesign. (Badia och Lemire, 2011) Jagadish m.fl. (2007) kontrasterar Badia & Lemires uttalande om att utvecklingen inte går framåt. De förstnämnda menar istället att de databastekniker som finns har förbättrats de senaste årtiondena. Dock är det tveksamt om det kan ses som tillräckligt då verksamheter har höga kostnader för teknisk support av databaser (Jagadish m. fl., 2007). De högre normalformerna är också problematiska då de bidrar till ytterligare underhållskostnader (Lee, 1995). Som nämnts i avsnitt 1 har bland andra Pat Helland (2007) fört en diskussion kring normaliseringen av databaser. Helland påstår att Normalization is for sissies och att normalisering av data som är oföränderlig ses som onödig. Ett exempel på data som är oföränderlig är information i databaser som loggar händelser, såsom banktransaktioner och olika typer av ordrar. De innehåller till största del beständig data eller information som endast bygger på den redan befintliga datan. Helland menar att data som är oföränderlig endast bör normaliseras om det finns en betydande anledning, exempelvis begränsningar i lagringskapaciteten. (Helland, ) 12

20 3 Metod I detta avsnitt redogörs det för vilken forskningsstrategi samt paradigm som har använts i arbetet. Här beskrivs hur insamlingen av data skett samt hur analysen av dokumenten genomförts. All exempeldata som finns med i denna uppsats är fingerad p.g.a. konfidentialitet. Vissa entiteters attribut är sekretessbelagda och därför censurerade. De kommer således inte att behandlas djupare i analysen. Företagen och kontaktpersonerna som medverkat i arbetet till uppsatsen önskar vara anonyma. 3.1 Forskningsstrategi och paradigm En fallstudie karaktäriseras av fokus på mer djupgående än bred kunskap, att fallet undersöks i sitt naturliga sammanhang och att ett holistiskt synsätt används (Oates, 2006, s ). Forskningsstrategin som använts i detta arbete var av typen fallstudie, på grund av att arbetet syftade till att undersöka hur normalisering används i industrin. Att analysera databaser som används i olika verksamheter medför krav för förståelse av databasens kontext. För att förstå kontexten behövs ytterligare undersökningar i form av dialog med någon som är bekant med databasens utformning. Vidare var arbetet dels en beskrivande fallstudie, dels en explorativ sådan. Detta p.g.a. att det är ett speciellt fenomen, normalisering, som utforskas i sin kontext samt att det är verkliga fall som tolkas. Eftersom de olika databaserna analyserades på samma sätt, men i olika kontext, leder detta till att fallstudien är en flerfallsstudie. Vid flerfallsstudier analyseras först de olika fallen (d.v.s. databaserna i form av de tillhandahållna dokumenten) separat för att sedan jämföras i syfte att hitta skillnader och likheter (Oates, 2006, s.144). Arbetet har utgått från det interpretivistiska paradigm som enligt Oates (2006, s ) syftar till att förstå det sociala sammanhanget av ett informationssystem och att det inte finns en sanning utan flera olika sätt att tolka verkligheten. Den kvalitativa dataanalysen och intervjuer, tillsammans med att databaserna studerades i deras naturliga kontext implicerar att interpretivism är det underliggande paradigmet för arbetet. 3.2 Val av respondenter För att försöka säkerställa spridning i insamlingen av data kontaktades flera olika typer av verksamheter. Målet var att få tillgång till databaser i olika storlek och som existerar i olika kontexter. Önskvärt hade varit att kunna genomföra analysen på ytterligare databaser. På grund av begränsad tid för utförandet av arbetet fanns inte möjligheten att genomföra analysen på ett tillräckligt stort antal databaser för att generalisering skulle vara möjlig. De databaser som kom att granskas valdes utifrån ett bekvämlighetsurval (Oates, 2006, s ), där de respondenter som svarade och ansåg sig kunna ställa upp bidrog med undersökningsmaterial. De tre databaser som slutgiltligen användes tillhandahölls genom kontakter på författarnas tidigare arbetsplatser. Andra verksamheter som kontaktades ansåg sig 13

21 inte kunna bidra med material med hänvisning till sekretessbestämmelser. Några återkom aldrig med svar. Genom att respondensen resulterade i att de databaser som ställdes till förfogande var genom kontakter på företag där författarna av denna uppsats tidigare har varit anställda finns eventuell svarsbias som måste tas hänsyn till. Ett krav för att försöka förebygga svarsbias var att författarna av denna uppsats i sitt tidigare arbete aldrig kommit i kontakt med applikationerna och de tillhörande databaserna. Genom detta ansågs en nyanserad analys kunna genomföras. 3.3 Metodik för datainsamling Dokumentanalys och semistrukturerade intervjuer har nyttjats som datainsamlingsmetoder för uppsatsen. Eftersom det är två olika metoder som har använts tillämpas metodtriangulering (Oates, 2006, s.37). Genom detta kan rikare data erhållas, då de tolkningar som gjordes under dokumentanalysen kontrollerades genom intervju, vilket höjer kvaliteten på resultatet (Bryman och Nilsson, 2011, s.354). På så sätt säkerställdes att de antaganden som gjorts om databaserna var rättfärdigade Insamling av dokument För att samla in underlag till arbetet gjordes en förfrågan om material genom mailutskick. Mailet sändes till sex olika verksamheter inom olika branscher, inklusive en kommun. Det som efterfrågades var databasens struktur i form av t.ex. ERD, där entiteter och relationer blottas. För att kunna avgöra om tabeller var i 1NF, 2NF och 3NF behövdes även tillgång till entiteternas attribut och exempeldata. Tillsammans med förfrågan om dokument ombads mottagaren att motivera och beskriva kopplingen mellan databasen och organisationens verksamhet för att förstå kontexten. I och med att dokumenten tillhandahållits av personer inom verksamheten, som är insatta i de olika systemen och bedömts ha god insikt i databasens kontext, ses de dokument som analyserats som pålitliga och korrekta (kontaktpersonernas roller deklareras i respektive databas resultatdel, se avsnitt 4). En aspekt som behövde tas hänsyn till vid datainsamlingen var sekretessen kring databaser. I mailutskicket påpekades att sekretessbelagd information ej behövde inkluderas, och att tvättat material var av mindre betydelse. Ett företag ställde sig tveksamma att lämna ut information om databaserna och systemens struktur då de innehöll hemlig affärsinformation. Andra argumenterade för att databasstrukturen i sig inte är hemlig utan det problematiska var att lämna ut innehållet i den. Med databaserna för reservdelskataloger (avsnitt 4.1) och ärendehantering (avsnitt 4.2) erhölls både struktur med entiteter och attribut samt tabeller med exempeldata. Avsaknad av dokumentation nämner Stephens (2010, s.210) som ett problem gällande databasdesign vilket också upplevdes under arbetets gång. En av databaserna som mottogs bestod av över 200 entiteter. Tillsammans med ett ERD bifogades tabeller med primär- och främmande nycklar för varje entitet. Detta ERD var omfattande vilket medförde svårigheter för vidare analys. Därför togs ett beslut att exkludera databasen från arbetet. 14

22 3.3.2 Intervju Baserad på den dokumentanalys som genomfördes (se avsnitt 3.4), hölls även intervjuer för att erhålla djupare förståelse och en bredare bild av företagens tillämpningar av databasdesign. Intervjuer hölls via Skype och genom mail. Intervjuerna var semistrukturerade för att få möjlighet att öppna upp för diskussion (Oates, 2006, s.188), men innehöll även specifika frågor om den aktuella databasens design. Den struktur intervjuerna fått och de teman som diskuterats har grundats i de tolkningar som framkommit från dokumentanalysen, så som uppfyllnad av normalformer. Utifrån detta ställdes frågor och funderingar kring kontexten av databasen för att ytterligare förtydliga och bygga vidare på analysen. För att analysera intervjuerna gjordes en tematisk kodning baserad på den process som Robson (2013, s ) föreslår. Det första steget var att efter genomförd intervju transkriberades den och lästes igenom. Efter att ha blivit bekant med datan påbörjades en kodning av intervjun där de segment som ansågs intressanta för arbetet markerades. Innan kodningen hade inga fördefinierade teman tagits fram för att undvika bias och inlåsningar (Robson, 2013, s.275). Intressanta teman identifierades utifrån dokumentanalysen av databasens bakgrund, strategi och design för att finna relevanta resultat inom intervjumaterialet. Två av databaserna som granskades tillhandahölls av samma IT-arkitekt (se avsnitt 4.1 och 4.2). Därför har en viss iteration funnits i intervjuerna med denna person, då karaktären av kodningen från intervjun innan påverkade vilka frågor som ställdes i den efterföljande. Sist sammanställdes resultaten från den initiala dokumentanalysen med den information som framkommit under intervjuerna. Resultatet av detta återfinns i avsnitt 4. Fördelen med att tolka data genom denna process är att den är flexibel och att resultatet utan svårigheter kan presenteras för läsaren (Robson, 2013, s.477). Den tematiska kodningen har också varit användbar då de personer som intervjuades fungerade som bidragsgivare i researchen och analysen genom att medverka med sin expertis. Nackdelen med den flexibla processen är att mycket data genereras och det kan då bli problematiskt att veta vilken data som ska fokuseras på (Robson, 2013, s.477). Detta förebyggdes genom att ha koncentration på frågor som rörde normalformerna och mest frekvent återkommande teman. En annan nackdel var att detta tillvägagångssätt inte anses ha lika god renommé som vissa andra analysmetoder (Robson, 2013, s.477). Något som i största möjliga mån försökte åstadkommas var att få kontakt med någon person väl insatt i databasens uppbyggnad och struktur. De personer som intervjuades hade roller som IT-arkitekt samt integrationskonsult. IT-arkitektens intervjuer genomfördes bl.a. via Skype och på det sättet fanns det möjlighet för korrespondenten att visa databasens kontext genom skärmdelning. Därför valdes också transkriberingen att ej göras verbatim. Intervjun med integrationskonsulten genomfördes skriftligen. Genom att intervjua en anställd på ett företag finns risk för, återigen, att det tillhandahålls en subjektiv bild. Varje individ tolkar verksamheten på sitt sätt. Databasdesign kan också möjligen inte alltid ses som något som är rätt eller fel utan är ett mer subjektivt område där bedömningar och avvägningar spelar in. Önskvärt vore att intervjua flera personer med kunskap om samma databas för att kunna redogöra för skillnader i tolkningar. På grund av begränsad tid för arbetet har detta inte kunnat genomföras. 15

23 3.4 Metodik för dokumentanalys En kvalitativ dataanalysmetod inkluderar all icke-numerisk data såsom ord, bilder och ljud, som är resultatet av intervjumaterial, företagsdokument, hemsidor och utvecklares modeller. Inom interpretitativa studier används till största del den kvalitativa data som genereras utifrån fallstudier. (Oates, 2006, s.266) Dokumenten har setts som behållare av information vilket innebär att de går att analysera både kvalitativt och kvantitativt (Oates, 2006, s.239). Med den kvalitativa teknik som använts i studien har olika teman i dokumenten undersökts för att sammanfatta datans sammanhang. Den metod som användes vid analysen av dokumenten var enligt Oates beskrivning (2006, s.269) av deduktiv karaktär då existerande teorier användes. Den dokumentanalysmall som upprättades kan ses som ett ramverk då den inkluderade kriterier för uppfyllnad av normalformerna (se avsnitt 3.4.1). De dokument som har använts i analysen har för varje databas varit (med undantag för databasen för filmförsäljning (avsnitt 4.3) där ingen exempeldata fanns att tillgå): ERD, beskrivning av entiteter och dess relation till varandra samt tabeller med exempeldata. En risk som finns vid kvalitativ dataanalys är hur författarnas bakgrund, antaganden och övertygelser påverkar analysen. Detta har minimerats genom att bygga analysen på en redan etablerad teori, normalisering. För att en databas ska implementera en grad av normalform måste vissa kriterier vara uppfyllda. Med teorin som bakgrund har en högre grad av objektivitet kunnat upprätthållas vilket medförde bättre kvalitet i studien Dokumentanalysmall En dokumentanalysmall upprättades för att tillvägagångssättet av analysen skulle bli likvärdigt för alla databaser. Processen började med att sammanfatta den kontext som databasen verkar i, eftersom detta kom att påverka resultatet av analysen i form av förbättrad förståelse för databasens helhet. Sedan sammanställdes ERD, tabeller med exempeldata och en beskrivning av entiteter och deras förhållande till varandra. Därefter kontrollerades, för varje relation, om kriterierna för första, andra respektive tredje normalformen uppfylldes. Detta var en iterativ process med syfte att stämma av att de antaganden som gjordes var korrekta. De dokument som erhållits har granskats utförligt och den kontext som databasens information förhåller sig till har först tolkats av respondenten i verksamheten och sedan av uppsatsens författare. Kontextbeskrivningen är något som varit kritiskt för att fastställa huruvida motiveringar och strategier är rimliga för respektive databas. Genom denna process finns det risk för att tolkningen av databasens kontext blivit något subjektiv, däremot bör de ERD:s som tillhandahållits ses som en objektiv bild av databasens uppbyggnad. 16

24 4 Resultat I detta avsnitt presenteras de resultat som tillhandahölls genom att tillämpa metoden som beskrivs i kapitel 3 på det insamlade materialet. Varje databas presenteras var för sig och resultatet grundar sig i den dokumentanalys som genomfördes av databasen samt de intervjuer som utförts. Först ges en kort presentation av företaget följt av kontexten där databasen verkar. De delar av databaserna som närmare presenteras är bitar som har en central roll i databasens uppbyggnad, där det anses har funnits problem eller ämnen som de intervjuade personerna själva har lyft fram. Figur 8 visar en överblick av de databaser som presenteras i avsnittet. Allt material som presenteras är sådant som respektive företag gett samtycke till att publicera i uppsatsen. Databas Databastyp Typ av verksamhet Intervjuperson Miljö Bilder till kataloger OLTP Fordonstilverkare IT-arkitekt Rapportering över ärendehantering OLAP En kommun* IT-arkitekt Statistik över filmförsäljning** OLAP IT-tjänsteföretag Integrationschef Applikation för att skapa kataloger för reservdelar, produkter, servicemanualer etc. Kubmiljö för att skapa rapporter över incidenter inom en organisation för att sedan kunna följa upp om SLA uppfylls. Data warehouse för lagring av tillgängliga filmer och försäljningsstatistik över dessa. * = driftas av samma företag som databasen för bilder till kataloger. ** = fingerat för att anonymisera. Figur 8: Översikt av material 4.1 Databas för bilder till kataloger Databasen tillhandahölls av ett företag verksamt inom fordonsindustrin. Företaget har ett brett utbud av fordon och tillhandahåller även service och reservdelar. Deras produktionsanläggningar finns i ett flertal länder runt om i världen. Fordonen distribueras främst via fristående försäljare Bakgrund Applikationen skapades runt 1995 och används som ett internt system för reservdelskataloger, servicemanualer och liknande. Databasen innehåller bilder på fordon och reservdelar och den används som en bildmapp som organiserar bildernas kopplingar till olika kataloger. Den finns integrerad med andra system (som bl.a. översättare och artikelbeskrivningar) som gör att slutresultatet kan bli både digitala och tryckta kataloger. Katalogerna i PDF-format har funktionen att när användaren klickar på en reservdel länkas den till delens detaljlista och artikelnummer (s.k. hotspot) för att underlätta beställningar. 17

25 Figur 9: ERD - bilder till kataloger Uppbyggnad och designval Nedan presenteras de delar av databasens uppbyggnad (entiteter) som är centrala för vidare diskussion genom att det exempelvis har funnits brott mot normalformer. Det ERD som granskats presenteras i Figur 9. Intervjuer genomfördes både genom mailkontakt och i mötesform via Skype. Personen som intervjuades arbetar som IT-arkitekt på företaget sedan tio år tillbaka och har drygt 30 års erfarenhet inom branschen. 18

26 IMAGE IMAGE är en tabell för bildentiteter med egenskaper som format, vem som skapat bilden, kostnad och fritext. IMAGE är den mest centrala entiteten med relationer till ett flertal andra entiteter. Det finns kopplingar som har att göra med vilka giltiga format som bildentiteten kan ha. Det finns även tabeller för att spara kopplingar till reservdelskataloger och giltiga produktlinor. Figur 10 visar ett exempel på hur en katalogsbild ser ut. IMAGE har en rekursiv relation till sig själv. Denna relation innebär att varje bild kan ha en förälder-till-barnrelation. IMAGE kan skapas från en redan existerande entitet och får då förälderns IMAGEID som PARENT_IMAGEID som koppling till originalentiteten. Anledningen till att funktionen som tillåter skapandet av nya bilder från en redan existerande är företagets behov av att kunna skapa nya versioner av redan existerande produkter. Det finns möjlighet att göra små förändringar från originalet till en ny entitet och sedan länka till dess förälder för att kunna spåra bildernas relation. Om entiteten uppfyller 1NF kan diskuteras. Kolumnen I_NAME innehåller både för- och efternamn. Dock bör detta endast ses som ett och samma värde då företagsnamn ibland används i denna kolumn. Figur 10: Exempel på katalogbild ILLUSTRATOR ILLUSTRATOR är en tabell för illustratörer som skapat bilderna som används i katalogerna. De egenskaper ILLUSTRATOR har är olika kontaktuppgifter så som adress, telefonnummer och företagsnamn. ILLUSTRATOR är direkt kopplad till IMAGE, en IMAGE kan ha en ILLUSTRATOR och en ILLUSTRATOR kan ha flera IMAGE. I_NAME är primärnyckel i entiteten och består av en illustratörs namn. Vid frågan om varför namn används som identifierare berättar IT-arkitekten att ha ett namn som primärnyckel är en osäker identifierare och ställer till problem om det existerar två illustratörer med samma namn. Nyckeln är alltså inte optimal men detta är något som inte vidare diskuteras i denna uppsats. Adressen, som består av I_ADRESS, I_POSTALCODE och I_PADRESS, är här beroende av företagets (I_COMPANY) ort, som inte är en nyckel och med den anledningen anses inte entiteten uppfylla 3NF. I och med att I_COMPANY inte är en egen entitet och genom att det inte finns någon relationskoppling till ILLUSTRATOR kan inte I_COMPANY existera oberoende, utan all data finns i samma tabell. Under intervjun motiveras denna design genom att applikationen först var tänkt endast som ett internt system inom verksamheten. De 19

27 illustratörer som användes i början var anställda på företaget och därav skulle inte attributet I_COMPANY användas. Det fanns även personer som slutade och startade egen verksamhet, vilket gjorde att det konstruerades en ny post åt personen och I_COMPANY började användas. Vidare ändrades kraven på systemet och företaget ville börja använda databasen för att skapa offerter. USER USER är en tabell för användare av applikationen. USER har i sin tur en relation till USERPERMISSION samt en tabell över tillgängliga språk, LANGUAGE. USER har ett attribut, U_PERMISSIONLEVEL som anger vilken typ av grupp användaren tillhör där USER kan ha rollen som administratör, user eller viewer. Detta anger hur mycket som kan manipuleras i de bilder som finns i databasen. IT-arkitekten anser att U_PERMISSIONLEVEL rimligtvis borde ha ett mer distinkt namn, exempelvis U_ROLE, för att förtydliga vilken typ av toll som anges. Detta återspeglas i USERs relation till tabellen USERPERMISSION som är mer övergripande och anger den behörighet som finns per CATEGORY, där CATEGORY är ett attribut för varje typ av katalog som finns. PERMISSIONLEVEL anger här om tillåtelse finns för att uppdatera eller bara visa inom respektive kategori. IT-arkitekten påpekar att andra namn borde valts för respektive attribut, U_PERMISSIONLEVEL för USER och PERMISSIONLEVEL för USERPERMISSION, för att skapa mer tydlighet. 4.2 Databas för rapportering över ärendehantering Denna databas finns i en svensk kommuns verksamhet där den används inom bl.a. skolor och förvaltningar. Fordonsföretaget sköter drift och underhåll av denna kub och genom detta kan de båda parterna följa upp att SLA uppfylls (de villkor som finns mellan kommunen och aktörerna). Materialet tillhandahölls av samma IT-arkitekt som den för reservdelskataloger och det är också denna person som har intervjuats. 20

28 Figur 11: ERD - SLA 21

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

Normalisering. Christer Stuxberg Institutionen för Informatik och Media Normalisering Christer Stuxberg christer.stuxberg@im.uu.se Institutionen för Informatik och Media Översikt Normalisering Dataredundans och Uppdateringsanomalier Anomalier vid insättning Anomalier vid borttagning

Läs mer

Business research methods, Bryman & Bell 2007

Business research methods, Bryman & Bell 2007 Business research methods, Bryman & Bell 2007 Introduktion Kapitlet behandlar analys av kvalitativ data och analysen beskrivs som komplex då kvalitativ data ofta består av en stor mängd ostrukturerad data

Läs mer

Design och underhåll av databaser

Design och underhåll av databaser Design och underhåll av databaser 1. Modell av verkligheten 2. Normalformer 3. Introduktion till DDL 4. Skapa databaser 5. Skapa tabeller 6. Skapa index 7. Restriktioner 8. Ta bort databaser, tabeller

Läs mer

Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE

Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE Li#eratur och empiriska studier kap 12, Rienecker & Jørgensson kap 8-9, 11-12, Robson STEFAN HRASTINSKI STEFANHR@KTH.SE Innehåll Vad är en bra uppsats? Söka, använda och refera till litteratur Insamling

Läs mer

Databaser och Datamodellering Foreläsning IV

Databaser och Datamodellering Foreläsning IV Webbprogrammering - 725G54 Databaser och Datamodellering Foreläsning IV Agenda Databaser ERD SQL MySQL phpmyadmin Labb 4 Databaser Databas - samling med data Databashanterare Enkelt Kraftfullt Flexibelt

Läs mer

Konceptuella datamodeller

Konceptuella datamodeller Databasdesign Relationer, Nycklar och Normalisering Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Konceptuella datamodeller Om man ska skapa en databas som beskriver en del av verkligheten

Läs mer

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2014-11-07 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2015-11-06 TID: 14 19 Ansvarig för tentamen: Anna Palmquist Förfrågningar: 0734-612003 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: 033-4354424. Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: 033-4354424. Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2014-08-20 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2014-12-18 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet...

Idag. Databaskvalitet(??) Databaskvalitet... Databaskvalitet... Idag Databaskvalitet(??) Hur vet vi att vår databas är tillräckligt bra? Vad är ett beroende? Vad gör man om det blivit fel? Vad är en normalform? Hur når man de olika normalformerna? Det finns metoder

Läs mer

NORMALISERING. Mahmud Al Hakim

NORMALISERING. Mahmud Al Hakim NORMALISERING Mahmud Al Hakim mahmud@webacademy.se 1 SCHEMA Schema eller databasschema är en beskrivning av vilka data som kan finnas i en databas, oberoende av vilka data (innehållet) som råkar finnas

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

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

Läs mer

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning

08/12/14. Databasteknik och informationssystem DD1370. Behövs Föreläsning 8? Kursens (återstående) mål Dagens föreläsning 08/12/14 Behövs Föreläsning 8? Databasteknik och informationssystem DD1370 Idag F7 - (sista nyheterna & repetition) F8 (?) - (repetition, repetition, repetition ) Föreläsning 7 Svara med knapptryckning

Läs mer

Titel Mall för Examensarbeten (Arial 28/30 point size, bold)

Titel Mall för Examensarbeten (Arial 28/30 point size, bold) Titel Mall för Examensarbeten (Arial 28/30 point size, bold) SUBTITLE - Arial 16 / 19 pt FÖRFATTARE FÖRNAMN OCH EFTERNAMN - Arial 16 / 19 pt KTH ROYAL INSTITUTE OF TECHNOLOGY ELEKTROTEKNIK OCH DATAVETENSKAP

Läs mer

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Entity Framework Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen. Vem är jag? Mitt namn är Björn Jönsson och jobbar på Tahoe Solutions, ni når mig via mail: bjorn.jonsson@tahoesolutions.se

Läs mer

Datalager och datautvinning

Datalager och datautvinning Datalager och datautvinning 1 Datalager och datautvinning! Databaser kan innehålla stora mängder information om ett företags eller en organisations verksamhet" Data kan också användas för att analysera

Läs mer

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: 033-4354424. Anslås inom 3 veckor

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: 033-4354424. Anslås inom 3 veckor TENTAMEN För kursen DATUM: 2013-12-12 TID: 9 14 Ansvarig för tentamen: Cecilia Sönströd Förfrågningar: 033-4354424 Resultat: Betygsskala: Hjälpmedel: Anslås inom 3 veckor Godkänt 20 p, Väl godkänt 32 p,

Läs mer

Föreläsning 6: Analys och tolkning från insamling till insikt

Föreläsning 6: Analys och tolkning från insamling till insikt Föreläsning 6: Analys och tolkning från insamling till insikt FSR: 1, 5, 6, 7 Rogers et al. Kapitel 8 Översikt Kvalitativ och kvantitativ analys Enkel kvantitativ analys Enkel kvalitativ analys Presentera

Läs mer

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem till databaskursen Varför ska man lära sig sånt? till databaskursen till kursen Databasteknik och informationssystem Nästan alla större system idag innehåller eller använder data lagrad i en databas Så

Läs mer

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12)

Introduktion till databaskursen. Välkomna. till kursen. Databasteknik och informationssystem. DD1370 (kursomgång dbtinf12) Välkomna Introduktion till databaskursen Välkomna till kursen Databasteknik och informationssystem DD1370 (kursomgång dbtinf12) En kurs om grunderna i databasteknik DD1370 (Föreläsning 1) Databasteknik

Läs mer

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem

Varför ska man lära sig sånt? Välkomna. Vad är databaser bra till? Kursansvarig. till kursen. Databasteknik och informationssystem till databaskursen Varför ska man lära sig sånt? till databaskursen till kursen Databasteknik och informationssystem Nästan alla större system idag innehåller eller använder data lagrad i en databas Så

Läs mer

Kunskapsutveckling och kunskapsprojektering. Franck Tétard, 16/09, Uppsala Universitet

Kunskapsutveckling och kunskapsprojektering. Franck Tétard, 16/09, Uppsala Universitet Kunskapsutveckling och kunskapsprojektering Franck Tétard, 16/09, Uppsala Universitet Kunskapsutveckling Kunskapsprojektering Uppgift Indelning i grupper (3-4 per grupp) Grupp 1: Kunskapsprojektering1.pdf

Läs mer

Logisk databasdesign

Logisk databasdesign NORMALISERING Peter Bellström Logisk databasdesign 2 Arbetssteget vars syfte är att konstruera en modell (diagram, schema), baserad på en specifik datamodell, över verksamhetens begrepp och samband. Modellen

Läs mer

Karlstads Universitet, Datavetenskap 1

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

Läs mer

Inga hjälpmedel är tillåtna

Inga hjälpmedel är tillåtna Databaser och Affärssystem Provmoment: Ladokkod: Tentamen ges för: Tentamen 41F08A KITEK15h 7,5 högskolepoäng TentamensKod: Tentamensdatum: 2016-10-27 Tid: 9-12 (3 timmar) Hjälpmedel: Inga hjälpmedel är

Läs mer

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7) 1 (7) Försättsblad till skriftlig tentamen vid Linköpings universitet Datum för tentamen Sal (1) Tid Kurskod Provkod Kursnamn/benämning Provnamn/benämning Institution Antal uppgifter som ingår i tentamen

Läs mer

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information. Vad är en databas? Exempel på databaser: Kortregister på kontor Sjukvårdsjournal Bokregister på bibliotek Medlemsregister i en förening Kundregister på företag Telefonkatalogen Databas = Organiserad samling

Läs mer

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner INNEHÅLL Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner Kapitel 5 och 6. Beginning SQL Server 008

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 16 Januari 2015 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje

Läs mer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Disposition 1. Kopplingen mellan Processanalys (DFDdiagram) och konceptuell modellering (ERdiagram) (se kap 4) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Databasen (Kap 2) Den relationella

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 13 Mars 2014 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje blad.

Läs mer

Anvisningar till rapporter i psykologi på B-nivå

Anvisningar till rapporter i psykologi på B-nivå Anvisningar till rapporter i psykologi på B-nivå En rapport i psykologi är det enklaste formatet för att rapportera en vetenskaplig undersökning inom psykologins forskningsfält. Något som kännetecknar

Läs mer

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F) L0009B Moment FL 1: Kursintroduktion. Kursinformation: G:\L0009B\Allmänt\KursInformationL0009B.pdf (F) Kursplan: Se https://portal.student.ltu.se/stuka/kurs.php?kurs=l0009b&lang=swe (F) Allt som markerats

Läs mer

Framsida Titelsida ii Trycksida iii Abstract iv Sammanfattning v Förord vi Tom vii Innehållsförteckning 1 Introduktion... 1 1.1 Bakgrund... 1 1.2 Inledning... 1 1.2.1 Kaprifolen... 2 1.3 Syfte... 2 1.4

Läs mer

Webbprogrammering, grundkurs 725G54

Webbprogrammering, grundkurs 725G54 Webbprogrammering, grundkurs 725G54 Bootstrap jquery SEO RWD MuddyCards. Tidigare Muddycards Många positiva kommentarer Ibland för högt tempo på föreläsning Lägg ut labbar tidigare Mer föreläsningar (2

Läs mer

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng Tentamen ISGB01, ISGB24 Databasdesign 7,5 Poäng Datum: 2016-09-30 Tid: 08.15-13.15 Lärare: Peter Bellström, Katarina Groth, Johan Högberg Tentamen är på 40 poäng. Gränsen för Godkänd (G) är 20 poäng. Gränsen

Läs mer

Vinjett 1: Relationsdatabas för effektivaste vägen

Vinjett 1: Relationsdatabas för effektivaste vägen Vinjetter Inledning I denna kurs kommer vi att utgå från transporter som tema för vinjetterna. Fokus för kursen blir vilken information som behöver vara tillgänglig och hur denna skulle kunna lagras. Man

Läs mer

Metoduppgift 4 - PM. Barnfattigdom i Linköpings kommun. 2013-03-01 Pernilla Asp, 910119-3184 Statsvetenskapliga metoder: 733G02 Linköpings universitet

Metoduppgift 4 - PM. Barnfattigdom i Linköpings kommun. 2013-03-01 Pernilla Asp, 910119-3184 Statsvetenskapliga metoder: 733G02 Linköpings universitet Metoduppgift 4 - PM Barnfattigdom i Linköpings kommun 2013-03-01 Pernilla Asp, 910119-3184 Statsvetenskapliga metoder: 733G02 Linköpings universitet Problem Barnfattigdom är ett allvarligt socialt problem

Läs mer

Utvecklingen av ett tidregistrerings- och faktureringssystem

Utvecklingen av ett tidregistrerings- och faktureringssystem Datavetenskap Opponenter: Anders Heimer & Jonas Seffel Respondenter: Daniel Jansson & Mikael Jansson Utvecklingen av ett tidregistrerings- och faktureringssystem Oppositionsrapport, C-nivå 2006:10 1 Sammanfattat

Läs mer

Ett arbetsexempel Faktureringsrutin

Ett arbetsexempel Faktureringsrutin Ett arbetsexempel Faktureringsrutin Detta dokument är skrivet för att i första hand förstå den process som äger rum och vilka steg som man ska genomföra och att förstå vad som utförs i de tre viktiga stegen

Läs mer

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna

Tentamen NDA01G Öppen för alla. Tentamenskod: Inga hjälpmedel är tillåtna Databasteknik 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Tentamen NDA01G Öppen för alla Tentamenskod: Tentamensdatum: 2016-11-04 Tid: 14:00-19:00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Föreläsning 5: Analys och tolkning från insamling till insikt. Rogers et al. Kapitel 8

Föreläsning 5: Analys och tolkning från insamling till insikt. Rogers et al. Kapitel 8 Föreläsning 5: Analys och tolkning från insamling till insikt Rogers et al. Kapitel 8 Översikt Kvalitativ och kvantitativ analys Enkel kvantitativ analys Enkel kvalitativ analys Presentera resultat: noggrann

Läs mer

Litteraturstudie. Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund

Litteraturstudie. Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund Litteraturstudie Utarbetat av Johan Korhonen, Kajsa Lindström, Tanja Östman och Anna Widlund Vad är en litteraturstudie? Till skillnad från empiriska studier söker man i litteraturstudier svar på syftet

Läs mer

Betygskriterier för Examensarbete, 15hp Franska C1/C3, Italienska C, Spanska C/C3

Betygskriterier för Examensarbete, 15hp Franska C1/C3, Italienska C, Spanska C/C3 Uppsala universitet Institutionen för moderna språk VT11 Betygskriterier för Examensarbete, 15hp Franska C1/C3, Italienska C, Spanska C/C3 För betyget G skall samtliga betygskriterier för G uppfyllas.

Läs mer

"Distributed Watchdog System"

Distributed Watchdog System Datavetenskap Emma Henriksson Ola Ekelund Oppositionsrapport på uppsatsen "Distributed Watchdog System" Oppositionsrapport, C-nivå 2005 1 Sammanfattande omdöme på exjobbet Projektet tycks ha varit av

Läs mer

DATALAGRING. Ämnets syfte

DATALAGRING. Ämnets syfte DATALAGRING Ämnet datalagring behandlar hur lagring av data görs på ett strukturerat sätt för att datorprogram ska komma åt data på ett effektivt sätt. Lagringen kan ske med hjälp av databashanterare av

Läs mer

Modul DB1-1 Databasmodellering

Modul DB1-1 Databasmodellering Modul DB1-1 Databasmodellering Antal föreläsningar: 2 Antal laborationer: 1 Förkunskapskrav: Databasintroduktion Kurslitteratur: Referenslitteratur: Praktisk datamodellering ISBN: 91-44-38001-1 1 Innehållsförteckning

Läs mer

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt Kravhantering / Testprocess - Agenda AGENDA Grundläggande kravhanteringsprocess. Insamling, dokumentation, prioritering, Test och förvaltning

Läs mer

Skapa insikter till rätt beslut

Skapa insikter till rätt beslut Skapa insikter till rätt beslut Enklaste vägen till beslut med dynamiska rapporter Verksamhetskolls dashboards är tydliga och det är lätt att direkt ta till sig det väsentliga. Alla dimensioner i ditt

Läs mer

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2)

Databaser och databasdesign. Den relationella modellen, normalisering och modellering (2) Databaser och databasdesign Den relationella modellen, normalisering och modellering (2) Varför databaser (DB)? Vi vill och måste kunna lagra data på sätt som motsvarar olika verksamheters behov Vad är

Läs mer

KURSKATALOG. qlikview.com

KURSKATALOG. qlikview.com KURSKATALOG qlikview.com Om katalogen I den här katalogen finns all information du behöver om QlikViews utbildningar. Katalogen är indelad i två delar: utbildningar med instruktör antingen i QlikTechs

Läs mer

Presentationsgränssnitt för statistik och historik

Presentationsgränssnitt för statistik och historik Datavetenskap Opponent(er): Christer Oscarsson, Jonas Larsson Respondent(er): Malin Brand, Niklas Johansson Presentationsgränssnitt för statistik och historik Oppositionsrapport, C-nivå 2010:xx 1 Sammanfattat

Läs mer

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 * * * * DAV B04 - Databasteknik! "# $ %'&( ) KaU - Datavetenskap - DAV B04 - MGö 132 Riktlinjer när man vill skapa en databas 1) Designa så att det är lätt att förstå innebörden. Kombinera inte attribut

Läs mer

Kursens mål. Databasteknik TDDB48. Lärare. Kursorganisation. Laborationsinformation. Inlämning av laborationer. Responsible: 2000-01-26

Kursens mål. Databasteknik TDDB48. Lärare. Kursorganisation. Laborationsinformation. Inlämning av laborationer. Responsible: 2000-01-26 Kursens mål Databasteknik TDDB48 http://www.ida.liu.se/~tddb48 Förstå de koncept som ligger bakom databaser och databasorganisation Designa och bygga datamodeller (effektiva filstrukturer) Använda databasfrågespråk

Läs mer

LEANanalyser En helt ny generations analys- och visualiseringsverktyg

LEANanalyser En helt ny generations analys- och visualiseringsverktyg LEANanalyser En helt ny generations analys- och visualiseringsverktyg 2018-10-23 Din uppgift är att ta fram en analys som ska baseras på data från ett antal olika källor. Ska du fortsätta med Excel eller

Läs mer

Modul DB1-2 Datamodellering

Modul DB1-2 Datamodellering Modul DB- Datamodellering Antal föreläsningar: Antal laborationer: Förkunskapskrav: Grundläggande kännedom om databaser (Modul DB-) Kurslitteratur: Referenslitteratur: Praktisk datamodellering ISBN: 9-44-800-

Läs mer

Titel på examensarbetet. Dittnamn Efternamn. Examensarbete 2013 Programmet

Titel på examensarbetet. Dittnamn Efternamn. Examensarbete 2013 Programmet Titel på examensarbetet på två rader Dittnamn Efternamn Examensarbete 2013 Programmet Titel på examensarbetet på två rader English title on one row Dittnamn Efternamn Detta examensarbete är utfört vid

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem 24 Augusti 2015 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan på varje

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

Oppositionsprotokoll-DD143x

Oppositionsprotokoll-DD143x Oppositionsprotokoll-DD143x Datum: 2011-04-26 Rapportförfattare Sara Sjödin Rapportens titel En jämförelse av två webbsidor ur ett MDI perspektiv Opponent Sebastian Remnerud Var det lätt att förstå vad

Läs mer

Datainsamling Hur gör man, och varför?

Datainsamling Hur gör man, och varför? Datainsamling Hur gör man, och varför? FSR: 2 Preece et al.: Interaction design, kapitel 7 Översikt Att kunna om datainsamlingsmetoder Observationstekniker Att förbereda Att genomföra Resultaten och vad

Läs mer

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin.

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Examensarbete Magisterprogrammet Digital Affärsutveckling, kurs uppgift 3 teori-reflektion. Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Författare: Magnus

Läs mer

Kriterier för bedömning av examensarbete vid den farmaceutiska fakulteten

Kriterier för bedömning av examensarbete vid den farmaceutiska fakulteten Kriterier för bedömning av examensarbete vid den farmaceutiska fakulteten 1 Inledning Vid den farmaceutiska fakulteten har det sedan 2005 funnits kriterier för bedömning av examensarbete (medfarm 2005/913).

Läs mer

Lite om databasdesign och modellering

Lite om databasdesign och modellering Lite om databasdesign och modellering Konceptuell databasdesign Med konceptuell databasdesign avses processen att konstruera en datamodell för en verksamhet, oberoende av fysiska villkor. Modelleringen

Läs mer

Kunskapsprojektering

Kunskapsprojektering Kunskapsprojektering Syftet är att planlägga: forskningsprojekt licentiat- och doktorsavhandlingar uppsatser och examensarbeten olika undersökningar, utredningar eller utvecklingsarbeten i icke-akademisk

Läs mer

VAD GÖR DU / VEM ÄR DU?

VAD GÖR DU / VEM ÄR DU? INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering

Läs mer

1.Lär känna MS SQL Observera. Tips. Förberedelse

1.Lär känna MS SQL Observera. Tips. Förberedelse 1.Lär känna MS SQL 2008 Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill genomföra

Läs mer

Henrik Häggbom Examensarbete Nackademin Våren 2015

Henrik Häggbom Examensarbete Nackademin Våren 2015 AV Henrik Häggbom Examensarbete Nackademin Våren 2015 1 INLEDNING Som examensarbete på min utbildning på Nackademin Programutveckling.NET kommer jag skapa ett webbaserat system för statistik, tabeller

Läs mer

Blue Ocean Strategy. Blue Oceans vs Red Oceans. Skapelse av Blue Oceans. Artikelförfattare: W. Chan Kim & Renée Mauborgne

Blue Ocean Strategy. Blue Oceans vs Red Oceans. Skapelse av Blue Oceans. Artikelförfattare: W. Chan Kim & Renée Mauborgne Blue Ocean Strategy Artikelförfattare: W. Chan Kim & Renée Mauborgne Artikeln belyser två olika marknadstillstånd som företag strävar efter att etablera sig inom. Dessa kallar författarna för Red Ocean

Läs mer

Projektarbetet 100p L I T E O M I N T E R V J U E R L I T E O M S K R I V A N D E T A V A R B E T E T S A M T L I T E F O R M A L I A

Projektarbetet 100p L I T E O M I N T E R V J U E R L I T E O M S K R I V A N D E T A V A R B E T E T S A M T L I T E F O R M A L I A Projektarbetet 100p 1 L I T E O M I N T E R V J U E R L I T E O M S K R I V A N D E T A V A R B E T E T S A M T L I T E F O R M A L I A Metoder Intervju Power Point Innehåll En vetenskaplig rapport Struktur,

Läs mer

Mål med lektionen! Repetera och befästa kunskaperna.

Mål med lektionen! Repetera och befästa kunskaperna. Entity Framework Mål med lektionen! Repetera och befästa kunskaperna. Vad lektionen omfattar Repetera och gå igenom kursen lite snabbt. Vilka problem vill vi lösa? Vi arbetar med Webbapplikationer Vi kommer

Läs mer

Webservice & ERP-Integration Rapport

Webservice & ERP-Integration Rapport Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...

Läs mer

Sociologiska institutionen, Umeå universitet.

Sociologiska institutionen, Umeå universitet. Sociologiska institutionen, Umeå universitet. Sammanställning av Förväntade studieresultat för kurserna Sociologi A, Socialpsykologi A, Sociologi B, Socialpsykologi B. I vänstra kolumnen återfinns FSR

Läs mer

Databaser och databasdesign, 7,5 hp

Databaser och databasdesign, 7,5 hp Kursguide Databaser och databasdesign, 7,5 hp Webbdesign LP2 2011 Databaser och databasdesign, 7,5 hp Välkommen till kursen databaser och databasdesign. I kursguiden hittar du kursplan, litteraturlista,

Läs mer

Kvalitativa metoder II

Kvalitativa metoder II Kvalitativa metoder II Tillförlitlighet, trovärdighet, generalisering och etik Gunilla Eklund Rum F 625, e-mail: geklund@abo.fi/tel. 3247354 http://www.vasa.abo.fi/users/geklund Disposition för ett vetenskapligt

Läs mer

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna

Tentamenskod: Tentamensdatum: Tid: 14:00-19:00. Inga hjälpmedel är tillåtna Databasteknik 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Tentamen NDA01G Öppen för alla Tentamenskod: Tentamensdatum: 2017-11-02 Tid: 14:00-19:00 Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Tentamen för DD1370 Databasteknik och informationssystem

Tentamen för DD1370 Databasteknik och informationssystem Tentamen för DD1370 Databasteknik och informationssystem Exempeltenta för kursen ht2013 Hjälpmedel: Inga hjälpmedel utom papper och penna Tänk på: Skriv högst en uppgift på varje blad. Använd endast framsidan

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration

Läs mer

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer

Läs mer

Riktlinjer för bedömning av examensarbeten

Riktlinjer för bedömning av examensarbeten Fastställda av Styrelsen för utbildning 2010-09-10 Dnr: 4603/10-300 Senast reviderade 2012-08-17 Riktlinjer för bedömning av Sedan 1 juli 2007 ska enligt högskoleförordningen samtliga yrkesutbildningar

Läs mer

Agenda A. Kunskapsteori B. Paradigm C. Syfte D. Kunskapsprodukter E. Forskningsprocessen F. Kunskapsprojektering G. Kunskapsprojektering och uppsatsen

Agenda A. Kunskapsteori B. Paradigm C. Syfte D. Kunskapsprodukter E. Forskningsprocessen F. Kunskapsprojektering G. Kunskapsprojektering och uppsatsen Agenda A. Kunskapsteori B. Paradigm C. Syfte D. Kunskapsprodukter E. Forskningsprocessen F. Kunskapsprojektering G. Kunskapsprojektering och uppsatsen A Kunskapsteori Viktiga kunskapsteoretiska begrepp

Läs mer

Föreläsning 6: Normalisering & funktionella beroenden

Föreläsning 6: Normalisering & funktionella beroenden Föreläsning 6: Normalisering & funktionella beroenden DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över hur normalisering fungerar Önskvärda

Läs mer

Objektorientering. Grunderna i OO

Objektorientering. Grunderna i OO Objektorientering Grunderna i OO 1 Systemutveckling Tre systemnivåer: Verksamhet Informationssystem Datasystem Huvuduppgifterna i ett systemutvecklingsarbete: Verksamhetsanalys Informationsbehovsanalys

Läs mer

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg Datavetenskap Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg Oppositionsrapport, C-nivå 2006:12 1 Sammanfattat omdöme av examensarbetet Examensarbetet är intressant eftersom

Läs mer

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

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

Läs mer

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

SQLs delar. Idag. Att utplåna en databas. Skapa en databas Idag SQLs delar Hur skapar vi och underhåller en databas? Hur skapar man tabeller? Hur får man in data i tabellerna? Hur ändrar man innehållet i en tabell? Index? Vad är det och varför behövs de? Behöver

Läs mer

Bilaga 1. Definitioner

Bilaga 1. Definitioner 1 (6) Bilaga 1 Definitioner 2 (6) Definitioner inom Ramavtal e-förvaltningsstödjande tjänster Definitionerna gäller även för Leveransavtal under detta Ramavtal. Anbudsgivare Användare Användbarhet Applikation

Läs mer

Pass 2: Datahantering och datahanteringsplaner

Pass 2: Datahantering och datahanteringsplaner Pass 2: Datahantering och datahanteringsplaner Checklista för datahanteringsplaner Att utveckla en datahanteringsplan för ett projekt är inte alltid en enkel uppgift. Det finns många detaljer som man åtminstone

Läs mer

Migrering av applikationen AMM till molnet

Migrering av applikationen AMM till molnet Datavetenskap Opponenter: Erik Andersson och Marcus Larsson Respondenter: Anders Nguyen och Linus Svensson Migrering av applikationen AMM till molnet Oppositionsrapport, C-nivå 2010:06 1 Sammanfattat omdöme

Läs mer

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index Innehåll MySQL Intro Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index Institutionen Institutionen för Datavetenskap, för Kommunikation Fysik o och

Läs mer

Programdesign, databasdesign. Databaser - Design och programmering. Funktioner. Relationsmodellen. Relation = generaliserad funktion.

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

Läs mer

Tentamen DATABASTEKNIK - 1DL116

Tentamen DATABASTEKNIK - 1DL116 Uppsala universitet Institutionen för informationsteknologi Kjell Orsborn Tentamen 2003-05-20 DATABASTEKNIK - 1DL116 Datum...Tisdagen den 20 Maj, 2003 Tid...12:00-17:00 Jourhavande lärare...kjell Orsborn,

Läs mer

Väl godkänt (VG) Godkänt (G) Icke Godkänt (IG) Betyg

Väl godkänt (VG) Godkänt (G) Icke Godkänt (IG) Betyg Betygskriterier Examensuppsats 30 hp. Betygskriterier Tregradig betygsskala används med betygen icke godkänd (IG), godkänd (G) och väl godkänd (VG). VG - Lärandemål har uppfyllts i mycket hög utsträckning

Läs mer

Informationssystem och databasteknik

Informationssystem och databasteknik Informationssystem och databasteknik Föreläsning 5 Analytisk databasdesign F5! Funktionellt beroende: Pnr Namn Funktion (i vanlig mat. betydelse): 610321 11111 22222 33333 Maria Eva Sture Olle För varje

Läs mer

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Databasföreläsning Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980 Platt databas: all information

Läs mer

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informationssystem Datum 19/8 Tid

Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informationssystem Datum 19/8 Tid Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informationssystem Datum 19/8 Tid 14.00 18.00 Lärare Owen Eriksson Maxpoäng 60 För Godkänd krävs minst 50% (30 poäng) För

Läs mer

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP Skrivtid: 14.30-18.30 Hjälpmedel: papper, penna och radergummi Betygsgränser: G = 36p (60 %), VG = 48p (80

Läs mer

Spårbarhet En underskattad dimension av informationssäkerhet

Spårbarhet En underskattad dimension av informationssäkerhet Datavetenskap Opponenter: Karl-Johan Fisk och Martin Bood Respondent: Jon Nilsson Spårbarhet En underskattad dimension av informationssäkerhet Oppositionsrapport, C-nivå 2007:10 1 Sammanfattat omdöme av

Läs mer