280 likes | 445 Views
DATABASHANTERING för programmerare. Lektion 2 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se. Idag Databasdesign. Databasbegrepp och terminologi Principer för databasdesign Normalisering Övningar. Repetition. Vad är en databas? Vad är en DBMS? Ge exempel på några DBMS?
E N D
DATABASHANTERINGför programmerare Lektion 2 Mahmud Al Hakim mahmud@hakimdata.se www.hakimdata.se
Idag Databasdesign • Databasbegrepp och terminologi • Principer för databasdesign • Normalisering • Övningar
Repetition • 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?
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. Enheter och relationer
Relationer • En till enEx. 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
Relationsmodellen och RDBMS • RelationsmodellenEn datamodell där man beskriver verkligheten genom att lagra data i tabeller. • Relationsdatabas RDBMSEn databas organiserad enligt relationsmodellen, d.v.s. med alla data lagrade i tabeller. Ex. MySQL
Primä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.
Frä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.
Scheman • Schema eller databasschemaDatabasens struktur eller utformningEx.personal (personalID, namn, befattning, avdelningID)
Principer 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.
Redundans • 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.
Anomalier • Problem som uppkommer i data beroende på felaktig databasdesign. • Infogningsanomalier • Borttagningsanomalier • Uppdateringsanomalier
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.
VTC - Getting Started • Gå till adressen:http://www.vtc.com/products/mysql.htm • Lyssna på Database Basics -What is a Database? -RDBMSs -Tables and Data Pt 1 -Tables and Data Pt 2
Normalisering • 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.
Första normalformen (1NF) • Varje attribut eller kolumnvärde måste vara odelbar
Andra 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
2NF - 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)
personal personalkunskap
Tredje normalformen (3NF) • Attributen får inte vara beroende av någonting annat än nyckeln. • ExempelpersonalAvdelning (personalID, namn, befattning, avdelningID, avdelningNamn)
Boyce-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.
Ö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 )