Baze de date active

Elemente extensibile și de extensie ale bazei de date

Informațiile primei și celei de-a doua specii din agregat descriu în mod explicit obiectele (entitățile) ale lumii reale modelate în baza de date. Cu alte cuvinte, acestea sunt faptele evidente furnizate de utilizatori pentru stocarea în baza de date. Această parte a bazei de date se numește extensie.







Informațiile de tipul al treilea servesc la ghidarea DBMS atunci când efectuează diverse tipuri de operațiuni specificate de utilizatori. Constrângerile pot bloca executarea operațiunilor de actualizare de baze de date, declanșează cauza executarea automată a acțiunilor menționate în cazul unor condiții specificate, definiția reprezentărilor cauza materializării explicite sau indirectă este un tabel atunci când utilizarea lor. Această parte a bazei de date se numește intensional; nu conține fapte imediate, ci informații care caracterizează semantica domeniului.

După cum se poate observa, în bazele de date relaționale cea mai importantă este partea extensivă, iar partea intensală joacă un rol predominant auxiliar. În sistemele de baze de date bazate pe reguli, aceste două părți sunt cel puțin echivalente.

Prin definiție, baza de date se numește activă dacă DBMS nu efectuează numai acțiuni pe care utilizatorul le indică în mod explicit, ci și acțiuni suplimentare în conformitate cu regulile stabilite în baza de date.







Este ușor de văzut că fundamentul ideii conținute în limba SQL System Time R. De fapt, aceasta este definiția unui declanșator sau expunere contingente, ci o introducere la regulile bazei de date, potrivit căreia SGBD trebuie să efectueze acțiuni suplimentare? Bad este că într-adevăr declanșează nu au fost pe deplin puse în aplicare în oricare dintre sistemele cunoscute, chiar și în Sistemul R. Nu este surprinzător, pentru că punerea în aplicare a unui astfel de dispozitiv în baza de date este foarte complexă, deasupra capului și nu este pe deplin înțeles.

Printre întrebările, ale căror răspunsuri nu au fost încă primite, sunt următoarele. Cum să definiți eficient un set de acțiuni auxiliare cauzate de o acțiune directă de către utilizator? Cum să recunoaștem ciclurile din lanț "acțiune-condiție-acțiune". Și ce să facem atunci când apar astfel de cicluri? În ce tranzacție efectuați acțiuni suplimentare cu caracter condiționat și ce buget al utilizatorului trebuie să fie atribuit costurilor generale aferente?

O mulțime de probleme nu sunt rezolvate nici măcar pentru un caz relativ simplu de implementare a declanșatorilor SQL, iar sarcina este deja stabilită mult mai largă. În esență, se propune existența unui sistem de producție general în structura bazei de date, a căror condiții și acțiuni nu se limitează la conținutul bazei de date sau la acțiunile directe asupra acesteia din partea utilizatorului. De exemplu, condiția poate include ora din zi și acțiunea poate fi externă, de exemplu, informații de ieșire pe ecranul operatorului. Aproape toate lucrările moderne pe baze de date active se referă la problema implementării eficiente a unui astfel de sistem de producție.

În același timp, în opinia noastră, este mult mai important să implementăm declanșatoare în SGBD relaționale în scopuri practice. Rețineți că proiectul standard SQL3 prevede existența unor instrumente lingvistice pentru determinarea efectelor condiționate. Implementarea lor va fi primul pas practic către bazele de date active (au apărut deja implementări comerciale corespunzătoare).







Articole similare

Trimiteți-le prietenilor: