- •1. Основы построения баз данных 11
- •2. Модели представления данных 22
- •3. ДатАлогические модели данных 38
- •4. Семантическое моделирование 101
- •5. Базы данных в сетях 155
- •6.Современное состояние и 177
- •1. Основы построения баз данных
- •1.1. Архитектура системы баз данных
- •1.2. Жизненный цикл базы данных
- •Контрольные вопросы и задания
- •2. Модели представления данных
- •2.1. Классификация моделей данных
- •2.2. Разновидности инфологических моделей данных
- •Контрольные вопросы и задания
- •3. ДатАлогические модели данных
- •3.1. Иерархические модели
- •Между предками и потомками автоматически поддерживается целостность ссылок. Основное правило: никакой потомок не может существовать без своего родителя, у некоторых родителей не может быть потомков.
- •3.2. Сетевые модели
- •3.3. Реляционные модели
- •3.3.1. Основные понятия реляционной модели
- •3.3.2. Реляционная алгебра
- •3.3.3. Язык запросов по образцу qbe
- •3.3.4. Структурированный язык запросов sql
- •Основные инструкции языка sql
- •Values ("3110", "чп Иванов п.Т.", null)
- •3.4. Проектирование реляционных баз данных
- •Контрольные вопросы и задания
- •4. Семантическое моделирование
- •4.1. Объектно-ориентированное проектирование
- •4.1.1. Представление объектов
- •4.1.2. Описания классов
- •4.1.3. Атрибуты в odl
- •4.1.4. Связи в odl
- •4.1.5. Обратные связи
- •4.1.6. Множественность связей
- •4.1.7. Типы в odl
- •4.1.8. Проектирование с использованием odl
- •Правильность
- •Устранение избыточности
- •4.1.9. Подклассы
- •4.1.10. Множественное наследование в odl
- •4.1.11. Моделирование ограничений
- •Ссылочная целостность
- •Прочие ограничения
- •4.1.12. Переход от объектно-ориентированной модели к реляционной
- •4.2. Диаграммы "сущность-связь"
- •4.2.1. Компоненты диаграмм "сущность-связь"
- •4.2.2. Множественность e/r-связей
- •Многосторонние связи
- •4.2.3. Роли в связях
- •4.2.4. Атрибуты связей
- •4.2.5. Конвертирование многосторонних связей в бинарные
- •4.2.6. Проектирование e/r моделей
- •Простота
- •Типы элементов проекта
- •Определения подклассов
- •Наследование в e/r-модели
- •Моделирование ограничений
- •Ссылочная целостность
- •Слабые множества сущностей
- •Переход от e/r-диаграмм к реляционным проектам
- •Контрольные вопросы и задания
- •5. Базы данных в сетях
- •5.1. Архитектура "клиент-сервер"
- •5.2. Распределенные базы данных
- •5.3. Базы данных в Интернет
- •Контрольные вопросы и задания
- •Контрольные вопросы и задания
- •Информационные ресурсы Internet
- •Словарь терминов
- •Список сокращений
- •Темы рефератов
Прочие ограничения
Для конкретной базы данных могут быть введены также другие ограничения (правила целостности). Например, учитывая оборот изделий и реальные возможности мастеров можно ввести правило, согласно которому у каждого мастера было бы не более десяти изделий.
В ODL ограничить количество изделий на одного мастера до десяти можно, задав тип атрибута мастера списком длины 10. Однако здесь невозможно задать условие, согласно которому множество будет иметь не более 10 элементов.
4.1.12. Переход от объектно-ориентированной модели к реляционной
От объектно-ориентированной модели в большинстве случаев достаточно легко перейти к реляционной.
Пусть принимаются следующие ограничения:
все свойства класса представляют собой атрибуты (а не отношения или методы);
типы атрибутов атомарны (не являются структурами или множествами).
В данном случае переход к реляционной модели прост: создаются отношения с именем соответствующего класса, при этом атрибуты объектной модели переходят в атрибуты соответствующего классу отношения.
В ряде случаев не возникает проблем, даже если некоторые атрибуты не атомарны (такие как дата, перечень). Можно, например, тип "перечень" для дней недели представить целыми числами от 0 до 6.
Для более трудных случаев используются расширение множества на несколько кортежей и дополнительные отношения.
Наиболее сложный случай связан с представлением многозначных связей если связь имеет тип множества. В данном случае используется комбинация двух методов:
однозначные связи – нужно найти ключ для представления каждого из связанных объектов;
имеются атрибуты со значением типа множества – нужно представить множество связанных объектов путем создания одного кортежа для каждого значения. При этом появляется избыточность, которая устраняется при переходе к нормальным формам более высокого порядка.
В объектно-ориентированной модели имена атрибутов различных объектов могут совпадать, поэтому в подобных ситуациях при переходе к реляционной модели необходимо присвоить уникальные имена атрибутам, например, включая в имя атрибута имя соответствующего объекта.
4.2. Диаграммы "сущность-связь"
Немаловажную роль в инфологическом проектировании играет наглядность представляемых моделей данных. В этой связи большой популярностью разработчиков пользуются средства, основанные на графических нотациях, самым распространенным средством данного типа являются диаграммы "сущность-связь" (entity-relationship, E/R), которые соответствуют объектно-ориентированному подходу. Эти диаграммы имеют те же три главных компонента, о которых говорилось при описании ODL (хотя модели E/R и ODL имеют особенности, о которых речь пойдет ниже).
4.2.1. Компоненты диаграмм "сущность-связь"
Множества сущностей, аналогичные классам. Сущности – это члены множества сущностей, аналогичные объектам ODL.
Атрибуты–- это значения, описывающие свойства сущности. Атрибуты в E/R и ODL – это, по сути, одно и то же понятие.
Связи – это соединения между двумя или более множествами сущностей. Связи в E/R аналогичны связям в ODL за следующими исключениями:
В модели E/R одно имя приписывается связи в обоих направлениях, а в ODL отдельно определяются связь и ее обращение. Например, обратные связи Изделие::мастера и Мастер:: от_мастера в примере 4.4 в модели E/R были бы представлены единственной связью.
Связи в E/R могут соединять более двух множеств сущностей, а связи ODL – максимум два класса.
Пример 4.13. На рис. 47 изображена E/R диаграмма, представляющая ту же самую информацию о реальном мире, что и описание ODL в примере 4.5.
Множествами сущностей являются Изделие, Мастер и Цех. Чтобы выразить небольшое различие между множествами сущностей и классами, имена первых пишутся во множественном числе, имена вторых в единственном.
Множество сущностей Изделия имеет те же атрибуты, что и класс Изделие в примере 4.5, а именно – название изделия, размер, и тип материала. Аналогично, два других множества имеют атрибуты, которые были описаны для соответствующих классов ODL.
На рис. 47 видны также связи, соответствующие связям из ODL-описания примера 4.5. Одно из них мастером содержит информацию пары обратных связей мастера и от_мастера между ODL-классами Изделие и Мастер. E/R-связь относиться на рис. 44 представляет обратные связи Изделие::выполняется_в и Цех::обеспечивает. Стрелка, указывающая на множество Цеха, означает, что каждым изделием занимается только один цех.