Datamodellering/database

Slides:



Advertisements
Liknende presentasjoner
Ny ordlyd på rapportene i avdelingen og nye rutiner for registrering av skyteaktiviteter For nye brukere: Du må først være registrert med en e-postadresse.
Advertisements

Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Hvordan skrive en vitenskapelig artikkel?
SuperOffice - Visma Global ERP link - Tilbud/Ordre SuperOffice - Visma Global integrasjonen består av 3 produkter. ERP link SuperOffice - Visma Global.
Hvordan etablere nettbutikk med GoOnline Commerce
GoOnline publisering Hvordan komme i gang med GoOnline. Denne presentasjonen tar deg steg for steg gjennom oppsett av nettsted med bruk av GoOnline Proffesional.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
“UNDER THE KNIFE” Et planleggingssystem for operasjonsavdelingen Fylkessykehuset i Molde Prototype for planlegging, logistikk, og kostnads estimering.
Elektroniske verktøy Diakonhjemmet nov 2011.
Kontoinnstillinger Slik kommer du til «Kontoinnstillinger»:
Veiledning i gevinstrealisering ved innføring av elektronisk handel
HVA ER ?.
Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook.
Dokumenter og arkivering
Kap 01 Generelt om databaser
Kap 02 Relasjonsdatabaser
Organisasjonenes behov for informasjonsteknologi
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
Dagens tema : Teori - Databaser
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
- du trenger ingen annen!
Hva gjør et operativsystem?
Hva trenger jeg av data, og hvordan skal jeg innhente disse?
Databaseteori.
IS-102 Klassedefinisjoner
Kryptografi og nettverkssikkerhet
Kompetansekatalog – UiO. Foreslåtte grunnprinsipp: Enkel modell Koblet til andre databaser på nettet Muligheter til utvidelse og videreutvikling.
Databasehåndtering med MySQL
Eksempel AOA (Activity On Arc)
Prototyping In 140 Sommerville kap. 8. Mål Forstå hensikten med prototyping i forskjellige utviklingsprosjekt Forstå forskjellen mellom evolusjonær og.
LocMoc : Avatar 3D – Visualisering av menneskelige bevegelser ved bruk av Java og Coin3D. En presentasjon av: Øivind Hoff Johansen og Jon Kåre Sørensen.
In 135 Datamodellering og databaser Introduksjon, Enkeltentiteten, Informasjon Ola Bø.
Om øvelse 9 Vedlikehold av data Databaser. Øvelse 9 I øvelse 8 så vi på: –Registrering av informasjon om hjelpere To små utvidelser av øvelse 8: –Endring.
1 Kap 02 Relasjonsdatabaser. Data-organisering - Manuelt Ansatte Pasienter Utstyr Økonomi Avdelinger RøntgenOnkologisk.
Kirsten Ribu - Webpublisering - HiO Javascript. Mer om layout Kirsten Ribu
Webpublisering - HiO - Kirsten Ribu Mer om stiler og stilark. Layout. Litt Design Webpublisering
Elektroniske verktøy Diakonhjemmet nov Verktøyene Disse verktøyene blir brukt på Diakonhjemmet Epost PPS NEL Studentweb Its learning.
Elektroniske verktøy Diakonhjemmet august Verktøyene Disse verktøyene blir brukt på ditt studium Epost Studentweb Its learning.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
HØGSKOLEN I AGDER Agder University College © Bjørn Olav Hogstad, HiA, 2002 HØGSKOLEN I AGDER Agder University College Word - maler 1 DAT100 TEMA: Maler.
HØGSKOLEN I AGDER Agder University College © Bjørn Olav Hogstad, HiA, 2002 HØGSKOLEN I AGDER Agder University College Word – sammensatte dokumenter 1 DAT100.
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Nytt kursadministrasjonsverktøy. Internettsidene for potensiell deltager.
1 Arrayer og form(ularer) (Kapittel 4). 2 Mål  Forstå assosiative og superglobale arrays  Kunne behandle webformularer (forms)  Kjenne forskjellen.
Structured Query Language Kræsj-kurs
Publisering på verdensveven Kursdag 1 VÅFF, våren 2002.
Skjema/Forms HTML II IT og læring 2/20 november 2001.
ER-modellen, notasjon ENTITETS- Attributter TYPE Relasjon
Eksempel på SQL ”SQL-setninger” har en struktur som likner på ”naturlig språk”, med ”verb, subjekter og adjektiver”. SQL-setningene begynner alltid med.
DATABASE: Oppgave 2 et medlemsregister for en idrettsklubb med flere idrettsgrener (fotball, håndball, osv). klubben ønsker å lagre informasjon om medlemmenes.
Introduksjon I126 Databaser og datamodellering Høsten 2000 Institutt for informatikk Universitet i Bergen.
ESøknad - Et webbasert system for elektronisk innlevering av søknader om forskningsmidler Kort presentasjon av systemet beregnet på prosjektledere/forskere.
Konfigurasjonsstyring Configuration Management
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Spørsmål og aktiviteter på ulike nivåer
Hvorfor Katalog Harald Tveit Alvestrand
Brukerinformasjon på Internett Hovedoppgave for Erlend Grut Hilstad, 2HKI.
Se ellers læreboka, kap , side
11. Balancing technology with people’s needs Bruk av teknologi.
Om personopplysningslovens betydning for systemutvikling Dag Wiese Schartum, Avdeling for forvaltningsinformatikk (AFIN), UiO.
Objektorientert utforming In 140 Sommerville kap. 12.
Web-grensesnitt Øyvind A. Bratne - April 2004.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Klasse: 2HKI Student: Bertil Gjerstad Oppgnr: 25E
Grunnleggende begreper i personopplysningsloven (legaldefinisjoner)
Konstruksjon og Testing Torsdag 30. september 2004 Av Even Aasland Harald Ueland.
2003 Ontopia AS1 Tanker om standarder for e-læring Emnekart og published subjects Lars Marius Garshol, utviklingsleder Ontopia,
Om personopplysningslovens betydning for systemutvikling -grunnkrav Dag Wiese Schartum, Avdeling for forvaltningsinformatikk, AFIN.
Datakortet – Modul 3 Word 2003, Kap Modul 3.
Utskrift av presentasjonen:

