Процесс проектирования БД – это переход от одного уровня абстракции в представлении данных к другому, от неформального описания информационной структуры ПО к формализованному описанию в терминах выбранной модели.
Проектирование БД может быть функционально-ориентированным, а должно быть ориентированным на данные, т.к. функции часто меняются.
Основные этапы проектирования БД:
1. системный анализ и описание ПО;
2. инфологическое проектирование (концептуальное);
3. выбор модели данных – СУБД;
4. даталогическое проектирование (логическое);
4.1. логическое проектирование;
4.2. физическое проектирование.
Системный анализ ПО должен содержать:
1. описание предметной области (описание среды функционирования, объекта управления, управляющей системы);
2. первоначальное описание информации об объектах ПО и их свойствах, т.е. описание информации, которую нужно хранить;
3. выявление ограничений и правил поддержки целостности данных: тип данных, границы, структура, условия проверки значений данных, обязательность, повторяемость, значение по умолчанию и др.
4. определение категорий пользователей и списка их задач, требующих автоматизации;
5. описание выходных документов, которые необходимо получать;
6. описание входных документов, которые служат основой для заполнения БД.
По итогам системного анализа ПО необходимо обосновать актуальность разработки системы БД в данной ПО, определить цели разработки системы и критерии достижения поставленных целей.
На инфологическом этапе определяются объекты ПО, их свойства и связи. Описание ПО производится на естественном языке с использованием формул, диаграмм связей, удобных и для разработчиков, и для пользователей - не специалистов по БД.
Основное требование к ИЛМ – это адекватное отображение ПО и соответствие информационным потребностям пользователей. Инфологическая модель применяется для отображения семантики ПО.
В инфологической модели используются такие конструкции, как “Объект – Свойство – Отношение” на внешнем уровне или “Сущность – Атрибут - Связь” на концептуальном уровне.
Объект – это то, о чем накапливается информация, объект обладает набором свойств. Сущность – это некоторая абстракция существующего объекта, процесса или явления.
В ПО различают экземпляры объектов – это конкретные объекты и классы объектов – это совокупность однородных объектов, обладающих одинаковым набором свойств. Типы сущностей и экземпляры сущности аналогичны понятиям классы объектов и экземпляры объекта. Например, класс объектов «Пенсионеры», экземпляр сущности – конкретный пенсионер Иванов И.И.
Атрибут – это поименованная характеристика сущности. Назначение атрибута – это описание свойств сущности.
Для каждой сущности определяется атрибут или набор атрибутов для однозначного распознавания экземпляров сущности – это ключ.
В ПО «ВУЗ» можно выделить такие типы сущностей (классы объектов), как «Студенты», «Преподаватели», «Предметы» и др. Например, свойства объекта класса «Студенты» могут быть заданы атрибутами «№_зачетной_книжки», «Фамилия», «Адрес», «№_группы», ключом может быть атрибут «№_зачетной_книжки».
В ИЛМ используются наглядные графические средства. Инфологическая модель, отображающая свойства объекта «Служащий», представлена на рис.
Рис. Инфологическая модель объекта «Служащий»
В прямоугольнике задаются возможные ключи объекта, в овалах – свойства, связи объекта и его свойств обозначены стрелками. Различают простые свойства и множественные («Год рождения» и «Иностранный язык», соответственно). Для обозначения множественного свойства используется двойная стрелка. Различают постоянные свойства (статические), обозначают буквой S, и изменяемые свойства (динамические), обозначают буквой D. Желательно от динамических свойств переходить к статическим, например, атрибут «Возраст» необходимо заменить атрибутом «Дата рождения». Различают параметрические свойства и декларативные, желательно декларативные свойства заменить параметрическими. Например, декларативные свойства «Красный цвет», «Синий цвет», «Черный цвет», характеризующие маркированные изделия, заменить параметрическим атрибутом «Цвет», значениями атрибута будут указанные цвета.
В ИЛМ, кроме связи между объектом и его свойствами, отображаются классы объектов и смысл (семантика) связи между ними.
Связи отражают отношения между сущностями в ПО.
Чаще используются бинарные связи между двумя типами сущностей, возможны связи типа «1:1», «1:М», «М:N», при этом говорят о степени связи (кардинальности связи). Например, кардинальность связи типа «1:М» между сущностью «Классы» и сущностью «Ученики» равна 1: 25 (в одном классе 25 учеников).
Бинарные связи между сущностями типа А и В:
- связь типа 1:1, когда каждому экземпляру сущности А соответствует один и только один экземпляр сущности В и наоборот, например, «Тип самолета» - «Тип двигателя»;
- связь типа 1:М, когда одному экземпляру сущности А может соответствовать несколько экземпляров сущности В, однако каждому экземпляру сущности В соответствует только один экземпляр сущности А например, «Класс» - «Ученики», «Группа» - «Студенты»;
- связь типа М:N, когда каждому экземпляру сущности А может соответствовать несколько экземпляров сущности В и наоборот, например, «Студенты» - «Дисциплины», «Преподаватели» - «Дисциплины».
Стандартом при инфологическом моделировании стала семантическая модель «Сущность-связь», модель ER - типа (Entity – сущность, Relationship – связь). Графическое изображение модели ER – типа называют диаграммой ER – типа.
Первоначально формируются внешние (локальные) ER – модели в локальной области каждого из пользователей, на их основе проектируется концептуальная ER – модель для всей ПО.
ИЛМ строятся без ориентации на используемые в дальнейшем программные и технические средства.