Bazele proiectării corecte a bazelor de date în dezvoltarea web. Ghid pentru structura și proiectarea bazei de date

30.03.17 3.4K

Urmând principiile descrise în acest articol, puteți crea o bază de date care funcționează conform așteptărilor și care poate fi adaptată la noile cerințe în viitor. Ne vom uita la principiile de bază proiectarea bazei de date, precum și modalități de optimizare.

Procesul de proiectare a bazei de date

Baza de date bine structurata:

  • Ajută la economisirea spațiului pe disc prin eliminarea datelor inutile;
  • Menține acuratețea și integritatea datelor;
  • Oferă acces convenabil la date.

Dezvoltarea bazei de date include următoarele etape:

  1. Analiza cerințelor sau determinarea scopului bazei de date;
  2. Organizarea datelor în tabele;
  3. Specificarea cheilor primare și analiza relațiilor;
  4. Normalizarea tabelelor.

Să luăm în considerare fiecare etapa de proiectare a bazei de date mai multe detalii. Vă rugăm să rețineți că acest tutorial acoperă modelul bazei de date relaționale al lui Edgar Codd, scris în SQL ( mai degrabă decât modele ierarhice, de rețea sau de obiecte).

Analiza cerințelor: determinarea scopului bazei de date

De exemplu, dacă creați o bază de date pentru o bibliotecă publică, trebuie să luați în considerare modul în care atât cititorii, cât și bibliotecarii ar trebui să acceseze baza de date.

Iată câteva modalități de a aduna informații înainte de a crea o bază de date:

  • Intervievarea persoanelor care îl vor folosi;
  • Analiza formularelor de afaceri precum facturi, grafice, sondaje;
  • Luarea în considerare a tuturor sistemelor de date existente ( inclusiv fișiere fizice și digitale).

Începeți prin a colecta datele existente care vor fi incluse în baza de date. Apoi, determinați tipurile de date pe care doriți să le salvați. Precum și obiectele care descriu aceste date. De exemplu:

Clienții

  • Abordare;
  • Oras (*): Stat (*): Cod postal;
  • Adresa de e-mail.

Bunuri

  • Nume;
  • Preț;
  • Cantitate in stoc;
  • Cantitate de comandat.

Comenzi

  • Număr de ordine;
  • Reprezentant de vânzări;
  • Data de;
  • Produs;
  • Cantitate;
  • Preț;
  • Preț.

La proiectarea unei baze de date relaționale, aceste informații vor deveni ulterior parte a dicționarului de date, care descrie tabelele și câmpurile bazei de date. Împărțiți informațiile în cele mai mici părți posibile. De exemplu, luați în considerare împărțirea câmpurilor pentru adresa străzii și de stat, astfel încât să puteți filtra oamenii după statul în care locuiesc.

Odată ce ați decis ce date vor fi incluse în baza de date, de unde vor veni datele și cum vor fi utilizate, puteți începe să planificați baza de date reală.

Structura bazei de date: blocuri de construcție

Următorul pas este reprezentarea vizuală a bazei de date. Pentru a face acest lucru, trebuie să știți exact cum sunt structurate bazele de date relaționale. În cadrul unei baze de date, datele aferente sunt grupate în tabele, fiecare dintre acestea fiind format din rânduri și coloane.

Pentru a converti listele de date în tabele, începeți prin a crea un tabel pentru fiecare tip de obiect, cum ar fi produse, vânzări, clienți și comenzi. Iată un exemplu:

Fiecare rând dintr-un tabel se numește înregistrare. Înregistrările includ informații despre ceva sau cineva, cum ar fi un anumit client. Coloane (numite și câmpuri sau atribute) conțin același tip de informații care sunt afișate pentru fiecare înregistrare, de exemplu, adresele tuturor clienților enumerați în tabel.


Pentru a asigura coerența între înregistrări atunci când proiectați modelul bazei de date, atribuiți tipul de date corespunzător fiecărei coloane. Tipurile de date comune includ:
  • CHAR - lungimea specifică a textului;
  • VARCHAR - text de diverse lungimi;
  • TEXT - cantitate mare de text;
  • INT este un număr întreg pozitiv sau negativ;
  • FLOAT , DOUBLE — numere în virgulă mobilă;
  • BLOB - date binare.

Unele SGBD-uri oferă, de asemenea, un tip de date Autonumber, care generează automat un număr unic în fiecare rând.

Într-o reprezentare vizuală a bazei de date, fiecare tabel va fi reprezentat printr-un bloc în diagramă. Antetul fiecărui bloc ar trebui să precizeze ce descriu datele din acel tabel, iar atributele ar trebui să fie enumerate mai jos:


La proiectarea unei baze de date cu informații trebuie să decideți care atribute, dacă există, vor servi ca cheie primară pentru fiecare tabel. Cheia principala ( PK) este un identificator unic pentru acest obiect. Cu acesta, puteți selecta datele unui anumit client, chiar dacă știți doar acea valoare.

Atributele alese ca chei primare trebuie să fie unice, imuabile și nu pot fi setate la NULL ( nu pot fi goale). Din acest motiv, numerele de comandă și numele de utilizator sunt chei primare potrivite, dar numerele de telefon sau adresele nu sunt. De asemenea, puteți utiliza mai multe câmpuri în același timp ca cheie primară ( aceasta se numește cheie compusă).

Când vine timpul să creați baza de date reală, implementați atât structura logică, cât și cea fizică prin limbajul de definire a datelor suportat de SGBD.

De asemenea, trebuie să evaluați dimensiunea bazei de date pentru a vă asigura că puteți obține nivelul necesar de performanță și că aveți suficient spațiu pentru a stoca datele.

Crearea de relații între entități

Acum că datele au fost convertite în tabele, trebuie să analizăm relațiile dintre ele. Complexitatea unei baze de date este determinată de numărul de elemente care interacționează între două tabele înrudite. Determinarea complexității vă ajută să vă împărțiți datele în tabele în cel mai eficient mod.

Fiecare obiect poate fi interconectat cu altul folosind unul dintre cele trei tipuri de relații:

Comunicare unu-la-unu

Când există o singură instanță a obiectului A pentru fiecare instanță a obiectului B, se spune că au o relație unu-la-unu ( adesea notat 1:1). Puteți indica acest tip de relație într-o diagramă ER cu o linie cu o liniuță la fiecare capăt:


Dacă nu aveți niciun motiv să separați aceste date atunci când proiectați și dezvoltați baze de date, o relație 1:1 indică de obicei că este mai bine să combinați aceste tabele într-unul singur.

Dar, în anumite circumstanțe, este mai logic să creați tabele cu relații 1:1. Dacă aveți un câmp de date opțional, cum ar fi „descriere”, care este lăsat necompletat pentru multe înregistrări, puteți muta toate descrierile într-un tabel separat, eliminând câmpurile goale și îmbunătățind performanța bazei de date.

Pentru a vă asigura că datele sunt corelate corect, va trebui să includeți cel puțin o coloană identică în fiecare tabel. Cel mai probabil aceasta va fi cheia primară.

Comunicare unu-la-mulți

Aceste relații apar atunci când o înregistrare dintr-un tabel este legată de mai multe înregistrări dintr-un altul. De exemplu, un client poate plasa multe comenzi sau un cititor poate avea mai multe cărți împrumutate de la bibliotecă. Relațiile unu-la-mai multe (1:M) sunt indicate de așa-numitul semn al piciorului de corb, ca în acest exemplu:


Pentru a implementa o relație 1:M, adăugați cheia primară din tabelul „unul” ca atribut în celălalt tabel. Dacă cheia primară este specificată în acest fel într-un alt tabel, se numește cheie străină. Tabelul de pe partea „1” a relației este tabelul părinte la tabelul copil de pe cealaltă parte.

Comunicare multi-la-multi

Când mai multe obiecte dintr-un tabel pot fi legate de mai multe obiecte ale altuia. Ei spun că au o legătură” multi-la-multi» ( M:N). De exemplu, în cazul studenților și al cursurilor, deoarece un student poate urma mai multe cursuri, iar fiecare curs poate fi urmat de mulți studenți.

Într-o diagramă ER, aceste relații sunt reprezentate folosind următoarele linii:


La proiectarea unei structuri de bază de date, este imposibil să se implementeze acest tip de conexiune. În schimb, trebuie să le despărțiți în două relații unu-la-mai multe.

Pentru a face acest lucru, trebuie să creați o nouă entitate între aceste două tabele. Dacă există o relație M:N între vânzări și produse, puteți numi acest nou obiect " produse_vândute„, deoarece va conține date pentru fiecare vânzare. Atât tabelul de vânzări, cât și tabelul de produse vor avea o relație 1:M cu produse_vândute . Acest tip de obiect intermediar se numește tabel de legături, obiect asociativ sau tabel de legătură în diferite modele.

