Постановка задачи
Пример для иллюстрации информационной модели в рамках сжатой статьи должен быть достаточно компактным и относиться к общеизвестной области. Рассмотрим модель хранения и упорядочивания книг в библиотеке, с помощью которой можно было бы легко находить издания, анализировать их состав и состояние.
Предположим, что книги, выдаваемые читателям, хранятся на пронумерованных стеллажах и полках в нескольких комнатах. Рассматриваемая модель должна давать возможности:
- быстро находить единицу хранения, находящуюся в библиотеке;
- быстро находить единицу хранения, выданную читателю;
- анализировать состав библиотечного фонда.
Для упрощения задачи абстрагируемся от таких особенностей, как хранение книг на абонементе и в читальном зале, межбиблиотечный обмен и т.п.
Исследование структуры предметной области
Информационная модель должна соответствовать исследуемым объектам, давать о них достаточное для практического анализа представление, поэтому при ее построении важно выбрать наиболее важные предметы, явления, их характеристики и взаимосвязи. Обычно такой отбор производится экспертным путем, например, в ходе интервью со специалистами в исследуемой предметной области. В данном примере очевидно, что в качестве основных отображаемых в модели компонентов должны быть выбраны:
- единицы хранения;
- пользователи.
В модели участвуют и другие объекты - стеллажи, полки, выходные данные, адреса и телефонные номера читателей (пользователей) и т.п., но от их детального изучения можно абстрагироваться. Например, нас не интересует изготовлены ли стеллажи из дерева или из металла, ведется ли нумерация полок сверху вниз или снизу вверх и т.п. Эти сведения можно не закладывать в модель, поскольку библиотекарь обладает достаточным опытом, чтобы без труда их самостоятельно идентифицировать (на стеллажи и полки принято наносить соответствующие визуально распознаваемые таблички, их достаточно пронумеровать).
Рисунок 1. Стеллажи в библиотеке. Автор24 — интернет-биржа студенческих работ
Можно описать исследуемую область в виде 3-х табличной модели:
- издания;
- читатели;
- выдачи.
В третьей из перечисленных таблиц будет храниться информация о том, какому читателю какие издания выданы.
Реализация модели компьютерными средствами
Информационную модель библиотеки лучше всего реализовать с помощью компьютерной реляционной базы данных.
До появления компьютеров в библиотеках для учета читателей использовались т.н. формуляры, а для учета книг - каталоги, причем в рамках одной библиотеки могло сосуществовать несколько каталогов: алфавитный, тематический и т.п. Они представляют собой упорядоченные ящики с картонными карточками и до сих пор используются наряду с электронными средствами учета.
Библиотечный каталог. Автор24 — интернет-биржа студенческих работ" />
Рисунок 2. Библиотечный каталог. Автор24 — интернет-биржа студенческих работ
Спроектируем таблицу "Издания" со следующими колонками:
- автор;
- название;
- дата выпуска;
- комната хранения;
- стеллаж хранения;
- полка хранения;
- инвентарный номер.
Инвентарный номер однозначно характеризует любую единицу хранения. Например, можно себе представить, что в библиотеку поступило несколько экземпляров одной и той же книги и место их хранения совпадает (комната, стеллаж, полка), т.е. в описывающих их строках все поля идентичны и единственным способом отличить один экземпляр от другого является инвентарный номер. На самой книге его можно надписать вручную или пометить книгу с помощью наклейки с цифрами или даже штрих-кодом.
Современные офисные базы данных, такие, как Microsoft Access, позволяют формировать отчеты для печати на стандартных наклейках.
Поле "Инвентарный номер" должно быть уникальным и не пустым в рамках своей колонки. В качестве типа данных для него лучше всего выбрать целое число, поскольку поиск по числам производится в реляционных базах данных быстрее всего. Его следует назначить ключевым, т.е. однозначно характеризующим строки данной таблицы и используемым как внешний ключ в зависимых таблицах.
Таблица "Читатели" будет иметь следующие колонки:
- номер читательского билета;
- номер удостоверения личности;
- адрес;
- телефон;
- email.
Рисунок 3. Читательский билет. Автор24 — интернет-биржа студенческих работ
Следует подчеркнуть, что в качестве ключевого поля целесообразно выбрать номер читательского билета, а не удостоверения личности. Последний, казалось бы, также однозначно характеризует читателя библиотеки, но его использованию в качестве ключевого поля препятствуют следующие обстоятельства:
- удостоверения личности бывают разными (паспорт, заграничный паспорт, военный билет); каждый вид имеет уникальный номер со сложной структурой, что неудобно при учете; кроме того, существуют лица без гражданства, которым не запрещено быть читателями библиотеки;
- в качестве ключевого поля целесообразно выбирать целое число, поскольку компьютер обрабатывает таковые наиболее быстро, а значит поиск по базе данных будет наиболее эффективным; это следует иметь в виду, нумеруя читательские билеты; повлиять же на нумерацию, например, паспортов возможности нет.
Наконец, спроектируем третью таблицу - "Выдачи" со следующими полями:
- инвентарный номер издания;
- номер читательского билета абонента;
- дата выдачи издания;
- дата фактического возврата.
Первые два поля следует назначить вторичными ключами. Это значит, что в поле "Инвентарный номер издания" могут содержаться только значения из соответствующей колонки таблицы "Издания", а в поле "Номер читательского билета абонента" - из таблицы "Читатели". Современные СУБД самостоятельно следят за соблюдением подобных условий (целостностью данных).
Полям с датами следует назначить тип "дата/время", причем поле "Дата выдачи" должно быть обязательным для заполнения: без этого запись в таблице "Выдачи" не имеет смысла.
В таблице "Выдачи" можно было бы предусмотреть и поле "Дата планируемого возврата", но, поскольку срок, на который выдаются книги, известен, это значение можно вычислять динамически, прибавляя к дате выдачи, например, 30 дней.
В полученную информационную модель после формирования таблиц можно добавить дополнительные удобства: представления (views), триггеры, ограничения, функции, средства визуализации и т.п.