Model de ancoră

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 4 mai 2022; verificarea necesită 1 editare .

Modelarea ancoră  este o tehnologie de modelare a depozitului de date potrivită pentru informații care se modifică în timp atât ca structură, cât și ca conținut. Oferă o grafică[ clarifica ] folosit pentru modelarea conceptuală, similar modelării de entități și relații , cu extensii pentru a lucra cu date temporale. Tehnica de modelare folosește patru modele de modelare: Ancoră, Atribut, Legătură și Nod, fiecare dintre acestea reflectând diferite aspecte ale domeniului care este modelat. Modelele rezultate pot fi traduse în baze de date fizice, folosind reguli formalizate. Când se face o astfel de traducere, tabelele dintr-o bază de date relațională vor fi în cea mai mare parte în a șasea formă normală .

Filosofie și istorie

Modelarea ancoră a fost creată pentru a profita de gradul ridicat de normalizare a bazei de date și pentru a evita dezavantajele acestuia. Există beneficii precum capacitatea de a nu distruge modelul, de a evita valorile goale (adică, null ) și de a nu permite informații redundante. Problemele de performanță datorate îmbinărilor suplimentare sunt în mare măsură eliminate de o caracteristică din motoarele de baze de date moderne numită „ eliminare tabelă ”.

Primele depozite de date pe modele de ancorare au fost construite în Suedia , primul dintre ele (2004) a fost pentru o companie de asigurări. În 2007, tehnica a fost folosită în mai multe depozite de date și într-un sistem OLTP și a fost prezentată la nivel internațional de Lars Rönbeck la conferința TDWI (Data Warehouse Institute) de la Amsterdam [1] . Acest lucru a stârnit interesul pentru tehnica de a obține o descriere mai formală. De atunci, cercetările legate de modelarea ancorelor s-au desfășurat în colaborare între creatori - Ulle Regardt și Lars Rönbeck, precum și cu participarea specialiștilor de la Departamentul de Științe Calculatoare și Sisteme de la Universitatea din Stockholm . Prima lucrare [2] , care a descris oficial tehnologia, a fost prezentată la cea de-a 28-a Conferință Internațională de Modelare Conceptuală [3] și a primit premiul pentru cea mai bună lucrare.

Materialul de modelare Anchor este disponibil sub o licență Creative Commons . Este, de asemenea, disponibil un instrument de simulare online, care poate fi folosit gratuit și open source.

Concepte de bază

Modelarea ancorelor are patru concepte de modelare de bază: ancore, atribute, legături și noduri. Ancorele sunt folosite pentru a modela entități și evenimente, atributele sunt folosite pentru a modela proprietățile ancorelor, legăturile modelează relațiile dintre ancore, nodurile sunt folosite pentru a modela proprietăți generale, cum ar fi stările. Atributele și relațiile pot fi interpretate atunci când modificările aduse informațiilor pe care le modelează trebuie salvate.

Un model exemplificativ care arată diferitele simboluri grafice pentru cele patru concepte de model este prezentat mai jos. Simbolurile seamănă cu cele utilizate în modelul de modelare a entităților și relațiilor , cu mai multe extensii.[ specificați ] . Un contur dublu pe un atribut sau o ancoră indică faptul că este păstrat un istoric al modificărilor și este disponibil și un simbol nod (pătrat rotunjit cu margini rotunjite).

Aspecte temporale

Modelarea ancorelor guvernează două tipuri de evoluție a informațiilor[ clarifica ] , modificări structurale și modificări de conținut. Modificările în structura informațiilor sunt reprezentate prin extensii. Un grad ridicat de normalizare a datelor vă permite să adăugați în mod nedistructiv conceptele de modelare necesare pentru efectuarea modificărilor, astfel încât fiecare schemă anterioară a bazei de date să rămână întotdeauna ca un subset al schemei curente . Deoarece schema existentă este neatinsă, aceasta are avantajul că poate evolua în baza de date într-o manieră foarte iterativă și nu poate cauza niciun timp de nefuncționare.

Modificările la conținutul informațiilor se fac prin emularea unor funcții similare ale unei baze de date temporare într-o bază de date relațională . În modelarea ancorată, informațiile pot fi legate de momente în timp sau de perioade de timp (atât deschise, cât și închise). Momentele în care apar evenimentele sunt modelate folosind atribute precum datele de naștere ale oamenilor sau orele de cumpărare. Intervalele de timp în care valoarea este valabilă sunt fixate prin istoricizare[ termenul necunoscut ] atribute și relații, cum ar fi modificări ale culorii părului unei persoane sau perioada de timp în care o persoană a fost căsătorită. Într-o bază de date relațională, acest lucru se realizează prin adăugarea unei singure coloane de tip de date , suficient de granulară pentru a capta rata de schimbare în tabel, corespunzătoare atributului sau relației istorice. Acest lucru adaugă un pic de complexitate, deoarece mai mult de un rând din tabel trebuie examinat pentru a vedea dacă intervalul este închis sau nu.

