Contacte

Terminologia și conceptele de bază ale bazelor de date relaționale. Caracteristicile generale ale modelului de date relaționale. Introducere în normalizarea datelor

Suport limbile bazei de date

Limbile speciale sunt folosite pentru a lucra cu baza de date, în general, numite limbi de baze de date.

În primele baze de date au fost 2 limbi:

1. Limba implicită a diagramei de bază SDL.

2. Limba de manipulare a datelor DML.

Primul a servit pentru a determina structura logică a bazei de date, iar a doua conține un set de operatori, care au permis să manipuleze datele, adică să pună în baza de date și să le ștergă. În DBMS moderne, o limbă este menținută, conținând toate instrumentele necesare pentru a lucra cu baza de date. Această limbă vă permite să creați o bază de date și să furnizați unui utilizator o bază de date.

Până în prezent, cea mai comună limbă este

S.inregistrat.

L.anguage.

Această limbă acceptă și creează o schemă de baze de date și permite manipularea acestor date. Acesta conține toate mijloacele necesare pentru a asigura integritatea bazei de date. Aceste restricții de integritate sunt conținute în directoare speciale, ceea ce permite nivelul limbajului pentru a controla întreaga stare de baze de date. Operatorii de limbă SQL special definesc așa-numitele vizualizări baze de date. Vizualizare - ϶ᴛᴏ Cereri stocate în baza de date. Pentru o vizualizare a utilizatorului - ϶ᴛᴏ Tabel cu care puteți limita sau extinde vizibilitatea bazei de date pentru un anumit utilizator de date. Limba SQL conține atât de operații speciali care oferă autorizarea accesului la obiectele bazei de date. Deoarece diferiți utilizatori au diferite puteri de a lucra cu datele, aceste puteri sunt descrise în tabele speciale - directoare care sunt susținute în nivelul limbii.

Principalele concepte ale bazelor de date relaționale sunt: \u200b\u200btipul de date, domeniul, atributul, tuple, cheia primară, atitudinea.

Sub tipul de date din modelul relațional, este obișnuit să înțelegeți același lucru ca și tipul de date din limbile de programare, adică datele sunt simbolice, numerice, șiruri de biți, date numerice speciale (bani), precum și date temporale speciale (timp, interval de timp).

În cea mai generală formă, domeniul este determinat de sarcina unui anumit tip de date de bază la care elementele acestui domeniu includ conceptul de domeniu. Este înțeleasă prin înțelegerea sa, ca o bază de date cu valoare multiplă admisă. Domeniul are o încărcătură semantică. Datele sunt considerate comparabile numai în cazul în care se referă la un domeniu.

Potrivit tuplei, este obișnuit să înțelegeți mai multe perechi de elemente de bază de date care conțin o singură intrare a fiecărui atribut în schema de relație.

Schema de relație - ϶ᴛᴏ Numele multiple de elemente. A B.

cORGET \u003d valoarea numelui atributului, adică o tuplă este un set de valori numite ale tipului specificat.

Raportul este un set de tuple corespunzătoare unor scheme unice, adică o bază de date relațională - ϶ᴛᴏ un set de relații ale căror nume coincid cu numele relațiilor din structura bazei de date.

Curs 4.

· Concepte de bază ale bazelor de date relaționale

Așezați următoarele concepte de bază baze de date relaționale: tipul de date., domeniu, atribut, curte, atitudine, cheia principala.

Pentru a începe, vom arăta semnificația acestor concepte pe exemplu relaţii Angajați care conțin informații despre angajații unor întreprinderi (figura 1).

Smochin. 2.1.

· Tipul de date.

Valorile de date stocate în baza de date relaționalăsunt tipificate, adică este cunoscut pentru tipul fiecărei valori stocate. Concept tipul de date. în modelul de date relațional Corespunde complet conceptului tipul de date. În limbile de programare. Amintiți-vă că definiția tradițională (non-accident vasculare cerebrală) tipul de date. Constă din trei componente principale: determinarea setului de valori de acest tip; Determinarea unui set de operațiuni aplicabile valorilor de tip; Determinarea metodei reprezentării externe a valorilor de tip (literale).

De obicei în modern baze de date relaționale Depozitarea datelor simbolice, numerice (exacte și aproximative), date numerice specializate (cum ar fi "bani"), precum și date speciale "temporale" (data, timpul, intervalul de timp) sunt permise. În plus, sistemele relaționale mențin capacitatea de a determina utilizatorii propriei lor tipul de date. .

În exemplul din fig. 1 Avem de-a face cu datele trei tipuri: Corzi de personaje, numere întregi și "bani".

· Domeniu

Concept domeniu Mai specifice pentru bazele de date, deși există analogii cu subtipurile din unele limbi de programare. În general domeniu determinată prin stabilirea unor elemente de bază tipul de date.la care elemente se referă domeniu, și o expresie logică arbitrară aplicată elementului acestui lucru tipul de date. (restricții de domenii ). Elementul de date este un element domeniu În acest sens și numai dacă calculul acestei expresii logice dă rezultatul adevărat (Pentru valori logice, vom folosi alternativ denumirile adevărat și fals sau adevărat. și fals). Cu fiecare domeniu Numele este asociat, unic printre numele tuturor domenii baza de date adecvată.

Cea mai corectă interpretare intuitivă a conceptului domeniu Este percepția sa a unui potențial permis, subset limitat al valorilor acestui tip. De exemplu, domeniu Numele În exemplul nostru, este definit pe tipul de caractere de bază, dar una dintre valorile sale poate include numai acele linii care pot reprezenta numele (în special, pentru posibilitatea de a reprezenta numele rusești, astfel de linii nu pot începe cu a Semnul moale sau solid și nu poate fi mai lung, de exemplu, 20 de caractere). Dacă unele atribut relaţii Determinată la unii domaze (cum ar fi, de exemplu, în figura 1 atribut SIDS Definit de domaze Numele ) apoi în viitor restricționarea domeniului acționând limitări ale integritățiiimpuse în sensul acestui lucru atributa..

De asemenea, trebuie remarcat povara semantică a conceptului domeniu: Datele sunt considerate comparabile numai atunci când se referă la unul domeniu. În valoarea noastră de exemplu domenii Numere de trecere și departamente Acestea sunt tipul de numere întregi, dar nu sunt comparabile (ar fi lipsite de sens pentru a le permite să compare).

· Elemente ale relației

Concept relaţii este cea mai fundamentală din abordarea relațională a organizării bazelor de date, în măsura în caren. -Aer atitudine este singura structură generică de date stocată în baza de date relațională. Acest lucru se reflectă în numele general abordare - termen relațional (relațional) derivat de la relație. Cu toate acestea, termenul în sine atitudine este extrem de inexactă deoarece, vorbind despre orice date salvate, trebuie să ținem cont un fel Aceste date, valori din aceasta tip și variabileîn care valorile sunt salvate. În consecință, pentru a clarifica termenul atitudine Conceptele stau în evidență relații cu titlu, valorile relației și relație variabilă. În plus, vom avea nevoie de conceptul auxiliar. corget.

