Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Televizoare (Smart TV)
  • Sunt condamnate bazele de date relaționale? Bazele de date sunt relaționale. Conceptul unei baze de date relaționale

Sunt condamnate bazele de date relaționale? Bazele de date sunt relaționale. Conceptul unei baze de date relaționale

Baza de date relațională - concepte de bază

Adesea, când vorbim despre o bază de date, ele înseamnă pur și simplu un fel de stocare automată a datelor. Această reprezentare nu este în întregime corectă. De ce este așa, va fi arătat mai jos.

Într-adevăr, în sensul restrâns al cuvântului, o bază de date este un anumit set de date necesare muncii (date reale). Cu toate acestea, datele sunt o abstractizare; nimeni nu a văzut vreodată „doar date”; ele nu apar și nu există de la sine. Datele sunt o reflectare a obiectelor din lumea reală. De exemplu, doriți să stocați informații despre piesele primite la depozit. Cum va fi afișat obiectul din lumea reală - detaliul - în baza de date? Pentru a răspunde la această întrebare, trebuie să știți ce caracteristici sau aspecte ale piesei vor fi relevante, necesare pentru lucru. Printre acestea pot fi denumirea piesei, greutatea acesteia, dimensiunile, culoarea, data fabricației, materialul din care este realizată etc. În terminologia tradițională, obiectele din lumea reală, despre care informațiile sunt stocate în baza de date, sunt numite entități (să nu sperie acest cuvânt pe cititor - acesta este un termen general acceptat), iar caracteristicile lor reale sunt numite atribute.

Fiecare caracteristică a unui anumit obiect este o valoare de atribut. De exemplu, partea motorului are o valoare a atributului de greutate de 50, ceea ce reflectă faptul că acest motor cântărește 50 de kilograme.

Ar fi o greșeală să presupunem că numai obiectele fizice sunt reflectate în baza de date. Este capabil să absoarbă informații despre abstracții, procese, fenomene - adică despre tot ceea ce o persoană întâlnește în activitatea sa. Deci, de exemplu, o bază de date poate stoca informații despre comenzile pentru furnizarea de piese către un depozit (deși nu este un obiect fizic, ci un proces). Atributele entității „comanda” vor fi numele piesei furnizate, cantitatea de piese, numele furnizorului, timpul de livrare etc.

Obiectele lumii reale sunt legate între ele prin multe dependențe complexe care trebuie luate în considerare în activitățile de informare. De exemplu, piesele sunt furnizate depozitului de către producătorii lor. Prin urmare, atributul „numele producătorului” trebuie inclus printre atributele piesei. Cu toate acestea, acest lucru nu este suficient, deoarece pot fi necesare informații suplimentare despre producătorul unei anumite piese - adresa, numărul de telefon etc. Aceasta înseamnă că baza de date trebuie să conțină nu numai informații despre piese și comenzile de achiziție, ci și informații despre producătorii acestora. În plus, baza de date ar trebui să reflecte legăturile dintre piese și producători (fiecare piesă este produsă de un anumit producător) și dintre comenzi și piese (fiecare comandă este făcută pentru o anumită piesă). Rețineți că numai relațiile relevante și semnificative ar trebui stocate în baza de date.

Astfel, în sensul larg al cuvântului, o bază de date este o colecție de descrieri ale obiectelor din lumea reală și relațiile dintre ele care sunt relevante pentru o anumită zonă de aplicație. În cele ce urmează, vom pleca de la această definiție, perfecționând-o în cursul prezentării.

Model de date relaționale

Deci, ne-am făcut o idee despre ceea ce este stocat în baza de date. Acum trebuie să înțelegem cum se mapează entitățile, atributele și relațiile cu structurile de date. Acest lucru este determinat de modelul de date.

În mod tradițional, toate SGBD-urile sunt clasificate în funcție de modelul de date subiacent. Se obișnuiește să se evidențieze modelele de date ierarhice, de rețea și relaționale. Uneori li se adaugă un model de date pentru lista de postări. În consecință, ei vorbesc despre SGBD ierarhic, de rețea, relațional sau SGBD bazat pe liste de postări.

În ceea ce privește prevalența și popularitatea, SGBD-urile relaționale de astăzi sunt dincolo de concurență. Ele au devenit standardul de facto al industriei și, prin urmare, utilizatorul casnic va trebui să se ocupe de SGBD relațional în practica sa. Să aruncăm o privire rapidă asupra modelului de date relaționale, fără a aprofunda în detaliile acestuia.

A fost dezvoltat de Codd în anii 1969-70 pe baza teoriei matematice a relațiilor și se bazează pe un sistem de concepte, dintre care cele mai importante sunt tabelul, relația, rândul, coloana, cheia primară, cheia străină.

O bază de date relațională este o astfel de bază de date în care toate datele sunt prezentate utilizatorului sub formă de tabele dreptunghiulare cu valorile datelor, iar toate operațiunile din baza de date sunt reduse la manipulări de tabele. Un tabel este format din rânduri și coloane și are un nume unic în baza de date. Tabelul reflectă tipul obiectului (entității) din lumea reală, iar fiecare rând reprezintă un obiect specific. Astfel, tabelul Piese conține informații despre toate piesele stocate în depozit, iar rândurile sale sunt seturi de valori ale atributelor pentru anumite piese. Fiecare coloană a tabelului este un set de valori ale unui anumit atribut al unui obiect. Astfel, coloana Material este un set de valori „Oțel”, „Stiniu”, „Zinc”, „Nichel”, etc. Coloana Cantitate conține numere întregi nenegative. Valorile din coloana Greutate sunt numere reale egale cu greutatea piesei în kilograme.

Aceste valori nu apar din aer. Ele sunt selectate din setul de toate valorile posibile pentru un atribut al obiectului, numit domeniu. Astfel, valorile din coloana de materiale sunt selectate din setul de nume ale tuturor materialelor posibile - materiale plastice, lemn, metale etc. Prin urmare, în coloana Material, este fundamental imposibil să apară o valoare care nu este în domeniul corespunzător, de exemplu, „apă” sau „nisip”.

Fiecare coloană are un nume, care este de obicei scris în partea de sus a tabelului ( Orez. unu). Trebuie să fie unic într-un tabel, dar tabele diferite pot avea coloane cu același nume. Orice tabel trebuie să aibă cel puțin o coloană; Coloanele sunt aranjate în tabel în ordinea în care apar numele lor la crearea tabelului. Spre deosebire de coloane, rândurile nu au nume; ordinea lor în tabel nu este definită, iar numărul nu este limitat în mod logic.

Figura 1. Concepte de bază ale unei baze de date.

Deoarece rândurile din tabel nu sunt ordonate, este imposibil să selectați un rând după poziția sa - printre ele nu există „primul”, „al doilea”, „ultimul”. Orice tabel are una sau mai multe coloane, valorile în care identifică în mod unic fiecare dintre rândurile sale. O astfel de coloană (sau combinație de coloane) se numește cheie primară. În tabelul Piese, cheia primară este coloana Număr piese. În exemplul nostru, fiecare piesă din depozit are un singur număr, prin care informațiile necesare sunt preluate din tabelul Piese. Prin urmare, în acest tabel, cheia primară este coloana Numărul piesei. Valorile nu pot fi duplicate în această coloană - nu trebuie să existe rânduri în tabelul Piese care să aibă aceeași valoare în coloana Număr piese. Dacă un tabel îndeplinește această cerință, se numește relație.

