Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЭВМ -лаб.работы.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
4.38 Mб
Скачать

1.3.3. Разработка логической модели бд

На этом этапе описывается структура таблиц в терминах СУБД, то есть назначаются типы, размеры, названия и прочие свойства полей в таблицах.

В Access, как и в других СУБД, есть некоторые ограничения для имен полей. Рекомендации по назначению имен полей в Access:

  • имена полей желательно назначать осмысленными;

  • имя не должно начинаться с цифры или пробела;

  • в именах не допускаются символы ! " % : / * - + = \ # ? > < ' { } [ ] ( ) ^ & |;

  • имена не должны совпадать с именами встроенных функций (SIN, COS, DATE и др.);

  • в пределах одной таблицы не может быть одинаковых имен, при этом заглавные и строчные буквы не различаются;

  • желательно в именах полей, набранных кириллицей, избегать пробелов. Это требование не является жестким, но лучше его придерживаться, т.к. иногда в Access возникают непредсказуемые ошибки, вызванные нарушением этого требования.

Из приведенных в таблицах названий в качестве имени поля годятся все, но некоторые названия полей сделаем короче и вместо пробела будем использовать символ подчеркивания(_).

В Access предусмотрены следующие типы данных для хранения информации:

• Текстовый – для хранения любых символов. (допустимая длина 1…255 символов).

• Числовой

Целые числа С плавающей запятой

Байт(0…255) Одинарной точности

Целое (-32768…32767) Двойной точности

Длинное целое (-2,1млрд.…2,1млрд.)

• Денежный – для хранения денежных величин. Отсутствует ошибка округления.

• Дата/время – для хранения даты и(или) времени.

• Логический – для хранения данных типа Да/Нет.

• Поле мемо – для хранения символьных (текстовых) данных, длина которых непредсказуема и может превышать 255 символов.

• Гиперссылка – для хранения не самой информации, а ее адреса. Адрес может быть как локальным, так и глобальным.

• Объект OLE (Вложение) – для хранения документов, созданных в других приложениях (документов MS Word, таблиц MS Excel, изображений, аудио – и видеозаписей и т.п.).

• Счетчик – автоматически заполняемое поле типа длинное целое. Гарантируется неповторяемость данных в этом поле. При этом вручную изменить данные этого поля невозможно. Обычно поле такого типа делают ключевым.

В дальнейшем в процессе ввода или изменения данных СУБД следит, чтобы вводимые данные соответствовали указанным типам. Если обнаруживается несоответствие, СУБД или отказывается принять эти данные и выводит поясняющее сообщение, или автоматически исправляет данные, чтобы можно было их ввести в базу.

Размеры текстовых полей обычно указывают по наибольшей длине имеющихся данных с небольшим запасом, если могут появляться и другие данные. Исходя из этого, назначим размеры полей (см. табл.3) Фамилия, Имя, Отчество, Пол, Семейное положение, Адрес. Для поля Телефон тоже назначим текстовый тип данных, так как помимо цифр в этом поле могут использоваться и другие символы. Кроме того, даже если номера телефонов записываются только цифрами, с этими данными не придется работать как с числами, то есть выполнять их сложение, вычитание, сравнение, вычисление среднего и т.п.

В поле Дети будет записываться количество несовершеннолетних детей у сотрудника. Вычисления с этими данными возможны (например, подсчет количества детей у всех сотрудников, определение многодетных сотрудников и т.п.), поэтому назначаем числовой тип, размер байт (позволяет записывать целые числа от 0 до 255).

Для полей Дата рождения и Дата приема выберем тип данных Дата/Время с указанием только даты.

Код должности в таблице СОТРУДНИКИ должен соответствовать данным из таблицы ДОЛЖНОСТИ, поэтому назначаем тип данных длинное целое.

В таблице ДОЛЖНОСТИ для типа поля Код должности выберем счетчик, так как готовых кодов у нас нет, а при выборе счетчика они будут назначены автоматически.

Поле Должность делаем текстовым размером 15 символов, исходя из данных Приложения 1.

В таблице РАБОЧЕЕ ВРЕМЯ для поля Табельный номер указываем такой же тип и размер, как и в таблице СОТРУДНИКИ.

Для полей Приход и Уход выбираем тип Дата/Время с хранением даты и времени одновременно.

Структура таблиц с указанием имен полей и типов данных приведена в табл. 1.3-1.5. Ключевые поля выделены жирным курсивом.

Таблица 1.3.

Структура таблицы СОТРУДНИКИ

Имя поля

Тип данных

Размер

Таб_номер

Текстовый

5

Фамилия

Текстовый

20

Имя

Текстовый

15

Отчество

Текстовый

20

Дата_рождения

Дата/Время

Пол

Текстовый

7

Сем_положен

Текстовый

10

Дети

Числовой

Байт

Адрес

Текстовый

50

Телефон

Текстовый

15

Дата_приема

Дата/Время

Код_должн

Числовой

Длинное целое

Таблица 1.4.

Структура таблицы ДОЛЖНОСТИ

Имя поля

Тип данных

Размер

Код_должн

Счетчик

Длинное целое

Должность

Текстовый

15

Таблица 1.5.

Структура таблицы РАБОЧЕЕ ВРЕМЯ

Имя поля

Тип данных

Размер

Таб_номер

Текстовый

5

Приход

Дата/Время

Уход

Дата/Время

Для удобства заполнения связанных таблиц в MS Access можно использовать подстановки. При этом данные в поле, для которого предусмотрена подстановка, будут вводиться из готового списка или из другой таблицы. Для выбора нужных данных из таблицы в списке обычно показывают и другие поля таблицы. Например, для заполнения таблицы РАБОЧЕЕ ВРЕМЯ нужно вводить табельный номер сотрудника. Для этого можно настроить подстановку табельного номера из таблицы СОТРУДНИКИ. Для выбора нужной записи кроме табельного номера можно показывать ФИО и должность. Записываться в таблицу РАБОЧЕЕ ВРЕМЯ будет табельный номер, а показываться на экране вместо него может ФИО.

Аналогично при вводе кода должности в таблицу СОТРУДНИКИ будем использовать подстановку из таблицы ДОЛЖНОСТИ.

Для того, чтобы не нарушалась целостность данных и можно было пользоваться подстановками, заполнять таблицы данными следует в определенном порядке: сначала заполняются различные справочники и базовые таблицы, которые в связях «один ко многим» находятся на стороне «один». Лишь после этого заполняются подчиненные таблицы.

В нашем случае сначала создадим и заполним таблицу ДОЛЖНОСТИ, поскольку данные в нее ниоткуда не подставляются. Затем создадим и заполним таблицу СОТРУДНИКИ, т.к. данные в нее подставляются только из таблицы ДОЛЖНОСТИ. В последнюю очередь создадим и заполним таблицу РАБОЧЕЕ ВРЕМЯ, предусмотрев подстановку табельного номера из таблицы СОТРУДНИКИ.

На этом разработку логической модели можно считать законченной.