Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции. Все темы! / Л10_Разработка базы данных.doc
Скачиваний:
230
Добавлен:
16.12.2013
Размер:
246.27 Кб
Скачать

Логические связи в реляционной модели, реляционная бд

Логические связи. Для логической связи таблицы-отношения R1 с подчиненной таблицей-отношением R2 последняя должна содержатьвнешний ключ– по составу атрибутов одинаковый с уникальным (первичным) ключом главной таблицы-отношения R1.

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

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

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

Реляционная база нормализованных данных может быть наделена свойствами поддержания целостности.

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

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

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

На рис.5 приведен пример структуры базы данных, содержащей информацию о договорах при использовании реляционной модели. Такая же информация представлена на рис.1, но при использовании иерархической записи.

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

В таблицах этой реляционной базы данных содержатся без повторения атрибуты соответствующих объектов: ДОГОВОР (номер, дата, код заказчика, сумма по договору); ИЗДЕЛИЕ (код, наименование, ед. измерения, цена); ЗАКАЗЧИК (код, наименование, адрес, банк); ЗАКАЗ (номер договора, код изделия, минимальная партия, месяц, плановое количество, сумма поставки). На связях между таблицами указаны внешние ключи. Операции обработки данных реляционной модели

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

Рис.5. Пример структуры базы данных, содержащей информацию о договорах, при использовании реляционной модели.

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

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

Рассмотрим основные операции языка реляционной алгебрынад отношениями.

Объединение

Операция объединениевыполняется над двумя совместимыми отношениями R1, R2 (с идентичной структурой – d1,d2, ... dn). В результате операции объединения строится новое отношение R = R1 U R2. Отношение R имеет тот же состав атрибутов d1,d2, ... dn и совокупность кортежей (строк) исходных отношений. Причем в эту совокупность не включаются дубликаты.

Ниже приведены исходные отношения: R1 – Клиенты банка А, R2 – Клиенты банка В, результат объединения – R.

В новое отношение R не вошел кортеж К22, так как он дублирует кортеж К11.

Пересечение

Операция пересечениевыполняется над двумя совместимыми отношениями R1, R2 с идентичным набором атрибутов – d1,d2, ... dn. Результирующее отношение RP= R1R2 содержит одинаковые кортежи, которые есть в каждом из двух исходных. Результат пересечения имеет тот же состав атрибутов, как в исходных отношениях.

Пересечение двух отношений R1(Клиенты банка А) и R2(Клиенты банка В) дает одно отношение R (Клиент), в которое войдут клиенты, являющиеся одновременно клиентами банка А и банка В:

Вычитание

Операция вычитание выполняется над двумя совместимыми отношениями R1, R2 с идентичным набором атрибутов – d1,d2, ... dn. В результате операции вычитания строится новое отношение RV = R1 – R2 с идентичным набором атрибутов, содержащее только те кортежи первого отношения R1, которые не повторяются в другом отношении R2.

Вычитание отношения R2(Клиенты банка В) из отношения R1(Клиенты банка А) дает отношение RV(Клиент только банка А):

RV = R1– R2 = {K11,K12,K13}– {K21,K22,K23} = {K12,K13},

поскольку K11 = K22.

Декартово произведение

Операция декартово произведениевыполняется над двумя отношениями R1, R2, имеющими разный состав атрибутов – (d1,d2, ... dn) и (p1, p2, ... pm) соответственно. В результате операциидекартова произведенияобразуется новое отношение RD = R1R2, которое включает все атрибуты исходных отношений (d1,d2, ... dn, p1, p2, ... pm). Результирующее отношение состоит из всевозможных сочетаний кортежей исходных отношений R1 и R2. Число кортежей декартова произведения равно произведению количеств кортежей в исходных отношениях.

Например,декартово произведениедвух отношений R1(Студент) и R2 (Предмет) дают новое отношение RD(Экзаменационная ведомость), которое содержит все атрибуты исходных отношений.

Заметим, что в полученное отношение целесообразно добавить атрибут “оценка” для записи результатов экзамена.

