Mediaprovider scandinavia AB
   Nyhetsbrev   Annonsera     
RSS feed



Allmänna riktlinjer
Riktlinjer för Off-topic
sök i forumet! Sök | Hjälp | Regler | Logga in
Posta ett svar!

Databashjälp önskas! Vad är 2NF och 3NF egentligen?
  Sidor: [1] 

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 14:47:16 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Jag sitter och pluggar till en omtenta i Databasteknik, som är på tisdag.

Har problem...

Jag förstår inte riktigt de två normaliseringsformerna 2NF och 3NF. Alltså, jag förstår vad själva definitonerna säger, vad orden betyder, men jag kan inte tillämpa dessa definitioner eller "förklara dem med andra ord", . Snurrigt? Ja, men ni förstår säkert hur jag menar. Hoppas jag.

Jag hittar en drös med olika (mer eller mindre bra) olika formuleringar av dessa definitioner. Jag förstår dem, ibland. Men när det kommer till att själv utröna huruvida dekompositioner är i 2NF och 3NF så blir det svårt.

Vore snällt om någon kunde ge en bra definition, som kan få mig att verkligen lära mig vad dessa två är.

De som jag stött på hittills är alla i formerna:
1NF Den kan jag.
2NF: 1NF, plus att varje icke-nyckelattribut ska vara ffb av varje kandidatnyckel.
3NF: 2NF, plus att inget icke-nyckelattribut får vara ffb av något annat icke-nyckelattribut.
BCNF: Kan den också.

Så, snälla, hjälp mig! Ge bättre förklaringar på 2NF och 3NF. Jag har alltid problem med att bestämma om dekompositioner är i 2NF eller 3NF.


EDIT: Jag hoppas detta inte anses som en otillåten skoluppgift. Det är ju inte så att ni löser ett problem, eller "gör mina uppgifter". Ni hjälper bara en kamrat i nöd att berika sina kunskaper.



Andreas Anundi - auktioner, dvdforum.nu
Ändrat 2004-04-10 14:55:24 av anundi

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 15:10:27 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
mynock


Medlem

2,3
Inlägg: 2000+

Vet ingenting om ämnet, men kanske:

First normal form (1NF). This is the "basic" level of normalization and generally corresponds to the definition of any database, namely:

It contains two-dimensional tables with rows and columns.
Each column corresponds to a sub-object or an attribute of the object represented by the entire table.
Each row represents a unique instance of that sub-object or attribute and must be different in some way from any other row (that is, no duplicate rows are possible).
All entries in any column must be of the same kind. For example, in the column labeled "Customer," only customer names or numbers are permitted.

Second normal form (2NF). At this level of normalization, each column in a table that is not a determiner of the contents of another column must itself be a function of the other columns in the table. For example, in a table with three columns containing customer ID, product sold, and price of the product when sold, the price would be a function of the customer ID (entitled to a discount) and the specific product.

Third normal form (3NF). At the second normal form, modifications are still possible because a change to one row in a table may affect data that refers to this information from another table. For example, using the customer table just cited, removing a row describing a customer purchase (because of a return perhaps) will also remove the fact that the product has a certain price. In the third normal form, these tables would be divided into two tables so that product pricing would be tracked separately.

Domain/key normal form (DKNF). A key uniquely identifies each row in a table. A domain is the set of permissible values for an attribute. By enforcing key and domain restrictions, the database is assured of being freed from modification anomalies. DKNF is the normalization level that most designers aim to achieve.

------------------------------------------------
Hårdrock! Aggressive gbg Mina filmer: DVDProfiler
Ändrat 2004-04-10 15:11:20 av mynock

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 15:13:29 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Ja, det där var inte så dumt.
Tackar så mycket!

Jag vill dock gärna se fler altenativa definitioner. Det är inte helt glasklart än... Stig fram, alla pedagogiska normaliseringsexperter!






Andreas Anundi - auktioner, dvdforum.nu
Ändrat 2004-04-10 15:33:10 av anundi

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 16:12:17 Kopiera länk till inlägget! Gå till användarens galleri!    Gå till användarens tracker! Anmäl inlägget till moderator
Kuno


