210 likes | 267 Views
B e n t M ø l l e r M a d s e n. Relationsdatabaser og SQL. Del 1 af 4: Generelt om databaser, relationsdatabaser og SQL Aalborg Universitet, d. 4. september 2006. Om mig. Bent Møller Madsen Amanuensis / fuldmægtig cand.merc. økonomistyring & informatik, 2000 www.business.aau.dk/~bmm
E N D
BentMøllerMadsen Relationsdatabaser og SQL Del 1 af 4: Generelt om databaser, relationsdatabaser og SQL Aalborg Universitet, d. 4. september 2006
Om mig • Bent Møller Madsen • Amanuensis / fuldmægtig • cand.merc. økonomistyring & informatik, 2000 • www.business.aau.dk/~bmm • bmm@business.aau.dk
Tidsplan / program • 4/9, 6/9 og 8/9 • Introduktion til databaser generelt • Relationsdatabaser og den relationelle model • SQL, SQL og atter SQL • Hensigtsmæssig design af tabeller • 12/9 og 14/9 • Grafisk brugerflade vha. Application Express • Formularer • Rapporter
Undervisning • Præsentation • Øvelser sammen • Opgaveløsning • Stil spørgsmål undervejs
Database software • Det meste databasesoftware der anvendes til undervisning kommer fra Oracle • ERP-system, der anvendes til undervisning er SAP Business One • Langt det meste Oracle software kan downloades gratis fra otn.oracle.com • Eneste krav er at man skal registrere sig • Store downloads/filer!!! • Krav til PC er relativt høje (min. 512 MB ram) • Opsætning/installation er relativ kompleks
Hvad er en database • Et sted hvor data opbevares • Mulighed for at gemme, opdatere, udtrække og slette data • Applikationer/værktøjer kommunikerer med databasen for at muliggøre dataoperationer og præsentation af data • ERP-systemer (Enterprise Ressource Planning) • Beslutningsstøtte-systemer (Business Intelligence) • STADS
Bruger- grænse- flade Brugere Database DBMS En databases bestanddele • Selve databasen • DBMS’en (Database Management System), der styrer adgangen til databasen • Sproget/brugergrænsefladen hvormed man kommunikerer med databasen
Hvorfor anvende databaser • Data kan samles et sted og gøres tilgængelig for flere brugere/applikationer • Sikring af integritet • Begrænse redundans • Styring af sikkerhed • Håndhævelse af standarder • Understøttelse af transaktioner • 1 transaktion = flere enkelthandlinger
Database-arter • Netværksdatabase • Hierarkisk database • Relationsdatabase • Objektdatabase/objekt-orienteret database • Multidimensionel database • XML-database
Relationsdatabase • RDBMS - Relational Database Management System • Tabeller og ikke andet end tabeller • Logisk model • Uafhængig af den fysiske implementering (til en vis grad) • Tilgængelig kommunikationssprog (SQL) • International ANSI / ISO standard • Ulempe: virkeligheden skal ”presses” ned i tabeller
Relationsdatabase • Baseret på den relationelle datamodel, der igen bygger på logik/matematik • Datastruktur • Dataintegritet • Datamanipulation • Forskerne bag den relationelle datamodel er ikke begejstrede for de ”SQL databaser”, der er tilgængelige i dag • E.F. Codd • A Relational Model of Data for Large Shared Data Banks, 1970 • C.J. Date, Hugh Darwen og Fabian Pascal
En række relationsdatabaser Oracle IBM DB2 Microsoft SQL Server Sybase PostGreSQL Firebird MySQL Microsoft Access
SQL • Den basale måde hvormed vi kan kommunikere med en relationsdatabase • Oprindeligt et IBM sprog • Structured Query Language • Nu en international standard, der bare hedder SQL • ANSI / ISO SQL-92, SQL-99 og SQL-2003 • Standard betyder desværre ikke at den samme SQL kan anvendes i alle SQL databaser • Et deklarativt sprog • Man beskriver hvad man vil have, ikke hvordan det skal findes!
Elementer i en tabel Postnumre Postnumre
SQL til tabelstruktur • Data Definition Language (DDL) • CREATE Opret tabel • ALTER Ændre tabel • DROP Nedlæg tabel • (DESCRIBE Beskriv tabel) • (RENAME Omdøb tabel) • Vedrører tabelstrukturen - ikke de faktiske data i tabeller Postnumre
SQL til tabeldata • Data Manipulation Language (DML) • INSERT • UPDATE • DELETE • SELECT • (MERGE) • (TRUNCATE) • Vedrører de faktiske data i tabeller
SQL til rettigheder • Data Control Language (DCL) • GRANT • REVOKE • Giv eller fratag brugere adgang til tabeller m.m.
SQL til transaktioner • COMMIT Gem • ROLLBACK Fortryd ændringer siden sidste commit eller bestemt savepoint • SAVEPOINT <navn> • Disse har kun relevans i forhold til DML, da der udføres autocommit ved DDL og DCL kommandoer. • Dette betyder også, at tidligere ændringer lavet med DML vil blive commit’ed, hvis man udfører en DDL/DCL kommando efterfølgende
Sammenligning af DDL og DML Postnumre