Tik-76.115 Tekninen määrittely

Aiheen nimi

http://
Viimeksi päivitetty .


Sisällysluettelo

Yhteenveto
1. Johdanto

2. Järjestelmän yleiskuvaus
3. Arkkitehtuurin kuvaus 4. Moduli (ja prosessi) -kuvaukset

Yhteenveto

Content Provider's Tool eli CPT on sisällöntuottajan työkalu, jolla käsitellään, muokataan, lisätään ja poistetaan dokumenteihin liittyvää metadataa. Projekti on osa TKK/TAI tutkimuskeskuksen SmartPush-projektia, jossa tutkitaan älykkäiden agenttien käyttöä informaation täsmäjakelussa. Tällä työkalulla tyypillisesti esimerkiksi toimittaja tai informaatikko voi käsitellä dokumentin metadataa, jota sitten käytetään hyväksi toimitettaessa asiakkaille heidän haluamiaan dokumentteja. Tässä teknisessä määrittelyssä esitetään järjestelmän tekninen arkkitehtuuri. 

Ohjelma tehdään JBuilder 1.0-kehitysvälineellä Java-kielellä käyttäen hyväksi välineen tarjoamia luokkakirjastoja. Java Development Kitin versionumero on 1.1. Tietokantaliityntä tehdään JDBC API 1.20 -rajapinnalla. Toteutuksessa käytetään hyväksi JBuilderin tarjoamia DataSettejä. DataSet on yksi Borlandin JBCL-luokkakirjastoon kuuluvista tietokantojen käsittelyluokista, joissa on toteutettu valmiiksi mm. tiedon järjestämis-, suodatus- ja etsintätoimintoja. Päätimme käyttää luokkia ohjelmassa, koska ne helpottavat mm. käyttöliittymän toteutusta merkittävästi. Tietokannasta kyselyllä luotuun DataSet-olioon on mahdollista lisätä ohjelmassa muistinvaraisia apusarakkeita, joita ei tallenneta tietokantaan. Lisätyt sarakkeet voivat sisältää esim. mitä tahansa Object-tyyppisiä olioita.

Tietokantana käytetään Solid-tietokantaa, johon on myöskin JDBC-ajuri. Tietokantassa ylläpidetään tuettavia dimensioita ja niiden hiererkioita sekä eri versioita. Versioinnin avulla voidaan myöhemmin kutakin dokumentti-instanssia tutkia kulloisenkin hierarkian avulla. Tietokannassa on kymmenen taulua, joista sovellus käsittelee kolmea eli dokumentin identifioivaa Documents-taulua, dimension arvon identifioivaa DocumentNodes-taulua sekä tuntemattoman binäärisen metadatan talletukseeen tarkoitettua BinaryData-taulua. Muissa seitsemässä taulussa ylläpidetään järjestelmän tukemia dimensioita ja hierarkioita sekä niiden versioita. Näitä ainoastaan pääkäyttäjä voi muuttaa. Tällä saavutetaan yhtenäinen käsittelykehikko.

1. Johdanto

1.1 Järjestelmän tavoite ja käyttäjät

Sisällöntuottajan työkalu eli Content Provider's Tool on järjestelmä, jota käytetään internet-dokumentin metatiedon lukemiseen, lisäämiseen ja käsittelemiseen. Tavoitteena on luoda tiedontuottajan työkalu, jolla mahdollisimman joustavasti ja selkeästi lisätään sekä muokataan materiaalien metadataa ja siirretään se jatkokäsittelyä varten. Koska metadatarakenteet muuttuvat ajan kuluessa, täytyy järjestelmän olla sopeutuva muuttuviin metadatamäärittelyihin.