Medlem

4,8
Inlägg: För många!

Relationsdatabaser är ett knepigt koncept. Men egentligen är det rätt enkelt om man tänker utifrån rätt perspektiv. Själv tänker jag aldrig i termer av tabeller, fält och nycklar. Istället handlar det om en formaliserad bild av verkligheten. Du skapar inte en databas. Du skapar en beskrivning av verkligheten. På det sätt saker hänger samman i verkligheten ska de också hänga samman i en relationsdatabas.

Normaliseringen är processen där man ser till att beskrivningen av verkligheten är korrekt och överflödig information avlägsnas. En säkerhetskontroll helt enkelt. Låt oss titta på personen Kalle Larsson. Personnummer: XXX. Yrke: engelsklärare. Skostorlek: 43.

1NF: Så länge man bifogar allt ovanstående om Kalle så spelar det ingen roll i vilken ordning man tar informationen. Varje värde är i sin mest exakta form (skostorleken ÄR 43, inte ''typ 40 någonting'').

2NF: Det som gör Kalle unik är hans personnummer. Det är den primära nyckeln för att identifiera honom i samhället. All bifogad information om Kalle måste syfta tillbaka till HONOM och ingen/inget annan. Det gör den. Men om man exempelvis lagt till informationen "Högstadiet" i informationen hade detta syftat tillbaka på Kalles yrke (var han är engelsklärare), INTE på honom själv. Man utgår ifrån den unika nyckeln och ser till att man kan härleda tillbaka all information till den.

3NF: Man kan trilla i fällan och inte se skillnad på 2NF och 3NF. Riktlinjen är dock att i 2NF är primärnyckeln i centrum (man härleder tillbaka till den). I 3NF är primärnyckeln helt ointressant. Man tittar inte alls på den, även om det mycket väl kan vara samma saker man anmärker på i 3NF som i 2NF. Tillbaka till infon om Kalle med den extrainfo vi la till i 2NF:

-Personnummer: XXX
-Namn: Kalle Larsson
-Yrke: Engelsklärare
-Yrkesnivå: Högstadiet
-Skostorlek: 43

Vi slänger bort den unika identifieringen av Kalle som är personnumret och ser vad vi har kvar. Vi ser snabbt att det är ett beroendeförhållande mellan yrkesnivån och yrket. Informationen om yrkesnivå skulle inte kunna finnas om man tog bort infon om vilket yrke Kalle har. Detta är ett brott mot 3NF.


Sammanfattning:

1NF: All info är unik och exakt, och det spelar ingen roll i vilken ordning den presenteras.
2NF: 1NF plus att allt syftar tillbaka på HELA primärnyckeln.
3NF: 1+2NF plus att det INTE finns interna beroendeförhållanden om man tar bort primärnyckeln.

Kuno, dvdforum.nu
Ändrat 2004-04-10 16:15:22 av Kuno

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 16:28:08 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Men det är väl själve fan... Finns det något som Kuno inte kan?!

Detta var en bra beskrivning, må jag säga.
Jag har haft problem att särskilja 2NF och 3NF, precis som du antyder.

Dessutom har alla definitioner jag läst varit relativt formella, vilket ofta är svårare att förstå!

Det klarnade avsevärt nu. Men jag kan ändå inte påstå att jag klarar av att, som t.ex. vanligt är på tentor, bestämma och klargöra vilka normalformer givna dekompositioner är i.

Har du några bra tips där?

Exempel på tentauppifter jag stött på:
http://www.cs.umu.se/~c00aai/norm_decomp.JPG
http://www.cs.umu.se/~c00aai/norm_decomp_loss_deppreserv.JPG
(stora bilder, så jag länkar till dem.)

Vissa är lätta, men vissa gör mig nästan förbannad, för att jag inte förstår varför de är i den ena eller den andra normalformen.

Det följer även några lossless och dependency preserving-frågor, som du/ni, om ni orkar, kan tvärförklara. Dessa är dock inte de som vållar de största problemen.

Tack så hemskt mycket för hjälpen!