Datamodellering/database Forelesningsnotater basert på læreboka: ’Innføring i informasjonsteknologi’ Litterarurreferanse: Kjos, B.: Innføring i Informasjonsteknologi, 4 Utgave, Kap. 8

Datamodeller - database Forelesningsnotater basert på læreboka: ’Innføring i informasjonsteknologi’ Student studentnr: 010899 Tar fag fagnr: dat100 Fag fagnr: dat100 Litterarurreferanse: Kjos, B.: Innføring i Informasjonsteknologi, 4. Kap.8

Representasjon av informasjon Informasjon i en organisasjon eller bedrift bør være tilgjengelig for de personer som trenger den og på en slik måte at informasjonen er lett tilgjengelig. Bedriftene bør m.a.o. tenke gjennom hva slags informasjonssystem de trenger, hvordan de ønsker at informasjonen skal være representert

Data - Metadata - Informasjon Metadata brukes om data som beskriver andre data, for eksempel hvilken type en verdi er av. Metadata kan også beskrive hvordan en datamengde er strukturert og hvordan verdiene i en datamengde henger sammen. Et informasjonssystem er avhengig av metadata for å kunne håndtere data som informasjon

Metadata Metadata kan deles opp etter hvordan de beskriver tre aspekter ved data: Datatype: tall, tekst, bilder, dato osv. Datanavn: navn, adresser, telfonnr. Stud.nr. osv Datastruktur: hvilke data hører logisk sammen er navn, adresse og telefonnr forbundet på noen måte

Datarepresentasjon Tar fag Student Fag studentnr: heltall, 6 siffer etternavn: tekst, 30 tegn fornavn: tekst, 30 tegn adresse: tekst, 60 tegn studpost: heltall, 3 siffer Tar fag studentnr: heltall 6 siffer fagnr: tekst, 6 tegn Fag fagnr: tekst 6 tegn navn: tekst, 60 tegn Metadata beskriver data og strukturer

Datanavn~mengder/verdier Tar fag studentnr: 010899 fagnr: dat100 Student studentnr: 010899 etternavn: Hansen fornavn: Jens adresse: Storgata 5 studpost: 101 Fag fagnr: dat100 navn: Informasjons- og kommunikasjons- teknologi Grunnkurs Metadata setter data i sammenheng

Lagring av data En stor utfordring for alle informasjons-systemer er lagring av data lagre slik at vi beholder informasjonsverdien lagre slik at vi lett finner informasjonen Metadata spiller en sentral rolle i dette arbeidet ettersom det er metadata som definerer hvordan data skal tolkes og forstås i et informasjonssystem

