Скачать 355.59 Kb.
|
Министерство образования Российской Федерации Нижегородский государственный университет им. Н.И. Лобачевского Экономический факультет Кафедра «Экономической информатики» МЕТОДИЧЕСКИЕ УКАЗАНИЯпо выполнению лабораторных работ (курс «Базы данных и знаний», часть 1) Нижний Новгород 2001 г. Методические указания по выполнению лабораторных работ (курс «Базы данных и знаний»), часть 1. Н. Новгород: ННГУ, 2001. 21 с. Составили: д.э.н. профессор Ю.В. Трифонов, к.э.н. ст. преподаватель А.Н. Визгунов. Методические указания предназначены для студентов экономического и механико-математического факультетов. Здесь определены цели и задачи лабораторных работ, приведены конкретные задания. В рамках каждой лабораторной работы описаны содержание и примеры выполнения. Для выдачи конкретных заданий проведены варианты предметных областей. 1.Цели и задачи лабораторных работ. Лабораторные работы по курсу «Базы данных и знаний» (часть 1) имеют следующие цели и задачи: систематизацию и закрепление теоретических и практических знаний в области организации, проектирования и создания баз данных ; изучение конкретных систем управления базами данных. (в частности, СУБД Access); освоение навыков практической работы в конкретной аппаратно-программной среде СУБД. ^ Содержание лабораторных работ разбито на два уровня: начальный и базовый. Для студентов, не связанных с программированием, предназначен начальный уровень. Для студентов, имеющих хорошую подготовку в информатике, предназначен базовый уровень. ^ Лабораторная работа №1.Цель. Описание предметной области. Выбор структур таблиц и обоснование данного выбора. Наложение условий целостности. Определение ключей. Внешний ключ. Определение полей. Ограничения, налагаемые на поля. Содержание. 1. Создать таблицы, описанные в предметной области (варианты предметных областей приведены далее). 2. Для каждой создаваемой таблицы: Определить условия на значения и сообщения об ошибках некоторых полей. Определить начальное значение для некоторых полей. Определить ключ. Определить внешний ключ (если он есть). Определить (если это возможно) значения некоторых полей с помощью мастера подстановок. Определить обязательные поля. 3. Ввести данные в таблицы. При вводе выяснить, что дает наложение условий на значения полей. 4. Определить схему базы данных, связи между таблицами и наложить условия целостности на таблицы, связанные отношением "один-ко-многим". Показать на примерах, что меняется при включении/выключении каждого из флажков "Обеспечение целостности данных" и "каскадное обновление связанных записей" и "каскадное удаление связанных записей". Пример выполнения. Примечание. При иллюстрации выполнения лабораторных работ всегда будет использоваться описанный ниже пример. При выполнении лабораторных работ студентами, преподаватель назначает каждому студенту свой вариант предметной области (варианты приведены ниже) или студент выбирает предметную область самостоятельно, но обязательно согласовывает ее с преподавателем до выполнения лабораторной работы. Предметная область - модель работы страховой компании. Предположим, что страховая компания желает учитывать страховые договоры. Каждый страховой договор характеризуется следующей информацией: номер договора, страховая сумма, тарифная ставка, дата заключения, вид страхования, процент комиссионного вознаграждения, филиал, фамилия агента, имя агента, отчество агента, телефон агента, адрес агента. Из постановки задачи известно, что процент комиссионного вознаграждения зависит от вида страхования. Приводя полученную таблицу к третьей нормальной форме, создаем таблицы со следующей структурой: Агенты (КодАгента, Фамилия, Имя, Отчество, Телефон, Адрес) ВидыСтрахования (^ , Название, Процент) Договоры (НомерДоговора, СтраховаяСумма, ТарифнаяСтавка, Дата, КодВида, КодАгента) Форматы полей и их свойства (описание получено с помощью надстройки «Архивариус» MS Access, приведены только те свойства полей, которые отличны от значений по умолчанию): ^ Имя Тип Размер КодАгента Числовой (длинное целое) 4 (Примечание: данное поле можно сделать полем типа «Счетчик») Фамилия Текстовый 20 Имя Текстовый 20 Отчество Текстовый 20 Телефон Текстовый 15 Маска ввода (###)##-##-##;; Адрес Текстовый 50 ^ КодВида Числовой (длинное целое) 4 Атрибуты: фиксированной ширины, автоприращение Данное поле является полем типа «Счетчик» Название Текстовый 20 Процент Числовой (с плавающей точкой 4 байт) 4 Число десятичных знаков: 1 Значение по умолчанию: 0.1 Обязательное поле: Истина Сообщение об ошибке: Процентное вознаграждение не может быть более 100 процентов (вводите значения от 0 до 1) Формат поля: Процентный Условие на значение: <=1 ^ Договор Числовой (длинное целое) 4 СтраховаяСумма Числовой (с плавающей точкой 8 байт) 8 Значение по умолчанию: 0 Тариф Числовой (с плавающей точкой 4 байт) 4 Число десятичных знаков: 2 Формат поля: Процентный Дата Дата/время 8 Значение по умолчанию: Date() Обязательное поле: Истина Формат поля: Краткий формат даты КодАгента Числовой (длинное целое) 4 Филиал Текстовый 15 Число строк списка: 8 Число столбцов: 1 Источник строк: "Северный";"Западный";"Центральный" Ограничиться списком: Истина Обязательное поле: Истина Присоединенный столбец: 1 Тип источника строк: Список значений Тип элемента управления: Поле со списком ВидСтрахования Числовой (длинное целое) 4 Схема данных АгентыДоговоры Агенты Договоры КодАгента 1- КодАгента Атрибуты: обеспечение целостности, каскадные обновления, каскадные удаления Ограничиться списком: один-ко-многим ВидыСтрахованияДоговоры ВидыСтрахования Договоры КодВида 1 - ВидСтрахования Атрибуты: обеспечение целостности, каскадные обновления, каскадные удаления Атрибуты: один-ко-многим Таблица «Агенты».
Таблица «ВидыСтрахования».
Таблица «Договоры».
^ Цель. Изучение запросов на выборку. Содержание. При выполнении данной работы каждый выполненный пункт необходимо сохранять в виде отдельного запроса.
Пример выполнения. 1. Простой запрос на выборку. SELECT Агенты.КодАгента, Агенты.Фамилия, Агенты.Телефон FROM Агенты;
SELECT Агенты.* FROM Агенты;
SELECT Договоры.Договор, Договоры.Дата, Договоры.СтраховаяСумма, Договоры.КодАгента, Агенты.КодАгента, Агенты.Фамилия, Агенты.Адрес FROM Агенты INNER JOIN Договоры ON Агенты.КодАгента = Договоры.КодАгента;
SELECT Договоры.Договор, Договоры.Дата, Договоры.СтраховаяСумма FROM Договоры ORDER BY Договоры.Дата DESC , Договоры.СтраховаяСумма DESC;
SELECT Договоры.Договор, Договоры.Дата, Договоры.СтраховаяСумма, Агенты.Фамилия FROM Агенты INNER JOIN Договоры ON Агенты.КодАгента = Договоры.КодАгента WHERE Агенты.Фамилия="Иванов" ORDER BY Договоры.Дата DESC , Договоры.СтраховаяСумма DESC;
SELECT Договоры.Договор, Договоры.Дата, Договоры.СтраховаяСумма, Агенты.Фамилия FROM Агенты INNER JOIN Договоры ON Агенты.КодАгента = Договоры.КодАгента WHERE Агенты.Фамилия="Иванов" or Агенты.Фамилия="Петров" ORDER BY Договоры.Дата DESC , Договоры.СтраховаяСумма DESC;
SELECT Договоры.Договор, Договоры.Дата, Договоры.СтраховаяСумма, Агенты.Фамилия FROM Агенты INNER JOIN Договоры ON Агенты.КодАгента = Договоры.КодАгента WHERE Агенты.Фамилия=[Введите фамилию агента] ORDER BY Договоры.Дата DESC , Договоры.СтраховаяСумма DESC; Если ввести «Иванов», то вывод будет совпадать с выводом пункта 6.
SELECT Договоры.Договор, Договоры.Дата, Договоры.СтраховаяСумма, [Фамилия] & " " & Left([Имя],1) & "." & Left([Отчество],1) & "." AS ФИО FROM Агенты INNER JOIN Договоры ON Агенты.КодАгента = Договоры.КодАгента ORDER BY Договоры.Дата DESC , Договоры.СтраховаяСумма DESC;
SELECT Договоры.Договор, Договоры.Дата, Договоры.СтраховаяСумма, [Фамилия] & " " & Left([Имя],1) & "." & Left([Отчество],1) & "." AS ФИО FROM Агенты INNER JOIN Договоры ON Агенты.КодАгента = Договоры.КодАгента WHERE Агенты.Фамилия=[Введите фамилию агента] ORDER BY [Фамилия] & " " & Left([Имя],1) & "." & Left([Отчество],1) & ".";
^ Цель. Изучение группирующих запросов, группирующих запросов с условием, перекрестных запросов. Содержание. При выполнении данной работы каждый выполненный пункт необходимо сохранять в виде отдельного запроса.
Пример выполнения.
SELECT Avg(Договоры.Тариф) AS Avg_Тариф, Sum(Договоры.СтраховаяСумма) AS Sum_СтраховаяСумма FROM ВидыСтрахования INNER JOIN Договоры ON ВидыСтрахования.КодВида = Договоры.ВидСтрахования;
SELECT Договоры.ВидСтрахования, ВидыСтрахования.Название, Sum(Договоры.СтраховаяСумма) AS Sum_СтраховаяСумма FROM ВидыСтрахования INNER JOIN Договоры ON ВидыСтрахования.КодВида = Договоры.ВидСтрахования GROUP BY Договоры.ВидСтрахования, ВидыСтрахования.Название;
SELECT Договоры.ВидСтрахования, ВидыСтрахования.Название, Договоры.КодАгента, Агенты.Фамилия, Sum(Договоры.СтраховаяСумма) AS Sum_СтраховаяСумма FROM Агенты INNER JOIN (ВидыСтрахования INNER JOIN Договоры ON ВидыСтрахования.КодВида = Договоры.ВидСтрахования) ON Агенты.КодАгента = Договоры.КодАгента GROUP BY Договоры.ВидСтрахования, ВидыСтрахования.Название, Договоры.КодАгента, Агенты.Фамилия;
SELECT Договоры.ВидСтрахования, ВидыСтрахования.Название, Sum(Договоры.СтраховаяСумма) AS Sum_СтраховаяСумма FROM ВидыСтрахования INNER JOIN Договоры ON ВидыСтрахования.КодВида = Договоры.ВидСтрахования GROUP BY Договоры.ВидСтрахования, ВидыСтрахования.НазваниеHAVING Sum(Договоры.СтраховаяСумма)>10000;
SELECT Договоры.ВидСтрахования, ВидыСтрахования.Название, Sum(Договоры.СтраховаяСумма) AS Sum_СтраховаяСумма FROM ВидыСтрахования INNER JOIN Договоры ON ВидыСтрахования.КодВида = Договоры.ВидСтрахования WHERE (Договоры.СтраховаяСумма)<20000 GROUP BY Договоры.ВидСтрахования, ВидыСтрахования.Название;
SELECT Договоры.ВидСтрахования, ВидыСтрахования.Название, Avg([СтраховаяСумма]*[Тариф]) AS Платеж FROM ВидыСтрахования INNER JOIN Договоры ON ВидыСтрахования.КодВида = Договоры.ВидСтрахования GROUP BY Договоры.ВидСтрахования, ВидыСтрахования.Название;
Цель. Изучение запросов действия и запросов объединения. Содержание.
Пример выполнения. Предположим, что северный и западный филиалы страховой компании желают вести базу данных договоров самостоятельно. Для того, чтобы решить эту задачу, необходимо создать для каждого из филиалов свою таблицу. Кроме того, необходимо изменить тип поля «Договор» со счетчика на длинное целое.
SELECT Договоры.Договор, Договоры.СтраховаяСумма, Договоры.Тариф, Договоры.Дата, Договоры.КодАгента, Договоры.Филиал, Договоры.ВидСтрахования INTO ЗападныйФилиал FROM Договоры WHERE Договоры.Филиал="Западный"; Таблица ЗападныйФилиал
SELECT Договоры.Договор, Договоры.СтраховаяСумма, Договоры.Тариф, Договоры.Дата, Договоры.КодАгента, Договоры.Филиал, Договоры.ВидСтрахования INTO СеверныйФилиал FROM Договоры WHERE Договоры.Филиал="Северный"; Таблица СеверныйФилиал
DELETE Договоры.Филиал FROM Договоры WHERE Договоры.Филиал="Северный" OR Договоры.Филиал="Западный";
INSERT INTO Договоры SELECT ЗападныйФилиал.* FROM ЗападныйФилиал; INSERT INTO Договоры SELECT СеверныйФилиал.* FROM СеверныйФилиал;
Уменьшим все тарифы вдвое. UPDATE Договоры SET Договоры.Тариф = [Тариф]*0.5;
^ Цель. Построение интерфейса. Создание форм. Содержание.
Пример выполнения. Лабораторная работа выполняется самостоятельно. |
![]() | В сборник вошли методические указания к выполнению следующих лабораторных работ в среде табличного процессора excel 2003 | ![]() | В сборник вошли методические указания к выполнению следующих лабораторных работ в среде табличного процессора excel 2007 |
![]() | Приведены ссылки на методические указания, используемые в лабораторном практикуме | ![]() | Методические указания предназначены для выполнения курсовой работы по дисциплине "Базы данных" студентами специальности 220200 Автоматизированные... |
![]() | Методические указания предназначены для студентов-заочников специальностей: 2806, 2808, 1707, 2506. Дисциплина «вычислительная техника... | ![]() | Целью лабораторных работ является обучение студентов математическим моделям и методам решения экономических задач, базирующихся на... |
![]() | А. И. Костюк. Базы данных и знаний: Курс лекций. Таганрог: Изд-во трту, 1999. 175 с | ![]() | В пособии приведены описания лабораторных работ и методические указания к их выполнению, а также приложения, содержащие справочные... |
![]() | Целью проекта является приобретение практических навыков в использовании полученных знаний при разработке баз данных, закрепление... | ![]() | Методические указания к выполнению контрольных работ по дисциплине «Гармония» утверждены на заседании кафедры музыкального образования... |