
- •20. Ведение заказов
- •21. Учет телефонных переговоров
- •22. Прокат автомобилей
- •23. Выдача банком кредитов
- •24. Платная поликлиника
- •25. Учет телекомпанией стоимости прошедшей в эфире рекламы
- •26. Интернет-магазин
- •27. Ювелирная мастерская
- •28. Парикмахерская
- •29. Химчистка
- •30. Сдача в аренду торговых площадей
- •Описание предметной области
- •1. Выделить основные абстракции (сущность, атрибут, связь) в предметной области и определить их параметры.
- •Для наглядности представим полученную модель в виде er-диаграммы (рис.1).
- •Пример выполнения
- •Пример выполнения
- •Лабораторная работа №5
29. Химчистка
Описание предметной области
Вы работаете в химчистке, осуществляющей прием у населения вещей для выведения пятен. Для наведения порядка вы, по мере возможности, составляете базу данных клиентов, запоминая их анкетные данные (фамилия, имя, отчество). Начиная с третьего обращения клиент переходит в категорию постоянных и получает скидку в 3% при чистке каждой последующей вещи. Все оказываемые услуги подразделяются на виды, имеющие название, тип и стоимость, зависящую от сложности работ. Работа с клиентом первоначально состоит в определении объема работ, вида услуги и, соответственно, ее стоимости. Если клиент согласен, он оставляет вещь (при этом фиксируются услуга, клиент и дата приема) и забирает ее после обработки (при этом фиксируется дата возврата).
Возможный набор сущностей
Виды услуг (Код вида услуг, Название, Тип, Стоимость).
Клиенты (Код клиента, Фамилия, Имя, Отчество, Признак постоянного клиента).
Услуги (Код услуги, Код вида услуги, Код клиента, Дата приема, Дата возврата).
Расширение постановки задачи
Теперь ситуация изменилась. У химчистки появился филиал, и вы хотели бы видеть, в том числе, и раздельную статистику по филиалам. Кроме того, вы решили делать надбавки за срочность и сложность работ.
Внести в структуру таблиц изменения, учитывающие эти факты, и изменить существующие запросы. Добавить новые запросы.
30. Сдача в аренду торговых площадей
Описание предметной области
Вы работаете в крупном торговом центре, сдающем в аренду коммерсантам свои торговые площади.
Вашей задачей является наведение порядка в финансовой сфере работы торгового центра.
Работа торгового центра построена следующим образом: в результате планирования вы определили некоторое количество торговых точек в пределах здания, которые могут сдаваться в аренду. Для каждой из торговых точек важными данными являются этаж, площадь, наличие кондиционера и стоимость аренды в день. Со всех потенциальных клиентов вы собираете стандартные данные (название, адрес, телефон, реквизиты, контактное лицо). При появлении потенциального клиента вы показываете ему имеющиеся свободные площади. При достижении соглашения вы оформляете договор, фиксируя в базе данных торговую точку, клиента, период (срок) аренды.
Возможный набор сущностей
Торговые точки (Код торговой точки, Этаж, Площадь, Наличие кондиционера, Стоимость аренды в день).
Клиенты (Код клиента, Название, Реквизиты, Адрес, Телефон, Контактное лицо).
Аренда (Код аренды, Код торговой точки, Код клиента, Дата начала, Дата окончания).
Расширение постановки задачи
В результате эксплуатации базы данных выяснилось, что некоторые клиенты арендуют сразу несколько торговых точек. Помимо этого, вам необходимо собирать информацию о ежемесячных платежах, поступающих от арендаторов.
Внести в структуру таблиц изменения, учитывающие эти факты, и изменить существующие запросы. Добавить новые запросы.
.
2. Описание лабораторных работ
Лабораторная (самостоятельная) работа №1
Цель работы: приобретение навыков анализа предметной области и построения концептуальной модели.
Содержание работы:
Анализ текстового описания предметной области. .
Построение концептуальной модели.
Задания:
1.Выделить основные абстракции (сущность, атрибут, связь) в предметной области и определить их параметры.
2.Сформировать максимально полный перечень возможных запросов к базе данных на основе анализа предметной области.
3.Построить концептуальную модель в виде ER-диаграммы.
4. Представить концептуальную модель в терминах реляционной модели.
5.Описать домены (допустимые множества значений, которые могут принимать атрибуты), указывая типы соответствующих данных и их характеристики.
6.Определить ключи и внешние ключи (если они есть).
7. Выписать функциональные зависимости (рассматривая возможные значения полей таблицы)..
8. Привести полученную концептуальную модель к третьей нормальной форме или к нормальной форме Бойса-Кодда (показать, что она находится в соответствующей нормальной форме).
Лабораторная работа №2
Цель работы: приобретение навыков создания структуры реляционной базы данных и первоначальный ввод данных в базу данных с использованием СУБД MS Access или СУБД MS SQL Server 2008.
Содержание работы:
Создание структуры реляционной базы данных для построенной в лабораторной работе 1 концептуальной модели предметной области.
Ввод данных в таблицы (данные представляются самим слушателем)..
Задания:
При помощи среды вышеуказанных СУБД создать структуры таблиц для представления предметной области в рамках реляционной модели с указанием типов данных и их характеристик.
Для каждой создаваемой таблицы:
Определить условия на значения и сообщения об ошибках некоторых полей.
Определить начальное значение для некоторых полей.
Задать ключ.
Задать внешний ключ (если он есть).
Определить (если это возможно) значения некоторых полей с помощью мастера подстановок.
Определить обязательные поля.
Определить схему базы данных, связи между таблицами и наложить условия целостности на таблицы, связанные отношением «один-к-многим». Показать на примерах, чтó меняется при включении/выключении каждого из флажков «Обеспечение целостности данных», «Каскадное обновление связанных записей» и «Каскадное удаление связанных записей».
Ввести данные в таблицы. При вводе выяснить, чтó дает наложение условий на значения полей.
Лабораторная работа №3
Цель работы: приобретение навыков реализации запросов пользователя на выборку данных из таблиц, добавление, удаление и редактирование информации. Приобретение практических навыков использования языка SQL.
Содержание работы: Работа со сформированной в лабораторной работе 2 базой данных:
Выборка данных из одной таблицы. Выбор отдельных полей таблицы. Квалифицированный выбор – предложение WHERE. Сложные условия (использование OR, AND, NOT).
Выборка данных из связанных таблиц. Работа с главными и подчиненными таблицами (Master-Detail).
Создание вычислимых полей.
Сортировка результатов запроса.
Проблема агрегирования данных. Изучение агрегатных функций (SUM, AVG, MAX, MIN, COUNT).
Подсчет простых итогов.
Организация группировки. Группировка по нескольким полям.
Организация отбора при группировке.
Создание перекрестных запросов.
Создание новых таблиц.
Создание запросов на добавление, редактирование, удаление.
Задания:
Простой выбор данных (SELECT, *, FROM, WHERE, ORDER BY, вычислимые поля, DISTINCT).
Создать простой запрос на выборку из одной таблицы. Включить несколько полей таблицы.
Включить в запрос все поля с помощью знака «*».
Создать запрос на выборку данных из двух связанных таблиц.
Выбрать несколько полей, по которым сортируется вывод.
Определить условия отбора («И» и «ИЛИ»). Создать не менее двух запросов.
Определить условия отбора с помощью параметра запроса.
Создать вычислимые поля.
Создать отсортированный по вычислимому полю запрос из нескольких таблиц, в котором определены условия «И» и «ИЛИ».
Использовать предложение DISTINCT.
Внешнее объединение таблиц.
Создать запрос на внешнее объединение таблиц.
Продемонстрировать использование предложений Is null, Is not null.
Использовать предложение LIKE.
Использовать оператор UNION.
Выбор данных с помощью группирующих запросов с условием (GROUP BY, HAVING, MIN(), MAX(), SUM(), COUNT(), …).
Создать итоговый запрос, содержащий несколько итоговых цифр.
Создать простой группирующий запрос.
Создать группирующий запрос с группировкой по нескольким полям.
Создать группирующий запрос, в котором определяются условия, причем сначала выполняются вычисления, а затем происходит отбор.
Создать группирующий запрос, в котором определяются условия, причем сначала происходит отбор, а затем выполняются вычисления.
Создать группирующий запрос, в котором есть вычислимое выражение, содержащее несколько итоговых полей.
Выбор данных с помощью подзапросов.
Создать запрос с выбором при помощи In.
Использовать предложения ALL, ANY, EXISTS.
Лабораторная работа №4
Цель работы: разработка интерфейса пользователя для взаимодействия со сформированной в лабораторной работе 2 базой данных. Создание форм.
Содержание работы:
Создание форм для ввода, редактирования и удаления записей.
Создание форм для навигации по базе данных и выполнения запросов.
Задания:
Создать формы для ввода каждой из таблиц-справочников.
Создать сложную форму для таблиц, связанных отношением «один к многим».
Создать кнопочную форму, которая предоставляла бы доступ к всем созданным формам и запросам.
Поместить в созданные формы кнопки навигации по записям и работы с формой (закрыть, напечатать, выйти из приложения).
Создать макрос для автоматической загрузки кнопочной формы при открытии базы данных.
Лабораторная работа №5
Цель работы: приобретение навыков внесения необходимых изменений в структуру базы данных после изменения постановки исходной задачи (расширения предметной области). Модификация структуры базы данных. Модификация запросов к базе данных. Модификация существующего интерфейса.
Содержание работы:
Анализ описания расширенной предметной области.
Изменение структуры таблиц и обоснование изменений.
Работа с измененной базой данных.
Задания:
1. Проанализировать данные, описанные в расширенной предметной области. Определить необходимость изменения имеющихся таблиц и создания новых таблиц для представления предметной области в рамках реляционной модели.
2. Для каждой таблицы:
2.1. Определить условия на значения и сообщения об ошибках некоторых полей.
2.2 Определить начальное значение для некоторых полей.
2.3. Определить ключ.
2.4. Определить внешний ключ (если он есть).
2.5. Определить обязательные поля.
2.6. Определить схему базы данных, связи между таблицами и условия целостности на таблицы, связанные отношением «один к многим».
3. Ввести данные в таблицы. При вводе выяснить, чтó дает наложение условий на значения полей.
4. Адаптировать имеющиеся запросы к расширенной предметной области.
5. Реализовать новые запросы, необходимость которых вызвана расширением предметной области.
6. Добавить новые интерфейсные формы, изменить существующие.
3. Указания к выполнению лабораторных работ и примеры выполнения лабораторных работ
Лабораторная (самостоятельная) работа №1 носит теоретический характер и не требует использования программных средств. Лабораторные работы 2-5 выполняются с использованием СУБД MS Access либо СУБД MS SQL Server 2008. Примеры выполнения работ 2, 4 различны для MS Access и MS SQL Server 2008*, поэтому описание соответствующих примеров приводится отдельно. Примеры выполнения работ 3 и 5 практически не зависят от СУБД.
СУБД Microsoft Access входит в состав пакета Microsoft Ofice и широко распространена. Демонстрационную версию СУБД Microsoft SQL Server 2008, вполне достаточную для выполнения лабораторных работ, можно получить с сайта компании (http://www.microsoft.com/downloads).
Лабораторная самостоятельная работа №1