DATABASHANTERING för programmerare

Preview:

DESCRIPTION

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? - PowerPoint PPT Presentation

Citation preview

DATABASHANTERINGDATABASHANTERINGför programmerareför programmerare

Lektion 2Lektion 2Mahmud Al HakimMahmud Al Hakim

mahmud@hakimdata.sewww.hakimdata.se

22

Idag Idag Databasdesign Databasdesign

Databasbegrepp och terminologiDatabasbegrepp och terminologi Principer för databasdesignPrinciper för databasdesign NormaliseringNormalisering ÖvningarÖvningar

33

RepetitionRepetition

1.1. Vad är en databas?Vad är en databas?

2.2. Vad är en DBMS?Vad är en DBMS?

3.3. Ge exempel på några DBMS?Ge exempel på några DBMS?

4.4. Vilket kommando visar en lista på Vilket kommando visar en lista på databaser i MySQL?databaser i MySQL?

5.5. Vilket kommando visar information en Vilket kommando visar information en tabell i MySQL? tabell i MySQL?

44

Enheter och relationerEnheter och relationer

EnheterEnheter: Saker i verkliga : Saker i verkliga livet som vi vill lagra livet som vi vill lagra information om i information om i databasen.databasen.Ex. Anställd, Avdelning…Ex. Anställd, Avdelning…

Länkarna mellan enheter Länkarna mellan enheter kallas kallas relationerrelationer..Ex. En anställd arbetar på Ex. En anställd arbetar på en avdelning.en avdelning.

55

RelationerRelationer

En till enEn till en Ex. En anställd finns i sitt eget kontorEx. En anställd finns i sitt eget kontor

En till många (många till en)En till många (många till en)Ex. Flera anställda arbetar för en Ex. Flera anställda arbetar för en avdelningavdelning

Många till mångaMånga till mångaEx. Flera anställda arbetar för flera Ex. Flera anställda arbetar för flera avdelningaravdelningar

66

Relationsmodellen och RDBMSRelationsmodellen och RDBMS

RelationsmodellenRelationsmodellenEn datamodell där man beskriver En datamodell där man beskriver verkligheten genom att lagra data i verkligheten genom att lagra data i tabeller. tabeller.

Relationsdatabas RDBMSRelationsdatabas RDBMS En databas organiserad enligt En databas organiserad enligt relationsmodellen, d.v.s. med alla data relationsmodellen, d.v.s. med alla data lagrade i tabeller. lagrade i tabeller. Ex. MySQLEx. MySQL

77

Relation = TabellRelation = Tabell

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128

98429842 Bengt SvenssonBengt Svensson DBADBA 4242

66516651 Arne PerssonArne Persson ProgrammerareProgrammerare 128128

90069006 Camilla BlomCamilla Blom SystemadministratörSystemadministratör 128128

88

PrimärnyckelPrimärnyckel

En primärnyckel En primärnyckel En kolumn, eller en kombination av En kolumn, eller en kombination av kolumner, som alltid har ett unikt värde för kolumner, som alltid har ett unikt värde för varje rad i tabellen. Om det finns flera varje rad i tabellen. Om det finns flera möjliga primärnycklar säger man att man möjliga primärnycklar säger man att man har flera har flera kandidatnycklarkandidatnycklar, och man väljer , och man väljer en av dem som primärnyckel. en av dem som primärnyckel.

99

Främmande nyckelFrämmande nyckel

En främmande nyckel En främmande nyckel Ett attribut (kolumn) i en tabell som Ett attribut (kolumn) i en tabell som refererar till en annan (eller ibland samma) refererar till en annan (eller ibland samma) tabell.tabell.Kallas även för Kallas även för ReferensattributReferensattribut..

1010

SchemanScheman

Schema eller databasschemaSchema eller databasschemaDatabasens struktur eller utformningDatabasens struktur eller utformning

Ex.Ex.personal (personal (personalIDpersonalID, namn, befattning, , namn, befattning, avdelningIDavdelningID))

1111

Principer för databasdesignPrinciper för databasdesign

Vilken sorts information ska lagras?Vilken sorts information ska lagras? Vilka frågor behöver vi ställa till Vilka frågor behöver vi ställa till

databasen?databasen? Ta hänsyn till affärsreglerna.Ta hänsyn till affärsreglerna. Undvik strukturella problem som Undvik strukturella problem som