Asa de, titlul (sau schema) Relația r (oră. ) numit finite multe perechi comandate de tip unde un. numit numele atributa., darT. denotă numele unor de bază tip sau definite anterior domeniu. Prin definiție necesită toate numele atributes. în relația antetului A fost diferit. În exemplul din fig. 2.1. relație de titlu. Servitori este o mulțime de par{<слу_номер, номера_пропусков>, <слу_имя, имена>, <слу_зарп, размеры_выплат>, <слу_отд_номер, номера_отделов>} .

Dacă toată lumea atributes. relații cu titlu Definită pe diferite domenii, pentru a nu produce nume inutile, utilizare în mod rezonabil pentru numire atributes. Numele sunt relevante domenii (Nu uitați, bineînțeles, că aceasta este doar o metodă convenabilă de numire, care nu elimină diferențele dintre concepte domeniu și atributa.).

Tuplu. tr. corespunzător antet HR. , numite multe triplete de tip ordonat , un astfel de triplet pentru fiecare atributa. înHR. . Al treilea element -v - triplet. trebuie să fie o valoare admisibilă tipul de date. sau domeniu T. . Relație de titlu. Servitori corespund, de exemplu, următoarele cortezzi.: {<слу_номер, номера_пропусков, 2934>, <слу_имя, имена, Иванов>, <слу_зарп, размеры_выплат, 22.000>, <слу_отд_номер, номера_отделов, 310>} , {<слу_номер, номера_пропусков, 2940>, <слу_имя, имена, Кузнецов>, <слу_зарп, размеры_выплат, 35.000>, <слу_отд_номер, номера_отделов, 320>} .

Tel. Br. relaţii R. Numit un set arbitrar tuplu. tr. . Unul dintre cele posibile corpul de relație Servitori Arătând în fig. 2.1. Rețineți că, în cazul general, deoarece demonstrează, în special, Fig. 2.1 și un exemplu al paragrafului anterior poate exista astfel cortezzi. tr. care corespundeHR, dar nu este inclus în Br.

Sens Vr. relaţii R. numită câteva seturiHR și br. . Unul dintre cei permisiuni valorile relațiilor Servitori Arătând în fig. 2.1.

În schimbare baza de date relațională Magazin relaţii, valori care se schimbă în timp. Variabil Varr. numit un container numit care poate conține orice permis valoare Vr. . Firește, atunci când se determină oriceVarr. Este necesar să specificați corespunzător relație de titlu. HR.

Este de remarcat faptul că orice actualizare adoptată în practică bază de date – Introduce. (introduce corget în relație variabilă), Șterge. (Șterge corget din valoarea relaţii relație variabilă) I.Actualizați. (modificare corget Valori relaţii relație variabilă) - Din punct de vedere al modelului este o operație de atribuire relație variabilă un nou sens relaţii. Acest lucru nu înseamnă că operațiunile listate ar trebui să se desfășoare în acest mod în DBMS: Principalul lucru este că rezultatul operațiunilor corespunde acestui model semantică.

Rețineți că, în viitor, în cazurile în care sensul exact al termenului este clar din context, vom folosi termenul atitudine ca în sens valoarea relațieiși în sens relație variabilă.

A-PRIORY, grad sau "aromenie" , relații cu titlu, corgetCorespunzător la acesta antet, relațiile corpului, valorile relației și relație variabilă este puterea relații cu titlu. De exemplu, gradul de relație Servitori egal cu patru, adică este 4-arral ( quaternar.).

Cu definițiile definițiilor se iau în considerare în mod rezonabil schema de bază de date relațională Set de par<имя_VARr, Hr> inclusiv numele și titlurile tuturor relații variabilecare sunt definite în bază de date. Baza de date relațională - Acesta este un set de cupluri (Bineînțeles, fiecare relație variabilă În orice moment conține unii atitudine, în special gol).

Rețineți că în Classic baze de date relaționale După determinarea circuite de baze de date Numai valorile s-ar putea schimba relații variabile. Cu toate acestea, acum în majoritatea implementărilor este permis să se schimbe circuite de baze de date: Definiția noului și schimbarea titlurilor existente relații variabile. Se numeste evoluţiecircuite de baze de date.

· Cheia principala

A-PRIORY, cheia principala relație variabilă Acesta este un subset S. A stabilit atributes. antetul ei în orice valoare cheia principala (compozit, dacă compoziția cheia principala Include mai mult de unul atributa.) în orice corgeta. relațiile corpului diferă de valoarea cheia principala în oricare altul corgeta. corp din aceasta relaţii, și nici un subset S. Această proprietate nu posedă. În secțiunea următoare, vom arăta acea existență cheia principala în orice valorile relației este o consecință a uneia dintre proprietățile fundamentale relaţie, și anume acea proprietate care relațiile corpului este un set tuplu..

De ideea obișnuită de zi cu zi relaţii este an masa, titlu care este schema relaţii, dar siruri de caracterecortezzi. relaţii-Expiler; În acest caz, nume atributes. corespund numelui coloană Aceasta masa. Prin urmare, uneori vorbesc despre "coloanele mesei", adică " atributes. relaţii».

Desigur, este o terminologie destul de dură, deoarece mesele și liniile obișnuite și coloanele sunt comandate, în timp ce atributes. și cortezzi. relaţie sunt elemente ale seturilor dezordonate. Cu toate acestea, atunci când procedăm la luarea în considerare a problemelor practice ale organizației baze de date relaționale Și înseamnă management, vom folosi această terminologie "de zi cu zi". O astfel de terminologie aderă la majoritatea DBM-urilor relaționale comerciale. Uneori sunt utilizați, de asemenea, termenii. fişier ca o masă analogică, record ca o linie analogică și camp Ca o coloană analogică. Permiteți-mi să vă reamintesc că am folosit această terminologie în prelegeri 1.

· Proprietăți fundamentale ale relațiilor

Să aparăm acum pe niște proprietăți importante. relaţiecare urmează definițiile definite anterior.

Lipsa de tuple-duplicate,
Cheile primare și posibile de relație

Apoi proprietatea asta. corp oricine relaţii niciodată nu conține tuplu.-Delikatov, rezultă din definiție relațiile corpului ca mai multe tuplu.. În teoria clasică a seturilor, prin definiție, orice set constă din diferite elemente.

Este din această proprietate că prezența fiecăruia valorile relației cheia principala - Set minimal atributes.care substanță antet Acest relaţii, Compusul valoare care determină în mod unic curte relaţii. Într-adevăr pentru că oricând totul cortezzi. corp oricine relaţii Diferite, oricare dintre ele valorile relației Proprietatea unicității are cel puțin un set complet de acesta atributes.. Cu toate acestea, în definiția formală cheia principala Necesită "minimalitatea" sa, adică în set atributes. cheia principala nu ar trebui să includă astfel de atributes.care pot fi aruncate fără a aduce atingere principalelor proprietăți - definiție fără ambiguitate corget. Un pic mai târziu vom arăta de ce proprietatea minimă cheia principala Este critică. Este clar că dacă există relaţii Există un set atributes.Având o proprietate de unicitate, atunci există un set minim atributes.având o proprietate de unicitate.

Desigur, poate exista valorile relației Cu mai multe seturi minime incoerente atributes.având proprietățile unicității. De exemplu, dacă reveniți la ipotezele cursului 1 privind unicitatea valorilor atributes. Lateral și servicii relaţii Servitori Atunci pentru toată lumea valori din aceasta relaţii Avem două seturi atributes.revendicând cheia principala(Serviciu) și (e) . În acest caz, designerul bază de date trebuie să decidă care dintre seturi alternative atributes. apel cheia principala, iar restul seturilor minime atributes.Având proprietatea unicității se numește cheile posibile 1).

