independență exprimate

Independența datelor pot fi puse în aplicare în două niveluri: fizic și logic [1,3], [1,4]. Cu toate acestea, în acest stadiu, ne interesează doar în independența fizică. Prin urmare, independența pe termen fără rezerve a datelor pe care le vor fi înțelese numai ca independența fizică a datelor. (Trebuie remarcat faptul că termenul independentă a datelor nu este destul de perfectă - nu reflectă esența a ceea ce se întâmplă, dar destul de precis este utilizat în mod tradițional acest termen, urmați regula generală ..)

Cel mai simplu mod de a înțelege conceptul de independență a datelor privind exemplul unei situații în care independența datelor lipsesc. Aplicarea, puse în aplicare în sistemele mai vechi (dorelyatsionnye sau a început înainte de apariția sistemelor de baze de date), într-un

într-o anumită măsură în funcție de datele. Aceasta înseamnă că procesul de organizare a datelor într-un secundar

memorie și cum să le acceseze sunt dictate de cerințele aplicației. Mai mult decât atât, informații cu privire la organizarea datelor și cum să le acceseze sunt construite în codul de logică și de aplicare. De exemplu, să presupunem că, în unele aplicații utilizează fișierul ANGAJAT (vezi. Fig. 1.4). Din motive de performanță au fost de acord că dosarul trebuie să fie indexat pe teren, „numele angajatului“ (a se vedea. Anexa D). În sistemele mai vechi, cererea ar fi luat în considerare faptul că există un astfel de indice și că secvența de înregistrări într-un fișier definit de acest indice. Pe baza acestor informații, toate structura internă a cererii ar fi construit. În special, metoda aleasă de punere în aplicare a procedurilor de acces și de manipulare excepție într-o mare măsură să fie dependentă de caracteristicile interfeței furnizate de programele de gestionare a datelor.

Aplicații, cum ar fi cele descrise în acest exemplu sunt numite dependente de date, deoarece este imposibil de a schimba reprezentarea fizică (adică o locație fizică a datelor din memoria secundară) sau metoda de acces (adică, un mod specific de a avea acces la date), fără a modifica foarte aplicații (probabil destul de radical). De exemplu, este imposibil să înlocuiască un fișier indexat în exemplul nostru, fișierul trunchiată fără a face modificări semnificative ale cererii. Mai mult decât atât, schimbările în astfel de cazuri să fie acele părți ale aplicației care interacționează cu software-ul de gestionare a datelor. Dificultățile întâmpinate în acest sens, nu au nici o legătură cu problema, soluția a cărei aplicare a fost scris; ea provocările generate de structura utilizată de către interfața de gestionare a datelor.

Cu toate acestea, sistemul de baze de date nu este de dorit, în funcție de cererea de date, care este pe cel puțin două motive descrise mai jos.

1. aplicații diferite necesită puncte de vedere diferite ale acelorași date.

De exemplu, să presupunem că, înainte de trecerea la baza de date integrată, înainte de acceptare a avut două aplicații, A și B. Fiecare dintre ei lucrează cu propriul fișier care conține „soldul în contul clientului.“ presupunând

de asemenea, că aplicarea A înregistrează această valoare în format zecimal,

și Anexa B - binar. Aceste două fișiere pot fi integrate, și există pentru a elimina redundanță, în cazul în care baza de date este posibil să se efectueze toate conversiile necesare între formatul de date (format de prezentare poate fi zecimal, binar, sau orice alta) și formă este necesară pentru punerea în aplicare. De exemplu, dacă vă decideți să păstrați

valori de câmp în format zecimal, fiecare trimitere la anexa B

necesită directă sau inversă transformă valorile din zecimal în cote binar mat.

Acesta este un exemplu destul de simplu de diferențele care pot exista în sistemul de baze de date între prezentarea datelor în formularul de cerere și depozitarea lor fizică. Multe alte posibile diferențe vor fi discutate mai jos.