Relația dintre tabele este un element esențial al modelului de date relaționale. Este suportat de chei străine. Luați în considerare un exemplu în care o bază de date stochează informații despre angajații obișnuiți (tabelul angajaților) și managerii (tabelul managerului) dintr-o organizație ( Orez. 2). Cheia primară a tabelului Manager este coloana Număr (de exemplu, numărul de personal). Coloana Nume de familie nu poate servi ca cheie primară, deoarece doi manageri cu același nume de familie pot lucra în aceeași organizație. Orice angajat este subordonat unui singur lider, care ar trebui să se reflecte în baza de date. Tabelul Angajați conține o coloană Număr manager, iar valorile din această coloană sunt selectate din coloana Număr din tabelul Manager (vezi Figura 1). Orez. 2). Coloana Număr manager este o cheie străină din tabelul Angajați.

Figura 2. Relația tabelelor bazei de date.

Tabelele nu pot fi stocate și procesate dacă nu există „date despre date” în baza de date, cum ar fi descriptori de tabel, descriptori de coloană etc. Ele sunt de obicei numite metadate. Metadatele sunt, de asemenea, prezentate sub formă de tabel și stocate în dicționarul de date.

Pe lângă tabele, în baza de date pot fi stocate și alte obiecte, cum ar fi formulare de ecran, rapoarte (rapoarte), vizualizări (vizualizări) și chiar aplicații care funcționează cu baza de date.

Pentru utilizatorii unui sistem informatic, nu este suficient ca baza de date să reflecte pur și simplu obiectele lumii reale. Este important ca o astfel de reflecție să fie lipsită de ambiguitate și consecventă. În acest caz, se spune că baza de date satisface condiția de integritate.

Pentru a garanta corectitudinea și consistența reciprocă a datelor, asupra bazei de date sunt impuse unele restricții, care se numesc constrângeri de integritate a datelor.

Există mai multe tipuri de constrângeri de integritate. Este necesar, de exemplu, ca valorile dintr-o coloană de tabel să fie selectate numai din domeniul corespunzător. În practică, constrângerile de integritate mai complexe sunt luate în considerare, de exemplu, integritatea referenţială. Esența sa constă în faptul că o cheie străină nu poate fi un pointer către un rând inexistent în tabel. Constrângerile de integritate sunt implementate folosind instrumente speciale, care vor fi discutate în Sec.Server de baze de date .

Limbajul SQL

În sine, datele sub formă de computer nu prezintă interes pentru utilizator dacă nu există mijloace de accesare a acestora. Accesul la date se realizează sub formă de interogări la baza de date, care sunt formulate într-un limbaj de interogare standard. Astăzi, pentru majoritatea DBMS, acest limbaj este SQL.

Apariția și dezvoltarea acestui limbaj ca mijloc de descriere a accesului la o bază de date este asociată cu crearea teoriei bazelor de date relaționale. Prototipul limbajului SQL a apărut în 1970, ca parte a proiectului de cercetare System/R, la care se lucra la laboratorul IBM Santa Teresa. SQL este acum standardul pentru interfața cu sistemele de gestionare a bazelor de date relaționale. Popularitatea sa este atât de mare încât dezvoltatorii de DBMS non-relațional (de exemplu, Adabas) își furnizează sistemele cu o interfață SQL.

Limbajul SQL are un standard oficial - ANSI/ISO. Majoritatea dezvoltatorilor DBMS aderă la acest standard, dar adesea îl extind pentru a implementa noi capabilități de procesare a datelor. Noi mecanisme de gestionare a datelor, care vor fi descrise în Sec.Server de baze de date , poate fi folosit numai prin instrucțiuni SQL speciale care nu sunt incluse în general în standardul de limbaj.

SQL nu este un limbaj de programare în forma sa tradițională. Programele nu sunt scrise pe el, ci interogări către baza de date. Prin urmare, SQL este un limbaj declarativ. Aceasta înseamnă că poate fi folosit pentru a formula ceea ce trebuie obținut, dar nu poate indica cum ar trebui făcut. În special, spre deosebire de limbajele de programare procedurală (C, Pascal, Ada), SQL nu conține instrucțiuni precum if-then-else, for, while etc.

Nu vom lua în considerare sintaxa limbajului în detaliu. O vom atinge doar în măsura în care este necesar pentru a înțelege exemple simple. Cu ajutorul lor vor fi ilustrate cele mai interesante mecanisme de prelucrare a datelor.

O interogare SQL constă din una sau mai multe instrucțiuni, una după alta, separate prin punct și virgulă. Tabelul 1 de mai jos listează cei mai importanți operatori care fac parte din standardul SQL ANSI/ISO.

Tabelul 1. Operatorii de bază ai limbajului SQL.

Interogările SQL folosesc nume care identifică în mod unic obiectele bazei de date. În special, acestea sunt numele tabelului (Detaliu), numele coloanei (Nume), precum și numele altor obiecte din baza de date care aparțin unor tipuri suplimentare (de exemplu, numele procedurilor și regulilor), care vor fi discutat în Sec.Server de baze de date . Alături de cele simple, sunt folosite și nume complexe - de exemplu, un nume de coloană calificat definește numele coloanei și numele tabelului căruia îi aparține (Detaliu.Greutate). Pentru simplitate, în exemple, numele vor fi scrise în limba rusă, deși în practică acest lucru nu este recomandat.

Fiecare coloană din orice tabel stochează anumite tipuri de date. Există tipuri de date de bază - șiruri de caractere cu lungime fixă, numere întregi și numere reale, precum și tipuri de date suplimentare - șiruri de caractere cu lungime variabilă, unități monetare, dată și oră, date logice (două valori - „adevărat” și „FALSE” ). În SQL, puteți utiliza constante numerice, șir, caractere, dată și oră.

Să ne uităm la câteva exemple.

Interogarea „determinați numărul de piese în stoc pentru toate tipurile de piese” este implementată după cum urmează:

SELECTAȚI Nume, Cantitate

DIN Detaliu;

Rezultatul interogării va fi un tabel cu două coloane - Nume și Cantitate, care sunt preluate din tabelul original Detaliu. În esență, această interogare vă permite să obțineți o proiecție verticală a tabelului original (mai strict, un subset vertical al setului de rânduri de tabel). Din toate rândurile tabelului de detalii se formează rânduri care includ valori preluate din două coloane - Nume și Cantitate.

Interogarea „ce piese din oțel sunt păstrate în stoc?”, formulată în SQL, arată astfel:

DIN Detaliu

WHERE Material = „Oțel”;

