Luento 9
Multimediatietokannat, paikkatietokannat, oliorelaatiotietokannat
Multimediatietokannat
Tavallinen relaatiotietokanta pystyy tallentamaan vain hyvin yksinkertaisia tietotyyppejä, joilla pyritään kuvaamaan halutut asiat. Käytössä on lähinnä seuraavat tietotyypit:
- merkkijonot
- reaaliluvut
- kokonaisluvut
- päiväykset
- aikaleimat
- bittijonot.
Erikoisemman datan tallentaminen on tehtävä hyödyntäen:
- BLOB (Binary Large OBject) –talletustyyppejä
- viittaamalla kyseisen datan sijaintipaikkaan tiedostojärjestelmässä.
Multimediadata aiheuttaa tietokannan talletuskyvylle ja ominaisuuksille aivan uusia vaatimuksia. Multimediatietokannan täytyy pystyä helposti tallettamaan kaikkia mahdollisia multimediadatan peruslajeja monessa eri formaatissa:
- Teksti (DOC, RTF, HTML, SGML)
- Kiintokuva (GIF, JPG, BMP, PS, EPS, TIFF, PCX, PNG)
- Ääni (MP3, MIDI, WAV, AU, AIFF)
-
Liikkuva kuva (AVI, MPEG1, MPEG2, QT)
- Mahdollisesti muin aistein havaittavat ilmiöt kuten haju, maku ja kosketus.
Multimediadokumentit ovat paljon suurempia kuin perinteisesti tietokantaan talletetut dokumentit eivätkä välttämättä sovellu ollenkaan tavalliseen relaatiotietokantaan talletettaviksi.
- Videodata
- Kompressoimaton (pakkaamaton) tunnin video vaatii tilaa n. 72 GB!
- MPEG-formaatissa tunnin video vaatii tilaa n. 720 MB.
- Audiodata
- Tunti CD-tasoista musiikkia vaatii n. 630 MB.
Video ja audio vaativat laitteistolta tietyn esitysnopeuden, jotta ihmisen aistit havaitsevat informaation. Eri mediatyypit täytyy esittää synkronoidusti ihmiselle (Esim. ääni ja kuva). Multimediatietokannalta vaaditaan seuraavia ominaisuuksia:
- Reaaliaikavaatimus tiedon saannille ja esittämiselle
- Suuri tiedon tallennuskapasiteetti
- Vaatimuksia mallinnusominaisuuksille, joita ei esiinny kaupallis-hallinnollisissa tietokannoissa (reaaliaikaisuus, datavirran synkronointi)
- Multimediakyselyjen tuki
- Multimedialiittymät ja interaktiivisuus
- Eri medialajien integrointi yhteinäisiksi dokumenteiksi ja niiden yhtenäinen esittäminen
Multimediadata vaatii rinnalleen metadataa, johon koodataan informaatiota multimediadatasta ja sen informaatiosta.
- Sisältöriippuva (content-dependent) metadata.
- Riippuu vain objektin sisällöstä ja voidaan etsiä usein automaattisesti. Esim. kasvonpiirteiden tai tukan värin toteaminen kuvasta, audiossa esiintyvien hiljaisten kohtien tai melun tunnistaminen.
- Sisältöä kuvaileva (content-descriptive) metadata.
- Kuvailee multimediadatan koodaamaa informaatiota, mutta ei voida johtaa automaattisesti kohteena olevasta multimediadatasta.. Esim. ihmisen tunnetila kuvassa, maiseman kauneus, kohtaukset väkivaltaisuus video-otoksessa.
- Sisältöriippumaton (content-independent) metadata.
- Liitetään perusdataan muun tiedon perusteella. Esim. Kuvassa olevan henkilön nimi, elokuvan budjetti, kuvauspäivä ja laitteisto, jolla audo valmistettiin.
Kyselyjen kohdistaminen multimediadataan on huomattavasti monimutkaisempaa kuin tavalliseen dataan.
- Hae kaikki kuvat, joissa esiintyy vihreän värinen talo.
- Hae kaikki äänitteet, joissa laulaa sopraano.
- Hae kaikki ne videopätkät, joissa esiintyy takaa-ajoa.
Täytyy ottaa huomioon myös osittaiset hakuosumat. Perinteisessä tietokannassa vain tarkka osuma kelpasi. Osittainen osuma tarkoittaa, että vain joku ehdoista osuu tai että ehto täyttyy jossain mielessä melkein.
SQL99 pyrkii tukemaan oliopiirteitä ja multimediaa. Laajennettava tyyppijärjestelmä,
jolla voidaan luoda uusia tyyppejä sisäänrakennetuista tyypeistä ja aiemmin luoduista.
Perustyyppeihin kuuluu BLOB. Lisäksi tulossa muita multimediasuuntautuneita tietotyyppejä
ja funktiokirjastoja.
Esimerkkejä
Paikkatietojärjestelmät (GIS)
Paikkatieto on paikkaan sidottua tietoa, joka koostuu:
- sijaintitiedosta
- ominaisuustiedosta
- yhteys sijaintitiedon ja ominaisuustiedon välillä
Paikkatietojärjestelmä (geographical information system, GIS) on tietojärjestelmä, jolla voidaan käsitellä paikkatietoja. Järjestelmä on yleensä tietokantapohjainen.
Sijaintitiedot
- koordinaatteja, geometriatietoa ja topologiatietoa
- tavallisimmin maantieteellisiä tietoja
- pituus- ja leveyspiiritiedot sekä korkeus
- Vektorimuoto
- tieto rakentuu pisteistä, viivoista ja alueista.
- Matriisimuoto
- Tieto esitetään matriisina, jonka alkio on pikseli.
Sijaintitiedot perustuvat yleensä digitaaliseen karttaan.
Paikkatietojärjestelmän rakentaminen on hankalaa. Onneksi löytyy valmiita GIS-tuotteita joita voidaan käyttää yhdessä tietokannan hallintajärjestelmien kanssa:
Ominaisuustiedot talletetaan tietokannanhallintajärjestelmään ja sijaintitiedosta huolehtii GIS-ohjelma. Tiedot kytketään yhteen yhteisten attribuuttien avulla.
Oliotietokannat
Oliotietokannat mahdollistavat monimutkaisia sisäkkäisiä ja dynaamisesti muuttuvia rakenteita
Tarjoavat kyselyjen tueksi mielivaltaisia ja monimutkaisia operaatioita, joita käyttäjät voivat itse määritellä (vrt. select SQL:ssä)
Mahdollistavat erityyppisten, usein yhdessä käsiteltävien olioiden tallentamisen fyysisesti lähelle toisiaan.
Milloin kannattaa käyttää oliotietokantaa?
- Jos relaatiotietokannassa taulujen määrä kasvaa räjähdysmäisesti
- Jos ilmenee monimutkaisten liitosten tarvetta
- Jos sovelluksessa käytetään oliotekniikkaa
- Jos talletettava tieto on monimutkaista, kuvia, ääntä, videokuvaa, muuttuvan kokoisia rakenteita
- Jos kyseessä hajautettu ympäristö
- Jos käyttö edellyttää pitkiä tapahtumia
Oliokäsitteitä
Jokaisella tietokantaan talletetulla oliolla on oma yksilöllinen tunniste (object identifier, OID).
- OID on muuttumaton
- OID on ainutkertainen
Olion ominaisuuksia
- oliotunnisteen lisäksi oliot eroavat toisistaan ominaisuuksiensa perusteella
- Ominaisuudet voivat olla rakenne- tai käyttäytymisperusteisia
- Olion rakenne määrittyy tyyppimäärittelyn mukaan
Olioluokka
- Määrittää joukon, joka muodostuu rakenteeltaa ja ominaisuuksiltaan samanlaisista olioista.
- Malli/muotti, jonka mukaan voidaan uusia luokan
Kapselointi (encapsulation)
- periaate, jonka mukaan kootaan yhteen toisiinsa liittyvät asiat eli tietokannan tapauksessa tiedon rakenne ja sallitut metodit
- Osa tiedoista voi olla sisäisiä (private) ja osa julkisia (public)
- Sisäisiä tietoja voidaan käsitellä vain metodien avulla
Kompleksit oliot
- Kompleksi olio voi olla rakenteeton tai rakenteellinen
- rakenteeton (unstructured) kompleksi olio on esimerkiksi bittikarttana esitettävä kuva
- rakenteinen (structured) kompleksi olio muodostetaan yksinkertaisemmmista olioista.
Laajennettavuus
-
Oliomallia voidaan laajentaa uusilla tietotyypeillä ja operaatioilla jo olemassaolevien (built-in) tyyppien lisäksi
Periytyminen (inheritance)
- Luokat muodostavat hierarkian, jossa aliluokat perivät yliluokkiensa ominaisuudet.
- Aliluokille voidaan määritellä lisäominaisuuksia.
- Moniperinnässä (multiple inheritance) aliluokalla on useampia yliluokkia, joilta se voi periä ominaisuuksia.
Syrjäyttäminen (override), kuormittaminen (overloading) ja myöhäinen (dynaaminen) sidonta (late binding)
- Määritellään jokin operaatio luokkahierarkian ylimmällä tasolla
- Aliluokassa määritellään sama operaatio uudelleen eli syrjäytetään yliluokan määrittely
- yksi operaatio voi siis osoittaa useampaan eri ohjelmaan (kuormittaminen)
- Vasta ajonaikana ratkeaa, minkä aliluokan määrityksen mukaan operaatio suoritetaan (myöhäinen sidonta)
Olio-relaatiomalli
Sybasen Adaptive server on ns. olio-relaatiotietokanta, joka tukee suoraan Java-kielen olioiden sijoittamista tietokantaan.
Lisätään tyontekijat tauluun uusi työntekija, jonka osoitteena on Java-luokan Osoite esiintymä.
INSERT INTO tyontekijat(ID, nimi, Osoite)
VALUES (1235, 'Kalle Kehveli',
new Osoite ('piilokuja 13', '11111 mörskäkylä', 'Suomi')
Lisätään tyontekijat-tauluun uusi työntekijä, jonka osoitteena on Java-luokasta Osoite perityn
SuomOsoite-luokan esiintymä.
INSERT INTO tyontekijat (ID, nimi, osoite)
VALUES (1235, 'Ville Kehveli',
new SuomOsoite('Piilokuja 14', '11111 Mörskäkylä')
Etsitään työntekijät, joiden katuosoite on Piilokuja 14.
SELECT name
FROM tyontekijat
WHERE Osoite.katu = 'Piilokuja 14'