Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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