
- •1.Информационные системы
- •2.Основные понятия теории баз данных
- •2.1.Предметная область
- •2.2.Пользователи информационной системы
- •2.3.Интеграция данных Достоинства интеграции данных
- •Проблемы, связанные с интеграцией данных
- •Функции администратора бд
- •Проектирование и развитие бд
- •3.Архитектура информационной системы
- •4.Сетевые базы данных
- •4.1.Способы упорядочения подчиненных записей
- •4.2.Режим включения подчиненных записей
- •4.3.Режим исключения подчиненных записей
- •4.4.Операции над данными
- •5.Иерархические базы данных
- •5.1.Операции над данными
- •6.Реляционные базы данных
- •6.1.Цели проектирования баз данных
- •6.2.Универсальные отношения
- •6.3.Проблемы, связанные с использованием единственного отношения
- •Проблема вставки.
- •Проблема обновления.
- •Проблема удаления.
- •6.4.Функциональные зависимости
- •6.5.Нормальные формы отношений Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Третья усиленная форма или нормальная форма Бойса–Кодда (нфбк)
- •6.6.Общая схема проектирования баз данных
- •6.7.Избыточные функциональные зависимости. Правила вывода
- •Правило 1. Избыточные зависимости
- •6.8.Схема проектирования баз данных методом декомпозиции
- •7.Метод проектирования бд «Сущность-связь»
- •7.1.Сущности и связи
- •Диаграмма еr–экземпляров:
- •Д иаграмма er–типа:
- •7.2.Степень связи
- •Правило 1.
- •Правило 2.
- •Правило 3.
- •Правило 4.
- •Правило 5.
- •7.3.Бинарные связи степени m:n.
- •Правило 6.
- •Пример проектирования с использованием связей степенью м:n
- •7.4.Связи более высокого порядка
- •Правило 7
- •Пример проектирования с использованием связей более высокого порядка
- •7.5.Использование ролей
- •Правило 8
- •Пример проектирования с использованием ролей
- •8.Постреляционные базы данных
- •8.1.Ограничения реляционных баз данных.
- •Недостатки реляционных баз данных
- •8.2.Системы управления базами данных следующего поколения
- •Абстрактные типы данных
- •Генерация систем баз данных, ориентированных на приложения
- •8.3.Ориентация на расширенную реляционную модель
- •Расширенная реляционная модель
- •9.Объектно-ориентированные субд.
- •9.1.Объектно-ориентированная парадигма.
- •Структура:
- •Целостность данных:
- •Средства манипулирования данными:
- •9.2.Анализ эффективности объектно-ориентированных баз данных Преимущества объектно-ориентированных баз данных:
- •Недостатки объектно-ориентированных баз данных:
- •9.3.Стандарт odmg.
- •Объектная модель
- •Язык описания объектов
- •Язык объектных запросов
- •Связывание с оо-языками
- •9.4.Объектные расширения реляционных субд. Язык sql-3.
- •10.Базы знаний
- •10.1.Понятие системы баз знаний.
- •10.2.Структура системы базы знаний Компоненты Системы баз знаний (сбз):
- •Экстенсиональная и интенсиональная части базы данных
- •10.3.Активные базы данных
- •10.4.Дедуктивные базы данных
- •10.5.Инструментальные средства построения систем баз знаний.
- •11.Язык sql
- •11.1.Стандарт языка доступа к бд
- •11.2.Классификация операторов sql
- •Ddl (data definition language) – операторы определения объектов бд.
- •Insert into (Вставка записей).
- •Update (Редактирование записей).
- •Delete (Удаление записей).
- •Оператор select.
- •Модификатор distinct (предотвращение выборки повторяющихся слов).
- •Order by (упорядочение строк в результате запроса).
- •Использование псевдонимов (alias).
- •11.4.Арифметические выражения.
- •11.5.Групповые функции.
- •Предложение having.
- •11.6.Вложенные запросы.
- •Подзапросы, возвращающие набор значений.
- •Подзапросы, возвращающие значения из нескольких столбцов.
- •Составные запросы с несколькими подзапросами.
- •Синхронизация повторяющихся подзапросов
- •Комбинация нескольких команд Select
- •11.7.Индексы
- •7. Метод проектирования бд «Сущность-связь» 41
- •8. Постреляционные базы данных 75
- •9. Объектно-ориентированные субд. 81
- •10. Базы знаний 87
- •11. Язык sql 93
7.1.Сущности и связи
Рассмотрим простейший пример. Предположим, проектируется БД, предназначенная для хранения информации о преподавателях и курсах, которые они читают. Двумя главными объектами, или сущностями, представляющими в данном случае интерес, являются «Преподаватель» и «курс». Между этими сущностями существует связь ЧИТАЕТ.
Связь ЧИТАЕТ, существующая между двумя сущностями ПРЕПОДАВАТЕЛЬ и КУРС может быть графически представлена несколькими способами:
Диаграмма еr–экземпляров:
В этом способе каждый преподаватель характеризуется номером преподавателя (НП) и каждый курс – названием курса (НК). Здесь видно, какой в точности курс читается каждым преподавателем.
Д иаграмма er–типа:
Сущности изображаются прямоугольниками, связи в виде ромбов, ниже каждой сущности указывают атрибут или набор атрибутов, являющийся ключом сущности.
Термины, используемые в ER–методе, не могут быть определены строго, тем не менее, их необходимо определить.
Сущность определяется как некий объект, представляющий интерес для пользователей БД. Этот объект должен иметь экземпляры, отличающиеся друг от друга и допускающие однозначную идентификацию. Признак, который может помочь в отыскании сущности состоит в том, что сущность это как правило, существительное (в инфологической модели предметной области).
Связь представляет собой взаимодействие между двумя или более сущностями. При поиске сущностей следует иметь в виду, что связь, как правило, глагол (в инфологической модели ПО).
Атрибут есть свойство сущности. Например атрибутами сущности преподавателя могут быть: номер преподавателя, фамилия, телефон, должность, адрес и т.п.
Ключ сущности – это атрибут или набор атрибутов, значения которых однозначно определяют экземпляр сущности.
Ключ связи – набор ключей сущностей, соединяемых данной связью.
На первом этапе проектирования БД ER–методом необходимы только те атрибуты сущностей, которые являются их ключами. Другие атрибуты вместе с функциональными зависимостями, в которых они участвуют, будут добавлены на более поздних этапах проектирования.
7.2.Степень связи
Важной характеристикой связи между двумя и более сущностями является степень связи. Степень связи устанавливается из описания предметной области (из инфологической модели).
К
аждый
преподаватель читает не более одного
курса, и каждый курс читается не более
чем одним преподавателем (т.е. могут
быть не читающие преподаватели и не
читаемые курсы).
Каждый преподаватель читает только один курс, каждый курс читается не более чем одним преподавателем.
К
аждый
преподаватель читает не более одного
курса, каждый курс читается только одним
преподавателем.
К
аждый
преподаватель читает только один курс,
каждый курс читается только одним
преподавателем.
В рассмотренных примерах любой экземпляр сущности (как слева, так и справа) может быть связан максимум с одной сущностью с противоположной стороны. Такая связь определяется как связь, имеющая степень 1:1.
Качественные различия изображенных диаграмм являются следствием того, должны или не должны все экземпляры сущности участвовать в связи.
Если все экземпляры данной сущности должны участвовать в связи, то участие сущности называется обязательным участием.
Если экземпляры данной сущности могут не участвовать в связи, то участие сущности называется необязательным участием.
Используется понятие класс принадлежности сущности. Класс принадлежности сущности связи является обязательным в случае обязательного участия. Класс принадлежности сущности связи является необязательным в случае необязательного участия. Класс принадлежности конкретной сущности в конкретной связи определяется из инфологической модели предметной области.
Степень связи и класс принадлежности сущности является важнейшими характеристиками, используемыми при проектировании БД ER–методом.
Единицы означают степень связи. Точка внутри прямоугольного блока означает обязательное участие сущности в данной связи (класс принадлежности обязательный). Точка вне прямоугольного блока означает необязательное участие сущности в данной связи (класс принадлежности не обязательный).
Рассмотрим примеры, в которых степень связи отлична от 1:1.
Каждый преподаватель может читать одновременно несколько курсов. Каждый курс читается не более чем одним преподавателем. Степень связи 1:n:
Каждый преподаватель читает не более одного курса, каждый курс читается более чем одним преподавателем. Степень связи n:1:
Каждый преподаватель может читать несколько курсов, каждый курс может читаться несколькими преподавателями. Степень связи m : n :
Связь ЧИТАЕТ, существующая между сущностями ПРЕПОДАВАТЕЛЬ и КУРС называется бинарной, поскольку она связывает две сущности. Связи более высокого порядка, существующие между тремя и более сущностями мы рассмотрим позднее.
Общий подход к проектированию БД с использованием ER–метода состоит, прежде всего, в построении диаграммы ER–типа, включающей все сущности и все связи, обнаруженные в результате анализа инфологической модели предметной области.
Второй шаг в процессе проектирования состоит в построении набора предварительных отношений и указании предполагаемого ключа для каждого отношения.
Последний шаг состоит в подготовке списка всех атрибутов и в распределении этих атрибутов по полученным отношениям. Необходимо определить для каждого отношения функциональные зависимости и проверить, находятся ли эти отношения в НФБК. Если хотя бы одно отношение не находится в НФБК или некоторые атрибуты не могут логично включиться ни в одно отношение, необходимо пересмотреть диаграммы ER–типа.
Предварительные отношения для бинарных связей степени 1:1
Предварительные отношения могут быть получены путем перебора всех возможных вариантов.
Рассмотрим ситуацию:
НП |
Фам. |
Тел. |
НК |
V |
П1 |
Иванов |
33-22-11 |
К3 |
24 |
П2 |
Минин |
56-98-76 |
К1 |
36 |
П3 |
Орлов |
53-87-98 |
К4 |
18 |
П4 |
Петров |
52-78-00 |
К2 |
54 |
В этом отношении сущность ПРЕПОДАВАТЕЛЬ дополнена двумя атрибутами – фамилия преподавателя, телефон преподавателя. Сущность КУРС дополнена атрибутом V – объем в часах.
Простейшее решение – одно отношение для хранения атрибутов
В этом случае одно отношение это то, что нужно. Т.к. степень связи 1:1 и класс принадлежности является обязательным для обеих сущностей, гарантируется отсутствие пустых полей, а также дублирование информации.
Этот результат можно получить формально:
Возможные ключи: НП, НК, <НП, НК> Детерминанты: НП, НК, <НП, НК>