Database kursus Forår 2013



Relaterede dokumenter
Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Eksempel på en database: studenter, kurser, eksamener

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer:

Skriftlig opgave. Designtanker i database-nære systemer

Introduktion til programmering

Rigtig SQL Programmering

Anne Randorff Højen

Database for udviklere. Jan Lund Madsen PBS10107

Database. lv/

Databaseadgang fra Java

(fig.1. Eksempel på en almindelig entity)

Data lagring. 2. iteration (implement backend)

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

Databaser Obligatorisk opgave 1

3. semester, 2. projekt: Database

Databasesystemer fra forskellige synsvinkler

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

Dokumentering af umbraco artikeleksport:

Obligatorisk opgave 2. SQL, relationel algebra og relationel kalkyle

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Søren Løbner (lobner) ddb Databaser

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men

Efterår 2002 Note 10. Temaopgave

Database design for begyndere

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

DB undervisning 01-01

Conceptual, logic, physical

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Database Implementering

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar Forelæser: Rasmus Pagh

Database programmerings tips

FKG datamodellen Version ArcGIS integration Sidste revisionsdato: 23. maj 2014

En Kort Introduktion til Oracle

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

Introduktion til programmering

Eksamen, DSDS, forår 2009

Database "opbygning"

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 2: Relationer og SQL. 10. februar Forelæser: Rasmus Pagh

Sammenligning af Objekt-orienteret databaser og Relationelle databaser.

Eksamen Uden hjælpemidler - normeret til 60 minutter

Introduktion til SQL

Introduktion til SQL queries

A11: Last Year s Exam

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

Take-home Eksamen. DM505 Design og programmering af databaser. Syddansk Universitet Institut for Matematik og Datalogi

Afleveringsopgave. Efterår 2001

3. SEMESTER 2. PROJECT MULB Gruppe september 2015

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order

Anvisning i aflevering af bitemporale data

Databasesystemer, forår 2006 IT Universitetet i København. Forelæsning 3: E-R modellering. 16. februar Forelæser: Rasmus Pagh

Import af rekursivt (parent-child) hierarki i Palo

Reeksamen, DSDS, forår 2008

Begrynder til at lave log ind system

KIH Database. Systemdokumentation for KIH Databasen. 1. maj Side 1 af 13

PHP Quick Teknisk Ordbog

Databasesystemer. IT Universitetet i København 8. juni 2006

Design Visual Analytics-rapporter for bedst mulig performance

Jayne Alice Jensen [Link til portfolio]

Fra ER-Diagram til Relationel model i 7 step

Forskellige databaser

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Data Warehouse Knowledge is Power - Sir Francis Bacon -

OIOUBL Guideline. OIOUBL Guideline

Arkitektur for begyndere

Hvorfor skal vi bruge objekt orienteret databaser?

Database optimering - Indeks

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

Views etc. Databaser

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

SUP-specifikation, version 2.0. Bilag 14. SUP-Styregruppen. Ordliste (informativ) Udkast af 12. juni Udarbejdet for

Version Dato Beskrivelse /11/2012 Initial version /03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Skriftlig eksamen i kurset. Informationssystemer

Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Curriculum Vitae: Jeg kan hurtigt overskue forretningers ønsker samt komplekse systemer og finde overskuelige løsninger på selv vanskelige problemer.

FKG datamodellen Version Implementeringsguidelines. FKG datamodellen Version Implementeringsguidelines

Afsnittet er temmelig teoretisk. Er du mere til det praktiske, går du blot til det næste afsnit.

"A subject-oriented, integrated, time-variant, and non-volatile collection of data in support of managements dicision-making process.

ODBC made easy på dansk (når bare man ved hvordan) Jesper Michelsen, Data warehouse & Analyse

Webservice til upload af produktionstilladelser

Objektorientering og databaser

CURRICULUM VITAE. Hoda Al-Amood, 2014

Drupal. Hvad er Drupal?

Eksamen, DSDS, efterår 2007

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Datalagring og formater

Produktdokumentation

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Brugervejledning til databrowseren

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

LotusPhere comes to you IM Agent Manager - IM Support - Sametime / 27 Tobias Fonsmark -