Rezultatul acestei interogări va fi, de asemenea, un tabel care conține numai acele rânduri din tabelul sursă care au valoarea „Oțel” în coloana Material. Această interogare vă permite să obțineți o proiecție orizontală a tabelului de detalii (asteriscul din instrucțiunea SELECT înseamnă că toate coloanele din tabel sunt selectate).

Interogarea „determinați numele și numărul de piese din stoc care sunt din plastic și cântăresc mai puțin de cinci kilograme” ar fi scrisă după cum urmează:

SELECTAȚI Nume, Cantitate

DIN Detaliu

WHERE Material = „Plastic”

SI Greutatea< 5;

Rezultatul interogării este un tabel cu două coloane - Nume, Cantitate, care conține numele și numărul pieselor din plastic și cântărind mai puțin de 5 kg. De fapt, operația de selecție este operația de a crea mai întâi o proiecție orizontală (găsiți toate rândurile din tabelul Piese pentru care Material = "Plastic" și Greutate< 5), а затем вертикальной проекции (извлечь Название и Количество из выбранных ранее строк).

Indecșii sunt unul dintre instrumentele care oferă acces rapid la tabele. Un index este o structură de bază de date care este un pointer către un anumit rând de tabel. Indexul bazei de date este utilizat în același mod ca un index al unei cărți. Conține valori preluate dintr-una sau mai multe coloane ale unui anumit rând de tabel și o referință la acel rând. Valorile din index sunt ordonate, ceea ce permite DBMS-ului să caute rapid tabelul.

Să presupunem că o interogare este formulată în baza de date Warehouse:

SELECTARE Nume Cantitate, Material

DIN Detaliu

WHERE Număr = "T145-A8";

Dacă nu există indici pentru acest tabel, atunci pentru a executa această interogare, SGBD-ul trebuie să scaneze întregul tabel Detaliu, selectând secvențial rânduri din acesta și verificând condiția de selecție pentru fiecare dintre ele. Pentru tabelele mari, finalizarea unei astfel de interogări va dura foarte mult.

Dacă a fost creat anterior un index pe coloana Număr detaliu tabel, atunci timpul de căutare în tabel va fi redus la minimum. Indexul va conține valorile din coloana Număr și un link către rândul cu acea valoare din tabelul de părți. La executarea unei interogări, DBMS va găsi mai întâi valoarea „T145-A8” în index (și va face acest lucru rapid, deoarece indexul este ordonat și rândurile sale sunt mici), apoi determină locația fizică a rândului căutat. prin referință în index.

Un index este creat cu instrucțiunea SQL CREATE INDEX. În acest exemplu, operatorul

CREATE UNIQUE INDEX Indexul piesei

ON Detaliu (Număr);

va crea un index numit „Index de piese” în coloana Număr a tabelului de piese.

Pentru un utilizator DBMS, nu sunt de interes declarații individuale ale limbajului SQL, ci o secvență a acestora, concepute ca un întreg și având sens din punctul său de vedere. Fiecare astfel de secvență de instrucțiuni SQL implementează o anumită acțiune în baza de date. Se desfășoară în mai multe etape, fiecare efectuând unele operații asupra tabelelor bazei de date. Deci, în sistemul bancar, transferul unei anumite sume dintr-un cont pe termen scurt într-unul pe termen lung se realizează în mai multe operațiuni. Printre acestea - retragerea sumei dintr-un cont pe termen scurt, creditarea într-un cont pe termen lung.

Dacă apare un eșec în procesul de efectuare a acestei acțiuni, de exemplu, atunci când prima operațiune este finalizată, dar a doua nu este, atunci banii vor fi pierduți. Prin urmare, orice acțiune asupra bazei de date trebuie efectuată în întregime sau deloc. Această acțiune se numește tranzacție.

Procesarea tranzacțiilor se bazează pe jurnal, care este utilizat pentru a anula tranzacțiile și a restabili starea bazei de date. Mai multe detalii despre tranzacții vor fi discutate în Sec.Procesarea tranzacției .

Încheind discuția despre limbajul SQL, subliniem încă o dată că este un limbaj de interogare. Nu puteți scrie niciun program de aplicație complex care funcționează cu o bază de date pe el. În acest scop, SGBD-urile moderne folosesc limbajul de generația a patra (Forth Generation Language - 4GL), care are atât principalele caracteristici ale limbajelor procedurale de a treia generație (3GL), cum ar fi C, Pascal, Ada, cât și capacitatea de a încorpora SQL. instrucțiunile din textul programului, precum și controalele interfeței cu utilizatorul (meniuri, formulare, introducere de utilizator etc.). Astăzi, 4GL este unul dintre standardele de facto pentru instrumentele de dezvoltare a aplicațiilor de baze de date.

Proprietățile tabelului relațional

CONCEPTE DE BAZĂ DE DATE

Baza de date (DB)– un set numit de date care reflectă starea obiectelor și relațiile acestora în domeniul de date vizat.

Exemple de zone subiect de date: un depozit, un magazin, o universitate, un spital, un proces educațional etc. Este domeniul de subiect care determină setul de date care ar trebui stocat în baza de date.

Sistem de management al bazelor de date (DBMS)- un set de limbaje și instrumente software concepute pentru a crea, întreține și partaja o bază de date cu mulți utilizatori.

Alte definiții legate de baza de date și SGBD.

Banca de date (BnD)- acesta este un sistem de date special organizat - baze de date, software, instrumente tehnice, lingvistice, organizatorice și metodologice menite să asigure acumularea centralizată și utilizarea multifuncțională a datelor.

Sistem informatic (IS)- un set interconectat de mijloace, metode și personal utilizate pentru stocarea, prelucrarea și emiterea de informații în interesul îndeplinirii sarcinii.

Baza aproape a oricărui sistem informațional este o bază de date.

Server- un computer sau program care deține o anumită resursă de informații și este conceput pentru a procesa solicitări de la programele client.

Principalele modele de date care definesc structura bazei de date sunt:

model ierarhic;

model de rețea;

model relațional.

MODEL DE DATE RELAȚIONALE

Baza teoretică a acestui model este teoria relațiilor, iar structura principală a datelor este relația. De aceea a fost numit modelul relaționale ( din cuvântul englezesc relație- relație) .

Atitudine este un set de elemente numite tupluri. O reprezentare vizuală a unei relații este tabel bidimensional . Semnificațiile semantice ale unor elemente ale modelului relațional sunt date în tabelul următor.

Numărul copleșitor de baze de date create și utilizate sunt relaționale. Crearea și dezvoltarea lor este legată de munca științifică a celebrului matematician american, specialist în domeniul sistemelor de baze de date E. Codd.

Proprietățile tabelului relațional

Modelul relațional este axat pe organizarea datelor sub formă de tabele bidimensionale. Fiecare tabel relațional este o matrice bidimensională și are următoarele proprietăți:

Fiecare element al tabelului este un element de date;

· toate coloanele (câmpurile, atributele) din tabel sunt omogene, i.e. toate elementele dintr-o coloană au același tip (numeric, caracter etc.) și lungime;

· fiecare coloană are un nume unic;

· nu există rânduri identice (înregistrări, tupluri) în tabel;

