Sql server 2018, sistem de gestionare a bazelor de date (sub)

aplicații de baze de date;

servere de baze de date;

baza de date actuală.

Aplicația bazei de date este un software special conceput și implementat de către utilizatori sau companii de software terțe părți. În contrast, componentele clientului sunt software de bază de date pentru baze de date dezvoltate și implementate de compania de dezvoltatori de baze de date. Cu ajutorul componentelor clientului, utilizatorii pot accesa datele stocate pe un computer local sau la distanță.







Serverul de baze de date îndeplinește sarcina de a gestiona datele stocate în baza de date. Clienții interacționează cu serverul bazei de date trimițând cereri către acesta. Serverul procesează fiecare solicitare primită și trimite rezultatele către clientul corespunzător.

Caracteristicile SGBD

În general, baza de date poate fi văzută din două perspective - utilizatorul și sistemul de baze de date. Utilizatorii văd baza de date ca un set de date logic asociate, iar pentru un sistem de bază de date este doar o secvență de octeți care sunt de obicei stocați pe disc. Deși acestea sunt două opinii complet diferite, există ceva în comun între ele: sistemul bazei de date nu ar trebui să ofere doar o interfață care permite utilizatorilor să creeze baze de date și să recupereze sau să modifice date, dar și componente ale sistemului pentru gestionarea datelor stocate. Prin urmare, sistemul de baze de date ar trebui să ofere următoarele opțiuni:

diferite interfețe de utilizator;

independența fizică a datelor;

logicitatea datelor;

securitatea bazei de date.

Toate aceste posibilități sunt descrise pe scurt în secțiunile următoare.

O varietate de interfețe de utilizator

Cele mai multe baze de date sunt concepute și implementate pentru a lucra cu ei de diferite tipuri de utilizatori care au niveluri diferite de cunoaștere. Din acest motiv, sistemul de baze de date trebuie să furnizeze mai multe interfețe utilizator separate. Interfața cu utilizatorul poate fi grafică sau text.

În interfețele grafice, intrarea se face printr-o tastatură sau mouse, iar ieșirea este implementată grafic pe monitor. O variantă a interfeței de text folosită adesea în sistemele de baze de date este interfața liniei de comandă prin care utilizatorul introduce intrarea printr-un set de comenzi pe tastatură, iar sistemul afișează ieșirea în format text pe monitor.

Independența fizică a datelor

Independența fizică a datelor înseamnă că aplicațiile bazei de date nu depind de structura fizică a datelor stocate în baza de date. Această caracteristică importantă vă permite să modificați datele stocate fără a fi necesară modificarea aplicațiilor bazei de date.

De exemplu, dacă datele au fost ordonate inițial de un criteriu și apoi această comandă a fost modificată printr-un alt criteriu, modificarea datelor fizice nu ar trebui să afecteze aplicațiile de bază de date existente sau schema sa (o descriere a bazei de date creată de limba de definire a sistemului de bază de date).

Independența logică a datelor

Când se procesează fișiere folosind limbi de programare tradiționale, fișierele sunt declarate de programele de aplicație, astfel încât orice modificare a structurii fișierelor necesită de obicei modificări corespunzătoare tuturor programelor care o utilizează.

Optimizarea interogărilor

Cele mai multe sisteme de baze de date conțin o subcomponentă, numită optimizator. care examinează mai multe strategii posibile pentru executarea unei interogări de date și alege cel mai eficient dintre ele. Strategia aleasă este numită planul de executare a interogării. Optimizatorul ia o decizie, luând în considerare factori precum dimensiunea tabelelor la care este direcționată interogarea, indicii existenți și operatorii logici (AND, OR sau NOT) utilizați în clauza WHERE.

Integritatea datelor

Asigurarea integrității datelor poate fi efectuată de utilizator în cadrul programului de aplicații sau al sistemului de gestionare a bazelor de date. În cea mai mare măsură posibilă, această sarcină ar trebui să se realizeze prin DBMS.

Gestionarea paralelismului

Un sistem de baze de date este un sistem software pentru mai mulți utilizatori, ceea ce înseamnă accesul simultan la baza de date a mai multor aplicații ale utilizatorilor. Prin urmare, fiecare sistem de baze de date trebuie să aibă un anumit tip de mecanism care oferă control asupra încercărilor de a modifica datele simultan cu mai multe aplicații. Următorul exemplu este o problemă care poate apărea dacă sistemul de baze de date nu este echipat cu un astfel de mecanism de gestionare:

În contul general bancar nr. 3811 din banca X există 1500 de dolari.

Proprietarii acestui cont, doamna A și domnul B, se deplasează la diferite sucursale ale băncii și se retrag simultan din cont pentru 750 USD fiecare.

Suma rămasă în contul nr. 3811 după aceste tranzacții ar trebui să fie de 0 $ și în nici un caz 750 $.

Toate sistemele de baze de date trebuie să aibă mecanismele necesare pentru a face față unor astfel de situații, asigurând controlul concurenței.







Sistemul bazei de date trebuie să fie echipat cu un subsistem pentru recuperare după erori în software și hardware. De exemplu, dacă tabela de baze de date nu actualizează 100 de rânduri, motorul de recuperare trebuie să reia toate actualizările efectuate pentru a asigura coerența datelor.

Securitatea bazelor de date

Sisteme de baze de date relaționale

Microsoft SQL Server Database Engine este un sistem de baze de date relaționale. Conceptul de sisteme de baze de date relaționale a fost introdus pentru prima dată în 1970 de Edgar F. Codd în articolul "Un model relațional de date pentru băncile mari de date partajate". Spre deosebire de sistemele de baze de date anterioare (rețea și ierarhice), sistemele bazelor de date relaționale se bazează pe un model relațional de date care are o teorie matematică puternică.

Un model de date este un set de concepte, relațiile dintre ele și constrângerile lor, care sunt folosite pentru a reprezenta datele într-o sarcină realistă. Conceptul central al modelului relațional de date este tabelul. Prin urmare, din perspectiva utilizatorului, baza de date relațională conține numai tabele și nimic altceva. Tabelele constau din coloane (una sau mai multe) și rânduri (una sau mai multe). Fiecare suprimare a rândului și coloanei tabelului conține întotdeauna exact o valoare de date.

Această informație este prezentată în baza de date SampleDb (găsită în codul sursă) prin intermediul a patru tabele:

Organizarea acestor tabele este prezentată în figurile de mai jos. Table Departament reprezintă toate departamentele companiei. Fiecare departament are următoarele atribute (coloane):

Sql server 2012, sistem de gestionare a bazelor de date (sub)

Atributul Number reprezintă numărul unic al fiecărui departament, atributul DepartmentName este numele său, iar atributul Location este locația. Tabelul Angajat reprezintă toți angajații din companie. Fiecare angajat are următoarele atribute (coloane):

Sql server 2012, sistem de gestionare a bazelor de date (sub)

Id-ul atributului reprezintă numărul unic de personal al fiecărui angajat, atributele FirstName și LastName - numele și prenumele angajatului, respectiv, și atributul DepartmentNumber - numărul departamentului în care lucrează angajatul.

Toate proiectele companiei sunt reprezentate în foaia de lucru a proiectului, care constă din următoarele coloane (atribute):

Sql server 2012, sistem de gestionare a bazelor de date (sub)

Coloana ProjectNumber specifică un număr de proiect fără ambiguitate, iar în coloanele ProjectName și Budget, numele proiectului și, respectiv, bugetul.

Tabelul Works_on indică relația dintre angajați și proiecte:

Sql server 2012, sistem de gestionare a bazelor de date (sub)

Numărul angajatului angajatului este indicat în coloana EmpId, iar în coloana ProjectNumber - numărul proiectului în care participă. Combinația dintre valorile acestor două coloane este întotdeauna unică. Coloanele Job și EnterDate indică poziția și începutul lucrului angajatului în acest proiect, respectiv.

Folosind baza de date SampleDb ca exemplu, puteți descrie câteva dintre proprietățile de bază ale sistemelor bazelor de date relaționale:

Rândurile mesei nu sunt organizate într-o anumită ordine.

De asemenea, coloanele tabelului nu sunt organizate într-o anumită ordine.

Fiecare coloană de tabelă trebuie să aibă un nume unic în orice tabel dat. Dar tabele diferite pot conține coloane cu același nume. De exemplu, tabelul Departamentului conține coloana Număr și o coloană cu același nume este disponibilă în tabelul Proiect.

Fiecare element de date din tabel trebuie să conțină o singură valoare. Aceasta înseamnă că orice celulă de la intersecția rândurilor și coloanelor din tabel nu conține niciodată un set de valori.

Fiecare tabel conține cel puțin o coloană ale cărei valori definesc o astfel de proprietate încât nici două rânduri nu conțin aceeași combinație de valori pentru toate coloanele din tabel. Într-un model de date relațional, o astfel de coloană se numește o cheie candidată. Dacă tabela conține mai multe chei potențiale, dezvoltatorul specifică unul dintre ele ca fiind cheia primară a acestui tabel. De exemplu, cheia primară a tabelului Departamentului este coloana Număr, iar tastele primare din tabelele Employee are Id. În cele din urmă, cheia primară a tabelului Works_on este combinația dintre coloanele EmpId și ProjectNumber.

Tabelul nu conține niciodată aceleași rânduri. Dar această proprietate există doar în teorie, pentru că motorul bazei de date și toate celelalte sisteme de relații baze de date permit existența acelorași rânduri în tabel.

SQL - limba bazei de date relaționale

Limba bazei de date relaționale dintr-un sistem SQL Server se numește Transact-SQL. Acesta este un fel de cele mai semnificative pentru astăzi limba bazei de date - limba SQL (Structured Query Language - limba de interogări structurate). Originea limbajului SQL este strâns legată de un proiect numit System R, dezvoltat și implementat de IBM la începutul anilor 80 ai secolului trecut. Prin acest proiect sa demonstrat că, folosind fundamentele teoretice ale operei lui Edgar F. Codd, este posibil să se creeze un sistem de baze de date relaționale.

Spre deosebire de limbile de programare tradiționale, cum ar fi C #, C ++ și Java, limba SQL este orientată spre setare. Dezvoltatorii limbii îl numesc, de asemenea, orientați spre înregistrare. Aceasta înseamnă că în SQL puteți interoga date din mai multe rânduri ale unuia sau mai multor tabele folosind doar o singură instrucțiune. Acesta este unul dintre cele mai importante avantaje ale limbajului SQL, ceea ce face posibilă utilizarea acestei limbi la un nivel logic mai ridicat decât limbile de programare tradiționale.

O altă proprietate importantă a limbajului SQL este lipsa de procedură. Orice program scris într-un limbaj procedural (C #, C ++, Java), pas cu pas, descrie modul de efectuare a unei sarcini specifice. În contrast, limbajul SQL, ca orice alt limbaj nonprocedural, descrie ceea ce vrea utilizatorul. Astfel, responsabilitatea pentru găsirea unei metode adecvate pentru satisfacerea solicitării utilizatorului se află pe sistem.

Limba SQL conține două sublanguage: limbajul de definiție a datelor (DDL) și limbajul de manipulare a datelor (DML). Instrucțiunile de limbă DDL sunt, de asemenea, folosite pentru a descrie schemele pentru tabelele bazei de date. Limbajul DDL conține trei instrucțiuni generale SQL: CREATE, ALTER și DROP. Aceste instrucțiuni sunt folosite pentru a crea, modifica și șterge obiecte de bază de date, cum ar fi baze de date, tabele, coloane și indexuri.

Spre deosebire de limbajul DDL, DML acoperă toate operațiile de manipulare a datelor. Patru operații generale sunt folosite întotdeauna pentru a manipula bazele de date: extragerea, inserarea, ștergerea și modificarea datelor (SELECT, INSERT, DELETE, UPDATE).







Articole similare

Trimiteți-le prietenilor: