NORMALISERING. Mahmud Al Hakim

Relevanta dokument
Konceptuella datamodeller

Logisk databasdesign

Databaser Design och programmering

Relationell databasdesign

Normalisering. Christer Stuxberg Institutionen för Informatik och Media

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

Universitetet: ER-diagram

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. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Databaser och Datamodellering Foreläsning IV

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

Karlstads Universitet, Datavetenskap 1

Databaser - Design och programmering. Relationsmodellen. Relationer - som tabeller. Relationer som tabeller. Alternativa notationer: Relationsschema

Webbprogrammering, grundkurs 725G54

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

Design och underhåll av databaser

Karlstads Universitet, Datavetenskap 1

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

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

Grunderna för relationsmodellen!

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

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

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

Föreläsning 6: Normalisering & funktionella beroenden

Tentamen DATABASTEKNIK - 1DL116

Karlstads Universitet, Datavetenskap 1

Relationsdatabasdesign

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

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Föreläsning 4 Dagens föreläsning går igenom

Tentamen. Databasmetodik Lördag 27 september 2014 kl

Relationsmodellen och syntetisk databasdesign

Övningar i SQL. SQLAccess.doc Ove Lundgren

Concepts learned this far. ER till relationer. ER till relationer. ER till relationer. TDDD12 Database Technology

Databasteori Övningar

Abstract. Webbsida för lagring av alumner i en databas. Website containing a database for the storage of alumni contact information.

Tentamen plus lösningsförslag

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Normalisering. Varför? För att åstadkomma en så bra struktur i databasen som möjligt med minimalt med dubbellagrad info.

ER-Diagram. Databasutveckling Diagram

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

Analytisk relationsdatabasdesign

Tentamen 2I1033, IT i Organisationer och Databasteknik lördag 17/4 2004, kl LÖSNINGSFÖRSLAG

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen 8 augusti 2013 kl. 9-13

Exempel-Tentamen III

Lösningar till tentamen i EDAF75

2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY!, där RIDKURS.KursId = KURS.KursId 3NF Hästnamn, Art, NY! NY! NY! NY!

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

Tentamen DATABASTEKNIK - 1DL116, 1MB025

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

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Informationssystem och databasteknik

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

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

Databasteori. Övningar

Lösningsförslag till Tentamen,

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

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Modul DB1-1 Databasmodellering

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

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

Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa.

Starta MySQL Query Browser

Kvalitetstänkande. Utgångsläge Samtliga ER-diagram har överförts till scheman

Pga att (Nummer och Typ) tillsammans bestämmer övriga attribut funktionellt väljer vi (Nummer, Typ) till primärnyckel:

2. Redundans 3. Normalformer

Inga hjälpmedel är tillåtna

IT i organisationer och databasteknik

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Frågor att lösa med SQL mot databasen kursdb_sql Sida 1 av 5

Föreläsning 3 Dagens föreläsning går igenom

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

Vad är en databas? Databasutveckling Med MySQL/MariaDB

Tentamen EIT:DB Databastmetodik 11/ kl Lösningsförslag

Databaser. Vad du ska lära dig: Ordlista

Idag. Hur vet vi att vår databas är tillräckligt bra?

Uppdelning. Relationell databasdesign, FB Teori Låt R vara ett relationsschema. R 1, R 2,..., R n är en uppdelning av

Tentamen Databasmetodik DB:DSK/FK/DVK/ATD/SP/EIT mfl. äldre kurstillfällen Lördag 8 juni kl

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

TDDI 60 Tekniska databaser

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Lösningsförslag till fiktiv tentamen för DD1370 Databasteknik och informationssystem

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Lösningsförslag, tentamen i Databaser

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

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Databasteori Övningar

Universitetet: ER-diagram e-namn

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

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

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

Databasteori. Övningar

Modul DB1-2 Datamodellering

Inst. för Data- och Systemvetenskap SU Maria Bergholtz. Tentamen. 21/ kl Inga hjälpmedel är tillåtna (annat än ordbok).