redundans och dataanomalier.redundans och dataanomalier. Undvik Null-värden.Undvik Null-värden.

1212

RedundansRedundans

RedundansRedundansData som upprepas i olika rader i en tabell Data som upprepas i olika rader i en tabell eller i olika tabeller i databasen. eller i olika tabeller i databasen. Ex.Ex.personalAvdelning (personalAvdelning (personalIDpersonalID, namn, , namn, befattning, avdelningID, avdelningNamn)befattning, avdelningID, avdelningNamn)

Kom ihåg: Minska upprepning av data utan att Kom ihåg: Minska upprepning av data utan att information går förlorad. information går förlorad.

1313

personalAvdelningpersonalAvdelning

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID avdelningNamnavdelningNamn

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128 FoUFoU

98429842 Bengt SvenssonBengt Svensson DBADBA 4242 EkonomiEkonomi

66516651 Arne PerssonArne Persson ProgrammerareProgrammerare 128128 FoUFoU

90069006 Camilla BlomCamilla Blom SystemadministratörSystemadministratör 128128 FoUFoU

1414

Personal AvdelningPersonal Avdelning

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID

75137513 Nina Nina LarssonLarsson

ProgrammerareProgrammerare 128128

98429842 Bengt Bengt SvenssonSvensson

DBADBA 4242

66516651 Arne Arne PerssonPersson

ProgrammerareProgrammerare 128128

90069006 Camilla Camilla BlomBlom

SystemadministSystemadministratörratör

128128

avdelningIDavdelningID avdelningNamnavdelningNamn

4242 EkonomiEkonomi

128128 FoUFoU

1515

AnomalierAnomalier

Problem som uppkommer i data Problem som uppkommer i data beroende på felaktig databasdesign.beroende på felaktig databasdesign.

1.1. InfogningsanomalierInfogningsanomalier

2.2. BorttagningsanomalierBorttagningsanomalier

3.3. UppdateringsanomalierUppdateringsanomalier

1616

Null-värdenNull-värden

Ett speciellt värde, eller snarare brist på Ett speciellt värde, eller snarare brist på värde, som betyder att en uppgift saknas i värde, som betyder att en uppgift saknas i databasen. Motsvarar en "tom ruta" i databasen. Motsvarar en "tom ruta" i relationsmodellen. relationsmodellen.

1717

VTC - Getting StartedVTC - Getting Started

Gå till adressen:Gå till adressen:http://www.vtc.com/products/mysql.htm

Lyssna på Lyssna på Database BasicsDatabase Basics -What is a Database? -What is a Database? -RDBMSs -RDBMSs -Tables and Data Pt 1 -Tables and Data Pt 1 -Tables and Data Pt 2 -Tables and Data Pt 2

1818

NormaliseringNormalisering

En process som kan användas för att En process som kan användas för att avlägsna fel i en databas.avlägsna fel i en databas.

Beskriver ett antal normalformer som Beskriver ett antal normalformer som består av en uppsättning regler som består av en uppsättning regler som beskriver hur en tabellstruktur ska och beskriver hur en tabellstruktur ska och inte ska utformas.inte ska utformas.

1919

Första normalformen (1NF)Första normalformen (1NF)

Varje attribut eller kolumnvärde måste vara odelbarVarje attribut eller kolumnvärde måste vara odelbar

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID KunskapKunskap

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128 C, Perl, JavaC, Perl, Java

98429842 Bengt Bengt SvenssonSvensson

DBADBA 4242 DB2DB2

66516651 Arne PerssonArne Persson ProgrammerareProgrammerare 128128 VB, JavaVB, Java

90069006 Camilla BlomCamilla Blom SystemadministratöSystemadministratörr

128128 NT, LinuxNT, Linux

2020

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID KunskapKunskap

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128 CC

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128 PerlPerl

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128 JavaJava

98429842 Bengt SvenssonBengt Svensson DBADBA 4242 DB2DB2

66516651 Arne PerssonArne Persson ProgrammerareProgrammerare 128128 VBVB

66516651 Arne PerssonArne Persson ProgrammerareProgrammerare 128128 JavaJava

90069006 Camilla BlomCamilla Blom SystemadministratörSystemadministratör 128128 NTNT

