Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы проектирования и реализации баз данных. Методические указания к проведению лабораторных работ по курсу «Базы данных»

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
571 Кб
Скачать

2.Настроить ограничения ссылочной целостности для реляционных отношений (при изменении, удалении данных).

3.Настроить 1-2 вычисляемых поля.

4.Настроить 1-2 индекса.

5.Спроектировать пользовательское представление.

6.Сгенерировать средствами PowerDesigner SQL-скрипт создания БД.

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

СУБД.

8.Выполнить сгенерированный скрипт для создания схемы данных БД.

9.Подготовить сценарий модификации БД, предусматривающий создание новой таблицы, связанной с существующими. Разработать запросы для соответствующей модификации схемы данных:

а) создание таблицы;

б) добавление колонки в таблицу;

в) создание ограничения внешнего ключа для связи новой таблицы с существующими;

г) модификация колонки в таблице;

д) удаление колонки в таблице;

е) удаление таблицы.

Содержание отчета

1.Титульный лист.

2.Цель работы, задание.

3.Физическая модель:

3.1.Диаграмма физической модели.

3.2.Спецификация таблиц.

4. Создание БД:

4.1.SQL-скрипт создания схемы данных БД (необходимо выделить строки, отвечающие за создание ограничений ссылочной целостности,

вычисляемых полей и индексов).

11

4.2.Скриншот консоли управления выбранной СУБД с представлением созданной структуры БД.

5. Сценарий модификации БД: 5.1.Описание сценария.

5.2.Текст SQL-запросов модификации схемы данных.

Контрольные вопросы

1.Виды ограничений целостности.

2.Формат SQL-запроса на создание и удаление таблиц.

3.Формат SQL-запроса на модификацию таблиц.

4.Формат SQL-запроса для создания ограничения внешнего ключа.

5.Формат SQL-запроса на создание и удаление индексов.

6.Формат SQL-запроса на создание и удаление вычисляемых полей.

Лабораторная работа № 4 Проектирование запросов выборки данных

Цель работы

Изучить основы языка SQL, получить практические навыки разработки SELECT-запросов к базе данных с использованием конструкций селекции, сортировки, объединения, подзапросов, группировки данных и расчета статистических значений.

Задание

Разработать SELECT-запросы к БД, созданной в лабораторной работе №3, с использованием конструкций селекции, сортировки, объединения, подзапросов, группировки данных и расчета статистических значений. Проверить правильность работы запросов на тестовых данных.

Порядок выполнения работы

1. Заполнить базу данных тестовыми данными, используя консоль управления выбранной СУБД. Для «базовых» таблиц («справочников») тестовая база данных должна содержать 3-4 записи, для подчиненных – не менее 10 записей.

12

2.Разработать запрос выборки данных из одной таблицы с использованием конструкции:

SELECT FROM R WHERE ORDER BY

3.Разработать запрос выборки данных из нескольких таблиц с использованием различных вариантов реализации соединения:

а) используя конструкцию WHERE:

SELECT … FROM R, S WHERE R.A=S.A AND … ORDER BY …

б) используя конструкцию «внутреннее соединение» – INNER JOIN:

SELECT … FROM R INNER JOIN S ON R.A=S.A WHERE ... ORDER BY

в) используя конструкцию «внешнее соединение» – OUTER JOIN: SELECT … FROM R LEFT | RIGTH | FULL [OUTER] JOIN S ON

R.A=S.A WHERE ... ORDER BY …

4. Разработать запрос с подзапросом с использованием конструкций: SELECT … FROM … WHERE … [NOT] IN (SELECT …)

Или

SELECT … FROM … WHERE [NOT] EXISTS (SELECT …)

5. Разработать запрос для получения статистических значений с использованием конструкций:

а) расчет частных итогов для каждой комбинации значений атрибутов из списка <ATTR>:

SELECT <ATTR>, COUNT() | SUM() | AVG() FROM … WHERE …

GROUP BY <ATTR>.

б) расчет частных итогов и итогов для каждой подкомбинации в порядке следования атрибутов из списка <ATTR>:

SELECT <ATTR>, COUNT() | SUM() | AVG() FROM … WHERE … GROUP BY ROLLUP(<ATTR>).

в) расчет частных итогов и итогов для каждой подкомбинации (все варианты) атрибутов из списка <ATTR>:

13

SELECT <ATTR>, COUNT() | SUM() | AVG() FROM … WHERE … GROUP BY CUBE(<ATTR>).

г) расчет итогов для каждого уникального значения каждого атрибута из списка <ATTR>:

SELECT <ATTR>, COUNT() | SUM() | AVG() FROM … WHERE … GROUP BY GROUPING SETS(<ATTR>).

Содержание отчета

1.Титульный лист.

2.Цель работы, задание.

3.Скриншоты с наполнением БД.

4.Запросы выборки данных:

4.1.Формулировка запроса на естественном языке.

4.2.Фрагмент физической схемы данных, отображающий таблицы, по которым строится запрос, и их взаимосвязи.

4.3.Формулировка SELECT-запроса на языке SQL.

4.4.Скриншот с результатом выполнения запроса.

Контрольные вопросы

1.Декартово произведение и внутреннее соединение таблиц в SQL.

2.Внешнее соединение таблиц в SQL.

3.Подзапросы в SELECT-выражениях SQL. Ключевые слова IN, EXISTS.

4.Подзапросы в SELECT-выражениях SQL. Ключевые слова ANY, ALL.

5.Некоррелированные подзапросы в SQL.

6.Агрегирующие функции языка SQL.

7.Группирование результатов запросов в SQL.

8.Оператор ROLLUP.

9.Оператор CUBE.

10.Оператор GROUPING SETS.

11.Операции объединение, пересечение, разность в SQL.

14

Лабораторная работа № 5 Проектирование запросов модификации данных

Цель работы

Изучить основы языка SQL, получить практические навыки разработки запросов модификации данных – конструкции INSERT, UPDATE, DELETE.

Задание

Разработать запросы добавления, модификации и удаления данных для БД, созданной в лабораторной работе №3. Разработать пользовательскую транзакцию. Проверить правильность работы запросов на тестовых данных.

Порядок выполнения работы

Разработать запрос добавления одной записи в таблицу с использованием конструкции:

INSERT INTO R (<Columns>) VALUES <Values>

1. Разработать запрос добавления нескольких записей в таблицу (из другой таблицы) с использованием конструкции:

INSERT INTO R (<Columns>) SELECT …

2. Разработать простой запрос модификации данных в таблице с использованием конструкции:

UPDATE R SET WHERE

3.Разработать запрос модификации данных в таблице с использованием подзапроса SELECT, например:

UPDATE R SET … WHERE R.A IN (SELECT …)

или

UPDATE R SET … WHERE EXISTS (SELECT …)

или

UPDATE R SET … WHERE R.A = (SELECT …)

4.Разработать простой запрос удаления данных в таблице с использованием конструкции:

DELETE FROM R WHERE

15

5.Разработать запрос удаления данных в таблице с использованием подзапроса SELECT, например:

DELETE FROM R WHERE R.A IN (SELECT …)

или

DELETE FROM R WHERE EXISTS (SELECT …)

или

DELETE FROM R WHERE R.A = (SELECT …)

6.Спроектировать транзакцию для базы данных, реализующую одну из операций бизнес-логики информационной системы и включающую не менее 3-

хлогически связанных операций модификации и выборки данных.

Содержание отчета

1.Титульный лист.

2.Цель работы, задание.

3.Запросы модификации данных:

3.1.Формулировка запроса на естественном языке.

3.2.Фрагмент физической схемы данных, отображающий таблицы, по которым строится запрос, и их взаимосвязи.

3.3.Скриншот с содержимым таблиц до выполнения запроса. 3.4.Формулировка запроса на языке SQL.

3.5.Скриншот с содержимым таблиц после выполнения запроса. 4. Транзакция:

4.1.Описание логики транзакции на естественном языке. 4.2.Блок-схема алгоритма транзакции.

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

Контрольные вопросы

1.Добавление строки в таблицу с использованием операторов SQL.

2.Добавление множества строк в таблицу с использованием операторов SQL.

3.Модификация данных в таблице с использованием операторов SQL.

16

4.Удаление данных из таблицы с использованием операторов SQL.

5.Использование подзапросов SELECT в операторах модификации

данных.

6.Понятие транзакции.

7.Свойства транзакций.

Лабораторная работа № 6

Программирование серверной логики базы данных

Цель работы

Изучить возможности программирования серверной логики базы данных с использованием триггеров и хранимых процедур. Получить практические навыки программирования триггеров и хранимых процедур для выбранной СУБД.

Задание

Реализовать в БД триггеры для поддержки бизнес-логики информационной системы (не менее 2-х). Реализовать хранимую процедуру для транзакции, разработанной в лабораторной работе №5. Проверить правильность работы созданных объектов БД.

По желанию могут быть реализованы также пользовательские (хранимые) функции БД.

