OLIOT SQL-99:SSÄ. Katriina Kovalainen Relaatiotietokannat nyt! -seminaari. Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO

Koko: px
Aloita esitys sivulta:

Download "OLIOT SQL-99:SSÄ. Katriina Kovalainen Relaatiotietokannat nyt! -seminaari. Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO"

Transkriptio

1 OLIOT SQL-99:SSÄ Katriina Kovalainen Relaatiotietokannat nyt! -seminaari Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO Helsinki

2 Tiivistelmä SQL-standardia on kehitelty relaatiomallisesti talletetun tiedon määrittelyyn ja hallintaan. Vuonna 1999 SQL:stä julkaistiin viimeisin standardi SQL-99, johon on liitetty oliosuuntautuneita piirteitä. Työnimenä tällä standardilla oli SQL3, josta vanhemmissa viitteissä vielä puhutaan. Tässä työssä tarkastellaan tarkemmin SQL-99 oliosuuntautuneita piirteitä. Käyttäjä voi määritellä oman tietotyypin joko SQL:n tarjoamista perustyypeistä tai hän voi yhdistellä tyyppiin tarvitsemansa tiedot muista tyypeistä. Käyttäjän määrittelemää tietotyyppiä kutsutaan lyhyesti UDT:ksi (use defined data type). Käyttäjän määrittelemä tietotyyppi sisältää tietotyypin attribuuttien ja metodien määrittelyn, jotka vastaavat ajatuksena olion määrittelyä. Tietotyypistä luodaan esiintymiä. Metodit määräävät tietotyypin esiintymän toiminnot ja niillä on määritelty näkyvyysaste, joka voi olla PRIVATE, PROTECTED tai PUBLIC. Rivityypillä voi määritellä monimutkaisia tietorakenteita tietotyypin sisälle. Nimetty rivityyppi eroaa rivityypistä sillä, ettei sen tarvitse olla osa muuta tietotyyppiä. Sille on annettava nimi ja siitä voi luoda tietotyypin. Rivityyppi voi olla myös viittaustyyppi, jonka arvona on osoitin (pointer) toiseen tietotyyppiin. Yhdistelmätyyppi tarjoaa vastineen ohjelmointikielten taulukkorakenteille. Yhdistelmätyyppi voi olla SET, LIST tai ARRAY. SET on tietojoukko, johon voi soveltaa joukko-operaatioita. LIST sisältää järjestetyn listan ja ARRAYtietotyyppi taulukkorakenteen. Yhdistelmätyyppiin viitataan SQL:ssä kuin se olisi oma taulu. Tietotyypeille luodaan automaattisesti tiettyjä toimintoja. Näitä ovat mm. konstruktori ja destruktori, observer ja mutator-toiminnot. Näiden avulla luodaan ja poistetaan tietotyypin esiintymiä tai alustetaan tai päivitetään tietotyypin attribuutin arvoja. Tietotyypeille voidaan määritellä ali- tai ylityyppejä. Alityypit perivät ylityyppinsä attribuutit ja toiminnan. SQL tukee moniperintää sallimalla alityypille useamman kuin yhden ylityypin ja ylityypille useamman kuin yhden alityypin. SQL:ssä on myös määritelty suuret oliot LOB (large object), BLOB (binary large object) ja CLOB (character large object), jotka tukevat multimediatietokantojen käyttöä. SQL:ään on lisätty samalla uusia kontrollirakenteita rutiinien toteuttamiseksi.

3 Sisällys 1 Johdanto Olioiden määrittely Käyttäjän määrittelemä tietotyyppi (UDT) Olion identiteetti Kapselointi Rutiinit Perintä Kuormitus Heräte Tyypit Rivityyppi Nimetty rivityyppi Viittaustyyppi Erottelutyyppi Parametrisoitu tyyppi Kokoelmatyyppi Suuret oliot Kontrollirakenteet Yhdistetyt lauseet Valinta- ja toistorakenteet SQL komentojen suoritus Yhteenveto... 10

4 1 Johdanto SQL-standardia on käytetty pitkälle toistakymmentä vuotta relaatiomallisen tiedon määrittelyyn ja hallintaan. Suurin osa relaatiotietokantajärjestelmien kehittäjistä tukee sitä. (Lausen Vossen, s. 144.) Vuonna 1999 SQL:stä julkaistiin viimeisin standardi, joka tukee oliosuuntautunutta tietojenkäsittelyä. Tästä standardista on käytetty työnimeä SQL3, jolla vielä monet lähteet viittaavat uuteen standardiin. Käytän tässä esityksessä vain sanaa SQL uusimmasta standardista. Uusia oliopiirteitä SQL:ssä ovat mm. käyttäjän määrittelemät tyyppi sekä muita uusia tietotyyppejä, kuten rivityyppi, viittaustyyppi ja yhdistelmätyyppi, tyyppikonstruktorit, erilaiset rutiinit, olioidentiteetti, tiedon kapselointi, yleistys ja erikoistaminen tyyppihierarkiassa, perintä ja moniperintä. SQL:ssä on myös määritelty suuret oliot LOB (large object), BLOB (binary large object) ja CLOB (character large object), jotka tukevat multimediatietokantojen käyttöä (Lausen Vossen, s. 145). Näitä piirteitä esitellään seuraavissa kappaleissa tarkemmin. SQL:ään on lisätty samalla uusia kontrollirakenteita rutiinien toteuttamiseksi ja lohkomääritys useiden SQL-lauseiden peräkkäiseen suoritukseen. Näin SQL:n ja perinteisten ohjelmointikielien välinen ero on kaventunut. 2 Olioiden määrittely Oliot luodaan tietotyypeistä ja kerran luotu olio saa pysyvän identiteetin, joka säilyy koko sen eliniän. Tyypille voi määritellä attribuutteja ja metodeja, joille puolestaan voi määritellä näkyvyysasteen. Tyypillä voi olla alityyppejä ja ylityyppejä. SQL:ssä tyyppi vastaa käsitteenä tietokantataulua ja olion esiintymä taulun riviä. 2.1 Käyttäjän määrittelemä tietotyyppi (UDT) Käyttäjä voi määritellä SQL:ssä oman tietotyypin UDT:n (user defined data type), aikaisemmissa julkaisuissa käytetyn ADT:n (abstract data type) eli abstraktin tietotyypin, joka kapseloi attribuutit ja metodit yhdeksi olioksi käyttäjän määrittelemällä tavalla. Olion voi tuottaa (konstruoida) mistä tahansa tietotyypistä. Tietotyypin määrittely yleisellä tasolla: CREATE TYPE <tyypin nimi> AS [<OID määrittely>] [<alityyppi määrittely>] [<attribuutit>] [NOT FINAL] [<rutiinit>] (Gallaher, s. 2, Schek, s. 7) 1

