Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 6_8.doc
Скачиваний:
7
Добавлен:
19.08.2019
Размер:
159.23 Кб
Скачать

Тема 7. Реляционная модель бд. Таблицы. Ограничения целостности данных. Реляционная алгебра. Реляционное исчисление.

Лекции: 4 часа

 

Реляционные модели (РМ) данных в настоящее время приобрели наибольшую популярность и практически все современные СУБД ориентированы именно на такое представление данных. РМ можно представить как особый метод рассмотрения данных, содержащий и собственно данные (в виде таблиц), и способы работы и манипуляции с ними (в виде связей). РМ предполагает три концептуальных элемента: структура, целостность и обработка данных. В этих элементах есть свои специальные понятия, которые необходимо пояснить. Таблица рассматривается как непосредственное хранилище данных. Традиционно в реляционных системах таблицу называют отношением. Строку таблицы называют кортежем, а столбец - атрибутом. При этом атрибуты имеют уникальные (в пределах отношения) имена. Количество кортежей в таблице называют кардинальным числом, а количество атрибутов - степенью. Для отношения предусматривают уникальный идентификатор, то есть один или несколько атрибутов, значения которых в одно и то же время не бывают одинаковыми - идентификатор называют первичным ключом. Домен - это множество допустимых однородных значений для того или иного атрибута. Т. о., домен можно рассмотреть как именованное множество данных, причем остальные части этого множества являются логически неделимыми единицами (в качестве домена могут выступать, например, перечень фамилий сотрудников учреждения, однако не все фамилии могут присутствовать в таблице).

Отношение содержит две части - заголовок и собственно содержательную часть. Заголовок содержит конечное множество атрибутов, а содержательная часть (тело отношения) - множество пар имени атрибута и его значения.

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

Целостность данных

Ключ или потенциальный ключ - это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый кортеж. Каждое отношение обладает хотя бы одним возможным ключом. Один из них принимается за первичный ключ. При выборе первичного ключа следует отдавать предпочтение несоставным ключам или ключам, составленным из минимального числа атрибутов. Нежелательно также использовать ключи с длинными текстовыми значениями, не д.б. null. Так, для идентификации работника можно использовать либо уникальный табельный номер или номер паспорта, либо набор из Ф.И.О. и № отдела. Внешние ключи. При этом для каждого внешнего ключа необходимо решить проблему, связанную с возможностью (или невозможностью) появления во внешних ключах неопределенных значений (NULL - значений - значений атрибута для отсутствующей информации). Другими словами, может ли существовать некоторый кортеж в отношении, для которого неизвестен кортеж в связанном с ним отношении. С другой стороны, необходимо заранее обдумать вопрос о том, что произойдет при попытке удаления кортежей из отношения, на которое ссылается внешний ключ. При этом существуют следующие вероятные возможности:

∙- операция каскадируется - то есть удаление кортежей в отношении приводит к удалению соответствующих кортежей в связанном отношении. Например, удаление информации о фамилии, имени и т. п. сотрудника в одном отношении приводит к удалению информации о его заработной плате в другом;

∙- операция ограничивается - то есть удаляются лишь те кортежи, для которых связанной информации в другом отношении (таблице) нет. Если таковая информация имеется, то удаление осуществить нельзя. Наконец, нужно предусмотреть технологию того, что будет происходить при попытке обновления первичного ключа отношения на которое ссылается некоторый внешний ключ. Здесь имеются те же возможности, как и при удалении:

∙- операция каскадируется - то есть при обновлении первичного ключа происходит обновление внешнего ключа в связанном отношении. Например, обновление первичного ключа в отношении, где хранится информация о сотруднике приводит к обновлению внешнего ключа в отношении с информацией о его заработной плате;

∙- операция ограничивается - то есть обновляются лишь те первичные ключи, для которых связанной информации в другом отношении нет. Если таковая информация имеется, то обновление сделать нельзя. Например, обновление первичного ключа в отношении, где хранится информация о сотруднике, возможно в том случае, если информация о его заработной плате в связанном отношении отсутствует.

Реляционные операции

Начальный обзор; традиционные операции над множествами; специальные реляционные операции; операции расширения и подведения итогов; операторы обновления; реляционные сравнения.

Формальной основой РМ БД являются реляционная алгебра, рассматривают основные операторы над сущностями. Основных операторов в реляционной алгебре восемь. Конкретный язык манипулирования реляционными БД называется реляционно-полным, Опишем вариант определения реляционной алгебры, который был предложен Коддом. В этом варианте, набор алгебраических операций состоит из восьми основных:

∙- выборка отношения;

∙- проекция отношения;

∙- объединение отношений;

∙- пересечение отношений;

∙- вычитание отношений;

∙- произведение отношений;

∙- соединение отношений;

∙- деление отношений.

Эти операции можно объяснить следующим образом:

∙- результатом выборки отношения по некоторому условию является отношение, которое включает только те кортежи первоначального отношения, которые удовлетворяют этому условию;

∙- при осуществлении проекции отношения на заданный набор его атрибутов будет получено отношение, кортежи которого взяты из соответствующих кортежей первоначального отношения:

∙- при выполнении операции объединения двух отношений будет получено отношение, включающее все кортежи, входящие хотя бы в одно из участвующих в операции отношений;

∙- в качестве результата операции пересечения двух отношений получается отношение, включающее все кортежи, входящие в оба первоначальные отношения;

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

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

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

∙- операция реляционного деления имеет два операнда - бинарное (т. е. состоящее из двух атрибутов) и унарное (содержит один атрибут) отношения. Результат операции - отношение, состоящее из кортежей, включающих значения первого атрибута кортежей первого отношения, причем таких, что множество значений второго атрибута совпадает со множеством значений второго отношения.

Помимо вышеперечисленных, есть ряд особых операций, характерных для работы с БД:

∙- как результат операции переименования получается отношение, набор кортежей которого совпадает с телом первоначального отношения, но имена атрибутов изменены;

∙- операция присваивания позволяет сохранить результат вычисления реляционного выражения в существующем отношении БД.

Дополнительные операции реляционной алгебры.

1. Переименование позволяет изменить имя атрибута отношения

RENAME исходное отношение старое имя атрибута AS новое имя атрибута

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

EXTEND исходное отношение ADD выражениеAS новый атрибут.

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

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

- Арифметические (+,-,*,/);

- Операции сравнения (>,<,>=,<=);

-  Итоговые функции (count-количество, sum-сумма, AVG-средняя, max,min);

- Множественные расширения (extend отношение ADD выражение 1 AS атрибут,выражение 2AS атрибут 2, выражение N AS атрибут N).

1. операция подведения итогов.

Summarize <исходное отношение> by (<атрибут>) add <выражение> as <новый атрибут>, где <выражение>- это скалярное выражение как у extend.

2. К основным операциям, позволяющим применять тело отношения относится операция реляционного присваивания :=;

3. Вставка insert;

4. Обновление update;

5. Удаление delete.