Concept cheia principala este extrem de importantă în legătură cu conceptul de integritate baze de date. Rețineți că, deși există o existență formală cheia principala valorile relației este o consecință a a ceea ce relațiile corpului - Este foarte mult, în practică primar (și posibil) Taste relații variabile apar ca urmare a instrucțiunilor explicite ale designerului relaţii. Determinat relație variabilă, designerul simulează o parte a domeniului subiectului, datele din care vor conține bază de date. Și, bineînțeles, designerul ar trebui să cunoască natura acestor date. De exemplu, ar trebui să se știe că nici doi angajați nu pot avea un certificat cu același număr. Așa că el poate (și chiar ar trebui, așa cum va fi arătat puțin mai târziu) declară în mod clar(Caz) cheia posibilă. Dacă compania a constatat că toți angajații ar trebui să aibă nume complete diferite, designerul poate (și ar trebui să declare din nou cheia posibilă și(LATURĂ) . Apoi, designerul trebuie să aprecieze care dintre ele cheile posibile este mai fiabilă (proprietatea unicității sale nu va fi anulată niciodată) și să aleagă cele mai fiabile cheia posibilă la fel de primar (În cazul nostru, cheia ar fi cheia(Caz) Deoarece decizia privind unicitatea numelor complete ale angajaților pare artificială și poate fi purtată cu ușurință de conducerea întreprinderii).

Acum vom explica de ce designerul ar trebui să declare în mod explicit cheile primare și posibile ale relațiilor variabile 2). Faptul este că, ca urmare, DBMS declară informațiile care vor fi utilizate ca limitări ale integrității 3). DBMS nu va permite niciodată aspectul în relație variabilă Valori relaţiiconținând două corget Cu același înțeles atributa. SIDMER. (definiție cheia principala Pentru o dată relație variabilă Anularea nu poate fi anulată). Apariția a două tuplu. Cu același înțeles atributa. SIDS Acesta va fi, de asemenea, imposibil, atâta timp cât rămâne definiția(LATURĂ) la fel de cheia posibilă. Astfel, anunțuri primar și cheile posibile Dați DBMS ocazia de a menține integritatea bază de date Chiar și în cazul încercărilor de a aduce date incorecte în ea.

În cele din urmă, înapoi la proprietatea minimă primar și cheile posibile. După cum sa menționat mai sus, această proprietate este critică, iar importanța se manifestă în interpretare primar și cheile posibile la fel de restricții de interqualitate. În exemplul nostru cu relație Servitori Nu numai mulți vor avea proprietatea unicității. atributes. (Caz) , dar, de exemplu, o mulțime(Sidmer, sid_otd_nomer). Dar dacă am fi fost așezați ca limitări ale integrității Cerința de unicitate(Sidmer, sid_otd_nomer)Apoi, DBM-urile ar garanta absența tuplu. Cu același înțeles atributa. SIDMER. nu în același mod relaţii Servitori , dar numai în grupuri tuplu. cu același înțeles atributa. Sail_tener. . Este clar că acest lucru nu corespunde sensului zonei simulate.

Funcționând înainte, observăm că, în multe implementări practice a DBMS-urilor relaționale, a permis o încălcare a proprietății unicității tuplu. Pentru intermediar relaţiegenerate implicit atunci când execută interogări. Astfel de relaţii nu sunt seturi, ci multiseturi, care, în unele cazuri, face posibilă obținerea unor avantaje, dar adesea duce la probleme grave. Ne vom concentra asupra acestui detaliu atunci când discutăm limba SQL.

Lipsa ordinii lui Tuples

Desigur, în mod oficial proprietatea lipsei de ordine tuplu. în valoarea relațiilor. este, de asemenea, o consecință a determinării relațiile corpului ca mai multe tuplu.. Cu toate acestea, această proprietate poate privi și cealaltă parte. Da, faptul că relațiile corpului este un set tuplu., facilitează construirea unui mecanism complet modelul de date relațional, inclusiv mijloacele de bază de manipulare a datelor - algebră relațională și a calculului. Dar, în opinia mea, principalul motiv nu este în acest sens.

De multe ori utilizatorii de DBM-uri relaționale și dezvoltatorii de sisteme informaționale provoacă iritarea faptului că nu pot stoca cortezzi. relaţie La nivelul fizic în ordinea dorită. Și legăturile cu cerințele teoriei relaționale nu sunt foarte potrivite aici. Ar fi posibil să se dezvolte o altă teorie în care a ordonat " relaţii" Cu toate acestea, păstrați liste comandate tuplu. În condiții de actualizare intensivă bază de date Este mult mai complicat din punct de vedere tehnic, iar sprijinul de comandă presupune o parte semnificativă.

Nici o cerință de a menține ordinea pe set tuplu. relaţii Oferă flexibilitatea suplimentară DBMS în timpul depozitării baze de date în memoria externă și atunci când efectuați cereri la bază de date. Acest lucru nu contrazice faptul că atunci când se formulează o cerere de bază de date, de exemplu, în SQL, puteți avea nevoie să sortați tabelul rezultat în funcție de valorile unor coloane. Acest rezultat, în general, nu este relație, și o listă ordonată tuplu.Și poate fi doar un rezultat final că solicitările pot fi deja abordate.

Lipsa atributelor de comandă

Atributes. relaţie Nu a fost comandat deoarece prin definiție relație de titlu. Există multe par<имя атрибута, имя домена> . Pentru referire la valoarea atributa. în corgeta. relaţii Utilizați întotdeauna numele atributa.. Ușor de observat o analogie explicită între titluri de relații și tipurile structurale în limbile de programare. Chiar și în limba de programare C Cu posibilitățile sale practic nelimitate de a lucra cu indicatorii, este recomandat persistent să contacteze câmpurile structurilor numai prin numele lor. Dacă, de exemplu, variabila structurală este definită în limba c

struct (int a; char b; int c) d;

acest standard de limbă nu este recomandat să se utilizeze pentru a accesa câmpul Simbol.b Design * (& D + Sizeof (int)) (Luați adresa variabilei structuraled. , adăugați la acesta numărul de octeți într-un număr de numere și luați valoarea octetului la adresa primită). Acest lucru se explică prin faptul că, cu o locație reală în memoria câmpurilor o astfel de variabilă structurală în ordinea definită, în multe computere va fi necesar să se alinieze câmpulc. De către octeți cu o adresă uniformă. Prin urmare, un byte dispare doar. Când variabila structurală este localizată în memorie, compilatorul economic (sau mai degrabă, optimizatorul) va rearanja câmpulb și C. , iar designul de mai sus nu va oferi acces la câmpb. . Pentru manipularea corectă a câmpuluib variabila D. Trebuie să utilizați construcțiid.B Or & D-\u003e B , adică specificați în mod explicit numele câmpului.

