In 135 Datamodellering og databaser Introduksjon, Enkeltentiteten, Informasjon Ola Bø
Introduksjon databaser Hva er en database? Samlingen av all informasjon i en organisasjon Hvorfor bruke et databasehåndteringssystem? Få alt samlet på ett sted Pålitelig lagring og sentral sikkerhetskopiering Effektiv systemutvikling (søke opp og sortere et utvalg fra 10000 poster med en setning) Integrasjonsmuligheter Hvorfor ikke bruke bruke et dbhs Kostnader Ved enkle lagringsbehov kan dbhs være overkill
Introduksjon databasekurset Hjemmeside Oppstartsaktiviteter Gruppedannelse (2-personsgrupper) Melding på e-postlister Hva lærer du i dette kurset? Programvare Arbeidskrav Hjelpelærere Eksamen
Hva lærer du i dette kurset SQL Spørringer Oppretting, sletting og endring av tabeller Programmert SQL Datamodellering Normalisering Annet Informasjon i bedriften Flerbrukerproblemer Under panseret Trender: Objektorientering, Web, XML, Etterretning Data -integritet og -administrasjon
Arbeidskrav Obligatoriske oppgaver (7) En gruppe består av to personer Alle oppgavene må være godkjent for å få gå opp til eksamen En besvarelse består typisk av: Et script som kan kjøres i Oracle SQL Plus uten feilmeldinger En tekstfil som inneholder output når scriptet utføres Eventuelt en tekstfil med svar på spørsmål Eventuelt en mr4 fil med output fra modellator Besvarelsen sendes til gruppas hjelpelærer senest kl 2400 på angitt dato. Husk å oppgi hvem som er med på gruppa. Har dere en god grunn kan det være mulig å få utsatt innlevering etter søknad til faglærer Besvarelsen må være godkjent senest ved frist for neste obligatoriske oppgave
Hjelpelærere Martin Stige Tarjei Skorgenes Ola Bø Hjelpelærertid Man 16-18, Tirs 10-12, Ons 10-12 Grupper: 1, 4, 7, 10, 13, 15, 17, 19 Tarjei Skorgenes Hjelpelærertid Tors 16-18, Fre 12-15 Grupper: 2, 5, 8, 11, 14, 16, 18, 20 Ola Bø Rom 146, Man-Ons 9-15 Grupper: 3, 6, 9, 12
Eksamen Dato: 4.6. Varighet Innhold fra alle deler av pensum, men garantert: SQL og Datamodellering Hjelpemidler
Relasjonsmodellen Vanligste teknologi for lagring av større datamengder Introdusert av Codd i 1970 Definisjoner: Relasjon: En relasjon er en todimensjonal tabell organisert i rader og kolonner Relasjonsdatabase: En samling av relasjoner Primærnøkkel: en verdi som kan brukes for å identifisere en bestemt rad i en tabell
Studentnr Navn Studiepoeng 212 Per Hansen 45 244 Anne Olsen 48 319 12 Relasjon(Tabell) Kolonne Studentnr Navn Studiepoeng 212 Per Hansen 45 244 Anne Olsen 48 319 12 Post(Rad) Felt Verdi
Relasjonsmodellen Tabellene (relasjonene) i en relasjonsdatabase kan knyttes (bindes, kobles) sammen ved hjelp av data i tabellene. Bindingen skjer ved hjelp av et par av verdier fra de to tabellene henholdsvis primærnøkkel og fremmednøkkel Relasjonsmodellen tillater bearbeiding av flere poster samtidig ved hjelp av et strukturert spørrespråk SQL
Relasjonsmodellen Forenkler databasekonstruksjon fordi det ikke er nødvendig å kjenne detaljer i fysisk lagerstruktur Å konstruere en relasjonsdatabase kaller vi datamodellering. Datamodellering er en teknikk der vi lager en datamodell, som avspeiler virkeligheten.
NB! Entall med store bokstaver Entiteter En entitet er noe i den virkelige verden Bil, Malingsspann, Kurs, Kontrakt, Person, Ekteskap, Obligatorisk oppgave Kan være fysisk eller konseptuell AKSJE NB! Entall med store bokstaver
Attributter Attributtene beskriver entiteten og er data som vi vil lagre Attributter til en person: personnr, navn, adresse, fødselsdato AKSJE aksjekode aksjenavn aksjepris aksjeantall aksjeutbytte aksje PE
Instans Et bestemt eksemplar av en entitet Nøyaktig indentifisering er nødvendig ”Send Berg en regning på kr 1000” er tvetydig i Molde Kundenummer gir entydig identifisering. Kundenummer er da en identifikator Identifikator indikeres med *
Oversette fra datamodell til relasjonsdatabase Oversetting Hver entitet blir en tabell Entitetsnavnet blir tabellnavn Hver attributt blir en kolonne Identifikatoren blir primærnøkkel Å lage relasjonsdatabasen: Bruke SQL’s CREATE-setning Kan gjøres mer lettvint Men CREATE er standard!
Oversette fra datamodell til relasjonsdatabase CREATE TABLE AKSJE ( AKSJEKODE CHAR(4) NOT NULL, AKSJENAVN CHAR(20), AKSJEPRIS DECIMAL(2,6), AKSJEANTALL DECIMAL (8), AKSJEUTBYTTE DECIMAL (5,2), AKSJEPE DECIMAL(2), PRIMARY KEY (AKSJEKODE) ) AKSJE *aksjekode aksjenavn aksjepris aksjeantall aksjeutbytte aksje PE