Databaser Svært vanlig å registrere datamengder i databaser. Databasebetegnelsen blir vanligvis brukt om: samling av data (ikke presis nok) en samling av relatert informasjon data som er lagret på et masselager og kan brukes og sees på flere måter en datakilde for forskjellige deler av et informasjonssystem data som er systematisk ordnet og strukturert

Hva er en database ? En database Data tilhørende person 1 En database inneholder data. I en database kan vi tillegge dataene eierforhold eller tilgangsrettigheter. Typisk for en database er at data deles mellom ulike eiere eller at ulike brukere har tilgang til felles data i tillegg til egne data. En database Data tilhørende person 1 Data tilhørende person 2 Data tilhørende person 3 Delte data

Hva består en database av ? En database kan vi dele i følgende tre hoved-deler: - Selve databasen hvor dataene ligger lagret. - Data Dictionary (System-kataloger) hvor det ligger lagret informasjon om databasens struktur (eierforhold, tilgangsrettigheter, tabeller, relasjoner, …) - DBMS (Database Management System). Dette er program (software) til bruk ved operasjoner (lesing, oppdatering, innsetting, sletting, …) på databasen. Selve databasen med lagrede data Data Dictionary (System-kataloger) med alle nødvendige opplysninger om databasens struktur DBMS - DataBase Management System Database software til operasjoner på databasen

Databaser ~ skjemaer En database integrerer en datamengde som alle deler av et informasjonssystem kan benytte. Hvert delsystem ser bare den datamengden det har behov for Et skjema er en beskrivelse av hele databasestrukturen Et delskjema er beskrivelse av en del av databasestrukturen som er tilgjengelig for en del av informasjonssystemet

Database ~ applikasjonsprogram Et viktig aspekt ved databaser er kontroll med data og spesielt sensitive data (personopplysninger) Vi skiller gjerne mellom database og applikasjonsprogram som vi bruker for å hente ut data fra databasen. En applikasjon som skriver ut lønnsslipp har tilgang til personopplysninger, mens en applikasjon som lister ut beholdning av bestemt varetype ikke har det

Database-system Database Bruker Appl. DBMS Bruker Appl. DD Bruker Til høyre vises databasens tre hoved-deler: Selve dataene, DD (Data Dictionary) og DBMS. Brukere av databasen benytter ulike applikasjons-program ved operasjoner mot databasen. Disse applikasjons-programmene opererer ikke direkte på databasen, men henvender seg til DBMS. DBMS fungerer altså som et slags mellomledd mellom brukernes applikasjons-program og selve dataene i databasen. Database Bruker Appl. DBMS Bruker Appl. DD Bruker Appl.

Ulik tilgang til informasjon Vi regner med at selve databasen er mer stabil enn de applikasjonsprogrammene som bruker databasen. Vi kan med andre ord ha en mengde applikasjonsprogram som henter ut ulik informasjon fra en database. Applikasjonsprogrammene kan sette sammen informasjon på ulike måter: Per Hansen, adressen, postnr og sted Per Hansen, personnr, lønnsplassering, lønn, skattetrekk Per Hansen, arbeidsnr, avdeling, stilling etc

Fleksibilitet Hvis vi lar databasen være mest mulig uavhengig av applikasjonsprogrammene, trenger vi ikke å gjøre endringer i databasen hver gang vi har behov for nye kombinasjoner av opplysninger. Vi kaller dette datauavhengighet og skiller mellom to typer: fysisk datauavhengighet logisk datauavhengighet

Datauavhengighhet Fysisk datauavhengighet: Logisk datauavhengighet mulighet for å endre databasen uten å måtte endre de applikasjonene som bruker basen dette gjøres ved at applikasjonene jobber ’mot’ databasens skjema som viser hvordan databasen er bygd opp konseptuelt, og ikke hvordan den fysisk er bygd opp. Logisk datauavhengighet mulighet for å endre databasens konseptuelle skjema uten å måtte endre applikasjonene som bruker den. Endringer kan være utvidelser eller krymping.

Databaseverktøy Databaseverktøy er en samling programmer som gjør det mulig å lage og vedlikeholde en database. Databaseverktøy gjør det mulig å definere en database (spesifisere metadata for de data som skal lagres: datatyper, navn, strukturer) konstruere en database (legge inn og lagre data i databasen) manipulere en database (spørre etter spesifikke data og oppdatere basen)