5 Tyypille määritellään nimi, attribuutit ja metodit. OID-, alityyppi ja NOT FINAL -määrittelyihin palataan myöhemmin (ks. 2.2 Olion identiteetti ja 2.5 Perintä). Attribuutille on määriteltävä nimi ja tyyppi. Attribuutin määrittely voi olla esimerkiksi: nimi VARCHAR(30). Attribuutin tyypiksi voidaan määritellä myös toinen tietotyyppi esim. osoite (osoitetyyppi), jolloin osoite on aikaisemmin määritelty tietotyyppi. (Schek, s. 9.) Attribuutteja on kahdenlaisia: virtuaalisia ja talletettuja. Talletettu attribuutti sisältää vähintään nimen ja tietotyypin. Virtuaaliattribuutilla ei ole talletettua arvoa, vaan sen arvo johdetaan tai lasketaan ajon aikana. (Object Services and Consulting Inc., s. 7, 10.) Jokaisella talletetulla attribuutilla on vähintään observer (tarkkaaja) ja mutator (muuttaja) toiminnot, joilla voidaan alustaa, lukea ja päivittää attribuutin arvoja. Esimerkiksi edellä määritellylle attribuutille osoite määritellään automaattisesti observer: FUNKTION osoite(osoitetyyppi) RETURNS VARCHAR(30) ja mutator: FUNKTION osoite(osoitetyyppi, VARCHAR(30) RETURNS osoitetyyppi. (Schek, s. 9, 12.) Tyyppiin liittyvät rutiinit ovat operaatioita ja metodeja. Metodit määräävät tyypin olion käyttäytymisen, toiminnot, joita se/sillä voi tehdä. Attribuutteihin pääsee käsiksi vain metodien kautta. (Schek, s. 10.) Operaatiolla käsitetään EQUALS tai LESS THAN lauseet. EQUALS-määrellä voi määritellä, milloin kaksi olion esiintymää ovat samat. LESS THAN määrettä käytetään järjestämään olion esiintymät tiettyyn järjestykseen, jos tätä operaatiota ei määrittele, olion esiintymiä ei voi järjestää. (Gallaher, s. 3.) UDT:n määrittelyn yhteydessä luodaan automaattisesti konstruktori ja destruktori toiminnot, joilla voi luoda ja tuhota tyypin esiintymiä. Nämä funktiot ovat kaikkien käytettävissä eikä niille välitetä parametreja. (Object Services and Consulting Inc., s. 3.) Tietokantataulu perustuu tyyppeihin ja ne luodaan CREATE-komentolla: CREATE TABLE henkilokunta OF henkilotyyppi ja olioiden esiintymät talletetaan tauluun riveinä. (Schek, s. 13.) 2.2 Olion identiteetti Oliolla on identiteetti, tunniste, joka yksilöi sen. Olion identiteetti säilyy koko sen eliniän, kun muut sen arvot muuttua. Olion identiteetti ei vanhene edes olion lakattua olemasta olemassa samaan tapaan kuin aikaleimaustakaan ei käytetä uudelleen. (Gallaher, s. 4.) OID-määrittelyllä (ks. 2.1 Käyttäjän määrittelemä tietotyyppi) määritellään generoidaanko oliolle tunniste ja voidaanko olioon viitata isäntäohjelmointikielessä suoraan tällä tunnisteella vai onko tunniste vain tietokannan sisäiseen käyttöön (Gallaher, s. 2). 2

6 SQL:ssä ei ole mahdollisuutta tallettaa tietotyypin esiintymät käyttäen vain niiden nimeä tunnisteena eikä välttämättä mitään komentoa, jota voidaan soveltaa kaikkiin tietyn tietotyypin esiintymiin (Object Services and Consulting Inc., s. 4). 2.3 Kapselointi Tietotyypin attribuuteille ja metodeille voidaan määritellä eri asteinen näkyvyystaso (encapsulate level), joita on kolme: PUBLIC, PRIVATE ja PROTECTED. PUBLIC-määrittelyllä UDT:n osat ovat julkisia eli kaikki, joilla on oikeus viitata tietotyypin olioon, näkevät nämä osat tai vaihtoehtoisesti voivat käyttää niitä. PRIVATE-määrittelyllä UDT:n osat ovat vain UDT:n sisäiseen käyttöön. PROTECTED-määrellä määritellään, että osat näkyvät UDT:n sisällä ja sen kaikilla alityypeillä. (Gallaher, s. 3.) 2.4 Rutiinit UDT sisältää attribuuttien lisäksi metodit, jotka määrittelevät UDT:n toiminnan. Osa tietorakenteista on staattisia ja ne ovat tietokantaan talletettuja rakenteita. Osa toteutetaan käännettävänä koodina, jonka täsmälliset arvot määrittyvät ajonaikaisten parametrien arvoista. (Gallaher, s. 5.) CREATE METHOD palkankorotus RETURNS euro FOR tyontekijatyyppi BEGIN DECLARE vanhapalkka euro; vanhapalkka = SELF.palkka IF (SELF.lastenmaara < 3) OR (SELF.projektit_lkm < 2) THEN SET SELF.palkka = 1,03 * vanhapalkka ELSE SET SELF.palkka = 1,05 * vanhapalkka ENDIF RETURNS SELF.palkka END. (Schek, s. 17.) Rutiineja ovat metodit eli funktiot ja proseduurit, jotka voidaan määritellä UDT:n sisäisiksi, ulkopuolisiksi tai jopa SQL:n ulkopuolisiksi. Ne eroavat kutsutavaltaan ja parametrin välitykseltään (Ki-Joon Han, SQL99 Foundation Overview 6/7). 3

7 Rutiinilla on aina nimi ja toimintalohko. Funktiolle voi välittää syöttöparametrin ja se palauttaa yhden tietotyypin arvon RETURNS-lauseella. Proseduurille sen sijaan voi välittää parametrin, jonka tyyppi voi olla syöttöparametri (in), tulosparametri (out) tai sekä syöttö- että tulosparametri (inout). SQL:n sisäisellä parametrilla on oltava nimi ja tietotyyppi, joka voi olla mikä tahansa SQL:n avulla määritelty tietotyyppi. (Ki-Joon Han, SQL-Invoked Routines 1/2-2/2.) Funktion tai metodin kutsu on SELECT-lause, kun proseduuria kutsutaan CALL-komennolla (Lausen Vossen, s. 146). 2.5 Perintä Alityyppimäärittelyllä (ks. 2.1 Käyttäjän määrittelemä tietotyyppi) UNDER <tietotyypin nimi>, voi tietotyypin määritellä alityypiksi olemassa olevalle tietotyypille, josta tulee tällöin alityypin ylityyppi. Sanotaan, että alityyppi erikoistaa ylityypin ja että ylityyppi yleistää alityypin. (Gallaher, s. 6, 7.) Alityyppi perii ylityypiltään tämän attribuutit ja rutiinit. Lisäksi sillä voi olla omia attribuutteja ja rutiineita. Perintä tukee tiedon abstraktia esitystapaa, kun se sallii olioiden tyyppihierarkian, joka mahdollistaa uuden tietotyypin luomisen ilman, että vanhan ominaisuudet ja toiminta menetetään. (Gallaher, s. 6.) Tietotyypillä voi olla useampi alityyppi ja useampi ylityyppi. Tämä tarkoittaa samalla, että SQL tukee moniperintää. Lisäksi mahdollista määritellä alityyppiperhe, jolla voi olla vain yksi ylityyppi. Tietotyyppi ei voi olla itsenä ylityyppi. (Gallaher, s. 6.) SQL tyyppihierarkia vaatii, että jokainen alityypin esiintymä on myös sen ylityypin esiintymä; alityyppi koostuu kaikista sen ylityypeistä. (Schek, s. 19.) Jokaiseen esiintymään liitetään käsite most spesific type eli määrätyin tyyppi. Esiintymällä on aina joku määrätyin tyyppi. Sen ei kuitenkaan tarvitse olla tyyppihierarkian alin alityyppi. Esimerkiksi henkilö-tyypillä voi olla alityypit opiskelija ja työntekijä. Opiskelija on voitu jakaa vielä alityyppeihin perusopiskelija ja jatko-opiskelija. Tietyn esiintymän määrätyin tyyppi voi kuitenkin olla opiskelijatyyppi eikä sen tarvitse olla perus- tai jatko-opiskelijatyyppi. (Object Services and Consulting Inc., s. 9.) Edellisen esimerkkiin lisäten esimerkkinä moniperinnästä voi olla opiskelija-työntekijätyyppi, joka on sekä opiskelija että työntekijän alityyppi ja mallintaa tilannetta, jossa opiskelija on samalla myös työntekijä. (Gallaher, s. 7.) FINAL-määreellä (ks. 2.1 Käyttäjän määrittelemä tietotyyppi) määritellään tietty rakenne lopulliseksi, sillä ei voi enää olla alirakenteita ja NOT FINAL taas määrittelee, että tyypillä voi olla alirakenteita. (Schek, s 8.) Jos rutiini on määritelty tyypin useammassa ylityypissä, se peritään yleisimmältä ylityypiltä tai alityypin on nimettävä perityt osat uudelleen (Object Services and Consulting Inc., s. 9). 4

8 2.6 Kuormitus Rutiinin kuormituksella (overloading) tarkoitetaan mahdollisuutta nimetä useampi rutiini samannimiseksi. Moniperinnän seurauksena alityyppi on saattanut periä ylityypeiltään samannimisiä rutiineita tai rutiineja voi tarkoituksella nimetä samannimisiksi. (Object Services and Consulting Inc., s. 5.) Ajon aikana valitaan rutiineista se, jonka parametrien tyypitys sopii parhaiten kutsuvan rutiinin parametrien tyypitykseen, ellei rutiinissa ole suoraan määritelty, minkä metodin se korvaa (Ki-Joon Han). Vain funktioita voi kuormittaa, proseduureja ei (Ki-Joon Han, Routine Overloading). 2.7 Heräte Triggeri eli liipaisin eli heräte on toiminta, joka käynnistyy automaattisesti, kun liipaisun edellyttämä ehto täyttyy. Herätteitä voi käyttää takaamaan mm. tietokannan eheyden. (Object Services and Consulting Inc., s. 5.) Liipaisimeen toiminnaksi voi määrittää minkä tahansa SQL-komennon tai komentojoukon, jossa voi olla myös valintarakenteita (ks. 4 Kontrollirakenteet) ja vapaaehtoisesti ehdon, joka käynnistää liipaisimen toiminnan. Liipaisimen voi määritellä tapahtumaan ennen tai jälkeen ehdon toteutumisen. (Ki-Joon Han, SQL99 Foundation Overview 2/7.) 3 Tyypit Perustyypit SQL:ssä ovat seuraavat: numeerinen arvo (numeric), joka voi olla tarkka (smallint, integer, decimal tai numeric) tai likimääräinen (real, float, double), merkkijono (string), joka voi olla kiinteä (fixed) tai vaihtelevan mittainen (varying) bitti (bit), kiinteä, vaihtelevan mittainen merkki (character) tai CLOB (character large object) sekä BLOB (binary large object), tosi/epätosi (Boolean), ns. datetime, joka voi olla päivämäärä (date), kellon aika (time) tai aikaleima (timestamp), intervalli (interval) (Ki-Joon Han). Näiden perustyyppien eli vakiotyyppien lisäksi SQL:ssä voi määritellä omia tietotyyppejä (UDT) ja uutena SQL tarjoaa nyt myös seuraavia tyyppirakenteita: rivityyppi, nimetty rivityyppi, viittaustyyppi, erottelutyyppi, parametrisoitu tyyppi, kokoelmatyyppi ja suuri olio. Myös NULL-arvo on tietotyyppi (Gallaher, s. 5). Seuraavassa esimerkki tyyppimäärittelystä: 5

9 CREATE TYPE työntekijä_t (PUBLIC nimi CHAR(2), b_osoite osoite_t johtaja työntekijä_t, tulopäivä DATE, PRIVATE peruspalkka DECIMAL(7,2), tulospalkkio DECIMAL(7,2), PUBLIC FUNCTION työskennellyt (p työntekijä_t) RETUNRS INTEGER <koodi, joka laskee työskentelyajan pituuden>, PUBLIC FUNCTION työskennellyt (p työntekijä_t, p pvm) RETURNS työntekijä_t <koodi, jolla päivitetään työskentelyaikaa> PUBLIC FUNCTION palkka (p, työntekijä_t) RETURNS DECIMAL <koodi, jolla lasketaan palkka> (Object Services and Consulting Inc., s. 6-7). Työskennellyt on esimerkki virtuaaliattribuutista, jolla on arvo vain ajon aikana. 3.1 Rivityyppi Rivityypillä määritellään monimutkaisia rakenteita. Se on UDT:n sisälle määritelty tyyppi ja koostuu joukoista kenttiä tai tietotyyppejä. Rivityypin määrittely muistuttaa taulun määrittelyä. Rivityypillä mahdollistetaan, että parametrin välityksessä voidaan välittää suurempia tietojoukkoja kuin yksi tietoalkio. (Object Services and Consulting Inc., s. 7.) Esimerkissä työntekijätauluun luodaan rivityyppi osoite ja sen sisälle toinen rivityyppi postinumero: CREATE TABLE työntekijä (nimi CHAR(40), osoite ROW(katu CHAR(30), postinumero ROW(maatunnus CHAR(5), pnumero CHAR(10)) postitoimipaikka CHAR(20))); Attribuutteihin viitataan käyttäen ns. pistenotaatiota (dot notation) esim. tyyppi.attribuutti tai tyyppi.rivityyppi.attribuutti, jne. (Schek, s. 11). 6

10 3.2 Nimetty rivityyppi Rivityyppejä voi määritellä myös UDT:n ulkopuolelle ja silloin niiden rakennetta ei ole kapseloitu. Esimerkki nimetystä rivityypistä: CREATE ROW TYPE tili_t (tilinro INT, tiliasiakas REF(asiakas_t), tyyppi CHAR(1), avattu DATE, saldo DOUBLE PRECISION); 3.3 Viittaustyyppi Nimetty rivityyppi voi olla myös viittaustyyppi. Viittaustyyppi merkitään REF-määreellä (ks. edellinen esimerkki). Viittaustyypin arvo yksilöi tietyn rivityypin esiintymän. Se voi olla osoitin (pointer) toisen taulun riville tai olion identiteetti. (Object Services and Consulting Inc., s. 7.) Esimerkissä mainittu asiakas_t viittaustyyppi voi viitata mihin tahansa riviin, jossa on tyyppi asiakas_t (Object Serveces and Consulting Inc., s. 8). SCOPE-määreellä määritellään tyyppi, johon viittaustyyppi viittaa. Esimerkiksi FOR SCOPE tiliasiakas IS asiakas määritellään, että tiliasiakas viittaa asiakastyypin tietotyyppiin. (Object Services and Consulting Inc., s. 8.) Taulumäärittelyssä SCOPE-määre on pakollinen (Schek, s. 13). Viittauksissa voi käyttää myös polkuilmausta (path expression) -> (Object Services and Consulting Inc., s. 8). SELECT t.tiliasiakas->nimi FROM tili t WHERE t.tiliasiakas->osoite..kaupunki = Nokia AND t.saldo > ; Esimerkissä haetaan ensin tiliasiakas-sarakkeen arvo eli REF(asiakas_t)-tyypin ilmentymä riviltä, jonka tyyppi on tili_t. Tiliasiakas-sarakeen arvo on viittaus asiakas-tauluun. Haetaan siis asiakas-taulusta se nimi-sarakeen arvo, johon tiliasiakas-sarakkeen arvo viittaa. (Object Services and Consulting Inc., s. 8.) 7

11 3.4 Erottelutyyppi Erottelutyypillä (distinct type) voidaan määritellä kaksi muuten yhtenevää tietotyyppiä erillisiksi tietotyypeiksi (Schek, s. 15). Esimerkiksi: CREATE DISTINCT TYPE kruunu AS DECIMAL(9, 2) CREATE DISTINCT TYPE euro AS DECIMAL(9, 2) CREATE TABLE ruotsi-pankki (tilinro INTEGER, saldo (kruunu), CREATE TABLE suomi-pankki (tilinro INTEGER, saldo (euro), SELECT r.tilinro, r.saldo FROM ruotsi-pankki r, suomi-pankki s WHERE r.saldo > s.saldo; Yritys verrata tyypien euro ja kruunu ilmentymiä tuottaa nyt virheilmoituksen, vaikka saldojen esitysmuodot ovat samat (Schek, s. 15). Erottelutyyppi on aina lopullinen tyyppi (FINAL) (ks. 2.5 Perintä) (Ki-Joon Han, Subtyping and Inheritance 1/2). 3.5 Parametrisoitu tyyppi TEMPLATE-määrellä voidaan määritellä ns. parametrityyppi (parametrized type) ja sen käyttö tarkoitus on generoida jokaiselle parametrin arvolle uusi tietotyyppi. Parametrisoitu tyyppi on viittaus tietotyyppi perheeseen eli parametrilistaan, jonka alkioiden arvot ovat tyypin esiintymiä. Parametrisoitu tyyppi määritellään kuten UDT. (Gallaher, s. 10.) 3.6 Kokoelmatyyppi Kokoelmatyyppien avulla voidaan taulukon sarakkeille antaa yksittäisten arvojen sijaan moniarvoisia tietorakenteita: joukkoja ja listoja. Kokoelmatyyppejä ovat SET(<tyyppi>), LIST(<typpi>) tai ARRAY<tyyppi>). (Schek, s. 9.) LIST-määreellä määritellään järjestetty jono. SET-määreellä joukko, johon voi soveltaa matemaattisia joukkooperaatioita kuten leikkaus, yhdiste ja komplementti. ARRAY-määrellä rajoitetun kokoinen taulukkorakenne ylä- ja alarajoineen. (Gallaher, s. 11.) Kokoelman tyyppi voi olla perustyyppi, UDT, rivityyppi tai toinen kokoelmatyyppi, esimerkiksi SET (INTEGER), SET(LIST(INTEGER)), SET(movie), SET(LIST(movie)), jossa movie on aikaisemmin määritelty UDT. 8

12 Kokoelmatyypissä ei sen sijaan voi esiintyä viittaustyyppiä eikä nimettyä rivityyppiä, jossa on viittaustyyppikenttä. (Object Services and Consulting Inc., s. 10.) Kokoelmatyypit eivät ole tietokantatauluja, vaikka kyselyjä varten niistä kuitenkin muodostetaan loogisesti sellaisia UNNEST-komennolla. Esimerkiksi työntekijä-tauluun on määritelty sarake toimenkuva LIST(VARCHAR(20)). Toimenkuva-sarakkeeseen ei voi viitata suoraan, vaan siihen viitataan kuin se olisi oma taulunsa (Schek, s. 26): SELECT t.nimi FROM tyontekija t WHERE tietokannat IN (SELECT * FROM UNNEST (t.toimenkuva); 3.7 Suuret oliot SQL3:ssa on tuki suurille olioille. LOB (Large Object), BLOB (Binary Large Object) ja CLOB (Character Large Object) määreitä tarvitaan erityisesti multimedia tietokannoissa, joihin talletetaan videoleikkeita, kuvia, ääntä ja suuria tekstidokumentteja. (Lausen Vossen, s. 145.) Suurille tietotyypeille on omia sisäänrakennettuja funktioita (Ki-Joon Han, LOB Funktions). CREATE TABLE kirjat (nimi VARCHAR (30), ISBN VARCHAR(15), tiivistelmä CLOB(32K), teksti CLOB(20M), filmi BLOB(2G)); (Ki-Joon Han, Large Object Data Types.) 4 Kontrollirakenteet SQL:ä on kehitetty ohjelmointikielten suuntaan lisäämällä siihen kontrollirakenteita, kuten esimerkiksi valinta- ja toistorakenteet (CASE, IF) ja yhdistetyt lauseet. Uutena piirteinä SQL:ssä voi SET-komentolla arvo sijoittaa paikallisen muuttujan, sarakkeen tai UDT:n attribuutin arvoksi. (Object Services and Consulting Inc., s.12.) CALL-kutsulla voidaan kutsua SQL:n ulkopuolista proseduuria. Ulkopuolisen rutiinin ohjelmointikielen voi määritellä LANGUAGE-määreellä ja sen sijainnin voi antaa suoraan. CAST-määreellä voidaan suorittaa tyyppikonversioita esimerkiksi desimaalimuotoisen numeron vai välittää rutiinille liukulukumuotoisena. (Ki-Joon Han, Exterlan Routines 1/2-2/2.) 9

13 4.1 Yhdistetyt lauseet Yhdistettyihin lauseisiin voi kerätä joukon SQL-lauseita yhteen lohkoon. Lauseet suoritetaan kokonaisuutena. Yhdistetty lause alkaa sanalla BEGIN ja päättyy sanaan END. Suoritettavat SQL-lauseet sijoitetaan niiden väliin. (Gallaher, s. 9.) 4.2 Valinta- ja toistorakenteet IF, THEN, ELSIF rakenteella ja CASE rakenteella voidaan ohjelmointikielten tapaan valita ehdoista riippuen suoritettavat lauseet. WHILE, LOOP, FOR ja REPEAT komennot mahdollistavat silmukkarakenteen. (Object Services and Consulting Inc., s 12.) 4.3 SQL komentojen suoritus INSERT, DELETE ja UPDATE komentojen suoritukselle oliomäärittelyjen mahdollisuus on asettanut uusia eheysmäärityksiä mm. Jos rivi listään alitauluun, sama rivi on lisättävä kaikkiin alitaulun ylitauluihin tai vastaavasti, jos alitaulun sarakeen arvoa muutetaan, se on muutettava myös ylitaulujen riveille. Jos ylitaulun saraketta muutetaan, kaikkiin sen alitauluihin saman sarakkeen arvo on päivitettävä. (Lausen Vossen, s. 149.) ALTER-komentoa voi soveltaa myös olioihin. ALTER-komentolla voi lisätä, muuttaa tai poistaa sarakkeita, ylitauluja, rajoitteita ja tietotyyppejä. (Object Services and Consulting Inc.:,s. 12.) 5 Yhteenveto SQL:ään on lisätty suuri määrä uusia piirteitä, joilla mahdollistetaan oliomallinen tietojenkäsittely SQL:llä. Uudet ominaisuudet vastaavat paljolti olio-ohjelmointikielten tapaa kuvata oliot eikä ainakaan perusasiat ole siinä mielessä ajatuksina uusia. Haasteen voisi kuvitella koskevan enemmän tietokantaohjelmistojen toimittajia. 10

14 Lähteet: Gallaher, Leonard, J.: Object SQL: Language Extensions for Object Data Management, National Institute of Standards and Technology, England, Ki-Joon Han: SQL3 Standardization, Kok-Kuk University, Korea. Lausen, Georg Vossen, Gottfried: Models and Languages of Object Oriented Databases. Addison-Wesley, Harlow, England, Object Services and Consulting Inc.: Sql3 Object Model. Schek, H.-J., Informationssysteme Kernfach luennon kalvomateriaali, Eidgenössische Technische Hochschule, Zürich,

OLIOT SQL-99:SSÄ. Katriina Kovalainen Relaatiotietokannat nyt! -seminaari. Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO

OLIOT SQL-99:SSÄ. Katriina Kovalainen Relaatiotietokannat nyt! -seminaari. Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO OLIOT SQL-99:SSÄ Katriina Kovalainen Relaatiotietokannat nyt! -seminaari Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO Helsinki 06.02.2003 Tiivistelmä SQL-standardia on kehitelty relaatiomallisesti

Lisätiedot

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009 PROSEDUURIT Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 11 TU00AA48-2002 TU10S1E Hannu Markkanen 22.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 Indeksit Indeksit Taulun

Lisätiedot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008 Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT Jouni Huotari S2008 2 Proseduurit Ohjelmamoduuleita, jotka voidaan tallettaa tietokantaan (DBMS:n tietohakemistoon)

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 DDL... 5 Tietokantaobjektien määrittely... 5 SQL:n tietotyypit... 6 Eheyssääntöjen määrittely... 9 Indeksin määrittely... 11 Syntaksikuvaukset...

Lisätiedot

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

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet A271117, Tietokannat Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: Leon Atkinson: core MySQL Ari Hovi: SQL-opas TTY:n tietokantojen perusteet-kurssin

Lisätiedot

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

Kirjasto Relaatiotietokannat Kevät 2001. Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina Kirjasto Kevät 2001 Auvinen Annemari Niemi Anu Harjoitustyö 7.4.2001 Sisällysluettelo 1. Yleiskuvaus... 3 2. Vaatimukset... 3 2.1. Toiminnalliset... 3 2.1.1. Sisäänkirjautuminen... 3 2.1.2. Nimikkeiden

Lisätiedot

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

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki 9.3.2010 HELIA TIKO-05 1 (22) SQL SQL... 2 Historiaa... 2 Standardit... 3 Käyttö... 4 Sql-komentojen kirjoittaminen... 5 DDL... 7 Tietokantaobjektien määrittely... 7 SQL:n tietotyypit... 8 Eheyssääntöjen määrittely...

Lisätiedot

3. Taulujen määrittely ja muuttaminen

3. Taulujen määrittely ja muuttaminen 3. Taulujen määrittely ja muuttaminen DDL: Taulujen luonti, muutos ja poisto DML: taulujen tietojen ylläpito Tapahtumien (transaktioiden) hallinta Näkymät, synonyymit ja muut tietokantaobjektit Taulujen

Lisätiedot

Java kahdessa tunnissa. Jyry Suvilehto

Java kahdessa tunnissa. Jyry Suvilehto Java kahdessa tunnissa Jyry Suvilehto Ohjelma Ohjelmointiasioita alkeista nippelitietoon n. 45 min Tauko 10 min Oliot, luokat ja muut kummajaiset n. 45 min Kysykää Sisältöä ei oikeasti ole 2x45 min täytteeksi,

Lisätiedot

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN 3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN DDL: TAULUJEN LUONTI, MUUTOS JA POISTO DML: TAULUJEN TIETOJEN YLLÄPITO TAPAHTUMIEN (TRANSAKTIOIDEN) HALLINTA NÄKYMÄT, SYNONYYMIT JA MUUT TIETOKANTAOBJEKTIT TAULUJEN

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat 29.3.2016 CSE-A1200 Tietokannat 29.3.2016 1 / 40 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat

Lisätiedot

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

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä LUOKAN MÄÄRITTELY Luokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion muodostimet ja luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Olion kopioiminen

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

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

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot) SQL sisältää operaatiot tietokannan sisällön muodostamiseen ja ylläpitoon: insert - uusien rivien vienti tauluun delete - rivien poisto update - rivien muutos 1 Insert lauseella on kaksi muotoa: insert

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu 13.11.2000 HELIA 1 (15) Luento 2.7 Toiminnallisuutta tietokantaan... 2 Deklaratiivinen eheysvalvonta... 2 Proseduraalinen eheysvalvonta... 3 Eheysvalvonnan suunnittelusta... 4 Sääntöjen määrittely... 4 Toteutusvaihtoehdot...

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Jyri Lehtonen (72039), jkoleh@utu.fi Azad Hajipour (72187), azhaji@utu.fi 10.6.2007 Sisältö 1. Tietokannan kuvaus... 1 1.1 Tietokannan rakenne... 1 1.2 Relaatiokaava

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

Tietokannat II -kurssin harjoitustyö

Tietokannat II -kurssin harjoitustyö Tietokannat II -kurssin harjoitustyö Olli Opiskelija (123), olli.opiskelija@foo.fi Maija Mallioppilas (321), maija.mallioppilas@foo.fi 13.3. 2007 1 Sisältö 1 Tietokannan kuvaus 3 1.1 Tietokannan rakenne..................................

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

HELIA 1 (14) Outi Virkki Tiedonhallinta

HELIA 1 (14) Outi Virkki Tiedonhallinta HELIA 1 (14) Luento Näkymät... 2 Relaatiotyypit... 2 Taulu - Tallennettu relaatio... 3 Näkymä - Virtuaalirelaatio... 3 Tulosrelaatio - Kyselyn tulos... 3 Otetaulut - Tauluun tallennettu kyselyn tulos...

Lisätiedot

SQL - STRUCTURED QUERY LANGUAGE

SQL - STRUCTURED QUERY LANGUAGE SQL Peruskomentoja SQL - STRUCTURED QUERY LANGUAGE SQL on tietokantojen käsittelyyn kehitetty kieli Esimerkkejä kielellä hoidettavistaa toiminnoista: Tietokannan rakenteen määrittely ja muuttaminen Kyselyt

Lisätiedot

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

HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät HAAGA-HELIA Heti-09 1 (12) Näkymät Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely...

Lisätiedot

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu HELIA 1 (21) Luento 4.1 Oliot ja Relaatiot... 2 Relaatiomalli... 2 Oliomalli... 2 Termejä... 4 Yhteensovituksen 3 tapaa... 5 1) Oliot relaatioina / tauluina ja RDBMS... 6 Olioluokka... 7 Olion identiteetti...

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

SELECT-lauseen perusmuoto

SELECT-lauseen perusmuoto SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää

Lisätiedot

Oliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos

Oliot ja tyypit. TIES542 Ohjelmointikielten periaatteet, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos Oliot ja tyypit TIES542 Ohjelmointikielten periaatteet, kevät 2007 Antti-Juhani Kaijanaho Jyväskylän yliopisto Tietotekniikan laitos 19. maaliskuuta 2007 Olion tyyppi? attribuutti on oikeastaan metodi,

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43

CS-A1150 Tietokannat CS-A1150 Tietokannat / 43 CS-A1150 Tietokannat 27.3.2018 CS-A1150 Tietokannat 27.3.2018 1 / 43 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan relaatioiden (taulujen) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

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

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 10 TU00AA48-2002 TU10S1E Hannu Markkanen 14.-15.11.2011 9/10/12 Helsinki Metropolia University of Applied Sciences 1 SQL: Monen taulun kyselyt

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys Tällä kurssilla on tutustuttu ohjelmistojen mallintamiseen oliomenetelmiä ja UML:ää käyttäen Samaan aikaan järjestetyllä kurssilla on käsitelty

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

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

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta Tiedonhallinnan perusteet H11 Ovien ja kulun valvontajärjestelmän tietokanta Nimi: Mikko Haapanen Opiskelijanumero: 0900568 Ryhmä: T09L Työ tehty: 15.3.2010 Mikko Haapanen 15.3.2010 1(7) 1. Asiakasvaatimukset

Lisätiedot

Makrojen mystinen maailma lyhyt oppimäärä

Makrojen mystinen maailma lyhyt oppimäärä Makrojen mystinen maailma lyhyt oppimäärä Makrot osana SAS-teknologiaa Yleiskuva Jouni Javanainen Aureolis lyhyesti Aureolis on jatkuvia Business Intelligence -palveluita tuottava asiantuntijaorganisaatio

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

Taulukot, silmukat ja muut joka koodin pikku veijarit

Taulukot, silmukat ja muut joka koodin pikku veijarit Taulukot, silmukat ja muut joka koodin pikku veijarit Janne Käki 7.9.6 MERKKI liikenne jono METRI para laku MOGARI ATRI psyki buutti ESINE pelottelu ellistäminen runsauden kuono TUNTI SARVI kusi assistentti

Lisätiedot

Kielioppia: toisin kuin Javassa

Kielioppia: toisin kuin Javassa Object Pascal Pascal kielen oliolaajennus (Inprise/Borland:n oma) luokat Voit uudelleenkäyttää luomiasi objekteja esim. komponentteja Periytyminen Kielioppia: toisin kuin Javassa Ei eroa isojen ja pienien

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance) Sisällys JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys Periytyminen (inheritance) Näkyvyys (visibility) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E. Hyvönen: Java Osa

Lisätiedot

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44

CS-A1150 Tietokannat CS-A1150 Tietokannat / 44 CS-A1150 Tietokannat 2.4.2019 CS-A1150 Tietokannat 2.4.2019 1 / 44 Oppimistavoitteet: tämän luennon jälkeen Tiedät, miten tietokannan taulujen (relaatioiden) määrittelyt kirjoitetaan SQL:llä. Osaat päivittää

Lisätiedot

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

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

TIETOKANTOJEN PERUSTEET MARKKU SUNI

TIETOKANTOJEN PERUSTEET MARKKU SUNI TIETOKANTOJEN PERUSTEET MARKKU SUNI SQL - KIELI TIETOJEN MUOKKAUS MARKKU SUNI Tarkastellaan tauluissa olevien tietojen muokkausta muokkauskäskyjä: INSERT UPDATE DELETE Kysymys kuuluu: Voiko tietoja muokata

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

SQL:N PERUSTEET MARKKU SUNI

SQL:N PERUSTEET MARKKU SUNI SQL:N PERUSTEET MARKKU SUNI Relaatiomallisen tietokannan käsittely Tietojen saanti, talletus ja päivitys tapahtuu SQL-kielellä Yhtä operaatiota sanotaan kyselyksi (query) Kyselyjä voidaan laittaa peräkkäin

Lisätiedot

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public) Tietorakenteet JAVA-OHJELMOINTI Osa 5: Tietorakenteita Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto Olioita ja tietoja voidaan organisoida määrämuotoisiksi tietorakenteiksi Hyödyllisiä