Fiecare intrare din tabelul de relații va corespunde la două entități din tabelele învecinate. De exemplu, un tabel de conexiuni între studenți și cursuri ar putea arăta astfel:

Obligatoriu sau nu?

Un alt mod de a analiza conexiunile este de a lua în considerare care parte a relației trebuie să existe pentru ca cealaltă să existe. Partea opțională poate fi marcată cu un cerc pe linie. De exemplu, o țară trebuie să existe pentru a avea un reprezentant la Națiunile Unite și nu invers:


Două obiecte pot fi interdependente ( unul nu poate exista fără celălalt).

Conexiuni recursive

Uneori, atunci când proiectați o bază de date, un tabel indică spre sine. De exemplu, un tabel de angajați poate avea un atribut „manager” care se referă la o altă persoană din același tabel. Aceasta se numește linkuri recursive.

Conexiuni suplimentare

Conexiunile străine sunt cele care sunt exprimate de mai multe ori. De obicei, puteți șterge una dintre aceste relații fără a pierde informații importante. De exemplu, dacă obiectul „elevi” are o relație directă cu un alt obiect numit „profesori”, dar are și o relație indirectă cu profesorii prin „subiecte”, trebuie să eliminați relația dintre „elevi” și „profesori”. Pentru că singurul mod în care elevii sunt alocați profesori este prin discipline.

Normalizarea bazei de date

După proiectarea preliminară a bazei de date, puteți aplica reguli de normalizare pentru a vă asigura că tabelele sunt structurate corect.

În același timp, nu toate bazele de date trebuie să fie normalizate. În general, bazele de date cu procesare a tranzacțiilor în timp real ( OLTP), trebuie normalizat.

Baze de date cu procesare analitică interactivă ( OLAP), permițând o analiză mai ușoară și mai rapidă a datelor, poate fi mai eficientă cu un anumit grad de denormalizare. Criteriul principal aici este viteza de calcul. Fiecare formă sau nivel de normalizare include reguli asociate cu formele inferioare.

Prima formă de normalizare

Prima formă de normalizare ( prescurtat 1NF) precizează că în timpul proiectarea bazei de date logice Fiecare celulă dintr-un tabel poate avea o singură valoare, nu o listă de valori. Prin urmare, un tabel ca cel de mai jos nu corespunde cu 1NF:


Poate doriți să ocoliți această limitare prin împărțirea datelor în coloane suplimentare. Dar acest lucru este și împotriva regulilor: un tabel cu grupuri de atribute duplicate sau strâns legate nu respectă prima formă de normalizare. De exemplu, tabelul de mai jos nu corespunde cu 1NF:
În schimb, în ​​timpul proiectării bazei de date fizice, împărțiți datele în mai multe tabele sau înregistrări până când fiecare celulă conține o singură valoare și nu există coloane suplimentare. Se consideră că astfel de date sunt defalcate la cea mai mică dimensiune utilizabilă. În tabelul de mai sus, puteți crea un tabel suplimentar " Detalii de vânzări”, care va potrivi anumite produse cu vânzările. „Vânzări” va avea o relație 1:M cu „ Detalii de vânzări».

A doua formă de normalizare

A doua formă de normalizare ( 2NF) prevede că fiecare dintre atribute trebuie să depindă în întregime de cheia primară. Fiecare atribut trebuie să depindă direct de întreaga cheie primară, și nu indirect printr-un alt atribut.

De exemplu, atributul „vârsta” depinde de „ziua de naștere”, care, la rândul său, depinde de „codul de student”, are o dependență funcțională parțială. Un tabel care conține aceste atribute nu se va conforma celei de-a doua forme de normalizare.

În plus, un tabel cu o cheie primară constând din mai multe câmpuri încalcă a doua formă de normalizare dacă unul sau mai multe câmpuri nu depind de fiecare parte a cheii.

Astfel, un tabel cu aceste câmpuri nu se va potrivi cu a doua formă de normalizare, deoarece atributul „nume produs” depinde de ID-ul produsului, dar nu de numărul comenzii:

  • Numărul comenzii (cheia primară);
  • ID-ul produsului (cheie primară);
  • Numele produsului.

A treia formă de normalizare

A treia formă de normalizare ( 3NF) : Fiecare coloană fără cheie trebuie să fie independentă de orice altă coloană. Eu gras proiectarea bazelor de date relaționale modificarea unei valori într-o coloană non-cheie determină o modificare a unei alte valori, acest tabel nu respectă a treia formă de normalizare.

Conform 3NF, nu puteți stoca date derivate într-un tabel, cum ar fi coloana „Taxă”, care în exemplul de mai jos depinde direct de costul total al comenzii:


La un moment dat, au fost propuse forme suplimentare de normalizare. Inclusiv forma Boyce-Codd de normalizare, formele patru până la șase și normalizarea cheii de domeniu, dar primele trei sunt cele mai comune.

Date multidimensionale

Unii utilizatori ar putea avea nevoie să acceseze mai multe vizualizări ale aceluiași tip de date, în special în bazele de date OLAP. De exemplu, ar putea dori să cunoască vânzările în funcție de client, țară și lună. În această situație, este mai bine să creați un tabel central care să poată fi referit de către tabelele client, țări și luni. De exemplu:

Reguli de integritate a datelor

De asemenea, folosind instrumente de proiectare a bazelor de date este necesară configurarea bazei de date ținând cont de capacitatea de a verifica datele pentru respectarea anumitor reguli. Multe SGBD-uri, cum ar fi Microsoft Access, aplică automat unele dintre aceste reguli.

Regula de integritate afirmă că o cheie primară nu poate fi niciodată NULL. Dacă o cheie constă din mai multe coloane, niciuna dintre ele nu poate fi NULL. În caz contrar, poate identifica în mod ambiguu intrarea.

Regula de integritate referenţială cere ca fiecare cheie externă specificată într-un tabel să fie mapată la o cheie primară din tabelul la care face referire. Dacă o cheie primară este schimbată sau ștearsă, acele modificări trebuie implementate în toate obiectele la care se face referire de acea cheie din baza de date.

Regulile de integritate a logicii de afaceri asigură că datele sunt conforme cu anumiți parametri logici. De exemplu, ora întâlnirii trebuie să fie în intervalul orar de lucru standard.

Adăugarea de indici și vizualizări

Un index este o copie sortată a uneia sau mai multor coloane cu valori în ordine crescătoare sau descrescătoare. Adăugarea unui index vă permite să găsiți mai rapid înregistrările. În loc să resorteze pentru fiecare interogare, sistemul poate accesa înregistrările în ordinea specificată de index.

Deși indexurile accelerează recuperarea datelor, pot încetini adăugarea, actualizarea și ștergerea datelor, deoarece indexul trebuie reconstruit ori de câte ori se modifică o înregistrare.

O vizualizare este o solicitare salvată de date. Vizualizările pot include date din mai multe tabele sau pot afișa o parte a unui tabel.

Proprietăți avansate

După proiectarea modelului bazei de date Vă puteți rafina baza de date utilizând proprietăți avansate, cum ar fi textul de ajutor, măștile de introducere și regulile de formatare care se aplică unei anumite scheme, vizualizari sau coloane. Avantajul acestei metode este că, deoarece aceste reguli sunt stocate în baza de date însăși, prezentarea datelor va fi consecventă în mai multe programe care accesează datele.

SQL și UML

Limbajul de modelare unificat ( UML) este un alt mod vizual de a exprima sisteme complexe create într-un limbaj orientat pe obiecte. Unele dintre conceptele menționate în acest tutorial sunt cunoscute sub diferite nume în UML. De exemplu, un obiect în UML este cunoscut ca o clasă.

UML nu este folosit atât de des în zilele noastre. În prezent, este folosit în plan academic și în comunicarea între dezvoltatorii de software și clienții lor.

Rău Bun

O bază de date este un depozit de date în care datele sunt stocate într-un mod organizat.

Acest lucru facilitează funcții precum preluarea, actualizarea și adăugarea de date noi. Bazele de date au numeroase utilizări și beneficii atunci când vine vorba de volume mari de date.

Știi că?
„Integrarea bazei de date” a condus la o revoluție în sectoarele de afaceri, IT și educațional, oferind o gamă largă de capabilități pentru gestionarea și analiza datelor.

Structura bazei de date

Sistemul de baze de date constă din următoarele elemente:

Mese: Datele sunt stocate în rânduri (înregistrări) și coloane (câmpuri).

