Реляционные базы данных
Реляционная база данных содержит набор двухмерных таблиц, что позволяет хранить данные об объектах предметной области и моделировать связи между ними.
В реляционных базах данных фигурируют также вспомогательные таблицы, Запросы. Запрос содержит нужные данные из одной или нескольких таблиц.
Данные в таблицах должны удовлетворять следующим принципам:
- каждое значение, содержащееся в ячейке таблицы, должно быть простым, не расчленяемым на несколько значений.
- значения в каждом столбце должны принадлежать к одному и тому же типу;
- не должно быть одинаковых строк;
- каждый столбец имеет уникальное имя.
Приведем несколько определений.
Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о Сущности хранятся в таблице.
Атрибут представляет собой свойство, характеризующее сущность. В таблице атрибуту соответствует столбец, в котором содержатся значения данного свойства, соответствующие конкретным экземплярам сущности. Имя атрибута является заголовком столбца таблицы.
В качестве примера приведем таблицу «Сотрудник»
ФИО | Отдел | Должность | Дата рожд. |
Волков В. И. | Руководитель | 20.09.66 | |
Петров П.П. | Специалист | 15.04.70 | |
Семенов С.И. | Инженер | 13.01.75 |
Домен представляет собой множество всех возможных значений определенного атрибута. Отношение «СОТРУДНИК» включает 4 домена: 1) множество всех возможных фамилий сотрудников;
2) множество всех возможных номеров отделов;
3) множество всех возможных названий должностей;
4) множество возможных дат рождения сотрудников.
Значения атрибута принадлежат к одному типу (числовому, символьному и т. д.).
Ключом отношения называется совокупность его атрибутов, однозначно идентифицирующих каждую строку таблицы. В рассмотренном случае ключом является один атрибут – ФИО. Ключ может быть и составным (включать несколько столбцов) . Главное назначение ключей - организация связывания таблиц. Для упрощения будем считать далее, что все ключи состоят из одного атрибута.
Важным является понятие внешнего ключа. С помощью внешнихключей устанавливаются связи между таблицами. В отличие от иерархических и сетевых моделей, связи в явном виде отсутствуют.
Внешний ключ таблицы Т2 можно определить как столбец таблицыТ2,значения которого должны совпадать со значениями ключа таблицы Т1.
Например, пусть имеются две таблицы: Т1 ( Типы товаров) и Т2 (Товары). Пуст
ь каждый тип включает несколько товаров, но каждый товар относится только к одному типу (такой тип отношения носит название «один ко многим»).
. Т1 содержит столбец (поле) КодТипа. Две таблицы можно связать общим полем КодТипа. А именно, в Т2 также должен быть столбец КодТипа (осуществляющий связь) со значениями из столбца КодТипа таблицы Т1.
Табл. Т1 ( Типы товаров) Табл. Т2 (Товары)
Код типа товара | Название типа | Код товара | Название товара | Код типа товара | |
Мебель | Тарелка | ||||
Посуда | Стул | ||||
Стакан | |||||
Стол |
В общем случае (тип «многие ко многим») связывание между таблицами реализуется через вспомогательную дополнительную таблицу (также с помощью внешних ключей).
Пусть БД содержит информацию о ряде заказов на товары. При этом в одном конкретном заказе могут фигурировать несколько товаров, а конкретный товар может содержаться в нескольких заказах (такой тип отношения носит название «многие ко многим»). Структурируем информацию с помощью следующего набора таблиц: таблица Товары (содержит столбцы Код товара и Название товара), таблица Заказы (в Заказах содержатся только Код заказа и Дата заказа, не указываются заказанные товары) и таблица Детали заказа (содержащая внешние ключи Код заказа и Код товаров). Таблицы Заказы и Детали заказов связывает отношение «один ко многим». Но такое же отношение связывает и таблицы Товары и Детали заказов. Фактически, таблица Детали заказов реализует связь в отношении «многие ко многим» между Товарамии Заказами.
Табл. Т1 (Товары) Табл. Т2 (Заказы) Табл. Т3 (Детали заказа)
Код товара | Название товара | Код заказа | Дата заказа | Код заказа | Код товаров | ||
Тарелка | 12.02.11 | ||||||
Стул | 17.02.11 | ||||||
Стакан | 03.03.11 | ||||||
Стол | 14.03.11 | ||||||
… | … | 21.03.11 |
Дата добавления: 2016-12-26; просмотров: 502;