Lisätiedot

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

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); Tietokannat SQL-peruskomentojen pikaopas CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi); INSERT INTO table VALUES(val1,val2,... ); Lisää tauluun

Lisätiedot

KOHDELUOKAN MÄÄRITTELY

KOHDELUOKAN MÄÄRITTELY KOHDELUOKAN MÄÄRITTELY Kohdeluokka, mitä se sisältää Luokan määrittely Olion ominaisuudet eli attribuutit Olion metodit Olion luonti Olion tuhoutuminen Metodin kutsu luokan ulkopuolelta Taulukon alkiona

Lisätiedot

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

HAAGA-HELIA TIKO-05 1 (19) ICT23a Tietokannan suunnittelu ja toteutus O.Virkki 4.9.2008 HAAGA-HELIA TIKO-05 1 (19) Relaatiomalli Relaatiomalli... 2 Peruskäsitteet... 3 Relaatio... 5 Attribuutti ja arvojoukko... 6 Monikko... 7 Säännöt... 8 Yksilön eheyssääntö ja Pääavain... 9 Viite-eheyssääntö

Lisätiedot

Haskell ohjelmointikielen tyyppijärjestelmä

Haskell ohjelmointikielen tyyppijärjestelmä Haskell ohjelmointikielen tyyppijärjestelmä Sakari Jokinen Helsinki 19. huhtikuuta 2004 Ohjelmointikielten perusteet - seminaarityö HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 1 Johdanto 1 Tyyppien

