Файл: Лабораторные работы по курсу "Базы данных" (2й модуль 3го курса).doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 127
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Вариант 26.
Л. р. №1. Создание и заполнение отношений БД расписания уроков.
Отношение "Предметы" (поля "Шифр" (ПК), "Наименование", "Уровень" – начальная школа, средняя, старшая).
Отношение "Учителя" (поля "Id" (ПК), "ФИО", "Категория" – первая, высшая; "Кабинет").
Отношение "Специализация" (поля "Учитель" (ВнК), "Предмет" (ВнК), "Кабинет", составной ПК из трех полей).
Отношение "Расписание":
Содержимое поля | Тип | Длина | Дес. | Примечание | |
Идентификатор | N | 5 | 0 | первичный ключ | |
Предмет | N | 4 | 0 | обязательное поле | составной внешний ключ к таблице "Специализация" |
Учитель | N | 5 | 0 | обязательное поле | |
Кабинет | N | 4 | 0 | обязательное поле | |
День недели | C | 2 | | обязательное поле, пн-вт-ср-чт-пт-сб | |
Класс | С | 3 | | обязательное поле | |
Номер урока | N | 1 | 0 | обязательное поле, от 1 до 8 |
Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Проверить уникальность комбинаций (день недели – кабинет – номер урока) и (день недели – учитель – номер урока). Проверить соответствие уровня предмета и номера класса: 1-4 – начальная школа, 5-9 – средняя, 10-11 – старшая.
Вывести:
расписание уроков для одного класса;
нагрузку для учителей: ФИО учителя – день недели – количество уроков.
Л.р. №3. Работа с представлениями
. Для созданных представлений необходимо проверить с помощью запросов UPDATE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Представление "Занятия в кабинете № 32".
Представление "Окна": расписание "окон" для учителей (пропусков между уроками).
Представление "Нагрузка по классам": класс – предмет – количество уроков в неделю.
Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.
Вариант 27.
Л. р. №1. Создание и заполнение отношений БД кинофильмов.
Отношение "Жанры" (поле "Название жанра" (ПК)).
Отношение "Кинофильмы":
Содержимое поля | Тип | Длина | Дес. | Примечание |
Идентификатор | N | 6 | 0 | первичный ключ |
Название фильма | C | 50 | | обязательное поле |
Киностудия | C | 50 | | обязательное поле |
Год выхода | N | 4 | 0 | обязательное поле |
Страна | С | 30 | | |
Продолжительность | N | 4 | 2 | обязательное поле |
Жанр | С | 30 | | внешний ключ к таблице "Жанры" |
Отношение "Персоны" (поля "Идентификатор" (ПК), "ФИО", "Страна", "Дата рождения", "Дата смерти").
Отношение "Создатели фильмов" (поля "Фильм" (ВнК), "Персона" (ВнК), "Характер участия" (режиссер, актер, композитор и т.д.), "Роль" – для актеров).
Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Создать список жанров, в которых нет ни одного кинофильма. Создать упорядоченные списки:
фильмов с участием Фаины Раневской;
фильмов, вышедших в текущем году в России;
всех создателей фильма "Сталкер";
актеров, которые исполняли две и более роли в одном фильме.
Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Представление "Комедии".
Представление "Режиссеры, снявшиеся в собственных фильмах".
Представление "Статистика по жанрам": жанр количество фильмов, снятых в России количество фильмов, снятых в других странах.
Вариант 28.
Л.р. №1. Создание и заполнение отношений БД деканата (Сессия).
1. Отношение "Кафедры" (поля "Шифр" (ПК), "Название кафедры").
2. Отношение "Дисциплины" (поля "Шифр дисциплины" (ПК) и "Название дисциплины").
3. Отношение "Преподаватели" (поля "Идентификатор" (ПК), "ФИО", "Должность (старший преподаватель, доцент, профессор)", "Ученая степень", "Кафедра").
4. Отношение "Сессия":
Содержимое поля | Тип | Длина | Дес. | Примечание |
Факультет | C | 6 | | обязательное поле |
Курс | N | 1 | 0 | обязательное поле |
Дисциплина | N | 5 | 2 | внешний ключ к таблице "Дисциплины" составной первичный ключ |
Группа | С | 5 | | |
Тип: 0 – экзамен, 1 – консультация | N | 1 | 0 | |
Преподаватель | C | 6 | | внешний ключ к таблице "Преподаватели" |
Аудитория | N | 3 | 0 | |
Дата и время | D | | | |
Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Создать расписание экзаменов (упорядочить по дате):
для преподавателей одной произвольной кафедры;
для одной произвольной группы.
Проверить, проходит ли у каждой группы между двумя экзаменами не менее трёх дней. Убедиться с помощью запроса, что у каждого преподавателя в день не более одного экзамена. Посчитать количество экзаменов у каждой группы.
Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Представление "Преподаватели, не принимающие экзаменов".
Представление "Группа – дисциплина – консультация (дата, время, аудитория) – экзамен (дата, время, аудитория)".
Представление "Не назначенные консультации": группа – дисциплина, по которой есть экзамены, но нет консультаций.
Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.
Вариант 29.
Л. р. №1. Создание и заполнение отношений БД транспортного предприятия.
1. Отношение "Транспортные средства (ТС)" (поля "Гос. номерной знак" (ПК), "Марка", "Количество мест").
2. Отношение "Водители" (поля "Идентификатор" (ПК), "ФИО", "Класс", "Номер ТС" (ВнК)).
3. Отношение "Маршруты":
Содержимое поля | Тип | Длина | Дес. | Примечание |
Номер маршрута | N | 4 | 0 | первичный ключ |
Пункт отправления | С | 50 | | обязательное поле |
Пункт прибытия | С | 50 | | обязательное поле |
Время отправления | Т | | | обязательное поле |
Время в пути | Т | | | обязательное поле |
Периодичность рейса | С | 10 | | ежедн., четн., нечет., день недели |
Цена билета | N | 7 | 2 | больше 0 |
4. Отношение "Рейсы" (поля "Номер маршрута" (ВнК), "Дата выезда", "Водитель" (ВнК), "Количество проданных билетов").
Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Проверить, что у одного водителя не более 3-х рейсов в день. Посчитать общую стоимость проданных билетов на конкретную дату. Создать упорядоченные списки:
маршрутов из определенного пункта отправления;
рейсов, выполненных определенным водителем;
маршрутов, по которым нет рейсов.
Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE, DELETE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Представление "Расписание" (отношение "Маршруты" с указанием времени прибытия).
Представление "Средняя загруженность маршрутов": номер маршрута – количество рейсов – количество проданных билетов / количество мест всего.
Представление "Рейсы на сегодня, на которые все билеты проданы".
Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.