2. Administratorul bazei de date trebuie să aibă anumite capacități (în funcție de DBMS conductor aplicat) pentru a schimba reprezentarea fizică sau metoda de accesare a datelor într-un caz de cerințe în schimbare, fără a modifica în mod necesar aplicațiile existente. De exemplu, o bază de date, noi tipuri de date pot fi adăugate, noile standarde, aplicații, prioritățile pot fi modificate pot fi luate la întreprindere (și, în consecință,

Astfel, asigurarea independenței datelor - cel mai important obiectiv al unui sistem de baze de date. Indiferent de datele pot fi definite ca imunitatea aplicațiilor la schimbările în reprezentarea fizică a datelor și metodele de acces la acestea, ceea ce înseamnă că cererea subiect nu depinde de anumite metode de prezentare fizică sau metodele de acces selectate. Capitolul 2 va fi descrisă arhitectura sistemelor de baze de date, constituie baza pentru realizarea acestui obiectiv. Dar, mai presus de toate, să ne gândim mai detaliat câteva exemple de tipuri de schimbări în performanța care ar putea fi necesare și care, prin urmare, ar trebui să fie aplicații ale sistemului imunitar.

Să începem cu definiția de trei termeni noi: (. Figura 1.6) câmpul stocat, înregistrarea stocată și fișierul stocat.

■ câmp stocate - este cea mai mică unitate de stocare a datelor. O bază de date tipică conține o multitudine de copii (apariþie sau exemplu) din fiecare dintre mai multe tipuri descrise câmpuri stocate acolo. De exemplu, o bază de date care conține informații cu privire la detaliile pot include tipul de câmpuri stocate cu instrumentul IME aceasta „parte numărul“ pentru fiecare sunt descrise în detaliile tipului de date (suruburi, balamale capac, etc.) va exista o instanță separată de Keep directe câmp.

Notă. În practică, de multe ori omis tipul de calificare și o copie, presupunând că sensul exact este clar din context. Deși există puține șanse de confuzie, este o practică convenabil, și vom urmări în timpul ei. (Această notă se aplică, de asemenea, înregistrările stocate, care vor fi menționate în paragraful următor.)

■ Înregistrarea stocate - un set de câmpuri interconectate stocate. Din nou, trebuie doar să ne Lich pentru ei și tipul de instanță. În acest caz, o copie a înregistrărilor stocate de standuri ale unui grup de elemente conexe stocate câmpuri. De exemplu, o copie a înregistrărilor stocate în datele detaliu este format din copii ale fiecăruia dintre următoarele câmpuri stocate, „part number“, „numele părții“, „culoarea pieselor“ și „părți în greutate“. Noi spunem că baza de date conține mai multe instanțe păstrează meu de înregistrare de tip „detaliu“ (din nou, un exemplar pentru fiecare detalii concrete ale lui Noe).

■ În cele din urmă, fișierul stocat - un set de toate existente la momentul zemplyarov eq stocate înregistrările de același tip. (Pentru simplificare, presupunând etsya că orice fișier stocat predeterminat poate conține înregistrări stocate

Doar un singur tip. Această simplificare va avea un impact semnificativ asupra discuției ulterioare.)

În sistemele moderne, altele decât logica a bazei de date (din perspectiva dezvoltator de aplicații) de înregistrare coincide de obicei cu o înregistrare stocată corespunzător. Așa cum sa arătat mai sus, în bazele de date nu este necesară, deoarece în orice moment, se poate cere să facă modificări ale structurii de stocare a datelor (adică, stocate în câmpurile, înregistrările, fișierele), în timp ce structura de date din punctul de vedere al aplicării trebuie rămân neschimbate. De exemplu, câmpul SALARIUL din fișierul ANGAJAT pentru a economisi memorie pot fi stocate în format binar și aplicații scrise în COBOL, acest câmp poate fi văzută ca un șir de caractere. În viitor, din orice motive, poate fi necesar să modificați formatul binar pentru acest câmp în zecimal, menținând în același timp pentru a procesa cererea câmpului în format caracter.

independență exprimate

Fig. 1.6. câmpuri stocate, înregistrări și fișiere

După cum sa menționat anterior, astfel de diferențe (care necesită conversia tipului de date dintr-un câmp la fiecare referire la aceasta), sunt relativ minore.

Cu toate acestea, în principiu, diferența dintre datele accesate de o aplicație, și cele care sunt stocate în baza de date, de fapt, poate fi destul de semnificative. Dezvoltarea acestei idei, vom enumera aspectele structurilor de stocare a datelor în bazele de date, care sunt supuse schimbării. Cititorul este invitat să reflecteze asupra propriei lor ce ar trebui făcut pentru a asigura aplicații de baze de date de imunitate pentru astfel de schimbări (și întotdeauna este posibil să se obțină imunitate similare).

■ Prezentarea datelor numerice

Un câmp numeric poate fi stocată sub formă aritmetică internă (de exemplu în format zecimal packed) sau un șir de caractere. In fiecare caz, DBA trebuie să determine dacă să aplice numărul de punct fix sau flotant, alege un radix adecvat (de exemplu, sistem binar sau zecimal), precizia (numărul de cifre în reprezentarea internă a numărului), iar în cazul în care acest număr fix-punct, atunci determină valoarea părții fracționară (numărul de cifre după virgulă împărțind numărul întreg și partea fracționară a numărului). Fiecare dintre acești parametri pot fi modificate pentru a îmbunătăți performanța, introducerea unui nou standard sau dintr-un alt motiv.

■ Prezentarea datelor de caractere

Câmp ca un șir de caractere pot fi stocate folosind oricare dintre seturile existente de codare a caracterelor (de exemplu ASCII, EBCDIC, Unicode).

■ Unități de date numerice

Unitățile câmpuri numerice pot fi modificate, de exemplu, inci poate fi convertit în centimetri în timpul introducerii sistemului metric de unități.

În unele situații, poate fi necesar pentru a reprezenta datele stocate ca valori codificate. În special, „detaliul de culoare“, care este prezentat în cerere ca un șir de caractere ( „roșu“, „albastru“, „verde“) pot fi stocate sub formă de cifre zecimale în conformitate cu un tabel de căutare, cum ar fi 1 = „roșu“ 2 = "albastru", etc.

Utilizare aplicație câmp logic corespunde în general unele foarte specifice domeniului stocat (deși, așa cum este indicat mai sus, pot exista diferențe în tipul de codare a datelor utilizate etc.). În acest caz, (materializării) procesul de materializare, adică, Procedeu de construire a unei instanțe a produsului logic instanță câmpul corespunzător al câmpurilor stocate și transmiterea unei aplicații numită directă. Uneori, totuși, câmpul logic poate fi stocat un câmpuri echivalente corespunzătoare, ca și valoarea sa este materializat prin intermediul unor calcule efectuate pe un set de copii multiple ale câmpurilor stocate. De exemplu, valoarea câmpului logică a „valoarea totală“ poate fi determinată prin însumarea numărului de valori stocate ale „numărul“ câmp. În acest caz, procesul se numește materializare indirectă.

Structura înregistrărilor stocate Două înregistrări stocate existente pot fi combinate într-o singură. De exemplu, o înregistrare stocată

pot fi reprezentate sub forma:

Astfel de modificări pot fi efectuate atunci când noi aplicații sunt introduse în sistemul de baze de date. Se presupune că cererea de înregistrare logică constă dintr-un subset, adică câmpurile de intrare stocate corespunzătoare Unele câmpuri ale înregistrărilor stocate sunt „invizibile“ pentru aplicația dată.

In schimb, o înregistrare stocată poate fi împărțită în două. Noi folosim înregistrările din exemplul anterior. Apoi, înregistrarea stocată

Acesta poate fi împărțit în două:

Această separare permite să se miște piesele folosite rar ale înregistrării originale la o altă locație, de exemplu, pe un dispozitiv mai lent. Astfel presupus implicit că înregistrarea logică pentru o cerere poate cuprinde o multitudine de câmpuri individuale din înregistrările stocate, adică înregistrare logică include oricare dintre aceste înregistrări stocate ca un subset adecvat.

■ Structura fișierelor stocate

Evaluarea fișier stocat poate fi fizic stocate în memorie în moduri diferite (a se vedea. Anexa D). De exemplu, acesta poate fi plasat pe același volum al dispozitivului de stocare extern (de exemplu, pe același disc) sau distribuite pe mai multe dispozitive de volume (eventual de tipuri diferite). Acesta poate fi fie comandate fizic, în conformitate cu valorile unui câmp stocate sau să fie comandate în orice alt mod, de exemplu, prin intermediul unuia sau mai multor indici sau indicii încorporate siruri de caractere sau de a avea acces la înregistrările sale pot fi organizate prin metoda hashing. Înregistrările stocate pot fi combinate fizic în blocuri (cu plasarea înregistrărilor multiple stocate într-una înregistrări fizice). Dar nici unul dintre acești factori nu ar trebui să afecteze în nici un fel de aplicare (cu excepția, desigur, viteza de execuție).

Prin urmare, să restrângă lista caracteristicilor structurii de stocare a datelor, care pot fi supuse schimbării. Aici, printre altele, se presupune că baza de date poate creste si se dezvolta, fără a afecta aplicația. De fapt, posibilitatea de dezvoltare a bazei de date, fără a perturba structura logică a aplicațiilor existente este una dintre cele mai importante stimulente pentru a asigura independența datelor. De exemplu, s-ar putea extinde existente

tipul de înregistrări stocate, adăugarea de noi câmpuri stocate, care sunt, de obicei, informații suplimentare despre unele dintre posibilele tipuri de entități (de exemplu, un „detaliu“, puteți adăuga „prețul unitar“ de înregistrări stocate). Aceste noi câmpuri vor fi invizibile pentru aplicațiile existente. În mod similar, puteți adăuga noi tipuri de înregistrări stocate (și, în consecință, noi fișiere stocate), fără a schimba aplicațiile existente. Aceste înregistrări sunt de obicei noi tipuri de entități (de exemplu, baza de date „detalii“, „furnizor“, puteți adăuga un tip de înregistrare). Aceste modificări vor fi, de asemenea, invizibil pentru aplicațiile existente.

Acum, este ușor de înțeles că independența DATA- un alt unul dintre motivele pentru care modelul trebuie să fie separate de punerea sa în aplicare a acestora, astfel cum a fost deja prezentat la sfârșitul secțiunii 1.3. De asemenea, este important de remarcat faptul că, indiferent de datele nu pot fi realizate fără a ajunge la un grad adecvat de separare a modelului de date de la punerea sa în aplicare. Lipsa de segregare a modelului și punerea sa în aplicare este o lipsă pe scară largă a sistemelor moderne folosind limbajul SQL (care este deosebit de dureros).

Notă. Ultima notă (în raport cu SQL folosind limbi moderne sisteme) nu înseamnă că nu a asigurat independența datelor în astfel de sisteme. Se indică doar faptul că aceste sisteme oferă independență din baza de date într-o măsură mult mai mică decât este teoretic posibil, într-un sistemah4 relațională. Cu alte cuvinte, indiferent de date - un termen relativ. Diversele sisteme oferă într-o măsură diferită sau deloc furnizate. Sistemele bazate pe limbajul SQL, mai avansate în acest domeniu decât vechiul sistem, dar, după cum vom vedea în capitolele următoare, acestea sunt încă departe de a fi perfectă.