Forme: Formularele sunt concepute cu scopul de a introduce date noi. Pentru a face mai ușor și fără erori adăugarea de informații la baza de date printr-un formular, mai degrabă decât introducerea datelor direct în tabel.

Cereri: Interogările sunt scrise pentru a prelua rânduri și/sau coloane pe baza unei stări predefinite.

Cele mai cunoscute baze de date sunt: ​​MySQL, SAP, Oracle, IBM DB2 etc. Un SGBD sau „sistem de management al bazei de date” este folosit ca interfață pentru comunicarea dintre utilizator și baza de date.

Ce sunt bazele de date și unde sunt folosite?

Stocarea/Inserarea datelor: Faza inițială (înainte de introducerea datelor) implică crearea unor structuri de date precum tabele (cu numărul necesar de rânduri și coloane). Datele sunt apoi introduse în această structură.

Recuperare date: Bazele de date sunt folosite atunci când datele care vor fi stocate în cantități mari necesită căutare constantă. Acest lucru facilitează procesul de recuperare a unor informații specifice.

Date de modificare: Datele statice nu trebuie actualizate. Cu toate acestea, datele dinamice necesită modificare constantă. Luați în considerare vârsta angajaților din organizație. Acesta trebuie actualizat în fiecare an (actualizare periodică).

Exemplu

Luați în considerare un club de divertisment care are un număr mare de persoane înregistrate. Secretarul trebuie să monitorizeze continuu datele de contact ale tuturor utilizatorilor înregistrați. Dacă aceste înregistrări sunt stocate într-o serie de descrieri tehnice sau liste, schimbarea detaliilor este o sarcină care necesită timp. Deoarece, extragerea și modificarea datelor trebuie făcute pe toate foile care conțin aceste înregistrări pentru a menține consistența. Prin urmare, este recomandabil să folosiți o bază de date bine definită.

Beneficiile bazelor de date

Capacitate de stocare: Bazele de date stochează o cantitate mai mare de date în comparație cu alte depozite de date. Datele de dimensiuni mici se pot încadra în foi de calcul sau în documente. Cu toate acestea, când vine vorba de date grele, bazele de date sunt cea mai bună alegere.

Asocierea datelor:Înregistrările de date din tabele separate pot fi legate. Acest lucru este necesar atunci când o anumită bucată de date există în mai mult de un tabel. De exemplu, ID-urile angajaților pot exista în date precum „Salarizare”, precum și „angajați”. Comunicarea este esențială pentru a avea schimbări consistente în mai multe locuri și în aceleași date.

Utilizatori multipli: Permisiunile pot fi acordate pentru acces multiplu la baza de date. Acest lucru permite mai multor utilizatori (mai mult de unul) să acceseze și să manipuleze date în același timp.

Ștergerea datelor: Solicitările de date nedorite să fie eliminate din baza de date. În astfel de cazuri, înregistrările trebuie șterse din toate tabelele aferente pentru a evita orice încălcare a datelor. Este mult mai ușor să ștergeți înregistrările dintr-o bază de date folosind interogări sau formulare, mai degrabă decât din alte surse de date, cum ar fi tabelele.

Securitatea datelor: Fișierele de date sunt păstrate în siguranță în majoritatea cazurilor. Această caracteristică asigură că atacatorii nu obțin acces ilegal la date și că calitatea acestora este menținută.

Import: Acesta este un alt punct important în utilizarea bazelor de date. Vă permite să importați obiecte externe (date din alte baze de date). Importul se face în principal pentru un tabel sau o interogare. Când este introdusă, baza de date creează o copie a obiectului importat.

Export:În acest caz, tabelele sau interogările sunt importate de alte baze de date.

Legături de date: Acest lucru se face pentru a evita crearea unei copii a obiectului în baza de date. Legătura este definită către obiectul baza de date sursă necesar.

Sortarea / filtrarea datelor: Filtrele pot fi aplicate datelor care au aceleași valori de date. Un exemplu de date identice ar putea fi numele angajaților unei organizații cu nume sau prenume similare. În mod similar, datele pot fi sortate fie în ordine crescătoare, fie în ordine descrescătoare. Acest lucru ajută la vizualizarea sau tipărirea rezultatelor în ordinea necesară.

Indexarea bazei de date: Majoritatea bazelor de date conțin un index pentru datele stocate, care în cele din urmă crește timpul de acces. Faptul că recuperarea liniară a datelor durează mult timp face ca această caracteristică să fie cea mai populară.

Modificări continue ale datelor: Tabelele cu date partajate pot fi asociate cu chei (primare, secundare etc.). Cheile sunt foarte utile deoarece modificările aduse organizației generale dintr-un tabel sunt reflectate și în tabelele aferente.

Reduce costurile generale: Transferul de date durează mult. Tranzacțiile prin interogări sunt foarte rapide, producând astfel rezultate mai rapide.

Bazele de date simplifică întregul punct de stocare și accesare a informațiilor. Cu toate acestea, este necesară o gândire anticipată din partea creatorului bazei de date pentru a avea cea mai eficientă bază de date posibilă.

Scopurile utilizării bazelor de date

Utilizarea bazei de date oferă în principal:

1. independența datelor și a programelor;

2. implementarea relaţiilor dintre date;

3. compatibilitatea componentelor bazei de date;

4. ușurința modificării structurilor logice și fizice ale bazei de date;

5. integritatea, restaurarea și protecția bazei de date etc.

Majoritatea aplicațiilor existente depind de date. Aceasta înseamnă că modul în care datele sunt organizate și accesate este dictat de cerințele aplicației specifice (adică, aplicațiile). De exemplu, să presupunem că aplicația dvs. utilizează un set de date secvenţiale indexate. Diferitele proceduri de accesare și procesare a acestui set de date vor depinde de caracteristicile programelor de acces index-secvențial.

Vom spune că o astfel de aplicație este dependentă de date dacă nu este posibilă modificarea structurii de stocare a setului de date (organizație) sau a strategiei de acces (cum este accesată) fără a schimba aplicația. De exemplu, nu este posibil să înlocuiți organizarea index-secvențială a unui set de date cu una directă fără a schimba aplicația.

Independența datelor și a programelor se datorează a două motive principale.

1. Aplicații diferite pot avea nevoie de aceleași date în forme diferite. De exemplu, valorile unei variabile din program A necesare în zecimală și în program ÎN- în formă binară. Aceste două forme de reprezentare a datelor pot fi integrate, adică. sunt combinate într-un singur fișier, iar redundanțele existente sunt eliminate dacă software-ul sistemului de date realizează transformările de date necesare.

2. Pentru a funcționa eficient într-un SGBD, trebuie să fie posibilă modificarea structurii de stocare a datelor și a strategiei de acces fără modificarea aplicațiilor.

Relații între date. Datele despre obiectele din baza de date sunt interconectate relatii (conexiuni). Relația dintre obiecte AȘi ÎN notată după cum urmează:

Unde F(x)- tipul conexiunii obiectului Si cu obiect ÎN; G(x) - tip de conexiune obiect B cu obiect A. Funcții F(x) și G(x) poate lua valori U și N- conexiuni simple, respectiv multiple. De obicei, sunt luate în considerare patru tipuri de relații.

1. Atitudine

(unu la unu) înseamnă că fiecare instanță a obiectului A ÎNși, invers, orice instanță a unui obiect ÎN doar o singură instanță a unui obiect se poate potrivi A. De exemplu:

ÎNTREPRINDERE -- DIRECTOR

2. Atitudine

A -- B (1: N)

(unu la mulți) înseamnă că pot exista instanțe ale unui obiect A, care corespund mai multor instanțe ale unui obiect ÎN, dar fiecare instanţă a obiectului ÎN doar o singură instanță a unui obiect se poate potrivi A. De exemplu:

ORGANIZARE -- DIVIZIUNEA (1:N)

3. Atitudine

A -- B (1: N)

(mulți la unu) înseamnă că fiecare instanță a unui obiect A doar o singură instanță a unui obiect se poate potrivi ÎNși printre instanțe de obiect ÎN pot exista acelea care corespund mai multor instanțe ale obiectului A. Evident, dacă 1: N- tipul de relaţie între A și B, Acea N: 1 - tip de relaţie între ÎNȘi A. De exemplu:

LUCRĂTOR -- ÎNTREPRINDERE

4. Atitudine

A--B( M:N)

(mulți la mulți, sau grup) înseamnă că poate exista o instanță a unui obiect A, care corespunde mai multor instanţe ale unui obiect ÎN,și, invers, o instanță a obiectului ÎN poate potrivi mai multe instanțe ale unui obiect A. Evident, dacă M: N AȘi ÎN, Acea N:M- tipul de relație între obiecte B și A. De exemplu:

FURNIZOR -- PRODUS

Uneori se folosește o relație condiționată CU, ceea ce înseamnă că fiecare instanţă a unui obiect A poate avea una sau nicio instanță de obiect ÎN.

Compatibilitatea componentelor bazei de date. Proiectarea bazei de date trebuie realizată ținând cont de o anumită independență față de echipamentul utilizat și de posibila apariție a unor modificări în conținutul și structura bazei de date.

Software-ul DBMS este de obicei un add-on, o extensie a capabilităților de gestionare a datelor ale sistemului de operare.

Să enumeram principalele componente ale bazei de date care trebuie să fie compatibile, începând de la nivelul de prezentare a datelor: date, hardware, OS, software pentru metode de acces la date, SGBD, aplicații. O modificare a oricărei componente nu trebuie să afecteze componentele ulterioare. Astfel, înlocuirea versiunii OS nu ar trebui să implice înlocuirea SGBD sau modificări ale aplicației.

Ușurința de a schimba structurile logice și fizice ale bazei de date. Baza de date trebuie să poată modifica structurile logice și fizice cu costuri și impact minim asupra programelor asociate.

Structura logică a unei baze de date reflectă starea unor obiecte sau fenomene din lumea reală. Este destul de stabil, dar din cauza schimbărilor din lumea reală se poate schimba. În acest sens, este necesară modificarea circuitelor logice corespunzătoare, a elementelor existente și a caracteristicilor acestora, a căror esență este apariția de noi elemente și conexiuni.

Modificarea structurii fizice a bazei de date este necesară pentru a crește eficiența procesului de prelucrare a informațiilor, iar aceasta este asociată cu reorganizarea bazei de date, înlocuirea dispozitivelor de stocare a datelor etc. Astfel, adăugarea de noi înregistrări în baza de date poate duce la creșterea depășirii. zone, ceea ce va presupune o creștere a datelor de timp de acces. Când acest timp depășește intervalul de timp stabilit de administrator, are loc o reorganizare fizică a bazei de date. Aceeași reorganizare este necesară pentru a șterge înregistrările care se află în baza de date, dar care nu participă la procesare.

Este foarte dificil să se realizeze o structură fizică optimă a bazei de date, deoarece, în primul rând, este dificil de prevăzut multe circumstanțe ale viitorului proces real de prelucrare a informațiilor și, în al doilea rând, dinamica funcționării obiectului poate necesita numeroase modificări. De aceea este mai potrivit să se ofere flexibilitatea de a schimba structura și conținutul bazei de date, ceea ce permite SGBD-urile. Această problemă este deosebit de importantă atunci când se adaptează structurile standard de baze de date logice și fizice la diferite obiecte. Dificultatea implementării pe scară largă a soluțiilor de proiectare standard în dezvoltarea industrială a sistemelor informaționale se datorează în principal capacităților slabe ale sistemelor software, care permit doar modificări minore în structurile logice și fizice ale informațiilor despre un obiect. Deoarece SGBD-urile fac posibilă modificarea structurii logice și fizice a bazei de date a unui obiect la costuri reduse, devine posibilă utilizarea soluțiilor standard de proiectare în sistemele informaționale dezvoltate.

O bază de date (DB) este o colecție de date structurate stocate în memoria unui sistem informatic și care afișează starea obiectelor și relațiile lor în domeniul subiectului luat în considerare.

Structura logică a datelor stocate în baza de date se numește model de reprezentare a datelor. Principalele modele de reprezentare a datelor (modele de date) includ ierarhice, de rețea și relaționale.

Un sistem de management al bazelor de date (DBMS) este un set de limbaje și instrumente software concepute pentru crearea, întreținerea și partajarea unei baze de date cu mulți utilizatori. De obicei, SGBD-urile se disting prin modelul de date utilizat. Astfel, SGBD-urile bazate pe utilizarea unui model de date relaționale sunt numite SGBD-uri relaționale.

Pentru a lucra cu o bază de date, instrumentele DBMS sunt adesea suficiente. Cu toate acestea, dacă este necesar să se asigure confortul lucrului cu baza de date pentru utilizatori necalificați sau interfața DBMS nu se potrivește utilizatorilor, atunci aplicațiile pot fi dezvoltate. Crearea lor necesită programare. O aplicație este un program sau un set de programe care asigură automatizarea soluționării oricărei probleme a aplicației. Aplicațiile pot fi create în sau în afara mediului DBMS - folosind un sistem de programare care utilizează instrumente de acces la baze de date, de exemplu, Delphi sau C++ Buyer. Aplicațiile dezvoltate în mediul DBMS sunt adesea numite aplicații DBMS, iar aplicațiile dezvoltate în afara DBMS sunt numite aplicații externe.

Un dicționar de date este un subsistem de bază de date conceput pentru stocarea centralizată a informațiilor despre structurile de date, relațiile dintre fișierele bazei de date între ele, tipurile de date și formatele pentru prezentarea acestora, proprietatea asupra datelor de către utilizatori, codurile de securitate și controlul accesului etc.

Sistemele informaționale bazate pe utilizarea bazelor de date funcționează de obicei într-o arhitectură client-server. În acest caz, baza de date este localizată pe un computer server și este oferit accesul partajat.

Serverul unei anumite resurse dintr-o rețea de calculatoare este computerul (programul) care gestionează această resursă, clientul este computerul (programul) care utilizează această resursă. O resursă de rețea de calculatoare poate include, de exemplu, baze de date, fișiere, servicii de imprimare și servicii de poștă.

Avantajul organizării unui sistem informațional pe o arhitectură client-server este combinația de succes a stocării centralizate, întreținerii și accesului colectiv la informații corporative comune cu munca individuală a utilizatorului.

Conform principiului de bază al arhitecturii client-server, datele sunt procesate doar pe server. Utilizatorul sau aplicația generează interogări care sunt trimise către serverul bazei de date sub formă de instrucțiuni SQL. Serverul bazei de date caută și preia datele necesare, care sunt apoi transferate pe computerul utilizatorului. Avantajul acestei abordări în comparație cu cea anterioară este o cantitate semnificativ mai mică de date transmise.

Se disting următoarele tipuri de SGBD:

* SGBD cu funcții complete;

* servere de baze de date;

* instrumente pentru dezvoltarea programelor de lucru cu baze de date.

SGBD-urile cu funcții complete sunt SGBD-uri tradiționale. Acestea includ dBaseIV, Microsoft Access, Microsoft FoxPro etc.

Serverele de baze de date sunt concepute pentru a organiza centre de procesare a datelor în rețele de calculatoare. Serverele de baze de date procesează cererile de la programele client, de obicei folosind instrucțiuni SQL. Exemple de servere de baze de date sunt: ​​Microsoft SQL Server, InterBase etc.

În general, ca programe client pot fi folosite SGBD, foi de calcul, procesoare de text, programe de e-mail etc.

Instrumentele de dezvoltare a programelor de baze de date pot fi folosite pentru a crea următoarele programe:

* programe client;

* servere de baze de date și componentele lor individuale;

* aplicații personalizate.

Pe baza naturii utilizării lor, SGBD-urile sunt împărțite în multi-utilizator (industriale) și locale (personale).

SGBD-urile industriale reprezintă o bază software pentru dezvoltarea sistemelor de control automatizate pentru obiecte economice mari. DBMS industrial trebuie să îndeplinească următoarele cerințe:

* capacitatea de a organiza munca paralelă în comun a mai multor utilizatori;

* scalabilitate;

* portabilitate pe diverse platforme hardware și software;

* rezistență la defecțiuni de diferite tipuri, inclusiv prezența unui sistem de backup pe mai multe niveluri pentru informațiile stocate;

* asigurarea securității datelor stocate și a unui sistem structurat dezvoltat de accesare a acestora.

Personal DBMS este un software care vizează rezolvarea problemelor unui utilizator local sau a unui grup mic de utilizatori și destinat utilizării pe un computer personal. Așa se explică al doilea lor nume - blatul de masă. Caracteristicile definitorii ale sistemelor desktop sunt:

* ușurință relativă de operare, permițându-vă să creați aplicații de utilizator funcționale pe baza acestora;

* cerințe relativ limitate pentru resurse hardware.

Pe baza modelului de date utilizat, SGBD-urile sunt împărțite în ierarhice, de rețea, relaționale, orientate pe obiecte etc. Unele SGBD-uri pot suporta simultan mai multe modele de date.

Următoarele tipuri de limbi sunt utilizate pentru a lucra cu datele stocate în baza de date:

· limbaj de descriere a datelor - un limbaj de structură a datelor de nivel înalt non-procedural;

· limbaj de manipulare a datelor - un set de constructe care asigură executarea operațiilor de bază pentru lucrul cu date: introducerea, modificarea și preluarea datelor la cerere.

Limbile numite pot diferi în diferite SGBD. Cele mai utilizate limbaje standardizate sunt QBE, un limbaj de interogare bazat pe modele și SQL, un limbaj de interogare structurat. QBE are în principal proprietățile unui limbaj de manipulare a datelor SQL combină proprietățile ambelor tipuri de limbaje.

SGBD implementează următoarele funcții principale de nivel scăzut:

* gestionarea datelor în memorie externă;

* gestionarea bufferelor RAM;

* managementul tranzactiilor;

* mentinerea unui jurnal de modificari in baza de date;

* asigurarea integritatii si securitatii bazei de date.

Implementarea funcției de gestionare a datelor în memoria externă asigură organizarea managementului resurselor în sistemul de fișiere OS.

Necesitatea tamponării datelor se datorează faptului că cantitatea de RAM este mai mică decât cantitatea de memorie externă. Bufferele sunt zone de RAM concepute pentru a accelera schimbul dintre RAM externă și RAM. Bufferele stochează temporar fragmente de bază de date, ale căror date sunt destinate să fie utilizate la accesarea SGBD sau sunt planificate să fie scrise în baza de date după procesare.

Mecanismul tranzacției este utilizat într-un SGBD pentru a menține integritatea datelor din baza de date. O tranzacție este o anumită secvență indivizibilă de operațiuni asupra datelor bazei de date, care este urmărită de SGBD de la început până la finalizare. Dacă din orice motiv (eșecuri și defecțiuni ale echipamentelor, erori în software, inclusiv în aplicație) tranzacția rămâne incompletă, atunci aceasta este anulată.

O tranzacție are trei proprietăți principale:

* atomicitate (toate operațiunile incluse în tranzacție sunt efectuate sau niciuna);

* serializare (nu există influență reciprocă a tranzacțiilor executate în același timp);

* durabilitate (chiar o blocare a sistemului nu duce la pierderea rezultatelor unei tranzacții angajate).

Un exemplu de tranzacție este operațiunea de transfer de bani dintr-un cont în altul în sistemul bancar. În primul rând, retrag bani dintr-un cont, apoi îi creditează într-un alt cont. Dacă cel puțin una dintre acțiuni eșuează, rezultatul operației va fi incorect și echilibrul operațiunii va fi deranjat.

Înregistrarea modificărilor este efectuată de SGBD pentru a asigura fiabilitatea stocării datelor în baza de date în prezența defecțiunilor hardware și software.

Asigurarea integrității bazei de date este o condiție necesară pentru funcționarea cu succes a bazei de date, mai ales atunci când este utilizată în rețea. Integritatea DB este o proprietate a unei baze de date, ceea ce înseamnă că conține informații complete, consecvente și care reflectă în mod adecvat despre domeniul subiectului. Integritatea bazei de date este descrisă folosind constrângeri de integritate sub forma unor condiții care trebuie îndeplinite de datele stocate în baza de date.

Securitatea este asigurată în SGBD prin criptarea datelor, protecția cu parolă, suport pentru niveluri de acces la baza de date și la elementele sale individuale (tabele, formulare, rapoarte etc.).


Introducere

Utilizarea pe scară largă a sistemelor de prelucrare a informațiilor în diverse domenii ale activității manageriale, pentru rezolvarea unor probleme economice complexe, și efectuarea cercetărilor științifice determină cerințe sporite pentru eficiența organizării datelor în condiții de utilizare colectivă.

Modul tradițional de organizare a datelor sub formă de matrice axate pe sarcini specifice este static, strâns legat de software-ul corespunzător, duce la duplicarea în acumularea și verificarea datelor, provoacă o pierdere semnificativă de memorie pentru stocarea acestora, reorganizarea frecventă a datelor când sarcinile se schimbă etc.

Una dintre principalele modalități de a depăși aceste neajunsuri este crearea de baze de date care să asigure menținerea unui model informațional dinamic al obiectelor și proceselor complexe gestionate din sistem și accesul colectiv la acesta.

1. Organizarea bazei de date

O bază de date (DB) este definită ca o colecție de date interconectate caracterizată prin: capacitatea de a fi utilizată pentru un număr mare de aplicații; capacitatea de a obține și modifica rapid informațiile necesare; redundanță minimă a informațiilor; independența programelor de aplicare; o metodă comună de căutare controlată.

Capacitatea de a utiliza baza de date pentru multe aplicații de utilizator simplifică implementarea interogărilor complexe, reduce redundanța și crește eficiența utilizării informațiilor în sistemele de procesare a datelor. Redundanța minimă și capacitatea de a modifica rapid păstrează datele la același nivel de actualizare. Independența datelor și a aplicațiilor care le folosesc este proprietatea principală a unei baze de date. Independența datelor înseamnă că modificarea datelor nu modifică programele aplicației.

Forma tradițională de organizare a bazelor de date care asigură o astfel de independență este o structură pe trei niveluri: structura logică de date a programatorului aplicației (subschemă); logica generala, structura datelor (schema); structura fizică a datelor.

Schemele și subschemele de baze de date sunt adesea descrise ca diagrame. În fig. Figura 1 prezintă o diagramă generală a structurii logice a bazei de date și a subcircuitelor a doi programatori de aplicații care au idei diferite despre date. Liniile continue reprezintă conexiuni în diagramă. Relațiile simple sunt indicate printr-o singură săgeată; relațiile unu-la-mai multe sunt indicate printr-o săgeată dublă. Liniile întrerupte reprezintă referințe încrucișate. Prezența referințelor încrucișate vă permite să evitați repetarea înregistrărilor FURNIZOR și SPECIFICAȚII - LOT - PRODUS în fiecare înregistrare ARTICOL DE ACHIZIȚIE.

Crearea unei baze de date nu este un proces unic; Organizarea pe trei niveluri oferă posibilitatea de a schimba rapid structura bazei de date în contextul menținerii și modificării sistemelor de control și al creșterii sarcinilor utilizatorului, precum și în condițiile îmbunătățirii și extinderii hardware-ului. Organizarea pe trei niveluri asigură independența reciprocă a modificărilor în structura logică generală a bazei de date și a programelor de aplicație (independența datelor logice) și capacitatea de a schimba locația fizică și organizarea datelor fără a modifica structura generală a datelor logice și structurile de date ale aplicației programatori (independență fizică).

2. Sisteme de management al bazelor de date

Utilizarea sistemelor de gestionare a bazelor de date (DBMS) vă permite să excludeți descrierea datelor și programarea detaliată a gestionării datelor din programele de aplicație. Descrierile sunt înlocuite cu referințe la structura logică generală a datelor, iar programarea controlului este înlocuită cu comenzi de manipulare a datelor care sunt executate de software universal.

Funcția principală a unui SGBD, împreună cu actualizarea datelor, este de a procesa cererile utilizatorilor pentru căutarea și transferul datelor către programele de aplicație. De exemplu, succesiunea de acțiuni de bază implementate de SGBD în procesul de citire a unei înregistrări constă în următoarele operații: programul aplicației emite o solicitare către SGBD de citire a înregistrării, care conține valoarea segmentului sau a cheii de înregistrare; SGBD caută în subcircuitul programului aplicației o descriere a datelor pentru care a fost emisă cererea; SGBD, folosind o schemă de date logice comună, determină ce tip de date logice este necesar; Pe baza descrierii organizării fizice a datelor, SGBD determină ce înregistrare fizică trebuie citită; SGBD emite o comandă către sistemul de operare pentru a citi înregistrarea necesară; sistemul de operare citește datele în tampoanele de sistem; Pe baza unei comparații între schema și subschema, SGBD extrage informațiile solicitate de programul de aplicație; SGBD transferă date din bufferele de sistem în spațiul de lucru al programului de aplicație.

Acțiunile pe care SGBD-ul le efectuează la actualizarea datelor sunt similare cu operațiunile de citire. SGBD-ul va efectua transformările necesare ale datelor în bufferele de sistem, opusul acelor transformări care au fost făcute la citirea datelor. Sistemul de management al bazei de date emite apoi o comandă WRITE către sistemul de operare. Arhitectura generală a sistemului de management al bazei de date este prezentată în Fig. 2. Este inerentă tuturor SGBD-urilor, care diferă în limitele și capacitățile de îndeplinire a funcțiilor corespunzătoare.