Andreas Anundi - auktioner, dvdforum.nu
Ändrat 2004-04-10 17:09:27 av anundi

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 18:53:10 Kopiera länk till inlägget! Gå till användarens galleri!    Gå till användarens tracker! Anmäl inlägget till moderator
Kuno


Medlem

4,8
Inlägg: För många!

Har du ingen lärare eller kurskamrat du kan fråga? Nu börjar vi närma oss "skolakuten" med stormsteg.

Kuno, dvdforum.nu
 

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 21:06:46 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Ehem... hrm...

OK, vi släpper detta då.
Men tack för hjälpen ändå! Det var en bra beskrivning. Ska bara se till att lära mig något av den också.


EDIT: Var bara det att det skulle vait bra med en annan syn på saker och ting. Alla som jag frågat hittills har ju haft samma approach som jag, som inte varit framgångsrik för mig.




Andreas Anundi - auktioner, dvdforum.nu
Ändrat 2004-04-10 21:24:37 av anundi

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 21:40:48 Kopiera länk till inlägget! Gå till användarens galleri!    Gå till användarens tracker! Anmäl inlägget till moderator
Kuno


Medlem

4,8
Inlägg: För många!

Alltså, det är absolut inget fel att diskutera ämnet, generella begrepp och liknande. Allt för att göra saker och ting tydligare och klarare för dig (och andra intresserade) är toppen!

Men vi har på gott och ont en strikt policy när det gäller hjälp kring studier och skolarbete. När vi börjar närma oss mer konkreta frågor, hemtentor, uppgifter och liknande är det oftast lämpligare att få hjälp av kurskamrat/lärare/handledare.

Är man osäker kan man tänka på tumregeln kring allmänt intresse. Trådar och diskussioner ska vara av allmänt intresse. För att ta ett exempel: Det kan vara av allmänt intresse att diskutera litteraturhistoria generellt. Däremot är det inte av allmänt intresse att få svar på fråga 12c på sidan tre av studiekompendiet i litteraturvetenskap. Ja, typ...

Kuno, dvdforum.nu
 

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-10 23:30:27 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Jag är medveten om policyn och "gick kanske för långt" med detaljfrågorna, men jag har varit så frustrerad dessa dagar, fyllda av databasrelaterat tentaplugg, som inte gått så bra.

Det var inte meningen att jag skulle få uppgifterna lösta, utan bara att jag skulle få tips på ungefär hur dessa löses lättast, eller på ett smidigt sätt.

Nåja, normaliseringar är ju inte det enda som jag bör lära mig, så istället för att sitta och läsa trådar på forumet (vilket känns otroligt lockande när jag egentligen borde plugga), kanske jag borde förkovra mig lite.





Andreas Anundi - auktioner, dvdforum.nu
Ändrat 2004-04-10 23:30:52 av anundi

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-11 19:40:24 Kopiera länk till inlägget! Gå till användarens galleri!    Gå till användarens tracker! Anmäl inlägget till moderator
Maskinisten


Medarbetare

5,5
Inlägg: 2500+

citat:
Men egentligen är det rätt enkelt om man tänker utifrån rätt perspektiv. Själv tänker jag aldrig i termer av tabeller, fält och nycklar. Istället handlar det om en formaliserad bild av verkligheten. Du skapar inte en databas. Du skapar en beskrivning av verkligheten.


Måste erkänna att jag inte tänker på det sättet alls. Jag ser framför mig tabellerna direkt och alla relationer dem emellan.

Men så har jag ju även utbildat i databashantering och SQL så det kanske inte är så konstigt. Jag gick kursen själv, jobbade i ett drygt halvår och blev tillfrågad om jag ville återvända till utbildningen fast nu som lärare. Vart bara att råplugga allt studiematerial och tuta och köra (och det gick faktiskt bra, det bor visst en liten lärare i mig ändå )

Skulle någon idag fråga mig vad de olika normalformerna är skulle jag se ut som ett levande frågetecken. Ge mig papper och penna att rita tabelldiagram och relationer på så är saken en annan.