Logiske database konstruksjoner Ved bruk av databaseverktøy ser de enkelte programmene den logiske konstruksjonen av databasen, ikke den fysiske. Denne logiske konstruksjonen av databasen kalles en databasemodell. Flere forskjellige databasemodeller (hierarkisk, nettverksmodell, relasjonsmodell) Den dominerende i dag er relasjonsmodellen

Hierarkisk database modell Den hierarkiske modellen gir god oversikt over hvilke biler hver av selgerne har brukt, men er vanskeligere å finne alle selgerne som har brukt en spesiell bil Databasen inneholder opplysninger om selgernr, person, alder,bilnr,biltype,bilnavn og hvor lenge selgeren har brukt den spesielle bilen

Hierarkisk modell - eksempel S1 Hansen 39 B1 Personbil Opel 27 B2 Varebil Ford 33 B3 Varebil Volvo 14 S2 Jensen 26 B4 Personbil Volvo 17 B2 Varebil Ford 11 B3 Varebil Volvo 23 S3 Nilsen 54 B5 Varebil Opel 16 B2 Varebil Ford 12 B4 Personbil Volvo 30

Databasemodeller Relasjonsdatabaser basert på begrepet relasjon viser sammenhenger mellom verdier på ulike datafelt bruker tabeller, som blir omtalt som relasjoner. Relasjonsdatabasen i eksemplet har tre relasjoner: student - tar fag - fag

Relasjonsdatabase - eksempel Tar fag studentnr: 010899 fagnr: dat100 fagnr: dat230 Student studentnr: 010899 etternavn: Hansen fornavn: Jens adresse: Storgata 5 studpost: 101 Fag fagnr: dat100 navn: Informasjons- og kommunikasjons- teknologi Grunnkurs

Tabell - poster En tabell består av kolonner og rader Hver kolonne inneholder bestemt informasjon Kolonnene har et navn som identifiserer hva slags opplysninger kolonnen skal inneholde Hver rad vil være som et ”arkivkort” med opplysninger RAD (en post) KOLONNE (et felt)

Nøkkelfelt For en tabell er det nødvendig å definere en kolonne (eller felt) som skal gi en entydig verdi for hvert ”arkivkort” eller rad (post) Dette for å unngå forveksling av data Som nøkkelfelt kan vi for eksempel bruke: Personnummer (finnes ingen like i hele verden) Bilnummer, telefonnummer, postnummer mv. Pasientnummer (kan være et fortløpende nummer som ikke brukes til mer enn 1 pasient i sykehuset)

Dobbeltlagring av data Det er fort gjort å definere en tabell, slik at vi kan begynne å legge inn opplysninger i databasen Kanskje tenker vi ikke så nøye over hvilke opplysninger vi legger inn og hvordan dette gjøres I tabellen pasienter ser vi at mange pasienter bor på samme Postnummer og Poststed Dette gir oss en dobbeltlagring av informasjon

Oppsplitting av tabeller Vi kan få en entydig adresse til pasientene ved bare å registrere Postnummeret til pasientens adresse Det er en kjent og entydig sammenheng mellom Postnummer og Poststed Da bør vi opprette en ny tabell som inneholder denne oversikten – vi lager en Postnummer-tabell Vi benytter Postnummer som nøkkelfelt, og legger inn aktuelle opplysninger i tabellen

Endring av Pasient-tabellen For å unngå sløsing med plass (et problem i store databaser), skal vi nå endre tabellen over pasienter Det er tilstrekkelig å lagre bare Postnummer Databasen vår består nå av 2 tabeller Vi vet at det er en entydig sammenheng mellom Postnummer i pasient-tabellen, og tilhørende Poststed

Koblinger Det vil være ulike relasjoner mellom data i tabellene To tabeller som inneholder informasjon som henger sammen må kobles til hverandre ved å opprette en relasjon mellom tabellene For å kunne opprette relasjoner, må tabellene ha felter med felles eller identisk informasjon For eksempel kan en tabell med pasientopplysninger ha et felt som heter Postnummer En annet tabell med oversikt over alle poststeder vil også ha et felt som heter Postnummer Vi kan da opprette en relasjon mellom disse tabellene, hvor feltet Postnummer er identisk i begge tabellene

Definere en kobling I database programmet må vi nå definere en kobling mellom de feltene som har samhørende verdier, i dette eksemplet feltene ”Postnummer” Når vi skal vise de aktuelle pasientopplysningene, kan vi også få frem Poststed, selv om dette ligger i en annen tabell enn pasientopplysningene Linjen mellom tabellene viser at det er en kobling som refererer til Postnummer