Procesul de comparare și selectare a unor astfel de sisteme pentru o anumită aplicație se reduce la potrivirea capacităților acestora cu cerințele și limitările specifice ale utilizatorului.

Pentru a lucra cu un sistem de gestionare a bazelor de date, aveți nevoie de mai multe limbaje: limbaje de programare, limbaje pentru descrierea circuitelor și subcircuitelor, limbaje pentru descrierea datelor fizice. Un programator de aplicații folosește limbaje de programare pentru a scrie programe (COBOL, FORTRAN, PL/1, ASSEMBLY) și instrumente pentru descrierea datelor - un limbaj de descriere a subcircuitului. Limbajul de descriere a subschemei poate fi un mijloc de descriere a datelor într-un limbaj de programare, un mijloc furnizat de SGBD sau un limbaj independent de descriere a datelor. Multe SGBD folosesc limbaje de programare pentru a descrie datele. Pentru programatorul aplicației, SGBD-ul trebuie să ofere un mijloc de transmitere a comenzilor și de interpretare a mesajelor emise de sistem. Interfața dintre programul de aplicație și SGBD - limbajul de manipulare a datelor - este construită în limbajul de programare. Înregistrarea este solicitată într-un limbaj de manipulare a datelor și citită în spațiul de lucru al programului de aplicație; în mod similar, atunci când includeți o înregistrare într-o bază de date, programul de aplicație o plasează în zona de lucru și emite o comandă într-un limbaj de manipulare a datelor. Comenzile tipice ale limbajului de manipulare a datelor sunt: ​​deschiderea unui fișier sau set de înregistrări; închideți un fișier sau un set de înregistrări; localizați și citiți copia specificată a înregistrării; transmiteți conținutul elementelor de date specificate dintr-o anumită instanță de înregistrare; înlocuiți valoarea anumitor elemente ale instanței de înregistrare specificate cu valori din spațiul de lucru al programului; introduceți o înregistrare din spațiul de lucru în setul de înregistrări; eliminați o instanță specifică a unei înregistrări dintr-o secvență de înregistrări; amintiți-vă o nouă instanță a unei înregistrări în baza de date; ștergeți o instanță specifică a unei înregistrări din baza de date; reordonați înregistrările într-un grup în ordine descrescătoare sau crescătoare în funcție de cheia specificată.


Programatorul de sisteme folosește un limbaj pentru a descrie circuitul general de date logice. Acest limbaj poate fi o extensie a limbajului de programare, un instrument DBMS sau un limbaj independent. Pentru a descrie aspectul datelor, programatorul de sisteme folosește o formă de limbaj de descriere a datelor fizice. Acest limbaj definește plasarea datelor pe dispozitivele fizice, gestionarea tamponării, metodele de adresare și căutare.

Atunci când în sistemul de management apar noi sarcini legate de prelucrarea unor volume mari de informații, se pune problema alegerii unei metode de organizare a datelor care să asigure rezolvarea acesteia. În acest caz, este necesar să se ia în considerare modalități posibile de organizare a datelor și eficiența utilizării acestora pentru a rezolva problema: organizarea datelor sub formă de fișiere; utilizarea unei baze de date existente (fără modificări ale schemei de date logice generale); dezvoltarea unei noi scheme logice de bază de date folosind un SGBD universal; dezvoltarea unei baze de date și a unui SGBD special.

Orice analiză necesară pentru evaluarea și selectarea unei organizații de bază de date trebuie să înceapă cu o examinare amănunțită a nevoilor utilizatorului. Pe baza studiului cerințelor utilizatorilor, ar trebui să se întocmească o listă completă a datelor care urmează să fie stocate, indicând caracteristicile și relațiile acestora, o listă a proceselor și utilizatorilor care interacționează cu baza de date, indicând prioritățile acestora și stabilind parametrii de acces la date și formulând cerințe pentru timpul și costul accesării bazei de date. În plus, este necesar să se analizeze hardware-ul disponibil (dimensiunea memoriei principale a procesorului, configurația sistemului de operare, luând în considerare mediile de transfer de date, resursele disponibile și capacitățile de expansiune ale memoriei externe), precum și numărul și calificările programatorilor de sisteme și aplicații.

Dacă este nevoie de organizarea datelor pentru a rezolva o serie de probleme aplicate în absența unei baze de date funcționale, ar trebui să evaluați fezabilitatea utilizării conceptului de bază de date pentru a rezolva problemele. Baza pentru utilizarea unei baze de date sunt următorii factori: suprapunerea semnificativă a matricelor de date, duplicarea acumulării și verificării datelor, necesitatea de a rezolva problema consistenței elementelor; un număr semnificativ de consumatori de informații; un număr semnificativ de tipuri de cereri; relativa constanţă a nomenclatorului cererilor. În același timp, atunci când decideți cu privire la organizarea unei baze de date, trebuie amintit că crearea acesteia poate duce la scăderea eficienței programelor de aplicație individuale și a interogărilor, deoarece scopul organizării unei baze de date este de a crește eficiența întregului sistem. .

Atunci când apar sarcini noi într-un sistem de control cu ​​o bază de date funcțională, ar trebui evaluată posibilitatea de a utiliza o structură de date comună pentru a descrie domeniile subiectului, de ex. un set de obiecte și procese ale noilor utilizatori în limbajul subschemelor unei baze de date funcționale sau, dacă diagrama logică generală existentă necesită modificare, estimați costurile efectuării modificărilor necesare și impactul acestor modificări asupra caracteristicilor generale ale sistemului în ceea ce priveşte satisfacerea nevoilor tuturor utilizatorilor sistemului.

Dacă se ia decizia de a dezvolta o nouă bază de date, apare sarcina de a alege un SGBD universal sau de a dezvolta un SGBD specializat, precum și proiectarea structurii sale logice și fizice generale, iar alegerea unui SGBD, de regulă, este baza pentru proiectarea și organizarea structurilor logice și fizice ale bazei de date.

SGBD-urile existente oferă trei abordări principale ale managementului datelor: ierarhică, de rețea și relațională (Fig. 3). Abordarea ierarhică se bazează pe reprezentarea unei ierarhii de obiecte. Relațiile ierarhice sunt susținute direct în proiectarea fizică a SGBD. Relațiile ierarhice sunt un caz special de relații de rețea. De exemplu, un furnizor poate furniza mai multe tipuri de bunuri, iar fiecare tip de bunuri poate avea mai mulți furnizori. Sistemele relaționale nu fac diferența între obiecte și relații. Relațiile de rețea și ierarhice pot fi reprezentate sub formă de tabele bidimensionale numite relații și având următoarele proprietăți: fiecare element de tabel reprezintă un element de date (nu există grupuri repetate); elementele coloanei sunt de aceeași natură, coloanele sunt nume atribuite în mod unic; nu există două rânduri identice în tabel; rândurile și coloanele pot fi vizualizate în orice ordine, indiferent de conținutul lor informativ. O bază de date construită folosind relații se numește relațională și are în mod ideal următoarele avantaje: capacitatea de a fi folosită de utilizatori neinstruiți; simplitatea sistemului de securitate (pentru fiecare relație este specificată legalitatea accesului); independența datelor; capacitatea de a construi un limbaj simplu pentru manipularea datelor folosind algebra relațională.

Atunci când alegeți un SGBD universal pentru implementarea unui set specific de programe de aplicație bazate pe utilizarea unei baze de date, ar trebui să evaluați limbajul de descriere a datelor furnizat utilizatorului, limbajul de manipulare a datelor și mijloacele de întreținere a bazei de date fizice. Caracteristicile care definesc un limbaj de descriere a datelor se disting de obicei: claritate, ușurință de studiu, grad de independență a datelor, proceduri de protecție împotriva accesului neautorizat, elemente de descriere (tipuri de date, dimensiune și nume etc.), relații suportate (ierarhice, de rețea). , relațional) . Dintre caracteristicile limbajelor de manipulare a datelor trebuie evidențiate: mijloacele de acces reprezentate (în secvență fizică, prin valoarea unui element de date, prin cheie), compatibilitatea cu limbaje de programare de bază (la nivel înalt), ușurința de învățare și utilizarea, independența datelor, capabilitățile și mijloacele de utilizare simultană a bazei de date de către mai multe aplicații.

3. Selectarea unui SGBD

Se realizează ținând cont de nevoile utilizatorului folosind una dintre următoarele metode: analiza de fezabilitate, verificare experimentală, simulare și modelare.

