210 likes | 336 Views
Intro. Større applikationer, f. eks: Bogpris.dk. Nye bøger. Transaktioner. Forelæsning nr 9 Designprocedure og konstruktion Søge i en database Eks. Gymnastikforeningen Simple søgninger Avancerede søgninger Agregerede udtryk Manipulere data Indsætte data Næste uges opgave.
E N D
Intro Større applikationer, f. eks: Bogpris.dk
Transaktioner Forelæsning nr 9 • Designprocedure og konstruktion • Søge i en database • Eks. Gymnastikforeningen • Simple søgninger • Avancerede søgninger • Agregerede udtryk • Manipulere data • Indsætte data • Næste uges opgave
Designprocedure og konstruktion 3-tier model: • Databaselag • Forretningslag • Præsentationslag Eksempel på designprocedure: Modellering af database Formulere mulige transaktioner Designe applikation () Konstruktion
Gymnastikforeningen - igen gf_kurserkursus_idkursusnavn gf_personerperson_idemailnavntilknytning gf_kursusansvarkursus_idperson_idperiode
Simpel WHERE-sætning Hvilke trænere findes der i gymnastikforeningen? SELECT navn FROM gf_personer WHERE tilknytning = 'Træner'
Simpel WHERE-sætning Hvilken emailadresse har Dorte Didriksen? SELECT email FROM gf_personer WHERE navn = 'Dorte Didriksen'
Wildcard Hvad er Bennys fulde navn? SELECT navn FROM gf_personer WHERE navn LIKE 'Benny%'
Joins kursusnavn = ’Dansegymnastik’ navn = ’Anders%’
Join I hvilken periode har Anders ansvaret for gymnastikkurset ''Dansegymnastik"? SELECT gf_kursusansvar.periodeFROM gf_kurser, gf_personer, gf_kursusansvarWHERE gf_kurser.kursusnavn = 'Dansegymnastik'AND gf_kurser.kursus_id = gf_kursusansvar.kursus_idAND gf_personer.navn LIKE 'Anders%'
Join Hvem er kursusansvarlig(e) for "Far, mor & børn"-kurser;SELECT gf_personer.navnFROM gf_kurser, gf_personer, gf_kursusansvarWHERE gf_personer.person_id = gf_kursusansvar.person_id AND gf_kurser.kursus_id = gf_kursusansvar.kursus_idANDgf_kurser.kursusnavn = "Far, mor & børn"
Join (fra sidste uges opgave;)SELECT gf_kurser.kursus_id, gf_kurser.kursusnavn, gf_personer.navn AS ansvarligFROM gf_kurser, gf_personer, gf_kursusansvar WHERE (gf_kurser.kursus_id = gf_kursusansvar.kursus_id AND gf_personer.person_id = gf_kursusansvar.person_id AND periode = 'F2003')
Join med WHERE I hvilken periode har Anders ansvaret for gymnastikkurset ''Dansegymnastik"? SELECT gf_kursusansvar.periodeFROM gf_kurser, gf_personer, gf_kursusansvarWHERE gf_kurser.kursusnavn = 'Dansegymnastik'AND gf_kurser.kursus_id = gf_kursusansvar.kursus_id AND gf_kursusansvar.person_id =gf_personer.person_id AND gf_personer.navn LIKE 'Anders%' Joining de tre tabeller gf_kurser, gf_personer og gf_kursusansvar
Join med JOIN- syntaks • http://www.mysql.com/doc/en/JOIN.html
JOIN-syntaks SELECT gf_kursusansvar.periode FROM gf_kursusansvar AS ansvar JOIN gf_kurser ON gf_kursusansvar.kursus_id= gf_kurser.kursus_id JOIN gf_personer ON gf_personer.person_id = gf_kursusansvar.person_id WHEREgf_kurser.kursusnavn = 'Dansegymnastik‘ ANDgf_personer.navn LIKE 'Anders%'
Aggregerede udtræk • COUNT(Fieldname) • SUM(Fieldname) • MIN(Fieldname) • MAX(Fieldname) Tæller, lægger sammen, finder mindste og største Forudsætter anvendelsen af GROUP BY-kommando
Manipulere data Rediger Dortes navn: Update gf_personer SET navn = 'Dorte Degn' WHERE navn LIKE 'Dorte%' Overvej nøje hvad du redigerer i!!
Indsætte data Indsæt nye kurser: INSERT INTO gf_kurser (kursusnavn) VALUES(’Spring'),(’Puls’)
Datatyper TINYINT[(length)] [UNSIGNED] [ZEROFILL]SMALLINT[(length)] [UNSIGNED] [ZEROFILL]MEDIUMINT[(length)] [UNSIGNED] [ZEROFILL]INT[(length)] [UNSIGNED] [ZEROFILL]INTEGER[(length)] [UNSIGNED] [ZEROFILL]BIGINT[(length)] [UNSIGNED] [ZEROFILL]REAL[(length,decimals)] [UNSIGNED] [ZEROFILL]DOUBLE[(length,decimals)] [UNSIGNED] [ZEROFILL]FLOAT[(length,decimals)] [UNSIGNED] [ZEROFILL]DECIMAL(length,decimals) [UNSIGNED] [ZEROFILL]NUMERIC(length,decimals) [UNSIGNED] [ZEROFILL]CHAR(length) [BINARY] VARCHAR(length) [BINARY]DATETIMETIMESTAMPDATETIMETINYBLOBBLOBMEDIUMBLOBLONGBLOBTINYTEXTTEXTMEDIUMTEXTLONGTEXTENUM(value1,value2,value3,...)SET(value1,value2,value3,...)
ACID ACID står for Atomacy – en transaktion er enten fuldt udført eller slet ikke udført. Consistency – transaktioner sender databasen fra en legal tilstand til en anden legal tilstand. Isolation – transaktion er usynlig for andre transaktioner indtil transaktionen er komplet. Durability – komplette transaktioner overlever fremtidige systemcrash.
Anvendelsen af HTML-formvariabler HTML-formvariabler findes i to typer <form method=”post” action=”receivingscript.php”> eller <form method=”get” action=”receivingscript.php”> HTML-formvariabler kommre fra HTML-formelementer <input type=”text” name=”formvariabelnavn” value=”formvariabelværdi“> - men lige så vel fra a- elementer: <a href=”receivingscript.php?formvariabelnavn=formvariabelværdi”> - eller endda <form method=”post” action=”receivingscript.php?formvariabelnavn=formvariabelværdi”> - eller rettere <input type=”hidden” name=”formvariabelnavn” value=”formvariabelværdi“>