6371
.pdf20
1.4. Связи между таблицами
Согласно приведенному выше определению реляционной СУБД, ее отличительной и необходимой чертой является наличие связей между вхо-
дящими в нее таблицами.
Существует несколько типов связи между двумя множествами.
Применительно к реляционным БД множеством является класс объектов,
сведения о которых содержатся в одной таблице, а членами множества – объекты данного класса. Множеством можно считать саму реляционную таблицу, а членами множества – записи (строки) этой таблицы. Рассмот-
рим типы связей между множествами.
1. Тип связи "Один-к-одному". Каждому элементу первого множе-
ства (объекту, описанному в одной таблице), соответствует только один элемент второго множества (объект, описанный в другой таблице), и на-
оборот – каждому элементу второго множества соответствует только один элемент первого множества.
Некоторым элементам первого множества может не соответство-
вать ни один элемент из второго множества и наоборот – некоторым эле-
ментам второго множества может не соответствовать ни один элемент из первого множества.
Как видно из определения, множества равнозначны.
Подобный тип связи не является основным в реляционных БД. Не-
часто встречаются примеры, когда объектам из одного класса соответству-
ет строго один (не больше одного) объект из другого класса. Один из при-
меров – база кадров. У каждого отдела (бригады, подразделения) может быть только один начальник и наоборот – одна кадровая единица может быть начальником только одного подразделения.
Иногда подобный тип связей используется, чтобы в двух таблицах описать разные характеристики (реквизиты) объектов одного класса. Цели
21
подобного разделения могут быть различными. Одна из них – характери-
стик слишком много. В таком случае возможно или ввести их в несколько таблиц, связанных отношением "Один-к-одному", или ввести их все в одну таблицу и выводить на экран для дальнейшей обработки группами, кото-
рые можно сформировать при помощи нескольких запросов на выборку
(см. главу 3).
Другой случай – часть объектов определенного класса обладает ха-
рактеристиками, отсутствующими у остальных объектов того же класса.
Например, некоторые (но не все) приморские курортные зоны имеют на своей территории месторождения лечебных грязей, которые используются учреждениями отдыха и их медицинские характеристики желательно иметь в БД. В этом случае возможно создание отдельной таблицы "Ме-
сторожденияЛечебныхГрязей", одним из полей которой будет "Курортная-
Зона". Названное поле будет связано по типу "Один-к-одному" с одно-
именным полем таблицы "КурортныеЗоны".
2. Тип связи "Один-ко-многим". Каждому элементу первого мно-
жества (объекту, описанному в первой таблице), соответствует несколько элементов второго множества (объектов, описанных во второй таблице).
Каждому элементу второго множества соответствует не более одного эле-
мента первого множества. Множества (таблицы) не равнозначны. Первая таблица называется исходной (главной), вторая – связанной (подчинен-
ной).
Подобный тип связи является основным в реляционных БД. Как правило, объекты одного класса, сведения о которых содержатся в опреде-
ленной таблице, являются реквизитами для объектов другого класса, све-
дения о которых содержатся в другой таблице. Например для объектов класса "Курорт" реквизитом будет страна, в которой он находится. При этом в одной стране расположено много курортов, но каждый курорт рас-
22
положен только в одной стране (возможные редкие исключения не рас-
сматриваются).
Спомощью связей подобного типа можно совместно использовать
ввыборках, расчетах и при решении других задач АИС (п. 1.1) сведения о совершенно разных объектах, относящихся к разным классам и имеющих разные наборы реквизитов.
Тип связи "Один-ко-многим" проще задавать с помощью мастера подстановок (см. раздел 2.3).
Если реквизит имеет конечное число значений, то вместо них в таб-
лицу рекомендуется вводить их коды. Для хранения и расшифровки кодов создается отдельная таблица – словарь значений реквизита [5], которая бу-
дет главной. Ввод кодов можно производить после установки связи
"Один-ко-многим", что реализуется также с помощью мастера подстано-
вок.
3. Тип связи "Многие-ко-многим". Каждому элементу одного мно-
жества может соответствовать несколько элементов второго множества и наоборот – каждому элементу второго множества может соответствовать несколько элементов первого множества. Реализация подобного типа свя-
зей в реляционных БД невозможна.
В случаях, когда между множествами существуют именно такие взаимоотношения, необходимо создать дополнительную таблицу, которая являлась бы подчиненной для главных таблиц обоих рассматриваемых множеств. Например, туристская фирма работает с контрагентами в не-
скольких странах. Каждый сотрудник фирмы отвечает за контакты с опре-
деленными странами, при этом несколько сотрудников могут работать с одной страной. Тип связи между множествами "Сотрудники" и "Страны" – "Многие-ко-многим". В этом случае чтобы отслеживать контакты опреде-
ленного сотрудника с определенной страной надо создать подчиненную таблицу, для которой главными будут таблицы "Страны" и "Сотрудники".
23
1.5. Интерфейс Microsoft Access
Интерфейс – это совокупность средств и правил, обеспечивающих взаимодействие пользователя с программой. Интерфейс программы дол-
жен обеспечивать пользователя следующими возможностями:
– |
задание команд; |
– |
установка нужных параметров команды или инструмента; |
– |
получение информации о работе программы и т.д. |
Одной из причин популярности пакета программ Microsoft Office
является удобный для пользователя или дружественный интерфейс.
Современные программы предусматривают ряд альтернативных возможностей задания некоторых команд при помощи элементов интер-
фейса, перечисленных ниже.
1.Команды главного меню, расположенного в верхней части окна программы.
2.Кнопки панелей инструментов, которые расположены под глав-
ным меню. Значение команды, выполняемой после нажатия той или иной кнопки, можно прочитать на всплывающих подсказках, которые появля-
ются при наведении курсора на кнопку, интересующую пользователя.
3. Контекстные (синоним – " быстрые") меню, вызываемые нажати-
ем правой клавиши мыши. Их вид зависит от объекта, на котором в данный момент находится курсор. Выражение "Вызвать быстрое меню"
означает поставить курсор мыши на объект и нажать правую кнопку мы-
ши. Например, вызвать быстрое меню таблицы означает поставить курсор мыши на имя таблицы в списке и нажать правую кнопку.
4. "Горячие" клавиши – заданные в программе отдельные клавиши клавиатуры или их сочетания, нажатие которых приводит к выполнению определенной команды. Максимальное использование "горячих" клавиш –
"высший пилотаж" при работе с программой. При задании команд этим способом не нужно убирать руки с клавиатуры. Сочетания "горячих" кла-
24
виш заданы для назначения очень многих команд, но большая их часть,
как правило, не применяется, потому что их надо помнить. Для примера приводятся наиболее употребляемые клавиши и сочетания клавиш, общие для всех программ MS Office:
–"Ctrl + Х" – вырезать;
–"Ctrl + С" – копировать;
– "Ctrl +V" – вставить;
– "Ctrl+Z" – отмена последнего действия.
В программах Microsoft Office-2007 внешний вид окна и элементы интерфейса отличаются от предыдущих версий. Вместо главного меню и панели инструментов создан новый элемент – лента, на которой находятся кнопки для задания команд. Все кнопки разделены по вкладкам и группам.
Заголовки вкладок расположены вдоль верхней части ленты. Активной в любой момент времени является только одна вкладка. Для перехода к дру-
гой вкладке надо щелкнуть мышью на ее заголовке.
Элементы интерфейса и внешний вид окна Access-2007 представле-
ны на рис. 2.
В некоторых случаях несколько кнопок представлены в раскры-
вающемся списке, который можно распознать по стрелке в правом нижнем углу или на нижнем краю кнопки.
Первой слева расположена вкладка "Главная", на которой находятся кнопки для команд, часто используемых во всех программах Microsoft Office: команды копирования и вставки, форматирования текста, настройки шрифтов и цветов и др. Остальные вкладки различаются в разных про-
граммах.
25
26
После запуска Access-2007 вкладок на ленте четыре, хотя по мере работы могут появляться и другие. Кроме "Главной" доступны также следующие вкладки:
–" Создание" – предназначена для создания различных компонентов БД – таблиц, запросов и др.;
–" Внешние данные" – предназначена для импорта данных из дру-
гих программ и экспорта данных в другие программы;
– " Работа с базами данных" – команды для анализа данных, органи-
зации связей и некоторые другие.
Аналогом пункта главного меню "Файл" предыдущих версий Microsoft Office является кнопка Office, находящаяся в левом верхнем углу экрана. С ее помощью можно задать команды "Создать", "Сохранить как…", " Закрыть" и некоторые другие. Кнопки для задания часто встре-
чающихся команд расположены также на панели быстрого запуска, распо-
ложенной справа от кнопки Office.
В разных версиях Windows интерфейс Access-2007 несколько отли-
чается, но на работе БД это не сказывается [6].
27
2. СОЗДАНИЕ БАЗЫ ДАННЫХ ТУРАГЕНТСКОЙ ФИРМЫ
2.1. Информационная модель базы данных турагентской фирмы
Первым этапом разработки БД является создание ее информацион-
ной модели – определение набора классов объектов, связей между ними, а
также определение перечня реквизитов объектов каждого класса и их опи-
сания (варианты значений, формат данных и др.)
При проектировании любой БД сначала необходимо определить,
для каких целей она будет использоваться. Исходя из этого определяются предметная область, классы объектов и реквизиты каждого класса.
Рассмотрим БД фирмы, занимающейся турагентской деятельно-
стью, то есть продажей туров, разработанных другими туроператорами. С
помощью подобной БД можно сохранять информацию о продаваемых ту-
рах, производить быстрый поиск и выборку нужного тура по определен-
ным условиям, анализировать предложения туров по некоторым показате-
лям. Базовый вариант БД рассмотрен в настоящем разделе.
В дальнейшем предусмотрено расширение БД для сохранения и анализа сведений о продажах туров, что рассмотрено в разделе 3.10.
Предметной областью является деятельность по продаже предла-
гаемых туров. Виды классов объектов зависят от конкретной БД. Для БД туров обязательными являются следующие классы:
–фирмы-туроператоры, предлагающие туры;
–места проведения туров, причем один туроператор предлагает не-
сколько мест отдыха, а путевки в одно место отдыха могут предлагаться разными туроператорами (тип связи между местами отдыха и туроперато-
рами – многие-ко-многим);
– туры, предлагаемые определенным туроператором в определен-
ное место отдыха.
28
Последний класс связан отношением "Многие-к-одному" как с классом туроператоров, так и с классом мест отдыха. Таблица "Туры" бу-
дет подчиненной для таблиц двух других названных классов.
По условию работы в одной стране может быть несколько мест от-
дыха, причем один тур предполагает посещение только одного из них.
Следовательно, класс стран связан с классом мест отдыха отношением
"Один-ко-многим".
Проблема возникает в случае, когда один тур предполагает посеще-
ние нескольких мест отдыха или даже нескольких стран, как, например, во время автобусных экскурсий. Возможны два варианта решения.
1. Как место отдыха представляется трасса маршрута в целом с ука-
занием или начального и конечного пунктов, или основных центров посе-
щения, например Венеция-Флоренция-Рим для тура по Италии. Если тур предполагает посещение нескольких стран, то в качестве страны указыва-
ется или наиболее значимая из посещаемых в туре, или вводится особое значение реквизита "Название Страны", например "Несколько стран Евро-
пы" (именно такой вариант предусматривается в задании).
2. Для подобных туров создается более сложная БД с особой струк-
турой, что здесь не рассматривается. Можно предположить, что в практике настоящей фирмы желательно держать сведения о всех продажах в единой БД, а в случае тура по нескольким странам использовать вариант, приве-
денный выше.
В БД предполагается ввод сведений о валюте, за которую продают-
ся туры в странах посещения и о ее текущем курсе. Для удобства надо соз-
дать таблицу "Валюта", которая связана отношением "Один-ко-многим" с
таблицей "Страны" и следовательно будет для нее исходной.
Также для анализа туристской специализации стран и туроперато-
ров создается таблица "ВидыОтдыха", которая будет исходной для табли-
цы "Туры".
29
При создании таблиц следует помнить следующие особенности выбора имен полей [1] и таблиц, а также других компонентов БД.
1. Имя должно быть по возможности простым и коротким. При на-
боре длинных имен больше вероятность ошибки.
2. Если имя состоит из нескольких слов, то делать пробелы между словами не рекомендуется. Общепринято для удобства чтения делать за-
главной первую букву каждого слова, входящего в имя, например "Место-
Отдыха". Пробелы в имени поля затрудняют работу с некоторыми компо-
нентами БД, в частности, с запросами.
3. Похожих имен быть не должно, чтобы их не перепутать.
Схема таблиц и связей между ними приводится на рис. 3.
Список таблиц создаваемой БД с указанием имен и типов полей в каждой из них приводится ниже в разделе 2.2 (табл. 2.1 – 2.6) . Набор таб-
лиц (классов объектов) и реквизитов объектов каждого класса (полей внутри каждой таблицы) обусловлен, в первую очередь, решением автора настоящей разработки. В случае использования подобной БД на практике возможны изменения предложенной структуры в зависимости от постав-
ленных задач.
По условию задания предлагается составить БД турагентской фир-
мы. Исходным материалом может быть любая газета объявлений, содер-
жащая рекламные объявления туристских фирм. При преподавании дисци-
плины "СУБД в туризме" на кафедре туризма и сервиса ННГАСУ исполь-
зуются вырезки из бесплатной рекламной газеты "Экстра-НН". При отсут-
ствии в рекламных объявлениях некоторых характеристик (значений рек-
визитов) туров пользователю предлагается задать их произвольно с учетом реалий и здравого смысла. Например, стоимость недельного тура в Таи-
ланд не должна быть несколько десятков долларов.
.