Lisätiedot

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi

Imperatiivisen ohjelmoinnin peruskäsitteet. Meidän käyttämän pseudokielen lauseiden syntaksi Imperatiivisen ohjelmoinnin peruskäsitteet muuttuja muuttujissa oleva data voi olla yksinkertaista eli primitiivistä (esim. luvut ja merkit) tai rakenteista jolloin puhutaan tietorakenteista. puhuttaessa

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX SQL - perusteet SQL - yleistä Esa Salmikangas InMics SE Oy versio 16.6.2003 SQL - perusteet 1 SQL - perusteet 2 SQL Structured Query Language SQL on tietokantojen käsittelyyn kehitetty kieli yleisimmät

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

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

Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa Tietojen tallennusrakenteet Jokaisella tiedostolla on otsake (header), joka sisältää tiedostoon liittyvää hallintatietoa tiedot tiedostoon kuuluvista lohkoista esim. taulukkona, joka voi muodostua ketjutetuista

Lisätiedot

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU Ohjelmointi 2 Jussi Pohjolainen TAMK» Tieto- ja viestintäteknologia Tietotyypeistä C++ - kielessä useita tietotyyppejä Kirjaimet: char, wchar_t Kokonaisluvut: short, int, long Liukuluvut: float, double

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Verilogvs. VHDL. Janne Koljonen University of Vaasa

