OLIOT SQL-99:SSÄ. Katriina Kovalainen Relaatiotietokannat nyt! -seminaari. Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO
|
|
- Timo Uotila
- 6 vuotta sitten
- Katselukertoja:
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 Helsinki 06.02.2003 Tiivistelmä SQL-standardia on kehitelty relaatiomallisesti
LisätiedotPROSEDUURIT, 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ätiedotTIEDONHALLINTA - 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ätiedotProseduurit, 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ätiedotHELIA 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ätiedotSQL-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ätiedotKirjasto 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ätiedotHELIA 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ätiedot3. 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ätiedotJava 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ätiedot3. 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ätiedotIDL - 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ätiedotATK 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ätiedotCSE-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ätiedoton 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ätiedotOhjelmointiharjoituksia 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ätiedotMuuttujatyypit 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ätiedotTaulukot. 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ätiedotInsert 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ätiedotTietueet. 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ätiedotHELIA 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ätiedotTietokannat 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ätiedotSisä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ätiedotOlio-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ätiedotSisä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ätiedotJava-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ätiedotJAVA-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ätiedotTietokannat 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ätiedotMetodit. 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ätiedot1. 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ätiedotHELIA 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ätiedotSQL - 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ätiedotHAAGA-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ätiedotHELIA 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ätiedot18. 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ätiedotSisä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ätiedotYleistä. 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ätiedotSisä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ätiedotSELECT-lauseen perusmuoto
SQL: Tiedonhaku SELECT-lauseen perusmuoto SELECT FROM WHERE ; määrittää ne sarakkeet, joiden halutaan näkyvän kyselyn vastauksessa sisältää
LisätiedotOliot 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ätiedotOhjelmoinnin 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ätiedot1.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ätiedotCS-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ätiedotTIEDONHALLINTA - 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ätiedotHarjoitus 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ätiedotTieto- ja tallennusrakenteet
Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)
LisätiedotTietokannat. 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ätiedotJava-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ätiedotOhjelmistojen 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ätiedot1.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ätiedotTiedonhallinnan 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ätiedotMakrojen 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ätiedotSisä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ätiedotTaulukot, 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ätiedotKielioppia: 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ätiedotSisä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ätiedotCS-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ätiedotOperaattoreiden 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ätiedotOpintojakso 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ätiedotLuento 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ätiedotA274101 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ätiedotTutoriaalilä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ätiedotOliosuunnitteluesimerkki: 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ätiedotOhjelmoinnin 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ätiedot811120P 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ätiedotTIETOKANTOJEN 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ätiedotITKP102 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ätiedotTaulukot. 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ätiedotSQL: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ätiedotTietorakenteet. 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ätiedotTietokannat. 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ätiedotKOHDELUOKAN 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ätiedotHAAGA-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ätiedotHaskell 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ätiedotImperatiivisen 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ätiedot9. 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ätiedotSQL. ! 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ätiedotSisä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ätiedot15. 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ätiedotJokaisella 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ätiedotOhjelmointi 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ätiedot15. 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ätiedotVerilogvs. 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ätiedotOliot 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ätiedottää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ätiedotEsimerkki. 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ätiedotTIEDONHALLINTA - 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ätiedotOhjelmointi 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ätiedotHELIA 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ätiedotHSMT 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ätiedotPeriytyminen (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ätiedotJavan 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ätiedotYhdiste, 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ätiedot812336A 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ätiedotKää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ätiedotOpenOffice.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ätiedotTIE 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ätiedotMuistutus 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ätiedot7/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ätiedot811120P 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