Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uch_pos.docx
Скачиваний:
213
Добавлен:
20.03.2016
Размер:
423.96 Кб
Скачать

3.3.1. Основные понятия реляционной модели

Реляционная модель определяется тремя аспектами данных: структурой данных (объектами данных), целостностью данных и обработкой данных. Основными понятиями, описывающими структуру данных в реляционной модели, являются: отношение, кортеж, атрибут, домен, первичный ключ.

Под отношением будем понимать двумерную таблицу, содержащую некоторые данные о рассматриваемой предметной области.

Кортеж представляет упорядоченный набор элементов (соответствует строке этой таблицы).

Атрибут соответствует столбцу таблицы. Количество атрибутов называется степенью отношения.

Домен представляет множество всех значений для определенных атрибутов отношения.

Первичный ключ – уникальный идентификатор отношения, однозначно определяющий каждый кортеж.

В реляционной теории определяются свойства отношений:

  • Отношение не должно содержать одинаковых кортежей. Важным следствием этого свойства является то, что каждую строку можно однозначно определить с помощью набора атрибутов, составляющих первичный ключ.

  • Кортежи не упорядочены сверху вниз.

  • Атрибуты не упорядочены слева направо.

  • Все значения атрибутов должны быть атомарными (простыми), т.е. не допускать группы значений в одном столбце одной строки (не расчленять значения).

На рис.12 приведен пример отношения Провайдеры Internet.

Отношение Провайдеры Internet включает 4 домена. Домен 1 содержит названия провайдеров, домен 2 – почасовую оплату, домен 3 – предлагаемую скорость соединения, домен 4 – адреса Web-сайтов.

Название

провайдера

Почасовая оплата

Скорость

Web-сайт

Демос

44,0

45

www.demos.ru

Портал

38,0

50

www.portal.ru

Гласнет

46,0

48

www.glasnet.ru

Отношение Провайдеры Internet содержит 3 кортежа, каждый из которых состоит из 4-х элементов, выбираемых из соответствующего домена. Каждому кортежу соответствует строка таблицы.

Схема отношения (заголовок отношения) представляет собой список имен атрибутов. Например, для приведенного примера схема отношения имеет вид ПРОВАЙДЕРЫ INTERNET(Название Провайдера, Почасовая Оплата, Скорость, Web-Сайт). Множество собственно кортежей отношения часто называют содержимым (телом) отношения.

Каждое отношение имеет минимальный набор атрибутов, по значениям которых можно однозначно идентифицировать требуемый кортеж. Такой набор называется ключом. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать отношение по оставшимся. Каждое отношение обладает хотя бы одним возможным ключом. Любой из возможных ключей принимается за первичный ключ. Первичным ключом называется атрибут отношения, однозначно определяющий каждый из его кортежей. Например, в отношении ПРОВАЙДЕРЫ INTERNET ключевым может являться атрибут Название провайдера. Ключ может быть составным, т.е. содержать несколько атрибутов. Следует отдавать предпочтение несоставным ключам или ключам, составленным из минимального числа атрибутов.

Ключи являются важным инструментом поддержания целостности данных и служат для реализации следующих целей:

  • исключения дублирования значений в ключевых атрибутах (остальные атрибуты в расчет не принимаются);

  • упорядочения кортежей. Некоторые СУБД позволяют производить упорядочение по возрастанию или убыванию значений всех ключевых атрибутов, а также смешанное упорядочение (по одним – возрастание, а по другим – убывание);

  • ускорения работы с кортежами отношения;

  • организации связывания таблиц.

База данных содержит несколько таблиц. Иногда одни и те же имена атрибутов используются в разных таблицах. Пусть в отношении R1 имеется неключевой атрибут А, значения которого являются значениями ключевого атрибута В другого отношения R2. Тогда говорят, что атрибут А отношения R1 является внешним ключом. Т.е. внешний ключ представляет набор атрибутов отношения, значения которых являются одновременно значениями первичного ключа другого отношения. Внешний ключ, ссылающийся на свою собственную реляционную таблицу, называется рекурсивным внешним ключом. С помощью внешних ключей устанавливаются связи между отношениями.

Например, имеются следующие отношения КЛИЕНТЫ (Код клиента, Название клиента, Адрес клиента) и ЗАКАЗЫ (Номер заказа, Код клиента, Количество товара). Если определить атрибут Код клиента в отношении КЛИЕНТЫ как первичный ключ, то в отношении ЗАКАЗЫ этот атрибут будет являться внешним ключом. Если каждый клиент может разместить только один заказ, то говорят, что таблицы связаны соотношением "один-к-одному". Если же каждый клиент может разместить любое количество заказов (в том числе и ни одного), то таблицы связаны соотношением "один-ко-многим". Таблица КЛИЕНТЫ в этом контексте называется основной, таблица заказы – дополнительной. Существуют типы связей "многие-ко-многим" и "многие-к-одному". Подробнее типы связей рассмотрены в главе 4.

Список, в котором указываются имена реляционных таблиц с перечислением их атрибутов (первичные ключи подчеркнуты) и определений внешних ключей называется реляционной схемой базы данных.

Для пользователей информационной системы является важным, чтобы база данных отражала предметную область однозначно и непротиворечиво. Если она обладает такими свойствами, то говорят, что БД удовлетворяет условию целостности. Чтобы добиться выполнения этого условия, на БД накладывают некоторые ограничения, называемые ограничениями целостности. Выделяют два основных типа ограничений: целостность сущностей и ссылочная целостность.

Кортежи реляционной таблицы представляют в модели элементы конкретных объектов реального мира – сущностей. Ограничение первого типа состоит в том, что любой кортеж любого отношения должен отличаться от любого другого кортежа этого отношения, т. е. любое отношение должно обладать первичным ключом. Это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений. Первичный ключ определяет каждый кортеж, а следовательно, каждый элемент сущности. Для работы с данными каждого кортежа необходимо знать значение ключа. Таким образом, элемент не должен записываться в базу данных до тех пор, пока не определены значения его ключевых атрибутов. Т. е. никакой ключевой атрибут любой строки не должен быть пустым.

Внешние ключи служат для обеспечения целостности данных, называемое ссылочной целостностью. Это означает, что значение внешнего ключа должно быть либо пустым, либо равным одному из текущих значений первичного ключа другой таблицы, иначе каждому значению внешнего ключа должны соответствовать строки в связываемых отношениях. Для нашего примера это означает, что если в отношении ЗАКАЗЫ указан Код клиента, то этот клиент должен существовать.

Ограничения целостности должны поддерживаться СУБД. Для соблюдения целостности сущностей достаточно гарантировать отсутствие в отношении кортежей с одним и тем же значением первичного ключа. Со ссылочной целостностью значительно сложнее. Необходимо следить за тем, чтобы не появлялись некорректные значения внешних ключей при обновлении отношений (например, заказы несуществующих клиентов). При удалении кортежа существует три подхода, позволяющие поддерживать ссылочную целостность:

  • запрещается производить удаление кортежа, на который существуют ссылки (либо сначала удалить ссылающиеся кортежи, либо изменить значения их внешнего ключа);

  • при удалении кортежа, на который имеются ссылки, во всех ссылающихся кортежах значение внешнего ключа становится неопределенным;

  • при удалении кортежа из отношения, на которое ведется ссылка, из ссылающегося отношения автоматически удаляются все ссылающиеся кортежи (каскадное удаление).

Большинство современных СУБД способны контролировать соблюдение правила ссылочной целостности. Для этой цели используются различные объекты баз данных (ссылочные ограничения и правила, триггеры и др.).

Уточним еще раз условия, которым должны удовлетворять данные в реляционных таблицах:

  • все строки таблицы должны быть уникальны, т. е. не может быть в таблице двух одинаковых строк;

  • имена столбцов таблицы должны быть различны, а значения их атомарными;

  • все строки одной таблицы должны иметь одну структуру, соответствующую именам и типам столбцов;

  • последовательность размещения строк и столбцов в таблице является несущественной.

База данных включает одну или несколько таблиц, объединенных смысловым содержанием, а также процедурами контроля целостности и обработки информации. Помимо таблиц, база данных содержит еще и другие объекты: экранные формы, отчеты, прикладные программы, работающие с информацией базы данных. Кроме того база данных хранит словарь данных (метаданные – "данные о данных").

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]