Verilogvs. VHDL. Janne Koljonen University of Vaasa Verilogvs. VHDL Janne Koljonen University of Vaasa Sälää Huom! Verilogistauseita versioita: 1995, 2001 ja 2005. Kommentit Javasta tutut // ja /* */ ovat kommenttimerkkejä. Case sensitivity Isot ja pienet

Lisätiedot

Oliot viestivät metodeja kutsuen

Oliot viestivät metodeja kutsuen 6. Metodit 6.1 Sisällys Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit). Rakentajat. Metodien ja muun luokan sisällön järjestäminen. 6.2 Oliot viestivät metodeja kutsuen

Lisätiedot

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla 2.5. YDIN-HASKELL 19 tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla kirjaimilla. Jos Γ ja ovat tyyppilausekkeita, niin Γ on tyyppilauseke. Nuoli kirjoitetaan koneella

Lisätiedot

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.

Lisätiedot

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences TIEDONHALLINTA - SYKSY 2011 Kurssikoodi: Saapumisryhmä: Luento 8 XX00AA79-3013 TU12S2 Pasi Ranne 25.9.2013 25/9/13 Helsinki Metropolia University of Applied Sciences 1 Harjoitustyö Harjoitustöiden tilanne

Lisätiedot

Ohjelmointi 2 / 2010 Välikoe / 26.3