Punctele sau intervalele de timp care nu sunt asociate direct cu domeniul modelat, cum ar fi informațiile de punct de timp introduse într-o bază de date, sunt gestionate prin utilizarea metadatelor în modelarea ancorelor și nu în niciunul dintre constructele menționate mai sus. Dacă doriți să salvați informații despre astfel de modificări în baza de date, puteți utiliza modelarea cu referire la bidemop[ termen necunoscut ] ancore în care, pe lângă actualizări, instrucțiunile eliminate devin nedistructive.

Vedere relațională

În modelarea ancoră, există o corespondență unu-la-unu între simbolurile utilizate într-un model conceptual și tabelele dintr-o bază de date relațională. Fiecare ancoră, atribut, legătură și nod are un tabel corespunzător în baza de date cu o structură definită în mod unic. Astfel, un model conceptual poate fi tradus într-o schemă de bază de date relațională folosind reguli automate simple și invers. Acest lucru este diferit de multe alte tehnici de modelare în care există pași de traducere complexi și uneori subiectivi între nivelurile conceptuale, logice și fizice.

Tabelele de legare conțin o singură coloană care stochează datele de identitate. Identitatea este considerată a fi singura proprietate a unui obiect care este întotdeauna prezent și imuabil. Deoarece identitățile sunt rareori disponibile din domeniul modelat, ele sunt în schimb generate tehnic, de exemplu dintr-o secvență numerică ascendentă.

Un exemplu de ancoră pentru identificarea nepoților lui Donald Duck este un set de 1 tuplu:
{⟨#42⟩, ⟨#43⟩, ⟨#44⟩}

Nodurile pot fi gândite ca o combinație între o ancoră și un singur atribut. Tabelele de noduri conțin două coloane, una pentru ID și una pentru valoare. Datorită stocării identităților și valorilor, nodurile nu pot fi interpretate. Utilitatea lor provine din capacitatea de a reduce cerințele de memorie și de a îmbunătăți performanța, deoarece tabelele care fac referire la noduri pot stoca o valoare scurtă mai degrabă decât un șir lung.

Un exemplu de nod pentru grupurile de gen este un set de două tupluri:
{⟨#1, 'Male'⟩, ⟨#2, 'Female'⟩}

Tabelele cu atribute statice conțin două coloane, una pentru ID-ul obiectului căruia îi aparține valoarea și una pentru valoarea reală a proprietății. Tabelele cu atribute istorice au o coloană suplimentară pentru a stoca punctul de început al unui interval de timp. Într-un tabel cu atribute de nod, coloana de valoare este un identificator care se referă la tabelul de noduri.

Un exemplu de atribut static pentru numele lor este un set de 2 tuple:
{⟨#42, 'Huey'⟩, ⟨#43, 'Dewey'⟩, ⟨#44, 'Louie'⟩}

Un exemplu de atribut static înnodat pentru genurile lor este un set de două tupluri:
{⟨#42, #1⟩, ⟨#43, #1⟩, ⟨#44, #1⟩}

Un exemplu de atribut cu un istoric pentru culorile (schimbătoare) ale ținutelor lor este un set de 3 tuple:
{⟨#44, 'Orange', 1938-04-15⟩, ⟨#44, 'Green', 1939-04-28⟩, ⟨#44, 'Blue', 1940-12-13⟩}

Tabelele de joncțiuni statice leagă două sau mai multe ancore una la alta și conțin două sau mai multe coloane pentru a stoca identificatorii. Din punct de vedere istoric, tabelele spanning au o coloană suplimentară pentru a stoca punctul de pornire al intervalului de timp. Tabelele legate cu un nod au o coloană suplimentară pentru fiecare nod de legătură.

Un exemplu de relație statică pentru o relație de frați este un set de două tupluri:
{⟨#42, #43⟩, ⟨#42, #44⟩, ⟨#43, #42⟩, ⟨#43, #44⟩, ⟨#44, #42⟩, ⟨#44, #43⟩}

Toate tabelele rezultate vor fi în a șasea formă normală , cu excepția relațiilor în care nu toate coloanele fac parte din cheia primară.

Note

  1. A 6-a Conferință Europeană TDWI - Pagina de pornire TDWI Arhivată din original pe 20 iulie 2011.
  2. Regardt, Olle și Rönnbäck, Lars și Bergholtz, Maria și Johannesson, Paul și Wohed, Petia (2009). Modelarea ancorelor. Proceedings of the 28th International Conference on Conceptual Modeling . ER '09. Gramado, Brazilia: Springer-Verlag: 234-250. ISBN 978-3-642-04839-5 .  
  3. A 28-a Conferință Internațională de Modelare Conceptuală — Pagina de pornire ER'09