Порядок выполнения работы

1.Сформулировать правила бизнес-логики информационной системы, которые целесообразно реализовать в виде триггеров.

2.Реализовать триггеры для БД на языке SQL (с использованием расширений языка SQL выбранной СУБД).

3.Реализовать для транзакции, разработанной в лабораторной работе №5, реализующую ее хранимую процедуру на языке SQL (с использованием расширений языка SQL выбранной СУБД).

17

Содержание отчета

1.Титульный лист.

2.Цель работы, задание.

3.Триггеры:

3.1.Описание логики работы на естественном языке.

3.2.Фрагмент физической схемы данных, отображающий таблицы, с

которыми работает триггер, и их взаимосвязи.

3.3.Текст процедуры триггера на языке SQL.

3.4.Скриншот с содержимым таблиц до выполнения запроса.

3.5.Формулировка запроса или описание действия, вызывающего исполнение триггера.

3.6.Скриншот с содержимым таблиц после выполнения запроса.

4. Хранимая процедура:

4.1.Описание логики работы на естественном языке.

4.2.Фрагмент физической схемы данных, отображающий таблицы, с

которыми работает хранимая процедура, и их взаимосвязи.

4.3.Текст хранимой процедуры на языке SQL.

4.4.Скриншот с содержимым таблиц до выполнения хранимой процедуры.

4.5.Формулировка запроса или описание действия, вызывающего исполнение триггера.

4.6.Скриншот с содержимым таблиц после выполнения хранимой процедуры.

Контрольные вопросы

1.Понятие и назначение триггеров в БД.

2.Виды триггеров в БД.

3.Хранимые процедуры в БД.

4.Пользовательские функции в БД.

18

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1.Дейт, К.Дж. Введение в системы баз данных [Текст]: 8-е изд.: пер. с

англ./ К.Дж. Дейт. – Москва: Издательский дом «Вильямс», 2006. – 1328 с.

2.Андон, Ф. Язык запросов SQL. [Текст]: учебный курс / Ф. Андон,

В. Резниченко. – Санкт-Петербург: Питер, 2006. – 864 с.

3. Крёнке, Д.М. Теория и практика построения баз данных [Текст]:

учебное пособие: 9-е изд.: пер с англ./ Д.М. Крёнке. – Санкт-Петербург: Питер,

2005. – 864 с.

4.Гарсиа-Молина, Г. Системы баз данных. Полный курс [Текст]: пер с англ. / Г. Гарсиа-Молина, Дж.Д. Ульман, Дж. Уидом. – Москва: Издательский дом «Вильямс», 2004. – 1088 с.

5.Хомоненко, А.Д. Базы данных [Текст] / А.Д. Хомоненко, М.Г. Мальцев,

В.М. Цыганков. – Санкт-Петербург: Корона-Принт, 2004. – 736 с.

6. Коннолли, Т. Базы данных. Проектирование, реализация и сопровождение. Теория и практика [Текст]: 3-е изд.: пер с англ. / Т. Коннолли,

К. Бегг. – Москва: Издательский дом «Вильямс», 2003. – 1440 с.

19

Приложение 1. Примеры описания предметной области

Вариант 1. Типография

Типография «Принт» осуществляет цветную печать на различных форматах (от А5/2 до А1). Бизнес-процесс фирмы строится следующим образом. Клиент заказывает печать полиграфической продукции, выбирая нужные образцы и тираж для каждого образца. Менеджер фирмы рассчитывает для каждого образца стоимость одного экземпляра. Клиент оплачивает весь заказ. После этого назначается исполнитель работ по каждой позиции заказа и со склада списывается материал в объеме, требуемом для выполнения позиции заказа. Отдел снабжения по мере уменьшения запасов на складе закупает необходимое количество материалов.

Требования к информационной системе: 1. Отдел сбыта

Отдел занимается работой с клиентом. Менеджеры отдела оформляют заказ. Заказ может включать несколько позиций, для каждой из которых указывается образец, тираж и стоимость одного экземпляра. При оформлении заказа менеджеры могут делать скидки постоянным клиентам, для чего им требуется информация по стоимости заказов данного клиента за заданный временной интервал. Отдел также отслеживает оплату заказов и передает заказы в производство.

2. Отдел снабжения Отдел занимается поддержанием запасов бумаги и других материалов на

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

3. Производственный отдел Производственный отдел печатает полиграфическую продукцию. На

каждую позицию заказа назначается исполнитель, который в данный момент имеет наименьший объем невыполненной работы (назначенной ранее).

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]