- •Введение
- •Лабораторная работа № 1
- •Единиц информации
- •Задание
- •Лабораторная работа № 2
- •Реляционная модель данных
- •Функциональные зависимости и ключи
- •Вторая и третья нормальные формы
- •Ациклическая база данных
- •Доступ к реляционной базе данных
- •Библиографический список
- •390005, Рязань, ул. Гагарина, 59/1.
Задание
В соответствии с вариантами необходимо создать СЕИ и выполнить предложенные задания. Кроме того, необходимо произвести включение, исключение записей, а также корректировку какого-либо значения записи.
Пусть
А = ПРИХ(2).(ДАТА, ПОСТ, СКЛАД,
ТАБЛ(3).(ННМ, КВО-ДОК, КВО-ПР,ЦЕНА, СУММА)),
B = ПРИХ(6).(ДАТА, ПОСТ, СКЛАД, ННМ,
КВО-ДОК, КВО-ПР, ЦЕНА, СУММА),
C = КАРТ(3).(СКЛАД, ННМ, ЦЕНА,
ТАБЛ(3).(ПОСТ, ДАТА, КВО-ДОК, КВО-ПР, СУММА)),
D = {ПРИХ1 (6). (ДАТА, ПОСТ, СКЛАД, ННМ,
КВО-ДОК, КВО-ПР, СУММА) и
ЦЕНЫ(3).(ННМ, ЦЕНА)}.
Нормализовать ПРИХОДНЫЙ ОРДЕР от A к B.
Произвести свертку от B к A.
Произвести свертку от B к C.
Произвести декомпозицию от B к D.
Произвести композицию от D к B.
Произвести выборку в СЕИ A и B по условию
ННМ = 21110.
Произвести выборку в СЕИ A и B по условию
КВО-ДОК > КВО-ПР.
Произвести выборку в СЕИ C и D по условию
ЦЕНА > 50.
Пусть
A = ЛИЧНОСТЬ(5).(ФАКУЛЬТЕТ, КУРС, ГРУППА,
СТУДЕНТ(15).(ФАМ, ИМЯ, ОТЧ)),
B = ЛИЧНОСТЬ(75).(ФАКУЛЬТЕТ, КУРС, ГРУППА,
ФАМ, ИМЯ, ОТЧ).
Нормализовать СЕИ от A к B.
Произвести свертку от B к A.
Произвести свертку нормализованной СЕИ по факультетам.
Произвести свертку нормализованной СЕИ по группам.
Произвести свертку нормализованной СЕИ по курсам.
Произвести выборку в СЕИ A по условию
ФАМ = (ИВАНОВ или СИДОРОВ).
Определить из СЕИ A, на каком факультете и в какой группе учатся одновременно СТУДЕНТЫ ОРЛОВ и СЕМЕНОВ.
Произвести кодировку студентов по ФАКУЛЬТЕТУ, КУРСУ, ГРУППЕ, ФАМИЛИИ.
Произвести кодировку рабочего по ЗАВОДУ, ЦЕХУ, БРИГАДЕ, ФАМИЛИИ.
Дано отношение:
ПРОИЗВОДСТВО |
|||
ЗАВОД |
ПРОДУКЦИЯ |
ПЛАН |
ФАКТ |
ДИНАМО ДИНАМО АТЭ-1 АТЭ-1 САЛЮТ САЛЮТ ЛУЧ ЧАЙКА |
ЭДВ-12 ЗВИ ЭДВ-12 ЭДВ-30 ОКА-3 ОКА-5 Ч-45 Ч-12 |
120 200 80 150 100 170 135 200 |
140 200 170 100 66 230 100 333 |
Произвести выборку по условию
ЗАВОД = ЛУЧ или САЛЮТ.
Произвести выборку по условию
ПРОДУКЦИЯ = ЭДВ-12 или ЭДВ-30.
Определить на каких предприятиях ФАКТ > ПЛАН.
Лабораторная работа № 2
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ
Цель работы
Ознакомление с реляционной и ациклической реляционной моделями данных. Приобретение навыков построения моделей данных, изучение различных методов доступа к данным.
Методические указания
Реляционная модель данных
Определение модели данных предусматривает указание множества допустимых информационных конструкций, множества допустимых операций и множества ограничений для хранимых значений данных.
При разработке баз данных используются реляционная, сетевая и иерархическая модели данных. При этом реляционная модель данных является наиболее распространенной.
Реляционная модель данных характеризуется следующими компонентами:
информационная конструкция – отношение с двухуровневой структурой;
допустимые операции – проекция, выборка, соединение и некоторые другие;
ограничения – функциональные зависимости между атрибутами отношения.
Реляционная база данных представляет собой множество отношений, а ее схема содержит следующие компоненты:
где
– множество имен атрибутов,
– множество имен
отношений,
– вхождение
атрибутов в домены – области определения,
– вхождение
атрибутов в отношения (описание структуры
отношений),
– множество
ограничений в базе данных (в том числе
функциональных зависимостей).
Данные в реляционной модели представляются в виде таблицы, при этом:
название таблицы и перечень названий граф соответствует схеме отношения;
каждое значение отношения соответствует строке таблицы;
все строки таблицы различны;
порядок строк и столбцов произвольный.
Описание процессов обработки отношений может быть выполнено двумя способами:
указание перечня операций, выполнение которых приводит к требуемому результату (процедурный подход);
описание свойств, которым должно удовлетворять результирующее отношение (декларативный подход).
Приводимые далее операции над отношениями ориентированы на процедурное описание алгоритмов обработки данных.
Система отношений и операций над ними образуют реляционную алгебру. Для реляционной модели данных определены следующие операции.
1. Проекция – операция, которая переносит в результирующее отношение те столбцы исходного отношения, которые указаны в условии операции. Алгебраическая запись проекции имеет вид:
,
где – исходное отношение;
– результирующее
отношение;
– список атрибутов
в структуре отношения
(условие проекции).
2. Выборка – операция, которая переносит в результирующее отношение те строки исходного отношения, которые удовлетворяют условию выборки. Алгебраическая запись выборки имеет вид:
,
где
– исходное отношение;
– результирующее отношение;
– условие выборки.
Условие выборки может иметь вид:
ИМЯ_АТРИБУТА <знак сравнения> ЗНАЧЕНИЕ (например, ЦЕНА > 30);
ИМЯ_АТРИБУТА1 <знак сравнения> ИМЯ_АТРИБУТА2 (например, ФАКТ> ПЛАН).
Допустимые знаки сравнения: "=", "<>", ">", "<", "≤", "≥".
3. Объединение
содержит строки, присутствующие либо
в отношении
,
либо в
.
4. Пересечение
содержит
строки, присутствующие в отношениях
и
одновременно.
5. Вычитание
содержит те строки из
,
которые отсутствуют в
.
6. Соединение – операция, при которой каждая строка первого исходного отношения сопоставляется по очереди со всеми строками второго исходного отношения, и если для этой пары строк соблюдается условие соединения, то они сцепляются и образуют очередную строку в результирующем отношении.
Алгебраическая запись имеет вид:
,
где
– исходные отношения,
– результирующее отношение,
– условие соединения.
Условие соединения имеет вид:
ИМЯ_АТРИБУТА1 <знак сравнения> ИМЯ_АТРИБУТА2, где имена атрибутов находятся в разных отношениях.
7. Натуральное соединение - это соединение, для которого:
знаком сравнения в условии соединения является "=",
ИМЯ_АТРИБУТА1 и ИМЯ_АТРИБУТА2 должны совпадать и содержать пересечение списков атрибутов исходных отношений.
Обозначение натурального соединения не содержит условия соединения и имеет вид:
.
При этом, в отличие от простого соединения, в результирующем отношении, полученном с помощью натурального соединения, графы таблицы не будут повторяться. Количество строк в результирующем отношении равно произведению от количества строк, удовлетворяющих условию соединения в двух исходных отношениях.
Натуральное
соединение определено и в тех случаях,
когда соединяемые отношения совпадают
по структуре или не содержат общих
атрибутов. Если структура отношений
и
одинакова, то натуральное соединение
фактически выполняет пересечение
отношений:
.
Если структура отношений
и
такова, что они не содержат общих
атрибутов, то считается, что условие
соединения выполнено для любой пары
сопоставляемых строк и натуральное
соединение
сцепляет каждую строку из отношения
с каждой строкой из отношения
.
8. Операция взятия
образа. В отношении
образом значения
атрибута
является множество значений атрибута
,
и каждый элемент
этого множества образует вместе с
некоторую строку (или часть строки)
отношения
:
где
– знак операции "образ",
– значение, образ
которого вычисляется,
– имя атрибута для значения .
9. Деление.
Результатом операции деления является
отношение
,
содержащее пересечение образов всех
строк отношения-делителя
,
вычисленных на основе отношения-делимого
:
Необходимо отметить, что любое результирующее отношение, полученное с помощью перечисленных выше операций, не содержит одинаковых строк.
Ниже рассмотрены примеры выполнения перечисленных выше операций.
Пусть даны два
отношения
и
:
|
|||
Завод |
Продукция |
План |
Факт |
Луч |
Ч-15 |
200 |
210 |
Луч |
Ч-17 |
100 |
100 |
Чайка |
Ч-15 |
50 |
150 |
Чайка |
Ч-20 |
100 |
80 |
|
||
Продукция |
Цена |
Комплектующие |
Ч-15 |
70 |
БАТ |
Ч-15 |
70 |
РК |
Ч-20 |
85 |
БАТ |
Ч-20 |
85 |
РК |
Ч-17 |
80 |
РК |
На основе отношения может быть получена проекция:
:
|
||
Завод |
Продукция |
Факт |
Луч |
Ч-15 |
210 |
Луч |
Ч-17 |
100 |
Чайка |
Ч-15 |
150 |
Чайка |
Ч-20 |
80 |
Так как порядок
столбцов в результирующем отношении
может быть произвольным, то возможно
выполнение проекции вида:
.
На основе отношения может быть получена проекция, представляющая собой справочник цен на продукцию:
:
|
|
Продукция |
Цена |
Ч-15 |
70 |
Ч-20 |
85 |
Ч-17 |
80 |
Как видно из примера, результат проекции в реляционной алгебре не содержит одинаковые строки.
Отношение с заданной структурой может быть получено из различных отношений исходной базы данных. Однако результаты проекций могут не совпадать между собой.
Пусть, например, требуется сформировать список отделов некоторого учреждения, используя базу данных, в которой имеются отношения:
Служащий(Фамилия, Отдел,…)
и
Технолог(Фамилия, Отдел,…).
Проекции Служащий[Отдел] и Технолог[Отдел], вообще говоря, не будут совпадать между собой, так как в некоторых отделах может не быть технолога. Поэтому для поучения корректного списка всех отделов проекция должна выполняться с использованием отношения Служащий[Отдел], которое содержит в себе больший объем информации.
На основе отношения с помощью операции выборки могут быть получены следующие отношения:
и
:
|
|||
Завод |
Продукция |
План |
Факт |
Луч |
Ч-15 |
200 |
210 |
Чайка |
Ч-15 |
50 |
150 |
|
|||
Завод |
Продукция |
План |
Факт |
Луч |
Ч-15 |
200 |
210 |
Луч |
Ч-17 |
100 |
100 |
Чайка |
Ч-15 |
50 |
150 |
Пусть дано отношение
:
|
|
Продукция |
Цена |
Ч-25 |
50 |
Ч-26 |
35 |
Тогда при объединении
отношений
и
можно получить расширенный справочник
цен на продукцию:
:
|
|
Продукция |
Цена |
Ч-15 |
70 |
Ч-20 |
85 |
Ч-17 |
80 |
Ч-25 |
50 |
Ч-26 |
35 |
Обычное соединение отношений и в виде:
дает некорректные
результаты соединения, так как столбец
ПРОДУКЦИЯ повторяется в отношении
дважды:
|
|||||
Завод |
Продукция |
План |
Факт |
Продукция |
Цена |
Луч |
Ч-15 |
200 |
210 |
Ч-15 |
70 |
Луч |
Ч-17 |
100 |
100 |
Ч-17 |
80 |
Чайка |
Ч-15 |
50 |
150 |
Ч-15 |
70 |
Чайка |
Ч-20 |
100 |
80 |
Ч-20 |
85 |
Натуральное
соединение
по условию равенства атрибутов «Продукция»
в отношениях
и
дает корректные результаты:
|
||||
Завод |
Продукция |
План |
Факт |
Цена |
Луч |
Ч-15 |
200 |
210 |
70 |
Луч |
Ч-17 |
100 |
100 |
80 |
Чайка |
Ч-15 |
50 |
150 |
70 |
Чайка |
Ч-20 |
100 |
80 |
85 |
Пусть отношение
содержит информацию о студентах,
владеющих теми или иными языками
программирования:
|
|
Фамилия |
Язык программирования |
Горюшкин |
Си |
Горюшкин |
Java |
Горюшкин |
Паскаль |
Мальцев |
Си |
Мальцев |
Паскаль |
Пыленок |
Си |
Пыленок |
Java |
Селиверсткин |
VBA |
Селиверсткин |
Паскаль |
Для получения списка студентов, знающих одновременно языки программирования Си и Java, необходимо использовать операцию деления отношений, заключающуюся в нахождении образов для языков программирования Си и Java и в последующем пересечении этих образов:
;
;
.
Таким образом, одновременно знают языки программирования Си и Java только два студента: Горюшкин и Пыленок.
Следует отметить, что операция выборки для решения данной задачи неприменима, поскольку выборка выполняется только по какому-либо одному атрибуту при построчном анализе отношения.