Projekti liittyy TKK/TAI:n tutkimusprojektiin SmartPush, jossa tutkitaan älykkäiden agenttien käyttöä informaation täsmäjakelussa. Ko. tutkimusprojektissa ovat mukana teollisuuspartnereina mm. Tele, WSOY ja Aamulehti-yhtymä. CPT-projekti on osa kokonaisuutta, jossa metatietoa pyritään hyödyntämään siten, että push-tekniikalla voitaisiin "pukata" asiakkaalle dokumentteja hänen toivomastaan aihepiireistä. Kun sisällöntuottaja pystyy hallitsemaan ja tuottamaan metadataa, voi agentti tehokkaammin tehdä päätöksiä siitä, miten tietoa käsitellään ja hyödynnetään. Kuvassa 1 esitetään CPT:n sijoittuminen SmartPush-kokonaisuuteen. Näet kuvan suurempana klikkaamalla tästä.

Kuva 1. SmartPush-kokonaisuus (Teppo Kurki, TAI Tutkimuskeskus, 1997)

 

CPT järjestelmä on tarkoitettu sisällöntuottajien käyttöön ja sen tehtävät ovat:

 

 

1.2 Määritelmät ja termistö

Järjestelmään ja sen dokumentteihin liittyviä termejä ovat:

 

1.3 Dokumentin jaottelu

Tekninen määrittely on jaoteltu seuraavasti:

2. Järjestelmän yleiskuvaus

2.1 Käyttäjät ja käyttöympäristö

Järjestelmän käyttäjät ovat sisällöntuottajia, jotka tyypillisimmin työskentelevät esimerkiksi lehden toimituksessa. Henkilöt voivat olla esimerkiksi toimittajia tai informaatikkoja. Järjestelmän käyttäjät eivät ole välttämättä kovinkaan teknisiä henkilöitä, joten toiminnan on oltava suhteellisen helppokäyttöistä. Tämän vuoksi metatiedon visualisointiin käyttöliittymässä tulee kiinnittää erityistä huomiota. Tyypillisesti käyttäjä käsittelee dokumentteja noin 10-30 kappaletta päivässä ja käy läpi noin 20 eri dimensiota kussakin dokumentissa.

Käyttöympäristönä on Windows NT 4.0, tietokantana on Solid jossa on JDBC-ajuri. Lisäksi järjestelmä käynnistää web-selaimen dokumentin näyttöä varten, joten se tarvitaan myös. Selaimen valinta toteutetaan todennäköisesti niin, että sen valinta on konfiguroitavissa. Javan käyttö mahdollistaa myöskin järjestelmän siirtämisen myös muillekin alustoille kuin Windowsiin, mutta alkuvaiheessa se toteutetaan tuolle alustalle. Kuvassa 2 on esitetty CPT kokonaisuutena.


Kuva 2. CPT Content Provider's Tool

2.2 Liittymät ympäristöön

Järjestelmä toimii löyhästi integroituna tuotannon järjestelmiin lehden toimituksessa. Syötteenä annetaan dokumentin URL ja mahdollisten erillisten metadatatiedostojen sijainti. Käyttäjällä on normaalit verkkoyhteydet koneessaan ja hän voi niiden puitteissa antaa dokumentin sijainnin. Järjestelmä tämän projektin puitteissa pystyy tulkitsemaan RDF- ja ASCII-muotoista metadataa.

Tietokantaa käytetään metatietopuun ja sen eri versioiden säilyttämiseen, dokumentti-instanssien (jo käsitellyiden dokumenttien metadatan) säilyttämiseen. Lisäksi tietokantaan laitetaan erilaiset järjestelmän vaatimat konfiguraatiotiedot. Liittymä tietokantaan toteutetaan JDBC-rajapinnalla. SmartPush-projektin muut välineet tulevat myöskin käyttämään tietokantaa hyväkseen. Output-lohkon tulosteet ohjataan tiedostojärjestelmään käyttäjän määrittelemään paikkaan joko omalle työasemalle tai verkkolevylle.

2.3 Toteutustyökalut

Ohjelma toteutetaan Java-kielellä Windows NT -ympäristöön käyttäen Borland JBuilder -kehitysympäristöä ja sen mukana toimitettavia luokkakirjastoja, kuten BWT-käyttöliittymäluokkia. Vaikka ohjelmistosta tehdään sellainen, että se on mahdollisimman helposti siirrettävissä muihin ympäristöihin, käyttöliittymä suunnitellaan MS Windows -käytäntöjen mukaiseksi

2.4 Järjestelmä toiminnallisina lohkoina

Järjestelmä sisältää neljä osaa, input-lohkon, metadatakäsittelijän metadatakandidaattien generoijan ja output-lohkon. Input-lohkolle syötteenä on dokumentin ja mahdollisten erillisten metadatatiedostojen URL:t. Input-lohko muuntaa niiden sisältämää metadataa metadatakäsittelijän ymmärtämään ja käyttämään muotoon. Tässä projektissa toteutetaan input-lohkossa kahden eri tyyppisen lähdetiedon lukeminen ja käsittely. Nämä ovat RDF- sekä ASCII-muotoinen tieto. Kuitenkin toteutus tehdään modulaarisesti siten, että erimuotoiselle metadatalle voidaan tehdä moduuleja, jotka pystyvät tulkitsemaan myös muuntyyppistä metadataa. Tärkeä osa input-lohkoa on dimensioiden erilaisten nimitysten yhdistäminen järjestelmän käyttämiin dimensioihin

Metadatakäsittelijä lukee input-lohkosta metadataa ja näyttää sen käyttäjälle. Metadatakäsittelijä käynnistää myöskin web-selaimen, jolla käyttäjä voi tarkastella dokumenttia. Metadatakäsittelijä tuo käyttäjälle mahdollisuuden tarkastella metadatakandidaatteja, visualisoi käytössä olevat dimensiot ja niiden mahdollisen hierarkian sekä metadatan sijoittumisen ko. hierarkiaan. Lisäksi se antaa käyttäjälle mahdollisuuden dokumentin metadatan sekä tarvittaessa myös metatietopuun muokkaamiseen. Käyttäjä voi metadatakäsittelijästä käynnistää metadatakandidaattien generointimoduuleita, jotka ovat dimensiokohtaisia.

Metadatakandidaattien generointilohko on modulaarinen toiminto siten, että eri dimensioilla on omat moduulinsa, jotka etsivät alkuperäisestä dokumentista ehdotuksen metadatalle käyttäjän niin halutessa. Tässä projektissa on tarkoituksena lähinnä tarjota rajapinta myöhemmin liitettäville moduuleille. Mahdollisesti sisällöstä avainsanoja tuottavaa ohjelmaa tullaan käyttämään.

Output-lohko tulostaa metadatan ulos järjestelmästä käyttäjän haluamassa muodossa. Output-lohkolle vaatimuksena on myös modulaarisuus, eli järjestelmään täytyy pystyä myöhemmässä vaiheessa liittämään joustavasti uusia tulostusmahdollisuuksia. Output-lohkojen esimerkkeinä toteutetaan järjestelmässä liitynnät ASCII-muotoiseen sekä RDF-muotoiseen datavirtaan.

2.5 Käyttöliittymän yleiskuvaus

CPT:n käyttöliittymä on englanninkielinen. Siihen kuuluu pääikkuna, katseluohjelma (WWW-selain) ja joukko valintaikkunoita (dialog box).

Pääikkunassa esitetään yhteenveto käsiteltävänä olevaan tiedostoon liittyvästä metadatasta. Ikkunassa on seuraavat osat: valikkorivi, työkalurivi, tietoalue ja tilarivi. Tietoalueessa on metadataulottuvuuksien luettelo, jossa on kunkin ulottuvuuden nimi ja sisältö esitettynä ulottuvuudelle sopivalla tavalla. Koska ulottuvuuksia on suhteellisen paljon (n. 20), ne eivät mahdu näyttöön kerralla. Tämän vuoksi tietoalueessa on pystysuuntainen vierityspalkki. Tarkempi kuvaus pääikkunan sisällöstä ja toiminnoista on toiminnallisessa määrittelyssä.

CPT:n käyttöliittymään kuuluu katseluohjelma, jolla käsiteltävän tiedoston sisältöä voi tarkastella. Kyseinen ohjelma voi olla esimerkiksi www-selain, ja sen käynnistävä komento määritetään Asetukset-valintaikkunassa.

3. Arkkitehtuurin kuvaus

3.1 Ratkaisuperaatteet

Ohjelman pääluokka on application-luokasta peritty cptApp. Toinen keskeinen luokka on dokumenttiluokka cptDocument. Kun ohjelmalla aloitetaan tiedoston käsittely, luodaan cptDocument-luokan instanssi, jonka alustaminen aloitetaan lukemalla tietokannasta dimensiotaulun sisältö dokumenttiluokassa olevaan DataSet-tietorakenteeseen. DataSet on yksi Borlandin JBCL-luokkakirjastoon kuuluvista tietokantojen käsittelyluokista, joissa on toteutettu valmiiksi mm. tiedon järjestämis-, suodatus- ja etsintätoimintoja. Päätimme käyttää luokkia ohjelmassa, koska ne helpottavat mm. käyttöliittymän toteutusta merkittävästi.

Tietokannasta kyselyllä luotuun DataSet-olioon on mahdollista lisätä ohjelmassa muistinvaraisia apusarakkeita, joita ei tallenneta tietokantaan. Lisätyt sarakkeet voivat sisältää esim. mitä tahansa Object-tyyppisiä olioita. Tätä voidaan käyttää hyväksi lisäämällä dimensiodatasettiin sarake, johon tallennetaan viittauksia MDDimension-olioihin. Kyseiseen luokkaan on koottu dimensiokohtaisia palveluja, joita käytetään mm. dimensiokohtaisen käyttöliittymän kokoamiseen. Esimerkiksi pääikkunan luettelo luodaan siten, että ohjelma käy läpi DataSetin (tarkkaan ottaen siihen liittyvän DataSetView'n) tietueet yksi kerrallaan. Osa tiedoista, kuten dimension nimi, saadaan suoraan tietokannasta luetuista sarakkeista. Osa tiedoista, kuten dimension sisältämän metadatan visuaalisesta esitysmuodosta vastaava paneli taas saadaan kutsumalla jälkeenpäin lisätyssä sarakkeessa olevan olion metodeja.

Dokumenttiin liittyy kaksi muutakin DataSettiä, joista toisessa on kaikkien siihen liittyvien metadata-alkioiden (tietokannassa Document Node) tiedot, ja toisessa dokumentin yleisiä tietoja, kuten URL. Myös metadata-alkioiden setissä on oliosarake, jossa olevilla Node-olioilla on hierarkian käsittelyä ja esittämistä helpottavia metodeja. Tämä on tarpeellista, koska esimerkiksi hierarkiasolmun polun lukeminen tietokannasta on suhteellisen hankala operaatio. Polkujen lisäksi Node-oliot tarjoavat apua mm. hierarkian haarojen laajentamiseen.

Edellä mainitut MDDimension-oliot saavat tiedon niihin liittyvistä metadata-alkioista document node -datasetistä siten, että kullakin on kyseiseen tietorakenteeseen oma näkymä (DataSetView), josta on suodatettu pois muiden dimensioiden tiedot.

Dokumenttiobjektin tärkeimmät metodit ovat importMD ja exportMD, joilla metadataa siirretään CPT:n ja ulkomaailman välillä, sekä saveChanges, joka tallentaa muistissa olevan datasetin muutokset tietokantaan.

3.2 Luokkamalli

3.3 Tietokannan arkkitehtuuri

3.3.1 Tietokannan ER-malli

Tietokantana käytetään Solid-tietokantaa ja itse tietokanta on jaettu kymmeneen tauluun. Rajapintana tietokantaan on JDBC API 1.20. Kullakin taululla on oma identifioiva perusavaimensa, jotka luodaan sekvensseillä. Taulujen perustehtävät ovat seuraavat:

Kenttien nimeämiskäytäntö on SmartPush-projektin sisäisen käytännön mukainen. Tietokannan taulujen kentissä ensimmäiset neljä kirjainta muodostetaan taulun nimestä (DimensionAlias -> dial), jonka jälkeen alaviiva _ Tämän jälkeen tulee kentän tyyppiä kuvaavat kirjaimet, joista mallissamme tarvittavat ovat seuraavat:

Seuraavaksi nimeen tulee tieto siitä, onko kyseessä avain. Mikäli se on perusavain niin pk, jos taas kyseessä on viiteavain niin fk. Muutoin ei laiteta mitään. Tämän jälkeen tulee kentän varsinainen nimiosa. Esimerkiksi Versions-taulusta pääavain on vers_ipkVersionID.

ER-mallin saat esille klikkaamalla tästä.

3.3.2 Tietokannan kentät

Tietokannassa on kaikkiaan 10 taulua, joiden rakenne on esitetty seuraavassa:

VersionChangeLogs 

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

vchl_ipkVersionChangeLogID

INTEGER

perusavain

kyllä

identifioi muutoksen, saadaan sekvenssistä

vchl_ifkVersionId

INTEGER

viiteavain (Version)

kyllä

identifioi version

vchl_lvChangesMade

LONG VARCHAR

 

ei

Selite muutoksista, joita tehtiin edelliseen versioon, toistaiseksi vapaamuotoinen tekstikenttä

vchl_vModifierName

VARCHAR

 

ei

Muutoksen tekijän nimi

vchl_lvExplanation

LONG VARCHAR

 

ei

taulun selitys

 Versions 

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

vers_ipkVersionId

INTEGER

perusavain

kyllä

juokseva avainnumero, jolla identifioidaan kukin versio, saadaan sekvenssistä

vers_lvExplanation

LONG VARCHAR

 

ei

taulun selite

vers_tModificationTimeStamp

TIMESTAMP

 

ei

Aikaleima, joka kertoo muutoksen ajankohdan

Groups

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

grou_ipkGroupID

INTEGER

perusvain

kyllä

identifioi ryhmän, saadaan sekvenssistä

grou_vGroupName

VARCHAR

 

ei

Ryhmän nimi

grou_ifkDimensionId

INTEGER

Viiteavain (Dimension)

kyllä

Ryhmä muodostuu dimensioista

grou_ifkFirstVersionId

INTEGER

Viiteavain (Version)

kyllä

Ensimmäisen version id, jossa esiintyy

grou_ifkLastVersionId

INTEGER

Viiteavain (Version)

kyllä

Viimeisen version id, jossa esiintyy, jos voimassa niin NULL

grou_lvExplanation

LONG VARCHAR

 

ei

taulun selite

Dimensions

kentän nimi

Tietotyyppi

relaatio

Indek-soitu

selite

dime_ipkDimensionId

INTEGER

Perusavain

kyllä

Dimensiolle luotava yksikäsitteinen avain, saadaan sekvenssistä

dime_ifkFirstVersionId

INTEGER

Viiteavain (Version)

kyllä

Ensimmäisen version id, jossa esiintyy

dime_ifkLastVersionId

INTEGER

Viiteavain (Version)

kyllä

Viimeisen version id, jossa esiintyy, jos voimassa niin NULL

dime_vName

VARCHAR

 

kyllä

Dimension nimi

dime_lvInfo

LONG VARCHAR

 

ei

Lisätietoa, jota voidaan käyttää esim. käyttöliittymässä

dime_vValueType

VARCHAR

 

ei

Kuvaa dimension arvojen tyypin

dime_sWeights

TINYINT

 

ei

Boolean tyyppinen, joka kertoo, onko dimensiolla painoja

dime_ifkRoot

INTEGER

Viiteavain (Node)

kyllä

Hierarkian juurisolmu, jos NULL niin ei hierarkinen

dime_sMultipleValues

TINYINT

 

ei

boolean-tyyppinen, joka kertoo voiko dimensiolla olla useita arvoja: arvo 1, jos voi ja 0 mikäli ei

dime_sAllowFree

TINYINT

 

ei

boolean-tyyppinen, joka kertoo voiko dimensiolla olla myös vapaamuotoista tekstiä: arvo 1, jos voi ja 0 mikäli ei

dime_lvExplanation

LONG VARCHAR

 

ei

taulun selite

Nodes

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

node_ipkNodeId

INTEGER

Perusavain

kyllä

Solmulle luotu id, saadaan sekvenssistä

node_ifkFirstVersionId

INTEGER

Viiteavain (Version)

kyllä

Ensimmäisen version id, jossa esiintyy

node_ifkLastVersionId

INTEGER

Viiteavain (Version)

kyllä

Viimeisen version id, jossa esiintyy, NULL mikäli voimassa

node_vValueType

VARCHAR

 

ei

Arvon tyyppi

node_ifkDimensionId

INTEGER

Viiteavain (Dimension)

kyllä

 mihin dimensioon kuuluu

node_vName

VARCHAR

 

kyllä

Solmun nimi (esim. sisältöhierarkiassa urheilu)

node_lvExplanation

LONG VARCHAR

 

ei

taulun selite

Relations

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

rela_ipkRelationID

INTEGER

perusavain

kyllä

identifioi kaaren, saadaan sekvenssistä

rela_ifkParentNodeId

INTEGER

Viiteavain (Node)

kyllä

isäsolmun id

rela_ifkChildNodeId

INTEGER

Viiteavain (Node)

kyllä

lapsisolmun id

rela_ifkFirstVersionId

INTEGER

Viiteavain (Version)

kyllä

ensimmäisen version id, jossa esiintyy

rela_ifkLastVersionId

INTEGER

 Viiteavain (Version)

kyllä

viimeisen version id, jossa esiintyy

rela_lvExplanation

LONG VARCHAR

 

ei

taulun selite

DimensionAlias

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

dial_ipkAliasID

INTEGER

perusavain

kyllä

identifioi aliaksen, saadaan sekvenssistä

dial_vAlias

VARCHAR

 

kyllä

Toinen nimi dimensiolle

dial_ifkDimensionId

INTEGER

Viiteavain (Dimension)

kyllä

Sen dimension id, johon alias liittyy

dial_ifkFirstVersionId

INTEGER

Viiteavain (Version)

kyllä

Ensimmäisen version id, jossa esiintyy

dial_ifkLastVersionId

INTEGER

 Viiteavain (Version)

kyllä

Viimeisen version id, jossa esiintyy

dial_lvExplanation

LONG VARCHAR

 

ei

taulun selite

DocumentNode

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

dono_ipkDocumentNodeID

INTEGER

perusavain

kyllä

identifioi dokumentin solmun, saadaan sekvenssistä

dono_ipkDimensionId

INTEGER

Viiteavain (Dimension)

kyllä

viittaa solmun dimensioon

dono_ifkDocumentId

INTEGER

Viiteavain (Document)

kyllä

viittaa dokumenttiin

dono_ifkNodeId

INTEGER

Viiteavain (Node)

kyllä

kertoo sijainnin hierakiassa

dono_ifkVersionId

INTEGER

Viiteavain (Version),

kyllä

versioId versioon, jolla on käsitelty

dono_iWeight

INTEGER

Viiteavain (Dimension)

kyllä

paino, joka kertoo kuinka voimakkaasti liittyy ko. kohtaan; prosentteina

dono_vOriginalDimension

VARCHAR

 

kyllä

alkuperäinen järjestelmään tullut dimension nimi; poistetaan, jos match onnistuu

dono_vOriginalValueType

VARCHAR

 

 

alkuperäinen järjestelmään tullut dimension arvon tyyppi; poistetaan, jos match onnistuu

dono_lvValueString

LONG VARCHAR

 

kyllä

tekstitiedon talletuspaikka

dono_sNodeStatus

TINYINT

 

ei

boolean-tyyppinen, joka kertoo onko solmu jo käsitelty

dono_tTimeStamp

TIMESTAMP

 

kyllä

päivämäärätiedon tallennukseen tarkoitettu

dono_lvbBinaryData

LONG VARBINARY

 

ei

binääridatan sijoituspaikka. ei käytössä toistaiseksi

dono_lvExplanation

VARCHAR

 

ei

taulun selite

 Document

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

docu_DocumentId

INTEGER

Perusavain

kyllä

Juokseva numero, joka identifioi dokumentin

docu_VersionId

INTEGER

Viiteavain (Version)

kyllä

Sen version id, jolla dokumenttia käsitellään

docu_sStatus

TINYINT

 

ei

Kertoo onko dokumentti käsitelty vai onko se kesken

docu_vlLocation

LONG VARCHAR

 

kyllä

Dokumentin sijainti, URL tai tiedosto

docu_vModifierName

VARCHAR

 

ei

dokumentin käsittelijän nimi

docu_vlSummary

LONG VARCHAR

 

ei

selitystietoa

docu_lvExplanation

VARCHAR

 

ei

taulun selite

BinaryData

kentän nimi

tietotyyppi

relaatio

Indek-soitu

selite

bina_ipkBinaryDataID

INTEGER

perusavain

kyllä

identifioi binäääridatan

bina_ifkDocumentID

INTEGER

viiteavain (Document)

kyllä

binääridata kuuluu tähän dokumenttiin

bina_ifkVersionID

INTEGER

Viiteavain (Version)

kyllä

Sen version id, jolla binääridata on käsitelty

bina_lvbData

LONG VARBINARY

 

ei

binääridatan tallennuskenttä, tyyppi ei virallisesti blob

 

3.3.3 Sekvenssit

Kaikki ID:t luodaan sekvenssien avulla, joita on luotu yksi kutakin taulua kohden. Sekvenssit on luotu seuraavasti:

CREATE SEQUENCE VCHLSEQ;
CREATE SEQUENCE VERSSEQ;
CREATE SEQUENCE GROUSEQ;
CREATE SEQUENCE DIMESEQ;
CREATE SEQUENCE NODESEQ;
CREATE SEQUENCE RELASEQ;
CREATE SEQUENCE DONOSEQ;
CREATE SEQUENCE DIALSEQ;
CREATE SEQUENCE DOCUSEQ;
CREATE SEQUENCE BIDASEQ;

Näitä sekvenssejä voidaan käyttää ainoastaan proseduureista seuraavasti:

CREATE PROCEDURE verspros
RETURNS (versvalue integer)
BEGIN
EXEC SEQUENCE VERSSEQ.NEXT INTO versvalue;
END;

Uuden ID:n arvo saadaan tämän jälkeen kutsumalla proseduuria:
CALL verspros

3.3.4 Oikeudet

Tavallisella käyttäjällä on INSERT- ja UPDATE-oikeudet seuraaviin tauluihin: Documents, DocumentNodes ja BinaryData. Muihin tauluihin on ainoastaan lukuoikeudet. Pääkäyttäjällä on oikeudet kaikkiin tauluihin.

4. Moduli (ja prosessi) -kuvaukset

Seuraavassa luettelo toteutettavista luokista. Luokkien yksityiskohtaiset kuvaukset löytyvät linkkien takaa.