- •Министерство образования и науки рф Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
- •Введение в базы данных
- •Учебное пособие
- •Воронеж 2012
- •Понятие информационной системы
- •Процессы в информационной системе
- •Этапы развития информационных систем
- •Структура информационной системы. Типы обеспечивающих подсистем
- •Математическое и программное обеспечение
- •Правовое обеспечение
- •Классификация информационных систем по признаку структурированности задач
- •Понятие структурированности задач
- •Типы информационных систем, используемые
- •Классификация ис по характеру использования информации
- •Классификация ис по сфере применения
- •Классификация ис по степени автоматизации
- •Контрольные вопросы
- •2. Введение в субд
- •2.1. Понятие базы и банка данных
- •2.2. Средства реализации баз данных
- •2.2.1. Программные средства банка данных
- •2.2.2. Языковые средства
- •2.2.3. Технические и организационно-методические средства
- •2.2.4. Требования к банкам данных
- •2.3. Функции субд
- •2.4. Классификация банков данных
- •2.4.1. Классификация баз данных
- •2.4.2. Классификация субд
- •2.4.3. Классификация БнД по экономико-организационным признакам
- •2.5. Концепция централизованного управления
- •Преимущества централизованного управления данными
- •2.6. Трехуровневая архитектура системы баз данных
- •2.7. Пользователи банков данных
- •2.8. Архитектура клиент/сервер
- •Контрольные вопросы
- •3. Модели и типы данных
- •3.1. Иерархическая модель
- •3.2. Сетевая модель
- •3.3. Реляционная модель
- •3.4. Постреляционная модель
- •3.5. Многомерная модель
- •3.6. Типы данных
- •Контрольные вопросы
- •4. Применение Баз данных в корпоративных информационных системах
- •4.1. Корпоративная информационная система
- •Контуром оперативного управления
- •4.2. Контур административного управления
- •4.2.1. Наполнение баз данных на примере модуля «Управление персоналом»
- •4.3. Контур оперативного управления
- •4.3.1. Пример организации модуля «Управление продажами (сбыт)»
- •Базы данных модуля «Автотранспорт»
- •4.4. Контур бухгалтерского учета
- •Контрольные вопросы
- •5. Справочно-правовые базы данных
- •5.1. Общая характеристика справочно-правовых баз
- •5.2. Наиболее популярные юридические базы данных
- •5.2.1. База юсис
- •5.2.2. Информационно-поисковая система "Кодекс"
- •5.2.3. Справочно-правовая система "Гарант"
- •5.2.4. Справочно-правовая система «Консультант Плюс»
- •5.2.5. Программный комплекс "Эталон"
- •Контрольные вопросы
- •6. Проектирование баз данных
- •6.1. Этапы проектирования
- •6.2. Инфологическое моделирование
- •6.2.1. Компоненты инфологической модели Модель «сущность — связь»
- •6.2.2. Классификация бинарных связей
- •6.2.3. Моделирование локальных представлений
- •6.2.4. Объединение моделей локальных представлений
- •6.3. Даталогическое проектирование
- •6.4. Проектирование реляционных баз данных
- •6.5. Нормализация отношений
- •Контрольные вопросы
- •7. Реляционная модель данных
- •Общие понятия
- •7.2. Реляционные объекты данных
- •7.2.1. Основные понятия
- •7.2.2. Фундаментальные свойства отношений
- •7.2.3. Виды отношений
- •Целостность реляционных данных
- •Реляционные операторы
- •7.4.1. Реляционная алгебра
- •Примеры использования реляционной алгебры для выражения словесных запросов в виде формулы
- •Назначение реляционной алгебры
- •Операции расширения и подведения итогов
- •Операторы обновления
- •7.4.2. Реляционное исчисление
- •Контрольные вопросы
- •8. Язык реляционных баз данных sql
- •8.1. Функции и основные возможности
- •8.2. Средства определения схемы
- •8.2.1. Определение таблицы
- •8.2.2. Определение ограничений целостности таблицы
- •8.2.3. Определение представлений
- •8.3. Структура запросов
- •8.3.1. Спецификация курсора
- •8.3.2. Оператор выборки
- •8.3.3. Подзапрос
- •8.3.4 Табличное выражение
- •Раздел where
- •Предикат сравнения
- •Предикат between
- •Предикат in
- •Предикат null
- •Предикат с квантором
- •Предикат exists
- •Раздел group by
- •Раздел having
- •8.4. Агрегатные функции и результаты запросов
- •8.5. Операторы обновления
- •Оператор изменения записей
- •Контрольные вопросы
- •9. Внутренняя организация реляционных субд
- •9.1. Хранение отношений
- •9.2. Индексы
- •9.3. Журнальная информация
- •9.4. Служебная информация
- •Контрольные вопросы
- •10. Настольные субд
- •10.1. Общие сведения о настольных субд
- •10.2. Наиболее популярные настольные субд
- •Контрольные вопросы
- •11. Серверные субд
- •11.1. Характерные черты современных серверных субд
- •Наиболее популярные серверные субд
- •Контрольные вопросы
- •Заключение
- •Корелина Татьяна Валерьевна введение в базы данных
- •394006 Воронеж, ул. 20-летия Октября, 84
6.4. Проектирование реляционных баз данных
Для реляционной базы данных проектирование логической структуры заключается в том, чтобы разбить всю информацию по файлам (отношениям), а также определить состав полей (атрибутов) для каждого из этих файлов.
Существуют разные способы проектирования логической структуры реляционных баз данных. Среди них есть и строгие математические методы (нормализация отношений). Первоначально рассмотрим способ проектирования, основанный на анализе инфологической модели и переходе от нее к реляционным отношениям. Этот метод является достаточно простым и наглядным и в то же время дает хорошие результаты [12].
Для перехода от инфологической модели к реляционной можно воспользоваться следующими рекомендациями.
1. Для каждого простого объекта и его единичных свойств строится отношение, атрибутами которого являются идентификаторы объекта и реквизиты, соответствующие каждому из единичных свойств.
2. Если у объекта имеются множественные свойства, то каждому из них ставится в соответствие отдельное отношение. Ключом этого отношения будет идентификатор соответствующего объекта, а неключевым атрибутом – реквизит, отражающий данное свойство.
3. Если между объектом и его свойством имеется условная связь, то при отображении в реляционную модель возможны следующие варианты:
а) если многие из объектов обладают рассматриваемым свойством, то его можно хранить в базе данных так же, как и обычное свойство;
б) если только незначительное число объектов обладает указанным свойством, то для многих записей в файле базы данных значение соответствующего поля будет пустым при использовании предыдущего решения. Для устранения этого недостатка можно выделить отдельное отношение, которое будет включать идентификатор объекта и атрибут, соответствующий рассматриваемому свойству. Это отношение будет содержать столько строк, сколько объектов имеет рассматриваемое свойство. Однако это решение тоже имеет недостатки и применяется сравнительно редко.
4. Наличие между объектами связи типа 1:1 является довольно редкой ситуацией в реальной жизни. Если связь между объектами 1:1 и класс принадлежности обоих сущностей являются обязательными, то для отображения обоих объектов и связи между ними можно использовать один файл. Такое решение потребует меньше всего памяти для своей реализации. Однако таким решением не следует злоупотреблять. Если случится, что для каждого из этих объектов в дальнейшем потребуется отразить какие-то свои связи или в запросах часто будет требоваться информация отдельно по каждому из объектов, то это может усложнить работу.
Если для каждого из этих объектов сохраняются отдельные отношения, то информацию о связях между ними можно отразить, включив в одно из отношений идентификатор связанного объекта из другого отношения. Причем если класс принадлежности обоих сущностей является обязательным, то это можно сделать в любом из отношений. Если класс членства одного из объектов является необязательным, то идентификатор сущности, для которой класс принадлежности является необязательным, добавляется в отношение, соответствующее тому объекту, для которого класс принадлежности обязателен.
Если степень связи между объектами 1:1 и класс принадлежности каждой из них являются необязательными, то следует использовать три отношения: по одному для каждой сущности и одно для отображения связи между ними.
Если связь 1:1 реализована на одном и том же множестве объектов, то можно использовать одно отношение.
5. Если между объектами предметной области имеется связь 1:М и класс принадлежности n-связной сущности является обязательным, то можно использовать два отношения, по одному для каждой сущности. В отношение, соответствующее 1-связной сущности, при этом надо дополнительно добавить идентификатор связанного с ней объекта.
Если класс принадлежности n-связной сущности является необязательным, то для отображения связи надо создать третье отношение, которое будет содержать ключи каждой из связанных сущностей.
6. Если между объектами предметной области имеется связь М:N, то для хранения такой информации потребуются три отношения: по одному для каждой сущности и одно для отображения связи между ними. Последнее отношение будет содержать идентификаторы связанных объектов.
7. Каждому агрегированному объекту, имеющему место в предметной области, в даталогической реляционной модели будет соответствовать отдельный файл базы данных (отношение). Атрибутами этого отношения будут идентификаторы всех объектов, «задействованных» в данном агрегированном объекте, а также реквизиты, соответствующие свойствам этого агрегированного объекта. Объединить информацию о нескольких агрегированных объектах в одно реляционное отношение можно только в том случае, если те объекты, с которыми связан каждый из них, полностью совпадают.
8. При отображении обобщенных объектов могут быть приняты разные решения. Во-первых, всему обобщенному объекту может быть поставлен в соответствие один файл базы данных. Другой крайней ситуацией является решение, при котором каждой из категорий объектов нижнего уровня ставится в соответствие отдельное отношение. В первом случае атрибутами отношения будут все единичные свойства, присущие объектам хотя бы одной категории, плюс идентификатор объекта. Во втором случае каждое отношение будет включать в себя идентификатор объекта, те свойства, которые присущи объектам данной категории, а также свойства, которыми обладают родовые объекты, стоящие выше его по иерархии. Другими словами, для «видовых» объектов наблюдается наследование свойств «родовых» объектов.
Кроме этих двух «крайних» решений возможны и комбинированные варианты. Выбор конкретного решения будет зависеть от многих факторов, в том числе от того, насколько часто информация о разных категориях объектов обрабатывается совместно, как велико различие в «видовых» свойствах и некоторых других факторах.
9. Наличие связи «целое-часть» также может быть отображено в даталогической модели по-разному. Само это отношение может качественно различаться для разных ситуаций. Так, если речь идет о составе изделий, то между «ИЗДЕЛИЕМ» и «ДЕТАЛЬЮ» имеется связь типа М:М, так как одна и та же деталь может входить в разные изделия и, наоборот, в изделие входят разные детали. Состав изделия обычно является сложным, и отражать его в явном виде в структуре базы данных нежелательно, а иногда и невозможно. Кроме того, рассматриваемая связь реализована на однородном множестве объектов. В этом случае для отображения связи «целое-часть» можно воспользоваться двумя файлами базы данных. Первый из них будет хранить информацию о самих объектах, а второй – информацию о связи между ними, а также дополнительную информацию, характеризующую эту связь. Для состава изделия это могут быть поля «что входит», «куда входит» и «количество».
Отношение «целое-часть» может отражать, например, структуру какой-то организации. В этом случае ему скорее всего будет соответствовать связь типа 1:М, и для его отображения в даталогической модели можно использовать рекомендации, данные в п. 5 для соответствующего случая.
В рассматриваемой ситуации также можно воспользоваться неявным выделением уровней, но такой прием используется здесь редко.
Некоторые реляционные СУБД требуют, чтобы при описании базы данных были указаны ключи отношения. Причем если отношение имеет несколько вероятных ключей, то один из них должен быть задан в качестве первичного ключа, а остальные описаны как уникальные поля. Вероятными ключами отношений, соответствующих простым или обобщенным объектам, будут идентификаторы соответствующих объектов. Если таких идентификаторов несколько, то в качестве первичного ключа обычно выбирается короткий код объекта. Для отношений, соответствующих агрегированным объектам, ключ будет составной. В большинстве случаев им будет являться конкатенация (соединение) идентификаторов объектов, «участвующих» в этом агрегированном объекте. Для отношений, отражающих связь М:М между объектами, ключ будет также составным и будет включать идентификаторы связанных объектов. Для отношений, отображающих множественные свойства объекта, составной ключ будет содержать идентификатор объекта и поле, соответствующее множественному полю.
Реляционная база данных, полученная в результате использования предложенной методики проектирования, будет нормализованной и автоматически находится в четвертой нормальной форме.
Как известно, вся предметная область может быть представлена в виде одного универсального отношения. Недостатки такого способа хранения известны, и нормализация отношений служит устранению этих недостатков.