380 likes | 539 Views
CAPITOLE AVANSATE DE BAZE DE DATE. BAZE DE DATE SPA Ţ IO-TEMPORALE - Baze de date temporale -. “ This thing all things devours: Birds, beasts, trees, flowers; Gnaws iron, bites steel; Grinds hard stones to meal; Slays king, ruins town, And beats high mountain down.” (The Hobbit).
E N D
CAPITOLE AVANSATE DE BAZE DE DATE BAZE DE DATE SPAŢIO-TEMPORALE - Baze de date temporale -
“This thing all things devours: Birds, beasts, trees, flowers; Gnaws iron, bites steel; Grinds hard stones to meal; Slays king, ruins town, And beats high mountain down.” (The Hobbit)
Timpul • Timpul, indiferent dacă îl percepem în mod conştient, îl măsurăm, îl “notăm” sau nu, el trece, se derulează permanent. Nu îl vedem, nu îl putem atinge, dar el există. • Făcând analogie cu termeni întâlniţi în mecanică, timpul se deplasează pe o direcţie sau axă, într-un singur sens, cu viteză constantă. Ceea ce diferă este modul în care este perceput sau în care este măsurat. • Filosofii au încercat să ajungă la un comun acord cu privire la conceptul timpului: unii au afirmat că timpul este o proprietate de bază a universului, alţii au susţinut că este o iluzie sau o proprietate a minţii umane, şi nu a lumii în care trăim. • În general, timpul a fost considerat ca fiind total ordonat, însă au fost sugerate în timp şi alte viziuni ale acestuia (de exemplu: timpul ciclic a fost menţionat de Pitagora şi în cultura civilizaţiilor pre-columbiene, maiaşe şi aztece).
Date temporale. Semantici temporale • Densitate temporală: timpul este văzut ca fiind: • discret, • dens sau • continuu. • Această caracteristică este stabilită în funcţie de izomorfismul dintre domeniul temporal şi mulţimea numerelor naturale (N), raţionale (Q) sau reale (R). • În modelarea timpului ca domeniu discret, fiecare instanţă de timp are un succesor şi un predecesor, iar intervalele de timp sunt compuse din puncte contigue, unde ti+1 este succesorul lui ti. • Din punct de vedere matematic, în reprezentarea axei temporale ca domeniu Q sau R, între două înstanţe de timp există o infinitate de alte instanţe.
Structura timpului: • majoritatea aplicaţiilor consideră timpul ca fiind • liniar (în mod natural, ca o colecţie – parţial sau total – ordonată de primitive temporale), • dar mai poate fi modelat ca: • periodic sau ciclic (orar), • ramificat (planificare, predictie). • Instanţă de timp: un punct pe o axă temporală, un moment de timp. • Interval de timp: timpul dintre două instanţe de timp dat ca set de instanţe de timp contigue; mai este numit durată de timp direcţionată (se cunoaşte lungimea, dar şi instanţele care definesc capetele). • In general: complet definit [t1, t2] sau semi-definit [t1, t2), (t1, t2]
Tipuri de date de timp: o valoare de timp asociată unui element este reprezentată ca punct (instanţă de timp) sau interval. • Perioadă (sau durată) de timp: proprietatea cantitativă a unui interval de timp; lungimea unui interval de timp pentru care nu sunt cunoscute capetele (sau nu e necesar sa fie cunoscute) • de exemplu: o oră poate corespunde atât intervalului [09:00, 10:00), cât şi intervalului [20:00, 21:00) sau oricărui alt interval de lungime 60 minute.
Timp valid: timpul (punct sau interval) asociat unui element sau intervalul de viaţă al unui obiect în realitatea modelată; poate avea orice valoare din trecut sau viitor şi poate fi modificată de oricâte ori este necesar în baza de date. • Timp tranzacţional: timpul (punct sau interval) care defineşte viaţa unui element în baza de date (de la inserare pana la ştergerea logică); poate avea ca valoare cel mult timpul curent şi valoarea nu-i poate fi modificată; se foloseşte îndeosebi la urmărirea operaţiilor efectuate, ca fişier jurnal.
Timp definit de utilizator: este o valoare de timp (în general, instanţă de timp) a cărei semnificaţie este decisă de către factorul uman (utilizatorul aplicaţiei sau proiectantul modelului de date). • În general nu se pune accent pe acesta, nu se pune la dispozitie un suport practic pentru acest tip de timp şi nu este standardizată reprezentarea acestuia, din cauza multitudinii de semnificaţii pe care poate sa le primească. • Timpul decizional este un caz particular de timp definit de utilizator, semnificând momentul la care s-a luat o anumită decizie în organizaţia respectivă. • Examplu: modificarea salarului unui angajat: George, 100, [1/1/2009, 31/3/2009] = timp valid, [20/12/2008, UC] = timp tranzactional, 15/12/2008 = timp decizional.
Marcă de timp (Timestamp): o valoare de timp (punct sau interval) asociată unui obiect, atribut sau relaţii; poate fi de tip timp valid sau timp tranzacţional. • Timp absolut: o marcă de timp care este independentă, nu depinde de marca de timp a unui alt element sau de momentul de timp curent. • Timp relativ: marca de timp este în funcţie de un alt moment de timp, precum marca de timp a unui alt element sau de timpul curent.
Eveniment: denotă o întâmplare, ceva ce are loc la un anumit moment de timp, la o anumită locaţie. Poate sa cauzeze schimbarea de stare a unui (endogen) sau mai multor obiecte (exogen). • Cu sau fara durata??? • Stare: a unui obiect, valorile unui set de proprietati in care suntem interesati. • Viaţa / Durata de viaţă (Lifespan): intervalul de timp pe care un obiect este definit (în realitatea modelată sau în baza de date). • De exemplu: dacă obiectul O are mărcile de timp valid asociate [1, 3), [3, 10), [10, 15), atunci durata de viaţă în realitate (în masura în care este cunoscută în baza de date) este [1, 15).
Istorie, evoluţie: este reprezentarea temporală a unui obiect din realitate sau din baza de date (vezi noţiunea world-line menţionată în Introducere); în funcţie de obiect, poate fi istoria unui atribut, a unei entităţi, a unei relaţii etc. • Obs. Evolutia unui obiect poate fi vazuta ca graf orientat, compus din stari si evenimente. Figura. Parte din evolutia unui obiect (3 stari si 2 evenimente)
Atribut de timp: atribut al unei relaţii care conţine ca valori mărci de timp; atribut de timp valid, atribut de timp tranzacţional. • Atribut variant (in timp) sau atribut dinamic: un atribut ale cărui valori nu sunt constrânse a rămâne constante în timp. • Atribut invariant (in timp) sau atribut static: atribut ale cărui valori e posibil sa se schimbe în timp sau suferă schimbări, dar e suficient a se memora doar valoarea curentă. • Atribut temporal = Atribut variant + Atribut de timp • De exemplu: Angajat – nume (static), salar (dinamic), salar + timp (atribut temporal)
Now (Acum): variabila temporală ce reprezintă ca valoare timpul curent: • e folosită ca instanţă de timp • “until-changed”, “current”, “∞” sau alte notaţii • are un rol important în procesul de implementare a datelor temporale: un SGBD ar trebui sa pună la dispoziţie o asemenea variabilă, pentru a nu modifica în fiecare moment de timp capătul terminal al intervalelor care semnifică momentul prezent.
Evoluţia obiectelor • Evoluţia (temporală a) unui obiect O (functie de evolutie): mulţimea (succesiunea) stărilor prin care trece O în timp; schimbările stării lui O în timp • EvO : T → DO, EvO(t) = starea lui O la timpul t, unde T = domeniul temporal si DO = setul starilor posibile ale lui O (domeniul lui O).
Tipuri de evoluţii • Evoluţie discretă: obiectul O este în starea Si la momentul de timp ti, iar în momentul tj este în starea Sj. • punctiformă (point-based): se înregistreaza starea lui O în anumite momente de timp, fără a exista un interes asupra stărilor intermediare acestor momente. De exemplu: urmărirea evoluţiei stării febrile a unui pacient (vezi tabelul a) starea se înregistrează în momentele de timp stabilite ti, i:=1..n, însă nu se poate şti cu exactitate valoarea temperaturii la momentele ti < t < ti+1, i:=1..(n-1). • pe intervale de timp (interval-based): starea obiectului O rămâne neschimbată între două momente de timp. De exemplu: evoluţia salarului unui angajat (vezi tabelul b) – se înregistrează schimbările efectuate asupra venitului salarial şi se cunoaşte că acelaşi sumă este validă pentru un interval de timp.
Tipuri de evoluţii • Evoluţie continuă: obiectul O suferă o trecere din starea Si (la momentul de timp ti) în starea Sj (la tj), pe parcursul unui interval de timp. Acest tip de evoluţie poate fi scris ca funcţie de timp. • liniar: dacă se cunosc valorile / stările lui O la momentele de timp ts şi tf, atunci starea lui O la oricare moment intermediar t [ts, tf) este stabilită prin interpolare liniară. • non-liniar: evolutie care poate fi descrisa cu functii non-liniare, pe intervale de timp.
Tabel. Evolutie discreta, punctiforma, VT. Evolutia temperaturii unui pacient
Tabel. Evolutie discreta, pe intervale de timp, VT. Evolutia salarului unui angajat.
Figura. • (a) evolutie discreta point-based, • (b) evolutie discreta interval-base, • (c) evolutie continua reprezentata prin functii liniare de timp, • (d) evolutie continua reprezentata prin functii non-liniare de timp.
Baze de date temporale • Bazele de date tradiţionale sunt numite deseori “snapshot” (instantanee) deoarece conţin informaţie doar despre starea curentă a faptelor (a realităţii modelate), nu şi istoria lor. O relaţie convenţională modelează realitatea văzută într-o singură stare (la un moment dat). În general este ilustrată ca un tabel 2D, în care sunt identificate tuple şi coloane; unele tuple sunt adăugate, modificate sau eliminate din relaţie. • O serie de aplicaţii / domenii de activitate au nevoie de consultare şi gestiune de date care să reprezinte evoluţia entităţilor din mediul respectiv => s-au introdus atributele temporale => baze de date temporale. • În bazele de date temporale, înregistrările nu sunt şterse fizic în general (acest fapt depinzând de modelul de date şi de proiectarea bazei de date), ci sunt “versionate”. Aceasta înseamnă că datele sunt şterse doar la nivel logic, şi astfel se păstrează evoluţia acestora. • Dezavantaj inevitabil: spaţiul de stocare necesar, deoarece în timp se acumulează o cantitate tot mai mare de informaţie (de versiuni). (O soluţie ce ar putea fi abordată este migrarea datelor mai vechi la o alta locaţie, chiar pe un alt suport (arhivarea datelor).) • Aplicaţii de natură temporală: aplicaţii financiare (accounting, banking), aplicaţii de gestiune înregistrări (personal, medicale, inventar), planificare, aplicaţii ştiinţifice (monitorizare experimente) şi multe altele.
Baze de date temporale • Definiţie. O bază de date temporală (BDT) este o bază de date care înregistrează informaţii care variază în timp, împreună cu variaţia acestora. • Observaţie. Faptul că în structura unei baze de date există un atribut de tip “timp definit de utilizator”, nu o transformă în bază de date temporală, însă nu este exclus ca într-o bază de date temporală sa regăsim un atribut de acest tip. • De exemplu: atribut “data_nasterii”.
Bazele de date – conform gestiunii timpului • În funcţie de tipul de atribute temporale incluse în structură, bazele de date temporale pot fi: • baze de date instantanee (snapshot databases): bazele de date (numite mai sus) clasice, adică bazele de date care nu conţin în structura lor nici un atribut temporal; • baze de date istorice (historical databases): bazele de date care conţin cel puţin un atribut temporal valid, şi nu conţin nici un atribut temporal tranzacţional; • baze de date rollback (rollback databases): bazele de date care conţin atribute temporale tranzacţionale, dar nu conţin nici un atribut temporal valid; • baze de date bi-temporale (bitemporal databases): bazele de date care conţin cel puţin o relaţie bi-temporală.
Ce marcăm cu mărci de timp? • In general – elementele marcate temporal sunt obiecte. Fie un tabel cu structura: • (OID, A1, A2, … Ap, TA1, TA2, …, TAq), unde OID reprezinta id-ul obiectului, atributele A1, …, Ap sunt invariante in timp, si TA1, …, TAq sunt atribute cu variatie in timp. • Daca se adauga un singur atribut (de tip timp) T, atunci se obtine (OID, A1, A2, … Ap, TA1, TA2, …, TAq, T) => de fiecare data cand se schimba ceva pentru obiect (orice atribut variant), trebuie sa inregistram schimbarea prin adaugarea unei noi inregistrari (in care atributele care nu si-au modificat valorile sunt pur si simplu copiate – sau cel putin cele care nu variaza in timp). • => divizarea structurii: • (OID, A1, A2, … Ap) – date statice • (OID, TA1, TA2, …, TAq, T) – date care variaza in timp
Ce marcăm cu mărci de timp? • Daca toate atributele variante in timp sufera modificari cu (aproape) aceeasi frecventa, atunci este o structura destul de eficienta. • Altfel, se indica divizarea in continuare a ultimei structuri, in functie de frecventa schimbarilor ale atributelor variante in timp. In cel mai “rau” caz vom obtine: • (OID, TA1, T) – time-varying data • (OID, TA2, T) – time-varying data • … • (OID, TAq, T) – time-varying data
Marci de timp de tip interval de timp • Interval de timp posibil: [t1, t2], [t1, t2), (t1, t2], or (t1, t2). • In general - folosite: [t1, t2] – pentru timp discret, [t1, t2) – pentru timp dens (dar aceasta nu este o regula).
Scheme reprezentaţionale temporale • Se consideră următoarele notaţii în specificarea structurilor temporale: • AV = Atribut de timp valid, de tip instanţă de timp • AT = Atribut de timp tranzacţional, de tip instanţă de timp • AVs, AVf, ATs, ATf = Sub-atribute de timp care reprezintă capetele unui interval de timp valid, respectiv tranzacţional • Ai (i:=1..n) = Atributele tematice (diferite de atribute de timp) ale unei relaţii
Modele temporale • Model temporal grupat (numit şi non-1NF), în care se efectuează marcare la nivel de atribut; domeniul fiecarui atribut temporal este extins la valori multiple pentru a include dimensiunea temporală; evenimentele corelate sunt grupate şi reprezentate într-un singur tuplu; • Model temporal negrupat (sau 1NF), implică marcare la nivel de tuplu; fiecare tuplu individual marchează o schimbare.
Modele temporale • Exemplu: Sali de cinema, filme care ruleaza, si intervalele de timp valid si tranzactional corespunzatoare. • Tabel. Relatie bi-temporala
Modele temporale negrupate • Schema reprezentaţională Snodgrass presupune, de asemenea, marcarea bi-temporală la nivel de tuplu, cu mărci de timp de tip interval. Structura unei relaţii a bazei de date are structura: • R [A1, A2, …, An, AVs, AVf, ATs, ATf]. • Acest model temporal impune ca intervalele de timp valid corespunzătoare tuplelor cu aceleaşi valori pentru atributele non-timp sa fie disjuncte (de exemplu, pentru perechea de valori (‘R1’, ‘Toy Story’)). Datele din tabelul anterior (exemplul de plecare) sunt reprezentate conform schemei Snodgrass.
Modele temporale negrupate • Schema reprezentaţională Ariav– marcarea temporală este realizată la nivel de tuplu, iar mărcile de timp asociate sunt de tip instanţă de timp. O asemenea relaţie este de forma: • R [A1, A2, …, An, AV, AT] • unde AT şi AV reprezintă momentele de timp la care s-a înregistrat (în baza de date, respectiv în realitatea modelată) apariţia evenimentului, instanţele de timp începând cu care valorile tuplului respectiv sunt valide (până la următoarea înregistrare corespunzătoare acelui tuplu). R este o relaţie bi-temporală de tip eveniment, deoarece nu presupune cunoaşterea duratei de validitate a obiectului marcat în realitate. • Tabel. Schema Ariav
Modele temporale negrupate • Schema reprezentaţională Jensen corespunde unui model de date cu jurnal de recuperare (asemenea unui jurnal folosit în gestiunea tranzacţiilor), în care se efectuează o marcare mixtă. Marca de timp valid este de tip interval, iar marca de timp tranzacţional este de tip instanţă de timp. Relaţiile acestei scheme sunt de forma: • R [A1, A2, …, An, AVs, AVd, AT, Op], • unde Op reprezintă tipul operaţiei efectuate pe tuplu (I = inserare, S = ştergere logică), iar AT semnifică timpul operaţiei. • Operaţiile efectuate asupra înregistrărilor unei asemenea relaţii sunt exclusiv de adăugare, datorită mărcii de timp tranzacţional, ale cărei valori cronologice dictează ordinea de efectuare a operaţiilor. Modificările asupra datelor sunt executate ca secvenţă de operaţii ştergere + inserare (cu acelaşi timp tranzacţional), ceea ce este echivalent cu două operaţii de inserare în structură.
Modele temporale negrupate • Tabel. Schema Jensen
Modele temporale negrupate • Schema reprezentaţională Ben-Zvi • corespunde unui model bi-temporal în care structura relaţiilor include cinci atribute de timp: • Tes este echivalent capătului iniţial al intervalului de timp valid, • Trs este timpul la care s-a înregistrat Tes (capătul iniţial al intervalului de timp tranzacţional), • Tef este timpul când valorile tematice ale tuplului au încetat să fie valide în realitate (capatul terminal al intervalului de timp valid), • Trf semnifică timpul tranzacţional de înregistrare al lui Tef, • Td este timpul de ştergere logică din baza de date a tuplului respectiv (echivalent cu capătul final al intervalului de timp tranzacţional; valoarea ‘ – ‘ a atributului Td indică faptul că înregistrarea încă este în starea curentă a bazei de date). • Tabel. Schema Ben-Zvi
Modele temporale negrupate • Schema reprezentaţională Ben-Zvi: • Observatie. In tabelul Ben-Zvi schema – daca intervalul VT al ultimului tuplu este terminat cu valoarea 22, la timpul TT 25, atunci tuplul va contine:
Modele temporale grupate • Schema reprezentaţională McKenzie foloseste mărci de timp mixte de tip instanţă de timp în relaţii cu structura: • R [AT, R’], unde R’ = [A1AV1, …, AnAVn] • unde fiecare valoare a atributului AT marchează o relaţie de timp valid, iar AVi, i:=1..n, sunt mulţimi de instanţe de timp valid. • se pot obţine duplicate ale valorilor atributelor care nu se modifică de la un timp tranzacţional la următorul • ştergerile înregistrărilor pot fi deduse numai prin comparaţii ale timpilor valizi ale relaţiilor indexate temporal succesive • TS pentru “R1” si “Toy Story” pot fi diferite (in exemplu – se modifica simultan) • Tabel. Schema McKenzie
Modele temporale grupate • Schema reprezentaţională Gadia • concentrează întreaga informaţie ce reprezintă evoluţia unui obiect într-un singur tuplu. • Un avantaj al acestui mod de organizare a datelor temporale este posibilitatea de restructurare a schemei astfel încât concentrarea valorilor să se efectueze în funcţie de valorile unui anumit atribut (non‑timp) al relaţiei. • O structură care respectă schema reprezentaţională Gadia este de forma: • R [{(A1, V T)}, …, {(An, V T)}], • unde V = [AVs, AVf) şi T = [ATs, ATf) • In tabelele (a) si (b) – modelul Gadia este aplicat conform uneia sau ambelor atribute tematice. (a) daca este structurat in functie de valorile atributului “Sala”; (b) daca este structurat in functie de valorile atributelor “Sala” si “Film”.
Modele temporale grupate • Tabel. (a) Schema Gadia • Tabel. (b) Schema Gadia
Modele temporale grupate • Bi-temporal Conceptual Data Model (BCDM) • Pentru fiecare obiect se memoreza lista punctelor 2D temporale (VT X TT) care reprezinta momentele 2D in care obiectul exista in realitatea modelata si in baza de date. • Observatie: Dificil de reprezentat “Now” • Tabel. (b) BCDM