Ordinea rândurilor și coloanelor poate fi arbitrară.

Fiecare câmp conține o caracteristică a obiectului domeniului subiect. Înregistrarea colectează informații despre o singură instanță a acestui obiect.

Chei

Este apelat un câmp, a cărui valoare identifică în mod unic înregistrarea corespunzătoare cheie simplă (câmp cheie). Se apelează o cheie formată din mai multe câmpuri cheie compusă . În DBMS Accesul ca cheie poate fi folosit Tejghea, care crește automat cu unu atunci când o nouă înregistrare este introdusă în tabel. O astfel de cheie se numește artificială. Nu are legătură semantică cu niciun câmp al tabelului. Din acest motiv, permite reintroducerea acelorași înregistrări. Dar cu ea, este ușor să stabilești o relație între tabele. Principala proprietate a cheii este unicitatea, originalitatea.

Tipuri de relații între tabele

Structura bazei de date este determinată de structura tabelelor și de relațiile dintre acestea.

Există trei tipuri de relații între tabele:

unu la unu (1:1)– o înregistrare din tabelul principal corespunde unei înregistrări din tabelul subordonat,

unu-la-mai multe (1:M)– o înregistrare din tabelul principal corespunde mai multor înregistrări din tabelul subordonat,

multi-la-multi (M:M)– Înregistrările multiple din tabelul principal corespund înregistrărilor multiple din tabelul subordonat. Sau o înregistrare din primul tabel poate corespunde mai multor înregistrări din al doilea tabel. Și o înregistrare din al doilea tabel poate corespunde mai multor înregistrări din primul tabel.

Crearea de relații între tabele

Relațiile dintre tabele sunt stabilite folosind chei. Un tabel principal este un tabel a cărui cheie primară este folosită pentru a stabili o relație cu un alt tabel, care în acest caz se numește copil.

Pentru a lega două tabele relaționale, trebuie să introduceți cheia tabelului principal în tabelul copil. Numele cheii poate fi diferit, dar este obligatoriu tipul și dimensiunea cheii secundare trebuie să fie aceleași cu cheia primară în subtabel. Pentru comoditate, este mai bine să lăsați denumirea cheii secundare la fel ca și cea primară. Cu toate acestea, dacă cheia este selectată Tejghea, atunci cheia secundară trebuie să fie de tip Numeric - întreg lung(dar nu Tejghea!). O cheie secundară este fie un câmp obișnuit, fie o parte a unei chei primare dintr-un subtabel.

Pentru a implementa o relație multi-la-mulți, Access DBMS vă solicită să creați un tabel de relații și să introduceți în el ca chei secundare cheile primare ale celor două tabele care ar trebui să aibă o astfel de relație (M:M). După aceea, se stabilește o relație 1:M între fiecare dintre cele două tabele cu tabelul de legături. O relație M:M este astfel implementată între două tabele. Dacă creați tabele Cărți și Autori în baza de date „Biblioteca mea”, atunci relația dintre ele va fi de forma M:M, deoarece o înregistrare din tabelul Cărți (detalii ale unei cărți) poate corespunde mai multor înregistrări din Autori. masa. Pentru că o carte poate avea mai mulți autori. La rândul său, o intrare din tabelul Autori poate corespunde mai multor intrări din tabelul Cărți, deoarece un autor poate scrie mai multe cărți. Tabelul de legături poate fi numit BooksAuthors, care va include cheile ambelor tabele - Cărți și Autori. Alte câmpuri pot fi incluse în tabelul de linkuri, dacă este necesar.

Dintre bazele de date relaționale, ar trebui făcută o distincție între bazele de date pentru întreprinderi și cele desktop.

Dintre SGBD-urile relaționale corporative, cele mai comune sunt: ​​Oracle, IBM DB2, Sybase, Microsoft SQL Server, Informix. Dintre SGBD-ul postrelațional, este cunoscut SGBD InterSystems Cache.

În prezent, sunt cele mai cunoscute următoarele baze de date desktop: Microsoft Access, Paradox (de la Borland), FoxPro (Microsoft), dBase IV (IBM), Clarion.

Aceste DBMS ocupă mai mult de 90% din întreaga piață DBMS.

Următoarea secțiune oferă o scurtă descriere a SGBD-ului Microsoft Access.

Model de date - un set de structuri de date și operațiuni pentru prelucrarea lor. Folosind modelul de date, puteți vizualiza structura obiectelor și relațiile stabilite între ele. Terminologia modelelor de date este caracterizată de conceptele de „element de date” și „reguli obligatorii”. Elementul de date descrie orice set de date, iar regulile de legare definesc algoritmii pentru relația elementelor de date. Până în prezent, au fost dezvoltate multe modele de date diferite, dar trei sunt utilizate în practică. Alocați modele de date ierarhice, de rețea și relaționale. În consecință, ei vorbesc despre SGBD ierarhic, de rețea și relațional.

О Model ierarhic de date. Datele organizate ierarhic sunt foarte frecvente în viața de zi cu zi. De exemplu, structura unei instituții de învățământ superior este o structură ierarhică cu mai multe niveluri. O bază de date ierarhică (de tip arbore) constă dintr-un set ordonat de elemente. În acest model, elementele inițiale dau naștere la alte elemente, iar aceste elemente la rândul lor dau naștere la următoarele elemente. Fiecare element copil are un singur element copil.

Structurile organizaționale, listele de materiale, cuprinsul în cărți, planurile de proiect și multe alte seturi de date pot fi reprezentate într-o manieră ierarhică. Integritatea referenţială între strămoşi şi descendenţi este menţinută automat. Regula de bază: niciun copil nu poate exista fără părintele său.

Principalul dezavantaj al acestui model este necesitatea de a utiliza ierarhia care a stat la baza bazei de date în timpul proiectării. Nevoia de reorganizare constantă a datelor (și adesea imposibilitatea acestei reorganizări) a condus la crearea unui model mai general - unul de rețea.

Despre modelul de date de rețea. Abordarea în rețea a organizării datelor este o extensie a abordării ierarhice. Acest model diferă de cel ierarhic prin faptul că fiecare element copil poate avea mai mult de un element părinte. ■

Deoarece baza de date a rețelei poate reprezenta în mod direct tot felul de relații inerente datelor organizației corespunzătoare, aceste date pot fi navigate, explorate și interogate în tot felul de moduri, adică modelul de rețea nu este conectat printr-o singură ierarhie. Cu toate acestea, pentru a efectua o interogare la o bază de date de rețea, este necesar să se aprofundeze în structura acesteia (pentru a avea la îndemână schema acestei baze de date) și să se dezvolte un mecanism de navigare prin baza de date, ceea ce este un dezavantaj semnificativ al acestei baze de date. modelul bazei de date.

Despre modelul de date relaționale. Ideea de bază din spatele modelului de date relaționale este de a reprezenta orice set de date ca un tabel bidimensional. Cel mai simplu, modelul relațional descrie un singur tabel bidimensional, dar cel mai adesea modelul relațional descrie structura și relațiile dintre mai multe tabele diferite.

Model de date relaționale