Considerații practice similare justifică lipsa ordinii atributes. în relația antetului. În acest caz, DBM-urile în sine decide asupra ce ordinul fizic trebuie depozitat atributes. tuplu. (Deși, de obicei, aceeași ordine fizică este susținută pentru toți tuplu. FIECARE relaţii). În plus, această proprietate facilitează funcționarea modificării sistemelor existente relaţie nu numai prin adăugarea de noi atributes.Dar și prin eliminarea celor existente.

Executați din nou, observăm că în SQL în unele cazuri, este permisă o indicație a indicelui atributes., și ca o ordine implicită atributes. Utilizează ordinea lor în forma liniară de determinare a schemei relaţii (Aceasta este una dintre caracteristicile condamnate ale limbajului SQL).

Atomicitatea valorilor atributului
Prima formă normală

Valorile tuturor atributes. sunt atomice (sau mai degrabă scalară). Aceasta rezultă din definiție domeniu ca un set potențial de valori scalare tipul de date., adică printre valori domeniu Nu pot exista valori cu structura vizibilă, inclusiv setul de valori ( relaţii). Rețineți că acest lucru nu contrazice ceea ce sa spus în secțiunea "Conceptele de bază ale bazelor de date relaționale" privind utilizarea potențială a utilizării specificațiilor atributes. tipul de date.definită de utilizatori. De exemplu, ar fi posibil să se adauge în sistem relaţii Servitori atribut Sidewo. definit de domaze (sau tipul de date.) Fotografii . Principalul lucru în atomicitatea valorilor atributes. Este faptul că DBM-urile relaționale nu ar trebui să ofere utilizatorilor o vizibilitate explicită a structurii interne a valorii. Cu toate valorile pot fi aplicate numai utilizând operațiunile definite în conformitate cu tipul de date..

Este obișnuit să spun că în baze de date relaționale Sunt permise numai normalizate relaţii, sau relaţiireprezentată de B. prima formă normală.

Un exemplu este anormalizată relaţii prezentat în fig. 2.2. Putem spune că aici avem binar atitudineîn ce valori atributa. Departamente sunteți relaţii. Rețineți că originalul atitudine Servitori Este o opțiune normalizată relaţii Departamente de servire . Varianta normalizată este prezentată în fig. 2.3.

Normalizate relaţii Alcătuiesc baza clasică abordarea relațională a organizării bazelor de date. Acestea au unele limitări 1) (nu toate informațiile sunt convenabile să reprezinte sub formă de mese plate), dar simplifică semnificativ manipularea datelor. Luați în considerare, de exemplu, doi operatori de aplicații identici corget:

n. să înscrieți angajatul KuznetSov (numărul 3000, salariul 25000.00) la numărul 320;

n. Înscrieți-vă angajatul KuznetSov (treceți numărul 3000, salariul 25000.00) la numărul 310.


Smochin. 2.


Smochin. 3. Serviciul de relații: opțiunea normalizată
Servicii de relații

Dacă informațiile despre angajați sunt prezentate ca relaţii Servitori , ambii operatori vor fi efectuați în mod egal (inserați curte în atitudine Servitori ). Dacă lucrați cu anormalizați relație Departamente de servire Apoi primul operator va duce la o inserție simplă corget, iar al doilea pentru a adăuga corget În valoare atitudine atributa. DEPARTAMENTUL corget din cheia principala 310 .

Când lucrați cu anormalizați relații Dificultăți similare apar la efectuarea operațiunilor de eliminare și modificare tuplu..

· Modelul de date relațional

Când în secțiunile anterioare am vorbit despre conceptele de bază baze de date relaționaleNu am scuat de nici o implementare specifică. Aceste argumente se referă în mod egal la orice sistem, când a fost utilizată construcția abordare relațională.

Cu alte cuvinte, am folosit conceptele așa-numitelor modelul de date relațional. Modelul de date (în contextul regiunii baze de date) descrie un anumit set de concepte generice și semne că toate DBMS-urile specifice și ele bază de dateDacă se bazează pe acest model. Prezența unui model de date vă permite să comparați implementările specifice utilizând o limbă comună.

Deși conceptul modelului de date este general și putem vorbi despre modele ierarhice, rețele, semantice și alte date, trebuie remarcat faptul că în zonă baze de date Acest concept a fost introdus de Coddo Edgar în legătură cu sistemele relaționale și este utilizat cel mai eficient în acest context. Încercările pentru utilizarea rectilinie a unor modele similare la organizațiile duulante arată că modelul relațional Prea "mare", iar pentru organizațiile de fotografiere se dovedește a fi "mici".

caracteristici generale

Deși conceptul. modelul de date relațional Prima a introdus fondatorul abordare relațională Edgar Codd, cea mai frecventă interpretare modelul de date relaționalAparent, aparține unui popularizator bine cunoscut al ideilor Codda Cristofour, care îl reproduce (cu diverse clarificări) în aproape toate cărțile sale (vezi, de exemplu, k. data. Introducere în sistemul de baze de date. A șasea ed., M.; St. Petersburg: Williams.- 2000). Conform interpretării datei, modelul relațional constă din trei părți care descriu diferite aspecte abordare relațională: partea structurală, parte de manipulare și partea holistică.

În partea structurală modele Se rezolvă că singura structură generică a datelor utilizate în baza de date relațională este normalizatăn. -Aer atitudine. Concepte definite domenii, atributes., tuplu., antet, corp și relație variabilă. În esență, în cele două secțiuni anterioare ale acestei prelegeri, am considerat conceptele și proprietățile componentei structurale modelul relațional.

În manipulare modele Cele două mecanisme fundamentale de manipulare a bazelor de date relaționale sunt determinate - algebra relațională și calculul relațional. Primul mecanism se bazează în principal pe teoria clasică a seturilor (cu unele clarificări și adăugări), iar al doilea se află pe aparatul logic clasic al calculului predicatelor de prim ordin. Vom lua în considerare aceste mecanisme în detaliu în următoarele prelegeri, dar pentru noi, menționăm că funcția principală a piesei de manipulare modelul relațional Este de a asigura relația dintre relația dintre orice limbă particulară a bazelor de date relaționale: limba se numește relațională, dacă nu are mai puțină expresivitate și putere decât algebra relațională sau calculul relațional.

Integritatea entității și a legăturilor

În cele din urmă, într-o parte holistică modelul de date relațional Se înregistrează două cerințe de integritate de bază care trebuie să fie acceptate în orice DBM-uri relaționale. Prima cerință este numită cerința integrității esenței (integritatea entității). Obiectul sau esența lumii reale în bazele de date relaționale corespund cortezzi. relaţie. În mod specific, cerința este că orice curte orice înțeles relaţii orice relație variabilă ar trebui să se distingă de oricare alta corget din aceasta valorile relației În funcție de valorile constitutive ale unui set predeterminat atributes. relație variabilă, adică, cu alte cuvinte, orice relație variabilă trebuie avut cheia principala. După cum am văzut în secțiunea anterioară, această cerință este satisfăcută automat dacă proprietățile de bază nu sunt încălcate în sistem. relaţie.

De fapt, cerința integritatea esenței Se aude complet după cum urmează: relație variabilă trebuie să existe cheia principala, și nici o importanță cheia principala în cortecul Valori relaţii relație variabilă nu ar trebui să conțină valori nesigure. Astfel încât această formulare este pe deplin înțeleasă, trebuie să discutăm cel puțin pe scurt conceptul Înțeles incert (NUL).

Desigur, teoretic orice curteștampilate atitudinetrebuie să conțină toate caracteristicile esenței lumii reale pe care vrem să le păstrăm bază de date. Cu toate acestea, în practică, nu toate aceste caracteristici pot fi cunoscute de momentul în care este necesar să se stabilească esența bază de date. Un exemplu simplu poate fi o procedură de realizare a unei persoane, ale cărei salarii nu sunt încă definite. În acest caz, angajatul departamentului de personal, care intră atitudine Servitori curteDescrierea noului angajat pur și simplu nu poate oferi valoare atributa. Sidmarp. (Orice valoare domeniu DIMENSIONS_TEXT. Acesta va incorect să caracterizeze salariul noului angajat).

Edgar Codd a propus utilizarea în astfel de cazuri valori nesigure. Valoarea incertă Nu aparține niciunui tipul de date. și pot fi prezente printre valorile oricăror atributa.definită pe oricare tipul de date. (dacă nu este interzisă în mod clar când se determină atributa.). În cazul în care una. - Asta este atat de specific mie tipul de date. sauNull, op. - orice operațiune "aritmetică" bidimensională a acestui lucru tipul de date. (de exemplu,+), și lop - operarea de comparare a valorilor acestui lucru tip (de exemplu,= ), apoi prin definiție:

un op nul \u003d null

Nul op a \u003d null

un lop nul \u003d necunoscut

Null lop a \u003d necunoscut

Aici Necunoscut - Aceasta este a treia valoare a logică sau booleană, cum ar fi următoarele proprietăți:

Nu necunoscut \u003d necunoscut

adevărat și necunoscut \u003d necunoscut

adevărat sau necunoscut \u003d adevărat

fals și necunoscut \u003d fals

fals sau necunoscut \u003d necunoscut

(Reamintim că operațiunile și sau sunt comutative) 2). În această prelegere, avem suficientă introducere scurtă la valori nesigureDar în următoarele prelegeri, vom reveni în mod repetat la acest subiect.

Deci, prima dintre cerințe este cerința integritatea esenței - înseamnă că cheia principala trebuie să identifice pe deplin fiecare entitate și, prin urmare, în compoziția oricărei valori cheia principala Nici o prezență nu este permisă valori nesigure. (În clasic modelul relațional Această cerință se aplică cheile posibile; Așa cum se va arăta în următoarele prelegeri, în DBMS orientate către SQL o astfel de cerință pentru cheile posibile Nu sunt acceptate.)

A doua cerință numită integritatea referențială (integritatea referențială) Cerință, este mai complexă. Evident, atunci când respectarea normalizării relaţie Esențele complexe ale lumii reale sunt prezentate în baza de date relațională sub formă de mai multe tuplu. mai multe relaţie. De exemplu, imaginați-vă ce este necesar să se supună baza de date relațională EsențăDEPARTAMENTUL din atributes. Reminner (numărul departamentului), Departamentul (numărul de angajați) șiPlecare (Mulți angajați ai Departamentului). Pentru fiecare angajat trebuie să păstrezeSIDMER. (numar de angajati),SIDS (Numele angajatului) șiSidmarp. (Salariul angajatului). După cum vom vedea în prelegerea 7, cu designul potrivit al bazei de date corespunzătoare în ea va apărea două relaţii: Departamente (plecare, departament) (cheia principala(Plecare)) și Angajați (SIDMER, SIDS, SIDMARP, SIDS) (cheia principala(Sidser)).

Așa cum se vede, atribut Sid_otd_na. introdus B. atitudine Servitori nu pentru că numărul departamentului este proprietatea proprie a angajatului și numai pentru a putea restabili esența completă, dacă este necesarDEPARTAMENTUL . Valoare atributa. Sid_otd_na. în orice corgeta. relaţii Servitori Trebuie să corespundă valorii atributa. REM. în unele corgeta. relaţii Departamente . Atribut Acest tip (poate compozitul) este numit cheie străină (cheie străină) deoarece valorile sale caracterizează fără echivoc entitățile prezentate cortays. Unii alții relaţii (adică setați valorile lor cheia principala). Sigur, cheia externă poate fi compozit, adică compus din mai multe atributes.. Ei spun asta atitudineîn care este determinată cheia externă, se referă la atitudineîn care același lucru atribut este an cheia principala.

Cerere legătura integrității , sau cerința de integritate cheia externă, este că pentru fiecare valoare cheia externăEmerging in corgeta. Valori relaţii trimitere relație variabilăsau în valoare atitudine relație variabilăpe care indică legătura, ar trebui găsită curte cu același înțeles cheia principalaSau valoarea cheie externă trebuie să fie complet nedefinită (adică nu indică nimic) 3). Pentru exemplul nostru, acest lucru înseamnă că, dacă este specificat numărul de serviciu, acest departament trebuie să existe.

Rețineți că, cum ar fi cheia principala, cheia externă trebuie specificate în determinarea relație variabilă și este o limitare a valorilor admise relaţii Acest variabil. Cu alte cuvinte, definiție cheia externă este o definiție limitări ale integrității bază de date.

Restricții integritatea esenței și conform legăturilor Trebuie să fie susținute de DBMS. Pentru conformare integritatea esenței Suficient pentru a garanta absența în orice relație variabilă Valori relaţieconținând cortezzi. cu același înțeles cheia principala (și interzice intrarea în valoare cheia principala valori nesigure). DIN legătura integrității Situația este oarecum mai complicată.

Este clar că atunci când actualizați referința relaţii (inset de noi tuplu. Sau modificări de valoare cheia externă în existența existentă cortecul) Este suficient să se asigure că nu au apărut valori incorecte. cheia externă. Dar cum să fie atunci când eliminați corget de relaţiiCare este legătura de legătură?

Există trei abordări aici, fiecare dintre care susține legătura integrității. Prima abordare este că este interzisă eliminarea corgetPentru care există linkuri (adică, mai întâi trebuie să ștergeți referințele cortezzi.sau să-și schimbe valorile în consecință cheia externă). Cu a doua abordare la eliminarea corgetpe care există legături în toate referirile cortecul valoare cheia externă devine automat complet incert. În cele din urmă, a treia abordare (îndepărtarea cascadării) este că atunci când eliminați corget de relaţiicare este referit la trimitere relaţii Toate referințele sunt șterse automat. cortezzi..

În DBM-urile relaționale dezvoltate, puteți alege de obicei cum să vă mențineți legătura integrității Pentru fiecare caz de definiție cheia externă. Desigur, pentru a face o astfel de decizie, este necesar să se analizeze cerințele unei anumite zone aplicate.

· Concluzie

Cel mai probabil, cititorii potențiali ai acestui curs funcționează sau vor lucra cu orice DBM-uri orientate spre SQL. Orice companie care produce DBM-uri similare le numește sisteme relaționale. Este foarte important să înțelegem în mod clar care proprietăți ale unor astfel de sisteme sunt într-adevăr relaționale și că acestea nu corespund exact la sursă, idei clare și stricte abordare relațională Și chiar o contrazică. Acesta va ajuta la organizarea mai corect bază de date și construiți aplicații într-un mediu DBMS orientat spre SQL.

