Presentation laddar. Vänta.

Presentation laddar. Vänta.

DATABASHANTERING för programmerare Lektion 2 Mahmud Al Hakim

Liknande presentationer


En presentation över ämnet: "DATABASHANTERING för programmerare Lektion 2 Mahmud Al Hakim"— Presentationens avskrift:

1 DATABASHANTERING för programmerare Lektion 2 Mahmud Al Hakim

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

3 3 Repetition 1. Vad är en databas? 2. Vad är en DBMS? 3. Ge exempel på några DBMS? 4. Vilket kommando visar en lista på databaser i MySQL? 5. Vilket kommando visar information en tabell i MySQL?

4 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 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 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 7 Relation = Tabell personalIDnamnbefattningavdelningID 7513 Nina Larsson Programmerare Bengt Svensson DBA Arne Persson Programmerare Camilla Blom Systemadministratör128

8 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 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 10 Scheman  Schema eller databasschema Databasens struktur eller utformning Ex. personal (personalID, namn, befattning, avdelningID)

11 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 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 13 personalAvdelning personalIDnamnbefattningavdelningIDavdelningNamn 7513 Nina Larsson Programmerare128FoU 9842 Bengt Svensson DBA42Ekonomi 6651 Arne Persson Programmerare128FoU 9006 Camilla Blom Systemadministratör128FoU

14 14 Personal Avdelning personalIDnamnbefattningavdelningID 7513 Nina Larsson Programmerare Bengt Svensson DBA Arne Persson Programmerare Camilla Blom Systemadminist ratör 128 avdelningIDavdelningNamn42Ekonomi 128FoU

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

16 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 17 VTC - Getting Started  Gå till adressen:  Lyssna på Database Basics -What is a Database? -RDBMSs -Tables and Data Pt 1 -Tables and Data Pt 2

18 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 19 Första normalformen (1NF)  Varje attribut eller kolumnvärde måste vara odelbar personalIDnamnbefattningavdelningIDKunskap 7513 Nina Larsson Programmerare128 C, Perl, Java 9842 Bengt Svensson DBA42DB Arne Persson Programmerare128 VB, Java 9006 Camilla Blom Systemadministratör128 NT, Linux

20 20 personalIDnamnbefattningavdelningIDKunskap 7513 Nina Larsson Programmerare128C 7513 Programmerare128 Perl Perl 7513 Nina Larsson Programmerare128Java 9842 Bengt Svensson DBA42DB Arne Persson Programmerare128VB 6651 Programmerare128Java 9006 Camilla Blom Systemadministratör128NT 9006 Systemadministratör128Linux

21 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 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 23 personalIDnamnbefattningavdelningID 7513 Nina Larsson Programmerare Bengt Svensson DBA Arne Persson Programmerare Camilla Blom Systemadministratör128 personalIDKunskap7513C 7513Perl 7513Java 9842DB2 6651VB 6651Java 9006NT 9006Linux personal personalkunskap

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

25 25 personalAvdelning personalIDnamnbefattningavdelningIDavdelningNamn 7513 Nina Larsson Programmerare128FoU 9842 Bengt Svensson DBA42Ekonomi 6651 Arne Persson Programmerare128FoU 9006 Camilla Blom Systemadministratör128FoU

26 26 Personal Avdelning personalIDnamnbefattningavdelningID 7513 Nina Larsson Programmerare Bengt Svensson DBA Arne Persson Programmerare Camilla Blom Systemadminist ratör 128 avdelningIDavdelningNamn42Ekonomi 128FoU

27 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 28 Övningar efter rasten  Svara på frågorna på sid  Normalisera följande schema till 3NF Order ( kundNr, kundNamn, kundAdress, orderNr, orderDatum, artikelNr, artikelNamn, artikelAntal )


Ladda ner ppt "DATABASHANTERING för programmerare Lektion 2 Mahmud Al Hakim"

Liknande presentationer


Google-annonser