Базы данных, Лабораторная работа

advertisement
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО
ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ
ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ РАДИОТЕХНИКИ ЭЛЕКТРОНИКИ И
АВТОМАТИКИ
Лабораторная работа №2
Программная реализация РМД в СУБД Access
Выполнил:
Группа:
Москва, 2012 г.
Кулаков Д. А.
ВСС-1-09
Факультет:
ИТ
Проверил:
Храмцова Е. П.
Содержание
ЦЕЛЬ РАБОТЫ
3
ПОСТАНОВКА ЗАДАЧИ
4
ХОД РАБОТЫ
5
ОТВЕТЫ НА ВОПРОСЫ
8
ВЫВОД
20
СПИСОК ЛИТЕРАТУРЫ
21
2
Цель работы
Факультет:
Кафедра:
Студент:
Группа:
Шифр:
Вариант:
ИТ
ВТ
Кулаков Д. А.
ВСС-1-09
091053
6
Цель работы:
— Изучить правила преобразования модели «сущность-связь»
предметной области в РМД;
— Изучить типы и свойства данных Access;
— Освоить процесс программной реализации РМД.
3
Постановка задачи
Заданы две сущности предметной области «Монарх» и «Монархия» с
видами связей 1:1, 1:* (*:1), *:* и классами принадлежностей объектов
сущностей к связям, сведённые в таблице 1.
Таблица 1. Виды связей, соотнесённые с классами принадлежности.
1:1
Н-Н
Вид связи
1:*
Класс принадлежности
О-О
*:*
О-Н
Требуется:
1. Создать проект базы данных (Lab2_1), реализующий 1-ую модель
предметной области: вид связи двух сущностей 1:1, класс
принадлежности «Н-Н». Таблицы проекта должны содержать имя,
тип, описание и свойства атрибутов;
2. Создать проект базы данных (Lab2_2), реализующий 2-ую модель –
то же, что и в пункте 1, но для связи 1:* (*:1). Класс принадлежности
«О-О»;
3. Создать проект базы данных (Lab2_3), реализующий 3-ю модель – то
же, что и в пункте 1, но для связи *:*. Класс принадлежности «О-Н»;
4. Сформировать таблицы данных по одному (любому) проекту;
5. Оформить отчёт. Отчёт должен содержать какую либо модель
сущностей предметной области, таблицы проекта БД (пункт 1, 2 или
3) и данных (пункт 4) этой модели, а также ответы на 14 вопросов.
4
Ход работы
Все графические изображения, для удобства, представим в виде графов.
Модель сущностей с видом связи 1:*
Монарх
Н
1:1
Н Монархия
Управляет
Рисунок 1.
Таблицы проекта №2 (1:1, Н-Н)
Таблица 2. Монарх.
Имя поля
Тип
Размер
НМ
Имя
Коронация
Счётчик
4 байта
Текстовый 255 байт
Дата/время 8 байт
Обязательное
поле
Да
Да
Нет
Индексированное
поле
Да
Нет
Нет
Таблица 3. Монархия.
Имя поля
Тип
Размер
НС
Название
Континент
Число
жителей
Язык
Счётчик
Текстовый
Текстовый
Числовой
4 байта
255 байт
255 байт
4 байта
Текстовый
255 байт
Уровень
Числовой
рождаемости
Уровень
Числовой
смертности
Усл.
Маска
Сообщена
ввода
ние
знач.
>0
Основной,
если их
несколько
Индексированное
поле
Да
Нет
Нет
Нет
Нет
4 байт
>0
Нет
4 байт
>0
Нет
5
Таблица 4. Связующее отношение.
Имя поля
Тип
Размер
НМ
НС
Счётчик
Счётчик
4 байта
4 байта
Обязательное
поле
Да
Да
Индексированное
поле
Да
Да
Таблицы данных
Таблица 5. Монарх.
Таблица 6. Монархия.
После создания таблиц, выведем все данные специальным запросом:
SELECT T.НМ, T.Имя, T.Коронация, T.НС, T.Название, T.Континент,
T.[Число жителей], T.Язык, T.[Уровень рождаемости], T.[Уровень смертности]
FROM (SELECT Монарх.*, Монархия.*, IIF(Монархия.НС is null, 0, 1) as Ord
FROM (Монархия
RIGHT JOIN Управляет on Монархия.НС = Управляет.НС)
RIGHT JOIN Монарх on Монарх.НМ = Управляет.НМ
UNION
SELECT Монарх.*, Монархия.*, 1 AS Ord
FROM (Монарх
RIGHT JOIN Управляет on Монарх.НМ = Управляет.НМ)
RIGHT JOIN Монархия on Монархия.НС = Управляет.НС) AS T
ORDER BY T.Ord DESC , T.НС;
6
Таблица 7. Вывод запроса, указанного выше.
Создадим на основе этого запроса отчёт.
Рисунок 2. Отчёт, построенный по запросу выше.
7
Ответы на вопросы
1. Сформулируйте правило формирования отношения для
вида связей двух сущностей 1:1 с классами
принадлежностей их объектов к ней О-О (обязательныйобязательный).
Если степень бинарной связи 1:1 и класс принадлежности обеих
сущностей обязательный, то формируется одно отношение. Первичным
ключом этого отношения может быть ключ любой из двух сущностей1.
C1 O
1
1
K1, ...
O C2
R1
K2, ...
K1vK2
Рисунок 3. Диаграмма отношений 1:1, О-О.
2. При реализации какого вида связи и классов
принадлежностей к ней объектов двух сущностей
отсутствует вторичный ключ?
Только при реализации вида связей двух сущностей 1:1 с классами
принадлежностей их объектов к ней О-О (обязательный-обязательный). В
остальных случаях вторичный ключ используется либо в одной из сущностей,
либо в специальной таблице связей.
3. Как осуществляется формирование отношений для вида
связи двух сущностей 1:1 и классов принадлежностей их
объектов к ней О-Н (обязательный-необязательный)?
Приведите пример.
Если степень бинарной связи 1:1 и класс принадлежности (КП) одной и
только одной сущности обязательный, то под каждую из сущностей
формируется по отношению с первичными ключами, являющимися ключами
соответствующих сущностей. Далее к отношению, сущность которого имеет
1
Базы данных: Учебник для вузов / А. Д. Хомоненко, В. М. Цыганков, М. Г. Мальцев; Под ред. А. Д.
Хомоненко. — СПб.: КОРОНА принт, 2006. — С. 172-173.
8
обязательный КП, добавляется в качестве атрибута ключ сущности с
необязательным КП2.
C1 O
1
1
H C2
R1
R2
K2, ...
K1, K2, ...
K2, ...
K1, ...
Рисунок 4.
Приведём пример. В королевстве Ало (Туа) престол вакантный с 2010
года. Отразим это в наших сущностях.
Таблица 8. Начальная таблица.
Сущность «Монарх»
НомерМонарха
Имя
(НМ)
М1
Альберт II
М2
Хуан Карлос I
М3
Анри
Коронация
1993-08-09
1975-11-22
1955-04-16
Сущность «Монархия»
НомерСтраны
Название
(НС)
С1
Бельгия
С2
Испания
С3
Ало
С4
Люксембург
Далее мы воспользовались алгоритмом и разбили сущность на две.
Таблица 9. Отношения, полученные по алгоритму.
Монарх (НМ, Имя, Коронация, НС)
НМ Имя
Коронация
М1 Альберт II
1993-08-09
М2 Хуан Карлос I 1975-11-22
М3 Анри
1955-04-16
НС
С1
С2
С4
Монархия (НС, Название)
НС
Название
С1
Бельгия
С2
Испания
С3
Ало
С4
Люксембург
Таким образом, мы избежали пустых полей в отношениях, не потеряв
данных. Добавив внешний ключ НС в первую таблицу с обязательным
классом принадлежности, мы связали отношения «Монарх» и «Монархия».
2
Там же. – С. 174-175.
9
4. Сформулируйте правило формирования отношений, если
вид связи двух сущностей 1:1 и классы принадлежностей к
ней Н-Н.
Если степень связи 1:1 и класс принадлежности обеих сущностей
является необязательным, то необходимо использовать три отношения. Два
отношения соответствуют связываемым сущностям, ключи которых являются
первичными в этих отношениях. Третье отношение является связным между
первыми двумя, поэтому его ключ объединяет ключевые атрибуты
связываемых отношений3.
C1 Н
1
1
K1, ...
H C2
R1
R2
K2, ...
K1, ...
K2, ...
R1
K1,K2
Рисунок 5.
Таблица 10. Пример.
СУЩНОСТЬ «МОНАРХ»
НОМЕРМОНАРХА
ИМЯ
(НМ)
M1
АЛЬБЕРТ II
M2
ХУАН КАРЛОС I
М3
АНРИ
M4
ГЕОРГ VI
КОРОНАЦИЯ
1993-08-09
1975-11-22
1955-04-16
1937-05-12
СУЩНОСТЬ «МОНАРХИЯ»
НОМЕРСТРАНЫ
НАЗВАНИЕ
(НС)
С1
БЕЛЬГИЯ
С2
ИСПАНИЯ
С3
АЛО
С4
ЛЮКСЕМБУРГ
-
5. Как осуществляется формирование отношений для вида
связи двух сущностей 1:* (*:1) и обязательного класса
принадлежности к ней объектов *-связной (многосвязной)
сущности?
Если степень связи между сущностями 1:М (или М:1) и класс
принадлежности М-связной сущности обязательный, то достаточно
формирование двух отношений, по одному на каждую из сущностей. При
3
Базы данных / А. Д. Хомоненко — С. 175.
10
этом первичными ключами этих отношений являются ключи их сущностей.
Кроме того, ключ 1-связной сущности добавляется как атрибут (внешний
ключ) в отношение, соответствующее М-связной сущности4.
C2 H
K2, ...
1
M
O C1
R2
R1
K1, ...
K2, ...
K1, K2, ...
Рисунок 6.
6. Какое влияние оказывает на формирование отношений для
вида связи двух сущностей 1:* (*:1) значение класса
принадлежности к ней объектов 1-связной (односвязной)
сущности?
Никакого. Формирование отношений зависит только от многосвязной
сущности.
7. Приведите пример и сформулируйте правило
формирования отношений для вида связи двух сущностей
1:* (*:1) и необязательного класса принадлежности к ней
объектов многосвязной сущности.
Если степень связи 1:М (М:1) и класс принадлежности М-связной
сущности является необязательным, то необходимо формирование трёх
отношений. Два отношения соответствуют связываемым сущностям, ключи
которых являются первичными в этих отношениях. Третье отношение
является связным между первыми двумя (его ключ объединяет ключевые
атрибуты связываемых отношений)5.
4
5
Там же. — С. 178.
Базы данных / А. Д. Хомоненко — С. 179-180.
11
C1 Н
M
1
K1, ...
O C2
R1
R2
K2, ...
K1, ...
K2, ...
R1_R2
K1,K2
Рисунок 7.
Приведём пример. Королева Великобритании правит не только этой
страной, но и несколькими доминионами. Предшественником Елизаветы II
был король Георг VI. Отразим это в наших сущностях.
Таблица 11.
Сущность «Монарх»
НомерМонарха
Имя
(НМ)
М1
Альберт II
М2
Хуан Карлос
I
M3
Елизавета II
M3
Елизавета II
M3
Елизавета II
M3
Елизавета II
M4
Георг VI
М5
Анри
Коронация
1993-08-09
1975-11-22
1953-06-02
1953-06-02
1953-06-02
1953-06-02
1937-05-12
1955-04-16
Сущность «Монархия»
НомерСтраны
Название
(НС)
С1
Бельгия
С2
Испания
C3
C4
C5
C6
С7
Гернси
Джерси
Остров Мэн
Канада
Люксембург
Далее мы воспользовались алгоритмом и разбили сущность на две.
Таблица 12.
Монарх (НМ, Имя, Коронация)
НМ Имя
Коронация
М1
Альберт II
1993-08-09
М2
Хуан Карлос I 1975-11-22
М3
Елизавета II
1953-06-02
M4
Георг VI
1937-05-12
M5
Анри
1955-04-16
Управляет (НМ, НС)
НМ
НС
М1
С1
Монархия (НС, Название)
НС
Название
С1
Бельгия
С2
Испания
С3
Гернси
C4
Джерси
C5
Остров Мэн
С6
Канада
C7
Люксембург
12
М2
М3
М3
М3
М3
М5
С2
С3
С4
С5
С6
С7
Таким образом, мы избежали пустых полей в отношениях, не потеряв
данных. Добавив таблицу связей, мы связали отношения «Монарх» и
«Монархия».
8. Сформулируйте правило и приведите пример
формирования отношений для вида связи двух сущностей
*:*. Влияют ли на правило формирования отношений
значения классов принадлежностей к этому виду связи
объектов *-связных сущностей?
При наличии связи М:М между двумя сущностями необходимо три
отношения независимо от класса принадлежности любой из сущностей.
Использование одного или двух отношений в этом случае не избавляет от
пустых полей или избыточно дублируемых данных.
Два отношения соответствуют связываемым сущностям и их ключи
являются первичными ключами этих отношений. Третье отношение является
связным между первыми двумя, а его ключ объединяет ключевые атрибуты
связываемых отношений.
H M
O
K1, ...
C1
M H
C2
O
K2, ...
R1
R2
K1, ...
K2, ...
R1_R2
K1, K2
Рисунок 8.
На примере сепуления ардритами в Сепулькариях выясним, как
работает данное разбиение. Для начала, создадим таблицу со степенью
связи М:М, класс принадлежности для сущности «Ардрит» будет
обязательным, а для сущности «Сепулькарий» – необязательным.
13
Таблица 13.
Сущность «Ардрит»
НомерАрдрита
Сепулька
(НА)
М1
Ромул
М2
Вии
M3
Бикиет
M4
Кирион
M5
Заарна
M6
Долора
М7
Джоя
М1
Ромул
Сигнал
Соль
До
Си
Ля
Фа
Ми
Ре
Соль
Сущность «Сепулькарий»
НомерСепулькария
Название
(НС)
С1
Марафон
С2
Фермопилы
C3
Медиолан
C3
Медиолан
C4
Вестфаль
C5
Татуин
С2
Фермопилы
Разобьём таблицу на три, в соответствии с алгоритмом.
Таблица 14.
Ардрит (НА, Сепулька, Сигнал)
НА
Сепулька
Сигнал
М1
Ромул
Соль
М2
Вии
До
М3
Бикиет
Сии
М4
Кирион
Ля
М5
Заарна
Фаа
М6
Долора
Ми
М7
Джоя
Рее
Сепулькарий (НС, Название)
НС
Название
С1
Марафон
С2
Фермопилы
С3
Медиолан
С4
Вестфаль
С5
Татуин
Сепуление в (НА, НС)
НА
НС
М1
С1
М1
С2
М2
С2
М3
С3
М4
С3
М5
С4
М6
С5
Таким образом, мы избавились от пустых полей и дубликатов данных,
оставив при этом связь М:М с необязательным классом принадлежности
сущности «Сепулькарий» и обязательным для сущности «Ардрит».
14
9. Какие сочетания видов связей двух сущностей и классов
принадлежностей к ним требуют формирования трёх
таблиц?
Формирования трёх отношений требуют следующие сочетания связей
двух сущностей и классов принадлежности:
Если степень связи 1:1 и класс принадлежности обеих сущностей
является необязательным (рис. 8).
C1 H
1
1
K1, ...
H C2
R1
R2
K2, ...
K1, ...
K2, ...
R1_R2
K1, K2
Рисунок 9.
Если степень связи 1:М (М:1) и класс принадлежности М-связной
сущности является необязательным, то необходимо формирование трёх
отношений (рис. 9).
C1 H
K1, ...
M
1
O C2
R1
R2
K2, ...
K1, ...
K2, ...
R1_R2
K1, K2
Рисунок 10.
Если степень связи М:М, то независимо от класса принадлежности
сущностей формируются три отношения (рис. 10)6.
6
Базы данных / А. Д. Хомоненко — С. 175-181.
15
H M
O
K1, ...
C1
M H
C2
O
K2, ...
R1
R2
K1, ...
K2, ...
R1_R2
K1, K2
Рисунок 11.
Два отношения соответствуют связываемым сущностям, ключи которых
являются первичными в этих отношениях. Третье отношение является
связным между первыми двумя, поэтому его ключ объединяет ключевые
атрибуты связываемых отношений.
10.
Приведите синонимы следующих понятий РМД:
таблица, её строка и столбец, поле таблицы, её заголовок
и содержимое.
Таблица
отношение
Строка таблицы
кортеж
Столбец таблицы
атрибут
Поле таблицы
домен
Заголовок таблицы
схема отношения
Содержание таблицы отношение
11.
Каким условиям должна удовлетворять таблица,
являющаяся отношением? Может ли какая-либо пара
записей таблицы данных иметь одинаковые значения
первичных и вторичных ключей?
1.
2.
3.
4.
Каждая строка в таблице уникальна;
Имена столбцов различны;
Значения столбцов – простые;
Порядок строк – произвольный.
16
Никакая пара записей таблицы не может иметь одинаковый первичный
ключ. Для вторичных ключей совпадение значений допускается.
12.
Какие типы данных поддерживает Access? Сколько
байт занимает данное каждого типа?
Таблица 15. Типы данных. В скобках указан формат поля.
Название типа
Текстовый
Поле MEMO
Числовой
Дата/время
Денежный
Счётчик
Логический
Поле объекта OLE
Гиперссылка
Вложение
Назначение
Текст длиной до 255 символов (1 байт)
Текст длиной до 65 000 символов (1 байт)
Числа различных форматов (1, 2, 4, 8 или 16 байт)
Дата и/или время
(8-байтовые целые числа с двойной точностью)
Денежные значения различных форматов
(8-байтовые числа с точностью до четырёх знаков)
Счётчик, который автоматически увеличивается на
единицу с добавлением каждой новой записи (4 байта)
Используется -1 для всех значений «Да» и 0 для всех
значений «Нет» (1 бит)
Поля, позволяющие вставлять рисунки, звуки и данные
других типов (до 2 ГБ)
Ссылки, дающие возможность открывать объект Access
(таблицу, форму, запрос и т. п.), файл другого
приложения или web-страницу (до 1 ГБ)
Новая функциональная возможность ACCDB-файлов
Office Access 2007. В записи базы данных можно
вкладывать изображения, файлы электронных таблиц,
документы, диаграммы и другие файлы
поддерживаемых типов точно так же, как в сообщения
электронной почты. Можно также просматривать и
редактировать вложенные файлы в зависимости от
параметров, заданных разработчиком базы данных
для поля с типом данных «Вложение». Эти поля дают
большую свободу действий, чем поля с типом данных
«Поле объекта OLE», и более рационально используют
место для хранения, поскольку не создают растровые
изображения исходного файла.
17
Таблица 16. Формат полей числового типа.
Значение
Байт
Целое
Длинное
целое
(default)
С плавающей
точкой,
одинарное
С плавающей
точкой,
двойное
Код
репликации
Описание
Числа от 0 до 255
(без дробной части)
Числа от -32768 до 32767
(без дробной части)
От –2147483648 до 2147483647
(без дробной части)
Дробная часть
Отсутствует
Размер
1 байт
Отсутствует
2 байта
Отсутствует
4 байта
От –3.402823E-38 до 3.402823E38 7
4 байта
От -1.79769313486232E-308
до 1.79769313486232E308
15
8 байт
Уникальный глобальный
идентификатор (GUID)
Не определено
16 байт
13.
Для чего предназначено свойство индексированное
поле? Как оно задаётся для первичного и вторичного
составных ключей?
Под индексом понимают средство ускорения операции поиска записей
в таблице, а следовательно, и других операций, использующих поиск. Индекс
играет роль оглавления таблицы, просмотр которого предшествует
обращению к записям таблицы7.
Свойство «Индексированное поле» определяет индекс по одному полю.
Допустимы следующие значения свойства «Индексированное поле»:
Таблица 17. Индексированное поле.
Значение
Описание
Нет
Не создаёт индекс по данному полю.
Используется по умолчанию
Да (допускаются
совпадения)
7
Создаёт индекс по данному полю
Базы данных / А. Д. Хомоненко — С. 49.
18
Да (совпадения не
допускаются)
Создаёт уникальный индекс по данному полю
Индексированное поле может содержать как уникальные, так и
повторяющиеся значения. Пользователь может создать сколько угодно
индексов. Индексы создаются при сохранении макета таблицы и
автоматически обновляются при вводе и изменении записей. Пользователь
может в любое время добавить новые или удалить ненужные индексы в
окне конструктора таблиц. Если ключ таблицы состоит из одного поля, то MS
Access автоматически устанавливает значение «Да (Совпадения не
допускаются)» свойства «Индексированное поле» для данного поля.
Индексы замедляют изменение, ввод и удаление данных, поэтому не
рекомендуется создавать избыточные индексы.