Выбор

Операция выборвыполняется над одним отношением R.

Для отношения R=(d1,d2, ... dn) по заданному условию (предикату) осуществляется выборка подмножества кортежей. Результирующее отношение (RW) имеет ту же схему (d1,d2, ... dn), что и исходное, но число его кортежей будет меньше или равно исходному.

Условие задается как логическое выражение, определяющее значения атрибутов.

Ниже приведен пример исходного отношения R “Изделие” и результат операции выбора (отношение RW) по заданному условию:цена>=150

Отношение R Отношение RW

Изделие

Цена

Изделие

Цена

И1

100

И2

200

И2

200

И3

150

И3

150

Таким образом, результат операции выборасодержит только те кортежи исходного отношения, для которых выполняется заданное условие.

Проекция

Операция проекциявыполняется над одним отношением R = (d1,d2, ... dn) и формирует новое отношение (RPR) сзаданнымподмножеством атрибутов изаданнойпоследовательностью атрибутов исходного отношения R.

Как правило, новое отношение имеет другую структуру (di, dl, ... dm). Оно может содержать меньше кортежей, так как после отбрасывания в исходном отношении R части атрибутов (возможного исключения первичного ключа) могут образоваться кортежи, дублирующие друг друга. Дублирующие кортежи из результирующего отношения RPR исключаются. Проекцияпозволяет переупорядочить домены в таблице-отношении. Ниже приведен пример исходного отношения R(Служащий) и результат проекции (RPR) этого отношения на два его атрибута – номер отдела и должность.

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

Соединение

Операция соединениевыполняется для заданного условия соединениянад двумя логически связанными отношениями. Исходные отношения R1 и R2 имеют разные структуры, в которых есть один или несколько одинаковых атрибутов –ключисвязи.

Операция соединения формирует новое отношение RS= (di, dl, ... dm), структура которого является совокупностью всех атрибутов исходных отношений. Кортежи результирующего отношения (RS) формируются объединением каждого кортежа из R1 с каждым из кортежей в R2, для которого выполняется заданное условие. При этом условием, как правило, являются одинаковые значения ключа связи в исходных отношениях.

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

Отношение R1 (Поставки) Отношение R2 (Поставщики)

Код

изделия

*

Код

постав-щика*

Коли- чество

Код

постав-щика*

Наименование

поставщика

Адрес

поставщика

к1

ПО1

10

ПО1

Фирма экспортер

Москва

к1

ПО2

20

ПО2

Малое предприятие

Петербург

к2

ПО1

10

ПО3

Акц. общество

Воронеж

к3

ПО2

15

к4

ПО1

30

*– обозначение ключевых атрибутов

Ниже приведено отношение-результат (RS) операции соединения R1 и R2 по условию равенства кода поставщика в кортежах R1 и R2.

Отношение RS – результат соединения

Код

изделия

*

Код

постав-щика*

Коли- чество

Наименование

поставщика

Адрес

поставщика

к1

ПО1

10

Фирма экспортер

Москва

к1

ПО2

20

Малое предприятие

Петербург

к2

ПО1

10

Фирма экспортер

Москва

к3

ПО2

15

Малое предприятие

Петербург

к4

ПО1

30

Фирма экспортер

Москва

Деление

Операция делениевыполняется над двумя отношениями R1, R2, имеющими разные структуры, но одинаковые один или несколько атрибутов. В результате операцииделениеобразуется новое отношение (RD), структура которого получается исключением из множества атрибутов отношения R1 множества атрибутов отношения R2. Результирующие кортежи формируются для одинаковых значений общих атрибутов (ключей связи). При этом кортежи-дубликаты изRDисключаются.

В приведенном выше примере можно применить операцию деления к отношениюRSна отношениеR1(поставки), тогда получим отношениеRD(поставившие товар).

Отношение RD – результат деления

Код

поставщика*

Наименование

поставщика

Адрес

поставщика

ПО1

Фирма экспортер

Москва

ПО2

Малое предприятие

Петербург