
- •Новосибирская государственная академия экономики и управления
- •«Базы данных»
- •Введение
- •Основные понятия реляционной модели данных Реляционные таблицы
- •Пустые значения
- •Внешние ключи
- •Категорная целостность
- •Целостность на уровне ссылок
- •Функциональные зависимости.
- •Нормализации отношений
- •Первая нормальная форма
- •Функциональные зависимости
- •Вторая нормальная форма
- •Третья нормальная форма
- •Знф влечет 2нф влечет 1нф.
- •Четвертая нормальная форма
- •Другие нормальные формы
- •3. Методика проектирования реляцтонной бд на основе декомпазиционного алгоритма
ГОСУДАРСТВЕННЫЙ КОМИТЕТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ПО ВЫСШЕМУ ОБРАЗОВАНИЮ
Новосибирская государственная академия экономики и управления
ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ДИСЦИПЛИНЕ
«Базы данных»
Лабораторная работа N 3
«Разработка схем реляционных баз данных»
НОВОСИБИРСК 2000
Введение
Системы управления базами данных (СУБД), поддерживающие реляционную модель данных в настоящее время нашли наибольшее распространение. Разработчики информационных систем постоянно сталкиваются с необходимостью проектирования реляционных баз данных.
Существует два подхода к разработке реляционных схем данных. Первый подход является более традиционным. В нем предполагается, что на этапе концептуального проектирования создается не концептуальная модель данных, а непосредственно реляционная схема базы данных, состоящая из определений реляционных таблиц. Проектирование собственно реляционной базы данных заключается в нормализации этих определений таблиц согласно стандартной процедуре.
Второй подход основан на концептуальной модели данных, создаваемой на этапе концептуального проектирования. Затем эта модель механически преобразуется в реляционную модель. Процесс преобразования автоматически гарантирует получение нормализованной реляционной модели.
До широкого распространения и признания концептуальных моделей традиционно использовался первый подход. Он все еще полезен в ситуациях, когда требуется достаточно простая схема базы данных. В таких случаях аналитик может решить, что проще вывести определения реляционных таблиц непосредственно из пользовательской информации, а затем нормализовать их. Второй подход с использованием концептуальных моделей имеет высокую ценность при проектировании больших, сложных схем баз данных, необходимых для корпоративных информационных систем.
Лабораторная работа предназначена для практического освоения методов проектирования реляционных баз данных на основе первого из выше указанных подходов.
Для выполнения лабораторной работы требуется знание основных понятий реляционной модели данных. Эти понятия рассматриваются в первой части методических указаний.
В результате выполнения лабораторной работы Вы освоите методы нормализации реляционных баз данных.
Основные понятия реляционной модели данных Реляционные таблицы
Реляционная модель данных организует и представляет данные в виде таблиц или реляций. Реляция — это термин, пришедший из математики и обозначающий простую двумерную таблицу, состоящую из строк и столбцов данных. Примеры реляций далее рассматриваются на основе базы данных, спроектированной для строительной компании Премьер, с которой мы уже встречались (лабораторная работа №2).
Реляционная модель данных. Модель данных, представляющая данные в виде таблиц.
Реляция. Двумерная таблица, содержащая строки и столбцы данных.
Рис. 1. Объектно-ориентированная модель строительной компании Премьер
На рис. 1 представлена модифицированная концептуальная модель данных, основа реляционной базы данных компании Премьер. Примечание. Далее будем пользоваться английскими обозначениями показателей, так как основная цель даталогического этапа проектирования не содержательные, а логические аспекты моделирования данных.
Эта модель данных содержит три объектных множества: WORKER (РАБОТНИК), BUILDING (ЗДАНИЕ) и SKILL (СПЕЦИАЛЬНОСТЬ), а также одно составное объектное множество — ASSIGNMENT (НАЗНАЧЕНИЕ).
Хотя объектное множество WORKER встречается в модели дважды, это одно и то же объектное множество. Таким образом, оба экземпляра множества WORKER имеют одни и те же атрибуты и участвуют в одних и тех же отношениях.
Составное объектное множество ASSIGNMENT создано из отношения IS-ASSIGNED-TO (НАЗНАЧЕН-НА) между объектами WORKER и BUILDING, Это значит, что каждое назначение — это пара, состоящая из работника и здания, обозначающая, что данный работник назначен работать на этом здании. Каждое такое назначение имеет два атрибута: START-DATE(ДАТА-НАЧАЛА), или день, в который работник должен приступить к работе на этом здании, и NUMBER-OF-DAYS (ЧИСЛО-ДНЕЙ), означающее предполагаемый срок, в течение которого он будет работать на этом здании. Таким образом, составной объект ASSIGNMENT обладает двумя атрибутами: START-DATE и NUMBER-OF-DAYS.
Кроме отношения IS-ASSIGNED-TO, модель содержит отношения HAS-SKILL (ИМЕЕТ-СПЕЦИАЛЬНОСТЬ) и SUPERVISES (КОНТРОЛИРУЕТ). Отношение HAS-SKILL ставит в соответствие работнику его специальность (штукатур, кровельщик, плотник и т.д.). К специальности относится описание, размер премиальных и количество часов в неделю, которые работник этой специальности должен отработать, чтобы получить премиальные. Поскольку работники подчиняются другим работникам, отношение SUPERVISES ставит в соответствие каждому работнику его менеджера из объектного множества WORKER.
Отношения, подобные отношению SUPERVISES, связывающие объектное множество с ним самим, называются рекурсивными.
Рекурсивное отношение. Отношение, связывающее объектное множество с ним самим.
При помощи процедуры, описанной далее, эту модель данных можно преобразовать в реляционную модель данных.
На рис.2 показана реляционная таблица с примерами значений данных, которая представляет объектное множество WORKER, его атрибуты и два из его отношений. Каждый столбец реляции — это атрибут реляции. Название столбца — имя атрибута. Мы используем термины атрибут и имя атрибута вместо столбца и названия столбца в соответствии с соглашениями, принятыми в реляционных базах данных. Имена атрибутов таблицы WORKER находятся в следующем соответствии с атрибутами и отношениями концептуальной модели:
Концептуальная модель
|
Реляционный атрибут
|
WORKER-ID (атрибут)
|
WORKER-ID
|
NAME (атрибут)
|
NAME
|
HOURLY-RATE (атрибут)
|
HOURLY-RATE
|
HAS-SKILL (отношение)
|
SKILL-TYPE
|
SUPERVISES (отношение)
|
SUPV-ID
|
Реляционный атрибут. Столбец реляционной таблицы.
Рис. 2. Часть реляционной таблицы WORKER
Реляционная база данных, эквивалентная всей концептуальной модели данных компании Премьер, вместе с образцами значений представлена на рис.3.
Количество атрибутов реляции называется степенью реляции. Степень реляции WORKER равна пяти. Поскольку пользователю не обязательно помнить порядок атрибутов реляции, этот порядок считается несущественным. Из этого следует, что никакие два атрибута реляции не могут иметь одинаковых имен.
Строки реляции также называются кортежами. Предполагается, что предопределенного порядка строк или кортежей не существует и, что никакие два кортежа не имеют одинаковый набор значений.
Общее обозначение для типа реляции, представленного на рис.2, таково:
WORKER {WORKER-ID, NAME, HOURLY-RATE, SKILL-TYPE, SUPV-ID}
Таким образом, после имени реляции в круглых скобках перечисляются ее атрибуты.
Набор всех возможных значений, которые могут принимать атрибуты, называется областью атрибута.
Две области атрибутов совпадают только в том случае, если они имеют один и тот же смысл. Так, атрибуты NAME и SKILL-TYPE имеют разные области, хотя значениями каждого из них являются строки символов. Два атрибута с одной и той же областью не обязательно имеют одно и то же имя. Например, SUPV-ID и WORKER-ID имеют одну и ту же область. В обоих случаях она состоит из номеров идентификаторов работников.
Рис 3. Примеры реляционных таблиц базы данных строительной компании