Relationsdatabaser og SQL

Download Report

Transcript Relationsdatabaser og SQL

Relationsdatabaser og SQL
Del 1 af 4:
Generelt om databaser, relationsdatabaser
og SQL
Aalborg Universitet, d. 4. september 2006
B ent Mølle r Ma dse n
Om mig
Bent Møller Madsen
Amanuensis / fuldmægtig
cand.merc. økonomistyring & informatik, 2000
www.business.aau.dk/~bmm
[email protected]
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
En databases bestanddele
Selve databasen
DBMS’en (Database Management System), der
styrer adgangen til databasen
Sproget/brugergrænsefladen hvormed man
kommunikerer med databasen
Brugere
Brugergrænseflade
DBMS
Database
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
Sammenligning af begreber
Den relationelle
datamodel
Relations-/SQL
databaser
Relation
Tabel
Tuple
Række
Attribut
Kolonne
Entitets-/relationsdiagram
Entitet
Attribut
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
Postnr
Bynavn
Postnumre
Postnr
Bynavn
9000
Aalborg
9000
Aalborg
9760
Vrå
9760
Vrå
8000
Århus C
8000
Århus C
4180
Sorø
4180
Sorø
7430
Ikast
7430
Ikast
SQL til tabelstruktur
Data Definition Language (DDL)
CREATE
ALTER
DROP
(DESCRIBE
(RENAME
Opret tabel
Ændre tabel
Nedlæg tabel
Beskriv tabel)
Omdøb tabel)
Vedrører tabelstrukturen - ikke de
faktiske data i tabeller
Postnumre
Postnr
Bynavn
SQL til tabeldata
Data Manipulation Language (DML)
INSERT
UPDATE
DELETE
SELECT
(MERGE)
(TRUNCATE)
Vedrører de faktiske data i tabeller
9000
Aalborg
9760
Vrå
8000
Århus C
4180
Sorø
7430
Ikast
SQL til rettigheder
Data Control Language (DCL)
GRANT
REVOKE
Giv eller fratag brugere adgang til tabeller
m.m.
SQL til transaktioner
Gem
Fortryd ændringer siden sidste
commit eller bestemt savepoint
SAVEPOINT <navn>
COMMIT
ROLLBACK
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
DDL - datastruktur
CREATE
ALTER
DROP
DESCRIBE
DML - data
INSERT
UPDATE
DELETE
SELECT
Postnumre
Postnr
Bynavn
9000
Aalborg
9760
Vrå
8000
Århus C
4180
Sorø
7430
Ikast