Software Engineering 11 28,9% Matematik-Økonomi 9 23,7% Datalogi 14 36,8% Fysik 2 5,3% Andet (angiv herunder) 2 5,3% I alt ,0%

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Uploade billeder eller andre filer ved hjælp af php og mysql

DML, Foresprgsler Relationel algebra + noget mere! af skemaer (overlap m. DDL)

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

Transkript:

Database kursus Forår 2013 Jacob Aae Mikkelsen Database design og programmering/databaser fra Organisationsorienteret softwareudvikling 1

Praktisk info Lærebog Database Systems: The Complete Book Skema 2 timers eksaminatorier og 2 timers forelæsning om ugen i 12 uger (dog ingen eksaminatorier i uge 1) Eksaminatorier 1: Tirsdag 12.15-14.00 Eksaminatorier 2: Tirsdag 14.15-16.00 Forelæsning: Tirsdag 16.15-18.00 Alle timer i AUD1 2

Evaluering: DM505 a) Projekt b) 24 timers take-home eksamen Hver bidrager med halvdelen af det samlede pointtal Hvornår: Det skal vi I fællesskab finde ud af, da kurset ikke er færdig i 3. kvartal. 3

Evaluering: Ingeniører 2 Obligatoriske opgaver Midtvejs eksamen: Multiple choice 3 timers multiple choice fælles (med 2 andre fag) Mundtlig eksamen (med 2 andre fag) 4

Hvor bruges databaser? Tidligere, en masse kedelige steder: Corporate data Løn, lagerstatus, salg, kunder... Bank systemer Aktiehandel Airline systems... 6

Hvor bruges Databaser? I dag, bruges databaser I en lang række områder: Web: Web søgning (Google, Live, Yahoo,...) Sociale netværk (Facebook,...) Blogs, forums... Integreret data (data warehouse) Scientific and medical databases... 7

Hvorfor bruge Databaser? Nemme at bruge Fleksibel søgning Effektive Central storage, multi-bruger adgang Skalerbarhed (store mængder data) Sikkerhed og konsistent data Skjuler detaljer om opbevaringsmåde God data modellering 8

Hvorfor lære om databaser? Bruges alle steder En del af næsten alle software løsninger DB ekspertise er en efterspurgt egenskab Interessant: Mix af forskellige krav Mix af forskellige metoder Integreret del af data driven development Interessante 'rigtige' eksempler 9

Kort historie om Databaser Tidlige 60ere: Integrated Data Store, General Electric, første DBMS, network data model Sene 60ere: Information Management System, IBM, hierarchical data model 1970: E. Codd: Relational data model, relational query languages, Turing prize Midt 70erne: Første relational DBMSs (IBM System R, UC Berkeley Ingres,...) 80erne: Relationelle model de facto standard 10

Historie, fortsat 1986: SQL standardiseret 90erne: Object-relational databaser, object-oriented databaser Sene 90ere: XML databases 1999: SQL indarbejder nogle OO features 2003, 2006: SQL indarbejder support for XML data... 11

Nuværende Database Systemer DBMS = Database Management System Many producenter (Oracle, IBM DB2, MS SQL Server, MySQL, PostgreSQL,... ) Alle ret ens Meget store systemer, men lette at bruge Fælles egenskaber: Relationelle model SQL som query language Server-client arkitektur 12

Transaktioner Samling af statements der skal udførs samlet Eksempel: Overføre penge mellem kontoer Trække penge fra den 1. Lægge til den anden Penge må ikke gå tabt! Penge må ikke opstå ud af det blå! 13

ACID Egenskaber for transaktioner A for atomicity Alle eller ingen C for consistency constraints er gyldige både før og efter transactionen I for isolation illusion af sekventiel udførsel af hver transaktion D for durability Påvirkningen af en færdig transaktion må ikke gå tabt 14

Database udvikling Krav specifikation (ikke her) Data modellering Database modellering Applikations programmering Database optimering 15

Database Course Contents E/R-model for data modeling Relationelle data model SQL sproget Adgang via JAVA (JDBC) Basale udviklings principper DB tuning Bem: Dette kursus SQL kursus Dette kursusu PostgreSQL kursus 16

