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

3.3 Определение атрибутов сущностей и первичных ключей

После того, как все сущности и отношение между ними были определены, можно начать подробно описывать каждую сущность.

Атрибуты – это характеристики объектов (сущностей). Основное назначение атрибута – это описание свойств сущностей, а также идентификация экземпляров сущностей.

Для каждого атрибута нужно определить следующие сведения:

  • имя атрибута и его описание;

  • тип данных и размерность значения;

  • значение, принимаемое для атрибута по умолчанию (если таковое имеется);

  • является ли атрибут обязательным (т.е. может ли он отсутствовать или иметь значение NULL);

  • является ли атрибут составным и, если это так, из каких простых атрибу­тов он состоит;

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

Возможный ключ – это один или несколько атрибутов, однозначно определяющих экземпляр сущности.

Первичный ключ это один из возможных ключей, остальные называются альтернативными.

Кроме первичных ключей сущности могут иметь внешние ключи, приобретённые ими в результате отношений с другими сущностями. В случае идентифицирующего отношения внешний ключ станет частью ключа сущности (составной ключ). Если отношение неидентифицирующее, то внешний ключ станет атрибутом.

Опишем более подробно все сущности со своими атрибутами.

Сущность «Клиенты». Предназначена для хранения справочной информации о клиентах. В ней указываются основные данные о клиенте, которые требуются знать клубу. Первичный ключ для данной сущности - код клиента, так как он однозначно идентифицирует каждую запись в сущности. Описание атрибутов приведено в таблице 2.

Таблица 2 – «Клиенты»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код клиента

Числовой

PK

Код клиента

ФИО

Строковый

AK

ФИО клиента

Улица

Строковый

Улица клиента

Дом

Числовой

Дом клиента

Номер квартиры

Числовой

Номер квартиры клиента

Телефон

Строковый

Телефон клиента

День рождение

Дата

Дата рождения клиента

Скидка

Числовое

Скидка на занятия

Сущность «Сотрудники». Предназначена для хранения справочной информации о сотрудниках. В ней указываются основные данные о сотрудниках, которые требуются знать клубу. Первичный ключ для данной сущности - код сотрудника, так как он однозначно идентифицирует каждую запись в сущности. Описание атрибутов приведено в таблице 2.

Таблица 3 – «Сотрудники»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код сотрудника

Числовой

PK

 Код сотрудника

ФИО

Строковый

AK

 ФИО сотрудника

Улица

Строковый

Адрес сотрудника

Дом

Числовой

Дом сотрудника

Номер квартиры

Числовой

Номер квартиры сотрудника

Телефон

Строковый

Телефон сотрудника

Паспортные данные

Строковый

Паспортные данные сотрудника

Должность

Строковый

Должность сотрудника

Сущность «Услуги». Предназначена для хранения информации о предоставляемых услугах фитнес клуба. Первичный ключ для данной сущности - код услуги, так как он однозначно идентифицирует каждую запись в сущности. Описание атрибутов приведено в таблице 4.

Таблица 4 – «Услуги»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код услуги

Числовой

PK

 Код услуги

Наименование

услуги

Строковый

AK

Наименование услуги

Сущность «Прейскурант». Предназначена для хранения данных о цене на услуги фитнес клуба в зависимости от числа выкупленных занятий. В фитнес клубе есть 4 вида абонементов: разовый, на 4 занятия (1 раз в неделю), на 8 занятий (2 раза в неделю) и 12 занятий (3 раза в неделю). В зависимости от услуги и числа занятий, выставляется цена. В сущности «Прейскурант» вместо атрибута «Наименование услуги» пока не записываем атрибут «Код услуги» из сущности «Услуги», так как эти сущности находятся в разных функциональных блоках. При слиянии локальных моделей вместо атрибута «Наименование услуги»появится атрибут «Код услуги». Первичный ключ для данной сущности - код цены, так как он однозначно идентифицирует каждую запись в сущности. Описание атрибутов приведено в таблице 5.

Таблица 5 – «Прейскурант»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код цены

Числовой

PK

 Код цены

Наименование услуги

Строковый

AK

Наименование услуги

Количество занятий

Числовой

Количество занятий

Цена

Числовой

Цена за услугу

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

Таблица 6 – «Услуги клиентов»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

ФИО клиента

Строковый

PK

ФИО клиента, приобретающие услуги

Код

услуги

Строковый

PK

Код услуги

Количество занятий

Числовой

Количество занятий

