1 / 63

Videregående databasetemaer

Videregående databasetemaer. Tom Heine Nätt. Plan. Databasedrifting Sikkerhet Databases oppbygning Distribuerte databasesystemer Eksempel: Google Applikasjonsutvikling mot databaser Triggere /Lagrede prosedyrer XML-databaser Mellomvare Datavarehus SQL2/3 Deduktive databaser

brick
Télécharger la présentation

Videregående databasetemaer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Videregående databasetemaer Tom Heine Nätt

  2. Plan • Databasedrifting • 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

  3. Databaseadministrasjon

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

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

  6. 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

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

  8. 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

  9. 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!

  10. Sikkerhet

  11. 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…

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

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

  14. En databases oppbygning

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

  16. Forenklet oppbygning • 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 • Query processor • Authorization control • Integrity checker • Query optimizer • Transaction manager • Scheduler • Recovery manager • Buffer manager • File manager

  17. Hvordan lagre på filer? • Åpner aldri hele fila • 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

  18. Distribuerte databasesystemer

  19. 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

  20. Fordeler og ulemper DDBMS • Fordeler: • 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

  21. 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

  22. 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

  23. Applikasjonsutvikling mot databaser

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

  25. 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..

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

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

  28. 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

  29. 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

  30. Sikkerhet • 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!

  31. 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 != '

  32. 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’;--

  33. Utnytt serveren • La serveren gjøre jobben • 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.

  34. Triggere og Prosedyrer - Definisjoner • Triggere • 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

  35. Eksempler på triggere • Sjekk av inndata • 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..

  36. 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

  37. 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

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

  39. XML-databaser

  40. 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

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

  42. 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

  43. 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

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

  45. SQL3 og extensions

  46. 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.

  47. 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?

  48. Extensions • Hva er extensions (plugin/datablader)? • 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

  49. Datavarehus

  50. Datavarehus • Datavarehus • Hva er et datavarehus? • 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…

More Related