Ohjelmointi 2 / 2010 Välikoe / 26.3 Ohjelmointi 2 / 2010 Välikoe / 26.3 Välikoe / 26.3 Vastaa neljään (4) tehtävään ja halutessa bonustehtäviin B1 ja/tai B2, (tuovat lisäpisteitä). Bonustehtävät saa tehdä vaikkei olisi tehnyt siihen tehtävään

Lisätiedot

HELIA 1 (17) Outi Virkki Tiedonhallinta

HELIA 1 (17) Outi Virkki Tiedonhallinta HELIA 1 (17) Luento 4.1 Looginen suunnittelu... 2 Relaatiomalli... 3 Peruskäsitteet... 4 Relaatio... 6 Relaatiokaava (Relation schema)... 6 Attribuutti ja arvojoukko... 7 Monikko... 8 Avaimet... 10 Avain

Lisätiedot

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

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 HSMT Tietokannoista Ville Leppänen HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32 Missä mennään... 1. Johdanto (1h) 2. Säikeet (2h) 3. Samanaikaisuudesta (2h) 4. Hajautetuista sovelluksista (1h)

Lisätiedot

Periytyminen (inheritance)

Periytyminen (inheritance) 1 Periytyminen (inheritance) Mitä periytyminen on? Yli- ja aliluokka Konstruktorit Get- ja set-metodi Muut metodit tostring Yksinkertainen pääohjelma 1 Mitä periytyminen on? Periytymisen avulla olemassa

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Yhdiste, leikkaus, erotus ym.

