- •Оглавление
- •Глава 1. Жизненный цикл программного обеспечения ……………………………………………43
- •Глава 2. Методические аспекты
- •Глава 3. Моделирование бизнес-процессов
- •Глава 4. Анализ и проектирование
- •Глава 5. Технологии создания программного
- •Глава 6. Оценка трудоемкости создания
- •Глава 7. Особенности современных проектов ........527
- •Предисловие
- •Введение
- •Глава 1 жизненный цикл программного обеспечения
- •Нормативно-методическое обеспечение создания по
- •Стандарт жизненного цикла по
- •Основные процессы жц по
- •Вспомогательные процессы жизненного цикла по
- •Организационные процессы жизненного цикла по
- •Взаимосвязь между процессами жц по
- •Модели жизненного цикла по
- •Каскадная модель жц
- •Итерационная модель жизненного цикла
- •Методика spmn
- •Пример процесса «управление требованиями»
- •Пример процесса «управление конфигурацией по»
- •Общие принципы проектирования систем
- •Визуальное моделирование
- •Структурные методы анализа и проектирования по
- •Метод функционального моделирования
- •Описание типов связей
- •Моделирования процессов idef3
- •Типы связей idef3
- •Типы соединений
- •Моделирование потоков данных
- •Количественный анализ диаграмм
- •Сравнительный анализ sadt-моделей и диаграмм потоков данных
- •Моделирование данных
- •Объектно-ориентированные методы анализа и проектирования по
- •Основные принципы построения объектной модели
- •Основные элементы объектной модели
- •Значения мощности
- •Унифицированный язык моделирования uml
- •Диаграммы вариантов использования
- •Диаграммы взаимодействия
- •Диаграммы классов
- •Диаграммы состояний
- •Диаграммы деятельности
- •Диаграммы компонентов
- •Диаграммы размещения
- •Механизмы расширения uml
- •Количественный анализ диаграмм uml
- •Основные элементы языка uml
- •Основные типы связей языка uml
- •Диапазоны оценок для диаграмм uml
- •Образцы
- •Сопоставление и взаимосвязь структурного и объектно-ориентированного подходов
- •Структурный (процессный) подход к моделированию бизнес-процессов
- •Принципы процессного подхода
- •Применение диаграмм потоков данных
- •Система моделирования aris
- •Метод ericsson-penker21
- •Пример использвания процессного подхода
- •История болезни пациента
- •Спецификация структур данных
- •Построение диаграмм потоков данных нулевого и последующих уровней
- •Объектно-ориентированный подход к моделированию бизнес-процессов
- •Методика моделирования
- •Пример использования объектно-ориентированного подхода
- •Пример спецификации требований к программному обеспечению
- •Пример структурного проектирования по
- •Построение диаграмм системных процессов и диаграмм последовательностей экранных форм
- •Объектно-ориентированный анализ
- •Архитектурный анализ
- •Анализ вариантов использования
- •Объектно-ориентированное проектирование
- •Проектирование архитектуры системы
- •Проектирование элементов системы
- •Глава 5 технологии создания программного обеспечения
- •Определение технологии
- •Общие требования, предъявляемые
- •Внедрение тс по в организации
- •Общие сведения
- •Определение потребностей в тс по
- •Оценка и выбор тс по
- •Критерии оценки и выбора тс по
- •Выполнение пилотного проекта
- •Практическое внедрение тс по
- •Примеры тс по
- •Технология rup (rational unified process)
- •Технология oracle
- •Технология borland
- •Технология computer associates
- •Глава 6 оценка трудоемкости создания программного обеспечения
- •Методы оценки и их классификация
- •Методика оценки трудоемкости разработки по на основе функциональных точек
- •Определение функциональных типов
- •Определение количества и сложности функциональных типов по данным
- •Сложность ilf и eif
- •Определение количества и сложности транзакционных функциональных типов
- •Подсчет количества функциональных точек
- •Зависимость количества fp от сложности функционального типа
- •Коммуникации данных
- •Распределенная обработка данных
- •Сложность ei
- •Сложность ео
- •Производительность
- •Эксплуатационные ограничения
- •Частота транзакций
- •Ввод данных в режиме «онлайн»
- •Эффективность работы конечных пользователей1
- •Онлайновое обновление
- •Сложная обработка31
- •Повторное использование
- •Простота установки
- •Простота эксплуатации
- •Количество возможных установок на различных платформах
- •Гибкость32
- •Оценка трудоемкости разработки
- •Размер программного обеспечения в fp и loc
- •Распределение временных затрат по стадиям для маленьких и больших проектов
- •Статистические данные
- •Статистические (регрессионные) модели
- •Группа процессов
- •Определение весовых показателей вариантов использования
- •Определение технической сложности проекта
- •Определение уровня квалификации разработчиков
- •Оценка трудоемкости проекта
- •Методы, основанные на экспертных оценках
- •Метод дельфи
- •Метод декомпозиции работ
- •Средства оценки трудоемкости
- •Планирование итерационного процесса создания по
- •Глава 7 особенности современных проектов
- •Категории «безнадежных» проектов
- •Причины, порождающие «безнадежные» проекты
- •Причины разногласий между участниками проекта
- •Переговоры в «безнадежном» проекте
- •Человеческий фактор в «безнадежных» проектах
- •Процессы в «безнадежных» проектах
- •Динамика процессов
- •Контроль над продвижением проекта
- •Технология и инструментальные средства «безнадежных» проектов
- •Дополнительная литература
- •Краткий словарь терминов
- •Список основных сокращений
Пример спецификации требований к программному обеспечению
В данном подразделе рассматривается спецификация требований к системе регистрации для учебного заведения, бизнес-модель которого описана в подразд. 3.3.2.
Уточненная постановка задачи для системы
Перед руководителем информационной службы университета ставится задача разработки автоматизированной системы регистрации студентов на дополнительные платные курсы. Система должна позволять студентам регистрироваться на курсы и просматривать свои табели успеваемости с персональных компьютеров, подключенных к локальной сети университета. Профессора должны иметь доступ к системе, чтобы указать курсы, которые они будут читать, и проставить оценки за курсы.
Из-за недостатка средств университет не в состоянии заменить всю существующую систему. Остается функционировать в прежнем виде база данных, содержащая всю информацию о курсах (каталог курсов). Эта база данных поддерживается реляционной СУБД. Новая система будет работать с существующей БД в режиме доступа, без обновления.
В начале каждого семестра студенты могут запросить каталог курсов, содержащий список курсов, предлагаемых в данном семестре. Информация о каждом курсе должна включать имя профессора, наименование кафедры и требования к предварительному уровню подготовки (прослушанным курсам).
11овая система должна позволять студентам выбирать 4 курса и предстоящем семестре. В дополнение к этому каждый студент может указать 2 альтернативных курса на тот случай, если какой-либо из выбранных им курсов окажется уже заполненным или отмененным. На каждый курс может записаться не более 10 и не менее 3 студентов (если менее 3, то курс будет отменен). В каждом семестре существует период времени, когда студенты могут изменить свои планы (добавить или отказаться от выбранных курсов). После того, как процесс регистрации некоторого студента завершен, система регистрации направляет информацию в расчетную систему, чтобы студент мог внести плату за семестр. Если курс окажется заполненным в процессе регистрации, студент должен быть извещен об этом до окончательного формирования его личного учебного плана.
В конце семестра студенты должны иметь доступ к системе для просмотра своих электронных табелей успеваемости. Поскольку эта информация конфиденциальная, система должна Обеспечивать, ее защиту от несанкционированного доступа.
Глоссарий проекта
Термин |
Значение |
Курс |
Учебный курс, предлагаемый университетом |
Конкретный курс |
Конкретное чтение данного курса в конкретном семестре (один и тот же курс может вестись в нескольких параллельных сессиях). Включает точные дни недели и время. |
Каталог курсов |
Полный каталог всех курсов, предлагаемых университетом |
Расчетная система |
Система обработки информации об оплате за курсы. |
Оценка |
Оценка, полученная студентом за конкретный курс |
Профессор |
Преподаватель университета. |
Табель успеваемости |
Все оценки за все курсы, полученные студентом в данном семестре. |
Список курса |
Список всех студентов, записавшихся на конкретный курс. |
Студент |
Личность, проходящая обучение в университете. |
Учебный график |
Курсы, выбранные студентом в текущем семестре. |
Описание дополнительных спецификаций
Функциональные возможности:
Система должна обеспечивать многопользовательский режим работы.
Если конкретный курс оказывается заполненным в то время, когда студент формирует свой учебный график, включающий данный курс, то система должна известить его об этом.
Удобство использования:
Пользовательский интерфейс должен быть Windows-совместимым.
Надежность.
Система должна быть в работоспособном состоянии 24 часа в день 7 дней в неделю, время простоя — не более 10%.
Производительность.
Система должна поддерживать до 2000 одновременно работающих с центральной базой данных пользователей и до 500 пользователей, одновременно работающих с локальными серверами.
Безопасность.
Система не должна позволять студентам изменять любые учебные графики, кроме своих собственных, а также не должна позволять профессорам модифицировать конкретные курсы, выбранные другими профессорами.
Только профессора имеют право ставить студентам оценки.
Только регистратор может изменять любую информацию о студентах.
Проектные ограничения.
Система должна быть интегрирована с существующей сис- темой каталога курсов, функционирующей на основе реля- ционной СУБД.
Создание начальной версии модели вариантов использования
Действующие лица:
Регистратор — формирует учебный план и каталог курсов, записывает студентов на курсы, ведет все данные о курсах, профессорах, успеваемости и студентах.
Расчетная система — получает от данной системы информацию по оплате за курсы.
Каталог курсов — база данных, содержащая информацию о курсах.
Варианты использования.
Исходя из потребностей действующих лиц, выделяются следующие варианты использования:
Войти в систему;
Зарегистрировать студента на курсы;
Вывести табель успеваемости;
Назначить курсы для преподавания;
Проставить оценки;
Вести информацию о профессорах;
Вести информацию о студентах;
Закрыть регистрацию.
Начальная версия диаграммы вариантов использования показана на рис. 3.19.
Рис. 3.19. Начальная версия диаграммы вариантов использования
Модификация модели вариантов использования
Согласно постановке задачи в состав пользователей системы следует ввести студентов и профессоров. При этом в описание действующих лиц и вариантов использования вносятся изменения. Модифицированная версия диаграммы вариантов использования показана на рис. 3.20.
Рис. 3.20. Модифицированная диаграмма вариантов использования для системы регистрации
Поскольку вход в систему полностью одинаков для регистратора, студента и профессора, их поведение можно обобщить и ввести новое действующее «Пользователь» (супертип) с общим вариантом использования «Войти в систему», подтипами которого являются Регистратор, Студент и Профессор.
Действующие лица:
Студент — записывается на курсы и просматривает табель успеваемости.
Профессор - выбирает курсы для преподавания и ставит оценки.
Регистратор — формирует учебный план и каталог курсов, ведет все данные о курсах, профессорах и студентах.
Расчетная система — получает отданной системы информацию об оплате за курсы.
Каталог курсов — база данных, содержащая информацию о курсах.
Варианты использования:
Войти в систему;
Зарегистрироваться на курсы;
Просмотреть табель успеваемости; ,
Выбрать курсы для преподавания;
Проставить оценки;
Вести информацию о профессорах;
Вести информацию о студентах;
Закрыть регистрацию.
Примеры спецификаций вариантов использования
Вариант использования «Войти в систему».
Краткое описание.
Данный вариант использования описывает вход пользователя в систему регистрации курсов.
Основной поток событий.
Данный вариант использования начинает выполняться, когда пользователь хочет войти в систему регистрации курсов.
Система запрашивает имя пользователя и пароль.
Пользователь вводит имя и пароль.
Система подтверждает имя и пароль, после чего открывается доступ в систему.
Альтернативные потоки.
Неправильное имя/пароль.
Если во время выполнения основного потока обнаружится, что пользователь ввел неправильное имя и/или пароль, система выводит сообщение об ошибке. Пользователь может вернуться к началу основного потока или отказаться от входа в систему, при этом выполнение варианта использования завершается.
Предусловия.
Отсутствуют.
Постусловия.
Если вариант использования выполнен успешно, пользователь входит в систему. В противном случае состояние системы не изменяется.
Вариант использования «Зарегистрироваться на курсы»:
Краткое описание.
Данный вариант использования позволяет студенту зарегистрироваться на предлагаемые курсы в текущем семестре. Студент может изменить свой выбор (обновить или удалить курсы), если изменение выполняется в установленное время в начале семестра. Система каталога курсов предоставляет список всех конкретных курсов текущего семестра.
Основной поток событий.
Данный вариант использования начинает выполняться, когда студент хочет зарегистрироваться на предлагаемые курсы или изменить свой график курсов.
Система запрашивает требуемое действие (создать график, обновить график, удалить график).
Когда студент указывает действие, выполняется один из подчиненных потоков (создать, обновить, удалить или принять график).
Создать график.
Система выполняет поиск в каталоге доступных предлагаемых курсов и выводит их список.
Студент выбирает из списка 4 основных курса и 2 альтернативных курса.
После выбора система создает график студента.
Выполняется подчиненный поток «Принять график».
Обновить график.
Система выводит текущий график студента.
Система выполняет поиск в каталоге доступных предлагаемых курсов и выводит их список.
Студент может обновить свой выбор курсов, удаляя или добавляя предлагаемые курсы.
После выбора система обновляет график.
Выполняется подчиненный поток «Принять график».
Удалить график.
Система выводит текущий график студента.
Система запрашивает у студента подтверждения удаления графика.
Студент подтверждает удаление.
Система удаляет график. Если график включает предлагаемые курсы, на которые записался студент, он должен быть удален из списков этих курсов.
Принять график.
Для каждого выбранного, но еще не «зафиксированного» предлагаемого курса в графике система проверяет выполнение студентом предварительных требований (прохождение определенных курсов), факт открытия предлагаемого курса и отсутствие конфликтов графика. Затем система добавляет студента в список выбранного предлагаемого курса. Курс фиксируется в графике и график сохраняется в системе.
Альтернативные потоки.
Сохранить график.
В любой момент студент может вместо принятия графика сохранить его. В этом случае шаг «Принять график» заменяется на следующий:
«Незафиксированные» предлагаемые курсы помечаются в графике как «выбранные».
График сохраняется в системе.
Не выполнены предварительные требования, курс заполнен или имеют место конфликты графика.
Если во время выполнения подчиненного потока «Принять график» система обнаружит, что студент не выполнил необходимые предварительные требования или выбранный им предлагаемый курс заполнен, или имеют место конфликты графика, то выдается сообщение об ошибке. Студент может либо выбрать другой предлагаемый курс и продолжить выполнение варианта использования, либо сохранить график, либо отменить операцию, после чего основной поток начнется с начала.
График не найден.
Если во время выполнения подчиненных потоков «Обновить график» или «Удалить график» система не может найти график студента, то выдается сообщение об ошибке. После того, как студент подтвердит это сообщение, основной поток начнется с начала.
Система каталога курсов недоступна.
Если окажется, что невозможно установить связь с системой каталога курсов, то будет выдано сообщение об ошибке. После того, как студент подтвердит это сообщение, вариант использования завершится.
Регистрация на курсы закончена.
Если в самом начале выполнения варианта использования окажется, что регистрация на текущий семестр закончена, будет выдано сообщение, и вариант использования завершится.
Удаление отменено.
Если во время выполнения подчиненного потока «Удалить график» студент решит не удалять его, удаление отменяется, и основной поток начнется с начала.
Предусловия.
Перед началом выполнения данного варианта использования студент должен войти в систему.
Постусловия.
Если вариант использования завершится успешно, график студента будет создан, обновлен или удален. В противном случае состояние системы не изменится.
Вариант использования «Закрыть регистрацию».
Краткое описание.
Данный вариант использования позволяет регистратору закрывать процесс регистрации. Предлагаемые курсы, на которые не записалось достаточного количества студентов (менее трех), отменяются. В расчетную систему передается информация о каждом студенте по каждому предлагаемому курсу, чтобы студенты могли внести оплату за курсы.
Основной поток событий.
Данный вариант использования начинает выполняться, когда регистратор запрашивает прекращение регистрации.
Система проверяет состояние процесса регистрации. Если регистрация еще выполняется, выдается сообщение и вариант использования завершается.
Для каждого предлагаемого курса система проверяет, ведет ли его какой-либо профессор и записалось ли на него не менее трех студентов. Если эти условия выполняются, система фиксирует предлагаемый курс в каждом графике, который включает данный курс.
Для каждого студенческого графика проверяется наличие в нем максимального количества основных курсов; если их недостаточно, система пытается дополнить альтернативными курсами из списка данного графика. Выбирается первый доступный альтернативный курс. Если таких курсов нет, то никакое дополнение не происходит.
Система закрывает все предлагаемые курсы. Если в каком-либо предлагаемом курсе оказывается менее трех студентов (с учетом добавлений, сделанных в п.З), система отменяет его и исключает из каждого содержащего его графика.
Система рассчитывает плату за обучение для каждого студента в текущем семестре и направляет информацию в расчетную систему. Расчетная система посылает студентам счета для оплаты с копией их окончательных графиков.
Альтернативные потоки.
Предлагаемый курс никто не ведет.
Если во время выполнения основного потока обнаруживается, что некоторый курс не ведется никаким профессором, то этот курс отменяется. Система исключает данный курс из каждого содержащего его графика.
Расчетная система недоступна.
Если невозможно установить связь с расчетной системой, через некоторое установленное время система вновь попытается связаться с ней. Попытки будут повторяться до тех пор, пока связь не установится.
Предусловия. ,
Перед началом выполнения данного варианта использования регистратор должен войти в систему.
Постусловия.
Если вариант использования завершится успешно, регистрация закрывается. В противном случае состояние системы не изменится.
! Следует запомнить.
Моделирование бизнес-процессов является важной составной частью проектов по созданию крупномасштабных систем ПО. Отсутствие таких моделей является одной из главных причин неудач многих проектов.
Бизнес-процесс определяется как логически завершенный набор взаимосвязанных и взаимодействующих видов деятельности, поддерживающий деятельность организации и реализующий ее политику, направленную на достижение поставленных целей.
Бизнес-модель — это формализованное описание процессов, связанных с ресурсами и отражающих существующую или предполагаемую деятельность предприятия. Построение бизнес-моделей заключается в применении различных методов и средств для визуального моделирования бизнес-процессов.
Для выявления требований используются (в различных сочетаниях) следующие методы:
собеседование (интервьюирование);
анкетирование;
моделирование и анализ бизнес-процессов;
сессии по выявлению требований (мозговой штурм);
создание и демонстрация пользователям работающих прототипов приложений (для выявления замечаний и дополнительных требований).
Основные понятия
Бизнес-процесс, бизнес-модель, бизнес-правила, действующее лицо бизнес-процессов, вариант использования с точки зрения бизнес-процессов, бизнес-объект.
? Вопросы для самоконтроля
Что такое бизнес-процесс и бизнес-модель?
Что дает построение бизнес-моделей и какие проблемы с ним связаны?
Охарактеризуйте достоинства и область применения методики моделирования Rational Unified Process.
Какие проблемы могут возникнуть при спецификации требований в случае отсутствия бизнес-моделей?
ГЛАВА 4.
АНАЛИЗ И ПРОЕКТИРОВАНИЕ
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Прочитав эту главу, вы узнаете:
Что представляет собой анализ и проектирование ПО.
В чем заключается структурный подход к анализу и проектированию ПО.
В чем заключается объектно-ориентированный подход к анализу и проектированию ПО.
4.1.
СТРУКТУРНОЕ ПРОЕКТИРОВАНИЕ ПО
В данном подразделе рассматривается вторая часть методики Йордона (см. подразд. 3.2.2), связанная с переходом от бизнес-модели к модели системы. Пример применения данной методики приведен в подразд. 4.2.
Согласно данной методике в процессе проектирования выполняется детальное описание функционирования системы, дальнейший анализ используемых данных и построение реляционной модели для последующего проектирования базы данных. Определяется также структура пользовательского интерфейса. Результатами проектирования являются:
модель системных процессов;
архитектура системы;
модели данных приложений;
модель пользовательского интерфейса.
Функциональные модели, используемые в процессе проектирования, предназначены для описания функциональной структуры проектируемой системы. Диаграммы потоков данных (DFD) используются для описания структуры проектируемой системы, при этом они могут уточняться, расширяться и дополняться новыми конструкциями. Аналогично, ERM преобразуется в схему базы данных. Данные модели могут дополняться диаграммами, отражающими системную архитектуру ПО, структурные схемы программ (структурные карты), иерархию экранных форм и меню и др. Состав диаграмм и степень их детализации определяются необходимой полнотой описания системы для непосредственного перехода к ее последующей реализации (программированию).
Например, для DFD переход от модели бизнес-процессов к модели системных процессов может происходить следующим образом:
внешние сущности на контекстной диаграмме заменяются или дополняются техническими устройствами (например, рабочими станциями, принтерами и т.д.);
для каждого потока данных определяется, посредством каких технических устройств информация передается или производится;
процессы на диаграмме нулевого уровня заменяются соответствующими процессорами — обрабатывающими устройствами (процессорами могут быть как технические устройства — настольные компьютеры конечных пользователей, рабочие станции, серверы баз данных, так и программные средства);
определяется и изображается на диаграмме тип связи между процессорами (например, локальная сеть);
определяются задачи для каждого процессора (приложения, необходимые для работы системы), для них строятся соответствующие диаграммы. Определяется тип связи между задачами;
устанавливаются ссылки между задачами и процессами диаграмм потоков данных следующих уровней.
Иерархия экранных форм Моделируется с помощью диаграмм последовательностей экранных форм. Совокупность таких диаграмм представляет собой абстрактную модель пользовательского интерфейса системы, отражающую последовательность появления экранных форм в приложении. Построение диаграмм последовательностей экранных форм выполняется следующим образом:
на DFD выбираются интерактивные процессы нижнего уровня. Интерактивные процессы нуждаются в пользовательском интерфейсе, поэтому можно определить экранную форму для каждого такого процесса;
построение диаграммы последовательностей форм начинается с изображения формы в виде прямоугольника для каждого интерактивного процесса на нижнем уровне диаграммы;
определяется структура меню. Для этого интерактивные процессы группируются в меню (либо так же, как в модели процессов, либо другим способом — по функциональным признакам или в зависимости от принадлежности к определенным объектам);
формы с меню изображаются над формами, соответствующими интерактивным процессам, и соединяются с ними переходами в виде стрелок, направленных от меню к формам.
определяется верхняя форма (главная форма приложения), связывающая все формы с меню.
Техника структурных карт (схем) используется на стадии проектирования для описания структурных схем программ. При этом наиболее часто применяются две техники: структурные карты Константайна, предназначенные для описания отношений между модулями, и структурные карты Джексона, предназначенные для описания внутренней структуры модулей, являющихся базовыми строительными блоками программной системы. В настоящее время структурные карты применяются сравнительно редко.
В процессе проектирования базы данных концептуальная модель данных преобразуется в схему реляционной базы данных, основными элементами которой являются таблицы и столбцы. Для описания схемы базы данных может использоваться отдельная графическая нотация.
Для формирования схемы базы данных из ERM применяется ограниченный набор правил преобразования сущностей и связей между ними.
Правила преобразования сущностей:
Правило 1. Каждая простая сущность, не являющаяся подтипом и не имеющая подтипов, превращается в таблицу. Имя сущности становится именем таблицы.
Правило 2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, — не могут.
Правило 3. Уникальный идентификатор сущности превращается в первичный ключ таблицы. Если имеется несколько альтернативных уникальных идентификаторов, выбирается наиболее используемый. Если уникальный идентификатор является относительным, то в качестве первичного ключа используется копия уникального идентификатора сущности, находящейся на дальнем конце связи, в которой данная сущность играет роль зависимой.
Правила преобразования связей:
Правило 1. Если тип бинарной связи — один-к-одному и класс принадлежности обеих сущностей является обязательным, то из двух связанных сущностей формируется одна таблица. Первичным ключом этой таблицы может быть идентификатор любой из двух сущностей.
Правило 2. Если тип бинарной связи — один-к-одному и класс принадлежности одной сущности является обязательным, а другой — необязательным, то формируются две таблицы (под каждую сущность), при этом идентификатор каждой сущности должен служить первичным ключом соответствующей таблицы. Кроме того, идентификатор сущности, для которой класс принадлежности является необязательным, добавляется в качестве атрибута в таблицу, выделенную для сущности с обязательным классом принадлежности.
Правило 3. Если тип бинарной связи - один-к-одному и класс принадлежности ни одной сущности не является обязательным, то формируются три таблицы: по одной для каждой сущности (при этом идентификатор каждой сущности должен служить первичным ключом соответствующей таблицы) и одна для связи. Таблица связи включает в качестве атрибутов по одному идентификатору от каждой сущности.
Правило 4. Если тип бинарной связи — один-ко-многим и класс принадлежности сущности с мощностью «n» является обязательным, то формируются две таблицы (под каждую сущность), при этом идентификатор каждой сущности должен служить первичным ключом соответствующей таблицы. Кроме того, идентификатор сущности с мощностью «1» добавляется в качестве атрибута в таблицу, выделенную для сущности с мощностью «n».
Правило 5. Если тип бинарной связи — один-ко-многим и класс принадлежности сущности с мощностью «n» является необязательным, см. правило 3.
Правило 6. Если тип бинарной связи — многие-ко-многим, см. правило 3.
Правило 7. Для представления N-арной связи требуется N+1 таблица. Например, в случае тернарной связи формируются четыре таблицы, по одной для каждой сущности и одна для связи. Таблица связи будет иметь среди своих атрибутов ключи от каждой сущности.
Правило 8. Для связи «супертип-подтип» возможны два способа преобразования:
а) все подтипы в одной таблице;
б) для каждого подтипа — отдельная таблица.
При применении способа (а) для супертипа создается таблица, а для подтипов могут создаваться представления (view). В таблицу добавляется по крайней мере один столбец, содержащий код типа; он становится частью первичного ключа.
При использовании способа (б) для каждого подтипа супертип воссоздается с помощью операции объединения (UNION) — из всех таблиц подтипов выбираются общие столбцы - столбцы супертипа.
Преимущества способа (а): все данные хранятся вместе, обеспечивается легкий доступ к супертипу и подтипам, требуется меньше таблиц.
Недостатки способа (а): усложняется логика работы с разными наборами столбцов и ограничениями, возможно снижение производительности (в связи с блокировками общей таблицы), столбцы подтипов должны допускать неопределенные значения.
Преимущества способа (б): наглядное соответствие схемы БД и ERM, приложения работают только с нужными таблицами.
Недостатки способа (б): формируется слишком много таблиц, возможно снижение производительности при выполнении операции объединения, невозможны модификации супертипа.
4.2.