Oppnådde fordeler Når du lager en tabell, bør hvert felt (kolonne) inneholde unik informasjon I den første tabellen ”Pasienter” hadde feltet Poststed gjentatt den samme informasjon mange ganger. Overflødige data - Redundans Vi opprettet da en ny tabell, hvor det samme postnummer og postssted kun ble lagret én gang Dette medfører mindre behov for lagringsplass Dataregistreringen går raskere Du kan raskt hente frem allerede lagret informasjon Svartider ved bruk av applikasjonen blir raskere

Databaseverktøy - applikasjoner Databaseverktøyet fremstiller databasen som en logisk databasemodell for applikasjonene som benytter basen Databaseverktøyet tilbyr et generelt grensesnitt som applikasjonene bruker for å kommunisere med databasen Standard grensesnitt for relasjonsdatabaser er SQL (Structured Query Language)

Databaseverktøy Vi oppnår lagdeling av informasjonssystemet ved bruk av database verktøy. Brukerne ser data slik de blir presentert av applikasjonene Applikasjonene ser data som en logisk databasemodell Databaseverktøyet har programvare for å tolke og utføre operasjoner samt programvare for å aksessere selve databasen Databaseverktøyet ser data slik de er organiserte på et masselager

Lagdeling Applikasjonene gir definerte brukergrensesnitt Ulike applikasjoner som: Utfører definerte operasjoner Bestemmer tilgang til informasjon Applikasjon Nr 1 Applikasjon Nr 2 Applikasjonene ser data som en logisk modell Programtolker Databaseverktøy Programvare for å tolke og utføre operasjoner Programvare for å aksessere database Database aksess Leser databasen slik den er organisert på disken Lagrede data Database bestående av metadata og informasjon

Separasjon Separasjon av applikasjonene og databasen gjør at vi oppnår begge former for datauavhengighet (fysisk og logisk) En slik separasjon gjør det enkelt for oss å endre applikasjoner, lage nye uten at vi trenger å endre databasen.

Database - informasjonssystemer Utvikling av database inngår gjerne som del av utviklingen av et informasjonssystem. Denne prosessen har flere faser: analyse, konstruksjon og implementasjon I analysefasen må en definere den del av ’verden’ som får konsekvenser av informasjonssystemet. Denne delen kaller vi miniverden Deretter identifiserer vi de dataelementene og deres struktur og betydning i systemets miniverden

Analysefasen I analysefasen må vi ta tak i de krav som har relevans for utvikling av databasen Kravene organiserer vi i to grupper. Databasekrav : hvilke data må informasjonssystemet kunne lagre i databasen Funksjonelle krav: hvilke operasjoner ønsker informasjonssystemet å gjøre mot databasen

Konstruksjonsfasen I konstruksjonsfasen jobber vi med kravene fra analysefasen og utvikler en konseptuell konstruksjon av databasen som vi kaller en datamodell. Vi kaller dette datamodellering og bruker gjerne et datamodelleringsspråk

Datamodell Datamodellen er en klar beskrivelse av databasekravene og inkluderer detaljerte beskrivelser av dataenes typer, begrensninger og innbyrdes relasjoner Inneholder ingen detaljer rundt selve implementeringen Skal være lett å forstå - også for teknisk ukyndige

Implementasjon Når datamodellen er klar, kommer implementeringsfasen. Første ledd er å overføre den konseptuelle datamodellen til en databasemodell (den logiske modellen av databasen som databaseverktøyet presenterer for applikasjonene i informasjonssystemet)

Datamodeller Datamodeller er et godt hjelpemiddel for å konstruere databaser. De gjør det mulig entydig å diskutere forslag til databasens struktur, samt verifisere de krav som ble stilt i analysefasen Gir oversikt slik at databasen blir mest mulig konsistent og hindrer redundans (dobbeltlagring)

Fordeler med databaser Det er mange fordeler med å opprette databaser for å samle informasjon av ulike typer Du kan få en samlet oversikt over informasjon Informasjonen kan deles av flere personer Den gir rask registrering av data og unngår dobbeltlagring Lagringsbehovet blir optimalt, og tilgangen til data sikres Enkelt å vedlikeholde opplysninger Du kan tilrettelegge ulike skjemaer som samler viktig informasjon for brukeren (skreddersydd brukergrensesnitt) Du kan lage gode rapporter med nødvendig oversikt