WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 3 | 4 || 6 |

• Откройте запрос «Клиенты с кодами журналов» в режиме SQL.

• Выделите и скопируйте в буфер обмена текст SQL – запроса.

• Вставьте скопированный текст запроса из буфера обмена в строку свойства «Источник записей».

• Просмотрите результат работы формы. Убедитесь, что ее поведение осталось прежним.

• Закройте форму «Подписчики - подчиненная», сохранив внесенные изменения. Закройте окно запроса.

• Откройте форму «Список журналов», которая использует измененную выше форму в качестве подчиненной. Убедитесь, что форма работает верно.

Теперь запрос «Клиенты с кодами журналов» больше не нужен. Источник записей формы образуется встроенным запросом на языке SQL.

Самостоятельная работа:

1. Просмотрите все созданные ранее запросы в режиме SQL. Найдите соответствие между предложениями на языке SQL и элементами запроса, отображаемыми в режиме конструктора.

2. Просмотрите в режиме SQL все запросы базы данных «Борей». Сравните их представление в режиме SQL и режиме конструктора.

Некоторые запросы на языке SQL могут не иметь соответствующего представления в режиме конструктора (выявите такие запросы). Средства языка SQL предоставляют более широкие возможности по сравнению с возможностями конструктора.

3. Просмотрите свойства форм базы данных «Борей». Выявите и изучите все случаи использования встроенных запросов SQL.

Задание 2. Создание запросов на языке SQL (часть 2, углубленное изучение) Цель задания: Освоить приемы составления запросов с использованием различных операторов языка SQL.

Последовательность действий:

1. Запустите Microsoft Access и создайте новую базу данных с именем «ТурАгентство».

База данных должна содержать данные о туристических поездках, клиентах и заказах. Таблицы базы данных следует создавать средствами языка SQL, без использования визуальных инструментов. Для того, чтобы создать таблицу, не обходимо сначала создать запрос SQL на создание таблицы. Обычно при создании базы данных нет необходимости создавать все таблицы посредством SQL, но иногда операторы SQL могут быть использованы в приложениях для создания или изменения структуры таблиц автоматически.

Структура создаваемой базы данных приведена на рисунке.

2. Создайте запрос с именем «СоздатьТблТранспорт». В режиме SQL введите текст запроса на создание таблицы:

CREATE TABLE Транспорт ( id COUNTER PRIMARY KEY, название TEXT(30) );

Этот запрос создает таблицу «Транспорт», содержащую два поля:

id – уникальный числовой идентификатор (первичный ключ) записи, значения которого назначаются автоматически (в режиме конструктора таблиц этот тип данных называется «Счетчик»);

название – текстовое поле, которое может содержать не более 30 символов.

Таблица будет содержать названия видов транспорта (самолет, автобус и т.п.), применяемых при организации туров.

3. Создайте запрос с именем «СоздатьТблСтрана», содержащий текст запроса на языке SQL:

CREATE TABLE Страна ( id COUNTER PRIMARY KEY, название TEXT(30) );

Этот запрос создает таблицу «Страна». Таблица будет содержать список стран, в которые могут организовываться туры.

4. Создайте запрос с именем «СоздатьТблТур». В режиме SQL введите текст запроса:

CREATE TABLE Тур ( id COUNTER PRIMARY KEY, название TEXT(30), отъезд DATE, возвращение DATE, страна INTEGER REFERENCES Страна (id), транспорт INTEGER REFERENCES Транспорт (id), цена CURRENCY NOT NULL );

Запрос создает таблицу «Тур». Таблица будет содержать сведения о конкретных туристических поездках.

Поля «отъезд» и «возвращение» будут содержать даты начала и окончания тура соответственно. Для поля «страна» с помощью ключевого слова «REFERENCES» («ссылается») определяется связь с полем «id» таблицы «Страна». Аналогично, поле «транспорт» связывается с полем «id» таблицы «Транспорт». Поле цена (имеющее денежный тип данных) предназначена для хранения информации о стоимости тура и не может быть пустым.

5. Создайте запрос с именем «СоздатьТблКлиент», содержащий текст запроса:

CREATE TABLE Клиент ( id COUNTER PRIMARY KEY, фио TEXT(50) );

Таблица «Клиент» будет содержать имена клиентов, которые обращались в данное туристическое агентство. Текстовое поле «фио» может содержать до символов.

6. Создайте запрос с именем «СоздатьТблЗаказ»:

CREATE TABLE Заказ ( тур INTEGER REFERENCES Тур (id), клиент INTEGER REFERENCES Клиент (id), количество INTEGER NOT NULL, PRIMARY KEY (тур, клиент) );

Таблица «Заказ» будет содержать сведения о заказах, оформленных клиентами данного турагентства на организуемые им туристические поездки. Поле «тур» связывается с полем «id» таблицы «Тур», поле «клиент» - с полем «id» таблицы «Клиент». Поле «количество» показывает, сколько билетов на выбранный тур заказал данный клиент. Пара полей «тур» и «клиент» образует первичный ключ таблицы. Это означает, что один клиент может заказать несколько билетов на один и тот же тур, но все они должны входить в один заказ (невозможно создать другой заказ на имя того же клиента на тот же самый тур).

7. Выполните созданные запросы в следующей последовательности: «СоздатьТблТранспорт», «СоздатьТблСтрана», «СоздатьТблТур», «СоздатьТблКлиент», «СоздатьТблЗаказ». Последовательность создания таблиц не может быть произвольной, поскольку поля таблицы «Тур» ссылаются на поля таблиц «Транспорт» и «Страна», а поля таблицы «Заказ» - на поля таблиц «Тур» и «Клиент».

8. Убедитесь, что все необходимые таблицы были созданы. Исследуйте каждую из таблиц с помощью конструктора и выясните, как применение ключевых слов языка SQL (например, «NOT NULL» или «TEXT(30)») повлияло на свойства полей таблиц.

9. Откройте окно «Схема данных» и убедитесь, что между таблицами были установлены все связи, заданные в запросах SQL ключевым словом «REFERENCES».

10. Создайте запрос с именем «ДобавитьСтрану». В режиме SQL введите текст запроса на добавление данных в таблицу:

INSERT INTO Страна (название) VALUES ([Введите название страны]) ;

Этот запрос добавляет в таблицу «Страна» новую запись. Запрос содержит параметр, поэтому при его запуске будет выдано окно для ввода дополнительной информации.

11. Используя созданный запрос, добавьте названия следующих стран:

- Россия - Турция - Индия - Египет - Околоземная орбита 12. Создайте запрос с именем «ДобавитьТранспорт». В режиме SQL введите текст запроса:

INSERT INTO Транспорт (название) VALUES ([Введите вид транспорта]) ;

Запрос будет добавлять новые записи в таблицу «Транспорт», запрашивая у пользователя название вида транспорта.

13. Используя созданный запрос, добавьте следующие названия видов транспорта:

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

15. Откройте таблицу «Тур» в режиме таблицы и добавьте не менее десяти записей о турах в различные страны и на различных видах транспорта, задавая различные значения для времени отъезда и возвращения, а также цены тура.

Каждому туру должно быть присвоено название (по возможности романтическое).

16. Введите в таблицу «Клиент» информацию не менее чем о десяти клиентах.

17. Откройте таблицу «Заказ» в режиме конструктора и определите свойства подстановки столбцов для полей «тур» и «клиент», используя название тура из таблицы «Тур» и поле «фио» из таблицы «Клиент» соответственно.

18. Откройте таблицу «Заказ» в режиме таблицы и добавьте не менее пятнадцати записей о заказах. Для каждого заказа должно быть указано количество билетов.

19. Самостоятельно создайте запрос «Суммы по заказам». Запрос должен выводить список всех заказов (название тура, фио клиента) и для каждого из заказов его стоимость (произведение цены тура на количество заказанных билетов).