Сущность «Абонементы». Предназначена для хранения данных о покупке абонемента на выбранные клиентом услуги. Один клиент может иметь несколько абонементов. Абонемент покупается только на определенную услугу. Абонемент выдается на определенный срок, поэтому фиксируется дата начала и дата окончания действия абонемента. Атрибут «Сумма оплаты» абонемента является вычисляемым полем. Для его вычисления из сущности «Прейскурант» по коду цены выбирается цена. Учитывая величину скидки, которая указана в таблице «Клиенты», получается значение атрибута «Сумма оплаты». Атрибут «Флаг активности» отвечает за проверку активности абонемента. Если данный атрибут равен 1, то абонементом можно пользоваться. Если срок действия абонемента истек или клиент исходил все занятия, то флаг активности выставляется равным 0. В атрибуте «Код сотрудника» указывается код администратора, оформляющего абонемент. Это предусмотрено для того, чтобы впоследствии можно было вести учет абонентов и начислять заработную плату сотруднику.

Первичный ключ для данной сущности – код абонемента, так как он однозначно идентифицирует каждую запись в сущности.

Описание атрибутов приведено в таблице 7.

Таблица 7– «Абонементы»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код абонемента

Числовой

PK

Код абонемента

Код клиента

Числовой

Код клиента из таблицы «Клиенты»

Код цены

Числовое

Код цены

Дата начала

Дата

Дата начала действия абонемента

Дата окончания

Дата

Дата конца действия абонемента

Сумма оплаты

Числовой

Сумма за абонемент

Флаг активности

Числовой

Флаг действительности абонемента

Код сотрудника

Строковый

Код сотрудника-администратора

Сущность «Расписание занятий». Предназначена для хранения данных о расписании занятий, проводимых в фитнес клубе. В нем указаны наименование услуги, ФИО сотрудника, проводящего данное занятие, помещение, в котором проходит занятие, день недели и время начала занятия. Стандартно каждое занятие длится 1 час. Расписание занятий не расписано по дням, потому что клиентам удобней ориентироваться по дням недели. Первичный ключ для данной сущности – код расписания занятий, так как он однозначно идентифицирует каждую запись в сущности.

Описание атрибутов приведено в таблице 8.

Таблица 8– «Расписание занятий»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код расписания занятий

Числовой

PK

 Код расписания занятия

Код сотрудника

Числовой

Код сотрудника, проводящего занятия

Код услуги

Числовой

Код услуги

Наименование помещения

Строковый

Наименование помещения, в котором проводятся занятия

День недели

Строковый

День недели

Время

Время

Время начала занятия

Сущность «Журнал посещений». Предназначена для хранения данных о посещении занятий клиентами. В журнале посещений отмечаются клиенты, которые пришли на занятия. Первичный ключ для данной сущности – код журнала посещений, так как он однозначно идентифицирует каждую запись в сущности.

Описание атрибутов приведено в таблице 9.

Таблица 9 – «Журнал посещений»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код журнала посещений

Числовой

PK

 Код журнала посещений

Дата занятия

Дата

Дата регистрации проводимого занятия

Код расписания занятий

Числовой

Код расписания занятий

Код абонемента

Числовой

Код абонемента

Сущность «Зарплата инструкторов». Предназначена для хранения данных о зарплате инструкторов, которые получают ее за проведение каждого занятия. Из сущности «Расписание занятий» по коду занятия извлекаются сведения об инструкторе, который проводил данное занятие. Из сущности «Журнал посещений» извлекается информация о числе клиентов, пришедших на занятие. Цена на услугу, проводимую инструктором, берется из сущности «Прейскурант на услуги». Берется цена за 1 занятие. Атрибут «Оплата» вычисляется как произведение количества человек на цену за услугу и берется 20% от этого произведения (процент сотрудника-инструктора от общей суммы). Оплата начисляется по проведенному занятию.

Первичный ключ для данной сущности – код зарплаты, так как он однозначно идентифицирует каждую запись в сущности.

Описание атрибутов приведено в таблице 10.

Таблица 10 – «Зарплата инструкторов»

Наименование атрибута

Тип данных

Тип ключа

Not Null

Описание атрибута

Код зарплаты

Числовой

PK

 Код зарплаты

Дата

Дата

Дата проведения занятий

Код расписания

Строковый

Код расписания , которое проводил сотрудник-инструктор

Количество человек

Числовой

Количество человек, посетивших занятия

Код цены

Числовой

Код цены на услугу, которую провел инструктор

Оплата

Числовой

Зарплата инструкторов, полученная за проведенное занятие