Metoda de analiză a capacităților se bazează pe notarea caracteristicilor de mai sus ale SGBD din punctul de vedere al cerințelor utilizatorului. Fiecare caracteristică este studiată din două perspective - dacă este prezentă în SGBD-ul propus și care este calitatea acesteia. Calitatea este clasificată conform unei scale standard. Coeficientul de clasare este înmulțit cu ponderea alocată pentru o anumită componentă, iar scorurile ponderate pentru fiecare componentă sunt însumate.

Metoda de verificare experimentală constă în crearea unui mediu de aplicație specific și utilizarea acestuia pentru a obține caracteristicile operaționale ale unui sistem hardware și software dat. Pentru verificarea experimentală este necesară proiectarea și încărcarea unei baze de date generice; apoi, folosind limbajul de manipulare a datelor SGBD, modelați cerințele pentru procesarea programelor de aplicație existente și așteptate și efectuați un test experimental al SGBD-ului luat în considerare.

În metoda de simulare și modelare a funcționării unui SGBD se folosesc expresii matematice care determină dependența unuia dintre parametri față de ceilalți. De exemplu, timpul de acces poate fi reprezentat ca o funcție a numărului de accesări la disc, a cantității de informații transferate și a timpului procesorului de generare a unui răspuns la o solicitare. Deoarece parametrii enumerați depind de metoda de stocare a datelor și de metoda de accesare a acestora, diferite SGBD-uri necesită modele diferite. Odată dezvoltate aceste modele, ele pot fi utilizate pentru a estima timpul și costul de procesare atunci când se utilizează diferite SGBD-uri prin specificarea unei varietăți de condiții (schimbarea dimensiunilor bazei de date, metode de acces, rate de blocare etc.).

Un designer necalificat poate impune limitări unui anumit SGBD la începutul procesului de proiectare a bazei de date. În acest caz, cerințele utilizatorului sunt specificate artificial de structurile ierarhice și de rețea ale unui anumit SGBD, fără a lua în considerare alte soluții de proiectare posibile. Această abordare poate duce la reducerea eficienței sistemului.

Mai jos sunt prezentate scurte caracteristici ale unor SGBD-uri universale.

INES DBMS se concentrează pe rezolvarea problemelor de regăsire a informațiilor prin intermediul dialogului. Oferă posibilitatea de a accesa rapid baza de date pentru a obține date de referință și pentru a vizualiza în mod eficient volume mari de date la compilarea rezumatelor și la generarea matricelor inițiale pentru rezolvarea problemelor economice.

Sistemul permite accesul la date din programele aplicației utilizator scrise în ASSEMBLY, PL/1, COBOL, ALGOL-60, FORTRAN-4.

Se folosesc limbaje speciale de introducere (limba de introducere a indicatorului economic, limba de introducere a documentului) și limbaje de interogare care satisfac cerințele de bază pentru limbaje de descriere a datelor și limbaje de manipulare a datelor.

Pentru a lucra cu date care au o structură ierarhică, se utilizează o metodă specială de acces. INES DBMS are un sistem de generare a mesajelor de ieșire și un sistem de vizualizare a mesajelor, care permit utilizatorului să stabilească structura documentului și detaliile acestuia, să caute, să modifice și să corecteze datele și să le afișeze pe afișaj.

SGBD-ul KVANT-M este un sistem în timp real conceput să ruleze pe un minicalculator și utilizat pentru rezolvarea problemelor în sistemele de regăsire și referință a informațiilor (factografic, bibliografic, rezervare comenzi etc.).

Programele utilizatorului pot fi scrise în COBOL, FORTRAN, BASIC-2 și pot accesa baza de date folosind interfața CAM.

SGBD-ul KVANT-M acceptă o bază de date constând dintr-un set de matrice (fișiere). Intrările din matrice au aceeași structură și un număr secvenţial unic (ISN). Înregistrările sunt alcătuite din câmpuri, care sunt cea mai mică unitate de date din baza de date. Un câmp poate fi declarat ca o cheie. Pentru a descrie datele din fișiere, se creează o schemă care conține numele câmpurilor de înregistrare, tipul acestora și un semn care indică dacă câmpul este o cheie. Una sau mai multe subscheme sunt create pentru utilizatorii la care au acces.

Structura fizică a datelor utilizează liste inversate de valori cheie și asigură că adresarea este independentă de locația fizică a datelor. Sistemul oferă următoarele tipuri de acces: serial prin ISN; într-o succesiune logică; la cerere.

Limbajul pentru manipularea datelor este limbajul KVANT SCRIPT-M. Este o limbă conversațională asemănătoare englezei, concepută pentru a căuta și a evidenția eficient înregistrările într-o bază de date și pentru a le afișa.

Recent, s-a organizat producția de computere personale de mare viteză cu RAM mare și memorie externă, cu posibilitatea de a le combina într-o rețea locală de calculatoare. Pentru aceste calculatoare au apărut și continuă să apară SGBD-urile universale, oferind utilizatorului instrumente și facilități uneori mai bogate decât cele ale minicalculatoarelor și calculatoarelor mainframe. Acest proces nu a fost încă stabilit și, prin urmare, nu are sens să prezentăm în manual caracteristicile acestor SGBD.

4. Baze de date specializate

Procesul de proiectare a unei baze de date specializate include: proiectare logica, proiectare fizica, dezvoltarea unui SGBD specializat.

Proiectarea logica presupune analiza. cerințe, modelarea datelor programului de aplicație și integrarea acestora, dezvoltarea unui circuit logic. Analiza cerințelor utilizatorilor se realizează folosind metode standard de analiză a sistemului: documentare, sondaj, rapoarte simulate. Analiza cerințelor produce seturi sistematice de date și specificații de procesare folosind definiții standard ale datelor care minimizează inconsecvențele în specificațiile dezvoltate.

Modelul de date este conceput pentru a reprezenta mediul utilizatorului. Deoarece baza de date este creată pentru mulți utilizatori, faza de integrare este concepută pentru a rezolva conflictele dintre cerințele utilizatorilor în timpul procesului de modelare.

În etapa de creare a unei diagrame, modelele de utilizator trebuie să fie combinate într-unul singur, din care se pot distinge toate vederile alternative. Sarcina sintetizării structurii logice optime a unei baze de date este de a determina structura logică optimă în sensul criteriului acceptat, asigurând implementarea setului de solicitări ale tuturor utilizatorilor sistemului. Dintre criteriile utilizate pentru sintetizarea structurii logice a unei baze de date se pot evidenția costul minim de stocare, actualizare și transmitere a informațiilor pentru o anumită perioadă, minimul fluxurilor totale de informații, cantitatea minimă de informații stocate, costul minim de actualizare. informații, viteza maximă, fiabilitatea maximă. Dacă specificațiile cerințelor și modelele de date nu depind de SGBD, atunci schema bazei de date este descrierea acesteia într-un limbaj de descriere a datelor. În plus față de schemă, sunt dezvoltate descrieri ale subseturilor de baze de date (subschemă) ale utilizatorilor. Proiectarea unei baze de date fizice include prezentarea fizică a datelor, selectarea și documentarea metodelor de acces și plasarea datelor.

Pe baza designului logic, proiectantul fizic trebuie să determine reprezentarea fiecărui element de date, înregistrare și matrice. Pentru fiecare matrice fizică, dimensiunea acesteia trebuie setată. La determinarea reprezentării fizice a datelor trebuie să se țină cont de următorii factori: economisirea memoriei, minimizarea redundanței (folosind referințe sau pointeri), metoda de procesare (secvențială, aleatorie) și coeficientul de adresare, matrice și înregistrare (determină alegerea dispozitivelor). cu acces direct sau secvenţial), independenţa datelor, timpul de răspuns la o solicitare (determină organizarea datelor şi tipul dispozitivului de stocare).

Specificul sarcinilor rezolvate pe baza bazei de date în curs de dezvoltare, cerințele utilizatorului și proiectarea logică a bazei de date stau la baza alegerii metodei de adresare și organizare a căutării datelor. Metodele de adresare includ: scanare secvențială, căutare în bloc, căutare binară, metoda index-secvențială, adresare directă, amestecare și diverse combinații ale acestora.

Scanarea secvenţială presupune verificarea cheii fiecărei înregistrări. Metoda poate fi eficientă numai atunci când procesează în serie rețele secvențiale pe bandă magnetică.

Căutarea bloc este utilizată în cazul matricelor secvențiale ordonate după cheie. Înregistrările sunt grupate în blocuri și fiecare bloc este verificat până când este găsit blocul dorit ale cărui înregistrări sunt citite.

În căutarea binară, zona de căutare este împărțită în jumătate de fiecare dată, iar cheia înregistrării rezultate este comparată cu cheia de căutare. Căutarea binară nu este de obicei potrivită pentru dispozitivele cu acces direct și este utilizată atunci când se caută indici de matrice.

