Kronológiai adatbázis

Kronológiai adatbázis  - történelmi (kronológiai) adatokat, azaz múltbeli és esetleg jövőbeli időszakokra vonatkozó adatokat tartalmazó adatbázis . Egy rendszeres, nem kronologikus adatbázis csak aktuális adatokat tartalmaz.

Adattípusok és operátorok

A kronológiai adatok igaz állítások, időintervallumok megjelölésével. Az időintervallum az időskála egy nem üres szegmense; egy speciális INTERVAL_DATE adattípust használnak a kijelölésére. Az ilyen típusú értékeket a következőképpen írjuk fel , ahol  a DATE típusú kifejezések, amelyek megfelelnek az intervallum kezdő és befejező időpontjának. Az időpozíciók (pozíciók az idővonalon) olyan időegységek, amelyek egy adott célra alkalmasak (ezredmásodperc, másodperc, nap), és oszthatatlannak minősülnek.

Tegyük  fel - az intervallum típusú értékeket, amelyek rendre kiindulási és végső pozíciókkal rendelkeznek ,  - tetszőleges ideiglenes pozíció. A és forma kifejezései az előző és a következő időpontok jelölésére szolgálnak . Az operátor a különböző pozíciók számát adja vissza úgy, hogy . Az intervallum egységnyi intervallum, ha .

Az imbuszoperátorok az intervallumokhoz kapcsolódó feltételek ellenőrzésére szolgálnak:

Ezenkívül vannak bináris operátorok az intervallumokhoz, amelyek intervallumokat adnak vissza:

Az EXPAND és CLLAPSE operátorok egy unáris relációt vesznek operandusuknak, amelynek sorai intervallumokat tartalmaznak, és egy ugyanolyan típusú relációt adnak vissza, amely az eredeti reláció kiterjesztett, illetve összehúzott formája.

Példa az EXPAND és COLAPSE operátorok használatára:

R
D
[d06:d09]
[d04:d08]
[d05:d10]
[d01:d01]
Rx
D
[d01:d01]
[d04:d04]
[d05:d05]
[d06:d06]
[d07:d07]
[d08:d08]
[d09:d09]
[d10:d10]
Rc
D
[d01:d01]
[d04:d10]

Az R reláció kiterjesztett formája egy Rx reláció, amely minden egységnyi intervallumú [p: p] sorát tartalmazza, ahol p az R reláció valamely sorának valamely intervallumában lévő pozíció. Az R reláció összehúzott formája egy olyan Rc reláció, : az R és Rc relációk azonos és azonos kiterjesztett formájúak; Rc-hez képest nincs két különálló sor, amely i1 és i2 intervallumot tartalmazna, így az i1 MERGES i2 igaz.

A PACK és az UNPACK operátorok operandusnak vesznek egy ehhez tartozó relációt és egy intervallum típusú attribútumot, és egy ugyanolyan típusú relációt adnak vissza, amelyet a megadott attribútum összecsuk, a többi attribútum csoportosít, és kibővít a megadott attribútummal. tulajdonság.

Példa a PACK és UNPACK utasítások használatára:

R
A D
A2 [d02:d04]
A2 [d03:d05]
A4 [d02:d05]
A4 [d04:d06]
A4 [d09:d10]
R CSOMAGOLÁS D-RE
A D
A2 [d02:d05]
A4 [d02:d06]
A4 [d09:d10]
KICSOMAGOLÁS R ON D
A D
A2 [d02:d02]
A2 [d03:d03]
A2 [d04:d04]
A2 [d05:d05]
A4 [d02:d02]
A4 [d03:d03]
A4 [d04:d04]
A4 [d05:d05]
A4 [d06:d06]
A4 [d09:d09]
A4 [d10:d10]

Az R relációt több D1, D2, ..., Dn attribútummal is becsomagolhatja, ha az R attribútumot az összes megadott attribútummal kicsomagolja, majd az eredményt a D1 attribútummal, a csomagolási eredményt a D2, ... attribútummal csomagolja, csomagolja a csomagolás eredménye Dn attribútum szerint.

Minden közönséges relációs operátorhoz hozzájuk hasonló U_operátorok vannak definiálva, amelyek a megadott attribútumokkal kibontják a relációt, elvégzik a megfelelő műveletet és becsomagolják az eredményt. Például az U_MINUS, U_INTERSECT, U_UNION, U_JOIN operátorok megfelelnek a MINUS, INTERSECT, UNION, JOIN operátoroknak. Az U_OPERATOR meghatározása a következő:

CSOMAGOLÁS ((R1 KICSOMAGOLÁS A D-RE) KEZELŐ (KICSOMAGOLÁS R2-RE D)) D-RE

A kicsomagolási művelet hosszú időközök és nagy részletességű használata esetén túl sok memóriát igényelhet. Az U_operators használata lehetővé teszi az optimalizáló számára, hogy olyan implementációt válasszon, amelyhez minimális számú köztes eredmény szükséges.

Példa az U_MINUS operátor használatára:

R1
D
[d02:d05]
R2
D
[d03:d03]
eredmény
D
[d02:d02]
[d04:d05]

Dekompozíció

Az aktuális információk egyes relációs változókban, míg másokban a történelmi információk tárolását horizontális dekompozíciónak nevezzük. A történeti információk több különálló relációs változó tárolását (mindegyik egy intervallum típusú attribútumot és egy másik típusú attribútumot tartalmaz) vertikális dekompozíciónak nevezzük.

Tegyük fel, hogy egy R relációs változónak van egy D intervallum típusú attribútuma és más típusú A1, A2, ..., An attribútumok. Amikor az A1, A2, ... attribútumok időben egymástól függetlenül változnak, a relációs változóban összetett frissítési sorozatot kell végrehajtani; előfordulhat, hogy egynél több sorra van szükség ahhoz, hogy egy attribútum értékével kapcsolatos információkat reprezentáljon egy folyamat során. bizonyos időintervallum. Ezért célszerű az információt elosztani az R1, R2, ..., Rn relációs változókon, amelyek a D és A1, D és A2, ..., D és An attribútumokkal rendelkeznek.

Példa függőleges bontásra
R
A1 A2 D
tíz BB+ [d01:d03]
tizenöt BB+ [d04:d05]
tizenöt AA- [d06:d08]
R1
A1 D
tíz [d01:d03]
tizenöt [d04:d08]
R2
A2 D
BB+ [d01:d05]
AA- [d06:d08]

Ez az összefüggés a felbontás után hatodik normálformában van .

Integritási megszorítások

Egy intervallum típusú D attribútum felvétele egy potenciálkulcsba nem oldja meg a redundancia és az ellentmondás problémáját. Egy relációnak két sora lehet átfedő intervallumokkal és a többi attribútumnak megfelelő értékekkel. Ugyanakkor az információ redundanciája van , bizonyos időintervallumokra vonatkozó adatok kétszer jelennek meg. Ezen túlmenően a szóhasználat problémája van, ha két sorban vannak olyan intervallumok, amelyek közvetlenül követik egymást, és más attribútumok azonos értékeivel. Ebben az esetben, bár az információ nem duplikálódik, egyetlen sorként is ábrázolható. A redundancia és a bőbeszédűség problémájának kiküszöbölése érdekében szükséges, hogy a relációs változó tartósan be legyen dobozolva a D attribútummal.

Ezen túlmenően egy reláció tartalmazhat két sor átfedő térközt, de eltérő értékeket más nem kulcs attribútumokhoz, ami inkonzisztens információkat eredményez. Az ellentmondás feloldásához szükséges, hogy a relációs változó véglegesen ki legyen csomagolva a D attribútummal.

E követelmények teljesítése érdekében az U_keys bevezetésre kerül. A relációs változót az U_key csomagolva tartja, és kicsomagolja, ha változtatásokat hajt végre a konzisztens állapot fenntartása érdekében.

Irodalom