Yhdiste, leikkaus, erotus ym. Yhdiste, leikkaus, erotus ym. SQL tarjoaa myös relaatioalgebran operaatiot yhdiste, leikkaus, erotus Näissä operaatioissa taulujen on oltava samarakenteisia, ts. niissä on oltava samantyyppiset vastinsarakkeet.

Lisätiedot

812336A C++ -kielen perusteet, 21.8.2010

812336A C++ -kielen perusteet, 21.8.2010 812336A C++ -kielen perusteet, 21.8.2010 1. Vastaa lyhyesti seuraaviin kysymyksiin (1p kaikista): a) Mitä tarkoittaa funktion ylikuormittaminen (overloading)? b) Mitä tarkoittaa jäsenfunktion ylimääritys

Lisätiedot

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes) Kääreluokista Javan alkeistietotyypit ja vastaavat kääreluokat Autoboxing Integer-luokka Double-luokka Kääreluokista Alkeistietotyyppiset muuttujat (esimerkiksi

Lisätiedot

OpenOffice.org Base 3.1.0

OpenOffice.org Base 3.1.0 OpenOffice.org Base 3.1.0 Sisällysluettelo 1 Tietokannan luominen...1 2 Taulukon eli taulun luominen...3 3 Kysely...9 4 Raportti...14 1 Tietokannan luominen Tietokanta on kokoelma tietoja, joilla on yhteys

Lisätiedot

TIE Principles of Programming Languages CEYLON

TIE Principles of Programming Languages CEYLON TIE-20306 Principles of Programming Languages CEYLON SISÄLLYSLUETTELO 1. YLEISTIETOA KIELESTÄ JA SEN KEHITTÄMISESTÄ... 1 2. CEYLONIN OMINAISUUKSIA... 2 2.1 Modulaarisuus... 2 2.2 Tyypit... 2 2.3 Muita

Lisätiedot

Muistutus aikatauluista

Muistutus aikatauluista Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu

Lisätiedot

7/20: Paketti kasassa ensimmäistä kertaa

7/20: Paketti kasassa ensimmäistä kertaa Ohjelmointi 1 / syksy 2007 7/20: Paketti kasassa ensimmäistä kertaa Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot