Upload
nguyenkhanh
View
221
Download
6
Embed Size (px)
Citation preview
beigas (tB)sākums (ts)
Laiks datu bāzē
Diva veida saites starp datiem:1) semantikas saites. Sasaistīt var tikai to, kam kopā ir kaut kāda
jēga. Vieni dati papildina citus datus. 2) laika saites. Datu sasaistei ir būtiski, vai tie eksistē vienlaicīgi, vai
vieni dati veidojās pirms otriem datiem, vai svarīgs ir datu kopējās eksistēšanas laiks.
Semantiskā saite
Datu bāzes tabulas versijas, tabulas datu izmaiņas laikā
t
1
Laika periodu attiecības datu sasaistē
Tabula PROJEKTI
Periods P1
Tabula DARBINIEKI
P2 Periods P2 P1 t
NUM NOS D_NO D_LIDZ1 CC2 BB3 AA4 DD
ID UZV ALGA P_NUM D_NO D_LIDZ101 Koks 700 1102 Celm
s800 1
103 Zars 750 2104 Lapa 850 2
2
Piemērs. Avīzes pasūtījuma rēķina apmaksa
Mēneši
Avīzes abonēšana
Avīzes iznākšana
Avīzes cena
Avīzes cenas atlaides
1a 2a - 3a 3a 4a - 5a 5a 5aiz1 iz2 iz3 iz4 iz5 iz6 iz7 iz830 30 30 35 35 40 40 30 35 350 0 10 10 0 0 15 15 15 10
Abonēšana No Līdz1a2a3a4a5a
Iznākšana No Līdziz1iz2iz3
Cena No Līdz3035403035
Atlaide No Līdz01001510
3
Laika modeļi
Laika ass (laika vektors) t
Lieto trīs laika modeļus:
1) nepārtrauktais laika modelis (continuous time model). Laiks tiek
skatīts kā izomorfisks (formas ziņā līdzīgs) attiecībā pret reāliem
skaitļiem (racionāliem un irracionāliem). Katrs reāls skaitlis atbilst
laika “punktam” (momentam) laika asī.
2) ierobežota laika modelis (dense time model), kur laiks tiek skatīts
kā izomorfisks attiecībā pret racionāliem skaitļiem (var pierakstīt kā 2
skaitļu dalījumu);
3) diskrēta laika modelis (discrete time model), kur laiks tiek skatīts
kā izomorfisks attiecībā pret veseliem skaitļiem.
Laika modeļi Ierobežota laika modelis
Diskrēta laika modelis
Ilgstoša laika modelis
4
Laika moments un laika periods
1. Visos trīs laika modeļos punkts tiek saukts par laika laika
momentu (instant).
2. Laiks starp diviem laika momentiem tiek saukts par laika periodu.
Tas tiek definēts ar diviem laika momentiem: ar laika momentu, kad
sākas periods un laika momentu, kad beidzas periods.
3. Laika moments ir īpašs laika perioda paveids, kuram laika
moments, kad sākas periods, sakrīt ar laika momentu, kad beidzas
periods.
Laika moments = Periods(LS, LB), kur LS = LB
Laika ass (vektors)
Laika moments L1 Laika moments L2
Periods [L1, L2]
5
Laika segments un laika iezīme
Analizējamā laika segments ir ierobežots no abām pusēm.
Laiks tiek glabāts fiksētās datu struktūrās sauktās par laika iezīmi
(timestamp). Ja laika vektors būtu neierobežots, tas padarītu šādu
glabāšanas shēmu par nederīgu, jo glabājot datorā laika iezīmei arī
būtu nepieciešams neierobežots atmiņas apgabals (lielums).
Laika vektors jeb laika ass
Pasaules radīšana Pasaules gals
Laika sākums Laika beigas
6
Laika granula
1. Laika segments var būt iedalīts ierobežota skaita mazākos diskrētos
laika segmentos, kurus sauc par granulām.
2. Laika sadalīšana tiek saukta par mērogošanu (scaling). Laika
mērogošana ir dinamiska un tiek piemērota katra vaicājuma
vajadzībām. Piemēram, laika skala var būt sadalīta dienas garuma
granulās vai arī to pašu laika skalu var sadalīt mēnešu vai gadu
garuma granulās.
Laika vektors jeb laika ass
Laika dalīšana dienās
Laika intervāls 1 diena
Laika vektors jeb laika ass
Laika dalīšana mēnešu granulās
Laika intervāls 1 mēnesis
7
Hronons (vismazākā laika granula)
1. Vismazāko laika vienību, kura tiks atbalstīta, sauc par hrononu ( chronon).
2. Ck liel hronons tiks izvēlēts (nanosekunde, stunda, diena, gads, ...), nosaka informācijas sistēmas projektētāja, analizējot lietotāju potenciālos jautājumus.
Laika vektors jeb laika ass
Laika dalīšana vismazākajās granulās - hrononos
Vismazākais laika intervāls 1 hronons
8
Laika momenta modelēšana1. Hronons ir segments uz laika ass, bet laika moments (brīdis, acumirklis) ir
kāds punkts laika asī. Kāda ir attiecība starp hrononu un laika momentu?
2. Varētu pieņemt, ka hrononi un momenti ir vienāda izmēra.
Varētu pieņemt, ka hrononi ir daudz lielāki par mometiem, tas ir, ka katrs
hronons sastāv no liela (iespējams neierobežota) skaita momentu.
3. Ja tiek pieņemts, ka hrononi un momenti ir vienādi, tad mums ir jālieto
diskrēta laika modelis.
4. Ja laika modelis būs ilgstoša laika vai ierobežota laika modelis, tad būtu
nepieciešams neierobežots skaits hrononu, jo jebkurā no šiem diviem modeļiem
ir neierobežots (bezgalīgs) momentu skaits starp jebkuru nenulles garuma laika
ass segmentu (laika periodu). Tas ir tā pat, kā starp jebkuriem diviem punktiem
ir bezgalīgi daudz punktu, vai arī starp diviem skaitļiem uz skaitļu ass ir
bezgalīgi daudz lielākas precizitātes citu skaitļu. Tā pat ir ar punktiem uz laika
ass.
5. Momenta laika iezīmi ierakstot, tiek noteikts, ka laiks atrodas kaut kur
hronona vai granulas laika ietvaros (dienā, gadā, mēnesī utt.). Tiek pieņemts, ka
laika momenta laika iezīme attiecas uz visu granulas perioda garumu.
Laika vektors jeb laika ass
Laiks 15.35
Laika granula - minūte
Laiks 15.36
9
Laika momenta modelēšana (turpinājums)6. Ja mēs pieņemam, ka laika brīdis atrodas kaut kur granulas perioda ietvaros, tad mēs tik pat labi varam pieņemt, ka tas vienmēr ir granulas pirmais laika brīdis, jo neviena laika iezīmes operācijas nelieto laika brīža atrašanās vietu granulā. 7. Laika operācijām nav svarīgi, kāds ir mūsu pieņēmums par laika brīža atrašanās vietu granulā. Tā kā nav nekādu praktisku atšķirību starp diviem pieņēmumiem, pieņēmums, ka laika brīdis attiecas uz granulas pirmo laika brīdi labāk modelē procesu, ar kura palīdzību mēs iegūstam temporālu informāciju.
.
8. Kopsavilkumā, laika brīdis tiek modelēts ar laika iezīmi kopā ar tai piekārtoto (asociēto) laika skalu (piem. Dienas, gada, mēneša, utt.). Laika brīdis, kas tiek modelēts ar laika iezīmi ir kāds laika brīdis granulas perioda garumā, kur granula tiek izvēlēta pēc laika brīdim piesaistītās laika skalas.
Laika vektors jeb laika ass
Laiks 15.35
Laika granula - minūte
Laiks 15.36
Tiek pieņemts, ka laika moments, kuru apzīmē laika iezīme granulas ietvaros, ir pirmais granulas laika moments
10
Perioda modelēšana
1. Perioda laika iezīmei ir piekārtota jeb piesaistīta (asociēta) laika
skala (piem. dienas, gada, mēneša, utt.).
2. Perioda laika iezīme sastāv no divām laika momenta laika iezīmēm
un viena ierobežojuma. Ierobežojums nosaka, ka laika brīža laika
iezīme, kas attiecas uz perioda sākumu ir vienāda vai lielāka (attiecas
uz vēlāku laika brīdi) par laika momenta laika iezīmi (dotajā laika
skalā) ar kuru beidzas periods.
4. Abi laika brīži ar kuru sākas un beidzas periods tiek uzdoti (jeb
attiecas) ar vienu un to pašu laika skalu (piem. dienas, gada, mēneša,
utt.).
Laika vektors
Laika moments L1 Laika moments L2
Periods (L1, L2) Ierobežojums: L1 > L2
11
Transakcijas laiks
Fakts tiek ierakstīts datubāzē
Laika dimensijas
Laikam var būt vairākas dimensijas:
1) reālais laiks (valid time) ir laiks, kad realitātē fakts ir patiess. Reālie
laiki var būt nākotnē, ja ir zināms, ka kāds fakts noteiktā laikā
nākotnē kļūs par patiesu.
2) transakcijas laiks ir laiks laiku, kad fakts kā glabājamie dati tiek
ievietots (ierakstīts) datu bāzē.
Fakts ir patiess modelētā realitātē
Reālais laiks
12
Laika dimensiju ortogonalitāte
1. Reālā laika un transakcijas laika dimensijas ir ortogonālas. Tās ir neatkarīgas viena no otras. Transakciju laikam nav tieša sakara ar reālo laiku.
2. Datu modelis, kurš neuztur nevienu no šiem modeļiem tiek saukts par momentuzņēmuma modeli (snapshot model). 3. Datu modelis, kas uztur tikai reālo laiku (valid time) tiek saukts par reālā laika modeli (valid-time). 4. Datu modelis, kas uztur tikai transakciju laiku (transaction time) tiek saukts par transakciju laika modeli (transaction-time). 5. Datu modeli, kas uztur abus laikus, tiek saukts par bitemporālu datu modeli. 6. Reālais laiks (valid time) var būt kā ierobežots, tā arī neierobežots. 7. Transakciju laiks vienmēr ir ierobežots abos laika ass galos. Parasti transakciju laiks sākas ar brīdi, kad tiek izveidota datu bāze.
Transakcijas laiks0 5 10 15 20 25 30
30
25
20
15
10
5
0
Reālais laiks
13
Atribūtu mainīgums1. Atribūtus var iedalīt pamatojoties uz to kā tie savstarpēji iedarbojas ar laiku. 2. Laikā nemainīgs (time-inavariant) atribūts laika gaitā nemainās. Piemēram, tāds atribūts ir tabulas primārās atslēgas lauks (primary key). Katra atslēgas lauka vērtība identificē kādu konkrētu objektu (vai rindu) tabulā. Cita atslēgas lauka vērtība identificē arī citu objektu. Bet ne tikai tabulas primārās atslēgas lauki (primary key), bet arī citi tabulas lauki var būt laikā nemainīgi, piemēram, kādas personas dzimšanas dienas datums. Laikā nemainīgi parasti ir reālie laiki (valid times).2. Pretēji laikā nemainīgiem atribūtiem ir laikā mainīgie. Piemēram, darbinieka alga ir laikā mainīgs atribūts, jo laika gaitā alga var mainīties. 3. Atribūta vērtības var būt ņemtas no temporāla domēna. Šādi temporālie domēni tiek saukti par lietotāja definētu laiku.
Laikā mainīgs
Atribūts
Laikā nemainīgs
piemēram
Darbinieka alga
piemēram
Darbinieka numurs
14
Tiešas un netiešas laika iezīmes
1. Dažos datu modeļos laika un faktu asociācija ir netieša. Savukārt citos
modeļos, šī asociācija ir atspoguļota ar laika iezīmju tipa (timestamp) atribūtu.
2. Transakciju laika piesaiste faktiem tiek nodrošināta ar sistēmas palīdzību,
līdz ar to transakciju laika modernizācijas valodas aplūko temporālos fakta
aspektus netieši.
3. Pretstatā, faktu reālais laiks (valid time) parasti tiek nodrošināts ar lietotāja
palīdzību. Līdz ar to reālā laika datu manipulāciju valodas un bitemporālie datu
modeļi parasti laiku lieto tieši, un ir spiestas piedāvāt izvēli kā lietotājam
vajadzētu noteikt faktu reālā laika (valid time) vērtības.
15
Vērtību ekvivalence un ierakstu apvienošana1. Divi ieraksti tiek saukti pēc vērtībām ekvivalenti (vērtību
ekvivalenti), ja ignorējot speciālu laika iezīmes atribūtu, tie ir vienādi.
2. Relācijas instance ir apvienojoša, ja dublējošies vai secīgi vērtību
ekvivalenti ierakti nav atļauti. Šeit “dublējošs” un “secīgs” tiek
attiecināti uz ieraksta laika iezīmes tipa atribūta vērtībām, kurām ir
jānosaka viens vienīgs hronons vai secīgu hrononu kopa.
Vārds Uzvārds Amats Sākums BeigasJānis Lujāns Grāmatvedis 12-05-2000 28-05-2001
Emīlija Rozentāle Sekretārs 05-06-2002 05-06-2002Jānis Lujāns Grāmatvedis 28-05-2001 14-07-2002Juris Zariņš Šoferis 18-07-2002 18-07-2002
Vārds Uzvārds Amats Sākums BeigasJānis Lujāns Grāmatvedis 12-05-2000 14-07-2002Emīlija Rozentāle Sekretārs 05-06-2002 05-06-2002Juris Zariņš Šoferis 18-07-2002 18-07-2002
Pēc vērtībām vienādi ieraksti tiek apvienoti. Periodi arī tiek apvienoti.
16
Temporālo datu modeļiLai pievienotu laiku relāciju modelim, pēdējo 15 gadu laikā ir definēti
vairāk kā 20 relāciju modeļa paplašinājumu.
Datu modelis Oficiāli pieminēts Laika dimensija(s) ApzīmējumsTemporāli orientēts datu modelis
[Ariav 1986] Reālā laika Ariav
Laika relāciju modelis
[Ben-Zvi 1982] Reālā laika un transakciju laika
Ben-Zvi
Vēsturisko datu modelis
[Clifford & Warrer 1983] Reālā laika Clifford-1
Vēsturisko relāciju datu modelis
[Clifford & Croker 1987] Reālā laika Clifford-2
Homogēns relāciju modelis
[Gadia 1988] Reālā laika Gadia-1
Heterogēns relāciju modelis
[Gadia & Yeung 1988] Reālā laika Gadia-2
TempSQL [Gadia 1992] Reālā laika un transakciju laika
Gadia-3
DM/T [Jensen 1991] Transakciju laika JensenLEGOL 2.0 [Jones 1979] Reālā laika JonesDATA [Kimball 1978] Transakciju laika KimballHQL [Sadeghi 1987] Reālā laika SadeghiHSQL [Sarda 1990] Reālā laika SardaTemporāls datu modelis
[Segev & Shoshani 1987] Reālā laika Segev
TQuel [Snodgrass 1987] Reālā laika un transakciju laika
Snodgrass
Postgres [Stonebraker 1987] Transakciju laika StonebrakerHQuel [Tansel 1986] Reālā laika TanselUzskaites datu modelis
[Thompson 1991] Reālā laika un transakciju laika
Thompson
17
Temporālās vaicājumu valodas TSQL2 datu modeļa sastāvdaļas1. Datu modelis sastāv no: vaicājumu valodas, objektiem ar kuriem manipulē
vaicājumu valodas, modifikāciju valodas, lai veiktu objektu modifikāciju, un
mehānisma, kas nodrošina integritātes ierobežojumus.
2. Eksistē liels daudzums nesavietojamu (nesaderīgi) vaicājumu valodas. Par iemeslu tam ir vienlaicīga orientēšanās uz datu atspoguļošanu, datu glabāšanu un vaicājumu efektivitāti. 3. Tādēļ TSQL2 autori atbalsta ļoti vienkāršu koncepciju, unificētu datu modeli,
kurā ietvertas tikai svarīgākās laika atkarīgu relāciju semantikas.
Datu modelis
Vaicājumu valoda
Vaicājumu valodas objekti
Datu manipulāciju valoda
Integritātes ierobežojumu nodrošināšanas
mehānisms
18
Time database, temporal database (definitions)
A temporal database is a database with: 1) built-in support for handling data involving time;2) being related to the slowly changing dimension concept;3) a temporal data model;4) a temporal version of Structured Query Language (SQL).
More specifically the temporal aspects usually include:1) valid time. Valid time is the time period during which a fact is true in the real world.2) transaction time. Transaction time is the time period during which a fact stored in the database was known.3) bitemporal time. Bitemporal data combines both valid and transac-tion time.
It is possible to have timelines other than valid time and transaction time, such as decision time, in the database (multitemporal database). In that case the database is called a multitemporal database as opposed to a bitemporal database. However, this approach introduces additional complexities such as dealing with the validity of (foreign) keys.Temporal databases are in contrast to current databases, which store only facts which are believed to be true at the current time.
19
Different forms of temporal databases
1. A historical (vēsturisko datu) database stores data with respect to valid time.2. A rollback (atrites datu) database stores data with respect to transaction time. 3. A bitemporal database stores data with respect to both valid and transaction time – they store the history of data with respect to valid time and transaction time.
20
21
Features of temporal database
1. A time period datatype, including the ability to represent time periods with no end (infinity or forever)2. The ability to define valid and transaction time period attributes and bitemporal relations3. System-maintained transaction time4. Temporal primary keys, including non-overlapping period constraints5. Temporal constraints, including non-overlapping uniqueness and ref-erential integrity6. Update and deletion of temporal records with automatic splitting and coalescing of time periods7. Temporal queries at current time, time points in the past or future, or over durations8. Predicates for querying time periods, often based on Allen’s interval relations
22
Mathematic for Temporal DataBase Management Systems US logic and derived Modal operators - gives an insight into new temporal operators that are specifically designed to manipulate temporal databases. These operators have been shown to be mathematically sound which makes them useful to extract temporal data. The publications discusses procedures to take in implementing these operators on relational databases systems using the logic associated with relational algebra. Temporal and Modal Logic – describes the mechanics of temporal and modal logic. They discuss the different tenses (Past and Future) and give the underlying semantics of the logic.
Temporal Database – gives an insight on how to build a complete temporal database system and how to form TSQL, which is an extension of SQL to handle temporal components denoted in records. The publications also describe how to optimise queries and gives material covering the subject in broad.
TimeChain Technology – provide a TDBMS that eases the difficult task of managing historical databases. The technology does not consider new temporal specific operators that are provided by US logic or the derived modal operators.
23
Temporal logic & Historical Databases1
In {Bubenko, 1977} a model for storing historical information in a relational manner was proposed, since which various alternative approaches to historical database s have been advanced, a small selection of which are {Clifford & Tansel, 1985; Tansel, 1987; Snodgrass, 1987; Navathe & Ahmed, 1988; Gadia, 1988}. These all propose some temporal relational model, and then either arelational algebra or query language over the model. Only recently {Tuzhilin & Clifford, 1990} have there been some moves towards unifying the various models proposed by extending the relational model in a general manner to provide a temporal structure, and to enhance the relational calculus and algebra to provide a small set of temporal operators which provide fully expressivequeries over the temporal structure, akin to the five primitive relational algebra operators over a standard relational structure. Independently of this work, research into various temporal logic programming languages (a few examples being {Abadi & Manna, 1987; Barringer et al , 1990; Gabbay, 1989}) has been conducted, invariably assuming a fully deductive temporal database is available in which information may be stored, with an associated Prolog-like query language. It has been shown that US logic is fully expressive for a historical data model in the same sense that first-order logic is for a non-temporal data model {Gabbay, 1989}. US logic is comprised of first-order classical logic with the addition of the modal operators until and since.
1 https://www.researchgate.net/profile/Peter_Mcbrien/publication/221311366_Temporal_Logic__Historical_Databases/links/54f03ad90cf25f74d72472b2.pdf
24
Temporālās vai laika vai vēstures datu bāzes pielietojums
1. Transporta plūsmas kontrole:
- pasažieru pārvadājumi;
- kravu pārvadājumi.
2. Banku ieguldījumu vadība (procentu likmju izmaiņas).
3. Banku aizdevumu vadība (procentu likmju izmaiņas).
4. Grāmatvedība.
5. Avīžu un žurnālu pasūtījumu apmaksas vadība.
25
Non - temporal, Uni - temporal and Bi - temporal data
ID From To Name Price1 20/01/2006 13/06/2006 Eggs $1.201 13/06/2006 31/12/9999 Eggs $1.252 20/01/2006 01/01/2007 Milk $0.453 20/01/2006 31/12/9999 Bread $0.30
26
Temporālās DB vēsture
The basic issue is this: if you have a primary key and some attributes in the table, and you add a date to the primary key to track historical changes, you can suddenly give out the original key over and over again. Deletes get different meaning. And so forth. In 1992, this issue was recognized but standard database theory was not yet up to resolving this issue, and neither was the then newly formalized SQL-92 standard.
Richard Snodgrass proposed in 1992 that temporal extensions to SQL be developed by the temporal database community. In response to this proposal, a virtual committee was formed to design extensions to the 1992 edition of the SQL standard (ANSI X3.135.-1992 and ISO/IEC 9075:1992).Those extensions, known as TSQL2, were developed during 1993 by this committee meeting only via email. In late 1993, Snodgrass first presented this work to the group responsible for the American National Standard for Database Language SQL, ANSI Technical Committee X3H2 (now known as NCITS H2). The preliminary language specification appeared in the March 1994 ACM SIGMOD Record. Based on responses to that specification, changes were made to the language, and the definitive version of the TSQL2 Language Specification was published in September, 1994.
An attempt was made to incorporate parts of TSQL2 into the new SQL standard SQL:1999, called SQL3. Parts of TSQL2 were included in a new substandard of SQL3, ISO/IEC 9075-7, called SQL/Temporal. However, the ISO project responsible for temporal support was canceled near the end of 2001.SQL 2011 ad temporal suport.
The ideas and concepts described in the TSQL2 specification, such as Valid Time, Transaction Time and Bitemporal tables, have all found their way into the general literature on temporal databases since then. In 2002 Chris Date, Hugh Darwen and Nikos Lorentzo presented in their book Temporal Data & the Relational Model a treatment of the topic that includes many of the terms introduced by TSQL2 but also introduces the Sixth normal form to solve some of the issues.
27
Temporālās datu bāzes paplašinājumi SQL:2011 standartā
SQL:2011 or ISO/IEC 9075:2011 (under the general title "Information technology – Database languages – SQL") is the seventh revision of the ISO (1987) and ANSI (1986) standard for the SQL database query lan-guage. It was formally adopted in December 2011.
Temporal supportOne of the main new features is improved support for temporal databases. Language enhancements for temporal data definition and manipulation in-clude:1) time period definitions use two standard table columns as the start and end of a named time period, with closed - open semantics; 2) definition of application time period tables (elsewhere called valid time tables), using the PERIOD FOR annotation;3) update and deletion of application time rows with automatic time period splitting;4) temporal primary keys incorporating application time periods with op-tional non-overlapping constraints via the WITHOUT OVERLAPS clause;5) temporal referential integrity constraints for application time tables;6) application time tables are queried using regular query syntax or using new temporal predicates for time periods including CONTAINS, OVERLAPS, EQUALS, PRECEDES, SUCCEEDS, IMMEDIATELY PRECEDES, and IMMEDIATELY SUCCEEDS (which are modified versions of Allen’s interval relations);7) definition of system-versioned tables (elsewhere called transaction time tables), using the PERIOD FOR SYSTEM_TIME annotation and WITH SYSTEM VERSIONING modifier. System time periods are main-tained automatically. Constraints for system-versioned tables are not re-quired to be temporal and are only enforced on current rows8) syntax for time-sliced and sequenced queries on system time tables via the AS OF SYSTEM TIME and VERSIONS BETWEEN SYSTEM TIME ... AND ... clauses;9) application time and system versioning can be used together to provide bitemporal tables.
28
Temporālie dati un to saistība (piemērs)
Darbinieki(UZV, AMATS, LAIKS)Koks palīgs mākslinieks
[2002.06.25, 2005.12.12) [2005.12.12, now)
Sakne otrais asistents asistents režisors[1996.12.03, 1999.10.23) [1999.10.23, 2000.07.12) [1999.07.12, now)
Egle asistents vadītājs[1995.10.23, 2000.07.12) [2000.07.12, now)
Atalgojums(AMATS, ALGA, A_LAIKS)palīgs 350 500
[2002.04.01, 2003.07.01) [2003.07.01, now)
mākslinieks 1000 1200[2000.04.02, 2004.07.04) [2004.07.04, now)
otrais asistents 500 700
29
[1995.07.04, 2000.12.14) [2000.12.14, now)
asistents 600 750 1000[1993.06.02, 1995.07.04) [1995.07.04, 1998.12.14) [1998.12.14, now)
režisors 2300 2500[1998.11.11, 2001.03.24) [2001.03.24, now)
vadītājs 1000 1300 2000[1999.10.22, 2001.09.30) [2001.09.30, 2003.01.02) [2003.01.02, now)
Laika elements, laika sērijas un periodsA time series is a series of data points indexed (or listed or graphed) in time order. Most commonly, a time series is a sequence taken at successive equally spaced points in time. Thus it is a sequence of discrete-time data.
Laika elements
Laika sērija
Laika periods t
Atribūta vērtība Sākuma laiks Beigu laiks
Atribūta vērtība Sākuma laiks Beigu laiksAtribūta vērtība Sākuma laiks Beigu laiksAtribūta vērtība Sākuma laiks Beigu laiksAtribūta vērtība Sākuma laiks Beigu laiks
30
d1 d2 d3 d4 d5 d6 d7
[datums_no, datums_līdz] [d1, d2] slēgts (closed) periods
[d1, d2) (d1, d2] – daļēji slēgti (partially closed) periodi
(d1, d2) - atvērts (open) periods
s1-1, s1, s1+1, s1+2, ... , e1, e1+1 elementārie periodi
DBVS laika datu tipi
31
Datetime Field Valid Values for Datetime Valid Values for INTERVAL
YEAR -4712 to 9999 (excluding year 0) Any positive or negative integer
MONTH 01 to 12 0 to 11
DAY 01 to 31 (limited by the values of MONTH and YEAR, according to the rules of the current NLS calendar)
Any positive or negative integer
HOUR 00 to 23 0 to 23
MINUTE 00 to 59 0 to 59
SECOND 00 to 59.9(n), where "9(n)" is the precision of time fractional seconds
0 to 59.9(n), where "9(n)" is the precision of interval fractional seconds
TIMEZONE_HOUR -12 to 13 (This range accommodates daylight savings time changes.)
Not applicable
TIMEZONE_MINUTE 00 to 59 Not applicable
32
Intervāla laika tipu piemēri
Form of Interval Literal InterpretationINTERVAL '4 5:12:10.222' DAY TO SECOND(3)
4 days, 5 hours, 12 minutes, 10 seconds, and 222 thousandths of a second.
INTERVAL '4 5:12' DAY TO MINUTE
4 days, 5 hours and 12 minutes.
INTERVAL '400 5' DAY(3) TO HOUR
400 days 5 hours.
INTERVAL '400' DAY(3) 400 days.INTERVAL '11:12:10.2222222' HOUR TO SECOND(7)
11 hours, 12 minutes, and 10.2222222 seconds.
INTERVAL '11:20' HOUR TO MINUTE
11 hours and 20 minutes.
INTERVAL '10' HOUR 10 hours.INTERVAL '10:22' MINUTE TO SECOND
10 minutes 22 seconds.
INTERVAL '10' MINUTE 10 minutes.INTERVAL '4' DAY 4 days.INTERVAL '25' HOUR 25 hours.INTERVAL '40' MINUTE 40 minutes.INTERVAL '120' HOUR(3) 120 hoursINTERVAL '30.12345' SECOND(2,4)
30.1235 seconds. The fractional second '12345' is rounded to '1235' because the precision is 4.
33
Laika datu formāts un funkcijas datu bāzes sistēmās
TO_DATE('98-DEC-25:17:30','YY-MON-DD:HH24:MI')
The default date format for an Oracle date literal is specified by the initialization parameter NLS_DATE_FORMAT:
ALTER SYSTEM SET NLS_DATE_FORMAT = 'format';
Datetime Functions
ADD_MONTHS
CURRENT_DATE
CURRENT_TIMESTAMP
DBTIMEZONE
EXTRACT (datetime)
FROM_TZ
LAST_DAY
LOCALTIMESTAMP
MONTHS_BETWEEN
NEW_TIME
NEXT_DAY
NUMTODSINTERVAL
NUMTOYMINTERVAL
ROUND (date)
SESSIONTIMEZONE
SYS_EXTRACT_UTC
SYSTIMESTAMP
SYSDATE
TO_DSINTERVAL
TO_TIMESTAMP
TO_TIMESTAMP_TZ
TO_YMINTERVAL
TRUNC (date)
TZ_OFFSET
34
Oracle Time Series pakete (vairs neatbalsta)
35
Oracle8i laika sērijas
Neregulāras laikasērijas
Regulāras laikasērijas
Laika sēriju funkcijuizmantošana ( izņemot
funkcijas Lead, Lagun Fill )
Kalendāra atbalsts
Datu korektumakontroles iespējas
Datu kontrolesiespējas datu ievades,
labošanas undzēšanas laikā
Visu laika sērijufunkciju
izmantošanas iespēja
Laika mērogošanasfunkciju
izmantošanas iespēja
4.2. att. Laika sēriju iedalījums regulārās un neregulārās laika sērijās
36
Bitemporal database
37
tDBSTemporālās datu bāzes sistēmas veidošana
1. SQL valodas paplašinājumu izmantošana (funkcijas un operatori).
OVER() un ...
2. Temporālo datu bāzes vadības sistēmu (TempDBVS) izmantošana
(DBVS ar iekļautu temporālo SQL valodu).
3.Temporālā paplašinājuma veidošana universālām datu bāzes
sistēmām:
- komerciālie paplašinājumi;
- nekomerciālās izstrādnes.
38
Temporālie paplašinājumi universālām datu bāzes
vadības sistēmām
1. Time DB (Time Consult).
2. Informix TimeSeries Datablade (IBM)
3. Immortal DB (MS rResearch group)
4. Oracle Flashback
5. Oracle Workspace Manager6. TimeIT (Department of Computer Science, University of Arizona).
7. ORES (Department of Computer Science, University of Athens;
IBM Ingres).
8. TOOBIS (Department of Computer Science, University of Athens).
9. Tiger (Department of Computer Science, University of Aalborg;
Oracle).
10. TimeChain Developer (TimeChain).
39
Bitemporālās datu bāzes realizācijas
Oracle Workspace Manager Workspace Manager, a feature of Oracle Database, enables application developers and DBAs to manage current, proposed and historical versions of data in the same database.
TimeDB is a free temporal relational DBMS by TimeConsult. It runs as a frontend to Oracle that accepts TSQL2 statements and generates SQL92 statements.
PostgreSQL has an open-source contributed package that can be installed in the database to manage temporal data. The function reference is here.
Teradata version 13.10 and Teradata version 14 has temporal features built into the database.
Anchor Modeling emulates temporal features and automates the implementation in databases that lack support.
The SQL:2011 standard added (belated) support for temporal features in synchronicity with an implementation in IBM DB2 version 10 as the so-called "time travel query".
40
TimeDB
1. Temporālas DBVS prototips TimeDB tika izveidots 1997. gadā. To izstrādāja Andreas Steiner disertācijas darba ietvaros. 2. Prototips ļāva izmantot gan reālas pasaules laiku, gan arī transakciju laiku, tomēr eksistēja arī ierobežojums – šis prototips strādāja tikai ar vienu konkrētu relāciju DBVS Oracle.3. TimeDB 2.0 tika realizēta valodā Java. Darbam ar relāciju DBVS tika izmantots JDBC interfeiss, kas ļāva pieslēgties pie jebkuras datu bāzes. 4. Uz doto brīdi ir pieejama TimeDB 2.2 versija (2005. gads). 5. TimeDB 2.2 atbalsta sekojošas galvēnas īpašības:
1) agregācijas funkcijas;
2) GROUP BY teikumus;
3) HAVING teikumus;
4) tabulu un kolonnu ierobežojumus (constraints);
5) dzimto izsaukumu interfeisu (TDBCI) Java programmām;
6) vēsturiskas DB (valid time);
7) apakšvaicājumus (subqueries);
8) skatus;
9) insert un delete operācijas tabulām;
10) transakcijas (commit / rollback).
41
Informix TimeSeries Datablade1. TimeSeries modulis tika izveidots 1995. gadā, kā paplašinājums IBM
Informix relāciju DBVS.
2. Tas satur speciālu datu tipu definīciju – laika rindu un kalendārus, ka arī
satur vairāk par 40 funkcijām darbam ar datiem, kuri satur laika iezīmes.
3. Modulī eksistē arī konkrēta piekļuves ceļa optimizācija.
4. Informix TimeSeries DataBlade ir sekojošas īpašības:
- datu glabātuvei ir izmantota smart tehnoloģija, kas ļauj iegūt datus ātrāk; - vienkāršotais dizains un kods ļauj atbalstīt ekspromtvaicājumus (ad-hoc queries); - elastīgums, kas ļauj strādāt ar vairākiem laika sēriju datu tipiem; - piekļuve, kas ir balstīta uz kalendāra (paaugstina veiktspēju).
42
Immortal DB
1. Immortal DB projekta izstrāde tika uzsākta 2002. gada rudenī. Immortal DB
projektu izstrādāja Microsoft kompānijas Research grupa.
2. Projekta mērķis bija nodrošināt transakciju laika atbalstu, kas būtu iebūvēts
SQL serverī, nevis būtu implementēts kādā starpnieka līmenī (proxy-level).
3. Microsoft kompānija centās demonstrēt, ka DBVS var efektīvi atbalstīt ne
tikai momentuzņēmumus (snapshots), bet arī pilnvērtīgi atbalstīt transakciju
laiku, nesamazinot veiktspēju.
4. Viena no problēmām, kuru mēģināja risināt izstrādātāji, bija datu
modernizācijas un modifikācijas nodrošināšana bez papildus resursu
izmantošanas. Tam bija ieviesta datu bāzes failu lappušu sadalīšana gadījumos,
kad notiek pārpildīšana gan pēc atslēgas, gan arī pēc laika atribūta. Paralēlas
piekļuves kontroles un atjaunošanas mehānismi bija pilnīgi integrēti ar
atbilstošām Microsoft SQL Server funkcijām.
43
Oracle Flashback1. Oracle9i vidē tika izveidots Flashback Query mehānisms – jaudīgs, pilnībā
drošs un vienkāršs datu atjaunošanas veids pēc lietotāja kļūdām. Šīs mehānisms
arī dod iespēju lietotājiem apskatīt datubāzes stāvokli kāda pagātnes periodā,
pie tām neveicot datubāzes struktūras izmaiņas.
2. Flashback Query operācijas var tikt izpildītas arī gadījumos, kad
administrators nav pieejams, kas ļauj programmatūras izstrādātājiem pievienot
datu atjaunošanas funkcijas savos produktos.
3. Flashback Query izmantošanai ir obligāti jāizmanto automātiska
atjaunošanas kontroles sistēma Automatic Undo Management, nevis Rollback
Segments tehnoloģija.
4. Oracle 9i versijā Flashback Query tehnoloģija ļāva iegūt piekļuvi tikai kādam
noteiktam un statiskam datu momentuzņēmumam.
5. Jaunajā Oracle versijā 11g šai tehnoloģijai tika pievienoti papildus rīki:
1) Flashback Version Query, - ļauj statiskas bildes vietā iegūt izmaiņu kopu;
2) Flashback Transaction Query - ļauj apskatīt izmaiņas, kuru veica noteikta
transakcija;
3) Flashback Database, Flashback Query un Flashback Drop ļauj atgriezties
pie kāda noteikta datu bāzes stāvokļa konstanti ātri (šis ātrums nav atkarīgs no
datu bāzes apjoma).
44
Oracle Workspace Manager1. Oracle 11g Workspace Manager mehānisms ļauj vadīt tekošās, plānotas un
vēsturiskās datu vērtībās vienā un tajā pašā datu bāzē.
2. Oracle Workspace izmanto darba telpas, lai varētu glābāt izmaiņu vēsturi un
veidot attīstības scenārijus iespējamās nākotnes prognozei.
3. Izveidotas darba telpas var tikt mantotas no citām darba telpām vai arī no
aktuālas darba telpas LIFE, kas tiek izmantots pēc noklusējuma. Šajā gadījumā
tiek fiksēts tekošais priekšteča darba telpas stāvoklis.
4. Kādas konkrētas darba telpas ietvaros var arī izmantot saglabāšanas
punktus, kuri ļauj veikt izmaiņu atriti līdz kādam pagātnes momentam.
5. Tiek atbalstītas arī priekšteča un pēcteča darba telpu apvienošanas
operācijas. Eksistē arī iespēja kontrolēt visas datu izmaiņas, tajā skaitā
pievienošanas, dzēšanas un modifikācijas operācijas. Faktiski tas arī nodrošina
transakciju laika atbalstu.
6. Ir iespējams arī fiksēt kādu vaicājumu kādā noteiktā laika brīdī.
7. No tehniskas puses darba telpas ir datu attēlošanas un trigeru INSTEAD OF
apdarītāju kopas. Kad lietotājs velas pievienot tabulai versiju atbalstu, darba
telpu menedžeris nomaina tabulas vārdu uz <tabulas vārds>_LT un pievieno tai
četrus papildus laukus un veido attēlu ar sākotnējas tabulas vārdu, kurai
INSTEAD OF trigeru apdarītāji veic visas nepieciešamas darbības datu
izmaiņai sākotnējās tabulās.
45
Populārākās laika sēriju datu bāzes2
A time series database (TSDB) is a software system that is optimized for handling time series data, arrays of numbers indexed by time (a datetime or a datetime range). In some fields these time series are called profiles, curves, or traces. A time series of stock prices might be called a price curve. A time series of energy consumption might be called a load profile. A log of temperature values over time might be called a temperature trace.Despite the disparate names, many of the same mathematical operations, queries, or database transactions are useful for analysing all of them. The implementation of a database that can correctly, reliably, and efficiently implement these operations must be specialized for time-series data.
1. DalmatinerDB2. InfluxDB3. Prometheus4. Riak TS5. OpenTSDB6. KairosDB7. Elasticsearch8. Druid9. Blueflood10. Graphite (Whisper) Runners Up (2. vietas ieguvēji)1. Atlas2. Chronix Server3. Hawkular4. Warp 105. Heroic6. Akumuli
2 https://blog.dataloop.io/top10-open-source-time-series-databases
46