Ändrat 2004-04-11 19:42:29 av Maskinisten

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-11 19:54:32 Kopiera länk till inlägget! Gå till användarens galleri!    Gå till användarens tracker! Anmäl inlägget till moderator
jla


Medlem

6,4
Inlägg: 3500+

Jag har studerat relationsdatabaser och jag har arbetat med relationsdatabaser i flera år, och jag har en doktorsexamen i datalogi (dock inte i databaser), men jag har ändå aldrig förstått vad det där med relationer och normalformer egentligen ska betyda förrän jag stötte på den här boken:


Practical Issues in Database Management: A Reference for the Thinking Practitioner
by Fabian Pascal

Läs den! Vandra också gärna omkring på Date & Pascals webbplats Database Debunkings. De är gnälliga och de är arroganta men enligt min bedömning sitter de inne med sanningen om databassystem, och det är dessutom mycket underhållande att läsa deras sågningar av alla som inte begriper.


Jesper (jla)
 

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-12 02:20:03 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Hehe...
Kanske lite sent att börja plöja en bok nu.

Jo, det här med normaliseringar vållar lite huvudbry, onekligen. Trots Kunos förklaringar, här ovan, som förvisso fick mig att skymta ljuset, har jag lite svårt att skilja mellan 2NF och 3NF i vissa fall, och bestämma om dekompositioner är i den ena eller den andra formen.

Tyvärr funkar inte Database Debunkings nu, så där kan jag inte kika heller.

Nej, det blir att råplugga hela dagen, sent in på natten, imorgon...

Om det bara vore så väl att det endast rörde sig om normaliseringar på tentan, hade jag kunnat vara lite positiv. Det är ju ändå en del mer... Transaktioner, med alla dessa view serializable, conflict serializable m.m., är inte så triviala att bena ut och dem har jag suttit med länge idag. Jag förstår vad de är, men det som är svårt är, att givet ett schema avgöra vilken "serialisabilitet" det rör sig, om alls. Saken är den att jag har ett hum om alla moment och avsnitt i kursen, men borde ha mer djupare kunskap i alla.

Men om sanningen ska fram, är det inte sååå svårt. Det är harvigt, och jag har inte (ärligt talat) ägnat nog mycket tid åt det hela.

Dessutom har jag fått plugga ensam, eftersom pluggpolaren begav sig till hemtrakterna över påsken och pluggade där. Det är alltid bra att plugga tillsammans med någon, så man får bolla idéer och klura tillsammans. Disciplinen måste vara militärisk om det ska bli något ordentligt pluggande ensam. Föreläsaren på denna kurs är så extremt formell i språket, och han är amerikan och kör på engelska således, så när man läser hans föreläsnings-OH-blad måste man stålsätta sig mot yttre störningsmoment, som t.ex. forumet. Boken vi har är inte hjälpt mig särskilt mycket heller. Jag har därför ägnat mycket tid åt att hitta sidor som förklarar saker och ting lite mer "vardagligt". Detta med varierande framgång.


Nåväl, nu sova, och ladda inför mastodontpluggddagen imorgon.

Och jag blir inte sur ifall ni diskuterar databasfrågor (sånt som jag har nytta av) här.







Andreas Anundi - auktioner, dvdforum.nu
Ändrat 2004-04-12 02:25:20 av anundi

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-12 12:32:05 Kopiera länk till inlägget! Anmäl inlägget till moderator
DarthPimpf


Medlem

5,0
Inlägg: 500+

Här kanske det är på sin plats att citera Codds lag, eftersom den på ett smidigt sätt sammanfattar 3NF:
"Every attribute must be dependent upon the key, the whole key, and nothing but the key, so help me Codd."



DarthPimpf
 

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-12 12:47:26 Kopiera länk till inlägget! Gå till användarens galleri!    Gå till användarens tracker! Anmäl inlägget till moderator
jla


Medlem

6,4
Inlägg: 3500+

Ok, jag ska försöka ge lite snabbare hjälp då. Informellt brukar man säga att 3NF står för "the key, the whole key, and nothing but the key (so help me Codd)".