În mai multe prelegeri ale acestui curs, posibilitățile limbilor SQL actuale sunt suficient discutate în detaliu: SQL: 1999 și SQL: 2003. Dar primii cititori li se oferă un material care reprezintă abordare relațională în formă pură. În această prelegere este introdusă baza de concept abordare relațională; Sunt determinați termenii principali; Consecințele fundamentale ale definițiilor de bază sunt investigate. Considerat modelul de date relațional Se intenționează în primul rând evaluarea conformității diferitelor implementări ale DBMS Total abordare relațională.

Introducere

Începutul secolului XXI, specialiștii au devenit un secol de tehnologie informatică. Umanitatea intră într-o epocă fundamental nouă a informațiilor. Toate componentele stilului de viață ale oamenilor se schimbă. Nivelul de informații devine una dintre caracteristicile nivelului de dezvoltare a statului.

Multe țări în curs de dezvoltare și-au realizat la nivel adecvat avantajele care nu sunt acoperite cu diseminarea și dezvoltarea tehnologiilor de informare și comunicare. Și nu există nicio îndoială că faptul că mișcarea către societatea informațională este un fel de cale, care vizează viitorul civilizației umane.

Pe baza modelului relațional, baza de date este un set specific de tabele pe care se efectuează operații care sunt formulate în ceea ce privește algebra relațională și calculul relațional.

În modelul relațional al operațiunii față de obiectele bazei de date, există caracter teoretic fiind nucleul oricărei baze de date. Modelul reprezintă o varietate de date structurale, constrângeri de integritate și operațiuni de manipulare a datelor.

Concepte de bază ale modelului de date relaționale

Principalele concepte specifice datelor relaționale sunt considerate a fi tipul de date, domeniul, atributul, tuple, relația principală-cheie. Inițial, vom observa semnificația acestor concepte cu privire la exemplul relației dintre "angajați", care conține informații despre angajații unei organizații

Conceptul de tip de date este proporțional într-un model de date relațional cu conceptul de tip de tip în limbile de programare. În bazele de date relaționale moderne, depozitarea datelor numerice simbolice, șirurile de biți, precum și date speciale "temporale", care se dezvoltă în mod activ în procesul de extindere a posibilităților sistemelor relaționale.

Conceptul unui domeniu are o anumită specificitate pentru bazele de date, deși au o anumită antologie cu cote cu privire la unele limbi de programare. În general, domeniul este determinat de sarcina unui tip de bază la care elementul de domeniu și o expresie logică arbitrară este legată de aplicația din elementul de tip de date. În cazul în care calculul acestei expresii logice reprezintă rezultatul "Adevăr", elementul este un element al domeniului.

O interpretare mai corectă a conceptului de domeniu este considerată a fi înțelegerea domeniului, ca unul dintre seturile potențiale admise ale valorilor de acest tip.

De exemplu, un domeniu "nume" în cazul nostru, pe tipul de bază de simbol, este definit, dar numărul valorilor sale va include numai acele termene limită care pot descrie numele) Aceste date nu pot începe cu a semnul moale). Este, de asemenea, necesar să menționăm sarcina semantică a conceptului de domeniu: numai în cazul în care datele vor fi comparabile atunci când vor fi relevante pentru domeniu, dar numai una

În cazul nostru, valorile domeniilor "numerelor de trecere" și "numerele de grup", care sunt legate de tipul întregului, nu pot fi comparabile. Rețineți că, în unele cazuri, conceptul domeniului în sine nu găsește aplicația în sine, deoarece Deja acceptate în Oracle V.7.

Schema relației este o perechi personale multiple: care include: numele atributului, tipul, dar numai dacă conceptul de domeniu nu este acceptat. Gradul de "artism" este o schemă de relație - aceasta este o anumită putere a acestor seturi.

În același timp, relațiile "angajați" vor fi egale cu patru și vor considera 4-arral. Și dacă toate atributele unei relații sunt definite pe domenii relativ diferite, este inteligent de numire a numelor de atribute ale domeniilor respective, fără a uita că aceasta este considerată doar una dintre metodele convenționale de numire și nu oferă o oportunitate de a elimina diferențele în ceea ce privește diferențele Conceptul unui domeniu și atribut. Diagrama bazei de date este un set specific de circuite de relații.

O tuplă care corespunde acestei scheme a relației este un set de perechi, care se reflectă în intrarea fiecărui nume de atribut deținut de schema de relație.

"Valoarea" este considerată a fi valoarea admisă a domeniului acestui atribut, în cazul în care conceptul de domeniu nu este acceptat. Ca rezultat, gradul de conică, adică Numărul anumitor elemente coincide cu gradul de schemă de relații relevante

Tuplei este un set de valori nominale ale unui tip specificat.

Raportul este un număr mare de tuple care corespund unei scheme de relații. De fapt, conceptul de schemă de relație este mai aproape de conceptul de date structural de date în limbile de programare, iar atitudinea ca un set de tuple a fost o relație de corp. Prin urmare, ar fi logic să rezolvăm separat schema de relație și mai târziu, una sau mai multe relații cu această schemă, dar bazele de date relaționale nu sunt acceptate.

Numele circuitului de relații față de aceste baze de date în majoritatea cazurilor coincide cu numele specimenului corespunzător. În bazele de date relaționale clasice, după o schemă specifică de baze de date, se schimbă doar relațiile de instanță. Ele pot părea smocuri noi și existente. Dar, în același timp, în multe implementări, se găsește o modificare a schemei bazei de date: determinarea noului și schimbarea circuitelor de relații deja existente, care este obișnuită numită evoluția schemei bazei de date.

Viziunea obișnuită a relației este considerată a fi un tabel, titlul căruia este considerată o schemă de relație, iar șiruri - cortexul instanței instanței, în acest caz, numele atributului sunt numite coloanele acestui tabel. În acest sens, uneori spun "coloana tabelului", implicând "atribut al relației". După cum se poate observa, principalele concepte structurale ale modelului de date relaționale (cu excepția conceptului de domeniu) au o interpretare foarte simplă intuitivă, deși în teoria bazei de date relaționale, acestea sunt determinate absolut formal și precis.

După cum sa menționat, modelele de date relaționale sunt cele mai populare. În conformitate cu modelul de date relațional, datele sunt prezentate sub forma unui set de tabele pe care pot fi efectuate operații formulate în ceea ce privește algebra relațională sau calculul relațional.

Spre deosebire de modelele ierarhice și de rețea ale datelor din modelul relațional de operațiuni asupra obiectelor sunt caracteruri teoretice și multiple. Acest lucru permite utilizatorilor să-și formuleze cererile mai compacte, în ceea ce privește unitățile de date mai mari.

Luați în considerare terminologia utilizată atunci când lucrați cu baze de date relaționale.

Cheia principala.Cheia primară este un câmp sau un set de câmpuri, identificând fără echivoc înregistrarea.

Adesea există mai multe opțiuni pentru alegerea cheii primare. De exemplu, într-o mică organizație a cheilor primare ale entității angajatului, atât un număr de tabel, cât și o combinație a numelui, numele și numărul patronimic (cu încredere că nu există o teză completă în organizație) sau numărul și seria de pașaport (dacă există pașapoarte pentru toți angajații). În astfel de cazuri, atunci când alegeți o cheie primară, preferința este dată celor mai simple taste (în acest exemplu - numărul tabelului). Alți candidați pentru rolul cheii primare sunt numite cheile alternative.

