Примеры описания предметной области
Пример 1. Пусть требуется разработать информационную систему для компании, которая занимается издательской деятельностью. База данных создаётся для информационного обслуживания редакторов, менеджеров и других сотрудников компании и должна содержать данные о сотрудниках компании, книгах, авторах, финансовом состоянии компании и предоставлять возможность получать разнообразные отчёты.
В соответствии с предметной областью система строится с учётом следующих особенностей: каждая книга издаётся в рамках контракта; книга может быть написана несколькими авторами; контракт подписывается одним менеджером и всеми авторами книги; каждый автор может написать несколько книг (по разным контрактам); порядок, в котором авторы указаны на обложке, влияет на размер гонорара; если сотрудник является редактором, то он может работать одновременно над несколькими книгами; у каждой книги может быть несколько редакторов, один из них – ответственный редактор; каждый заказ оформляется на одного заказчика; в заказе на покупку может быть перечислено несколько книг.
Каждая издающаяся книга, характеризуется следующими параметрами: авторы, название, тираж, дата выхода, цена одного экземпляра, общие затраты на издание, авторский гонорар.
Об авторах книг необходимо иметь следующую информацию: фамилия, имя, отчество, РНН, паспортные данные, домашний адрес, телефоны. Для авторов необходимо хранить сведения о написанных книгах.
О каждом сотруднике издательства хранятся следующие сведения: фамилия, имя, отчество, табельный номер, пол, дата рождения, паспортные данные, РНН, должность, оклад, домашний адрес и телефоны. Для редакторов необходимо хранить сведения о редактируемых книгах; для менеджеров – сведения о подписанных контрактах.
Для отражения финансового положения компании в системе нужно учитывать заказы на книги. Для заказа необходимо хранить номер заказа, заказчика, адрес заказчика, дату поступления заказа, дату его выполнения, список заказанных книг с указанием количества экземпляров.
Система создаётся для обслуживания следующих групп пользователей: администрация (дирекция); менеджеры; редакторы; сотрудники компании, обслуживающие заказы.
Пользователи должны иметь возможность информационной поддержки базы данных: ведение базы данных (запись, чтение, модификация, удаление в архив); обеспечение логической непротиворечивости базы данных; обеспечение защиты данных от несанкционированного или случайного доступа (определение прав доступа).
Также пользователи базы данных должны иметь возможность: получить список всех текущих проектов (книг, находящихся в печати и в продаже); получить список редакторов, работающих над книгами; получить полную информацию о книге (проекте); получить сведения о конкретном авторе (с перечнем всех книг); получить информацию о продажах (по одному или по всем проектам); определить общую прибыль от продаж по текущим проектам; определить размер гонорара автора по конкретному проекту.
Пример 2. Пусть требуется разработать информационную систему для автоматизации учета получения и выдачи книг в библиотеке. Система должна предусматривать режимы ведения системного каталога, отражающего перечень областей знаний, по которым имеются книги в библиотеке. Внутри библиотеки области знаний в систематическом каталоге могут иметь уникальный внутренний номер и полное наименование. Каждая книга может содержать сведения из нескольких областей знаний. Каждая книга в библиотеке может присутствовать в нескольких экземплярах.
Каждая книга, хранящаяся в библиотеке, характеризуется следующими параметрами: уникальный шифр; название; фамилии авторов (могут отсутствовать); место издания (город); издательство; год издания; количество страниц; стоимость книги; количество экземпляров книги в библиотеке. Книги могут иметь одинаковые названия, но они различаются по своему уникальному шифру (ISBN).
В библиотеке ведется картотека читателей. На каждого читателя в картотеку заносятся следующие сведения: фамилия, имя, отчество; домашний адрес; телефон (будем считать, что у нас два телефона — рабочий и домашний); дата рождения. Каждому читателю присваивается уникальный номер читательского билета. Каждый читатель может одновременно держать на руках не более 5 книг. Читатель не должен одновременно держать более одного экземпляра книги одного названия.
Каждая книга в библиотеке может присутствовать в нескольких экземплярах. Каждый экземпляр имеет следующие характеристики: уникальный инвентарный номер; шифр книги, который совпадает с уникальным шифром из описания книг; место размещения в библиотеке.
В случае выдачи экземпляра книги читателю в библиотеке хранится специальный вкладыш, в котором должны быть записаны следующие сведения: номер билета читателя, который взял книгу; дата выдачи книги; дата возврата.
Предусматриваются следующие ограничения на информацию в системе: Книга может не иметь ни одного автора; в библиотеке должны быть записаны читатели не моложе 17 лет; в библиотеке присутствуют книги, изданные начиная с 1960 по текущий год; каждый читатель может держать на руках не более 5 книг; каждый читатель при регистрации в библиотеке должен дать телефон для связи; каждая область знаний может содержать ссылки на множество книг, и каждая книга может относиться к различным областям знаний.
С данной информационной системой должны работать следующие группы пользователей: библиотекари; читатели; администрация библиотеки.
При работе с системой библиотекарь должен иметь возможность решать следующие задачи: принимать новые книги и регистрировать их в библиотеке; проводить каталогизацию книг; проводить списание старых и не пользующихся спросом книг; вести учет выданных книг читателям; проводить списание утерянных читателем книг; проводить закрытие абонемента читателя,
Читатель должен иметь возможность решать следующие задачи: просматривать системный каталог; по выбранной области знаний получить полный перечень книг, находящихся библиотеке; для выбранного автора получить список книг, которые числятся в библиотеке.
Администрация библиотеки должна иметь возможность получать сведения о должниках—читателях библиотеки; сведения о книгах, которые не являются популярными, т. е. ни один экземпляр которых не находится на руках у читателей; сведения о стоимости конкретной книги, для того чтобы установить возможность возмещения стоимости утерянной книги или возможность замены ее другой книгой; сведения о наиболее популярных книгах, то есть таких, все экземпляры которых находятся на руках у читателей.
Эти примеры показывают, что перед началом разработки необходимо иметь точное представление о том, что же должно выполняться в нашей системе, какие пользователи в ней будут работать, какие задачи будет решать каждый пользователь. К сожалению, часто по отношению к базам данных считается, что все можно определить потом, когда проект системы уже создан. Отсутствие четких целей создания базы данных может свести на нет все усилия разработчиков, и проект получится плохим, неудобным, не соответствующим ни реально моделируемому объекту, ни задачам, которые должны решаться с использованием данной базы данных.