Conceptul unui model relațional aparține omului de știință american E. Coddu [14,18,24].
Modelele de date relaționale (RMD), spre deosebire de rețeaua de mai sus și cele ierarhice, se caracterizează printr-o mai mare standardizare și simplitate a structurilor de date, o prezentare de tabelă prietenoasă și accesul la date.
Operațiile de procesare a datelor din modelul relațional se bazează pe utilizarea algebrelor relaționale formale. Acest lucru asigură utilizarea instrumentelor tipice de procesare simple în diferite baze de date relaționale. Astfel de instrumente includ, de exemplu, limba relațională a interogărilor structurate SQL. Spre deosebire de bazele ierarhice și de rețea, bazele de date relaționale nu necesită descrierea schemei de date și generarea acesteia, adică nu este nevoie să configurați DBMS pentru o structură de bază de date specifică.
Structuri de date structurale relaționale
Masa relațională este tipul principal al structurii de date (obiect) al modelului relațional. Structura acestui tabel este determinată de un set de coloane (atribute).
Coloana corespunde unui element de date - un atribut simplu, care este cea mai simplă structură de date. În tabel, mai multe elemente, un grup sau un grup repetat nu pot fi definite, ca în modelele ierarhice sau de rețea discutate mai sus. Astfel, masa are o structură pur liniară.
Principala unitate logică de procesare (căutare, recuperare, sortare, calcul) în baza de date relațională este rândul de tabelă.
Cele mai importante proprietăți ale unei mese relaționale sunt:
· Nu pot exista două linii identice.
· Fiecare linie conține o valoare pentru fiecare atribut.
Numele fiecărei coloane (atribut) trebuie să fie unică în structura tabelului, adică numele nu pot fi repetate în același tabel.
Definiții și concepte de bază ale abordării relaționale
În abordarea relațională a bazelor de date se utilizează terminologia teoriei relaționale. O masă relațională este numită relație. Coloana tabelului cu valorile atributului corespunzător se numește domeniu. și linii cu valori ale diferitelor atribute - o tuplă.
Relația de masă relațională. Figura 2.4 este o ilustrare generală a relației de masă relațională R.
Definirea formală a raportului R (tabelul relațional) se bazează pe ideea domeniilor lui Di (coloane) și tuple Kj (rânduri).
Relația R definită pe seturile de domenii í D i ý . Se numește un subset al produsului cartezian al domeniilor D1 * D2 *. * DN.
Fig.2.4 Ilustrația raportului de masă relațional R a dimensiunii n = 6.
Relația de masă R (figura 2.4) conține coloane cu numele atributelor (A1, A2.). Valorile atributelor d se găsesc în conținutul tabelului și formează rânduri și coloane. Un set de valori de atribute într-o singură linie formează o nuculă K j. Un set de valori de atribute într-o singură coloană formează un domeniu Di.
Relația R este formată dintr-un set de tupluri ordonate
j - numărul tuplei; m este numărul total de tupluri într-o relație, numit numărul de coordonate al relației.
Dimensiune - parametrul structurii de date, numărul coordonatelor - parametrul matricei de date
Tasta pentru relația de masă. Nu este nevoie ca reperele să fie repetate în interiorul tabelului de relații și, prin urmare, trebuie să aibă un identificator unic - cheia primară. În general, există două tipuri de chei: o cheie primară (unică) (PC) și o cheie secundară (VC)
O cheie primară (PC) este unul sau mai multe atribute care identifică în mod unic un rând. Dacă cheia primară constă dintr-un atribut, se numește simplu. dacă mai multe - o cheie primară compusă. Prin valoarea cheii primare, se poate găsi o singură instanță a șirului tuple.
Cheie secundară (VC). Spre deosebire de cel primar, acesta este un atribut a cărui valoare poate fi repetată în mai multe rânduri ale tabelului, adică nu este unic. Cu valoarea cheii secundare, există mai multe rânduri cu aceeași valoare a acestei chei. Atributele care fac parte din cheia primară sunt cheile secundare.
Indexarea. Mijloacele de acces efectiv prin cheie la date sunt indexarea. Când se indexează, se creează un set index suplimentar, care conține într-o formă ordonată toate valorile cheii de tabelă. Pentru fiecare valoare cheie din setul index, există un pointer la șirul corespunzător. Dacă aveți un set index care este mai mic decât tabela de date, cheia specificată este căutată rapid. Folosind pointerul, puteți accesa direct șirul de căutare. Indexarea poate fi efectuată nu numai pe cheia primară, dar și pe cheia secundară.
Normalizarea datelor modelului relațional
O cerință importantă pentru relațiile (tabelele) modelului relațional este normalizarea datelor prezentate în tabel. Orice masă relațională trebuie să îndeplinească cel puțin cerința normalizării primare.
Tabelul normalizat principal conține linii în care poate exista o singură valoare pentru fiecare atribut. Aceasta corespunde cerinței obligatorii a inadmisibilității structurilor de date multiple și repetitive în tabela relațională.
Există câteva forme normale ale modelului relațional care introduc restricții și vă permit să minimalizați dublarea datelor, asigurați integritatea, introducerea unică a datelor:
· La prima formă normală, toate atributele relației trebuie să fie simple;
· În a doua formă normală, toate atributele de relație sunt simple și fiecare atribut non-cheie este funcțional complet dependent de cheie.
Dependența funcțională completă a unui atribut nonkey înseamnă că cheia identifică în mod unic un atribut cheie nonkey. Aceasta înseamnă că o valoare a cheii corespunde unei valori a atributului nonkey. Dacă cheia este compusă, atunci o astfel de dependență trebuie executată la nivelul întregii chei și nu la nici o parte din ea.
· Cu a treia formă normală, toate atributele relației sunt simple și fiecare atribut non-cheie depinde în mod funcțional în totalitate de cheie și nu transitiv.
Dacă tabelele relaționale se află în prima formă normală, atunci, de regulă, există o dublare considerabilă a datelor.
Mai jos este un exemplu de tabel relațional primar normalizat al tabelului (Fig.2.5).
Există, de asemenea, forme mai mari de normalizare, care nu au semnificație practică [18].
Dacă acceptați ca cheie pentru livrarea planificată să acceptați identificatorul contractului + identificatorul produsului, cerința celui de-al doilea formular normal nu este în mod evident îndeplinită, deoarece atributul clientului este complet dependent de id. Contract, adică parte a cheii.
Dacă acceptați identificatorul contractului drept cheie ......
Dacă acceptați ID-ul produsului ca cheie ....
Masa abnormalizată, prezentată în figura 2.5, va corespunde a două tabele relaționale (relații) R1 și R2 (figura 2.6) în a doua formă normală
Relația R1 - acord
Identificarea contractului (cheie)
Figura 2.6. Două tabele relaționale sunt rezultatul normalizării datelor
Relațiile logice în modelul relațional, baza de date relațională
Legături logice ale tabelelor normalizate. De asemenea, anumite atribute în diferite aspecte sunt un mijloc de conectare logică între tuplele diferitelor relații și joacă rolul unei chei de comunicare
Pentru organizarea relațiilor de grup a rândurilor a două tabele normalizate, se determină relația logică a relației de masă normalizate R1 cu relația de masă R2 normalizată subordonată. Acesta din urmă trebuie să conțină o cheie străină - cheia relației de masă principală R1.
Cheia externă a tabelului de relații subordonate (în comunicare) este adesea cheia secundară a acestei relații sau nu atributul cheie.
Baza de date relațională. Un set de realizări ale relațiilor normalizate (tabele relaționale), interconectate logic și reflectând o anumită arie, formează o bază de date relațională.
Ca urmare a proiectării bazei de date relaționale, trebuie determinată compoziția tabelelor relaționale logic interconectate și determinată compoziția atributelor fiecărei relații.
Integritatea bazei de date. Baza de date relațională a datelor normalizate poate fi înzestrată cu proprietățile de menținere a integrității.
Integritatea este un set de reguli definite care stabilesc admisibilitatea tipurilor, valorilor datelor, absența duplicării și a valorii obligatorii a atributelor în diferite obiecte ale bazei de date și corectitudinea relațiilor dintre tabele.
Integritatea referențială este cerința ca un rând legat de tabelul principal să fie necesar pentru fiecare rând al tabelului subordonat. Astfel, valoarea externă a cheii de comunicare a tabelului subordonat trebuie găsită întotdeauna cu aceeași valoare a cheii primare [17]. Integritatea referențială poate fi menținută automat, cu condiția ca tabelele bazei de date să fie normalizate. Normalizarea tabelelor poate fi furnizată în faza de proiectare a bazei de date.
Descrierea organizării logice a unei baze de date relaționale ar trebui să determine structura acesteia. Aceasta include definirea unei liste de tabele și o descriere a structurii fiecărui tabel. Descrierea structurii fiecărei relații (tabel relațional) trebuie să conțină un nume de tabel unic în baza de date; compoziția și secvența atributelor tabelului; setarea unor nume de atribute unice (în tabel); Determinați tipul și dimensiunea dată pentru fiecare atribut. În plus, pentru fiecare relație trebuie să fie specificată o cheie primară (unică) (simplă sau compusă). Pentru tabelele între care sunt stabilite conexiunile logice, trebuie definite cheile de comunicare, adică cheile externe din tabelele subordonate.
Un exemplu de structură de bază de date relațională. Figura 2.7 prezintă un exemplu de structură de bază de date care conține informații despre contracte la utilizarea modelului relațional. Aceleași informații sunt prezentate în Figura 2.1, dar folosind o înregistrare ierarhică.
După cum puteți vedea din compararea acestor exemple, cu organizarea ierarhică a datelor, au existat duplicări de date despre aceiași clienți și despre aceleași produse în contracte diferite.
Figura 2.7. Un exemplu de structură a unei baze de date relaționale care conține informații despre contracte.