20. Самостоятельно создайте запрос «Суммы по турам». Запрос должен выводить список всех туров и для каждого тура – стоимость всех проданных на него билетов (вычисляется как произведение цены тура на сумму поля «количество» всех заказов, связанных с данным туром).

21. Создайте запрос «Суммы заказов по клиентам». Введите в режиме SQL следующий код:

SELECT Клиент.id, Клиент.фио, SUM(Стоимость) AS Сумма FROM Клиент LEFT JOIN ( SELECT Тур.цена*Заказ.количество AS Стоимость, Заказ.клиент FROM Тур INNER JOIN Заказ ON Тур.id = Заказ.тур ) AS ТурЗаказ ON Клиент.id=ТурЗаказ.клиент GROUP BY Клиент.id, Клиент.фио;

Запрос формирует список клиентов и для каждого клиента указывает суммарную стоимость всех его заказов 22. Самостоятельно создайте запрос «Самый уважаемый клиент», выводящий имя клиента, который оформил заказов на самую большую сумму.

23. Самостоятельно создайте запрос «Элитные туры», выводящий список туров, цена которых выше средней цены по всем имеющимся турам.

Задание 3. Проектирование базы данных Цель задания: Освоить методы проектирования баз данных. Пройти все этапы проектирования – от анализа документов из предметной области до реализации базы данных в MS Access 2000.

Легенда: Комитет по образованию Вашего города проводит эксперимент, в котором принимают участие несколько школ из различных районов города. Целью эксперимента является изучение возможностей современных информационных технологий применительно к задачам мониторинга и централизованного управления учебным процессом.

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

Вам поручено выполнить проектирование структуры базы данных и реализацию пилотной версии с использованием СУБД MS Access.

Исходные документы:

Документ 1. Школы, принимающие участие в эксперименте:

Школа Район Адрес Директор 519 Московский пр. Юрия Гагарина, 14 Ипатова А.И.

570 Невский ул. Дыбенко, 23 Круглов В.Н.

335 Невский ул. Подвойского, 5 Сергеева А.И.

578 Приморский пр. Художников, 12 Петрова М.Ю.

Гимназия № 303 Красносельский пр. Ветеранов, 123 Зайцев Ю.Е.

Документ 2. Список классов школы № Класс Количество учеников Классный руководитель 10-а 23 Дуров Д.М.

10-б 25 Ипатова А.И.

11-а 22 Малинина К.В.

Документ 3. Список учеников 10-а класса 519 школы (классный руководитель Дуров Д.М.) Фамилия Имя Отчество Пол Тарасов Петр Юрьевич М Питько Анастасия Михайловна Ж Иваненко Светлана Николаевна Ж Милюшин Александр Сергеевич М Шарапов Артем Георгиевич М Рубаников Михаил Владимирович М Документ 4. Предметы, преподаваемые в школах Предмет Выпускной экзамен Математика Обязательный Физика Обязательный Химия По желанию Биология По желанию Литература Обязательный Физкультура Нет Иностранный язык* Обязательный ОБЖ Нет * В некоторых школах может преподаваться два иностранных языка Документ 5. Преподавание предметов в 10-а классе 519 школы Уроков в Предмет Преподаватель Годовой экзамен неделю Математика 3 Ипатова А.И. Да Физика 2 Дуров Д.М. Да Химия 1 Денисова Т.П. Да Биология 1 Фролова М.А. Да Литература 2 Малинина К.В. Да Физкультура 1 Фролова М.А. Нет Французский язык 2 Кострова С.П. Да ОБЖ 1 Артамонов В.С. Нет Документ 6. Ведомость. Годовые оценки по физике учеников 10-а класса 519 школы. Преподаватель Дуров Д.М.

Ученик Оценка Примечание Тарасов П.Ю. Питько А.М. Иваненко С.Н. Милюшин А.С. Шарапов А.Г. Не аттестован по причине боРубаников М.В.

лезни. Справка прилагается.

Последовательность действий:

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

2. Выявите атрибуты для каждой сущности из предметной области. Составьте графическое изображение сущностей и их атрибутов в компактной форме. Пример графического представления сущностей приведен на рисунке.

Студент Группа Кафедра Сотрудник КодКаф НомерЗач НомерГр ТабНомер Фамилия НазвКаф Фамилия Телефон Имя Имя Отчество Отчество Курс ДатаРожд ДатаРожд Группа Адрес Степень Предмет Предмет Звание Название Препод 3. Выявите связи между сущностями, определите типы связей (один к одному, один ко многим или многие ко многим). Проанализируйте свойства связей и при необходимости введите в модель дополнительные сущности или объедините существующие.

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

4. Составьте диаграмму «Сущность-связь» (ER-диаграмму), представляющую связи (взаимоотношения) между различными сущностями. Если присутствуют «слабые» сущности, они должны быть выделены особо.

Пример ER-диаграммы приведен ниже. Диаграмма относится к предметной области, которая родственна рассматриваемой.

Группа состоит в слушает N Студент N N Предмет читаем в Курс N Кафедра N Сотрудник состоит из ведет 5. Для каждой сущности определите способ уникальной идентификации экземпляров. В качестве идентификатора могут быть использованы уже существующие атрибуты, если для них соблюдено требование уникальности и их зна чения не подвержены изменениям. Во многих случаях может оказаться более предпочтительным введение нового числового атрибута в качестве идентификатора. Для составных сущностей уникальный идентификатор должен быть составным и включать в себя идентификаторы сущностей, которые связаны с данной.

Внесите дополнения в графическое изображение сущностей и их атрибутов, обозначив идентификаторы сущностей. Пример графического представления сущностей с идентификаторами приведен ниже.

Студент Группа Кафедра Сотрудник *КодКаф *НомерЗач *ID *ТабНомер НазвКаф Фамилия НомерГр Фамилия Имя Телефон Имя Отчество Отчество Курс ДатаРожд ДатаРожд Предмет Адрес Степень *Группа Звание *ID *Предмет Название *Препод 6. Определите домены для атрибутов сущностей. Если домен некоторого атрибута достаточно специфичен, может потребоваться образование новой сущности для хранения значений данного домена.

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

Сотрудник УченаяСтепень *ТабНомер *ID Фамилия Наименование Имя Отчество УченоеЗвание ДатаРожд Степень *ID Наименование Звание 7. На основе полученной модели «Сущность-связь» составьте реляционную модель, описывающую таблицы и их первичные ключи, обеспечивающие уникальность строк в таблицах. Определите внешние ключи, обеспечивающие связи между таблицами.

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

9. Запустите Access, создайте базу данных с именем «Школы».

10. Реализуйте созданную ранее реляционную модель, создав соответствующие таблицы. Создайте все необходимые связи между первичными и внешними ключами таблиц и определите для связей свойства обеспечения целостности данных.

11. В тех таблицах, где это необходимо, определите свойства подстановки значений.

12. Внесите данные в таблицы. Должно быть представлено не менее 3 школ, в каждой школе не менее 3 классов и в классе не менее 4 учеников.

14. Создайте объекты-запросы, формирующие наборы данных, соответствующие исходным документам, использованным при проектировании (список школ, список классов, список учеников, список предметов, предметы, преподаваемые в указанном классе, ведомость класса по предмету). Запросы могут содержать параметры.

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

Литература 1. Бобцов А.А., Шиегин В.В. Банки и базы данных. Основы работы с MS Access. Часть 1 (для пользователей). Учебное пособие. – СПб., 2005.

2. Карпов Б. Microsoft Access 2000: Справочник // СПб: «Питер», 2001.

3. Форт С., Хоуи Т., Релстон Дж. Программирование в среде Access 2000.

Энциклопедия пользователя // Киев: Издательство «ДиаСофт», 2000.

4. Справка по Microsoft Access (входит в состав пакета Access).

5. Кириллов В.В., Громов Г.Ю. Структуризированный язык запросов (SQL).

Pages:     | 1 |   ...   | 3 | 4 || 6 |






© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.