Databaskonstruktion @ B2KUNO Johan Eklund.

Slides:



Advertisements
Liknande presentationer
Butiksdata.
Advertisements

Databaser & databasdesign
Vad är en databas? “En databas är en delad samling logiskt relaterade data som designats för att möta informationsbehovet i en organisation eller för.
Relationsdatabasdesign
Databasadministration
Access med Sebastian och Robert
(Data)Modellering nikos dimitrakas rum 6626
Klasser och objekt.
DATABASHANTERING för programmerare
Från verksamhet till databas
Datamodellering med E/R-diagram
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2.
Digitalisering av kulturarvet
Föreläsning 2 Datalogi för E1 2D1343
FL2 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
732G22 Grunder i statistisk metodik
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
Mahmud Al Hakim Webmaster DAG 11 VT09 Mahmud Al Hakim
WEBMASTER DAG 10 VT09 Mahmud Al Hakim
W EBMASTER DAG 11 HT08 Mahmud Al Hakim
WEBMASTER DAG 13 Mahmud Al Hakim
Databaser och databas-system
Praktisk databasdesign (kap 12)
DAV B04 - Databasteknik Indexering (kap 14).
Datamodellering med E/R-diagram
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
XSLT – en introduktion Digitalisering av kulturarvet.
Programmering B PHP Lektion 2
Programmering B PHP Lektion 3
Tabeller.
XSLT – en introduktion Elektronisk publicering.
DATABASHANTERING för programmerare
DATABASHANTERING för programmerare Lektion 1 Mahmud Al Hakim
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
SQL nikos dimitrakas rum 6626
ITK3:DB/EIT:DB Databasmetodik
Databashantering Do it Max-style!. SELECT SELECT vad FROM tabellnamn Exempel: ◦ SELECT * FROM stralin_max  * = Välj allt som finns i tabellen ◦ SELECT.
FRÅGEUTVECKLING INOM MSSQL Marcus Medina. Dagens visdomsord ” Det är inte vad som händer dig som räknas – utan hur du reagerar på det. ” - Epiktetos.
Databashantering MS Access 2003 Lektion 2
Flexicon – Din systempartner
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord “Det verkar alltid omöjligt tills dess att det är gjort” Nelson Mandela.
Frågor. Vad är en Fråga? -En fråga är ett urval av information från ett eller flera fält i en eller flera tabeller. - Du använder frågor för att selektera.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
FRÅGEUTVECKLING INOM MSSQL Marcus Medina. Dagens visdomsord ”Kunskap kan vara tung att inhämta men är sedan lätt att bära.” - Okänd.
Mahmud Al Hakim 2  Mål för kursen  Kursplanering  Kurslitteratur  Betygsättning  Grunder om databaser  Tabeller.
Databaser och databassystem
INFORMATIONSSYSTEM Informationssystem: datoriserat system som stödjer en organisations informationsförsörjning VERKSAMHET avbildar Definitionen alltför.
Tabellrelationer Innan ni får göra lite övningar tänkte jag att jag skulle gå igenom lite om tabellrelationer.
DATABASHANTERING för programmerare Lektion 6 Mahmud Al Hakim
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Delarna i en Access-databas
DA7351 Programmering 1 Databas SQL Föreläsning 24.
Databaser, avancerade frågor
IT Databas Göran Wiréen
IT Databas Göran Wiréen
IT Databas Göran Wiréen
IT Databas Göran Wiréen
Repetition Del 1.
IT Databas Göran Wiréen
Operativ informationshantering, databaser
KaU - Datavetenskap - DAV B04 - MGö
SQL Structured Query Language Frågespråk för att används för Kommandon
SQL Structured Query Language Frågespråk för att används för Kommandon
Presentationens avskrift:

Databaskonstruktion @ B2KUNO Johan Eklund

Lästips Connolly T., Begg C. (2002). Database systems. http://www.w3schools.com/sql Eklund, Johan (2005). Tio steg till en databas i Microsoft Access. http://www.adm.hb.se/~jek/b2kuno/tensteps.html

Data och information Data : numeriska värden och text som utan kontext saknar självständig mening Information : en uppsättning data som genom kontext och/eller struktur har självständig mening Kunskap : information som har blivit medvetandegjord

Informationsteori (Shannon 1948) Information kan ses som ett meddelande från en sändare till en mottagare Mängden information i ett meddelande beräknas på basis av hur mycket nytt eller oväntat meddelandet innehåller

Vad är en databas? En samling av logiskt organiserade data Genom att använda en databas kan dataentiteter effektivt lagras, relateras till varandra (och därmed bilda information) samt hämtas upp (återvinnas) Databas  dokument Databas  databashanteringssystem

Databashanteringssystem DBMS, Database Management System Ett programvarusystem som möjliggör för användare att definiera, skapa, underhålla och kontrollera tillgång till en databas Exempel: Access, SQL Server, Oracle, MySQL, FileMaker

Datamodeller Datamodell: en övergripande ramverk för hur data skall organiseras i en databas Objektorienterade  Post-orienterade Nätverksdatamodellen Hierarkiska datamodellen Relationsdatamodellen

Nu blir det lite matematik...

Mängdlära (set theory) En mängd är en oordnad samling av unika objekt (dubbletter förekommer inte) Notation: A = {10, 3, 7, 24, 39} En tipel (eng. tuple) är en ordnad sekvens av objekt där dubbletter kan förekomma A = (2, 5, 5, 3, 8)

Tillhörighet x  A objektet x tillhör mängden A A = {apelsin, banan, citron}, x = banan x  A objektet x tillhör inte mängden A A = {apelsin, banan, citron}, x = äpple

Delmängd B  A B är en äkta delmängd till A B  A B är en delmängd till A A = {3, 7, 10, 24, 39}, B = {3, 7, 10, 24, 39}

Union och snitt A  B unionen av mängderna A och B A = {3, 5, 8} B = {5, 6, 8} A  B = {3, 5, 6, 8} A  B snittet av mängderna A och B A = {3, 5, 8} B = {5, 6, 8} A  B = {5, 8}

Cartesisk produkt En cartesisk produkt A  B av två mängder A och B är mängden av alla ordnade par (a, b) som kan bildas från elementen i A respektive B

Relation En relation R är (informellt) en struktur för påståenden om tillstånd Formellt: R  A1  A2  …  An Denna bok har titeln Örnens Gåva, är skriven av Carlos Castaneda och är utgiven år 1986 (Örnens Gåva, Carlos Castaneda, 1986)

Relationsdatamodellen Codd, E. F. (1970). A relational model of data for large shared data banks. Data struktureras i relationer Relationer lagras som poster i tabeller Poster identifieras genom nycklar

Relationsmodellen Attribut Plagg Färg Storlek Pris Armébyxa Grå 52 249 Chinos Beige 54 199 Jeans Indigoblå 108 Relation Tipel

Tabeller, fält och poster Plagg Färg Storlek Pris Armébyxa Grå 52 249 Chinos Beige 54 199 Jeans Indigoblå 108 Tabell Post

Attribut / egenskaper / fält När du vet vad du skall beskriva är det dags att fundera på hur Egenskaper / attribut Fält 235, 2006-01-16, ”Information Retrieval”

Datatyper Anger hur attributvärden är beskaffade Numeriskt värde [Tal] Sträng (sekvens av tecken där minst ett är icke-numeriskt, "text") [Text] Datum [Datum/tid]

Datatyper plagg PK artnr Text färg storlek Tal pris Valuta

Nycklar Primärnyckel (primary key): ett fält, eller en kombination av fält, som kan användas för att unikt identifiera en post Naturlig primärnyckel resp surrogatnyckel Främmande nyckel (foreign key): ett fält, eller en kombination av fält, som pekar på en primärnyckel

Nycklar låntagare PK kortnr efternamn förnamn telefon lån FK kortnr bok datum

Frågespråk

Relationsalgebra Föreslagen av E.F. Codd som komplement till relationsdatamodellen Språk innehållande operationer på relationer (tabeller) Bygger på mängdlära Föregångare till dagens frågespråk

Relationsalgebra Urval: age ≥ 30(Person) Projektion: forename,surname(Person) Cartesisk produkt: Person × Resultat Union: age ≥ 30(Person)  surname = Karlsson(Person) Snitt: age ≥ 30(Person)  surname = Karlsson(Person)

SQL, Structured Query Language Generellt databasspråk Är ett: datadefinitionsspråk (DDL) datamanipulationsspråk (DML) Deklarativt språk: man anger vad som skall utföras, inte hur det skall gå till

Kommandon i SQL Varje sats i SQL innehåller ett kommando som anger vilken operation som skall utföras SELECT – hämta INSERT – lägg till UPDATE – uppdatera / modifiera DELETE – ta bort

En SELECT-sats Fält Plagg Färg Storlek Pris Armébyxa Grå 52 249 Chinos Beige 54 199 Jeans Indigoblå 108 Tabell Post

En SELECT-sats SELECT plagg, färg, storlek, pris FROM sortiment WHERE pris < 200 ORDER BY plagg ASC, pris DESC Tips: använd VERSALER för reserverade ord och gemener för egendefinierade ord

SELECT-satsens struktur Vilka fält som skall visas i resultatet FROM Vilken eller vilka tabeller WHERE Villkor för vilka poster som skall returneras ORDER BY Fält på vilka sortering skall ske

Villkor för urval av poster Ett villkor är alltid tredelat: <fältnamn> <jämförelse> <fältvärde> efternamn = 'Andersson' betyg > 3 Observera att fältvärden av typen text skall omgärdas av apostrof Villkor kan kombineras med boolska operatorer (AND, OR, NOT IN, <>)

Trunkerad sökning Sökning med trunkering är exempel på en teknik som kallas mönstermatchning Trunkering anges med ordet LIKE (istället för =) och % som trunkeringsoperator SELECT * FROM person WHERE efternamn LIKE 'Lun%' S k maskning sker med _ (understreck)

Funktion En funktion f är en binär relation (xi, yi) sådan att om yi  yj gäller även xi  xj, annorlunda uttryckt: f (xi)  f (xj)  xi  xj

Aggregatfunktioner Funktioner som utför beräkningar på en eller flera poster och returnerar sammanfattande värden COUNT: räknar poster SUM: summerar värden AVG: beräknar medelvärde MIN, MAX: minsta resp. största värde

Cartesisk produkt och JOIN låntagare PK kortnr efternamn förnamn telefon lån FK kortnr bok datum

Cartesisk produkt SELECT * FROM låntagare, lån från tabellen låntagare kortnr efternamn förnamn telefon bok datum 25 Karlsson Jan -------- Livet 060202 28 Ofredsår 060203 32 Hagström Lena Om ett ord 060126 40 I cirkelns mitt 060124

Cartesisk produkt För att få poster där informationen ”stämmer” filtrerar vi resultatet på relationen primärnyckel – främmande nyckel SELECT * FROM låntagare, lån WHERE låntagare.kortnr = lån.kortnr AND datum >= #2006-02-01#

JOIN I en JOIN-operation mellan två tabeller A och B kombineras poster och fält i A med poster och fält i B enligt ett villkor INNER JOIN: endast poster som matchar varandra kombineras OUTER JOIN: samtliga poster från den ena tabellen plus matchande poster från den andra tabellen

INNER JOIN SELECT * FROM låntagare INNER JOIN lån ON låntagare.kortnr = lån.kortnr WHERE datum >= #2006-02-01#

LEFT OUTER JOIN SELECT * FROM titles LEFT JOIN publishers ON titles.pub_id = publishers.pub_id Denna konstruktion garanterar att poster tas med från titles även där pub_id = NULL

Datamodellering All beskrivning av verkligheten sker genom att identifiera objekt, egenskaper hos objekt och relationer mellan objekt.

Lästips Unified Modeling Language (UML) Hidefjäll, M. & Axelsson, L. (1993). Praktisk datamodellering – ta greppet om begreppen.

Databasdesign Konceptuell design: vad skall jag beskriva, vilka objekt finns, hur är de relaterade till varandra Logisk design: tabeller, relationer Fysisk design: anpassning för det konkreta DBMS:et

Konceptuell design Låntagardatabas – situationsbeskrivning Låntagare 1 utför n n Böcker 1 består av

Konceptuell design Bok: författare, titel, isbn, hyllplacering Låntagare: förnamn, efternamn, telefon, adress, kortnr Lån: isbn, kortnr, datum

Relationstyper 1:1-relationer (binära relationer) 1:N-relationer person - låntagare 1:N-relationer låntagare - lån N:N-relationer låntagare - bok

Relationsintegritet Entitetsintegritet: en primärnyckel kan inte ha värdet NULL Referensintegritet: om en främmande nyckel finns i en tabell måste motsvarande värde existera i den relaterade tabellen

Relationsintegritet låntagare PK kortnr efternamn förnamn telefon lån FK kortnr bok datum

Logisk design låntagare PK kortnr efternamn förnamn telefon lån FK isbn datum bok PK isbn titel författare

Normalisering En process som delar upp enskilda tabeller i flera tabeller för att undvika upprepningar (redundans) av data

Första normalformen (1NF) Data med multipla värden per objekt tilldelas egen tabell kortnr namn bok datum 012 Lars Svensson 0-123-45678-9 20030628 1-234-56789-0 236 Malin Bergkvist 2-345-67890-1 20030804 3-456-78901-2

Andra normalformen (2NF) Attribut som inte är funktionellt beroende av hela primärnyckeln placeras i egen tabell lån FK, PK kortnr isbn titel författare PK datum bok PK isbn titel författare

Tredje normalformen (3 NF) Attribut som är funktionellt beroende av andra attribut, vilka inte är nycklar, placeras i egen tabell person PK person_id förnamn efternamn postnr postort

Fysisk design låntagare PK kortnr Tal NOT NULL Efternamn Text (40) Förnamn Telefon Text (20) NULL