Анализ предметной области и инфологическое проектирование
В разделе «Функциональная модель предметной области» должны быть приведены результаты функционального моделирования предметной области учебной базы данных, выполненного в среде BPwin. Словесные описания особенностей функционирования предметной области должны сопровождаться изображениями контекстной диаграммы предметной области, диаграмм декомпозиции и иерархической схемы функций (Node Tree-диаграммы BPwin) (рис.4-6).
Рис. 4 Пример контекстной диаграммы предметной области "Библиотека"
Рис. 5 Пример диаграммы декомпозиции предметной области "Библиотека"
Рис. 6 Пример иерархической диаграммы функций предметной области "Библиотека"
Описание диаграмм декомпозиции рекомендуется сопроводить сводными таблицами (табл. 1 и табл. 2) описаний работ (функций) и стрелок (данных)
Таблица 1
Описание работ
Имя работы | Номер работы | Описание работы |
Работа библиотеки | А0 | Под работой библиотеки имеются в виду технологические аспекты ее функционирования |
Комплектование библиотеки и хранение новых книг | A1 | Комплектование библиотеки предполагает приобретение новых книг, их хранение и списание |
Справочно-библиографическое обслуживание | A2 | Справочно-библиографическое обслуживание предполагает занесение сведений о книгах в каталог и поиск книг в каталоге |
Абонементное обслуживание | A3 | Абонементное обслуживание в том числе: 1) запись на абонемент 2) поиск книг в каталоге 3) оформление заявки в хранилище 4) выдача книг 5) прием возвращенных книг |
Комплектование библиотеки | A11 | Комплектование библиотеки предполагает приобретение новых книг и списание пришедших в негодность. При комплектовании каждому экземпляру книги присваивается инвентарный номер |
Хранение книг | A12 | Экземпляры книг хранятся в хранилище и выдаются по заявкам абонентов во временное пользование |
Занесение в каталог | A21 | Вновь приобретенные книги регистрируются в каталоге |
Библиографический поиск | A22 | По запросу абонента осуществляется поиск информации о книге в каталоге |
Запись на абонемент | A31 | Посетители библиотеки могут быть записаны в качестве ее абонентов |
Поиск книг | A32 | Поиск сведений о книге выполняется по заявке абонента |
Выдача книг | A33 | Затребованные книги при наличии их в хранилище могут быть выданы |
Оформление заявки | A34 | При наличии свободного экземпляра книги в хранилище оформляется заявка на затребованную книгу |
Возврат книг | A35 | Выданные книги подлежат возврату и размещению их в хранилище |
Таблица 2
Описание стрелок
Имя стрелки | Описание стрелки |
Абоненты | Абоненты - это зарегистрированные клиенты библиотеки. После регистрации они приобретают права законных пользователей |
Бюджет | Бюджет регламентирует все виды работ в библиотеке |
Возвращенные книги | Возвращенные на абонемент книги размещаются в хранилище |
Выданные книги | Выданные книги - это один из вариантов книг на выходе и один из вариантов поступления книг |
Запрос | Перед оформлением заявки выполняется запрос на поиск информации о книге в каталоге |
Зарегистрированные книги | Статус зарегистрированной приобретает книга после ее занесения в каталог. После регистрации в каталоге зарегистрированная книга поступает на хранение |
Затребованные книги | При наличии свободного экземпляра по заявке затребованная книга поступает на абонемент |
Заявка | При наличии свободного экземпляра книги оформляется заявка на ее получение во временное пользование |
Книги на входе | Источники книг на входе библиотеки: 1) новые поступления 2) возвращенные книги |
Книги на выходе | Книги на выходе - это: 1) зарегистрированные, но востребованные книги 2) выданные книги 3) списанные книги |
Новые книги | Новые книги - это один из вариантов поступления книг в библиотеку |
Персонал | Сотрудники библиотеки |
Посетители | Библиотеку могут посещать клиенты, не являющиеся ее абонентами |
Правила пользования | Правила пользования распространяются только на справочно-библиографическое и абонементное обслуживание |
Списанные книги | Книги, пришедшие в негодность, подлежат списанию. Это один из вариантов книг на выходе |
Справка | Справка - это результат справочно-библиографического поиска по запросу абонента |
Учтенные книги | После поступления новой книге присваивается инвентарный номер и она приобретает статус учтенной книги. Учтенная книга поступает на хранение |
Хранимые книги | Книги, поступившие на хранение либо после присваивания им инвентарного номера, либо после их регистрации в каталоге |
В разделе «Информационная модель предметной области» должны быть приведены результаты разработки информационной модели предметной области в терминах модели сущность-связь, выполненной в среде ERwin (т.н. Logical Model) [10] (рис. 7).
В разделе «Спецификации сущностей» следует для каждой сущности указать:
· · имя;
· · описание
Результаты удобно свести в таблицу типа приведенной ниже (табл. 5). При построении таблицы следует воспользоваться возможностями ERwin для формирования отчетов (по команде Tasks/Generate Reports).
Рис. 7 Пример информационной модели предметной области "Библиотека"
Таблица 3
Спецификации сущностей
Имя сущности | Описание сущности |
Абонемент | История выдач и возврата книг. Содержит сведения о том, кому, кем, что и когда было выдано или возвращено |
Абонент | Содержит информацию об абонентах библиотеки |
Зарегистрированная книга | Содержит информацию о книге, зарегистрированной в каталоге |
Персонал | Содержит информацию о сотрудниках библиотеки |
Сотрудник | Сотрудник, являющийся абонентом библиотеки |
Студент | Студент, являющийся абонентом библиотеки |
Хранимая книга | Содержит информацию о наличии экземпляров свободных книг |
В разделе «Спецификации атрибутов» для каждого атрибута указать:
· · имя сущности;
· · имя атрибута;
· · описание;
· · первичный ключ;
· · внешний ключ;
· · имя домена (тип).
Результаты удобно свести в таблицу типа приведенной ниже (табл. 4). При построении таблицы следует воспользоваться возможностями ERwin для формирования отчетов (по команде Tasks/Generate Reports).
Таблица 4
Спецификации атрибутов сущностей
Имя сущности | Имя атрибута | Описание атрибута | Первичный ключ | Внешний ключ | Домен (тип) |
Абонемент | что выдано | Инвентарный номер книги на абонементе - компонент первичного ключа и ключ связи с сущностью "Хранимая книга". | Да | Да | String |
дата1 | Дата начала этапа истории книги, компонент первичного ключа | Да | Нет | Datetime | |
дата2 | Дата конца этапа истории книги | Нет | Нет | Datetime | |
кому выдано | Шифр абонента, которому выдана или кем возвращена книга - внешний ключ связи с сущностью "Абонент" | Нет | Да | String | |
кто выдал | Код сотрудника, выдавшего или принявшего книгу - внешний ключ связи с сущностью "Персонал" | Нет | Да | String | |
Абонент | шифр | Уникальный шифр абонента - ключ сущности | Да | Нет | String |
фио | Фамилия, имя, отчество абонента | Нет | Нет | String | |
телефон | Телефон абонента | Нет | Нет | String | |
тип | Категория абонента | Нет | Нет | String | |
Зарегистрированная книга | номер | Учетный номер зарегистрированной в каталоге книги - ключ сущности | Да | Нет | String |
автор | Автор | Нет | Нет | String | |
название | Название | Нет | Нет | String | |
год издания | Год издания | Нет | Нет | Number | |
Персонал | код | Учетный номер служащего - ключ сущности | Да | Нет | String |
фио | Фамилия, имя, отчество | Нет | Нет | String | |
должность | Должность | Нет | Нет | String | |
руководитель | Учетный номер служащего - руководитяля. Ключ рекурсивной связи сущности "Персонал" самой с собой | Нет | Да | String | |
Сотрудник | шифр | Уникальный шифр абонента - первичный ключ сущности "Сотрудник" и внешний ключ связи с сущностью "Абонент" | Да | Да | String |
должность | Должность сотрудника | Нет | Нет | String | |
звание | Ученое звание сотрудника | Нет | Нет | String | |
степень | Ученая степень сотрудника | Нет | Нет | String | |
Студент | шифр | Уникальный шифр абонента - первичный ключ сущности "Студент" и внешний ключ связи с сущностью "Абонент" | Да | Да | String |
специальность | Специальность по которой учится студент | Нет | Нет | String | |
Хранимая книга | инв_номер | Уникальная характеристека экземпляра книги - ключ сущности | Да | Нет | String |
какой книги экземпляр | Учетный номер зарегистрированной в каталоге книги - внешний ключ связи с сущностью "Зарегистрированная книга" | Нет | Да | String | |
наличие | Признак наличия экземпляра книги в книгохранилище (есть/нет) | Нет | Нет | Number |
return false">ссылка скрыта
В разделе «Спецификации связей» следует для каждой связи в иерархии агрегации указать:
· · имя;
· · имена связываемых сущностей;
· · описание;
· · тип (идентифицирующая/неидентифицирующая);
· · Null-значение внешнего ключа (разрешено/запрещено);
· · кардинальность (1:1 или 1:N или M:N);
Результаты удобно свести в таблицу типа приведенной ниже (табл. 5). При построении таблицы следует воспользоваться возможностями ERwin для формирования отчетов (по команде Tasks/Generate Reports).
Таблица 5
Спецификации связей в иерархии агрегации
Имя связи «отец-сын» | Имя связи «сын-отец» | Имя отцовской сущности | Имя сыновьей сущности | Описание связи | Тип связи | Null внешнего ключа | Кардиналь-ность связи |
Получил на | Абонент | Абонемент | Абонент получает или возвращает книгу на абонемент | Неидентифи-цирующая | Not Null | 1 : 0,1,N (один-ко-многим) | |
Представлена | Зарегистрированная книга | Хранимая книга | Зарегистрированная в каталоге книга представлена в книгохранилище. | Неидентифи-цирующая | Not Null | 1 : 0,1,N (один-ко-многим) | |
Руководит | Подчиня-ется | Персонал | Персонал | Один сотрудник руководит другим или подчиняется другому сотруднику | Неидентифи-цирующая | Null | 0,1 : 0,1,N (один-ко-многим) |
Выдал на | Персонал | Абонемент | Сотрудник библиотеки выдает или принимает книгу на абонементе | Неидентифи-цирующая | Not Null | 1 : 0,1,N (один-ко-многим) | |
Выдана на | Хранимая книга | Абонемент | Хранимая книга выдается или возвращается на абонемент | Идентифици-рующая | Not Null | 1 : 0,1,N (один-ко-многим) |
Для связей в иерархии обобщения указать:
· · тип связи (полная/неполная);
· · дискриминатор категорий-подтипов;
· · имя сущности-супертипа;
· · описание сущности-супертипа;
· · кардинальность (семантику) связи;
· · описание связи;
· · имя сущности-подтипа;
· · описание сущности-подтипа.
Результаты удобно свести в таблицу типа приведенной ниже (табл. 6). При построении таблицы следует воспользоваться возможностями ERwin для формирования отчетов (по команде Tasks/Generate Reports).
Таблица 6
Спецификации связей в иерархии обобщения
Тип связи | Дискрими-натор категорий | Сущность-супертип | Описание сущности-супертипа | Кардиналь-ность связи | Описание связи | Имя сущности-подтипа | Описание сущности-подтипа |
Неполная | тип | Абонент | Содержит информацию об абонентах библиотеки | Is a | Студент как абонент библиотеки. Связь неполная, могут быть и другие категории абонентов | Студент | Студент, являющийся абонентом библиотеки |
Неполная | тип | Абонент | Содержит информацию об абонентах библиотеки | Is a | Сотрудник как абонент библиотеки. Связь неполная, могут быть и другие категории абонентов | Сотрудник | Сотрудник, являющийся абонентом библиотеки |
В разделе «Ограничения ссылочной целостности» следует, с учетом семантических условий (бизнес-правил), действующих в предметной области, для каждой связи указать правила, которые управляют корректирующими запросами как со стороны отцовской сущности, так и со стороны сыновьей:
· · вставка в отцовской;
· · обновление в отцовской;
· · удаление в отцовской;
· · вставка в сыновьей;
· · обновление в сыновьей;
· · удаление в сыновьей.
Результаты удобно свести в таблицы типа приведенных ниже (табл. 7 и табл. 8). При построении таблиц следует воспользоваться возможностями ERwin для формирования отчетов (по команде Tasks/Generate Reports).
Таблица 7
Ограничения ссылочной целостности для бинарных связей
Имя связи «отец-сын» | Имя связи «сын-отец» | Тип связи | Null внешнего ключа | Ограничения ссылочной целостности | |||||
Вставка в отцовской | Обновление в отцовской | Удаление в отцовской | Вставка в сыновьей | Обновление в сыновьей | Удаление в сыновьей | ||||
Получил на | Неиденти-фицирую-щая | Not Null | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет | |
Пред-ставлена | Неиденти-фицирую-щая | Not Null | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет | |
Руководит | Подчи-няется | Неиденти-фицирую-щая | Null | None Не влияет | Set Null Установить Null | Set Null Установить Null | Set Null Установить Null | Set Null Установить Null | None Не влияет |
Выдал на | Неиденти-фицирую-щая | Not Null | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет | |
Выдана на | Идентифи-цирующая | Not Null | None Не влияет | Restrict Запретить | Restrict Запретить | Restrict Запретить | Restrict Запретить | None Не влияет |
Таблица 8
Ограничения ссылочной целостности для категориальных связей
Тип связи | Сущность-супертип | Имя сущности-подтипа | Ограничения ссылочной целостности | |||||
Вставка в отцовской | Обновление в отцовской | Удаление в отцовской | Вставка в сыновьей | Обновление в сыновьей | Удаление в сыновьей | |||
Неполная | Абонент | Студент | None Не влияет | Cascade Каскадировать | Cascade Каскадировать | Restrict Запретить | Restrict Запретить | None Не влияет |
Неполная | Абонент | Сотрудник | None Не влияет | Cascade Каскадировать | Cascade Каскадировать | Restrict Запретить | Restrict Запретить | None Не влияет |
В разделе «Запросы пользователей» должны быть сформулированы на русском языке содержательные запросы, которые могут представлять интерес для потенциальных пользователей учебной базы данных, например такие:
1. 1. Представить список абонентов данной категории.
2. 2. Представить все данные об абоненте, заданном его шифром.
3. 3. Представить список экземпляров книг, имеющихся в наличии в хранилище, по фамилии автора и названию.
4. 4. Представить список абонентов, имеющих на руках книги данного номинала (экземпляры одной и той же книги).
5. 5. Представить список книг, взятых и не возвращенных конкретным аygoogle || []).push({});