Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Проектирование реляционных баз данных
Для реляционной БД проектирование логической структуры заключается в том, чтобы разбить всю информацию по таблицам, определив состав полей для каждой из этих таблиц. Для перехода от ИЛМ к реляционной можно воспользоваться следующими рекомендациями: 1) Для каждого простого объекта и его единичных свойств строится таблица, атрибутами которой являются идентификатор объекта и реквизиты, соответствующие каждому из единичных свойств:
2) Если у объекта имеются множественные свойства, то каждому из них ставится в соответствие отдельная таблица:
3) Если между объектом и его свойством имеется условная связь, то при отображении в реляционную модель возможны следующие варианты: · если многие из объектов обладают рассматриваемым свойством, то его можно хранить в БД так же, как и обычное свойство; · если только незначительное число объектов обладает указанным свойством, то при использовании предыдущего решения для многих записей в таблице значение соответствующего поля будет пустым. Для устранения этого недостатка выделяют отдельную таблицу, которая будет включать в себя идентификатор объекта и атрибут, соответствующий рассматриваемому свойству. 4) Если у объекта имеется составное свойство, то составляющие составного свойства либо помещаются в отдельные поля реляционной таблицы, либо в одно поле:
5) Если связь между объектами 1: 1 и классы принадлежности обоих объектов являются обязательными, то для отображения данных объектов и связи между ними: · можно использовать одну таблицу, первичным ключом которой может быть идентификатор любого из двух объектов; · можно для каждого из этих объектов использовать отдельные таблицы, а связь между ними отразить, включив в одну из таблиц идентификатор связанного объекта из другой таблицы.
6) Если связь между объектами 1: 1 и класс принадлежности одного объекта является обязательным, а другого – необязательным, то для каждого из этих объектов используют отдельные таблицы, а идентификатор объекта, для которого класс принадлежности является необязательным, добавляется в таблицу, соответствующую тому объекту, для которого класс принадлежности обязательный:
7) Если связь между объектами 1: 1 и класс принадлежности каждого объекта является необязательным, то следует использовать три таблицы: по одной для каждого объекта и одну для отображения связи между ними:
8) Если между объектами предметной области имеется связь 1: М и класс принадлежности n – связного объекта является обязательным, то используют две таблицы: по одной для каждого объекта и в таблицу, соответствующую n – связному объекту, добавляется идентификатор 1 – связного объекта:
9) Если между объектами предметной области имеется связь 1: М и класс принадлежности n - связного объекта является необязательным, то создают три таблицы: по одной для каждого объекта и одну для отображения связи между ними:
10) Если между объектами предметной области имеется связь М: М, то для хранения такой информации потребуется три таблицы: по одной для каждого объекта и одна для отображения связи между ними (классы принадлежности могут быть: оба – обязательными, оба - необязательными, один – обязательный, другой – необязательный):
11) Агрегированному объекту, имеющему место в предметной области, в ДЛМ ставится в соответствие одна таблица, атрибутами которой являются идентификаторы всех объектов, «задействованных» в данном агрегированном объекте, а также реквизиты, соответствующие свойствам этого объекта:
Такое объединение информации в одну таблицу возможно только в том случае, если между объектами имеется связь 1: 1. Если же между объектами имеется связь М: 1 (или М: М), то выделяют по одной таблице для каждого объекта и одну таблицу для связи: R1 (ИО1, …) R2 (ИО2, …) R3 (ИО3, …) R4 (ИО1, ИО2, ИО3, С1). 12) При отображении обобщенных объектов могут быть приняты разные решения: · всему обобщенному объекту может быть поставлена в соответствие одна таблица:
· каждой из категорий ставится в соответствие отдельная таблица, то есть: R1 (ИО1, С1, С2, С4, С5) R2 (ИО1, С1, С2, С6, С7). Кроме этих двух «крайних» решений, возможны и комбинированные варианты. Выбор конкретного решения будет зависеть от многих факторов, в том числе от того насколько часто информация о разных категориях объекта обрабатывается совместно, как велико различие в «видовых» свойствах и др. 13) При отображении составного объекта также возможны разные решения: · если речь идет о составе изделий, то между «изделием» и «деталью» имеется связь типа М: М (одна деталь может входить в разные изделия и, наоборот, в изделие входят разные детали) – в этом случае для отображения связи «целое – часть» можно использовать три таблицы. В первой двух будет храниться информация о самих объектах, в третьей – информация о связи между ними и характере этой связи (для состава изделия это могут быть следующие поля: «что входит», «куда входит», «количество»); · если речь идет о составе какой-то организации, то между объектами скорее всего будет связь типа 1: М – в этом случае для отображения связи «целое – часть» можно использовать рекомендации пунктов 8 и 9. Реляционная модель БД, получаемая в результате использования предложенных рекомендаций, будет нормализованной и автоматически находиться в 4-й нормальной форме (вопросы нормализации рассматриваются в пятом разделе пособия).
Рис. 3.7. ER – модель предметной области Рассмотрим упрощенный пример предметной области, ER – модель которой изображена на рис. 3.7. Соответствующая ей даталогическая модель базы данных может иметь следующий вид: Факультет (Код_фак, Кр_наим_фак, Полн_наим_фак); Кафедра (Код_каф, Кр_наим_каф, Полн_наим_каф, Код_фак); Сотрудник (Таб_номер, ФИО, Дата_рождения, Пол, Код_каф, Должность, Уч_степень); Студент (Таб_номер, ФИО, Дата_рождения, Пол, Код_фак, Дата_поступления, Ступень_обучения); Ин_яз (Код_языка, наименование_языка); Знание_ин_яз (Таб_номер, Код_языка, Степень_владения); Дети (Таб_номер, Имя, Дата_рождения).
Тесты для самоконтроля
1. Инфологической моделью называют: а) описание логической структуры БД с точки зрения конкретного пользователя; б) часть реального мира, представляющую интерес для данного проектирования; в) описание предметной области, выполненное без ориентации на используемые в дальнейшем программные и технические средства. 2. Логические связи между элементами данных безотносительно к их содержанию и среде хранения отображаются: а) в физической модели; б) в даталогической модели; в) в инфологической модели. 3. Схемой хранения называют: а) описание логической структуры БД; б) описание физической структуры БД; в) описание логической структуры БД с точки зрения конкретного пользователя. 4. В список компонент ИЛМ входит: а) информационная компонента; б) описание объектов и связей между ними; в) описание информационных потребностей пользователей. 5. В список компонент БнД входит: а) СУБД; б) технические средства; в) ограничения целостности. 6. Класс принадлежности указывается: а) для характеристики связи между разными объектами; б) при необходимости фиксации каких-либо характеристик, относящихся к классу объектов в целом; в) если объект участвует во многих связях. 7. Родо-видовые связи между объектами предметной области отражаются: а) в составном объекте; б) в агрегированном объекте; в) в обобщенном объекте. 8. Обозначение для класса объектов в явном виде вводится: а) если естественный идентификатор объекта не обладает свойством уникальности; б) для характеристики связи между разными объектами; в) при необходимости фиксации каких-либо характеристик, относящихся к классу объектов в целом. Задания для самостоятельного выполнения Дана инфологическая конструкция (варианты а - д): а) б)
в) г)
д)
Построить соответствующую ей реляционную схему. ЯЗЫКИ ЗАПРОСОВ Реляционная алгебра
В основе реляционной модели лежит математическое понятие теоретико-множественного отношения. Теоретико-множественное отношение представляет собой подмножество декартова произведения доменов. Доменом называется набор значений элементов данных одного типа, отвечающий поставленным условиям (например, домен ФИО определяется на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут изображать имя). Декартовымпроизведениемk доменов (D1, D2, …, Dk), (обозначается D1× D2× …× Dk), называется множество всех кортежей вида (V1, V2, …, Vk) длины k, таких, что V1∈ D 1, V2∈ D2, …, Vk∈ Dk. Например, пусть D1 = {1, 2, 3}; D2 = {a, b, c, d} Тогда
или: D1× D2 = {(1, a), (1, b), (1, c), (1, d), (2, a), (2, b), (2, c), (2, d), (3, a), (3, b), (3, c), (3, d)} Отношением называют некоторое подмножество декартова произведения доменов (предполагаются только конечные отношения). Примеры отношений: 1) {(1, a), (1, c), (1, b)} - подмножество декартова произведения доменов D1× D2; 2) Ø. В реляционных СУБД для выполнения операций над отношениями используют две группы языков, имеющие в качестве своей математической основы теоретические языки запросов, предложенные Э. Коддом: · реляционную алгебру; · реляционное исчисление. Реляционнойалгеброй называют систему операций манипулирования отношениями, каждый оператор которой в качестве операнда имеет одно или более отношений и образует отношение по заранее обусловленному правилу. Вариант реляционной алгебры, предложенный Коддом, включает в себя следующие операции: объединение, разность, пересечение, декартово (прямое) произведение, выборка (селекция), проекция, деление и соединение. Упрощенное графическое представление перечисленных операций показано на рис. 4.1. 1) Объединением двух отношений (r ∪ s) является отношение, содержащее все кортежи, которые принадлежат либо r, либо s, либо им обоим. Данная операция применяется к отношениям с одной и той же схемой. Схемойотношения r называется конечное множество имен атрибутов {A1, A2, …, An}. Примеры: a) Пусть k и m – отношения со схемой ABC:
Тогда объединение данных отношений:
б) Пусть отношение R1 – множество поставщиков из Москвы, а R2 – множество поставщиков, которые поставляют деталь D1: R1 R2
Тогда объединение данных отношений даст поставщиков из Москвы, либо поставщиков, которые поставляют деталь D1, либо тех и других: R1 ∪ R2
2) Разностью двух отношений (обозначается r - s) является отношение, содержащее все кортежи, которые принадлежат r, но не принадлежат s. Операция применяется к отношениям с одной и той же схемой. Примеры: а)
б) Разность отношений R1 и R2 даст поставщиков из Москвы, не поставляющих деталь D1: R1 – R2
3) Пересечением двух отношений (обозначается r ∩ s) является отношение, содержащее все кортежи, которые принадлежат одновременно r и s. Операция применяется к отношениям с одной и той же схемой. Примеры. а)
б) Пересечение отношений R1 и R2 даст всех поставщиков из Москвы, поставляющих деталь D1: R1 ∩ R2
Рис. 4.1. Основные операции реляционной алгебры
4) Декартовымпроизведением отношения r степени k1 и отношения s степени k2 (r × s) является отношение степени (k1 + k2), содержащее такие кортежи, первые k1 элементов которых принадлежат r, а последние k2 элементов принадлежат s. Примеры: а) Даны отношения k и m
Тогда
б) Пусть отношение R1 – множество поставщиков, а S1 – множество деталей: R1 S1
Тогда декартово произведение данных отношений: R1 × S1
5) Выборка (применяется к одному отношению). Результатом ее применения к отношению r является другое отношение, представляющее собой подмножество кортежей отношения r с определенным значением в выделенном атрибуте. Пусть r отношение со схемой R, A – атрибут в R и a – элемент из домена А. Тогда – операция выборки в r кортежей, в которых значение A равно a. В условии выборки можно использовать константы, логические операции и операции сравнения. Примеры: а)
б) Дано отношение R1 R1
Тогда
6) Проекция (применяется к одному отношению) - операция выбора подмножества столбцов. Пусть r – отношение со схемой R, Х – подмножество из R. Проекция r на X есть отношение , полученное вычеркиванием столбцов, соответствующих атрибутам в R – X, и исключением из оставшихся столбцов повторяющихся строк. Примеры. а) Пусть k - отношение со схемой АВС:
Тогда запись означает, что из каждого кортежа, принадлежащего k, формируется кортеж длины 2 из третьего и первого его атрибутов в указанном порядке:
Записи эквивалентна запись . б) Пусть S1 - отношение, содержащее информацию о деталях: S1
Тогда
7) Деление. Пусть r – отношение со схемой R, s – отношение со схемой S и S ⊆ R. Положим = R – S. Частное от деления r на s (r ÷ s) – это максимальное подмножество множества , такое, что декартово произведение и s содержится в r. Примеры: а) Даны отношения k и m
Тогда
б) Имеется отношение Право
Требуется найти тех пилотов, которые имеют право управлять всеми типами самолета из некоторого множества q. q
Тогда Право ÷ q
8) Соединение. Естественноесоединение. Пусть r – отношение со схемой R, s – отношение со схемой S и R ∪ S = T. Естественным соединением отношений r и s (r ⊲ ⊳ s) является отношение q со схемой T, содержащее кортежи, каждый являющийся комбинацией кортежа из r и кортежа из s с равными (R ∩ S) – значениями. Примечание. Если R ∩ S = ∅, то r ⊲ ⊳ s даст декартово произведение r и s. Примеры: а) Даны отношения k и m
Тогда
б) Даны отношения R1 и S1 R1 S1
Естественное соединение R1 и S1 по атрибуту Город (в отношении R1 – это Город_П, а в отношении S1 – Город_Д): R1 ⊲ ⊳ S1
Тета – соединение. При естественном соединении отношения могут комбинироваться только по одноименным столбцам и должны комбинироваться по всем таким столбцам. Примечание. В предыдущем примере вначале была применена операция переименования атрибутов Город_Д и Город_П на Город. Отношения могут соединяться также по столбцам с различными именами атрибутов, но равными доменами. Тета – соединение отношений r и s по столбцам i и j представляет собой множество кортежей в декартовом произведении r и s, таких, что i-й элемент r находится в связи Θ с j–элементом s. Если Θ является оператором «=», то эта операция называется эквисоединением. Примеры а) Пусть R1 – отношение, содержащее информацию о рейсах из города «а» в город «в», S1 – отношение, содержащее информацию о рейсах из города «в» в город «с»:
R1
S1
Требуется узнать, какие рейсы из «a» в «в» сочетаются с рейсами из «в» в «c». Для этого необходимо соединить те кортежи, для которых Время_прибытия в отношении R1 меньше Время_вылета в отношении S1.
Тета – соединение отношений R1 и S1:
б) Даны отношения Маршрут и Адрес Маршрут
Адрес
Требуется назначить пилотов на те рейсы, пункт отправления которых совпадает с аэропортом, к которому приписан пилот. Эквисоединение отношений Маршрут и Адрес по столбцам Пункт_отправления и Аэропорт:
Основное отличие эквисоединения от естественного в том, что при последнем соединяемые столбцы не повторяются. По справедливому замечанию Дейта, реляционная алгебра Кодда обладает несколькими недостатками. Во-первых, восемь перечисленных операций по охвату своих функций, с одной стороны, избыточны, так как минимально необходимый набор составляют пять операций: объединение, вычитание, произведение, проекция и выборка. Три другие операции (пересечение, соединение и деление) можно определить через пять минимально необходимых. Во-вторых, этих восьми операций недостаточно для построения реальной СУБД на принципах реляционной алгебры. Требуются расширения, включающие операции: переименования атрибутов, образования новых вычисляемых атрибутов, вычисления итоговых функций, построения сложных алгебраических выражений, присвоения, сравнения и т. д. Популярное:
|
Последнее изменение этой страницы: 2016-07-13; Просмотров: 1371; Нарушение авторского права страницы