Tietokantasovellus: drinkkiarkisto

Samankaltaiset tiedostot
Keskustelusivusto. Suunnitteludokumentti

Tietokantasovelluksen määrittelydokumentti

Treenitietokannan suunnitteludokumentti

AC Hannes Statistics Tool. Ilkka Hakkarainen

Työn sisältö Työn rakenne Työhön liittyvä dokumentaatio Työssä käytettävät apuvälineet Ohjauksen organisointi

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

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

Ylläpitodokumentti. Oppimistavoitteiden hallintajärjestelmä harri

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

ALMU-järjestelmä Suunnitteludokumentti

Tietokannat II -kurssin harjoitustyö

Tietokantasovellusten harjoitustyö

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

GroupDesk Toiminnallinen määrittely

TIETOKANNAT: MYSQL & POSTGRESQL Seminaarityö

Postininjojen havaintopalvelu

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

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

Opintopiiritehtävä 3: Verkkohuutokauppa

Lohdutus - tietokantadokumentti

Informaatiotekniikan kehitysyksikkö

Tietokantasovellus (4 op) - Web-sovellukset ja niiden toteutus

POISSAOLOJEN SEURANTAJÄRJESTELMÄ

CSE-A1200 Tietokannat

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

Tietokantakurssit / TKTL

HELIA 1 (12) Outi Virkki Tiedonhallinta

Denormalisointia turvallisesti. Ougf syysseminaari Pörssitalo Helsinki Timo Raitalaakso

Ohjelmistojen mallintaminen, olioja relaatiomallinnuksen suhteesta

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Sukupuu -ohjelma. Ossi Väre ( ) Joni Virtanen ( )

LINUX-HARJOITUS, MYSQL

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

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

Visual Case 2. Miika Kasnio (C9767)

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

Valppaan asennus- ja käyttöohje

Tietokantojen suunnittelu, relaatiokantojen perusteita

2. Käsiteanalyysi ja relaatiomalli

Aika Vaihe Lopputulos

HELIA 1 (17) Outi Virkki Tiedonhallinta

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Ehdotusjärjestelmä. Henri Ylikotila. Finto-projektin laajennetun projektiryhmän kokous Esityksen kalvot:

Toimittajaportaalin pikaohje

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

HELIA 1 (14) Outi Virkki Tiedonhallinta

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

Ylläpitodokumentti Labra

POTILASTIEDON ARKISTO ARKISTONHOITAJAN KÄYTTÖLIITTYMÄN KÄYTTÖOHJE

Toimittajaportaalin pikaohje

Toimittajaportaalin rekisteröityminen Toimittajaportaalin sisäänkirjautuminen Laskun luonti Liitteen lisääminen laskulle Asiakkaiden hallinta Uuden

SQL - STRUCTURED QUERY LANGUAGE

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

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

Kanta. Potilastiedon arkiston arkistonhoitajan opas

Action Request System

ILMOITUSSOVELLUS 4.1. Rahanpesun selvittelykeskus REKISTERÖINTIOHJE. SOVELLUS: 2014 UNODC, versio

Sähköpostitilin määrittäminen Outlook 2016, kun ohjelma käynnistetään ensimmäistä kertaa.

Sähköpostitilin määrittäminen Outlook 2010, kun ohjelma käynnistetään ensimmäistä kertaa.

Sisällön automaattinen moniluokittelu

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

Suunnitteludokumentti

VIP Mobile Windows Phone. Opas asennukseen ja tärkeimpien toimintojen käyttöön

Raporttiarkiston (RATKI) käyttöohjeet Ohjeet

Sähköpostitilin määrittäminen Outlook 2013, kun ohjelma käynnistetään ensimmäistä kertaa.

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Lomalista-sovelluksen määrittely

Sonera Yrityssähköposti. Outlook 2013 lataus ja asennus

Skype for Business ohjelman asennus- ja käyttöohje Sisällys

Graafinen käyttöliittymä lintujen rengastusjärjestelmään

RICOH Ri 100/RICOH Ri 100 Pink/ RICOH Ri 100 Green Lisätietoja langattoman LANin käyttäjille

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

