Presentation laddar. Vänta.

Presentation laddar. Vänta.

DATABASHANTERING för programmerare

Liknande presentationer


En presentation över ämnet: "DATABASHANTERING för programmerare"— Presentationens avskrift:

1 DATABASHANTERING för programmerare
Lektion 2 Mahmud Al Hakim

2 Idag Databasdesign Databasbegrepp och terminologi
Principer för databasdesign Normalisering Övningar

3 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?

4 Enheter 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.

5 Relationer 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ånga Ex. Flera anställda arbetar för flera avdelningar

6 Relationsmodellen och RDBMS
Relationsmodellen En 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

7 Relation = Tabell personalID namn befattning avdelningID 7513
Nina Larsson Programmerare 128 9842 Bengt Svensson DBA 42 6651 Arne Persson 9006 Camilla Blom Systemadministratör

8 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.

9 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.

10 Scheman Schema eller databasschema Databasens struktur eller utformning Ex. personal (personalID, namn, befattning, avdelningID)

11 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.

12 Redundans Redundans Data 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.

13 personalAvdelning personalID namn befattning avdelningID avdelningNamn
7513 Nina Larsson Programmerare 128 FoU 9842 Bengt Svensson DBA 42 Ekonomi 6651 Arne Persson 9006 Camilla Blom Systemadministratör

14 Personal Avdelning personalID namn befattning avdelningID avdelningID
7513 Nina Larsson Programmerare 128 9842 Bengt Svensson DBA 42 6651 Arne Persson 9006 Camilla Blom Systemadministratör avdelningID avdelningNamn 42 Ekonomi 128 FoU

15 Anomalier Problem som uppkommer i data beroende på felaktig databasdesign. Infogningsanomalier Borttagningsanomalier Uppdateringsanomalier

16 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.

17 VTC - Getting Started Gå till adressen: Lyssna på Database Basics -What is a Database? -RDBMSs -Tables and Data Pt Tables and Data Pt 2

18 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.

19 Fö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 VB, Java 9006 Camilla Blom Systemadministratör NT, Linux

20 personalID namn befattning avdelningID Kunskap 7513 Nina Larsson
Programmerare 128 C Perl Java 9842 Bengt Svensson DBA 42 DB2 6651 Arne Persson VB 9006 Camilla Blom Systemadministratör NT Linux

21 Andra normalformen (2NF)
Alla attribut som inte är en del av primärnyckeln är helt funktionellt beroende av primärnyckel. Funktionella beroenden 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

22 2NF - Exempel 1NF personal (personalID, namn, befattning, avdelningID, kunskap) Funktionella beroenden personalID, kunskap  namn, befattning, avdelningID personalID namn, befattning, avdelningID Lösning personal (personalID, namn, befattning, avdelningID) personalKunskap (personalID, kunskap)

23 personal personalkunskap
personalID namn befattning avdelningID 7513 Nina Larsson Programmerare 128 9842 Bengt Svensson DBA 42 6651 Arne Persson 9006 Camilla Blom Systemadministratör personalID Kunskap 7513 C Perl Java 9842 DB2 6651 VB 9006 NT Linux

24 Tredje normalformen (3NF)
Attributen får inte vara beroende av någonting annat än nyckeln. Exempel personalAvdelning (personalID, namn, befattning, avdelningID, avdelningNamn)

25 personalAvdelning personalID namn befattning avdelningID avdelningNamn
7513 Nina Larsson Programmerare 128 FoU 9842 Bengt Svensson DBA 42 Ekonomi 6651 Arne Persson 9006 Camilla Blom Systemadministratör

26 Personal Avdelning personalID namn befattning avdelningID avdelningID
7513 Nina Larsson Programmerare 128 9842 Bengt Svensson DBA 42 6651 Arne Persson 9006 Camilla Blom Systemadministratör avdelningID avdelningNamn 42 Ekonomi 128 FoU

27 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.

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 )


Ladda ner ppt "DATABASHANTERING för programmerare"

Liknande presentationer


Google-annonser