Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЗБД экзамен.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
238 Кб
Скачать
☆

2. Манипулирование реляционными данными

Поскольку в реляционной модели данных заголовок и тело любого отношения представляют собой множества, к отношениям, вообще говоря, применимы обычные теоретико-множественные операции: объединение, пересечение, вычитание, взятие декартова произведения. Напомним, что для двух множествS1 {s1} и S2 {s2} результатом операции объединения этих двух множеств S1 UNION S2 является множество S{s} такое, что s   S1 или s   S2. Результатом операции пересечения S1 INTERSECT S2 является множество S{s} такое, что s   S1 и s   S2. Результатом операции вычитания S1 MINUS S2 является множество S {s} такое, что s   S1 и s   S23). На рис. 2.4 эти операции проиллюстрированы в интуитивной графической форме. Про операцию взятия декартова произведения уже говорилось выше.

  Рис. 2.4. Иллюстрация результатов теоретико-множественных операций

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

В алгебре Кодда имеется деcять операций: объединение (UNION), пересечение (INTERSECT), вычитание (MINUS), взятие расширенного декартова произведения (TIMES), переименование атрибутов (RENAME), проекция (PROJECT), ограничение (WHERE), соединение ( -JOIN), деление (DIVIDE BY) и присваивание. Если не вдаваться в некоторые тонкости, которые мы рассмотрим в лекции 4, то почти все операции предложенного выше набора обладают очевидной и простой интерпретацией.

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

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

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

При выполнении декартова произведения (TIMES) двух отношений, пересечение заголовков которых пусто, производится отношение, кортежи которого производятся путем объединения кортежей первого и второго операндов.

Операция переименования (RENAME) производит отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены; эта операция позволяет выполнять первые три операции над отношениями с «почти» совпадающими заголовками (совпадающими во всем, кроме имен атрибутов) и выполнять операцию TIMES над отношениями, пересечение заголовков которых не является пустым.

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

При выполнении проекции (PROJECT) отношения на заданное подмножество множества его атрибутов производится отношение, кортежи которого являются соответствующими подмножествами кортежей отношения-операнда.

При  -соединении ( -JOIN) двух отношений по некоторому условию ( ) образуется результирующее отношение, кортежи которого производятся путем объединения кортежей первого и второго отношений и удовлетворяют этому условию.

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

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

3. Процедуры концептуального проектирования.

Цель этапа концептуального проектирования - создание концептуальной модели данных исходя из представлений пользователей о предметной области. Для ее достижения выполняется ряд последовательных процедур.  Определение сущностей и их документирование. Для идентификации сущностей определяются объекты, которые существуют независимо от других. Такие объекты являются сущностями. Каждой сущности присваивается осмыс­ленное имя, понятное пользователям. Имена и описания сущностей заносятся в словарь данных. Если возможно, то устанавливается ожидаемое количество эк­земпляров каждой сущности.  Определение связей между сущностями и их документирование. Определяются только те связи между сущностями, которые необходимы для удовлетворения требований к проекту базы данных. Устанавливается тип каж­дой из них. Выявляется класс принадлежности сущностей. Связям присваива­ются осмысленные имена, выраженные глаголами. Развернутое описание каж­дой связи с указанием ее типа и класса принадлежности сущностей, участвую­щих в связи, заносится в словарь данных.  Создание ER-модели предметной области. Для представления сущ­ностей и связей между ними используются ER-диаграммы. На их основе созда­ется единый наглядный образ моделируемой предметной области - ER-модель предметной области.  Определение атрибутов и их документирование. Выявляются все ат­рибуты, описывающие сущности созданной ER-модели. Каждому атрибуту присваивается осмысленное имя, понятное пользователям. О каждом атрибуте в словарь данных помещаются следующие сведения: имя атрибута и его описание; тип и размерность значений; значение, принимаемое для атрибута по умолчанию (если такое имеется); может ли атрибут иметь Null-значения; является ли атрибут составным, и если это так, то из каких простых атрибу­тов он состоит. Например, атрибут "Ф.И.О. клиента" может состоять из про­стых атрибутов "Фамилия", "Имя", "Отчество", а может быть простым, содер­жащим единые значения, как-то "Сидорский Евгений Михайлович". Если поль­зователь не нуждается в доступе к отдельным элементам "Ф.И.О.", то атрибут представляется как простой; • является ли атрибут расчетным, и если это так, то как вычисляются его зна­чения.  Определение значений атрибутов и их документирование. Для каж­дого атрибута сущности, участвующей в ER-модели, определяется набор до­пустимых значений и ему присваивается имя. Например, атрибут "Тип счета" может иметь только значения "депозитный", "текущий", "до востребования", "карт-счет". Обновляются записи словаря данных, относящиеся к атрибутам, -в них заносятся имена наборов значений атрибутов.  Определение первичных ключей для сущностей и их документиро­вание. На этом шаге руководствуются определением первичного ключа - как атрибута или набора атрибутов сущности, позволяющего уникальным образом идентифицировать ее экземпляры. Сведения о первичных ключах помещаются в словарь данных.  Обсуждение концептуальной модели данных с конечными пользо­вателями. Концептуальная модель данных представляется ER-моделью с со­проводительной документацией, содержащей описание разработанной модели данных. Если будут обнаружены несоответствия предметной области, то в мо­дель вносятся изменения до тех пор, пока пользователи не подтвердят, что предложенная им модель адекватно отображает их личные представления.