206 Verkkosivun tuottaminen finaalitehtävät

TYÖNTEKIJÄN OHJEET EAZYBREAK-MOBIILISOVELLUKSET

2 Yleiskuvaus järjestelmästä. 2.1 Käyttötapauskaavio

Kaislanet-käyttöohjeet

Tietokannat II -kurssin harjoitustyö

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

Helsingin yliopisto, Tietojenkäsittelytieteen laitos Tietokantojen perusteet, , H.Laine

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Tietokannan eheysrajoitteet ja niiden määrittäminen SQL-kielellä

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

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen, syksy 2011, laskuharjoitus 2

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

RADAR - RANDOM DATA GENERATOR

Treenitietokannan toteutusdokumentti

Copyright Basware Corporation. All rights reserved. Pikaopas toimittajille Supplier Portal (Toukokuu 2013)

INTERNETSELAIMEN ASETUKSET. Kuinka saan parhaan irti selaimesta

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

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

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

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

KULTA2-JÄRJESTELMÄN KÄYTTÖOPAS Liikunta-, kulttuuri-, nuoriso-, hyvinvointiavustukset

CLOUDBACKUP TSM varmistusohjelmiston asennus

Relaatiomalli ja -tietokanta

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

Hyrrä UKK Tomi Tiikkainen

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

24MAGS PIKAOHJE HALLINTAPANEELIN KÄYTTÖÖN

Transkriptio:

Tietokantasovellus: drinkkiarkisto Harjoitustyön määrittelydokumentti Henrik Mansnerus Helsinki 20.8.2010 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Sisällysluettelo 1 Johdanto...3 1.1 Järjestelmän tarkoitus...3 1.2 Toimintaympäristö...3 1.3 Rajaukset...3 1.4 Toteutusympäristö...4 2 Yleiskuva järjestelmästä...5 2.1 Sidosryhmäkaavio...5 2.2 Käyttäjäryhmät...5 3 Käyttötapaukset...6 3.1 Anonyymit...6 3.2 Rekisteröityneet...6 3.3 Ylläpitäjät...6 3.4 Tarkennusta...6 4 Järjestelmän tietosisältö...7 4.1 Drinkkiviite...7 4.2 DrinkkiID...7 4.3 Käyttäjä...8 4.4 Ehdotus...8 5 Käyttöliittymän hahmotelma...9 6 Relaatiotietokantakaavio...10 6.1 Create table -lauseet...10

1 Johdanto 1.1 Järjestelmän tarkoitus Tarkoituksena on kehittää drinkkiarkisto, jonne ihmiset voivat lisätä reseptejä jo kannassa olevien jatkoksi. Käyttäjät voivat luonnollisestikin myös selata reseptejä ja hakea niitä monipuolisilla hakuehdoilla. Tämä olisi luultavasti jokin City-lehden sivuilta löytyvä juttu tms. Oikeassa elämässä tämä voisi saada suhteellisen isojakin käyttäjämääriä, jolloin toteutukseen pitäisi kiinnittää erityistä huomiota. Jollekin firmalle tämä voisi olla brändikuvaa vahvistava juttu. Tai sitten jonkun yksityishenkilön hyvää hyvyyttään tekemä sivu ja silloin olisi todennäköisesti tarkoitus saada hieman mainostulojakin. 1.2 Toimintaympäristö Sen verran yksinkertaisesta sivustosta on kyse, että tähän riittää laitevaatimukseksi tietokone/kännykkä/pda, jossa on webbiselain. Varsinkin kun nyt ei tehdä mitään AJAXia tai muuta sellaista. 1.3 Rajaukset Saatan jättää tiedostosta lukemisen toteuttamatta, muuten olisi tarkoitus tehdä järjestelmästä suhteellisen kattava. Miettiessäni palvelun rakennetta mieleeni juolahti toteuttaa kaikenlaisia automaattisia drinkkiehdotusten tarkistuksia manuaalisen työn minimoimiseksi, mutta epäilen sen kasvattavan työn laajuutta liiallisesti. Ajattelin myös vaihtoehtoisten sekoitussuhteitten mahdollistamista. Ajattelin jonkinlaista koodia Drinkkiviite-tauluun, jossa olisi talletettuna eri ainesten tilavuusprosentit järjestyksessä Aines1, Aines2, Tämänkään toteuttamisesta minulla ei ole vielä mitään hajua. Jos vaihtoehtoisuudet jätetään välistä, ainesosien tallettamisessa raakoina stringeinä kuhunkin drinkkiin erikseen liittyen helpottaisi tietenkin toteutusta. Tämän voisi varmaankin toteuttaa optimaalisemmin. Tietokannasta tulee toki suhteellisen pieni, mutta potentiaalinen suuri käyttäjämäärä tällaisella palvelulla ehkä muuttaa tilannetta?

