- •Лабораторный практикум по дисциплине Базы данных и управление ими
- •Часть 2
- •Лабораторный практикум по дисциплине "Базы данных и управление ими"
- •Учебная база данных education3
- •Лабораторная работа № 1
- •Лабораторная работа № 2
- •Лабораторная работа № 3
- •Лабораторная работа №4
- •Лабораторная работа № 5
- •Лабораторная работа № 6
- •Лабораторная работа № 7
- •Лабораторная работа № 8
- •Лабораторная работа № 9
- •Лабораторная работа № 10
- •Лабораторная работа № 11
- •Лабораторная работа № 12
- •Лабораторная работа № 13
- •Лабораторная работа № 14
- •Приложение 1
Лабораторная работа № 1
ПРОЕКТИРОВАНИЕ РЕЛЯЦИОННОЙ БАЗЫ ДАННЫХ.
ДЕКОМПОЗИЦИЯ ПЛОСКОЙ ТАБЛИЦЫ
Порядок выполнения:
-
Выполните декомпозицию приведенной ниже плоской таблицы (или иной таблицы, предложенной преподавателем):
ФИО студента |
Группа |
Дата экзамена |
ФИО преподавателя |
Предмет |
Оценка |
Иванов И.И. |
Кт-102 |
12.12.98 |
Пушкин А.С. |
Математика |
5 |
Иванов И.И. |
Кт-102 |
16.12.98 |
Ломов А.П. |
Физика |
4 |
Кочкин И.И. |
Кт-102 |
20.12.98 |
Саахов Ш.С. |
Химия |
4 |
Петров П.П. |
Ио-101 |
12.12.98 |
Пушкин А.С. |
Математика |
3 |
Павлов С.П. |
Кт-104 |
16.12.98 |
Ломов А.П. |
Физика |
5 |
Жуков А.П. |
Кт-104 |
20.12.98 |
Саахов Ш.С. |
Химия |
5 |
Черняк Д.И. |
Ио-101 |
16.12.98 |
Пушкин А.С. |
Математика |
4 |
Кочев Р.В. |
Кт-102 |
12.10.99 |
Ломов А.П. |
Физика |
3 |
Антонов В.И. |
Кт-104 |
12.10.99 |
Саахов Ш.С. |
Химия |
|
Для этого необходимо:
-
разбить поля, содержащие группы значений, на атомарные (не составные поля), по которым в дальнейшем возможно выполнение поисковых операций,
-
ввести справочники для повторяющихся данных,
-
выделить самостоятельные объекты в плоской таблице,
-
разделить таблицу на части, соответствующие таким объектам,
-
определить первичные и/или внешние ключи таблиц,
-
убедиться на пробной модели в отсутствии чрезмерной повторяемости данных,
-
убедиться, что любые данные исходной плоской таблицы могут быть определены по данным реляционной модели.
-
Создайте шапку плоской таблицы с полями:
- дата занесения строки (записи) в таблицу,
- таб_номер,
- фамилия,
- имя,
- отчество,
- дата_рождения,
- должность,
- оклад,
- дата_назначения_оклада,
- имя_ребенка,
- домашний_адрес (3-5 полей),
- дата_рождения_ребенка,
- дата_начала_больничного,
- дата_окончания_больничного,
- воинское_звание,
- дата_присвоения_воинского_звания,
- номер_страхового_свидетельства,
- ИНН.
-
Заполните таблицу на 8 человек. При заполнении таблицы имейте в виду, что:
-
дата занесения строки (записи) в таблицу должна соответствовать хронологии работы воображаемого оператора,
-
люди из списка могут иметь одну из 5 специальностей (номенклатура специальностей - по Вашему усмотрению),
-
может быть использована следующая шкала воинских званий – мл. сержант, сержант, ст. сержант, старшина, прапорщик,
-
номер страхового свидетельства и ИНН – это 10-разрядные последовательности цифр.
-
Добавьте записи, с помощью которых вводится дополнительно следующая информация:
- для одного-двух человек отражается изменение оклада (в историческом аспекте, т.е. с учетом дат),
- у двух человек имеется по два ребенка, у одного – три ребенка (учесть даты рождения детей и возраст родителей),
- три человека из списка были на больничном листе по одному разу, один – два раза в разные периоды (дата выхода с больничного должна быть позднее даты выхода на больничный лист). Больничные у одного и того же человека не должны перекрываться по датам,
- один человек, находясь в запасе, должен изменить воинское звание с сержанта на старшего сержанта, а затем на старшину (с учетом дат), два человека должны получить очередное воинское звание в пределах указанной номенклатуры званий.
Обратите внимание на существенное увеличение размеров плоской таблицы.
-
В получившейся плоской таблице выявите группы полей (столбцов), которые могут быть выделены в отдельные таблицы, поскольку относятся к отдельным объектам, и данные, которые имеют тенденцию к повторению от записи к записи.
-
Составьте шапки таблиц, на которые предполагается разбить созданную плоскую таблицу.
-
Заполните таблицы с этими шапками, используя данные плоской таблицы.
Помните!
Совокупность таблиц реляционной базы должна полностью заменять плоскую таблицу.
-
Дополните полученный набор таблиц справочниками для должностей и воинских званий (можно создать справочники для фамилий, имен).
-
Выполните декомпозицию плоской таблицы по варианту, выданному преподавателем или методистом (может быть использована [1]), не допуская повторения одних и тех же данных.
-
Определите количество элементов данных для плоских таблиц и их реляционных моделей (для п. 1 и п. 9). Сравните результаты. Приведите выводы из сравнения, имея в виду, что количество записей в таблицах для современных баз данных может достигать сотен тысяч.
-
Определите количество ячеек таблиц, несущих полезную информацию об объектах, и количество ячеек, используемых в качестве индексов для организации связи. Результаты привести в отчете.
-
Предъявите преподавателю отчет, включающий все плоские исходные таблицы, таблицы реляционных базы данных, а также результаты расчетов по элементам данных и выводы о сравнении исходных таблиц и реляционных баз данных.
Контрольные вопросы
-
Что такое плоская таблица?
-
Опишите алгоритм декомпозиции плоской таблицы.
-
Как выполняется соединение таблиц друг с другом?
-
Что такое первичный ключ? Внешний ключ?
-
По каким признакам можно догадаться, что декомпозиция не удалась?