Lohdutus - tietokantadokumentti

Samankaltaiset tiedostot
3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

CSE-A1200 Tietokannat

Lohtu-projekti. Ylläpitäjän dokumentti. Versiohistoria: Ensimmäinen versio Andreas Asuja

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

SQL - STRUCTURED QUERY LANGUAGE

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

HELIA 1 (14) Outi Virkki Tiedonhallinta

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Tietokantakurssit / TKTL

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

Ylläpitodokumentti. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Tietokannat II -kurssin harjoitustyö

Tietotekniikan laitos Käki-projekti TIETOKANTASUUNNITELMA. 1. Johdanto

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

ALMU-järjestelmä Suunnitteludokumentti

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Osassa testejä tarvitaan (testi)tietokantaa testien suorittamiseen. Testejä varten käytettiin ilmaista HSQLDB Java tietokantaa (

2. Käsiteanalyysi ja relaatiomalli

Harjoitustehtävä 1. Harjoitustehtävän 1 ratkaisu. Harjoitustehtävä 1. Relaatioalgebra -liitokset (join) Liitos

Toteutusdokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HELIA 1 (11) Outi Virkki Tiedonhallinta

SQL-kielen perusteet. Tietokantojen perusteet

LINUX-HARJOITUS, MYSQL

Tietokantasovellus: drinkkiarkisto

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

DOORS Word DOORS SoftQA Pekka Mäkinen

Tietokanta projektin alussa: create table kurssin_tila ( NOT NULL VARCHAR2(60) create table kurssin_tyyppi ( create table opintojakson_tyyppi (

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

Treenitietokannan suunnitteludokumentti

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Opintopiiritehtävä 3: Verkkohuutokauppa

HELIA 1 (17) Outi Virkki Tiedonhallinta

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

Ylläpitodokumentti Labra

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Tuotteiden tiedot: Lisää uuden tuotteen tiedot. Muuta tai poista tuotteen tiedot. Selaa kaikkien tuotteiden tietoja.

Tietokannat II -kurssin harjoitustyö

Timo Laakso YHTEISÖN TURNAUSSIVUSTON SUUNNITTELU

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

Firebird JAMK Labranet Wiki

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Kuntokirjuri. Ohjelmistokuvaus. Miika Alonen. Jarkko Laine. Jesse Honkanen. Veli Matti Huovinen. Jani Jäntti. Versio

Odoo ERP, Käyttäjien määrittely

HAAGA-HELIA TIKO - Heti09 1 (22) ICT05 Tiedonhallinta ja Tietokannat E.Räty, O.Virkki, M.Laiho

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Tiina Runtti BLOGI-LISÄOSAN KEHITTÄMINEN RAMSES CMS -JÄRJESTELMÄÄN

Vaalikone.fi API Presidentinvaalit 2012

Suunnitteludokumentti

Sisällön automaattinen moniluokittelu

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

POISSAOLOJEN SEURANTAJÄRJESTELMÄ

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Tietokannan hallinta. Kevät 2004 Jan Lindström R&G Chapter 1

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

OpenOffice.org Base 3.1.0

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

DOORSin Spreadsheet export/import

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa

Tietokantojen suunnittelu, relaatiokantojen perusteita

DOORS 7.1 Test Tracking Toolkit

Saimaan ammattikorkeakoulu Tekniikka Lappeenranta Tietotekniikka Organisaation IT-palvelut. Aleksi Stenholm. Kemikaalitietokanta

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

T Testiraportti TR-3. ETL-työkalu

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Access-kyselyt. Luetteloinnin kehittämispäivä Mia Kujala

Johdanto Javaan ja tietokantojen käsittelyyn Java Database Connectivity (JDBC)

SELVITYSRAPORTTI LABRA-VERKON MYSQL:n JA PHP:n KÄYTTÖÖNOTOSTA. Jarkko Kähkönen

Java ja tietokannan käsittely (JDBC)

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Toteutusdokumentti. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteenlaitos

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

Transkriptio:

Lohdutus - tietokantadokumentti Ohjelmiston tietokanta on toteutettu Oracle-ympäristöön, ja sitä käytetään ohjelmassa Hibernaten kautta. Tietokannan rakenne Tietokannan taulujen merkitykset Taulu Project Users WorkHour ProjectType Customer WorkTypeSet WorkType Instructors Participants Customers WorkTypeSet_has_WorkType Message Sisältää Projektit Käyttäjät Tuntikirjaukset Projektityypit Asiakkaat Työtyyppisetit projekteille valittaviksi Tuntikirjaukseen tarvittavat työtyypit Projektin ohjaajat Projektiin osallistuvat henkilöt Projektin asiakkaat Työtyyppisetteihin sisältyvät työtyypit Ilmoitustaulun viestit

Cycle Syklit (ei vielä käytössä) Tietokannan rakenteen erityispiirteet Taulu Attribuutti Arvot Users Project Message usertype isactive priority 1 = tavallinen käyttäjä 5 = tutkija 10 = admin TRUE = projekti on aktiivinen FALSE = projekti ei ole aktiivinen 0 = korkea prioriteetti 1 = normaali prioriteetti 2 = matala prioriteetti Hibernate Tietokannan käsittely tapahtuu sovelluksessa Hibernaten avulla, jolloin tietokannasta haetaan tai sinne lisätään/päivitetään hibernateen määriteltyjä ja kuvattuja (mapped) POJO olioita. POJO oliot määritellään Hibernatelle Hibernate kuvausten (mapping) kautta, eli jokaista POJO luokkaa vastaa kuvaustiedosto <POJO-luokka>.hbm.xml samassa pakettihakemistossa kuin itse POJO luokka. Kuvauksessa määritellään mitkä POJO luokan muuttujat tallennetaan tietokantaan ja mitä saraketta ne tietokannassa vastaavat, eli ohjeistetaan miten hibernate käsittelee ko POJO luokkaa tietokannan kanssa. Hibernate ja uniikkien ID:n muodostus ID:n muodostus lisätyille taulujen riveille on Hibernaten vastuulla. Hibernate toteuttaa tämän Oracle:n sekvenssien (Sequences) avulla luoden oman sekvenssin nimeltään "HIBERNATE_SEQUENCE" jonka avulla ID:t muodostetaan (Sivuhuomautuksena MySQL:n kanssa hibernate käyttää MySQL:n autoincrement -määrettä). Tämä siis tarkoittaa, että yhtä sekvessilaskuria käytetään kaikkien ID:n muodostamiseen, ts samaa ID:ä ei esiinny edes sovelluksen kahden eri taulun riveillä. ID:n muodostustapaa voi hallita POJO luokkien <id> muuttujan asetuksia muuttamalla. Mahdollisuutena on esimerkiksi tehdä joka taululle oma sekvenssi. Tarkemmin tietoa http://docs.jboss.org/hibernate/core/3.3/reference/en/html/mapping.html#mappingdeclaration-id. Nyt kaikilla POJO luokilla on hbm2ddl.auto tiedostoissa <id>:llä <generator> asetuksena "native".

Jos Hibernaten käyttämä oletus sekvenssi "HIBERNATE_SEQUENCE" puuttuu muodostaa Hibernate sen Hibernaten alustuksen yhteydessä jos hibernate.cfg.xml asetuksissa on hbm2ddl.auto asetuksella arvo "create" (Luo poistaa kuvauksissa esitettyt taulut ja luo ne uudelleen), "create-drop" (Ajaa DROP kaikille kuvauksissa esitellyille tauluille ja luo (CREATE) ne uudelleen) tai "update" (Päivittää (lisää) kuvauksissa esiintulleet eroavaisuudet nykyiseen schemaan). Erityishuomio "create" ja "create-drop" arvoille jotka siis myös poistavat taulujen sisällöt. Tietokannan luonti- ja nollauslauseet Hibernaten käyttämän oletussekvenssin luonti Huom. Hibernate luo tämän myös itse sen puuttuessa hbm2ddl.auto arvon olessa "update" hibernate.cfg.xml asetustiedostossa. Huom. sekvenssi aloitetaan alkamaan arvosta kaksi (2), jolloin ensimmäisen käyttäjän manuaalinen lisäys kantaan ei sekoita hibernaten id:n hallintaa. CREATE SEQUENCE HIBERNATE_SEQUENCE INCREMENT BY 1 START WITH 2 NOMAXVALUE MINVALUE 1 NOCYCLE CACHE 20 NOORDER; Taulujen luontilauseet CREATE TABLE Users firstname VARCHAR(45), familyname VARCHAR(45), user passwordhash VARCHAR(45) NOT NULL, usertype INTEGER NOT NULL, email VARCHAR(45), phonenr VARCHAR(45), adddate TIMESTAMP NOT NULL, CONSTRAINT uq_users UNIQUE(username), CONSTRAINT pk_users PRIMARY KEY(id) CREATE TABLE Customer firstname VARCHAR(45) NOT NULL, familyname VARCHAR(45) NOT NULL, email VARCHAR(45), organization VARCHAR(45), phonenr VARCHAR(45), adddate TIMESTAMP NOT NULL, CONSTRAINT pk_customer PRIMARY KEY(id) CREATE TABLE ProjectType description VARCHAR(400),

CONSTRAINT uq_projecttype UNIQUE(name), CONSTRAINT pk_projecttype PRIMARY KEY(id) CREATE TABLE WorkType description VARCHAR(400), CONSTRAINT uq_worktype UNIQUE(name), CONSTRAINT pk_worktype PRIMARY KEY(id) CREATE TABLE WorkTypeSet description VARCHAR(400), CONSTRAINT uq_worktypeset UNIQUE(name), CONSTRAINT pk_worktypeset PRIMARY KEY(id) CREATE TABLE WorkTypeSet_has_WorkType (worktypeid INTEGER, worktypesetid INTEGER, CONSTRAINT fk_worktypeset_has_worktype FOREIGN KEY(workTypeId) REFERENCES WorkType(id), CONSTRAINT fk_worktypeset_has_worktype2 FOREIGN KEY(workTypeSetId) REFERENCES WorkTypeSet(id) CREATE TABLE Project begintime DATE, endtime DATE, email VARCHAR(45), homepage VARCHAR(150), isactive VARCHAR(5) NOT NULL, worktypesetid INTEGER, projecttypeid INTEGER, description CLOB, CONSTRAINT uq_project UNIQUE(name), CONSTRAINT pk_project PRIMARY KEY(id), CONSTRAINT fk_project FOREIGN KEY(workTypeSetId) REFERENCES WorkTypeSet(id), CONSTRAINT fk_project2 FOREIGN KEY(ProjectTypeId) REFERENCES ProjectType(id) CREATE TABLE Participants (userid INTEGER, CONSTRAINT fk_participants FOREIGN KEY(userId) REFERENCES Users(id), CONSTRAINT fk_participants2 FOREIGN KEY(projectId) REFERENCES Project(id)

CREATE TABLE Instructors (userid INTEGER, CONSTRAINT fk_instructors FOREIGN KEY(userId) REFERENCES Users(id), CONSTRAINT fk_instructors2 FOREIGN KEY(projectId) REFERENCES Project(id) CREATE TABLE Customers (customerid INTEGER, CONSTRAINT fk_customers FOREIGN KEY(customerId) REFERENCES Customer(id), CONSTRAINT fk_customers2 FOREIGN KEY(projectId) REFERENCES Project(id) CREATE TABLE WorkHour hours FLOAT NOT NULL, description VARCHAR(100), wdate DATE, userid INTEGER, worktypeid INTEGER, CONSTRAINT pk_workhour PRIMARY KEY(id), CONSTRAINT fk_workhour FOREIGN KEY(projectId) REFERENCES Project(id), CONSTRAINT fk_workhour2 FOREIGN KEY(userId) REFERENCES Users(id), CONSTRAINT fk_workhour3 FOREIGN KEY(workTypeId) REFERENCES WorkType(id) CREATE TABLE Message ( id INTEGER, text VARCHAR(300), userid INTEGER, timestamp TIMESTAMP, priority NUMBER(3), CONSTRAINT pk_message PRIMARY KEY(id), CONSTRAINT fk_message FOREIGN KEY(projectId) REFERENCES Project(id), CONSTRAINT fk_message2 FOREIGN KEY(userId) REFERENCES Users(id) CREATE TABLE Cycle starttime DATE NOT NULL, endtime DATE NOT NULL, cyclenr INTEGER NOT NULL, CONSTRAINT pk_cycle PRIMARY KEY(id), CONSTRAINT fk_cycle FOREIGN KEY(projectId) REFERENCES Project(id) Tietokannan nollaus Huom. Nollaus voidaan toteuttaa myös Hibernaten avulla asettamalla hbm2ddl.auto asetuksen arvo joko "create" tai "create-drop" hibernate.cfg.xml asetustiedostossa.

DROP TABLE Cycle; DROP TABLE Message; DROP TABLE WorkHour; DROP TABLE Participants; DROP TABLE Instructors; DROP TABLE Customers; DROP TABLE Customer; DROP TABLE Project; DROP TABLE WorkTypeSet_has_WorkType; DROP TABLE WorkTypeSet; DROP TABLE WorkType; DROP TABLE ProjectType; DROP TABLE Users; DROP SEQUENCE HIBERNATE_SEQUENCE;