Cerințe pentru cheia primară:

    unicitatea - adică tabelul nu trebuie să existe două sau mai multe înregistrări cu aceeași valoare a cheii primare;

    cheia primară nu trebuie să conțină valori goale.

Atunci când alegeți o cheie primară, se recomandă alegerea unui atribut, a căror valoare nu se schimbă pe întreaga perioadă a instanței existenței (în acest caz, numărul tabelului este preferabil prenumele, deoarece poate fi schimbat , îmbunătățirea acestuia).

În câmpurile care sunt adesea utilizate la căutarea și sortarea datelor sunt setate taste secundare.: Ei vor ajuta sistemul să găsească mult mai repede datele necesare. Spre deosebire de câmpurile primare ale câmpurilor pentru indexuri (tastele secundare) pot conține valori non-unice.

Cheile primare sunt utilizate pentru a stabili legături între tabelele din baza de date relațională. În acest caz, cheia primară a unui tabel (parental) corespunde cheia externăo altă masă (subsidiară). Tasta externă conține valorile câmpului asociat, care este cheia primară. Valorile din omul exterior pot fi nerezonabile, dar nu ar trebui să fie goale. Cheile primare și externe trebuie să fie de același tip.

Legături între tabele. Înregistrările din tabel pot depinde de una sau mai multe înregistrări ale unui alt tabel. Astfel de relații între tabele sunt numite conexiuni.Comunicarea este definită după cum urmează: câmpul sau mai multe câmpuri ale unui tabel, numit cheia externăse referă la cheia primară a unui alt tabel. Luați în considerare un exemplu. Deoarece fiecare comandă trebuie să provină de la un client specific, fiecare intrare de masă Comenzi.(comenzi) trebuie să se refere la intrarea corespunzătoare a tabelului Clienți.(Clienți). Aceasta este legătura dintre tabele Comenzi.și Clienți.. Masa Comenzi.trebuie să existe un câmp în care sunt stocate legăturile cu cele sau alte intrări de tabel. Clienți..

Tipuri de conexiuni. Există trei tipuri de conexiuni între tabele.

Unu la unu -fiecare înregistrare a mesei părinte este conectată numai cu înregistrarea unui copil. O astfel de conexiune se găsește în practică mult mai puțin frecvent unul pentru mulțiȘi implementate prin determinarea unei chei străine unice. Comunicare unu la unuutilizați dacă nu doresc ca masa "flipped" de la un număr mare de câmpuri. Baze de date care includ tabelele cu o astfel de obligațiune nu pot fi considerate complet normalizate.

Unul la mulți -fiecare înregistrare a tabelului părinte este asociată cu una sau mai multe intrări subsidiare. De exemplu, un client poate face mai multe comenzi, dar mai mulți clienți nu pot face o comandă. Comunicare O. decan la multe.este cea mai comună pentru bazele de date relaționale.

Mulți la mulți -mai multe înregistrări ale unui tabel sunt asociate cu mai multe intrări. De exemplu, un autor poate scrie câteva cărți și câțiva autori - o singură carte. În cazul unei astfel de conexiuni, în general, este imposibil să se determine ce intrare a unui tabel corespunde înregistrării selectate a unui alt tabel, ceea ce face imposibilul fizic (la nivelul indiciilor și declanșatorilor) implementarea unei astfel de relații între tabelele relevante. Prin urmare, înainte de a trece la modelul fizic, toate legăturile "Multe la mulți" trebuie redefinite (unele fonduri de caz, dacă acestea sunt utilizate la proiectarea datelor, faceți-o automat). O relație similară între cele două tabele este implementată prin crearea unui al treilea tabel și implementarea tipului "unul la mulți" din fiecare dintre tabelele disponibile cu o masă intermediară.

Baza de date (baza de date) -acesta este setul numit de date structurate referitoare la o anumită zonă a subiectului și destinată stocării, acumulării și procesării utilizării computerelor.

Baza de date relațională (RBD) - Acesta este un set de relații ale căror nume coincid cu numele schemelor din schema DB.

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

· Tipul de date. - Tip de valori specifice ale coloanei.

· Domeniu (Domeniu) - setul de valori ale atributului valid.

· Atribut (atribut) - titlul coloanei de masă, caracterizarea proprietății obiectului numit, cum ar fi numele de familie, data comenzii, locul angajatului etc.

· Curte - un șir de masă, care este un set de valori ale atributelor legate logic.

· Atitudine (Relație) - un tabel care reflectă informații despre obiectele lumii reale, de exemplu, despre studenți, ordine, angajați, rezidenți etc.

· Cheia principala (Cheie primară) - câmpul (sau setul de câmpuri) al tabelului, identifică fără echivoc fiecare dintre înregistrările sale.

· Tasta alternativă. - Acesta este un câmp (sau un set de câmpuri), incompatibil cu cheia primară și o instanță de înregistrare identificabilă unică.

· Cheia externă - Acesta este un câmp (sau un set de câmpuri) ale căror valori coincid cu valorile existente ale cheii primare ale unui alt tabel. La introducerea a două mese cu cheia primară a primului tabel, este asociată cheia externă a celui de-al doilea tabel.

· Modelul de date relațional (RMD)- Organizarea datelor sub formă de tabele bidimensionale.

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

1. Fiecare intrare de masă este unică, adică. Setul de valori din câmp nu este repetat.

2. Fiecare valoare este înregistrată la intersecția șirului și a coloanei - este atomică (inseparabilă).

3. Valorile fiecărui câmp trebuie să fie un tip.

4. Fiecare câmp are un nume unic.

5. Procedura de localizare a înregistrărilor este nesemnificativă.

Elemente BD de bază:

Camp - Unitatea elementară a organizării datelor logice. Următoarele caracteristici sunt utilizate pentru a descrie câmpul:

· Nume, cum ar fi numele de familie, prenumele, patronimic, data nașterii;

· Tip, de exemplu, șir, simbol, numeric, data;

· Lungimea, de exemplu, în octeți;

· Precizia datelor numerice, de exemplu, două semne zecimale pentru afișarea părții fracționate a numărului.

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

Index - Accelerați operarea de căutare a înregistrărilor utilizate pentru a instala conexiuni între tabele. Tabelul pentru care este utilizat indexul este numit indexat. La lucrul cu indexurile, este necesar să se acorde atenție organizării indiciilor, care este baza pentru clasificare. Indicele simplu este reprezentat de un câmp sau o prelucrare a expresiei logice un câmp. Indicele compozit este reprezentat de mai multe câmpuri cu posibilitatea de a folosi diverse funcții. Indicii de masă sunt stocați în fișierul index.


Integritatea datelor - Acesta este un instrument de protecție a datelor în câmpurile de comunicare, permițând susținerea tabelelor într-o stare consistentă (consecventă) (adică nu permite existența în tabelul subordonat de intrări care nu dispun de înregistrări adecvate în tabelul părinte).

Anchetă - o întrebare formulată la una sau mai multe tabele interdependente care conțin criterii de eșantionare a datelor. Cererea se efectuează utilizând limba de interogare SQL structurată (limbă de interogare crescătoare). Ca rezultat al probelor de date de la unul sau mai multe tabele, pot fi obținute o varietate de înregistrări, numită vizualizarea.