Data Model 17

Hvad er en Data Model? Matematisk representation af data relational model = tabeller semistruktureret model = træer/grafer... Operationer på data Restriktioner 18

En relation er en tabel Attributter (Kolonne navne) Tupler (rækker) name Odense Classic manf Albani Erdinger Weißbier Erdinger Relationens navn Beers Bem: Rækkefølgen af attributter og tupler er irrelevant 19

Schemas Relation schema = relationens navn og listen af attributter Anbefalet: typen på attributter Eksempel: Beers(name, manf) eller Beers(name: string, manf: string) Database = Samling of relationer Database schema = alle relation schemas i databasen 20

Hvorfor Relationer? Yderst simpel model Ofte matcher måden vi tænker på data Abstrakte model der ligger basis for SQL, det mest brugte forespørgsels sprog. 21

Løbende eksempel Beers(name, manf) Bars(name, addr, license) Drinkers(name, addr, phone) Likes(drinker, beer) Sells(bar, beer, price) Frequents(drinker, bar) Understreget = key (tupler kan ikke have den samme værdi I alle key attributerne) Godt eksempel på en begræsning 22

Database Schemas i SQL SQL is primært et forespørgsels sprog, for at hente information fra databasen Men SQL inkluderer også et data-definition element for at beskrive database schemas 23

Oprette en Relation Simpleste form er: CREATE TABLE <name> ( <list of elements> ); For at slette en relation: DROP TABLE <name>; 24

Tabel Oprettelse Mest basale element: en attribut og dens type Mest almindelige typer er: INT / INTEGER (synonymer) REAL / FLOAT (synonymer) CHAR(n ) = fast-længde string på n bogstaver VARCHAR(n ) = variabel-længde string på op til n bogstaver 25

Eksempler: Create Table CREATE TABLE Sells ( bar CHAR(20), beer VARCHAR(20), price REAL ); 26

SQL Værdier Integer og real er representeret som du ville forvente Strings er også, men de kræver enkelt ping'er Two pinger = en rigtig, dvs., Trader Joe s Hofbrau Bock Enhver værdi kan være NULL (ligesom Objekter i Java) 27

Dato og Tid DATE og TIME er typer i SQL Formatet for date er: DATE yyyy-mm-dd Eksempel: DATE 2009-02-04 for 4. februar, 2009 28

Time som værdi Formatet for time er: TIME hh:mm:ss med valgfri decimaler for sekunder efterfølgende Eksempel: TIME 15:30:02.5 = to og et halvt sekunder efter 15:30 29

Erklæring af Keys En attribut eller en lise af attributter kan erklæres PRIMARY KEY eller UNIQUE Begge siger at to tupler i relationen ikke må have de samme værdier i disse attributter Der er et par forskelle vi kommer til senere. 30

Erklæring af 1 Attribut som Key Placer PRIMARY KEY eller UNIQUE efter typen i erklæringen af attributten Eksempel: CREATE TABLE Beers ( ); name manf CHAR(20) UNIQUE, CHAR(20) 31

Erklæring af fler-attribut Keys EN key erklæring kan også være sin egen linie i CREATE TABLE Det er essentielt hvis key består af mere end 1 attribut Kan bruges for 1-attribut også 32

Eksempel Bar og beer sammen er key for Sells: CREATE TABLE Sells ( bar CHAR(20), beer VARCHAR(20), price REAL, PRIMARY KEY (bar, beer) ); 33

PRIMARY KEY vs. UNIQUE 1. Der kan kun være én PRIMARY KEY for en relation, men flere UNIQUE attributter 2. Ingen attribut I en PRIMARY KEY kan være NULL i nogen række. Men attributter erklæret UNIQUE kan have NULL, og der kan være flere af dem med NULL 34

Andre betingelser Overvej hvilke betingelser der gælder for relationen: Person( foedselsdato:int, cpr:int, fornavn: varchar(30), mellemnavn: varchar(30), efternavn: varchar(30), maanedsloen: int, parkeringsplads: int)

Andre betingelser: Check Det er muligt at opsætte betingelser på data med CHECK, Eksempel: create table checktest ( cpr int check( cpr >= 0 && ); cpr < 10000)