Videregående databasetemaer

Slides:



Advertisements
Liknende presentasjoner
Kjøpte produkter - Rabatter - Budsjett 3 moduler som er integrert i SuperOffice Påfølgende bilder vil vise en enkel forklaring og noen skjermdumper om.
Advertisements

Support, nye funksjoner og tjenester fra Uni Pluss
Tabeller av objekter Klassen ArrayList
Design av sikre web-applikasjoner
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
Ncg | group om |navigator™ xlforecast™
Er standarder en betingelse for godt evalueringsarbeid? Foredrag på EVA-seminar 8 Hurdalsjøen 5-6 september 2002 Hans Torvatn, SINTEF Teknologiledelse.
Brukermanual for NROFs lokalavdelinger©
Nyhetsfôring med RSS ALEPH brukermøte 2006
Programmering i ActionScript - hva er det, og hvordan undervise?
Høgskolen i Oslo Webprogrammering SQL og databaser del 3.
LC238D Datamodellering og databaser Introduksjon til fagfeltet Else Lervik, august 2012Forelesning 1, uke 34 Datafilerside.
Kapittel 6 Data Backup Service. Tradisjonell arkitektur •Mange klienter •En server (evt. et cluster) •Klientene tar backup m jevne mellomrom •Inkrementell.
Sikkerhet - bakgrunn og introduksjon til kryptosystemer
MS kap 61 Nye trender  Vi skal se på  Virtualisering  ”Cloud computing”
Programmering av dynamiske websider i C# - hva er det, og hvordan undervise? Tom Heine Nätt.
IS-102 Klassedefinisjoner
Java Server Faces (JSF) en introduksjon Frode Eika Sandnes.
Databasehåndtering med MySQL
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Kompleksitetsanalyse
1 Innføring i IDS (Intrusion Detection System) Som en enkel start på forskjellige måter å oppdage inntrengere på, skal vi se på en variant av dette som.
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.
Sqlite Et lite eksempel på en SQL- database. SQL kan startes på ulike måter Kommandolinjeversjon or Windows –Programmet må innstalleres Hentes fra
© UNIVERSITETETS SENTER FOR INFORMASJONSTEKNOLOGI UNIVERSITETET I OSLO USIT Side 1 HOUSTON Planene fremover.
Empiriske metoder Oppgaveanalyse, observasjon
Løsning hos RSH Norge En gjennomgang av løsning hos Reitan Servicehandel Norge Edvard Gundersen – ProfitBase AS Løsningsarkitekt.
Rune Log Senior Konsulent, Ergogroup
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Testing av system Gruppe 6 Henrik Bækhus Morten A. Iversen Mathias Bondeson Gunnar K. Kulleseid Svein Ivar Kristiansen Ronny Hulthin.
NEWS Et uvurdelig hjelpemiddel i hverdagen. Hva skal vi gjennom i dag Hva er news? Hva brukes news til? Programmer og grupper Noen ord og uttrykk Noen.
Flash og ActionScript - Nye muligheter Jostein Nordengen.
Livet etter Frontpage og Access Tom Heine Nätt. Agenda Frontpage Hvorfor bytte? Krav til et webutviklingsverktøy Alternative webutviklingsverktøy Dreamweaver.
Structured Query Language Kræsj-kurs
Publisering på verdensveven Kursdag 3 VÅFF, våren 2002.
Dynamiske nettsider PHP Del 4 – Eksterne datakilder.
Oblig 2: The Candy-community. Om XML, XSLT, Sablotron og HTML.
PARLAY/OSA Referanser: Referanser Foredraget er i all hovedsak basert på to artikler. Disse kan finnes på:
Andre funksjoner. Her kommer en beskrivelse av søkefunksjoner, knapper og annen funksjonalitet. 2.
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
Konfigurasjonsstyring Configuration Management
The Peer-to-Peer Architecture Av Ingunn Lund og Anja Lønningen.
INF 4130 Eksamen 2008 Gjennomgang.
Eziz Annagurban Veiledere: Sven-Olai Høyland Carsten Helgesen
Skjemaendringer i systemer bestående av XML-data i relasjonsdatabaser Høgskolen i Gjøvik Master i Medieteknikk, Marianne Brattrud.
Innsamling av ekstremt sensitive data til forskning
Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.
Kontinuerlig kvalitetskontroll. Hvordan komme helt i mål.
1 Kap. 17 – Interactive computing How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen, Universitetet.
BUCS Utfordringer og valg av fokus Tor Stålhane. Rammebetingelser Første spørreundersøkelse viser at det vi gjør må kunne: Brukes sammen med UML Passe.
11. Balancing technology with people’s needs Bruk av teknologi.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Disaster Preparation/Recovery Solutions and Messaging Backup/Restore Exchange server 2003.
1 Kap. 17 – Interactive computing How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen, Universitetet.
Objektorientert utforming In 140 Sommerville kap. 12.
Forelesning 1 – WMP - Introduksjon/HTML - Tom Heine Nätt.
Opplæring: Pålogging Prosedyre for logge på og av, låse og åpne PC’er DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore.
Helseinformatikk Øving 2. Studie av modeller GLIF –Protégé GEM – GEM Cutter.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Protokoller Pensum: Olsen, kap. 5 og 6. Kommunikasjonsprotokoll Rutiner for å administrere og kontrollere oversending av data Telefonsamtale (”Hallo”,
1 Kap. 57 – Cloud Computing How Information Technology Is Conquering the World: Workplace, Private Life, and Society Professor Kai A. Olsen, Universitetet.
HUMIT1731 Hypermedier Introduksjon til XSL Transformation (XSLT)
Objektorientert design In 140 Sommerville kap 12 – del 1.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
IN 265 Våren 2003 : Forelesning : Design av arkitektur og komponent 1 IN250 – Om komponent design Mål for forelesningen: l Se på prinsipper.
Datakortet – Modul 3 Word 2003, Kap Modul 3.
Nye trender Vi skal se på Virtualisering ”Cloud computing”
Dybdelæring – regneark B – Samarbeid
Utskrift av presentasjonen:

Videregående databasetemaer Tom Heine Nätt

Plan Databasedrifting Databases oppbygning Sikkerhet Databases oppbygning Distribuerte databasesystemer Eksempel: Google Applikasjonsutvikling mot databaser Triggere /Lagrede prosedyrer XML-databaser Mellomvare Datavarehus SQL2/3 Deduktive databaser Kurset "Databaseadministrasjon og –systemer" -> DAS

Databaseadministrasjon

Databaseadministrasjon Flere jobber: Opprette DB Opprette brukere Sette rettigheter Sette indekser Osv. Inneholder også databasedrifting Backup Logging

Brukeradministrasjon 2 aspekter! Hvem skal få koble til, hvordan og hvor fra? Autentisering Hva skal de få gjøre? Privilegier

Rettigheter En bruker identifieres med brukernavn og host F.eks tomhnatt@localhost, tomhnatt@58.36.132.145, tomhnatt@’%’, tomhnatt@’%.hiof.no’ SQLServer (mf.) har også andre Authentication Modes Windows Login / Active directory , Kerberos osv. Vi kan styre rettigheter på Bruker Mye ekstra ( antall spørringer i timen etc) DB Tabell Kolonne

Backup Ikke bare ved systemkræsj: I hovedsak 2(3) måter: Finne endringer i data Flytte databaser Ta vare på data over tid (nye regnskapsår) I hovedsak 2(3) måter: Full Inkrementell Diffrensiell

Backup - Problemer Viktig å ha et backupscheme (plan) Backuprotasjon Å ta backup av systemer som er kontinuerlig i bruk… Transaksjoner Låsing DBMS fikser som oftest dette selv… Om natta/lunsjen osv.. Rettigheter på backupen? Hvor skal vi plassere backupen? Tabell i DB Fil på maskin Andre medier Plassproblem

Logging Hvilken hensikt er det å utføre logging: Oppdage feil Oppdage ”angrep” Bevis for hvem som har gjort hva Historikk Bruksmønster Rollback Pass godt på loggfilene! Inneholder i tilegg til data også hvem og når!

Sikkerhet

Hvorfor sikkerhet rundt data? Bedriftens største verdi? Data(base)sikkerhet er ITbransjens største utfordring… Lett å stjele Uten spor Utenifra Utpressingsmiddel Hackers inntekstkilde FÅ har nok forståelse for å se risikoen ”Vi har jo innlogging” Data er sikrest når ingen bruker/får tak i dem. Balansegang Viktig å ikke bli paranoid, men…

Trussler Hva vil vi unngå? Hva er verst? Interruption (avbrytning) Interception (avlyttning) Modification (endring) Fabrication (fabrikering) Hva er verst? Husk at alt er ikke ondsinnet.. Klassifiseres i: Aktive og passive angrep

Sikkerhet i mange forbindelser Lagring av data Backup Innlogging Rettigheter Logging DBMS Nettet Applikasjoner (Brukerprogrammer) Fysiske omgivelser Svakeste leddet…

En databases oppbygning

EN DBMS er ikke én ting Består av mange komponenter Kan ha tilleggsmoduler Mange elementer går igjen hos ulike DBMSer

Forenklet oppbygning Query processor Authorization control Integrity checker Query optimizer Transaction manager Scheduler Recovery manager Buffer manager File manager Sjekker at spørring er OK Sjekker at bruker har rettigheter Sjekker at det er trygt å utføre spørringen Gjør spørringen raskere/bedre Setter inn delene av spørringen i en sammenheng Når kan vi få lov til å utføre spørringen? Når passer det best å kjøre ? Hvordan skal vi kunne ”undoe” spørringen Hva skal skrives til fil? Skrive til fil

Hvordan lagre på filer? Åpner aldri hele fila Ofte mange filer Arbeider med pages (el .blocks) (Utdrag av fila) Ofte mange filer I enkelte typer DB har man rådata på en dedikert disk Det herlige med en DB er at vi vanligvis slipper tenke på dette

Distribuerte databasesystemer

Distribuerte databasesystemer Skiller mellom Distributed DBMS (DDBMS) DBMS (og Data) - ulike lokasjoner –flere separate DBer Ofte også med ulike deler av data/overlapp Distributed Processing DBMS Flere DBMS’er jobber mot samme DB Parallel DBMS Èn DBMS som kjører over flere maskiner Når: Data blir for mye for en maskin Belastningen blir for mye for en maskin Spre risiko ved systemkræsj Spre databasen til ulike lokasjoner ++ To typer systemer: Homogene Heterogene Hardware DMBS (produkt/versjon) Mer feilsikkert, men vanskeligere å administrere

Fordeler og ulemper DDBMS Samler flere DBer (også integrasjon) Tilgjengelighet Stabilitet Ytelse Økonomi ( billigere med flere billige maskiner) Modulær vekst Ulemper: Kompleksitet Transaksjonskontroll (data ikke oppdatert samtidig alle steder) Kostnad (drifting, systemer) Integritet vanskeligere Ingen standarder Krever flere administratorer (sikkerhet) Mer datatrafikk på nettverket ( sikkerhet) Treig trafikk på nettet

Fragmentering av data Hvordan skal vi skille en DB til DDB? Opplagt å skille tabeller, men en tabell kan også være for stor 2 hovedtyper: Horisontal deling (rader) Vertikal deling (attributter) Med/uten redundans

Google 10 milliarder websider indeksert (10 kb i gjennomsnitt) 1000 forespørsler hvert sekund 2000 PC i et cluster 30 clustere 1 petabyte i hvert cluster (1 petabyte = 1 million MB) Bygget på standardmaskiner du får kjøpt i butikken 2 maskiner feiler hver dag.. Likevel ingen systemfeil siden Feb. 2000 (1 time) http://www.zdnet.com.au/insight/software/soa/The-magic-that-makes-Google-tick/0,139023769,139168647,00.htm

Applikasjonsutvikling mot databaser

Applikasjonsutvikling Utnytt mest mulig av databasens tjenester Autentisering Rettigheter Backup Osv. I tilegg fikser DB for oss: Samtidighet Dataprosessering

Kobling database<->applikasjon 4 metoder Direkte Modul Flerlagsmodell Instance-håndterer Målet er å være mest mulig DB uavhengig Her sliter DBMSene med å følge SQL-standard..

Direkte – metode 1 Vi skriver kode i applikasjon beregnet på vårt bruk av DBMS

Modul – metode 2 DBMS-Spesifikt Vi benytter en ferdig spesifikk DBMS modul i vår kode

Flerlagsmodell – metode 3 GenerellDB DBMS-Spesifikt Vi benytter en generell DBMS modul i vår kode som selv kobler seg til en DBMS-spesifikk modul

Flerlagsmodell med instance-håndterer – metode 4 GenereltDB Vi benytter en generell modul i vår applikasjon som kobler seg til en tjenestetilbyder Instance-håndterer DBMS-Spesifikt

Sikkerhet Andre autentiseringskilder Innlogging Sertifikater Vær ytterst forsiktig med å ha brukerinfo i kildekoden Andre autentiseringskilder Innlogging Sertifikater Tjenesteserver La mest mulig av prosesseringen foregå i DBMS. Innebygde funksjoner SQL-prosessering (hent ut minst mulig data…) Utfør aldri DB-administrative oppgaver direkte fra appl. Skjul mest mulig spor av db i feilmeldinger og resultater Egen bruker med rettigheter!

SQL-Injection Dersom data fra en tekstboks benyttes direkte i en SQL-setning, kan vi skrive "spesielle" data i tekstboksen… Turid SELECT kolonne FROM tabell WHERE kolonne2=' '; '; DELETE FROM tabell WHERE kolonne2 != '

SQL-Injection Beste triks er å escape spesielle tegn. Da spesielt: ' Helst alle disse: \x00, \n, \r, \, ', " og \x1a test brukernavn SELECT * FROM user WHERE username=’ ' AND password=' '; ' OR ''=' brukernavn’;--

Utnytt serveren La serveren gjøre jobben Unngå unødvendige DB-kall SQL-spørringer => kompliserte men: ikke overbelast serveren... Spør en gang Hent mest mulig data av gangen Hent kun de dataene man trenger Unngå unødvendige DB-kall Løkker som går lenger enn nødvendig Unødvendige funksjoner/tester som kjøres Ting man alt kunne funnet ut i fra logikk Feilsjekk før data sendes til DB Osv.

Triggere og Prosedyrer - Definisjoner Programkode som automatisk blir kjør ved visse hendelser i databasen Eks. Sende velkomstmail hver gang en ny kunde blir lagt inn. Prosedyrer Programkode (egenlagde funksjoner) som vi selv kan eksekvere i databasen Sjekke databasen for uønskede kunder

Eksempler på triggere Sjekk av inndata Sjekke oppdateringer av data Gyldige verdier Sjekke oppdateringer av data F.eks at man ikke kan bli ansatt om man er under 16 år Sjekker (/flere hendelser) før sletting Øker ytelse F.eks: vedlikeholde en sum-verdi Mer kompliserte integritetssjekker Alarmer… Sende mail om verdi blir høyere enn..

Funksjoner og prosedyrer Noen DBMS skiller disse, andre ikke… Viktigste Forskjellen: Prosedyrer kjøres vanligvis med Call/Exec og utfører en jobb ( SQL, print, mail, osv…) Kan tenkes på som metoder med void i Java Funksjoner returnerer en verdi, og brukes vanligvis i en SELECT setning Kan tenkes på som metoder med returnverdi i Java

Eksempel på funksjoner og prosedyrer Matematiske formler F.eks Areal "Datasjekker" Fjerne alle gamle kunder Vanlige operasjoner Send mail til ansatte med bursdag "Smartere" innsetting En prosedyre som legger data i mange tabeller Automatisere DBMS-administrative oppgaver Alt er jo SQL… F.eks opprette brukere

Funksjonseksempel - MySQL CREATE FUNCTION arealRektangel (s1 float, s2 float) RETURNS float RETURN s1*s2; SELECT arealRektangel(lengde, bredde) FROM Rektangel;

XML-databaser

Hva er XML? eXtensible Markup Language En standard måte å strukturere ulike typer data Alternativ til CSV og andre hjemmesnekra ting... Åpent format Himla enkelt: Tagger/Noder Attributter Mest kjente XML-versjon er (antageligvis) XHTML Stadig mer data blir tilgjengelig på ulike XML-formater

Eksempeldokument 1 <bilregister> </bilregister> <bil regnr=”AA-23232”> <merke>Toyota</merke> <modell>Avensis</modell> </bil> <bil regnr=”DE-32312”> <modell>Rav4</modell> </bilregister>

Fordeler med XML Utrolig enkelt Maskiner jobber lett med XML Ferdige verktøy, takket være felles struktur DOM XSL XPATH XQUERY XUpdate XLink Osv.. Kan editeres i alt fra Notepad til rene XML verktøy Kan modellere mere strukturerte ting enn flatfiler/dbtabeller

XML og Databaser Flere nivåer: Relasjonsdatabaser som kan prod. XML Relasjonsdatabaser som lagrer som XML (Storage Engine) Relasjonsdatabaser som inneholder XML XML-dokumenter som database Native XML databaser To store forskjeller (som kompliserer MYE): Hierarkisk struktur To måter å angi data (attributt og tagg) Er XML en DB? DB: JA(Her vil noen/mange også si nei...) DBMS: (Tja)Nei..., men det finnes XML-DBMS'er Finnes verktøy som får XML til å opptre som en DBMS

Tom Heine tegner og forklarer på tavla… Mellomvare Tom Heine tegner og forklarer på tavla…

SQL3 og extensions

Nye ting fra SQL2 Merk mange SQL2-DBMSer har noe dette, men det ble definert i SQL3… Regulærutrykk matching Rekursive spørringer Triggere Støtte for kontrollflyt statements Brukerdefinerte datatyper Noe objektorienterte ting med mer.

Hvorfor har SQL3 ikke tatt av? Fortsatt "nytt" "det vi har funker jo" Det meste kan også gjøres i SQL2, men på en mer "tungvindt måte" Mellomvare Få DBMS'er støtter det… mye DB spesifikt Var det et behov?

Extensions Hva er extensions (plugin/datablader)? Hvorfor extensions Utvidelser av databasens funksjonalitet Kart Multimedia Hvorfor extensions Funksjonalitet som "må" ligge i db pga: Overføringsstid… Sikkerhet (kanskje bare svaret brukeren har rettigheter på) DB er ram på prosessering Kan selge ting som "pakke" Alle de andre fordelene med å ha foretningslogikken i DB

Datavarehus

Datavarehus Datavarehus Hva er et datavarehus? Hva benyttes det til Tar vare på data fra mange databaser Ofte i aggregerte former Historikk Hva benyttes det til Ikke daglig drift Finne mønstre Datamining Finne svar på "leder spørsmål" Hva er spesielt Hvordan data lagres Denormalisering Ofte f.eks en "Kube" med tid som akse Ofte distribuert (enorme datamengder) Vi vet ikke hva databasen skal benyttes til…

Datamining og Deduktive databaser

Hva er datamining? "sorting through large amounts of data and picking out relevant information " "man leter etter noe man ikke helt vet hva er" "data mining identifies trends within data that go beyond simple analysis" Dårlig avgrenset betegnelse AI Analyse Regresjon Er IKKE Enkel generering av rapporter/søylediagram (excel typ..) Alt som baserer seg på "spørringer" (makroer) såkalt data analysis (analyserer etter gitte regler) Altså: Alt som krever at metodene har en "forståelse" av dataene Systemet foretar selv en analyse (ofte med valg gjort av brukeren) Skal gi svar som ikke er helt opplagte ved å "titte" på dataene JFR: forskning basert på data vs. ”rutine”-arbeid

Hvorfor trengs data mining –teknikker? Stadig mer data Lett å lagre Billig å lagre "Alt" logges, just-in-case Teknologier som datavarehus Mer avanserte problemer som skal løses Strategien fremover Modeller for AI Finjusterte modeller med mange attributter Mer datakraft tilgjengelig…

To typer data mining Knowledge discovery Prediction Vi finner informasjon og sammenhenger som vi kan bruke til "noe" siden en gang Oftest i form av ting vi skal skrive som "setninger" Typisk: De dagene det var fint vær selger vi mye is Prediction Modeller der vi kan sette inn verdier og få et konkret svar ut Oftest i form av ting vi skal skrive som "formler" 2 undergrupper: Readable: Formler, beslutningstrær osv. Opaque : Nevrale nett osv.

Data mining og "privacy" Dataene i seg selv forteller ikke så mye, men det gjør sammenhengen Kundekort <-> Sleip reklame Bompenger <-> Reisemønster Forskning på sykdom <-> Forsikring osv.

Bruk av data mining Finne sammenhenger i salgsdata "Om vi kjører en reklamekampanje på produkt A, selger vi XX% mer av produkt B" Finne handelsmønstre hos en kunde " XX% av de som kjøpte produkt A, kjøpte også produkt B" Værmeldingsmodeller "Dersom X, Y og Z, så blir det P grader varmt" USA – 11. september USA identifiserte bakmennene som terrorister mer enn år før hendelsen. Produksjonsbedrifter "Dersom ett produkt gir feil i kontrollen, bør vi også sjekke de XX foregående produktene" "XX% av de produktene som det reklameres på, vil få en ny feil innen Y måneder" Osv..

Deduktive databaser Databasesytemer som i tilegg til å holde på data, også selv kan gjøre "beslutninger" basert på regler / "facts" Bygger på logisk programmering (f.eks Prolog) Gir oss svar på Om verdier passer til fact/regel Hvilke verdier som passer til fact/regel Regler og facts kan også kombineres for å finne svar på mer avanserte ting. Graden av AI varierer…

Prolog-eksempel - Facts mann(tom). mann(per). kvinne(trine). kvinne(berit). forelder(trine,tom). forelder(trine,berit). forelder(per,tom). forelder(per,berit).

Prolog-eksempel - Rules barn(X,Y) :- forelder(Y,X). sonn(X,Y) :- barn(X,Y), mann(X). datter(X,Y) :- barn(X,Y), kvinne(X). sosken(X,Y) :- forelder(Z,X), forelder(Z,Y), X \= Y. soster(X,Y) :- sosken(X,Y), kvinne(X). bror(X,Y) :- sosken(X,Y), mann(X).

Eksempel på spørringer mann(per). mann(trine). mann(truls). forelder(per,tom). forelder(per,trine).

Eksempler på mer "logiske" spørringer forelder(per,X). barn(X,per),bror(X,berit). forelder(X,Y).

Kurset Databaseadministrasjon og systemer

Kurset Praktiske eksempler og mer grundig teori på det jeg har vist i dag 10 stp 4 prosjektoppgaver(gruppe) og 3 timers skriftlig eksamen(individuell) IKKE "Databaser 2" http://www.ia.hiof.no/das