90069006 Camilla BlomCamilla Blom SystemadministratörSystemadministratör 128128 LinuxLinux

2121

Andra normalformen (2NF)Andra normalformen (2NF)

Alla attribut som inte är en del av Alla attribut som inte är en del av primärnyckeln är helt funktionellt beroende primärnyckeln är helt funktionellt beroende av primärnyckel.av primärnyckel.

Funktionella beroendenFunktionella beroendenOm det finns ett funktionellt beroende Om det finns ett funktionellt beroende mellan kolumn A och kolumn B i en viss mellan kolumn A och kolumn B i en viss tabell, så bestämmer värdet i kolumn A tabell, så bestämmer värdet i kolumn A värdet i kolumn B.värdet i kolumn B. A A B B

2222

2NF - Exempel2NF - Exempel

1NF 1NF personal (personal (personalIDpersonalID, namn, befattning, , namn, befattning, avdelningID, avdelningID, kunskapkunskap))

Funktionella beroendenFunktionella beroendenpersonalIDpersonalID, , kunskap kunskap namn, befattning, namn, befattning, avdelningIDavdelningIDpersonalIDpersonalID namn, befattning, avdelningID namn, befattning, avdelningID

LösningLösningpersonal (personal (personalIDpersonalID, namn, befattning, , namn, befattning, avdelningIDavdelningID))personalKunskap (personalKunskap (personalIDpersonalID, , kunskapkunskap))

2323

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128

98429842 Bengt Bengt SvenssonSvensson

DBADBA 4242

66516651 Arne PerssonArne Persson ProgrammerareProgrammerare 128128

90069006 Camilla BlomCamilla Blom SystemadministratöSystemadministratörr

128128

personalIDpersonalID KunskapKunskap

75137513 CC

75137513 PerlPerl

75137513 JavaJava

98429842 DB2DB2

66516651 VBVB

66516651 JavaJava

90069006 NTNT

90069006 LinuxLinux

personal personalkunskap personal personalkunskap

2424

Tredje normalformen (3NF)Tredje normalformen (3NF)

Attributen får inte vara beroende av Attributen får inte vara beroende av någonting annat än nyckeln.någonting annat än nyckeln.

ExempelExempelpersonalAvdelning (personalAvdelning (personalIDpersonalID, namn, , namn, befattning, avdelningID, avdelningNamn)befattning, avdelningID, avdelningNamn)

2525

personalAvdelningpersonalAvdelning

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID avdelningNamnavdelningNamn

75137513 Nina LarssonNina Larsson ProgrammerareProgrammerare 128128 FoUFoU

98429842 Bengt SvenssonBengt Svensson DBADBA 4242 EkonomiEkonomi

66516651 Arne PerssonArne Persson ProgrammerareProgrammerare 128128 FoUFoU

90069006 Camilla BlomCamilla Blom SystemadministratörSystemadministratör 128128 FoUFoU

2626

Personal AvdelningPersonal Avdelning

personalIDpersonalID namnnamn befattningbefattning avdelningIDavdelningID

75137513 Nina Nina LarssonLarsson

ProgrammerareProgrammerare 128128

98429842 Bengt Bengt SvenssonSvensson

DBADBA 4242

66516651 Arne Arne PerssonPersson

ProgrammerareProgrammerare 128128

90069006 Camilla Camilla BlomBlom

SystemadministSystemadministratörratör

128128

avdelningIDavdelningID avdelningNamnavdelningNamn

4242 EkonomiEkonomi

128128 FoUFoU

2727

Boyce-Codds normalform Boyce-Codds normalform (BCNF)(BCNF)

Relationen måsta vara i den tredje Relationen måsta vara i den tredje normalformen normalformen

ochoch

Alla funktionella beroenden måste ha en Alla funktionella beroenden måste ha en supernyckel på den vänstra sidan.supernyckel på den vänstra sidan.

2828

Övningar efter rasten Övningar efter rasten

Svara på frågorna på sid. 56-57Svara på frågorna på sid. 56-57 Normalisera följande schema till 3NFNormalisera följande schema till 3NF

Order ( kundNr, kundNamn, Order ( kundNr, kundNamn, kundAdress, orderNr, orderDatum, kundAdress, orderNr, orderDatum, artikelNr, artikelNamn, artikelAntal )artikelNr, artikelNamn, artikelAntal )

Recommended