Transkript:

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 i databasen just nu. Exempel: I relationsmodellen, där man beskriver världen med hjälp av tabeller, består schemat huvudsakligen av vilka tabeller som finns i databasen, och vilka kolumner de har, men inte vilka värden som råkar finnas i tabellerna just nu. 2

RELATION OCH ATTRIBUT En relation är en tabell av den typ som används i relationsmodellen. Kolumnerna kallas attribut. namn Nina Larsson Bengt Svensson Erik Persson Camilla Blom befattning Programmerare DBA Programmerare Sekreterare 3

PRIMÄRNYCKEL (PRIMARY KEY) En primärnyckel är en kolumn, eller en kombination av kolumner, som alltid har ett unikt värde för varje rad i tabellen. Om det finns flera möjliga primärnycklar säger man att man har flera kandidatnycklar, och man väljer en av dem som primärnyckel. 4

PRIMÄRNYCKEL - EXEMPEL En primärnyckel Id namn befattning A1 Nina Larsson Programmerare A2 Bengt Svensson DBA A3 Erik Persson Programmerare A4 Camilla Blom Sekreterare 5

FRÄMMANDE NYCKEL (FOREIGN KEY) En främmande nyckel är ett attribut (kolumn) i en tabell som refererar till en annan (eller ibland samma) tabell. En främmande nyckel kallas även för referensattribut eller sekundärnyckel. 6

REDUNDANS Redundans (dataredundans) är data som upprepas i olika rader i en tabell eller i olika tabeller i databasen. Viktigt Minska upprepning av data utan att information går förlorad. 7

REDUNDANS - EXEMPEL id namn befattning avdelning A1 Nina Larsson Programmerare Utveckling A2 Bengt Svensson DBA Utveckling A3 Erik Persson Programmerare Utveckling A4 Camilla Blom Sekreterare Ekonomi 8

NULL-VÄRDEN Ett speciellt värde, eller snarare brist på värde, som betyder att en uppgift saknas i databasen. Motsvarar en "tom ruta" i relationsmodellen. 9

NORMALISERING Normalisering är en process som används för att avlägsna fel (anomalier) i en databas. Syftet med normalisering är att minimera redundans (dubbletter) och andra problem i en databas. Beskriver ett antal normalformer som består av en uppsättning regler som beskriver hur en tabellstruktur ska och inte ska utformas. 10

Från Wikipedia 11

FÖRSTA NORMALFORMEN (1NF) 1. Det måste finnas en primärnyckel i varje tabell. 2. Varje attribut (kolumnvärde) måste vara odelbar. (högst ett värde per ruta). 3. Dessutom får kolumnerna (attributen) inte upprepas id namn befattning Kunskap A1 Nina Larsson Programmerare C#, Java A2 Bengt Svensson DBA MS SQL Server, MySQL A3 Erik Persson Programmerare Java, C++ A4 Camilla Blom Sekreterare Office 12

1NF VARJE ATTRIBUT MÅSTE VARA ODELBAR Eliminera återkommande grupper (No repeating groups) id namn befattning kunskap1 kunskap2 A1 Nina Larsson Programmerare C# Java A2 Bengt Svensson DBA MS SQL Server MySQL A3 Erik Persson Programmerare Java C++ A4 Camilla Blom Sekreterare Office 13

1NF HÖGST ETT VÄRDE PER RUTA Nu har vi atomära (odelbara) värden men mycket redundans! id namn befattning kunskap A1 Nina Larsson Programmerare C# A1 Nina Larsson Programmerare Java A2 Bengt Svensson DBA MS SQL Server A2 Bengt Svensson DBA MySQL A3 Erik Persson Programmerare Java A3 Erik Persson Programmerare C++ A4 Camilla Blom Sekreterare MS Office 14

1NF DELA UPP TABELLEN Främmande nyckel Sammansatt Primärnyckel personal kunskap id namn befattning avdelning A1 C# A1 Java A1 Nina Larsson Programmerare Utveckling A2 Bengt Svensson DBA Utveckling A3 Erik Persson Programmerare Utveckling A4 Camilla Blom Sekreterare Ekonomi A2 A2 A3 A3 A4 MS SQL Server MySQL Java C++ MS Office Personal Kunskap 15

