
- •Минобрнауки россии
- •1. Структура и механизмы ос
- •2. Организация многопрограммной работы: процессы и потоки
- •2.5. Вопросы и литература
- •3. Управление данными в ос
- •3.5. Вопросы и литература
- •4. Файловая система
- •4.5. Вопросы и литература
- •5. Основы проектирование данных. Отношения
- •5.5. Вопросы и литература
- •6. Синхронизация процессов и доступа к ресурсам. Транзакции в ос и субд
- •6.5. Вопросы и литература
- •7. Информационно-логическое моделирование в разработке баз данных
- •7.5. Вопросы и литература
- •8. Работа с данными. Язык баз данных
- •8.1. Цель практического занятия
- •8.2. План занятия
- •8.3 . Используемые технологии
- •8.4. Примеры для анализа
- •8.4.1. Пример параметрического запроса с групповой обработкой
- •8.4.2 Пример запроса на поиск максимального/минимального значения
- •8.4.3 Пример запроса с предварительно определяемым условием выбора
- •8.5. Вопросы и литература
- •9. Язык баз данных
- •9.5. Вопросы и литература
- •10. Защита и безопасность при доступе данным в многопользовательской среде
- •10.5. Вопросы и литература
7.5. Вопросы и литература
1. Что понимают под ограничениями целостности.
2. Какие ограничения поддерживаются в SQLсервере.
3. Поясните термин ключи-кандидаты.
4. Зачем используются. NULL-значения и когда они могут появляться.
5. Что означает каскадное обновление.
6. Приведите пример нарушения ссылочной целостности.
7.. Чем различаются зависимые и независимые сущности.
8. Поясните термины внешний ключ и первичный ключ.
Учебник / Учебное пособие |
Раздел |
Страницы |
Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001.- 304 с.; ил. |
Глава 7 |
121-134 |
8. Работа с данными. Язык баз данных
8.1. Цель практического занятия
Данное занятие проводится интерактивно в форме дискуссий по возможным путям решения задач, построению схемы базы данных и по постановке и конкретизации запросов к базе данных.
Данное занятие ориентировано на разборе решений задач по построению запросов к базе данных и основывается на материале предшествующих занятий 5,7, а также на материале, изложенном вМетодических указаниях к лабораторным и практическим занятиям по дисциплине «Операционные системы и базы данных».
Занятие предназначено для содействия выполнения заданий по лабораторным занятиям 3 и 4..
8.2. План занятия
Для подготовки к занятию требуется изучить материал к лабораторным и практическим занятиям №3 и №4.
8.3 . Используемые технологии
Для лучшего усвоения материала желательно проведение занятия с использованием компьютера.
8.4. Примеры для анализа
Первая группа примеров основывается на схеме данных, показанной на Рис. 5.1.
8.4.1. Пример параметрического запроса с групповой обработкой
Конкретный запрос- «Сколько всего куплено машин цвета [параметр] ».
Необходимые таблицы: «цвета автомобилей», «экземпляры автомобилей» и таблица с фактами покупки «покупатель-автомобиль».
Рис. 8.1 Конструктор запроса «Сколько всего машин [цвета] куплено»
Запрос использует группировку по ключевому полю vin, чтобы подсчитать количество купленных автомобилей. Условием выборки является параметр [цвет].
В форме SQLзапросимеет вид:
SELECT Count(customer_automobile.vin) AS [Count-vin], colors.color_name_sale
FROM colors
INNER JOIN (automobile INNER JOIN customer_automobile
ON automobile.vin = customer_automobile.vin)
ON colors.color_id = automobile.color_id
GROUP BY colors.color_name_sale
HAVING (((colors.color_name_sale)=[Цвет]));
Рис. 8.2 Исполнение и результат «Сколько всего машин [цвета] куплено»
8.4.2 Пример запроса на поиск максимального/минимального значения
Конкретный запрос- поиск самого дешевого «седана». Для реализациизапроса потребуются таблица «модели автомобилей», где хранится значение стоимости для базовой комплектации, и таблица «исполнений кузова», где хранится символьное имя кузова.
Рис. 8.3 Запрос «Найти самый дешевый седан»
Запросиспользует групповую операцию Min.В формеSQLзапросимеет вид:
SELECT Min(models.cost_basis) AS [Min-cost_basis], bodywork.bodywork_name
FROM bodywork INNER JOIN models ON bodywork.bodywork_id = models.bodywork_id
GROUP BY bodywork.bodywork_name
HAVING (((bodywork.bodywork_name)="Седан"));
Рис. 8.4 Результат работы запроса «Найти самый дешевый седан»
8.4.3 Пример запроса с предварительно определяемым условием выбора
Конкретный запрос- «В какой группе средний рейтинг не превышает среднюю оценку за практику».Соответствующая схема данных показана на Рис. 5.2.
Поскольку условие выбора (средняя оценка за практику и рейтинг по группам) не является известным значением, то сначала потребуется найти:
значения среднего рейтинга для каждой группы (значений столько, сколько групп;
среднюю оценку за практику по всем группам (1 значение).
Это выполняется с помощью запроса на групповую обработку.
Рис. 8.5 Запрос «Средний рейтинг в группе»
В форме SQLзапросимеет вид:
SELECT Avg(stud.raiting) AS [Avg-raiting], stud.gruppa
FROM stud
GROUP BY stud.gruppa;
Рис. 8.6 Запрос «Средняя оценка за практику»
В форме SQLзапросимеет вид:
SELECT Avg(Stud_prak.ocenka) AS [Avg-ocenka]
FROM Stud_prak;
Рис. 8.7 Запрос на получение конечного результата
В последнем запросе в качестве условия отбора используется операция отношения <=для сравнения предварительно вычисленныхзначений.
В форме SQLзапросимеет вид:
SELECT [9_средний рейтинг].gruppa, [9_средний рейтинг].[Avg-raiting]
FROM [9_средний рейтинг], 9_под_З_ср_оценка
WHERE ((([9_средний рейтинг].[Avg-raiting])<=[9_под_З_ср_оценка]![Avg-ocenka]));