Title: DATABASHANTERING f
1DATABASHANTERINGför programmerare
- Lektion 2
- Mahmud Al Hakim
- mahmud_at_hakimdata.se
- www.hakimdata.se
2Idag Databasdesign
- Databasbegrepp och terminologi
- Principer för databasdesign
- Normalisering
- Övningar
3Repetition
- Vad är en databas?
- Vad är en DBMS?
- Ge exempel på några DBMS?
- Vilket kommando visar en lista på databaser i
MySQL? - Vilket kommando visar information en tabell i
MySQL?
4Enheter och relationer
- Enheter Saker i verkliga livet som vi vill lagra
information om i databasen.Ex. Anställd,
Avdelning - Länkarna mellan enheter kallas relationer.Ex. En
anställd arbetar på en avdelning.
5Relationer
- En till en Ex. En anställd finns i sitt eget
kontor - En till många (många till en)Ex. Flera anställda
arbetar för en avdelning - Många till mångaEx. Flera anställda arbetar för
flera avdelningar
6Relationsmodellen och RDBMS
- RelationsmodellenEn datamodell där man beskriver
verkligheten genom att lagra data i tabeller. - Relationsdatabas RDBMS En databas organiserad
enligt relationsmodellen, d.v.s. med alla data
lagrade i tabeller. Ex. MySQL
7Relation Tabell
personalID namn befattning avdelningID
7513 Nina Larsson Programmerare 128
9842 Bengt Svensson DBA 42
6651 Arne Persson Programmerare 128
9006 Camilla Blom Systemadministratör 128
8Primärnyckel
- En primärnyckel 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.
9Främmande nyckel
- En främmande nyckel Ett attribut (kolumn) i en
tabell som refererar till en annan (eller ibland
samma) tabell.Kallas även för Referensattribut.
10Scheman
- Schema eller databasschemaDatabasens struktur
eller utformningEx.personal (personalID, namn,
befattning, avdelningID)
11Principer för databasdesign
- Vilken sorts information ska lagras?
- Vilka frågor behöver vi ställa till databasen?
- Ta hänsyn till affärsreglerna.
- Undvik strukturella problem som redundans och
dataanomalier. - Undvik Null-värden.
12Redundans
- RedundansData som upprepas i olika rader i en
tabell eller i olika tabeller i databasen.
Ex.personalAvdelning (personalID, namn,
befattning, avdelningID, avdelningNamn)Kom
ihåg Minska upprepning av data utan att
information går förlorad.
13personalAvdelning
personalID namn befattning avdelningID avdelningNamn
7513 Nina Larsson Programmerare 128 FoU
9842 Bengt Svensson DBA 42 Ekonomi
6651 Arne Persson Programmerare 128 FoU
9006 Camilla Blom Systemadministratör 128 FoU
14Personal Avdelning
personalID namn befattning avdelningID
7513 Nina Larsson Programmerare 128
9842 Bengt Svensson DBA 42
6651 Arne Persson Programmerare 128
9006 Camilla Blom Systemadministratör 128
avdelningID avdelningNamn
42 Ekonomi
128 FoU
15Anomalier
- Problem som uppkommer i data beroende på felaktig
databasdesign. - Infogningsanomalier
- Borttagningsanomalier
- Uppdateringsanomalier
16Null-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.
17VTC - Getting Started
- Gå till adressenhttp//www.vtc.com/products/mysq
l.htm - Lyssna på Database Basics -What is a Database?
-RDBMSs -Tables and Data Pt 1 -Tables
and Data Pt 2
18Normalisering
- En process som kan användas för att avlägsna fel
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.
19Första normalformen (1NF)
- Varje attribut eller kolumnvärde måste vara
odelbar
personalID namn befattning avdelningID Kunskap
7513 Nina Larsson Programmerare 128 C, Perl, Java
9842 Bengt Svensson DBA 42 DB2
6651 Arne Persson Programmerare 128 VB, Java
9006 Camilla Blom Systemadministratör 128 NT, Linux
20personalID namn befattning avdelningID Kunskap
7513 Nina Larsson Programmerare 128 C
7513 Nina Larsson Programmerare 128 Perl
7513 Nina Larsson Programmerare 128 Java
9842 Bengt Svensson DBA 42 DB2
6651 Arne Persson Programmerare 128 VB
6651 Arne Persson Programmerare 128 Java
9006 Camilla Blom Systemadministratör 128 NT
9006 Camilla Blom Systemadministratör 128 Linux
21Andra normalformen (2NF)
- Alla attribut som inte är en del av primärnyckeln
är helt funktionellt beroende av primärnyckel. - Funktionella beroendenOm 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
222NF - Exempel
- 1NF personal (personalID, namn, befattning,
avdelningID, kunskap) - Funktionella beroendenpersonalID, kunskap ?
namn, befattning, avdelningIDpersonalID? namn,
befattning, avdelningID - Lösningpersonal (personalID, namn, befattning,
avdelningID)personalKunskap (personalID,
kunskap)
23personal
personalkunskap
personalID Kunskap
7513 C
7513 Perl
7513 Java
9842 DB2
6651 VB
6651 Java
9006 NT
9006 Linux
personalID namn befattning avdelningID
7513 Nina Larsson Programmerare 128
9842 Bengt Svensson DBA 42
6651 Arne Persson Programmerare 128
9006 Camilla Blom Systemadministratör 128
24Tredje normalformen (3NF)
- Attributen får inte vara beroende av någonting
annat än nyckeln. - ExempelpersonalAvdelning (personalID, namn,
befattning, avdelningID, avdelningNamn)
25personalAvdelning
personalID namn befattning avdelningID avdelningNamn
7513 Nina Larsson Programmerare 128 FoU
9842 Bengt Svensson DBA 42 Ekonomi
6651 Arne Persson Programmerare 128 FoU
9006 Camilla Blom Systemadministratör 128 FoU
26Personal Avdelning
personalID namn befattning avdelningID
7513 Nina Larsson Programmerare 128
9842 Bengt Svensson DBA 42
6651 Arne Persson Programmerare 128
9006 Camilla Blom Systemadministratör 128
avdelningID avdelningNamn
42 Ekonomi
128 FoU
27Boyce-Codds normalform (BCNF)
- Relationen måsta vara i den tredje normalformen
och - Alla funktionella beroenden måste ha en
supernyckel på den vänstra sidan.
28Övningar efter rasten
- Svara på frågorna på sid. 56-57
- Normalisera följande schema till 3NF
- Order ( kundNr, kundNamn, kundAdress, orderNr,
orderDatum, artikelNr, artikelNamn, artikelAntal )