Databaser Design och programmering, IDA Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp Kursöversikt Teori och praktik Fö och bok lektioner, labbar i projekt (3,5hp=100h) Ändringar från förra året Examination (tenta, projekt) Datum för inlämningar/demo se kurshemsidan. Projektet Varför databaser? Analysera data om studenter Varför ni? Finns det samband mellan antagningspoäng och hur många poäng man tar vid högskolan? Skiljer det sig för obligatoriska kurser och valbara? Skiljer det sig för olika program? Dataomvandling med Java, analys i SAS Varför överhuvudtaget? Vaddå enklare? Exempel: telefonbok Telefonbok, forts I Java: class person implements serializable { private String name: private int telnr;... public int gettelnr()...... for (i=0; i<plist.size() ;i++)... int tnr= gettelnr(); Med databasspråket SQL: Skapa databasen create table person ( name varchar(20), telnr int); Lägga in data: insert into person values ( Anna, 234456) Söka Annas telefonnummer: select telnr from person where namn='anna';
Telefonbok, forts SQL: För att ändra: alter table person modify telnr varchar(12); För snabbare sökning: index create index nrindex on person(telnr); Logiskt och fysiskt dataoberoende Tillgänglighet, säkerhet Namn Adress Telefon Betyg Klar Anna Andersson Studentv 23 1234456 G J Oskar Oskarsson Rydsv 987 77656565 - N Namn Adress Telefon Anna Andersson Studentv 23 1234456 Oskar Oskarsson Rydsv 987 77656565 Databas En databas är en samling data som: Har med varandra att göra Representerar (modellerar) en del av verkligheten för ett specifikt ändamål Är beständig (finns kvar) Har en strikt struktur som beskrivs i ett schema Inte innehåller motsägelser Lagras på dator Databashanteringssystem DBHS (DBMS) Ett programsystem som Hanterar flera databaser enligt en datamodell med hjälp av ett databasspråk Kan anropas från applikationsprogram Hantera databaser Skapa nya databaser Manipulera data (lägga till, ta bort, läsa ut) Säkerhet, åtkomst enskilt och samtidigt Säkerhet, återställning vid krasch Kontrollera korrekthet (integritet) Hantera databasen: Databasintegritet Informationen i en databas måste vara korrekt Rätt typ och rätt struktur, ett av en mängd Värden som måste fyllas i Överensstämmelse med andra värden Korrekthetsvillkor i db: integritetsvillkor Formuleras av db-administratören mha olika mekanismer i DBHS
Datamodell Hur vi ser världen Olika nivåer: Konceptuell (begreppsmässig) modell Representationsmodell (implementationsmodell) Fysisk datamodell Representationsmodeller Datamodell Hur vi ser världen Relationsmodellen Olika nivåer: Hierarkisk modell Konceptuell (begreppsmässig) modell Nätverksbaserad Representationsmodell (implementationsmodell) Objektorienterad Fysisk datamodell Student Namn Adress Annan123 Anna Andersson Rydsv 234 Ollol345 Olle Olsson Kurs Databasen och dess beskrivning 729G68 Instans = den samling data som finns i databasen vid en viss tidpunkt. Schema=beskrivning av databasen enligt någon datamodell. Förändras sällan. Instansen måste följa schemat. Schemat lagras i databasen Storgatan 1 732G16 Kurskod Namn Läsår Poäng 729G68 Databaser 7.5 732G16 Databaser 7.5 Introduktion till PBL Instans och schema Kurs TTIT03 Relationsmodellen Epost 2
Metadata data om data Schemat är metadata Information om hur och var data lagras Struktur, organisation Tillgänglighet Användningsstatistik Metadata exempel på användning Användare: Vilken information finns i databasen Kostnaden för att ta fram info Y Databasadministratören: Hur mycket utnyttjas olika delar? Vilka svarstider har vanliga frågor? Har någon försökt knäcka säkerheten? Behövs optimering? Databasspråk Klass av språk som används mot databaser Databeskrivningsspråk (DDL) Datamanipuleringsspråk (DML) Databasspråk: DDL Används av databasadministratören för att utforma databasen (designa), och vid behov modifiera den efter driftsättning Värdspråk Databasspråk: DML Används av databasanvändarna och applikationsprogrammerare för att manipulera data: Hämta Lägga till Ta bort Förändra Databasspråk: Exempel: sql Create table person (pnr varchar(10) not null, namn varchar(30), adress varchar (30), primary key(pnr)) Update person set adress 'Studentvägen 10' where pnr='7012120123' Select namn from person where pnr='7012120123'
Applikationsprogram Specialiserade program som gör användningen av databasen enklare för slutanvändare Specifik användargrupp och specifikt användningsområde Ex resebyråns flygplansbokning Fördelar med databasteknik Självbeskrivnande Dataoberoende Stöder multipla vyer Säkerhetssystem (integritet, tillgänglighet, loggning) Stöder och reglerar samtidig användning Motverkar redundans Nackdelar med databasteknik DBMS tar stor plats Overhead ger längre svarstider Ibland krångligt att lära sig hantera När ska man inte använda DBMS Små mängder data Enstaka användning av data som sedan blir föråldrat/förkastat Enkel användning som aldrig ändras Om systemet måste ta liten plats Om systemet måste garantera korta svarstider (processövervakning etc) Summering Databas databashanterare, dataoberoende databasintegritet datamodell (3 nivåer) ER-modell, relationsmodell Instans vs schema, Metadata Databasspråk, DDL, DML, SQL Applikationsprogram