Metoda de adresare index-secventială utilizează indecși. Indexul de nivel superior specifică locația indexului de nivel inferior, care specifică locația blocului de înregistrări. Un bloc de înregistrări este fie scanat, fie binar sau căutat în bloc. Metoda presupune ordonarea înregistrărilor după cheie. În cazul unui tablou arbitrar, se utilizează metoda index-arbitrară. Cu toate acestea, acest lucru necesită un index mult mai mare, deoarece trebuie să conțină un element pentru fiecare intrare din matrice, mai degrabă decât pe bloc de intrări.

Adresarea directă implică traducerea unei chei într-o adresă. Există multe metode pentru a converti o cheie într-o adresă dintr-o matrice. Cea mai simplă modalitate este de a specifica adresa monitorului relativă a înregistrării în mesajul de intrare. În unele aplicații, adresa este calculată pe baza identificatorilor de obiect.

Metoda shuffle implică conversia cheii elementului de date într-un număr cvasialeatoriu, care este folosit pentru a determina locația înregistrării.

Atunci când proiectați structura fizică a unei baze de date, trebuie să definiți și să documentați modul în care este accesat fiecare tip de înregistrare, să identificați înregistrările care sunt accesate direct prin chei și înregistrările care sunt accesate folosind pointeri din alte înregistrări sau indecși. Fiecare matrice, în funcție de metoda de acces, trebuie să i se aloce spațiu pe dispozitivele fizice (discuri magnetice, benzi). Acest lucru plasează datele în așa fel încât să acorde prioritate datelor accesate frecvent sau să maximizeze proximitatea datelor stocate.

Cea mai utilizată este metoda de adresare index-secvențială. În acest caz, puteți utiliza două metode de acces - ISAM și VSAM. În metoda de acces ISAM, înregistrările sunt grupate astfel încât să poată fi localizate pe piste individuale ale cilindrilor modulului de disc, iar pe fiecare cilindru este alocată o pistă pentru indici care indică înregistrările situate pe acel cilindru. Dacă trebuie adăugate date noi, acestea sunt plasate în zona de depășire (indicatorii către zonele de depășire sunt de asemenea incluse în pista index). Metoda de acces VSAM este similară cu metoda ISAM, cu toate acestea, metoda VSAM este independentă de tipul de echipament și nu funcționează pe categorii precum șine și cilindri. În loc de cilindri împărțiți în piste, se folosesc zone controlate, care la rândul lor sunt împărțite în intervale controlate. În metoda VSAM, există un set de pointeri (index) per zonă gestionată.

Proiectarea unui SGBD specializat implică dezvoltarea unui limbaj de descriere a datelor, a unui limbaj de manipulare a datelor și a unui mijloc de întreținere a unei baze de date fizice. Cerințele de bază pe care trebuie să le îndeplinească limbajele de descriere și manipulare a datelor au fost identificate atunci când s-a luat în considerare problema alegerii unui DBMS universal. Cel mai obișnuit limbaj pentru descrierea datelor programatorului (subcircuite) este secțiunea de date COBOL, de regulă, DBMS-urile moderne își dezvoltă propriile limbaje de descriere a datelor pentru a descrie schemele și structura fizică a bazei de date. Asociația pentru Limbaje Sisteme de Date (CODASYL) a propus un limbaj de descriere a datelor care este folosit atât pentru a descrie datele în mod logic, cât și pentru a descrie organizarea lor fizică.

5. Baze de date distribuite

În legătură cu crearea și dezvoltarea unui număr de sisteme de control automatizate bazate în prezent pe rețele de calculatoare, este relevantă proiectarea bazelor de date distribuite (RDB). O bază de date distribuită este un sistem de baze de date locale (LDD) interconectate între informații și care interacționează într-un anumit fel, care au propriul conținut și structură de informații. În esență, RDB este un sistem de memorie distribuită care stochează toate datele solicitate de sistemul de control automatizat corespunzător. Particularitatea sa este că fragmentele structurii logice generate sunt localizate în baze de date îndepărtate geografic. Implementarea fizică a conectivității RDB se realizează prin organizarea fluxurilor de informații în cadrul LDB și între acestea prin canale de comunicare.

Principala problemă la crearea unui RDB este plasarea datelor; aceasta determină caracteristici ale RDB precum volumul de date stocate și actualizate, intensitatea fluxurilor de informații și fiabilitatea sistemelor.

Proiectarea RDB poate avea loc în următoarele condiții:

a) crearea unui sistem de control automat este abia la început, iar sarcina este de a selecta structura optimă a RDB și amplasarea LDB-urilor individuale;

b) există un anumit număr de LBD-uri și CC-uri și sarcina este alocarea unui număr suplimentar de LBD-uri și modificarea optimă a structurii conexiunilor din sistem;

c) formarea geografiei și structurii sistemului este finalizată, iar sarcina este de a realoca optim matricele și de a schimba topologia conexiunilor.

Cele mai tipice sarcini la proiectarea unui RDB sunt determinarea structurii RDB, determinarea topologiei conexiunilor, alegerea unei strategii pentru căutarea și actualizarea informațiilor și alegerea unui sistem de control pentru RDB.

Există structuri RDB centralizate, descentralizate și combinate. Cele mai utilizate sunt RDB-urile combinate, care se caracterizează prin prezența unei baze de date centrale care stochează informații la nivelul întregului sistem despre plasarea matricelor în RDB. Numărul de LDB la fiecare nivel al ierarhiei este determinat de restricții privind volumul de informații stocate și restricții privind costul creării unui LDB. Amplasarea LBD depinde de locația consumatorilor și de sursele de informații.

Alegerea topologiei rețelei LBD este determinată de natura relațiilor lor de informații, de direcția și intensitatea fluxurilor de informații și de fiabilitatea și fiabilitatea necesare transmiterii informațiilor. De obicei, utilizatorii sunt alocați unui LDB și prin acest LDB sunt conectați la alte baze de date din RDB. Se disting următoarele tipuri de structuri de conexiuni LBD în RBD: radial, radial-nodal, inel, fiecare cu fiecare, combinat (Fig. 4, a - d). Cel mai de încredere, cu o căutare rapidă a informațiilor, este un sistem cu structura „toată lumea cu toată lumea”. Conexiunile informaționale de acest tip sunt caracteristice obiectelor care sunt subordonate între ele doar funcțional.

Strategia de căutare influențează cantitatea și plasarea informațiilor structurale și fluxul de interogare. În cazul în care informațiile solicitate de utilizator nu sunt disponibile în cel mai apropiat LDB, se pot propune următoarele strategii de căutare:

1) conform informațiilor structurale despre plasarea datelor în RDB, se caută LDB solicitat și se accesează acest LDB;

2) se efectuează o căutare în LDB de rang superior; dacă lipsesc informațiile necesare, se analizează informațiile structurale despre conținutul tuturor LBD-urilor subordonate; dacă lipsesc informațiile necesare, mergeți la LDB de un nivel ierarhic superior;

3) se face un apel la LDB de control, unde sunt stocate informații structurale despre toate LDB;

4) toate LBD-urile sunt interogate fie în paralel, fie secvenţial.

Strategia 1 oferă cantitatea minimă de informații de interogare, dar în fiecare LDB este necesar să se stocheze informații structurale despre plasarea matricelor în RDB.

Strategia 2 este tipică pentru sistemele ierarhice în care predomină fluxurile de informații de sus în jos.

Strategia 3 minimizează informațiile structurale.

Strategia 4 se caracterizează prin fluxuri mari de informații de solicitare.

Funcționarea RDB presupune prezența fluxurilor de actualizare a informațiilor în acesta. Dintre strategiile de actualizare, se pot distinge următoarele: actualizarea tuturor matricelor duplicate în toate LDB-urile este efectuată de sursa de informații; sursa actualizează informații numai în cel mai apropiat LDB toate celelalte matrice duplicate sunt actualizate la inițiativa acestei LDB; actualizarea matricelor duplicate se realizează conform unui algoritm (de exemplu, minimizarea fluxurilor totale de actualizare). Strategia de actualizare trebuie să asigure fiabilitatea, fiabilitatea și performanța specificate a RDB. Dezvoltarea și punerea în aplicare a sistemelor eficiente de management RBD sunt în prezent într-un stadiu incipient. Principalul criteriu la dezvoltarea unui sistem de control RDB este intensitatea minimă de muncă pentru crearea și implementarea software-ului acestuia. Problema poate fi rezolvată prin rafinarea și ajustarea SGBD-urilor existente sau prin crearea unor sisteme speciale de management RDB eficiente.