ANDRA NORMALFORMEN (2NF) Alla attribut som inte är en del av primärnyckel är helt funktionellt beroende av hela primärnyckeln. Funktionella beroenden (fb) Om det finns ett funktionellt beroende mellan kolumn A och kolumn B i en viss tabell, så bestämmer värdet i kolumn A värdet i kolumn B. A B Om värdet på A entydigt bestämmer värdet på B, så är B funktionellt beroende av A. Entydigt bestämmer betyder att om värdena på A på två rader i tabellen är lika, så måste värdena på B också vara lika. 16

2NF - EXEMPEL Sammansatt primärnyckel Alla attribut som inte är en del av primärnyckel är helt funktionellt beroende av hela primärnyckeln. id ort namn befattning A1 Stockholm Nina Larsson Programmerare A1 Göteborg Nina Larsson Programmerare A2 Stockholm Bengt Svensson DBA A3 Göteborg Erik Persson Programmerare A4 Stockholm Camilla Blom Sekreterare 17

2NF DELA UPP TABELLEN Sammansatt primärnyckel personal ort id namn befattning A1 Nina Larsson Programmerare A2 Bengt Svensson DBA A3 Erik Persson Programmerare A1 A1 A2 A3 Stockholm Göteborg Stockholm Göteborg A4 Camilla Blom Sekreterare A4 Stockholm 18

TREDJE NORMALFORMEN (3NF) Definition av 3NF 1NF och 2NF plus att icke-nyckelattribut får inte vara funktionellt beroende av något annat icke-nyckelattribut. Alltså Attributen får inte vara beroende av någonting annat än nyckeln. (Nothing but the key) 19

3NF Attributen får inte vara beroende av någonting annat än nyckeln id namn befattning avdelning avdelningschef A1 Nina Larsson Programmerare Utveckling Mahmud Al Hakim A2 Bengt Svensson DBA Utveckling Mahmud Al Hakim A3 Erik Persson Programmerare Utveckling Mahmud Al Hakim A4 Camilla Blom Sekreterare Ekonomi Johanna Ericsson 20

3NF - DELA UPP TABELLEN Primär nyckel Främmande nyckel Primär nyckel id namn befattning avd A1 Nina Larsson Programmerare Av1 A2 Bengt Svensson DBA Av1 id avdelning avdelningschef Av1 Utveckling Mahmud Al Hakim A3 Erik Persson Programmerare Av1 A4 Camilla Blom Sekreterare Av2 Av2 Ekonomi Johanna Ericsson Personal Avdelning 21

BOYCE-CODD NORMALFORM (BCNF) Relationen måsta vara i den tredje normalformen och Alla funktionella beroenden måste ha en supernyckel på den vänstra sidan. 22

BCNF - EXEMPEL id namn befattning avd A1 Nina Larsson Programmerare Av1 A2 Bengt Svensson DBA Av1 A3 Erik Persson Programmerare Av1 A4 Camilla Blom Sekreterare Av2 A1 Nina Larsson DBA Av1 Nina har bytt roll Vi vill inte ta bort gammal info. i databasen och vi får inte heller skapa en ny post! 23

BCNF - DELA UPP TABELLEN Nu kan vi lagra mer info om personal oberoende av befattning och avdelning Ny Primärnyckel id A1 A2 A3 A4 namn Nina Larsson Bengt Svensson Erik Persson Camilla Blom Personal ID datum person befattning avd B1 150101 A1 Programmerare Av1 B2 150101 A2 DBA Av1 B3 150315 A3 Programmerare Av1 B4 150401 A4 Sekreterare Av2 B5 150901 A1 DBA Av1 Befattning 24

EDGAR F. CODD (1923-2003) År 1970 introducerade Codd 1NF och ett år senare 2NF År 1974 definierade Boyce och Codd BCNF 25

NORMALIZATION "Each attribute must represent a fact about The key, the whole key, and nothing but the key, so help me Codd." 26