Deci, scopul sistemului informatic este de a procesa date despre obiecte lumea reală, ținând cont conexiuniîntre obiecte. În teoria bazelor de date, datele sunt adesea numite atribute și obiecte - entitati. Obiectul, atributul și legătura sunt conceptele fundamentale ale I.S.

Un obiect(sau esența) este ceva care există și distins, adică un obiect poate fi numit acel „ceva” pentru care există un nume și o modalitate de a distinge un obiect similar de altul. De exemplu, fiecare școală este un obiect. Obiectele sunt, de asemenea, o persoană, o clasă la școală, o firmă, un aliaj, un compus chimic etc. Obiectele pot fi nu numai obiecte materiale, ci și concepte mai abstracte care reflectă lumea reală. De exemplu, evenimente, regiuni, opere de artă; cărți (nu ca produse tipărite, ci ca lucrări), spectacole de teatru, filme; norme juridice, teorii filozofice etc.

Atribut(sau dat)- acesta este un indicator care caracterizează un anumit obiect și ia o anumită valoare numerică, textuală sau de altă natură pentru o anumită instanță a obiectului. Sistemul informațional funcționează cu seturi de obiecte proiectate în raport cu un anumit domeniu, utilizând specific valorile atributelor(date) anumitor obiecte. De exemplu, să luăm cursuri într-o școală ca un set de obiecte. Numărul de elevi dintr-o clasă este un dat care ia o valoare numerică (o clasă are 28, alta are 32). Numele clasei este un datum care ia o valoare text (unul are 10A, altul are 9B și așa mai departe).

Dezvoltarea bazelor de date relaționale a început la sfârșitul anilor 60, când au apărut primele lucrări care discutau; posibilitatea utilizării în proiectarea bazelor de date a modalităților uzuale și naturale de prezentare a datelor – așa-numitele modele datalogice tabulare.

Fondatorul teoriei bazelor de date relaționale este un angajat al IBM, Dr. E. Codd, care a publicat un articol pe 6 (iunie 1970) Un model relațional de date pentru bănci de date mari partajate(Model de date relaționale pentru bănci de date colective mari). În acest articol, termenul „model de date relaționale” a fost folosit pentru prima dată. Teoria bazelor de date relaționale, dezvoltată în anii 70 în SUA de Dr. E. Codd, are un puternic fundament matematic care descrie regulile pentru organizarea eficientă a datelor. Baza teoretică dezvoltată de E. Codd a devenit baza pentru dezvoltarea teoriei proiectării bazelor de date.

E. Codd, fiind matematician de educație, a sugerat utilizarea aparatului teoriei mulțimilor (unire, intersecție, diferență, produs cartezian) pentru prelucrarea datelor. El a demonstrat că orice set de date poate fi reprezentat ca un tip special de tabele bidimensionale, cunoscute în matematică ca „relații”.

relaționale se consideră o bază de date în care toate datele sunt prezentate utilizatorului sub formă de tabele dreptunghiulare cu valorile datelor, iar toate operațiunile din baza de date sunt reduse la manipulări cu tabele.

Tabelul este format din coloane (câmpuri)Și linii (înregistrări); are un nume unic în baza de date. masa reflectă Tipul obiectului lumea reala (entitate),și fiecare dintre ei șirul este un obiect specific. Fiecare coloană a tabelului este un set de valori ale unui anumit atribut al unui obiect. Valorile sunt selectate din setul tuturor valorilor posibile pentru un atribut al unui obiect, care este numit domeniu.

În forma sa cea mai generală, un domeniu este definit prin specificarea unui tip de date de bază căruia îi aparțin elementele domeniului și o expresie logică arbitrară aplicată elementelor de date. Dacă o condiție booleană a unui element de date este evaluată ca adevărată, atunci acel element aparține domeniului. În cel mai simplu caz, un domeniu este definit ca un set potențial valid de valori de același tip. De exemplu, colecția de date de naștere ale tuturor angajaților constituie „domeniul data nașterii”, iar numele tuturor angajaților constituie „domeniul nume de angajat”. Domeniul data nașterii are un tip de date care vă permite să stocați informații despre momente în timp, iar domeniul numelui angajatului trebuie să aibă un tip de date caracter.

Dacă două valori provin din același domeniu, atunci puteți compara cele două valori. De exemplu, dacă două valori provin dintr-un domeniu al datei de naștere, le puteți compara pentru a determina care angajat este mai în vârstă. Dacă valorile sunt luate din domenii diferite, atunci compararea lor nu este permisă, deoarece, după toate probabilitățile, nu are sens. De exemplu, comparând numele și data nașterii unui angajat, nu va rezulta nimic cert.

Fiecare coloană (câmp) are un nume, care este de obicei scris în partea de sus a tabelului. Când proiectați tabele într-un anumit SGBD, este posibil să selectați pentru fiecare câmp acesta tip, adică definiți un set de reguli pentru afișarea acestuia, precum și determinați operațiunile care pot fi efectuate asupra datelor stocate în acest câmp. Seturile de tipuri pot diferi pentru diferite SGBD.

Numele câmpului trebuie să fie unic într-un tabel, dar tabele diferite pot avea câmpuri cu același nume. Orice tabel trebuie să aibă cel puțin un câmp; Câmpurile sunt amplasate în tabel în funcție de ordinea în care apar numele lor la crearea tabelului. Spre deosebire de câmpuri, șirurile de caractere nu au nume; ordinea lor în tabel nu este definită, iar numărul nu este limitat în mod logic.

Deoarece rândurile din tabel nu sunt ordonate, este imposibil să selectați un rând după poziția sa - printre ele nu există „primul”, „al doilea”, „ultimul”. Orice tabel are una sau mai multe coloane, valorile în care identifică în mod unic fiecare dintre rândurile sale. O astfel de coloană (sau combinație de coloane) este numită cheia principala. Adesea este introdus un câmp artificial pentru a numerota înregistrările dintr-un tabel. Un astfel de câmp, de exemplu, poate fi ordinalul său, ceea ce poate asigura unicitatea fiecărei înregistrări din tabel. Cheia trebuie să aibă următoarele proprietăți.

Unicitatea. La un moment dat, niciun tuplu distinct al unei relații nu are aceeași valoare pentru combinația de atribute incluse în cheie. Adică nu pot exista două rânduri în tabel care să aibă același număr de identificare sau număr de pașaport.

Minimitatea. Niciunul dintre atributele incluse în cheie nu poate fi exclus din cheie fără a încălca unicitatea. Aceasta înseamnă că nu ar trebui să creați o cheie care să includă atât numărul pașaportului, cât și numărul de identificare. Este suficient să folosiți oricare dintre aceste atribute pentru a identifica unic un tuplu. De asemenea, nu ar trebui să includeți un atribut neunic în cheie, adică este interzisă utilizarea unei combinații între un număr de identificare și numele unui angajat ca cheie. Dacă excludeți numele angajatului din cheie, puteți identifica în mod unic fiecare rând.

Fiecare relație are cel puțin o cheie posibilă, deoarece totalitatea tuturor atributelor sale satisface condiția de unicitate - aceasta rezultă din însăși definiția relației.

Una dintre cheile posibile este aleasă aleatoriu ca cheie primară. Cheile posibile rămase, dacă există, sunt luate ca taste alternative. De exemplu, dacă selectați un număr de identificare ca cheie primară, atunci numărul pașaportului va fi o cheie alternativă.

Relația dintre tabele este un element esențial al modelului de date relaționale. Este suportat chei externe.

Atunci când se descrie un model de bază de date relațională pentru același concept, sunt adesea folosiți termeni diferiți, în funcție de nivelul de descriere (teorie sau practică) și de sistem (Access, SQL Server, dBase). În tabel. 2.3 oferă un rezumat al termenilor utilizați.

Tabelul 2.3. Terminologia bazei de date

Teoria bazelor de date____________ Baze de date relaționale_________ SQL Server __________

Tabelul de relații

Rând de înregistrare tuplu

Atribut (Atribut) Câmp (Câmp) _______________ Coloană sau coloană (Coloană)

Baze de date relaționale

Baza de date relațională este o colecție de relații care conține toate informațiile care ar trebui stocate în baza de date. Adică baza de date reprezintă un set de tabele necesare pentru a stoca toate datele. Tabelele dintr-o bază de date relațională sunt legate logic.Cerințele de proiectare pentru o bază de date relațională pot fi rezumate în câteva reguli.

A Fiecare tabel are un nume unic în baza de date și este format din rânduri de același tip.

A Fiecare tabel constă dintr-un număr fix de coloane și valori. Mai multe valori nu pot fi stocate într-o coloană a unui rând. De exemplu, dacă există un tabel cu informații despre autor, data publicării, tiraj etc., atunci coloana cu numele autorului nu poate stoca mai mult de un nume de familie. Dacă cartea este scrisă de doi sau mai mulți autori, vor trebui folosite tabele suplimentare.

R În niciun moment nu vor exista două rânduri în tabel care să se dubleze reciproc. Rândurile trebuie să difere cu cel puțin o valoare pentru a putea identifica în mod unic orice rând din tabel.

A Fiecare coloană primește un nume unic în tabel; un anumit tip de date este setat pentru acesta, astfel încât valori omogene să fie plasate în această coloană (date, nume de familie, numere de telefon, sume de bani etc.).

A Conținutul complet de informații al unei baze de date este reprezentat ca valori explicite ale datelor în sine și aceasta este singura metodă de reprezentare. De exemplu, relația dintre tabele se bazează pe datele stocate în coloanele corespunzătoare și nu pe baza oricăror indicatori care definesc în mod artificial relațiile.

A Când procesați date, puteți accesa liber orice rând sau orice coloană a tabelului. Valorile stocate în tabel nu impun nicio restricție cu privire la ordinea în care datele sunt accesate. Descrierea coloanelor

Baze de date relaționale vă permit să stocați informații în mai multe tabele „plate” (bidimensionale), legate între ele prin câmpuri de date partajate numite chei. Bazele de date relaționale oferă acces mai ușor la rapoartele online (de obicei prin SQL) și oferă o fiabilitate și integritate sporită a datelor prin eliminarea informațiilor redundante.

Toată lumea știe ce este o bază de date simplă: directoarele telefonice, cataloagele de produse și dicționarele sunt toate baze de date. Ele pot fi structurate sau organizate în alt mod: ca fișiere plate, ca structuri ierarhice sau de rețea sau ca tabele relaționale. Majoritatea organizațiilor folosesc baze de date relaționale pentru a stoca informații.

O bază de date este un set de tabele format din coloane și rânduri, similar unei foi de calcul. Fiecare linie conține o intrare; fiecare coloană conține toate cazurile unei anumite date pe toate rândurile. De exemplu, un agendă telefonică obișnuită constă din coloane care conțin numere de telefon, numele abonaților și adresele abonaților. Fiecare linie conține un număr, un nume și o adresă. Acest formular simplu se numește fișier plat datorită naturii sale bidimensionale și pentru că toate datele sunt stocate într-un singur fișier.

În mod ideal, fiecare bază de date are cel puțin o coloană cu un identificator unic sau cheie. Luați în considerare agenda telefonică. Poate avea mai multe intrări cu apelantul John Smith, dar niciunul dintre numerele de telefon nu este repetat. Numărul de telefon servește drept cheie.

De fapt, totul nu este atât de simplu. Două sau mai multe persoane care utilizează același număr de telefon pot fi listate separat în agenda telefonică, astfel încât numărul de telefon apare în două sau mai multe locuri, astfel încât există mai multe șiruri cu chei care nu sunt unice.

Datele creează probleme

În cele mai simple baze de date, fiecare înregistrare ocupă un rând, cu alte cuvinte, compania de telefonie trebuie să aibă o coloană separată pentru fiecare informație contabilă. Adică unul - pentru al doilea abonat al telefonului „împerecheat”, încă unul - pentru al treilea etc., în funcție de câți abonați suplimentari sunt necesari.

Aceasta înseamnă că fiecare înregistrare din baza de date trebuie să aibă toate aceste coloane suplimentare, chiar dacă nu sunt folosite în altă parte. Aceasta înseamnă și că baza de date trebuie reorganizată ori de câte ori o companie oferă un nou serviciu. Este introdus serviciul de tonuri de atingere - iar structura de bază se modifică pe măsură ce se adaugă o nouă coloană. Se introduce suport pentru identificarea apelantului, apel în așteptare etc. - iar baza de date este reconstruită din nou și din nou.

În anii 1960, doar cele mai mari companii își puteau permite să achiziționeze computere pentru a-și gestiona datele. Mai mult, bazele de date construite cu modele de date statice și limbaje de programare procedurală, cum ar fi Cobol, pot fi prea costisitoare de întreținut și nu întotdeauna fiabile. Limbile procedurale definesc succesiunea de evenimente prin care trebuie să treacă un computer pentru a finaliza o sarcină. Programarea unor astfel de secvențe a fost dificilă, mai ales dacă era necesară modificarea structurii bazei de date sau crearea unui nou tip de raport.

Conexiuni puternice

Edgar Codd, de la IBM San Jose Research Laboratory, a creat și descris în esență conceptul de baze de date relaționale în lucrarea sa fundamentală A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, iunie 1970).

Codd a propus un model care permite dezvoltatorilor să-și parționeze bazele de date în tabele separate, dar înrudite, ceea ce îmbunătățește performanța, păstrând în același timp vizualizarea externă la fel ca baza de date originală. De atunci, Codd a fost considerat părintele fondator al industriei bazelor de date relaționale.

Acest model funcționează în felul următor. Compania de telefonie poate crea un tabel principal folosind numărul de telefon ca cheie primară și îl poate stoca împreună cu alte informații de bază despre clienți. O companie poate defini un tabel separat cu coloane pentru această cheie primară și pentru servicii suplimentare, cum ar fi suport pentru identificarea apelantului și apel în așteptare. Ea poate crea, de asemenea, un alt tabel pentru a controla facturile de apel, unde fiecare intrare constă dintr-un număr de telefon și date de taxare a apelurilor.

