Рис. 3.3. Схема данных.
В текстовом файле вам необходимо будет составить список таблиц, причем для каждой таблицы вы должны указать, что в ней хранится (например, в таблице «Доставка» хранится информация о службах доставки), как таблицы связаны между собой (например, таблица «Доставка» связана с таблицей «Заказы», указывает, какой службой доставки будет доставлен конкретный заказ).
Для получения информации из базы данных должны использоваться запросы.
Работа с запросами делится на две части – подготовку запросов (то есть их составление) и их выполнение (то есть получение информации из базы данных в соответствии с запросом).
Для выполнения запроса Если запрос уже готов, надо открыть панель Запросы в окне База дан-
ных, выбрать его и открыть двойным щелчком на значке — откроется результирующая таблица.
Запросы лучше всего готовить с помощью Конструктора. Для этого есть специальный значок в окне База данных, он называется Создание запроса в режиме конструктора.
Бланк запроса показан на рис. 3.4. Как видно, он состоит из двух областей. В верхней отображается структура таблиц, к которым запрос адресован, а нижняя область разбита на столбцы — по одному столбцу на каждое поле будущей результирующей таблицы.
Рис. 3.4. Бланк запроса по образцу
При создании запроса появляется окно добавления таблиц. В нем вы должны выбрать те таблицы, информация из которых вам нужна. Поля, которые вы хотите увидеть в результате выполнения запроса, вы должны перетащить мышью в таблицу в нижней части окна. Затем запрос можно сохранить, нажав на кнопку с изображением дискеты. Такой запрос называется запросом на выборку.
Если необходимо, чтобы данные, полученные в результате выполнения запроса, были отсортированы по значению какого-либо поля, применяют сортировку. Для этого в нижней части бланка имеется специальная строка Сортировка.
Иногда возникает необходимость использовать какое-либо поле , например, для сортировки значений, но не показывать информацию из этого поля пользователю. В этом случае необходимо отключить флажок Вывод на экран. Например, при формировании списка задолжников по оплате коммунальных услуг всех жильцов дома можно отсортировать по сумме задолжности, не показывая в то же время саму сумму задолжности.
Иногда необходимо выводить не всю информацию, а только удовлетворяющую заданным условиям. Для этого используется Условие отбора в таблице полей. Например, на рис. 3.5 показан запрос, в результате которого будут показаны названия всех все клиентов, должность которых - менеджер.
Помимо запросов на выборку, которые мы рассмотрели выше, существуют и другие виды запросов, некоторые их которых выполняются на базе предварительно созданного запроса на выборку. К ним относятся прежде всего:
• запросы с параметром (удобны тем, что критерий отбора может задать сам пользователь, введя нужный параметр при вызове запроса);
•итоговые запросы, назначение которых аналогично итоговым функциям электронных таблиц (производят математические вычисления по заданному полю и выдают результат);
•запросы на изменение — изменяют содержимое таблиц;
•перекрестные запросы, позволяющие извлекать данные из нескольких таблиц и производить над ними вычисления;
Рис. 3.5. Пример запроса
В нашей работе нам потребуются итоговые запросы. Для преобразования запроса на выборку в итоговый запрос необходимо щелкнуть правой кнопкой мыши на каком-либо столбце и включить пункт «Групповые операции». После этого в столбце с числовыми данными в строке «Групповые операции» можно выбирать сумму, среднее, минимальное и максимальное значения, и.т.д. Для остальных полей желательно оставить значение «Группировка».
Во многих случаях, информация в таблице запроса может дублироваться. В частности, такая ситуация возникает в том случае, если мы берем информацию из двух разных таблиц, связанных между собой через третью таблицу (например, таблицы «Типы» и «Заказано» связаны через таблицу товары). Поскольку заказывать можно разные товары, но принадлежащие к одной категории (к одному типу), категории будут повторяться. Избежать этого в запросе как раз и помогает группировка.
4. ЛАБОРАТОРНАЯ РАБОТА №4
4.1. Введение в проблему
Разработка структуры базы данных – важный этап. Это вызвано тем, что после того, как сформированы и заполнены таблицы базы данных, а так же заданы связи между ними, добавление новых свойств объектов, связей между ними становится очень сложной задачей (требуется как изменить структуру БД, так и внести изменения в содержимое таблиц). В то же время, исправление ошибок в данных, находящихся в таблице – задача несложная, и выполняемая однократно. Вот почему проектирование структуры БД важнее, чем ее заполнение.
4.2. Анализ и методика решения задачи
Любой фрагмент предметной области может быть представлен как множество сущностей, между которыми существует некоторое множество связей. Процесс выделения сущностей и связей между ними был подробно рассмотрен нами на лекции.
То число сущностей, которое может быть связно с другой сущностью, называют степенью связи. Существуют следующие степени бинарных связей:
∙один к одному (обозначается 1 : 1 ). Это означает, что в такой связи сущности с одной стороны (например, сущности аудитория) всегда соответствует не более одной сущности с другой стороны (например,
ячейка для ключа на вахте).
∙один ко многим ( 1 : n ). В данном случае сущности с одной стороны может соответствовать любое число сущностей с другой стороны. Например, таковой является связь между отделом и сотрудником. В каждом отделе может работать много сотрудников, но сотрудник может работать только в одном отделе. В случае, если сотрудник может работать одновременно в нескольких отделах, возникает следующий тип связи.
∙многие ко многим ( n : n ). В этом случае с каждой стороны может быть произвольное количество сущностей. Примером такой связи является связь книга-автор, поскольку одна книга может быть написана несколькими авторами, и каждый автор может участвовать в написании
нескольких книг.
Еще одной важной характеристикой связи является класс принадлежности входящих в нее сущностей или кардинальность связи. Например, на предприятии каждый сотрудник должен работать на какой-либо должности. С другой стороны, могут существовать должности, которые (временно) никто не занимает, то есть, не работает на этой должности в данный момент.
В этом случае говорят, что в связи сотрудник-должность сущность
должность имеет обязательный класс принадлежности, а сущность сотрудник имеет необязательный класс принадлежности.
5. ЛАБОРАТОРНАЯ РАБОТА №5
12.2. Анализ и методика решения задачи
При разработке экспертной системы вам придется последовательно выступить в роли трех различных сотрудников:
1)инженера по знаниям, который определяет, какие вопросы необходимо задавать эксперту, чтобы он описал фотокамеру, и какие вопросы следует задавать покупателю, чтобы помочь ему выбрать фотоаппарат;
2)эксперта, который, отвечая на вопросы, подобранные инженером по знаниям, описывает фотоаппараты;
3)пользователя, который, отвечая на вопросы инженера по знаниям, описывает нужный ему фотоаппарат.
Рассмотрим, каким образом инженер по знаниям должен выбирать вопросы.
При выборе камеры продавец-консультант должен учитывать следую-
щее:
уровень покупателя как фотографа; необходимость наличия в фотоаппарате сменной оптики;
необходимость наличия в фотоаппарате творческих режимов; цену фотоаппарата.
Рассмотрим эти параметры подробнее, начнем с профессионального уровня фотографа. По этому параметру условно можно выделить 3 класса покупателей: новичок, любитель и профессионал. Новичок – это человек, которого интересует не процесс фотографирования как таковой, и не художественная ценность полученной фотографии, а сам факт ее наличия. Возможности фотокамеры для новичка должны обеспечивать только одно – навел-снял.
Любитель четко осознает, что именно он хочет получить на фотографии, понимает, как влияет на полученное изображение выбор объектива, на что влияет выбор выдержки и диафрагмы, и.т.д. Любитель занимается художественной фотографией.
Профессионал отличается от продвинутого любителя в основном тем, что зарабатывает фотографией на жизнь, и тем, что кроме всех возможностей камеры его интересует ресурс камеры и ее надежность. Кроме того, профессионал обычно готов потрать на камеру гораздо большую сумму, чем любитель.
Определим, как именно можно соотнести камеру и покупателя. Большинство покупателей склонны переили недооценивать свои спо-
собности, поэтому не рекомендуется прямо спрашивать у человека, новичок он, любитель или профессионал. Такие вещи лучше выяснять, спросив у че-
ловека, например, собирается ли он покупать аппарат впервые (новичок), снимает для семейного альбома (любитель), печатается ли он в каких-нибудь изданиях (профессионал).
Наличия сменной оптики в фотоаппарате. Различные объективы поразному изображают на снимке один и тот же сюжет. Знающий фотограф пользуется этим, и для него наличие сменной оптики важно. Для человека, не имеющего представления о различных характеристиках объективов, предпочтительнее использование несменного объектива. Определить необходимость наличия сменной оптики в камере (особенно в будущем) можно, узнав у человека, что он собирается снимать. Если человек намерен снимать портреты и пейзажи, сменная оптика понадобится наверняка.
Наличие художественных режимов (а именно приоритета выдержки и диафрагмы) предполагает, что человек знает, зачем нужны эти режимы. В частности, диафрагма определяет, в каком диапазоне расстояний от камеры предметы на фотографии будут выходить резкими. От выбора выдержки зависит, как на фотографии буду переданы движущиеся предметы. Если покупатель знает это, художественные режимы в камере необходимы, если нет – он может без них обойтись.
Цена камеры определяется исходя из наличия средств у покупателя.
12.3. Указания к выполнению работы
Работа выполняется в среде программы Expert Builder (рис. 12.1).
Рис. 12.1. Программа Expert Builder.
Суть работы данной программы сводится к определению, насколько тот или иной вариант удовлетворяет пользователя.
Программа Expert Builder представляет собой оболочку экспертной системы, и поддерживает 3 режима работы.
Режим «Редактор вопросов» включается кнопкой на панели управления. Он предназначен для инженера по знаниям. Этот режим позволяет определить вопросы, задаваемые эксперту (для описания фотоаппарата) и пользователю (покупателю, для определения, какая камера ему необходима). То есть, в первом режиме описываются свойства объектов, но не сами объекты. Например, если создается система по музыкальным центрам, то в режиме редактора вопросов описываются свойства объектов (производитель, наличие CD-привода, цена, и.т.д.).
Для перемещения по вопросам служит панель навигации . Можно так же добавлять новые вопросы и удалять уже существующие.
Вопросы служат для описания свойств объекта. Система предлагает ввести вопрос к инженеру знаний и вопрос к пользователю. Ответ на вопрос к инженеру знаний задается для того, чтобы эксперт, отвечая на вопрос,
описал конкретный объект. Например, при описании музыкальных центров вопрос о наличии CD-проигрывателя будет звучать так: «Имеет ли данный музыкальный центр CD-проигрыватель?».
Ответ на вопрос к пользователю служит для определения желаний пользователя. К примеру, в системе, описывающей домашние музыкальные центры, вопрос о наличии CD-проигрывателя звучит так: «Хотите ли вы, чтобы CD-проигрыватель имелся в вашем музыкальном центре?».
Далее располагаются поля для ввода вариантов ответа. Например, на вопрос о наличии CD-привода можно дать ответы «Да» и «Нет». Именно эти ответы должны быть перечислены в полях с номерами 1 и 2.
Индивидуально для вопроса к инженеру знаний и пользователю можно задать вид ответа – множественный или единственный. Единственный вид ответа означает, что при ответе на вопрос из всех вариантов ответа можно будет выбрать только один-единственный вариант. Множественный вид ответа позволит одновременно выбрать несколько вариантов ответа (рис. 12.2). В случае, представленном на рис. 12.2, множественный вариант ответа использован правильно: покупатель может с разной степенью приязни относиться к разным производителям, то есть согласен купить музыкальный центр, произведенный, к примеру, и фирмой Aiwa, и фирмой Panasonic.
Рис. 12.2. Множественный вид ответа на вопрос к пользователю.
Чаще всего единственный вариант ответа используется в вопросе к инженеру знаний. Связано это с тем, что ответ на вопрос к инженеру знаний должен описывать конкретный реально существующий объект.
Множественный вариант ответа более характерен для вопроса к пользователю, поскольку ответ на него должен описывать предпочтения пользователя. К примеру, может оказаться так, что покупатель предпочитает музыкальные центры производства Panasonic и Philips, и не желает приобретать центр фирмы Sony.
Кроме того, имеется возможность задавать некоторые вопросы только в том случае, если на определенный вопрос получен определенный ответ (рис. 12.3).
Рис. 12.3. Вопрос.
Например, если на вопрос №6 («Необходим ли вам проигрыватель CD?») был получен отрицательный ответ, вопрос 7 («Какого типа CDпроигрыватель вы желаете?») задавать не имеет смысла.
В некоторых случаях варианты ответов для инженера знаний и пользователя также должны различаться, но в данной версии системы это не реализовано. В таких случаях рекомендуется варианты ответа для инженера знаний записывать в скобках.
После описания вопросов работа инженера по знаниям заканчивается, и начинается работа эксперта. Этот режим работы системы носит название «База знаний» и запускается кнопкой . В этом режиме эксперт задает, из каких объектов будет выбирать пользователь (в нашем случае – фотоаппаратов), а так же описывает свойства объектов, отвечая на вопросы инженера по знаниям. Поле «Запись» служит для ввода названия объекта, после чего эксперт должен ответить на все вопросы о данной системе (рис. 12.4). Для добавления нового объекта служит кнопка «Добавить», для выбора ранее введенного объекта (например, чтобы исправить ошибку в его описании), служит кнопка «Список».
Рис. 12.4. База знаний.
Перемещаться по вопросам также при помощи панели навигации. После описания всех объектов и их свойств работа эксперта заканчива-
ется.
Для пользователя (в нашем случае – покупателя) предназначен третий режим работы, который называется «Тест». Этот режим предназначен для выбора пользователем наиболее подходящего ему объекта. Вызывается этот
режим кнопкой . Общий вид системы в этом режиме можно увидеть на рис. 12.5.
Рис. 12.5. Режим «Тест».
В этом режиме пользователь отвечает на вопросы системы, тем самым определяя наиболее подходящий для него объект. После ответа на все вопросы (переход между вопросами по кнопке «Вперед») пользователю будет показана таблица, в которой перечислены все объекты и степень их соответствия запросам пользователя в процентах (рис. 12.6).
Рис. 12.6. Таблица ответов.