Concepte de bază ale bazelor de date - studopediya
Relational Data Model
Modelul de date relațional a fost propus E.F.Koddom în 1969. O bază de date relațională este un depozit de date care conține un set de tabele bidimensionale. Set de comenzi pentru un astfel de depozit este numit un sistem de management al bazelor de date relaționale (RDBMS). RDBMS pot include utilități, aplicații, servicii, biblioteci și instrumente pentru crearea de aplicații și alte componente.
Orice tabel de date relațională cuprinde rânduri (numite și înregistrări) și coloane (care sunt numite și câmpuri).
Rândurile tabel conține informații despre faptele prezentate în ea (sau documente sau altele, într-un cuvânt - despre aceleași obiecte). La intersecția coloanei și rând sunt valori specifice cuprinse în tabelul de date.
Datele din tabele sunt conforme cu următoarele principii:
1. Fiecare valoare cuprinsă la intersecția dintre rânduri și coloane trebuie să fie atomic (adică să nu fie împărțită în mai multe valori).
2. Valorile date în aceeași coloană trebuie să aparțină unuia și aceluiași tip, disponibile pentru utilizare în această bază de date.
3. Fiecare intrare în tabel este unic, care este, în tabel, nu există două înregistrări cu un set complet coincidentă de valori ale câmpurilor sale.
4. Fiecare câmp are un nume unic.
5. Ordinea câmpurilor din tabel este lipsit de importanță.
6. Secvența de înregistrări este, de asemenea, nesemnificativ.
Deoarece secvența de coloane din tabel este nesemnificativă, a făcut un apel după nume, iar aceste nume sunt unice pentru un anumit tabel (dar nu trebuie să fie unic pentru întreaga bază de date).
Deoarece rândurile din tabel sunt dezordonate, este necesară o coloană (sau un set de mai multe coloane) pentru a identifica în mod unic fiecare rând. Această coloană (sau un set de coloane) se numește cheie primară (cheie primară). Orice cheie primară a tabelului trebuie să conțină un unic valori non-goale pentru fiecare rând.
Dacă cheia primară constă din mai mult de o coloană se numește cheie primară compozit (element primar compozit).
O bază de date tipică constă, de obicei, din mai multe tabele aferente. Coloana indică spre o intrare într-un alt tabel asociat cu această înregistrare, numit cheia externă (cheie externă). Cu alte cuvinte, cheia externă - o coloană sau un set de coloane ale căror valori coincid cu fiecare tabel având o valoare a cheii primare. O astfel de relație între tabele se numește o legătură (relație). Comunicarea între cele două tabele este stabilită prin atribuirea unei chei primare a valorilor de masă ale valorilor străine cheie altele.
În cazul în care fiecare intrare într-un tabel corespunde cu o singură intrare altul, aceste două tabele sunt legate de unu-la-unu (unu-la-unu relație). Dacă fiecare înregistrare într-un tabel corespunde cu zero, unu sau mai multe alte înregistrări, aceste două tabele sunt legate de unu-la-multe (one-to-many relație) sau o relație master-detaliu. Relații similare între tabele sunt utilizate cel mai frecvent. În acest caz, un tabel care conține cheia externă se numește un tabel detaliu. un tabel care conține cheia primară, care definește valorile posibile pentru cheia externă, numită master-masă.
Un grup de tabele înrudite este numită schema bazei de date (schema de baze de date). Informații despre tabelele, coloanele lor (nume, tip de date, lungimea câmpului), chei primare și străine, precum și alte obiecte de baze de date numite metadate (metadate).
Orice manipulare a datelor din bazele de date, cum ar fi selectarea, inserarea, ștergerea, actualizarea datelor, modificarea sau selectați metadatele, numită interogare a bazei de date (interogare). De obicei, cererile sunt formulate în orice limbă, care poate fi fie un standard pentru diferite baze de date, și în funcție de RDBMS particular.
Afirmația de mai sus este faptul că cheia primară a fiecărui tabel trebuie să conțină o valoare unică non-gol pentru masa este una dintre regulile de integritate referențiale (integritatea referențială). Unele SGBD pot controla chei primare unice.
În cazul în care două tabele sunt legate de master-detaliu relația. tabel cheie externă detail- trebuie să conțină numai acele valori care sunt deja printre tabelul Master- de valori-cheie primare. În cazul în care valabilitatea valorilor cheie străine nu sunt controlate de baza de date, putem vorbi despre încălcarea integrității referențiale.
obiectele bazei de date
Cele mai multe baze de date conțin mai multe tipuri diferite de obiecte, de exemplu, tabele pentru stocare, coduri pentru datele de sortare și cheile de sprijin, constrângeri sau reguli (constrângeri, reguli) pentru a menține constrângerile referențiale de integritate valori de date declanșează (declanșatoare) și procedurile memorate (stocate proceduri) pentru stocarea de cod executabil.
Tabelele sunt susținute de toate bazele de date relaționale, și tipurile de date pot fi stocate în domeniile lor.
Cele mai multe chei de baze de date relaționale sunt implementate folosind obiecte numite indici, care pot fi definite ca o listă de numere de înregistrare pentru a indica ordinea în care le oferă. Intrările pentru tabele relaționale neordonate, dar orice post de la un moment dat are o locație fizică definită în fișierul de bază de date, ceea ce permite, de asemenea, să definiți indici. Locația fizică a înregistrărilor pot fi schimbate în utilizatorii de date procesului de editare, precum și manipularea fișierelor bazei de date deținute de SGBD în sine. În cazul în care acest lucru este însoțită de schimbări în indicele corespunzător, este numit sprijinit.
Restricții și reglementări
Cele mai multe servere de baze de date moderne conțin obiecte speciale numite constrângeri (constrângeri) sau regulile (reguli). Aceste obiecte conțin informații cu privire la restricțiile impuse asupra valorilor posibile pentru câmpurile. De exemplu, cu un astfel de obiect, puteți seta valoarea maximă sau minimă pentru câmpul, și apoi baza de date nu ar permite să țină evidența bazei de date care nu îndeplinește această condiție.
Declanseaza sau proceduri stocate
Declanșatoare și proceduri stocate sunt acceptate în cele mai multe baze de date de server moderne, folosit pentru stocarea de cod executabil.
Declanșatoare conține, de asemenea, codul executabil, dar, spre deosebire de procedurile nu pot fi apelate dintr-o aplicație client sau o procedură stocată. Declanșatorul este întotdeauna asociat cu o anumită masă, și executat atunci când editați acest eveniment de masă are loc, acesta este asociat cu (de exemplu, insera, șterge sau înregistrări de actualizare).
Obiecte pentru generarea cheie primară
Foarte des, cheile primare sunt generate de SGBD în sine. Acest lucru este mai convenabil decât generația lor în aplicația client, deoarece multi-utilizator generarea cheie folosind baza de date - aceasta este singura modalitate de a evita duplicarea cheilor și pentru a primi o valoare reală.
În diverse obiecte de baze de date diferite sunt utilizate pentru a genera chei. Unele dintre aceste obiecte sunt stocate întreg, iar regulile prin care este generată ca urmare a valorii. Unele baze de date sprijină tipuri speciale de câmpuri pentru chei primare. Când adăugați intrări astfel câmpuri sunt completate automat valori consecutive (de obicei intacte). În cazul Microsoft Access și Microsoft SQL Server, aceste câmpuri sunt numite câmpuri de identitate.
Utilizatorii și rolurile
Prevenirea accesului neautorizat la date este o problemă gravă, care poate fi rezolvată în moduri diferite. Cel mai simplu - este protecția prin parolă, sau un tabel întreg sau unele dintre domeniile sale. În prezent, mai popular alt mod de a proteja datele - crearea unei liste de utilizatori (utilizatori) cu numele (nume de utilizator) și parole (parole). Această metodă se aplică pentru toate serverele și unele baze de date pentru desktop (de exemplu, Microsoft Access).
Unele baze de date, în principal, servere de sprijin nu numai lista de utilizatori, dar, de asemenea, rolul (rolurile). Rolul - este un set de privilegii. În cazul în care un anumit utilizator primește unul sau mai multe roluri, apoi împreună cu ei - și toate privilegiile care sunt definite pentru acest rol.
Orice sistem de management al bazelor de date relaționale care suportă listele de utilizatori și roluri, acestea trebuie să fie depozitate undeva. În plus față de aceste liste, in mai multe baze de date stoca liste de tabele, indecși, triggere, proceduri, etc. precum și informații despre cine le deține. Aceste liste se numesc tabele de sistem (tabele de sistem), și partea corespunzătoare a bazei de date numit directorul de sistem (catalog de sistem). DBase și baza de date Paradox nu acceptă cataloagele sistemului.
Baza de date interogări
Modificarea și selectarea datelor, modificări ale metadatelor și alte operații sunt efectuate utilizând interogarea (interogare). Cele mai multe sisteme moderne de management al bazelor de date (și unele instrumente de dezvoltare de aplicații) cuprind mijloace pentru generarea unor astfel de cereri.
De multe ori rezultatul interogării este setul de rânduri și coloane (seturilor de date). Spre deosebire de o masă relațională într-un rând setat în ordine, iar ordinea lor este determinată de interogarea inițială (și uneori - prezența indicilor). Prin urmare, putem identifica rândul curent în acest set și un pointer la acesta, care se numește cursorul (cursor).
Structured Query Language (SQL) - acesta este un limbaj non-procedural folosit pentru a interoga baza de date cu formulare în cele mai multe baze de date moderne și este în prezent standardul industriei. Limbajul non-procedural înseamnă că puteți specifica în ea, care au de a face cu baza de date, dar este imposibil de a descrie algoritmul pentru acest proces. Toți algoritmi de SQL-interogări generate de prelucrarea SGBD în sine și care nu depind de utilizator.
Declanșatoare și procedurile memorate sunt scrise într-un limbaj procedural specific unei anumite baze de date. Cele mai multe SGBD astfel de limbi sunt extensiile SQL procedurale, și în afară de declarațiile SQL obișnuite conțin un set de structuri algoritmice, cum ar fi să înceapă ... sfârșit, dacă ... atunci ... altceva, etc. Fiecare bază de date are propriul dialect extensii procedurale SQL (în baza de date Oracle se numește PL / SQL, Baze de date Microsoft SQL Server - Transact-SQL, etc.).
Funcțiile definite de utilizator
Unele SGBD vă permit să utilizați funcții definite de utilizator (UDF-Funcții Definit de utilizator). Aceste funcții sunt de obicei stocate în biblioteci externe și ar trebui să fie înregistrate în baza de date, după care acestea pot fi utilizate în interogări, declanșatoare și procedurile memorate.
Tranzacție (Transaction) - un grup de operațiuni pe date care fie toți împreună sau anulat toate împreună. Finalizarea (Commit) tranzacție înseamnă că toate operațiunile care alcătuiesc finalizarea tranzacției cu succes și rezultatele lor sunt stocate în baza de date. Rollback (Rollback) tranzacția înseamnă că toate efectuat deja operațiune, incluse în tranzacție sunt aruncate și toate obiectele bazei de date afectate de aceste operații sunt returnate la starea inițială.