Utilizatorii finali pot obține cu ușurință informațiile pe care le doresc, în modul în care au nevoie, deși datele sunt stocate în tabele diferite. Prin urmare, un reprezentant al serviciului clienți al unei companii de telefonie poate afișa informații despre facturile abonatului, precum și starea serviciilor speciale, sau când a fost primită ultima plată pe același ecran.

Codd a formulat 12 reguli pentru bazele de date relaționale, dintre care majoritatea se referă la integritatea și actualizarea datelor, precum și accesul la acestea. Primele două sunt suficient de clare chiar și pentru utilizatorii netehnici.

Regula 1, regula informației, specifică că toate informațiile dintr-o bază de date relațională sunt reprezentate ca un set de valori stocate în tabele.

Regula 2, Regula de garantare a accesului, specifică că fiecare element de date dintr-o bază de date relațională poate fi accesat folosind numele tabelului, cheia primară și numele coloanei. Cu alte cuvinte, toate datele sunt stocate în tabele și, dacă cunoașteți numele tabelului, cheia primară și coloana în care se află elementul de date necesar, acestea pot fi oricând preluate.

Esența muncii lui Codd a fost că s-a propus să se utilizeze limbaje de programare declarative, mai degrabă decât procedurale, cu baze de date relaționale. Limbajele declarative, cum ar fi Structured Query Language (SQL), permit utilizatorilor să spună în esență computerului: „Vreau următorii biți de date din toate înregistrările care îndeplinesc un anumit set de criterii”. Computerul însuși va „înțelege” ce pași trebuie luați pentru a obține aceste informații din baza de date.

Pentru a lucra cu un număr mare de baze de date utilizate în mod activ, sunt utilizate sisteme software de gestionare a bazelor de date relaționale create de producători de renume precum Oracle, Sybase, IBM, Informix și Microsoft.

Deși majoritatea implementărilor SQL pot fi numite interoperabile doar într-o anumită măsură, acest mecanism, aprobat ca standard internațional, vă permite să creați sisteme complexe, care se bazează pe baze de date. O interfață programabilă între site-urile Web și bazele de date relaționale permite utilizatorilor finali să adauge noi înregistrări și să actualizeze cele existente, precum și să creeze rapoarte pentru o varietate de servicii, cum ar fi comerțul online și accesul la cataloagele bibliotecii online.

model relațional

O bază de date relațională utilizează un set de tabele care sunt legate între ele printr-o cheie specifică (în acest caz, câmpul PhoneNumber)

Baza de date (DB) - acesta este un set numit de date structurate legate de un domeniu specific și destinat stocării, acumulării și procesării utilizând un computer.

Baza de date relațională (RDB) este un set de relații ale căror nume se potrivesc cu numele schemei de relații din schema bazei de date.

Noțiuni de bază baze de date relaționale:

· Tip de date– tipul de valoare al unei anumite coloane.

· Domeniu(domeniul) este setul tuturor valorilor de atribute valide.

· Atribut(atribut) – antet de coloană de tabel care caracterizează proprietatea numită a obiectului, de exemplu, numele de familie al studentului, data comenzii, sexul angajatului etc.

· tuplu– rând de tabel, care este un set de valori ale atributelor legate logic.

· Atitudine(relație) - un tabel care reflectă informații despre obiecte din lumea reală, cum ar fi studenți, ordine, angajați, rezidenți etc.

· cheia principala(cheie primară) – un câmp (sau un set de câmpuri) al unui tabel care identifică în mod unic fiecare dintre înregistrările sale.

· Cheie alternativă este un câmp (sau un set de câmpuri) care nu se potrivește cu cheia primară și identifică în mod unic o instanță a unei înregistrări.

· Cheie externă este un câmp (sau un set de câmpuri) ale cărui valori se potrivesc cu valorile existente ale cheii primare a altui tabel. Când două tabele sunt legate, cheia primară a primului tabel este legată de cheia externă a celui de-al doilea tabel.

· Model de date relaționale (RMD)- organizarea datelor sub forma de tabele bidimensionale.

Fiecare tabel relațional trebuie să aibă următoarele proprietăți:

1. Fiecare intrare în tabel este unică, adică setul de valori din câmpuri nu se repetă.

2. Fiecare valoare, scrisă la intersecția unui rând și a unei coloane, este atomică (inseparabilă).

3. Valorile fiecărui câmp trebuie să fie de același tip.

4. Fiecare câmp are un nume unic.

5. Ordinea înregistrărilor nu este semnificativă.

Principalele elemente ale bazei de date:

Camp- o unitate elementară a organizării logice a datelor. Următoarele caracteristici sunt utilizate pentru a descrie domeniul:

nume, de exemplu, Prenume, Prenume, Patronimic, Data nașterii;

tastați, de exemplu, șir, caracter, numeric, dată;

lungime, de exemplu, în octeți;

· Precizie pentru datele numerice, cum ar fi două zecimale pentru afișarea părții fracționale a unui număr.

Înregistrare- un set de valori ale câmpurilor legate logic.

Index- un mijloc de accelerare a operațiunii de căutare a înregistrărilor, care este folosit pentru a stabili relații între tabele. Un tabel pentru care se folosește un index se numește tabel indexat. Când lucrați cu indici, este necesar să acordați atenție organizării indicilor, care este baza clasificării. Un index simplu este reprezentat printr-un singur câmp sau o expresie booleană care evaluează la un singur câmp. Un index compus este reprezentat de mai multe câmpuri cu posibilitatea de a utiliza diverse funcții. Indicii de tabel sunt stocați într-un fișier index.


Integritatea datelor- acesta este un mijloc de protejare a datelor pe câmpurile de legătură care vă permite să mențineți tabelele într-o stare consistentă (consecventă) (adică nu permite existența înregistrărilor în tabelul subordonat care nu au înregistrări corespunzătoare în tabelul părinte ).

Anchetă- o întrebare formulată la unul sau mai multe tabele interdependente care conțin criterii de eșantionare a datelor. Solicitarea se face folosind limbajul de interogare structurat SQL (Structured Query Language). Ca urmare a selectării datelor dintr-unul sau mai multe tabele, se poate obține un set de înregistrări, numit vizualizare.

Reprezentarea datelor– o interogare denumită stocată în baza de date pentru preluarea datelor (din unul sau mai multe tabele).

O vizualizare este în esență un tabel temporar care este generat ca rezultat al unei interogări. Interogarea în sine poate fi trimisă într-un fișier separat, raport, tabel temporar, tabel pe disc etc.

Raport- o componentă a sistemului, al cărei scop principal este descrierea și tipărirea documentelor pe baza informațiilor din baza de date.

Caracteristici generale ale lucrului cu RDB:

Cea mai comună interpretare a modelului de date relaționale pare să fie cea a lui Date, care o reproduce (cu diverse rafinamente) în aproape toate cărțile sale. Potrivit Data, modelul relațional constă din trei părți care descriu diferite aspecte ale abordării relaționale: partea structurală, partea de manipulare și partea integrală.

