Клиенты (Код клиента, Фамилия, имя, отчество, адрес, телефон);
Поставщики (Код услуги, Код поставщика, Название поставщика, представитель поставщика, обращаться, телефон, адрес);
Сотрудники (Код сотрудника, Фамилия, Имя, Отчество, Дата рождения, зарплата, должность, Адрес, Телефон);
Туры (Код тура, Код услуги, дата отправления, дата прибытия, стоимость тура, код транспорта, длительность пребывания, количество человек);
Услуги (Код услуги, Код страны, Визовое обслуживание, проживание, питание, экскурсии);
Город (Код страны, код города, город);
Страна (Код страны, название страны, код города);
Транспорт (Код транспорта, наименование);
Заказы (Код заказа, код тура, Код сотрудника, код клиента, дата
оформления).
Таблица Город
|
Имя поля |
Обязательное поле |
Индексирование данных |
|
|
Код страны |
Числовой |
да |
нет |
|
Код города |
Числовой |
Да |
Да(Совпадения не допускаются) |
|
Город |
Короткий текст |
да |
нет |
Таблица Заказы
|
Имя поля |
Тип данных |
Обязательное поле |
Индексирование данных |
|
Код заказа |
Числовой |
да |
Да(Совпадения не допускаются) |
|
Код тура |
Числовой |
Да |
нет |
|
Код сотрудника |
Числовой |
да |
Нет |
|
Код клиента |
Числовой |
Да |
нет |
Таблица Клиенты
|
Имя поля |
Тип данных |
Обязательное поле |
Индексирование данных |
|
Код клиента |
Числовой |
да |
Да(Совпадения не допускаются) |
|
Фамилия |
Короткий текст |
да |
нет |
|
Имя |
Короткий текст |
нет |
Нет |
|
Отчество |
Короткий текст |
нет |
Нет |
|
Адрес |
Короткий текст |
нет |
Нет |
|
Телефон |
Короткий текст |
нет |
нет |
Таблица Поставщики
|
Имя поля |
Тип данных |
Обязательное поле |
Индексирование данных |
|
Код услуги |
Нет |
Нет |
|
|
Код поставщика |
Числовой |
Да |
Да (совпадения не допускаются) |
|
Название поставщика |
Короткий текст |
Нет |
Нет |
|
Представитель поставщика |
Короткий текст |
Нет |
Нет |
|
Обращаться |
Короткий текст |
Нет |
Нет |
|
Телефон |
Короткий текст |
Нет |
Нет |
|
Адрес |
Короткий текст |
Нет |
нет |
Таблица Сотрудники
|
Имя поля |
Тип данных |
Обязательное поле |
Индексирование данных |
|
Код сотрудника |
Числовой |
Да |
Да (совпадения не допускаются) |
|
Фамилия |
Короткий текст |
да |
Нет |
|
Имя |
Короткий текст |
Нет |
Нет |
|
Отчество |
Короткий текст |
Нет |
Нет |
|
Дата рождения |
Дата и время |
Нет |
Нет |
|
Зарплата |
Денежный |
Нет |
Нет |
|
Должность |
Короткий текст |
Нет |
Нет |
|
Адрес |
Короткий текст |
Нет |
Нет |
|
Телефон |
Короткий текст |
Нет |
Нет |
Таблица Страна
|
Имя поля |
Тип данных |
Индексирование данных |
|
|
Код страны |
Числовой |
Да |
Да (совпадения не допускаются) |
|
Название страны |
Короткий текст |
Нет |
Нет |
|
Код города |
Числовой |
Нет |
Да (совпадения допускаются) |
Таблица Транспорт
|
Имя поля |
Тип данных |
Обязательное поле |
Индексирование данных |
|
Код транспорта |
Числовой |
Да |
Да (совпадения не допускаются) |
|
Наименование |
Короткий текст |
Нет |
Нет |
Таблица Туры
|
Имя поля |
Тип данных |
Обязательное поле |
Индексирование данных |
|
Код тура |
числовой |
Да |
Да (совпадения не допускаются) |
|
Код услуги |
Числовой |
Нет |
Нет |
|
Дата отправления |
Дата и время |
Нет |
Нет |
|
Дата прибытия |
Дата и время |
Нет |
Нет |
|
Стоимость тура |
Денежный |
Нет |
Нет |
|
Код транспорта |
Числовой |
Нет |
Нет |
|
Длительность пребывания |
Числовой |
Нет |
Нет |
|
Количество человек |
Числовой |
Нет |
нет |
Таблица Услуги
|
Имя поля |
Тип данных |
Обязательное поле |
Индексирование данных |
|
Код услуги |
Числовой |
Да (Совпадения не допускаются) |
|
|
Код страны |
Числовой |
нет |
Да (допускаются совпадения) |
|
Визовое обслуживание |
логический |
- |
Нет |
|
Проживание |
Короткий текст |
Нет |
Нет |
|
Питание |
Короткий текст |
Нет |
Нет |
|
Экскурсии |
Логический |
- |
нет |
Схема даталогической модели базы данных (схема данных).
Рисунок
1(Схема данных "Туристическая фирма")
В любой момент времени БД имеет некоторую определенную конфигурацию значений данных, которые отражают действительность, т.е. являются частью реального мира. Просто определить конфигурацию значений не имеет смысла без связи с внешним миром. Поэтому требуется уточнить определение БД, включив в него правила целостности, которые необходимы для информирования СУБД о различного рода ограничениях реального мира с целью не допустить “абсурдных ” значений данных.
Для любого отношения можно создать ряд правил - ограничений. Каждая конкретная БД должна иметь свои ограничения, связанные с предметной областью, которые накладываются на хранящиеся в ней данные. К таким ограничениям целостности относятся:
1. Ограничения на атрибуты (тип атрибута, диапазон допустимых значений).
. Число кортежей отношения должно быть равно числу первичных ключей (наличие кортежей -дубликатов не допускается).
Первое ограничение накладывается на атрибуты всех отношений на этапе определения типа атрибута. Кроме этого некоторые поля таблиц имеют условие на значение, например, в отношении Сотрудники атрибут Дата Рождения должен быть в интервале от 01.01.1950 до 01.01.1997.
Второе ограничение накладывается на отношения на этапе заполнения таблиц данными о БД.
Существует также два общих правила целостности. Они касаются потенциальных и внешних ключей:
. Первичный ключ является уникальным идентификатором отношения. Не допускается, чтобы какой-либо атрибут, участвующий в первичном ключе, принимал неопределенное значение. В отношении не может быть несколько кортежей с одинаковыми значениями первичного ключа.
Например, в отношении Заказы не может существовать несколько кортежей с одинаковыми значениями атрибута Код заказа.
2. Потенциальный ключ отношения не может иметь пустого значения (NULL). Так как объект, не имеющий идентичности, не существует.
3. Если r2 - некоторое отношение с внешним ключом X , то должно существовать такое базовое отношение r1 с первичным ключом K , что каждое значение X в r2 совпадает со значением К в каком-либо кортеже отношения r1.
В процессе создания БД сначала осуществляется конструирование таблиц,
далее создается схема данных, в которой фиксируются связи между таблицами. В
этой схеме могут быть заданы параметры обеспечения целостности базы данных,
если модель была разработана в соответствии с требованиями нормализации.
Целостность данных означает, что в БД установлены и корректно поддерживаются
взаимосвязи между записями разных таблиц при их загрузке, добавлении и удалении
в связанных таблицах, а также при изменении значений ключевых полей.
Запрос по турамСтрана.[Название страны], Город.Город, Туры.[Дата отправления], Туры.[Длительность пребывания], Туры.[Стоимость тура], Транспорт.Наименование, Услуги.Проживание, Туры.[Количество человек]Город INNER JOIN ((Страна INNER JOIN Услуги ON Страна.Код_страны = Услуги.[Код страны]) INNER JOIN (Транспорт INNER JOIN Туры ON Транспорт.[Код транспорта] = Туры.[Код транспорта]) ON Услуги.[Код услуги] = Туры.[Код услуги]) ON Город.Код_города = Страна.Код_город;
Запрос по клиентамСтрана.[Название страны], Город.Город, Туры.[Дата отправления], Туры.[Длительность пребывания], Туры.[Стоимость тура], Транспорт.Наименование, Услуги.Проживание, Туры.[Количество человек]Город INNER JOIN ((Страна INNER JOIN Услуги ON Страна.Код_страны = Услуги.[Код страны]) INNER JOIN (Транспорт INNER JOIN Туры ON Транспорт.[Код транспорта] = Туры.[Код транспорта]) ON Услуги.[Код услуги] = Туры.[Код услуги]) ON Город.Код_города = Страна.Код_город;
Запрос по поставщикамПоставщики.[Название Поставщика], Поставщики.[Представитель Поставщика], Поставщики.Обращаться, Поставщики.Телефон, Поставщики.АдресПоставщики;
Запрос по сотрудникамСотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Сотрудники.[Дата рождения], Сотрудники.Зарплата, Сотрудники.Должность, Сотрудники.Адрес, Сотрудники.ТелефонСотрудники;
Запрос по турамСтрана.[Название страны], Город.Город, Туры.[Дата отправления], Туры.[Длительность пребывания], Туры.[Стоимость тура], Транспорт.Наименование, Услуги.Проживание, Туры.[Количество человек]Город INNER JOIN ((Страна INNER JOIN Услуги ON Страна.Код_страны = Услуги.[Код страны]) INNER JOIN (Транспорт INNER JOIN Туры ON Транспорт.[Код транспорта] = Туры.[Код транспорта]) ON Услуги.[Код услуги] = Туры.[Код услуги]) ON Город.Код_города = Страна.Код_город;
Запрос по странамСтрана.[Название страны], Город.ГородГород INNER JOIN Страна ON Город.Код_города = Страна.Код_город;
Туры на Мальдивы на 6 днейТуры.[Код тура], Страна.[Название страны], Город.Город, Туры.[Дата отправления], Туры.[Дата прибытия], Туры.[Длительность пребывания], Туры.[Стоимость тура]Туры, Город INNER JOIN Страна ON Город.Код_города=Страна.Код_город(((Страна.[Название страны])="Мальдивы") AND ((Туры.[Длительность пребывания])=6));
Запрос по услугамУслуги.[Визовое обслуживание], Услуги.Проживание,
Услуги.Питание, Услуги.ЭкскурсииУслуги;
Для запуска данного проекта достаточно сделать двойной щелчок мышью по файлу “Турфирма.mdb”. Автоматически загружается Microsoft Access и открывается главная кнопочная форма. Из нее можно попасть, нажимая соответствующие кнопки, в формы просмотра данных о летчиках, самолетах, заказа билета, изменения данных базы, просмотра отчетов, а также кнопка Выход, нажав которую вы сможете выйти из программы.
· Главная форма
· Информация о туристической фирме
· Запросы
· Добавление информации
· Таблицы
· Отчеты
· Добавление информации: Клиенты