EF Codd în 1970 a formulat conceptul de model de bază de date relațională. Modelul bazei de date relaționale este o formă convenabilă și cea mai comună de reprezentare a datelor sub forma unui tabel. În disciplinele matematice ale tabelului corespunde termenul "relație". De aici numele modelului - relațional.
Unul dintre principalele avantaje ale modelului relațional este omogenitatea acestuia. Toate datele sunt tratate ca fiind stocate în tabele în care fiecare linie are același format. Fiecare rând din tabel reprezintă un obiect din lumea reală sau o relație între obiecte.
Modelul relațional are două proprietăți principale:
1) porțiunile de bază ale datelor sunt relații;
2) operațiile pe tabele afectează numai relațiile.
Modelul prezintă următoarele tabele:
1. Datele din celulele tabelului trebuie să fie indivizibile din punct de vedere structural. Fiecare celulă poate conține doar o singură bucată de date. Această proprietate este deseori definită ca fiind principiul indivizibilității informațiilor. Este inadmisibil ca celula din tabelul modelului relațional să conțină mai mult de o singură bucată de date, care este uneori numită codificare a informațiilor.
2. Datele dintr-o coloană trebuie să fie de același tip.
3. Fiecare coloană trebuie să fie unică (coloanele duplicate nu sunt permise).
4. Coloanele sunt plasate în ordine aleatorie.
5. Rândurile sunt plasate în tabel și în ordine aleatorie.
6. Coloanele au nume unice.
O reprezentare structurată a datelor se numește un model de date. Unitatea principală de informații a bazei de date relaționale este tabelul. Bazele de date relaționale utilizează un model de date. Baza de date poate consta dintr-un tabel - o bază de date cu o singură masă sau dintr-un set de tabele interconectate - o bază de date cu mai multe tabele.
Elementele structurale ale tabelului sunt înregistrări și câmpuri.
Elementul cheie al datelor (cheia polemică cheie pur și simplu) este un element prin care puteți determina valorile altor câmpuri. Cheile sunt construite în jurul unuia sau mai multor câmpuri. Câmpurile cheie sunt utilizate pentru a crea relații inter-tabel.
Pentru fiecare tabel al bazei de date relaționale, trebuie definită cheia principală - numele câmpului sau a câtorva câmpuri al căror set de valori determină unic înregistrarea. Cu alte cuvinte, valoarea cheii principale nu trebuie repetată în înregistrări diferite. De exemplu, într-o bază de date a bibliotecii, o astfel de cheie poate fi selectată ca număr de inventar al cărții, care nu poate fi același pentru cărți diferite.
Pentru reprezentarea în șir a structurii tabelului, se utilizează formularul de mai jos:
TABLE_NAME (IMPORT_1, NAME_POOL_2, MAP__NAME_MODE)
Numele câmpurilor care alcătuiesc cheia principală sunt subliniate.
Există două reguli fundamentale pentru bazele de date relaționale: regula de integritate pentru obiecte și regula integrității referențiale. Conceptele de bază ale bazelor de date relaționale sunt „cheia primară“, „cheie străină“, „tipul de date“, „domeniu“, „diagrama relație“, „schema de baze de date“, „secvență“, „atitudine“.
Cheia primară este o coloană sau un subset de coloane care este unică, adică identifică în mod unic șiruri de caractere. O cheie primară care include mai mult de o coloană se numește plural sau combinat sau compozit. Alte chei care pot fi folosite și ca chei primare se numesc chei potențiale sau alternative.
O cheie străină este o coloană sau un subset dintr-o tabelă care poate servi drept cheie primară pentru un alt tabel. Cheia externă a tabelului este o referință la cheia primară a altui tabel. Regula de integritate a obiectelor afirmă că cheia primară nu poate fi complet sau parțial goală, adică fi nul. Regula de integritate referențială afirmă că o cheie străină poate fi fie goală, fie potrivită cu valoarea cheii primare la care se referă.
Conceptul de "tip de date" din modelul de date relațional este complet adecvat noțiunii de "tip de date" în limbile de programare. caracter în mod obișnuit, în baze de date relationale moderne să fie stocate, șiruri numerice de biți de date, date numerice specializate (de exemplu, „bani“), precum și date speciale „temporale“ (data, ora, intervalul de timp).
Conceptul de "domeniu" este mai specific pentru bazele de date. În forma cea mai generală, un domeniu este definit prin specificarea unui tip de date de bază, la care apar elementele de domeniu și a unei expresii logice arbitrare aplicate elementului de tip de date. Dacă calculul acestei expresii logice generează rezultatul "adevărat", atunci elementul de date este un element de domeniu. Interpretarea cea mai corectă intuitivă a conceptului de "domeniu" este înțelegerea domeniului ca un set potențial de valori admisibile pentru un anumit domeniu.
O schemă de relații este un set numit de perechi (nume de atribut, nume de domeniu (sau tip, dacă conceptul unui domeniu nu este acceptat)). Gradul sau "aritatea" sistemului de relații este puterea acestui set.
Schema DB (în sensul structural) este un set de scheme de relații numite.
Nucul. Acesta este setul de perechi "nume de atribut, valoare", care conține o apariție a fiecărui nume de atribut care aparține schemei relației. „Valoarea“ este o valoare validă a domeniului atribut (sau tipul de date, gradul sau „Arity“ tuple, adică numărul de elemente coincide în ea cu „aritatea“ circuit relație corespunzătoare pur și simplu, tuplu -. Un set de valori numite date de tip .
O relație este un set de tuple care corespund unei scheme de relații. Uneori, pentru a nu fi confundați, ei spun "schema de relații" și "relația-copie". Uneori schema de relații se numește antetul relației. iar relația ca un set de tupluri este corpul relației.
Domeniile sunt principalele elemente ale structurii bazei de date. Ei au proprietăți pe care depinde ce tipuri de date pot fi introduse în câmp și care nu pot și ce se poate face cu datele conținute în câmp. Proprietatea principală a oricărui domeniu este lungimea sa. Lungimea câmpului este exprimată în caractere sau, care este același lucru, în caractere. Lungimea câmpului depinde de câtă informație se poate potrivi. Deoarece caracterele sunt codificate cu unul sau doi octeți, putem presupune în mod condiționat că lungimea câmpului este măsurată în octeți. Proprietatea evidentă unică a oricărui domeniu este numele său. O bază de date nu poate avea două câmpuri cu același nume. Pe lângă numele câmpului, există și o proprietate de semnătură. O semnătură este informația care este afișată în antetul coloanei. Acesta nu poate fi confundat cu numele câmpului, deși în cazul în care semnătura nu este specificată, numele câmpului este afișat în antet. În câmpurile diferite pot fi atribuite aceleași semnături.
Fiecare câmp al mesei are un anumit tip. Un tip este un set de valori pe care un câmp le poate accepta și un set de operații care pot fi efectuate pe aceste valori. Există patru tipuri de bază pentru câmpurile bazei de date: caracter, numeric, logic și dată.
O cerință importantă pentru relațiile (tabelele) modelului relațional este normalizarea datelor prezentate în tabel. Tabelul normalizat principal conține linii în care poate exista o singură valoare pentru fiecare atribut. Acest lucru este în concordanță cu cerința menționată anterior de inadmisibilitate a structurilor de date multiple și repetitive.
O masă anormală corespunde, de obicei, uneia sau mai multor relații de masă normalizate. Normalizarea este o parte esențială a etapei de proiectare a sistemelor informatice, deoarece vă permite să aduceți tabelele originale în vederea unei procesări cele mai eficiente în viitor. Normalizarea este un proces pas cu pas de partiționare a tabelelor sursă în mai simple, care trebuie să satisfacă două cerințe de bază:
§ între câmpurile mesei nu trebuie să existe dependențe funcționale indezirabile;
§ gruparea câmpurilor în tabele ar trebui să asigure duplicarea minimă a datelor, căutarea, prelucrarea și actualizarea eficientă (fără dificultăți) a datelor.
Au fost definite mai multe forme normale de bază (NF), fiecare eliminând anumite dependențe între domenii și eliminând anumite dificultăți în prelucrarea datelor:
I. Ei spun că raportul este în prima formă normală. dacă toate atributele sale sunt simple.
II. Se spune că raportul este în a doua formă normală. dacă îndeplinește cerințele primei forme normale și fiecare atribut non-cheie este complet funcțional dependent de cheie (determinată în mod unic de aceasta).
III. Ei spun că raportul este în a treia formă normală. dacă îndeplinește cerințele celei de-a doua forme normale și orice atribut non-cheie este netransitiv în funcție de cheie. Rețineți că tranziția este o astfel de dependență, în care orice atribut non-cheie depinde de un alt atribut non-cheie și care, la rândul său, depinde de cheie.
Ideea fundamentală este aceea că, pentru a aduce tabelele la starea care îndeplinește cerințele de forme normale, sau, cum se spune, pentru a normaliza datele de pe ele ar trebui să fie efectuate funcționarea algebra relațională.
Pentru a aduce masa la 1НФ (repetarea acelorași câmpuri este nedorită) este necesar să se îndeplinească următoarele reguli:
1. Fiecare câmp trebuie să fie atomic, adică conține un singur element de date.
2. Câmpurile din tabel nu trebuie repetate.
Aducerea tabelului la 2NF (fiecare câmp trebuie să depindă de o singură cheie primară) necesită respectarea următoarelor reguli:
1. Fiecare tabel conține date despre un obiect (obiect).
2. Fiecare tabel trebuie să conțină un câmp de cheie primară, care este un identificator unic pentru fiecare înregistrare (linie).
3. Câmpurile rămase (non-cheie) trebuie să se refere la cheia primară, adică depinde de aceasta.
· Duplicarea (redundanța) datelor;
· Anomalii în operațiunile de adăugare, ștergere și actualizare (schimbare) de date.
Regula: Tabelul este în 3NF, dacă este în 2NF și nu există așa-numitele. dependențele tranzitorii ale câmpurilor nonkey din cheia primară.
În caz contrar, regulile pentru 3NF seamănă astfel: toate câmpurile ne-cheie trebuie să fie independente reciproc. și anume Schimbarea câmpului non-cheie nu ar trebui să conducă la o schimbare în celălalt câmp non-cheie.
3. OPERAȚIUNI CU DATE ÎN MODELUL RELAȚIONAL
Operațiile de procesare a datelor cuprind operațiuni pe rânduri (tupluri) ale tabelelor (relațiilor) și operațiunilor pe relații care procesează date din mai multe relații.
Operațiile efectuate la nivelul liniilor de relaționare sunt includerea, ștergerea și actualizarea. La includerea în tabel se adaugă noua linie (tuplă). Pentru a efectua această operație, trebuie să specificați numele tabelului și să specificați valorile pentru atributele liniei noi (valorile cheie sunt obligatorii). Când ștergeți un tabel, rândul este șters. Pentru a efectua această operație, trebuie să specificați numele tabelului și să specificați valoarea cheii primare a rândului care trebuie șters. Pentru a șterge un grup de rânduri, trebuie să specificați valoarea cheii secundare. Când se actualizează, valorile atributului din rânduri sunt modificate. Pentru a actualiza, trebuie să specificați un nume de tabel, o valoare a cheii primare pentru a identifica șirul actualizat și să specificați numele de atribute și noile lor valori.
Operatorii de limbaj relațional se ocupă de tabelul de relații ca un singur obiect. Rezultatul prelucrării este întotdeauna o relație de masă nouă, care poate fi de asemenea procesată. Operațiunile de bază ale relații model de date relaționale sunt operații tradiționale set: uniune, intersecție, diferență (scădere), un produs cartezian, și operațiuni speciale: selecție de proiecție, se alăture, și stabilește diviziunea. Totalitatea acestor operațiuni formează o algebră completă a relațiilor.
Să luăm în considerare operatorii de bază ai limbajului de algebră relațională.
Combină - operația se efectuează pe două relații compatibile (cu structura identică -). Ca urmare a operațiunii de unificare, se construiește o nouă relație. Relația R are aceeași compoziție a atributelor și setul de tupluri ale relațiilor inițiale. Și în acest set nu includeți duplicate.
Intersecție - operația se efectuează pe două relații compatibile. Relația rezultată conține aceleași tupluri care sunt în fiecare din cele două tupluri sursă. Rezultatul intersecției are aceeași compoziție de atribute ca și cele originale.
Scădere - operația se efectuează pe două relații compatibile cu un set identic de atribute. Ca rezultat al operației de scădere este construită o nouă relație cu un set identic de atribute, numai acele tupluri care conțin primul raport care nu se repetă în altă privință.
Un produs cartezian este executat în două relații care, în cazul general, au atribute diferite: () și, respectiv, (). Ca urmare a operațiunii carteziană a produsului, se formează o nouă relație care include toate atributele relațiilor originale (). Relația rezultată constă din toate combinațiile posibile de tupluri ale relațiilor originale. Numărul tuplilor unui produs cartezian este egal cu produsul numărului de tupluri din relațiile originale.
Selectați - o singură operație este realizată pe R. raportul Pentru raportul R unei condiții predeterminate (predicat) este efectuat tuple eșantion subset. Relația rezultată are aceeași structură, dar numărul de tupluri va fi mai mic (sau egal) cu cel original.
Proiecția - o singură operație este realizată pe R. raportul Funcționarea proiecției formează un nou raport (RPR) la un subset predeterminat al R. atribute și relații secvență de pornire Poate conține mai puțin tupluri, deoarece după scăderea inițială în raport cu atributele parțiale R (posibilă excepție, cheia primară) poate tuple, duplicându-se reciproc. tuple duplicat sunt eliminate din relația rezultată. Proiecția vă permite să reordona domeniile în relație.
Se face o conexiune pentru o anumită condiție pe două relații logice. Relațiile inițiale și au structuri diferite în care există aceleași atribute - chei străine (chei de comunicare). Operația de îmbinare formează o nouă relație, a cărei structură este setul tuturor atributelor relațiilor originale. Tichetele rezultate sunt formate prin combinarea fiecărei tuple cu acele tuple pentru care condiția este satisfăcută. În acest caz, de regulă, aceleași valori ale cheii străine în relațiile originale sunt condiția.
Diviziune - o operațiune se desfășoară pe două relații și, în general, are structuri diferite și unele atribute identice. Ca urmare, se formează o nouă relație, a cărei structură se obține prin excluderea din mulțimea de atribute a raportului dintre setul de atribute de relație. Rândurile rezultate nu trebuie să conțină duplicate.
Operațiile descrise sunt implementate într-un fel sau altul în instrumentele sistemelor de gestionare a bazelor de date care susțin procesarea meselor relaționale. Aceste instrumente includ instrumente de interogare și alte construcții de limbi. Dezvoltarea abordării relaționale a condus la crearea de limbi de relaționare. limbajul SQL este implementat în cele mai multe sisteme de management al bazei de date este mai mult decât relațional-plin ca operațiunile de algebra relațională, cu excepția conține un set complet de operatori pe rândurile, și, de asemenea, pune în aplicare operațiunile și operațiunile de comparare aritmetică.
Modelele relationale au o serie de avantaje: ușurința de reprezentare a datelor a modelului relațional printr-un format tabelar, redundanța minimă de date la normalizarea relațiilor. Modelele relaționale oferă: independența aplicațiilor utilizatorilor de date, care permite includerea sau ștergerea relațiilor, modificând compoziția atributului relației. Universalitatea procedurilor de prelucrare a datelor este baza unor instrumente tipice în diferite sisteme de gestionare a bazelor de date relaționale. Dezavantajele modelului relațional este faptul că normalizarea modelului relațional de date duce la fragmentare semnificativă a datelor, în timp ce în majoritatea sarcinilor necesare pentru a uni datele fragmentate.