Tietokanta
Wikipedia
Tietokanta on tietotekniikassa käytetty termi tietovarastolle. Se on kokoelma tietoja, joilla on yhteys toisiinsa. Tietokannan ei välttämättä tarvitse olla sähköisessä muodossa, vaan sellaista voidaan pitää esim. kynällä ja paperilla. Esimerkiksi kalenteri on tietokanta.
Tietokanta saattaa edustaa jotain selvästi rajattua kohdetta reaalimaailmasta. Tällainen kohde voi olla esimerkiksi yrityksen keräämät tiedot asiakkaistaan. Jotta tietokanta olisi toimiva, on sen osien välillä oltava looginen yhteys.
Tietokantojen koot voivat vaihdella suuresti, yhteen tiedostoon tallennetuista taulukoista hyvin suuriin tietokantoihin joissa on useita miljoonia tietueita lukuisista kiintolevyistä koostuvilla levypakoilla. Tietokantaan voidaan tallentaa eri formaateissa olevaa tietoa, esim. tekstiä, ääntä ja videokuvaa.
Sisällysluettelo |
[muokkaa] Tietokantojen historiaa
Ensimmäiset nykyisten tietokantojen edeltäjät kehitettiin 60-luvulla. Alan pioneeri oli Charles Bachman.
Relaatiotietokantamallin ja käsittelyteorian kehitti Edgar F. Codd vuonna 1970. Codd työskenteli IBM:n tutkimuslaboratoriossa ja hän johti ensimmäisten relaatiotietokantojen testiversioiden kehitystyötä. Vuosina 1973-1976 IBM laboratoriossa kehitettiin relaatiotietokannan prototyyppiä nimeltä System R. IBM:n kaupallinen tietokantatuote DB2 julkaistiin 1982.
Tietokannat on käytännöllisintä luokitella tuetun ohjelmointimallin mukaan. Muutamat malleista ovat olleet laajalti käytössä jo jonkin aikaa. Hierarkkinen malli toteutettiin ensimmäisenä, sen jälkeen verkkomalli, sitten relaatiomalli ohitti ne niin kutsutun "Flat-File"-mallin kanssa, joka oli helppo toteuttaa vaatimattomiinkin alustoihin. Hierarkkinen, verkko ja Flat-tiedostomalli eivät perustu vahvaan teoreettiseen pohjaan niin kuin relaatiomalli, vaan ne ovat syntyneet laitteiston ja ohjelmointiteknisten rajoitteiden vaikutuksesta.
Olio-ohjelmoinnin yleistyttyä myös tietokantoja on kehitetty vastaamaan oliomallin asettamiin tarpeisiin. On kehitetty puhtaita oliotietokantoja sekä perinteisiin relaatiokantoihin on lisätty olio-ohjelmointia tukevia ominaisuuksia. Jälkimmäisistä käytetään nimeä olio-relaatiotietokannat.
[muokkaa] Tietokannat käytännössä
Tietokantoja käytetään monissa sovelluksissa liki jokaisella sovellusalueella. Tietokannat suositellaan suurien monen käyttäjän järjestelmien tiedon tallennusmekanismiksi silloin kun tarvitaan koordinaatiota usean käyttäjän välillä. Jopa yksittäiselle käyttäjälle tietokanta voi olla sopiva ratkaisu, ja monet sähköpostiohjelmat ja kalenterisovellukset perustuvat standardinmukaiseen tietokantateknologiaan.
[muokkaa] Relaatiotietokantajärjestelmiä
[muokkaa] Oliotietokantajärjestelmiä
- Db4o
[muokkaa] Transaktiot ja samanaikaisuus
Lisänä usemmat käytännön tietokannat pyrkivät toteuttamaan transaktiomallin jolla on halutut tiedon oikeellisuuden säilytysominaisuudet. Ihannetapauksessa tietokantaohjelmisto noudattaa ACID-sääntöjä:
- Atomisuus (Atomicity) - kaikki tai ei mitään. Jokainen operaatio pitää suorittaa tai sitten ei mitään niistä suoriteta. (Transaktiot joita ei pystytä viemään loppuun täytyy peruuttaa kokonaisuudessaan.)
- Oikeellisuus (Consistency) - jokaisen transaktion jäljiltä tietokannan tulee olla oikeellisessa tilassa.
- Eristys (Isolation) - transaktiot eivät saa vaikuttaa toisiinsa ja keskeneräinen suoritus ei saa näkyä muille transaktioille.
- Kestävyys (Durability) - onnistuneiden transaktioiden pitää säilyä mahdollisen kaatumisenkin jälkeen.
Käytännön toteutuksissa useimmat tietokantajärjestelmät joustavat joidenkin näiden sääntöjen noudattamisessa paremman suorituskyvyn saavuttaakseen.
Samanaikaisuuden hallinta on menetelmä jolla varmistetaan että transaktiot ajetaan turvallisella tavalla ACID-sääntöjä noudattaen. Tietokantajärjestelmän pitää pystyä varmistamaan että vain sarjallistettavat, palautettavat operaatiot ovat sallittuja ja että mitään toimintoja toteutetuista transaktioista ei menetetä silloin kun palautetaan kanta tilaan ennen peruutettua transaktiota.
[muokkaa] Tietokannan oikeudellinen suoja
Tekijänoikeuslaissa Tekijänoikeus erilaisille tietokannoille on myönnetty määräaikainen oikeussuoja. Lain tietokanta-käsite on toinen kuin tekniikan. Suojatun tietokannan ei tarvitse olla edes sähköinen. Oikeudellisen suojan edellytyksenä on merkittävä panostus tietokannan luomiseen tai järjestämiseen.