În partea structurală a modelului, se stabilește că singura structură de date utilizată în bazele de date relaționale este o relație n-ară normalizată.

În partea de manipulare a modelului, sunt afirmate două mecanisme fundamentale pentru manipularea bazelor de date relaționale - algebra relațională și calculul relațional. Primul mecanism se bazează în principal pe teoria clasică a mulțimilor (cu unele rafinamente), iar al doilea se bazează pe aparatul logic clasic al calculului predicatului de ordinul întâi. Rețineți că funcția principală a părții de manipulare a modelului relațional este de a oferi o măsură a relaționalității oricărui limbaj de bază de date relaționale: un limbaj se numește relațional dacă nu are mai puțină expresivitate și putere decât algebra relațională sau calculul relațional.


28. LIMBAJE ALGORITMICE. TRADUCĂTORI (INTERPREPTORI ȘI COMPILATORI). BAZĂ AL LIMBAJULUI ALGORITMIC. STRUCTURA PROGRAMULUI. IDENTIFICATORI. VARIABILE. OPERATORI. PRELUCRAREA MATRICE MONIDIMENSIONALE SI BIDIMENSIONALE. FUNCȚIILE UTILIZATORULUI. SUBPROGRAME. LUCRĂȚI CU FIȘIERE DE DATE.

Limbaj de nivel înalt- un limbaj de programare ale cărui concepte și structură sunt convenabile pentru percepția umană.

Limbajul algoritmic(Limbajul algoritmic) - un limbaj de programare - un limbaj artificial (formal) conceput pentru a scrie algoritmi. Un limbaj de programare este definit prin descrierea lui și este implementat ca un program special: un compilator sau un interpret. Exemple de limbaje algoritmice sunt Borland Pascal, C++, Basic etc.

Concepte de bază ale limbajului algoritmic:

Compoziția limbajului:

Limbajul vorbit obișnuit este format din patru elemente principale: simboluri, cuvinte, fraze și propoziții. Limbajul algoritmic conține elemente similare, numai cuvintele se numesc construcții elementare, fraze - expresii, propoziții - operatori.

Simboluri, constructele elementare, expresiile și operatorii constituie o structură ierarhică, deoarece constructele elementare sunt formate dintr-o succesiune de caractere.

Expresii este o succesiune de construcții și simboluri elementare,

Operator- succesiune de expresii, construcții elementare și simboluri.

Descrierea limbii:

Descrierea simbolurilor constă în enumerarea simbolurilor permise ale limbajului. Descrierea structurilor elementare este înțeleasă ca reguli de formare a acestora. Descrierea expresiilor este regulile pentru formarea oricăror expresii care au sens într-o limbă dată. Descrierea operatorilor constă în luarea în considerare a tuturor tipurilor de operatori permise în limbă. Descrierea fiecărui element de limbaj este dată de SINTAXA și SEMANTICA acestuia.

Sintactic definiţiile stabilesc reguli pentru construirea elementelor de limbaj.

Semantică definește semnificația și regulile de utilizare a acelor elemente ale limbajului pentru care au fost date definiții sintactice.

Simboluri ale limbii sunt semnele indivizibile de bază în termenii cărora sunt scrise toate textele din limbă.

Construcții elementare sunt cele mai mici unități ale unei limbi care au un sens independent. Ele sunt formate din simbolurile de bază ale limbii.

Expresieîntr-un limbaj algoritmic, constă din construcții și simboluri elementare; stabilește o regulă pentru calcularea unei anumite valori.

Operator specifică o descriere completă a unei acțiuni care trebuie efectuată. Un grup de operatori poate fi necesar pentru a descrie o acțiune complexă.

În acest caz, operatorii sunt combinați în Operator compus sau Bloc. Acțiuni, date de operatori, sunt executate pe date. Propozițiile dintr-un limbaj algoritmic care oferă informații despre tipurile de date se numesc declarații sau declarații neexecutabile. Setul de descrieri și operatori uniți printr-un singur algoritm formează un program într-un limbaj algoritmic. În procesul de studiere a unui limbaj algoritmic, este necesar să se distingă limbajul algoritmic de limbajul care este folosit pentru a descrie limbajul algoritmic studiat. De obicei, limba studiată se numește pur și simplu limba, iar limba în care este dată descrierea limbii studiate - Metalimbaj.

Traducători - (traducător englez - traducător) este un program de traducere. Convertește un program scris într-una dintre limbile de nivel înalt într-un program format din instrucțiuni de mașină.

Un program scris în orice limbaj algoritmic de nivel înalt nu poate fi executat direct pe un computer. Computerul înțelege doar limba instrucțiunilor mașinii. Prin urmare, un program într-un limbaj algoritmic trebuie tradus (tradus) în limbajul de comandă al unui anumit computer. O astfel de traducere este realizată automat prin programe speciale de traducător create pentru fiecare limbă algoritmică și pentru fiecare tip de computer.

Există două metode principale de transmitere - compilare și interpretare.

1.Compilare: compilator(Compilatorul englez - compilator, colector) citește întregul program, îl traduce și creează o versiune completă a programului în limbajul mașinii, care este apoi executată.

La compilareîntregul program sursă este imediat convertit într-o secvență de instrucțiuni de mașină. După aceea, programul rezultat este executat de un computer cu datele inițiale disponibile. Avantajul acestei metode este că traducerea se realizează o singură dată, iar execuția (multiple) a programului rezultat poate fi efectuată cu viteză mare. În același timp, programul rezultat poate ocupa mult spațiu în memoria computerului, deoarece un operator de limbă este înlocuit cu sute sau chiar mii de instrucțiuni în timpul traducerii. În plus, depanarea și modificarea programului tradus este foarte dificilă.

2. Interpretare: Interpret(Interpret englez - interpret, interpret) traduce și execută programul linie cu linie.

La interpretări programul original este stocat în memoria computerului aproape neschimbat. Programul interpret decodifică instrucțiunile programului sursă unul câte unul și asigură imediat executarea acestora cu datele disponibile. Programul interpretat ocupă puțin spațiu în memoria computerului, este ușor de depanat și modificat. Pe de altă parte, execuția programului este destul de lentă, deoarece fiecare execuție reinterpretează toate instrucțiunile pe rând.

Programele compilate rulează mai repede, dar programele interpretate sunt mai ușor de reparat și schimbat.

Fiecare limbaj specific este axat fie pe compilare, fie pe interpretare, in functie de scopul pentru care a fost creat. De exemplu, Pascal este de obicei folosit pentru a rezolva probleme destul de complexe în care viteza programelor este importantă. Prin urmare, acest limbaj este de obicei implementat folosind un compilator.

Pe de altă parte, BASIC a fost creat ca un limbaj pentru programatorii începători, pentru care execuția programului linie cu linie are avantaje incontestabile.

Uneori există atât un compilator, cât și un interpret pentru aceeași limbă. În acest caz, puteți utiliza un interpret pentru a dezvolta și testa programul, apoi puteți compila programul depanat pentru a accelera execuția acestuia.

Top articole similare