Prezentarea datelor - Baza de date este stocată în baza de date a unei selecții de date (de la unul sau mai multe tabele).

Prezentarea este, în esență, un tabel temporar format ca urmare a executării cererii. Cererea în sine poate fi trimisă într-un fișier separat, raport, tabel temporar, tabel pe disc etc.

Raport- Componenta sistemului, scopul principal al căruia este o descriere și o ieșire pentru a imprima documente pe baza informațiilor din baza de date.

Caracteristici generale de lucru cu RBD:

Cea mai frecventă interpretare a modelului de date relaționale, aparent aparține datei, care o reproduce (cu diverse clarificări) în aproape toate cărțile sale. În conformitate cu 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 holistică.

În partea structurală a modelului, se rezolvă că singura structură a datelor utilizate în baza de date relațională este normalizată atitudinea n-arous.

În manipularea modelului, sunt aprobate două mecanisme fundamentale pentru manipularea bazei de date relaționale - algebră relațională și calcul relațional. Primul mecanism se bazează în principal pe teoria clasică a seturilor (cu unele clarificări), iar al doilea se află pe aparatul logic clasic al calculului predicatelor de prim ordin. Rețineți că funcția principală a părții de manipulare a modelului relațional este asigurarea relației dintre orice limbă particulară a bazelor de date relaționale: limba se numește relațională, dacă nu are nici o expresivitate și o putere mai mică decât o algebră relațională sau un calcul relațional.


28. Limbi algoritmice. Traducători (interpreți și compilatoare). Limba algoritmică Baysik. Structura programului. Identificatori. Variabile. Operatori. Prelucrarea unor matrice unidimensionale și bidimensionale. Funcția utilizatorului. Subrutine. Lucrul cu fișierele de date.

Limba de nivel înalt - limbajul de programare, conceptele și structura care sunt convenabile pentru percepția omului.

Limba algoritmică (Limba algoritmică) - Limba de programare - Limba artificială (formală) concepută pentru a înregistra algoritmi. Limba de programare este setată de descrierea sa și este implementată ca un program special: compilator sau interpret. Exemple de limbi algoritmice servesc - Borland Pascal, C ++, Basic, etc.

Principalele concepte ale limbajului algoritmic:

Compoziția limbajului:

O limbă verioagă vorbită este formată din patru elemente principale: simboluri, cuvinte, fraze și sugestii. Limba algoritmică conține elemente similare, numai cuvintele sunt numite structuri elementare, fraze - expresii, oferte - operatori.

Simboluri, structurile elementare, expresiile și operatorii sunt o structură ierarhică, deoarece structurile elementare sunt formate dintr-o secvență de caractere.

Expresii - aceasta este o secvență de structuri elementare și simboluri,

Operator - Secvența de expresii, structuri elementare și simboluri.

Descrierea limbii:

Descrierea caracterelor este de a enumera caracterele admise ale limbii. În conformitate cu descrierea structurilor elementare, sunt înțelese regulile pentru educația lor. O descriere a expresiei este regulile pentru formarea oricăror expresii care au sens în această limbă. Descrierea operatorilor constă în luarea în considerare a tuturor tipurilor de operatori admisibili în limba. O descriere a fiecărui element de limbă este setată la sintaxa și semantica sa.

Sintaxă Definiții stabilesc reguli pentru construirea elementelor lingvistice.

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

Simboluri de limbă - Acestea sunt semne de bază indivizibile, în ceea ce privește toate textele din limbă.

Structuri elementare - Acestea sunt unități minime de limbă cu semnificație independentă. Ele sunt formate din personajele de bază ale limbii.

Expresie Limba algoritmică constă din structuri și simboluri elementare, specifică regula pentru calcularea unei anumite valori.

Operator Specifică o descriere completă a unor acțiuni care trebuie efectuate. Pentru a descrie o acțiune complexă, poate fi necesar un grup de operatori.

În acest caz, operatorii sunt combinați Operator compozit sau Bloc. AcțiuniSpecificate de operatori sunt efectuate pe date. Sugestiile limbajului algoritmic, care furnizează informații despre tipurile de date, sunt numite descrieri sau operatori ne-observați. Descrierile combinate ale algoritmului combinat și operatorii formează un program în limba algoritmică. În procesul de studiere a limbajului algoritmic, este necesar să se distingă un limbaj algoritmic din limba prin care este descris limba algoritmică descrisă. Limba de obicei studiată este numită pur și simplu de limbă, iar limba, în termeni de care este descrisă limba - Potrivire.

Traducător - (Traducătorul de engleză - traducător) este un program de traducător. Acesta convertește un program scris într-una din limbile la nivel înalt într-un program constând din comenzi de mașini.

Un program scris pe un limbaj algoritmic la nivel înalt nu poate fi efectuat direct pe un computer. Eum înțelege numai limba echipelor de mașini. În consecință, programul de pe limba algoritmică trebuie tradus (tradus) în limba comenzii specifice EUM. O astfel de traducere este realizată de programele de traducător special special create pentru fiecare limbă algoritmică și pentru fiecare tip de computere.

Există două modalități principale de difuzare - compilație și interpretare.

1. Finalizare: Compilator (Compilator - compilator, colector) Citește întregul program în întregime, îl face o traducere și creează o versiune completă a programului în mașină, care este apoi executată.

Pentru compilare Întregul program sursă se transformă imediat într-o secvență de comenzi de mașini. După aceasta, programul rezultat rezultat este realizat de calculator cu datele sursă existente. Avantajul acestei metode este acela că difuzarea se efectuează o singură dată și (multiple) efectuarea programului rezultat poate fi efectuată la viteză mare. În același timp, programul rezultat poate dura mult spațiu în memoria calculatorului, deoarece un operator de limbă este înlocuit cu sute sau chiar mii de comenzi. În plus, depanarea și modificările programului tradus sunt foarte dificile.

2. Interpretare: Interpret (Interpretul în limba engleză - un interpret, interpret) traduce și execută programul String Program.

Pentru interpretări Programul sursă este stocat în memoria calculatorului aproape neschimbat. Programul de interpretare decodifică operatorii programului inițial într-unul și se asigură imediat datele existente. Programul interpretabil ocupă un loc puțin în memoria calculatorului, este ușor de depanat și modificat. Dar executarea programului apare destul de încet, deoarece de fiecare dată fiecare execuție, toți operatorii sunt acceptați.

Programele compilate funcționează mai repede, dar au interpretat mai ușor să corecteze și să se schimbe

Fiecare limbă specifică este orientată fie pe compilație, fie la interpretare - în funcție de scopul în care a fost creat. De exemplu, Pascal este de obicei folosit pentru a rezolva sarcini destul de complexe în care viteza programelor este importantă. Prin urmare, această limbă este de obicei implementată utilizând un compilator.

Pe de altă parte, Beysik a fost creat ca o limbă pentru programatorii novice pentru care construcția programului are avantaje incontestabile.

Uneori există un compilator pentru o limbă și interpret. În acest caz, pentru a dezvolta și de a testa programul, puteți utiliza interpretul și apoi să compilați programul de depanare pentru a crește viteza executării acestuia.



Ți-a plăcut articolul? Împărtășește-l