Релационна база данни е тип база данни, която съхранява множество данни във вид на релации, съставени от записи и атрибути (полета) и възприемани от потребителите като таблици. Релационните бази данни понастоящем преобладават при избора на модел за съхранение на финансови, производствени, лични и други видове данни.
Софтуерът, който се използва за организиране и управление на този вид бази данни се нарича най-общо система за управление на релационни бази данни (СУРБД).
Терминът „релационна база данни“ за първи път е предложен през 1970 година от Едгар Код, учен в IBM.
Теорията на релационните бази данни използва набор от математически термини, които имат съответствия с термините, използвани при SQL базите данни:
Като синоними се използват и понятията клас в смисъла на релация с точно определени атрибути и екземпляр на класа в смисъл на един от записите на тази релация.
Релацията (relation) се дефинира като множество от записи, които имат едни и същи атрибути. Записът обикновено представя обект и информация за обекта, който обичайно е физически обект или понятие. Релацията обикновено се оформя като таблица, организирана по редове и колони. Всички данни, които се съдържат в даден атрибут, принадлежат на едно и също множество от допустими стойности, наречено домейн, и съблюдават едни и същи ограничения.
Характеристики на релацията:
Физическата организация на данните в паметта няма значение за релационния модел, в който важи само логическата им организация.
Приложенията за бази данни осъществяват достъп до данните, като отправят заявки, които използат операции като select (селекция), за да се идентифицират записите, project (проекция), за да се идентифицират атрибутите, и join (съединение), за да се комбинират релации. Релациите се манипулират чрез операторите create (създаване), insert (вмъкване), delete (изтриване) и update (актуализиране).
В релационната база данни, всички данни се съхраняват и обработват посредством релации. Релациите, които съхраняват данните, се наричат базови релации (base relations) или таблици (tables). Други релации обаче не съхраняват данни, а се изчисляват чрез прилагането на операции над други релации. Наричат се производни релации (отношения), а в приложенията за бази данни се наричат заявка (query) и изглед (view). Предимството на производните релации е, че функционират като една релация, въпреки че могат да включват информация от няколко релации.
Домейн в базите данни означава множеството от допустимите стойности на даден атрибут на релация, т.е. представлява известно ограничение върху стойностите и името на атрибута. Математически погледнато, прилагането на домейн към даден атрибут означава, че атрибутът приема за стойности елементите от дадено множество.
Ограниченията (constraints) позволяват в още по-голяма степен да се специфицират стойностите, които атрибутите от даден домейн могат да приемат. Например, за атрибут от домейна на целите числа, може да е валидно ограничение на стойностите между 1 и 10. Ограниченията предлагат един от методите за реализиране на бизнес правилата в базите данни.
Ограниченията стесняват обхвата на данните, които могат да се съхранят в релациите. Те могат да се приложат над отделни атрибути, над записи или над цялата релация.
Ключ (key) се наричат един или повече атрибута със специално предназначение в таблицата на релацията. Видът на ключа определя предназначението му. Съществуват четири различни вида ключове в базите данни:
Най-важните сред тях са първичният и външният ключове. Всяка таблица трябва да съдържа поне един първичен ключ.
Първичен ключ (primary key) е атрибут (по-рядко група атрибути), който служи да идентифицира по уникален начин всеки запис (екземпляр) на релацията. Когато измежду атрибутите на релацията няма един подходящ за първичен ключ атрибут, вариантите са:
Външният ключ (foreign key) е необходим, когато налице е отношение между две таблици (релации). Отношението се създава, като копие от първичния ключ на едната таблица се включи в структурата на втората таблица, за която той е външен (понеже тя вече си има свой собствен първичен ключ). Освен да помогне в установяването на отношение между двете таблици, външният ключ помага да се осигури и интегритета (целостта) на ниво отношение.
Отношение (relationship, в някои източници с това значение е натоварен терминът релация) се нарича зависимост, съществуваща между две таблици, когато записи от първата таблица могат да се свържат по някакъв начин със записи от втората таблица. Три са възможните видове отношения, още известни като кардиналности или кардинални числа (cardinality):
Отношението от вид „едно към едно“ е налице, когато всеки запис от една таблица е свързан с най-много един запис от втора таблица и всеки запис от втората таблица е свързан най-много един запис от първата таблица. Този вид отношение е специално, защото е единственото, при което двете таблици могат да споделят един общ първичен ключ. Възможно е обаче и първичните им ключове да са различни и отношението да се създава с използване на външен ключ, като първичният ключ на едната таблица, без значение коя, се включи в структурата на другата.
Отношение „едно към много“ между две таблици съществува тогава, когато един запис от първата таблица, наречена родителска, може да бъде свързан с много записи от втората таблица, наречена дъщерна, но запис от дъщерната таблица може да бъде свързан само с един запис от родителската таблица. Отношението между двете таблици се създава като копие на първичния ключ на родителската таблица се включи в структурата на дъщерната таблица, за която той представлява външен ключ. В литературата се среща и кардиналността „много към едно“ (N:1), която е вариант на „едно към много“. Това е най-често срещаният вид отношение между таблици.
Отношението „много към много“ съществува когато един запис от едната таблица може да се свърже с много на брой записи от втората таблица, и един запис от втората може да се свърже с много на брой записи от първата таблица. За да се създаде на практика това отношение, се използва нова, свързваща или асоциираща таблица, която съдържа копия на първичните ключове на двете таблици. От една страна свързващата таблица представлява сложен първичен ключ на отношението, а от другата страна, всеки от първичните ключове на изходните таблици играе ролята на външен ключ за свързващата таблица.
Заявките, които се отправят към релационната база данни, и извлечените в резултат подтаблици се изразяват със средствата на релационната алгебра (релационно смятане). В своята оригинална релационна алгебра, Код въвежда осем релационни оператора в две групи по четири. Първите четири оператора са били базирани на традиционните математически операции над множества:
UNION
.INTERSECT
.EXCEPT
или MINUS
.CROSS JOIN
.Останалите оператори, предложени от Код, включват операции, които са специфични за релационните бази данни.
SELECT
с клауза WHERE
.GROUP BY
или чрез ключовата дума DISTINCT
, внедрена в някои диалекти на SQL.INNER JOIN
. Други видове съединение са лявото и дясното външни съединения, внедрени в SQL като LEFT JOIN
и RIGHT JOIN
, съответно.В добавка към въведените от Едгар Код осем оригинални оператора, впоследствие са въведени и други, включително оператори за релационно сравнение и разширения, които реализират йерархични, темпорални, размити данни и т.н.
Друго понятие, което е първоначално предложено от Код като съществена част от релационния модел, е нормализацията на базите данни. Нормализацията, т.е. привеждането в нормална форма включва набор от практики по отстраняването на повторения сред данните, което от една страна води до икономия на памет и повишено бързодействие, а от друга страна предпазва от аномалии при манипулирането с данните (вмъкване, актуализиране и изтриване) и от загуба на тяхната цялост. В процеса на нормализация се осигурява оптимална структура на базата от данни, основаваща се на взаимозависимостта между данните. Структурата на таблиците се трансформира, с цел да се оптимизират функционалните зависимости на съставните им атрибути.
Тази страница частично или изцяло представлява превод на страницата Relational database в Уикипедия на английски. Оригиналният текст, както и този превод, са защитени от Лиценза „Криейтив Комънс – Признание – Споделяне на споделеното“, а за съдържание, създадено преди юни 2009 година – от Лиценза за свободна документация на ГНУ. Прегледайте историята на редакциите на оригиналната страница, както и на преводната страница, за да видите списъка на съавторите.
ВАЖНО: Този шаблон се отнася единствено до авторските права върху съдържанието на статията. Добавянето му не отменя изискването да се посочват конкретни източници на твърденията, които да бъдат благонадеждни. |