Файл: Лабораторные работы по курсу "Базы данных" (2й модуль 3го курса).doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 30.11.2023
Просмотров: 122
Скачиваний: 3
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторные работы по курсу "Базы данных" (2-й модуль 3-го курса).
ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ ЗАДАНИЕ!
Лабораторные работы заключаются в изучении языка SQL.
Работы выполняются под управлением MySQL версии не ниже 5.23.
В заданиях используются следующие обозначения типов данных:
N – числовой тип (numeric), значение "Дес." при этом указывает количество знаков после запятой (по умолчанию 0);
C – символьный тип (char или varchar в зависимости от длины и семантики поля);
D – тип "дата" (datetime),
T – тип "время" (time).
Другие обозначения:
ПК – первичный ключ;
ВнК – внешний ключ.
Номер варианта лабораторных работ равен номеру студента по списку группы (подгруппы). Сдача лабораторной работы заключается в демонстрации созданных отношений и запросов.
Отчет по лабораторной работе должен включать ФИО студента, номер группы, название предмета, номер варианта, задание и решение. Преподаватель по своему усмотрению может принимать лабораторные работы без бумажного отчета (только в электронном виде).
Лабораторная работа №1 заключается в создании и заполнении отношений БД.
Во второй лабораторной работе производится выборка данных из созданных отношений. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Третья лабораторная работа посвящена работе с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE, DELETE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Лабораторная работа №4 – изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры (все, кроме операции деления). Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.
Задания на лабораторные работы
Вариант 1.
Л. р. №1. Создание и заполнение отношений БД отдела кадров института.
1. Отношение "Кафедры" (поля "Шифр" (ПК), "Название кафедры", "Факультет").
2. Отношение "Дисциплины" (поля "Код дисциплины" (ПК), "Название", "Курс", "Количество лекций", "Количество семинаров", "Количество практических").
3. Отношение "Преподаватели":
Содержимое поля | Тип | Длина | Дес. | Примечание |
Табельный номер | N | 6 | 0 | первичный ключ |
ФИО | C | 50 | | обязательное поле |
Пол | C | 1 | | значения – 'м' и 'ж', по умолчанию – 'ж' |
Дата рождения | D | | | обязательное поле |
Кафедра | С | 6 | | внешний ключ к таблице "Кафедры" |
Должность | C | 30 | | ассистент, преподаватель, доцент, профессор |
Ученая степень | С | 20 | | кандидат или доктор наук |
Ученое звание | С | 20 | | доцент или профессор |
4. Отношение "Нагрузка" (поля Id (ПК), "Преподаватель" (ВнК), "Дисциплина" (ВнК), "Тип нагрузки" – лекция, семинар или практические занятия).
Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Создать упорядоченные списки:
докторов наук с указанием названия кафедры и должности;
самых молодых преподавателей на каждой кафедре;
дисциплин и видов нагрузки, для которых не назначены преподаватели;
кафедр, на которых работает менее 2-х докторов наук.
Для каждой кафедры посчитать количество преподавателей с разными учеными степенями.
Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Представление "Ассистенты, читающие лекции".
Представление "Распределение дисциплин": дисциплина – количество лекций – ФИО лектора – количество семинаров – ФИО преподавателя – количество практических – ФИО лаборанта. Если количество семинаров или практических равно нулю, то выводится NULL.
Представление "Нагрузка преподавателей": ФИО преподавателя – дисциплина – количество лекционных часов (количество лекций, умноженное на 2) – количество семинаров – количество практических – общее количество часов по дисциплине.
Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.
Вариант 2.
Л. р. №1. Создание и заполнение отношений БД бухгалтерии.
1. Отношение "Отделы" (поля "Идентификатор" (ПК), "Название отдела").
2. Отношение "Должности" (поля "Название должности" (ПК), "Оклад").
3. Отношение "Сотрудники":
Содержимое поля | Тип | Длина | Дес. | Примечание |
Табельный номер | N | 6 | 0 | первичный ключ |
ФИО | C | 40 | | обязательное поле |
ИНН (индивидуальный номер налогоплательщика) | C | 12 | | обязательное уникальное поле |
Пол | С | 1 | | Значения – 'м' и 'ж', по умолчанию – 'м' |
Дата рождения | D | | | обязательное поле |
Отдел | N | 3 | 0 | Внешний ключ к таблице "Отделы" |
Должность | С | 30 | | Внешний ключ к таблице "Должности" |
Дата поступления | D | | | на данное предприятие |
Стаж на прежних работах | N | 5 | 2 | по умолчанию – 0 |
4. Отношение "Дети" (поля "Идентификатор" (ПК), табельный номер родителя (ВнК), "ФИО", "Пол" и "Дата рождения").
Л.р. №2. Выборка данных. Один из запросов надо
написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Создать упорядоченные по отделам списки:
сотрудников с их детьми;
сотрудников, имеющих общий стаж работы (включая стаж на прежних работах) не менее 30-и лет;
многодетных сотрудников (имеющих не менее 3-х детей);
должностей каждого отдела (без повторов);
сотрудников, имеющих разнополых детей.
Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE, DELETE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Представление "Ведомость на получение зарплаты" (оклад-13%). Если есть несовершеннолетние дети, одна минимальная зарплата налогом не облагается.
Представление "Доплаты": 10% от оклада за каждого несовершеннолетнего ребенка, но не более 20000 рублей на одного сотрудника.
Представление "Бездетные сотрудники".
Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.
Вариант 3.
Л. р. №1. Создание и заполнение отношений БД бухгалтерии.
1. Отношение "Отделы" (поля "Идентификатор" (ПК), "Название отдела").
2. Отношение "Должности" (поля "Название должности" (ПК), "Оклад").
3. Отношение "Сотрудники":
Содержимое поля | Тип | Длина | Дес. | Примечание |
Табельный номер | N | 6 | 0 | первичный ключ |
ФИО | C | 40 | | обязательное поле |
ИНН (индивидуальный номер налогоплательщика) | C | 12 | | обязательное уникальное поле |
Пол | С | 1 | | значения – 'м' и 'ж', по умолчанию – 'м' |
Дата рождения | D | | | обязательное поле |
Текущий отдел | N | 3 | 0 | внешний ключ к таблице "Отделы" |
Текущая должность | С | 30 | | внешний ключ к таблице "Должности" |
Дата вступления в должность | D | | | |
Стаж на прежних работах | N | 5 | 2 | по умолчанию – 0 |
4. Отношение "Трудовая книжка" (поля "Сотрудник" (ВнК), "Отдел", "Должность" и "Дата вступления в должность").
Л.р. №2. Выборка данных. Один из запросов надо написать двумя способами и объяснить, какой из вариантов будет работать быстрее и почему.
Создать упорядоченные по отделам списки:
отделов и сотрудников;
сотрудников, имеющих общий стаж работы (включая стаж на прежних работах) не менее 20-и лет;
сотрудников, работающих все время в одной должности;
текущих должностей сотрудников по отделам (без повторов);
сотрудников, которые сменили более 3-х должностей.
Л.р. №3. Работа с представлениями. Для созданных представлений необходимо проверить с помощью запросов UPDATE и INSERT, являются ли они обновляемыми, и объяснить полученный результат.
Представление "Ведомость на получение зарплаты" (оклад-13%).
Представление "Трудовая книжка": ФИО сотрудника – должность – дата вступления в должность – дата перехода на другую должность (или "по наст. время").
Представление "Штатное расписание на 1 января текущего года": выдать для каждого сотрудника его должность на эту дату.
Л.р. №4. Изучение операций реляционной алгебры. Необходимо написать на языке SQL запросы, которые реализуют операции реляционной алгебры. Если для демонстрации операций РА недостаточно отношений, созданных во время выполнения работы №1, то следует создать дополнительные отношения.
Вариант 4.
Л.р. №1. Создание и заполнение отношений БД спортивного клуба.
Отношение "Тренеры" (поля "Идентификатор" (ПК), "ФИО", "Уровень мастерства" (КМС, МС и т.д.), "Текущий рейтинг").
Отношение "Спортсмены":
Содержимое поля | Тип | Длина | Дес. | Примечание |
Номер удостоверения | N | 6 | 0 | первичный ключ |
ФИО | C | 40 | | обязательное поле |
Дата рождения | D | | | обязательное поле |
Пол | С | 1 | | обязательное поле |
Уровень мастерства | С | 7 | | 1 разряд, 2 разряд, КМС, МС и т.д. |
Тренер | N | 3 | 0 | обязательный внешний ключ к таблице "Тренеры" |
Текущий рейтинг | N | 4 | 0 | |
Стипендия | N | 7 | 2 | по умолчанию – 0 |
Адрес | С | 40 | | обязательное поле |
Мобильный телефон | С | 11 | | |
Домашний телефон | С | 11 | | |