Alltså,

1NF: Varje attribut identifieras av en nyckel, dvs. det får inte finnas många värden på ett attribut som hör till samma nyckel.
2NF: Hela nyckeln (dvs. alla nyckelattribut) behövs för att identifiera varje attribut som inte ingår i nyckeln.
3NF: Det finns inga beroenden som gör att något utanför nyckeln kan användas för att unikt bestämma värdet på ett attribut.

Detta är informellt och inte fullständigt, men det beskriver intuitivt vad poängen är. Med "nyckeln" menas varje kandidatnyckel.

Fast när man väl har begripit de egentliga poängerna med relationsteorin blir det där med att kategorisera relationer efter olika normalformer tämligen ointressant. Det finns för övrigt många fler normalformer än de där tre, de har egentligen ingen särställning. Så skriv det på tentan.


Jesper (jla)
Ändrat 2004-04-12 12:48:29 av jla

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-12 16:10:23 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Hohoo..."So help me Codd". Humor!

Jag vet att det finns fler normalformer, och att dessa tre inte är "de tre kungarna", men vi ska kunna dem (och BCNF), whatever you say. De verkar ju dock som att de övriga normalformerna inte är speciellt vanliga... Eller?

För övrigt kan jag nu påstå att jag kan dessa 1-2-3NF och BCNF. De var inte så svåra, när man väl fått dem förklarade för sig på ett "vardagligt sätt". Formalitet i all ära, det är snyggt och ger vetenskapsmannen i mig tillfredsställelse, men det kan vara svårt att förstå om det är det enda man har att gå på.

Min pluggpolare, som också skriver tentan imån, har kommit idag, så vi har börjat plugga ihop nu. Det går råbra. Det är ju positivt.

Just nu har vi matpaus, och ska sedan ge oss på transaktioner, olika former av "recovery-techniques" och sånt. Vad som sedan följer, det bestämmer vi när transaktionerna anses vara något vi kan.

Vi har en lång kväll framför oss...

Än en gång, tack för alla exempel, definitioner och förklaringar!




Andreas Anundi - auktioner, dvdforum.nu
Ändrat 2004-04-12 16:13:00 av anundi

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-12 17:56:01 Kopiera länk till inlägget! Gå till användarens galleri!    Gå till användarens tracker! Anmäl inlägget till moderator
Kuno


Medlem

4,8
Inlägg: För många!

Hoppas allting går bra till slut.

Kuno, dvdforum.nu
 

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-30 10:14:14 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
anundi


Medlem

3,5
Inlägg: 7000+

Tänkte bara tacka för hjälpen... Det gick bra på tentan. Väldigt bra, må jag säga.

Nu känns det genast bättre att läsa fördjupningskursen. Nu kan jag grunderna.

Tackar!





Andreas Anundi - auktioner, dvdforum.nu
 

Nytt inlägg sedan ditt senaste besök Ändra   
Ändra inlägget!  Postad: 2004-04-30 10:28:33 Kopiera länk till inlägget! Gå till användarens galleri!    Anmäl inlägget till moderator
Eggstorm

Medlem i Klubb DVD
Medlem

2,7
Inlägg: 500+

So, thank you Codd.

Grattis. Alltid skönt med en insert sats i ladok!

edit: [geekhumor]"en insert sats" lämnar visst ett litet utrymme för egen tolkning... [/geekhumor]
_______________________________________

Jag tänker, alltså gör jag mig till. T. Danielsson, Bok, 1963
Ändrat 2004-04-30 10:31:43 av Eggstorm
17 svar och 3640 visningar sedan 2004-04-10 14:47:16
Sidor: [1] 
Aktivitet: 0 medlem(mar) varav 0 anonym(a) samt 170 gäst(er)



dvdforum.nu Diskussioner  »  Övrigt  »  Off-topic Sök | Hjälp | Regler | Logga in
Allmänna riktlinjer
Riktlinjer för aktuell avdelning

Utskriftsversion
Tipsa en kompis om denna tråd! Skicka till kompis
Posta ett svar!
 


Copyright © 1999-2010