1.4 Toteutusympäristö Toteutan sovelluksen Windows-ympäristössä ja käytän tarvittaessa laitoksen järjestelmiä etäyhteyden ylitse. Järjestelmä tulee käyttämään PHP:tä sivujen tuottamisessa ja lomaketietojen välityksessä, tietokanta on PostgreSQL. Todennäköisesti käytän vaivan helpottamiseksi Atomik-kehystä, joka sisältää luullakseni myös rajapinnan PHP:n ja PostgreSQL:n välille.

2 Yleiskuva järjestelmästä 2.1 Sidosryhmäkaavio 2.2 Käyttäjäryhmät Anonyymit Rekisteröityneet Ylläpitäjät

3 Käyttötapaukset 3.1 Anonyymit Rekisteröityminen palveluun Drinkkien haku ja selaus Drinkin ehdotus Salasanan resetointi 3.2 Rekisteröityneet Sisään-/uloskirjautuminen Drinkkien haku ja selaus Drinkin ehdotus Salasanan vaihto 3.3 Ylläpitäjät Sisään-/uloskirjautuminen Drinkkien haku ja selaus Drinkin lisääminen (tekn. toteutus mahdollisesti ehdottamisen kautta) Drinkin hyväksyminen Käyttäjän bannaus Drinkin editointi 3.4 Tarkennusta Haku ja selaus ovat melko triviaaleja, kuten myös sisään- ja uloskirjautuminen (normaali toteutus evästeiden avulla) sekä käyttäjän bannaus, drinkin editointi, salasanan vaihto/resetointi ja rekisteröinti. Drinkkiä voi kuka tahansa ehdottaa. Anonyymien ja rekisteröityneiden käyttäjien ehdotusten erotus ja maineen käyttöönotto tehnee webmasterin työn hieman helpommaksi drinkkien hyväksymisen osalta, varsinkin mikäli palvelusta tulee suosittu.

4 Järjestelmän tietosisältö 4.1 Drinkkiviite Attribuutti Arvojoukko Kuvailu Nimi String Useiden mahdollisten saman drinkin nimien toteuttamista varten. Tämä tietokohde on olemassa monien saman drinkin eri nimien kätevää toteuttamista varten. Yksi drinkkiviite liittyy tasan yhteen uniikkiin drinkkiin (DrinkkiID) ja triviaalisti yhteen drinkkiin voi liittyä monta drinkkiviitettä. Drinkkiviite tunnistuu nimen ja DrinkkiID-yhteyden perusteella. 4.2 DrinkkiID Attribuutti Arvojoukko Kuvailu Surrogate int Drinkin mahdollinen moninimisyys vaatii keinoavaimen käyttöä tunnistamiseen. Juomalaji String Triviaali. AltJuomalaji String Tarpeellinen, mikäli jonkin drinkin voidaan katsoa kuuluvan moneen lajiin. Aines1 String Suppean toteutusmallin ratkaisuni drinkkikohtaisten ainesten tallettamiseen Aines2 String ja erityisesti sekoitussuhteiden yksinkertaiseen implementoimiseen... Aines10 String

Tämä kohde sisältää kunkin uniikin drinkin tiedot. Vaihtoehtoisen juomalajin tarpeellisuus on minulle vielä drinkkejä paremmin tuntematta arvoitus. Drinkkiin liittyy tasan yksi käyttäjä (drinkin ehdottaja/lisääjä). 4.3 Käyttäjä Attribuutti Arvojoukko Kuvailu Surrogate int Keinoavaimella koodataan, onko käyttäjä anonyymi, admin vai tavallinen. Nimi String Muille näkyvä käyttäjänimi. Salasana-hash heksaluku Asiakkaan tietoturvasta tulee huolehtia. Sähköposti String Triviaali. Sukupuoli int Periaatteessa tämähän olisi 2-bittinen arvo. Ikä int Ja tämä 7-bittinen. Maine int +1 hyv. ehdotuksesta, rekisteröityneet voivat antaa vandaalille -1 per drinkki Melko triviaali. Rekisteröityminen tekee palvelun käytön kiinnostavammaksi ja parantaa myöhemmin integraatiota sosiaalisiin medioihin. Käyttäjää kohden voi olla monta drinkkiä ja ehdotusta. 4.4 Ehdotus Attribuutti Arvojoukko Kuvailu Surrogate int Keinoavain käytössä kärsimättömien käyttäjien tuplapainallusten varalta. Nimi String Tämä attribuutti kopioidaan Drinkkiviite-tauluun hyväksymisen jälkeen. Juomalaji String Samalla loput attribuutit kopioidaan DrinkkiID-tauluun, keinoavain poislukien. AltJuomalaji String Aines1 String.. Aines10 String Kun uusien drinkkien ehdotus on kaikille sallittua, tällainen väliaikaisrakenne lienee mielekkäin ratkaisu. Sisältää siis kaikki drinkkiin ja drinkkiviitteeseen tarvittavat attribuutit.

5 Käyttöliittymän hahmotelma Aloitussivuun tulee sisältymään haku ja totta kai sisään- ja uloskirjautuminen. Kaavion moniriviset sivut viittaavat siihen, että kyseisestä sivusta on eri versiot mainituille käyttäjäryhmille. Aloitussivun toiminnallisuus sisältyy kaikkiin muihin sivuihin.

6 Relaatiotietokantakaavio 6.1 Create table -lauseet CREATE TABLE Drinkkiviite ( Nimi varchar(50) PRIMARY KEY, Surrogate SERIAL PRIMARY KEY, FOREIGN KEY (Surrogate) references DrinkkiID (Surrogate) ); CREATE TABLE DrinkkiID ( Surrogate SERIAL PRIMARY KEY, Juomalaji varchar(20) NOT NULL, Aines1 varchar(20) NOT NULL, Aines2 varchar(20) NOT NULL, Aines3 varchar(20) NOT NULL, Aines4 varchar(20) NOT NULL, Aines5 varchar(20) NOT NULL, Aines6 varchar(20) NOT NULL, Aines7 varchar(20) NOT NULL, Aines8 varchar(20) NOT NULL, Aines9 varchar(20) NOT NULL, Aines10 varchar(20) NOT NULL, Käyttäjä varchar(20) NOT NULL, FOREIGN KEY (Käyttäjä) references Käyttäjä(Surrogate) );

CREATE TABLE Käyttäjä ( Surrogate SERIAL PRIMARY KEY, Nimi varchar(20) NOT NULL, SalasanaHash char(32) NOT NULL, --miten saa tyypiksi heksaluvun? Sähköposti varchar(40) NOT NULL, Sukupuoli boolean, --sovinistinen tulkinta, voi olla myös NULL Ikä int NOT NULL, Maine int NOT NULL ); CREATE TABLE Ehdotus ( Surrogate SERIAL PRIMARY KEY, Nimi varchar(50), Juomalaji varchar(20) NOT NULL, Aines1 varchar(20) NOT NULL, Aines2 varchar(20) NOT NULL, Aines3 varchar(20) NOT NULL, Aines4 varchar(20) NOT NULL, Aines5 varchar(20) NOT NULL, Aines6 varchar(20) NOT NULL, Aines7 varchar(20) NOT NULL, Aines8 varchar(20) NOT NULL, Aines9 varchar(20) NOT NULL, Aines10 varchar(20) NOT NULL Käyttäjä varchar(20) NOT NULL, FOREIGN KEY (Käyttäjä) references Käyttäjä(Surrogate) );