МЕМО, логические и OLE-поля не могут быть индексированными.
Составной индекс создаётся в специальном диалоговом окне. Чтобы
создать составной индекс, необходимо:
1. Открыть таблицу в режиме «Конструктор».
2. На панели инструментов «Конструктор таблиц» нажать кнопку
«Индексы»
3. В первой пустой строке поля «Индекс» ввести имя индекса.
4. В поле «Имя поля» нажать на стрелку и выбрать первое поле, для
которого необходимо создать индекс.
5. В следующей строке поля «Имя поля» указать второе индексируемое
поле. Для данной строки поле «Индекс» должно оставаться пустым.
6. Повторить эту операцию для всех полей, которые необходимо
включить в индекс. В индексе может быть использовано до 10 полей.
14.
Может ли первичный и вторичный (внешний) ключи
таблицы проекта иметь свойство необязательное поле?
Первичный ключ не может иметь свойство «необязательное поле». В
случае с внешними ключами данное свойство допустимо. При этом
первичный ключ, на который ссылается внешний ключ, должен иметь
свойство «обязательное поле».
19
Вывод
Вторая лабораторная работа позволила нам изучить правила
преобразования модели «сущность связь» предметной области в РМД, а
также изучить типы и свойства данных в Access. Благодаря списку вопросов,
мы проработали на живых, интересных примерах основные понятия,
введённые на лекциях, применительно к важным структурам сущностей баз
данных, что позволило лучше понять программную реализацию идеологии
РМД.
20
Список литературы
1. Базы данных: методические указания по выполнению
лабораторных работ / Е. П. Храмцова; Под ред. М. И. Антик —
МИРЭА, 2003. — 32 с.;
2. Введение в системы баз данных: Пер. с англ. / Дейт К. Дж. — М.:
Вильямс, 2006. — 1328 с.: ил. — Библиогр.: в конце гл. — ISBN 58459-0788-8;
3. Базы данных: Учебник для вузов / А. Д. Хомоненко, В. М.
Цыганков, М. Г. Мальцев; Под ред. А. Д. Хомоненко. — СПб.:
КОРОНА принт, 2006. — 736 с.: ил. — Библиогр.: в конце гл. — ISBN
5-7931-0346-5.
21
Download