
- •Новосибирская государственная академия экономики и управления
- •«Базы данных»
- •Введение
- •Основные понятия реляционной модели данных Реляционные таблицы
- •Пустые значения
- •Внешние ключи
- •Категорная целостность
- •Целостность на уровне ссылок
- •Функциональные зависимости.
- •Нормализации отношений
- •Первая нормальная форма
- •Функциональные зависимости
- •Вторая нормальная форма
- •Третья нормальная форма
- •Знф влечет 2нф влечет 1нф.
- •Четвертая нормальная форма
- •Другие нормальные формы
- •3. Методика проектирования реляцтонной бд на основе декомпозиционного алгоритма
Внешние ключи
В представленной выше схеме базы данных иногда одни и те же имена атрибутов используются в разных таблицах. Например, атрибут SKILL-TYPE в таблицах WORKER и SKILL (СПЕЦИАЛЬНОСТЬ) или атрибут BLDG-ID в таблицах ASSIGNMENT и BUILDING. Оба эти атрибута иллюстрируют понятие внешнего ключа.
Внешний ключ — это набор атрибутов одной таблицы, являющийся ключом другой (или той же самой) таблицы. SKILL-TYPE таблицы WORKER и BLDG-ID таблицы ASSIGNMENT являются примерами внешних ключей, так как SKILL-TYPE является ключом таблицы SKILL, a BLDG-ID _ ключом таблицы BUILDING. Внешние ключи обеспечивают важные связи между таблицами. Они используются для того чтобы связать данные из одной таблицы с данными в другой таблице. Так, SKILL-TYPE связывает таблицу WORKER с таблицей SKILL, a WORKER-ID и BLDG-ID таблицы ASSIGNMENT показывают связь между таблицами WORKER и BUILDING.
Атрибуты внешнего ключа не обязательно должны иметь те же имена, что и атрибуты ключа, которым они соответствуют. Например, WORKER-ID и SUPV-ID таблицы WORKER имеют разные имена, но оба они принимают значения из области идентификационных номеров работников. Таким образом, SUPV-ID является внешним ключом реляционной таблицы WORKER, ссылающимся на ключ своей собственной таблицы. Для каждого работника атрибут SUPV-ID определяет менеджера работника, который, в свою очередь, является работником. Следовательно, атрибут SUPV-ID должен содержать значение, которое является значением ключа некоторого другого кортежа таблицы WORKER. Например, на рис. 3 менеджером работника 1235 является работник 1311. Другими словами, М.Фарадей контролирует работу Х.Колумба. SUPV-ID является примером рекурсивного внешнего ключа, то есть внешнего ключа, ссылающегося на свою собственную реляционную таблицу.
Рекурсивный внешний ключ. Внешний ключ, ссылающийся на свою собственную реляционную таблицу.
Поскольку информация о внешних ключах является жизненно важной при определении реляционной схемы базы данных, мы пересмотрим ранее определенную схему, отразив определения внешних ключей:
WORKER {WORKER-ID, NAME, HOURLY-RATE, SKILL-TYPE, SUPV-ID}
Внешние ключи: SKILL-TYPE ссылается на SKILL, SUPV-ID ссылается на WORKER
ASSIGNMENT {WORKER-ID, BLDG-ID, START-DATE, NUMBER-OF-DAYS} Внешние ключи: WORKER-ID ссылается на WORKER, BLDG-ID ссылается на BUILDING
BUILDING {BLDG-ID, ADDRESS, TYPE, QLTY-LEVEL, STATUS)
SKILL {SKILL-TYPE, BONUS-RATE, HOURS-PER-WEEK}
Обратите внимание, что внешние ключи таблицы определяются немедленно после имени таблицы, атрибутов и ключей. Выражение «Внешние включи: SKILL-TYPE ссылается на SKIL» - это определение внешнего ключа реляционной таблицы WORKER. Оно отражает тот факт, что атрибут SKILL-TYPE таблицы WORKER является внешним ключом, который ссылается на ключевой атрибут SKILL-TYPE таблицы SKILL.
Подобный список, в котором даются имена реляционных таблиц с перечислением их атрибутов (ключи подчеркнуты) и определений внешних ключей, называется реляционной схемой базы данных. Она является предварительным итогом создания этапа жизненного цикла реляционной базы данных. Кроме того, она соответствует концептуальному уровню модели ANSI/SPARC.
Реляционная схема базы данных. Список, содержащий имена реляционных таблиц, имена атрибутов, ключевые атрибуты и внешние ключи.
Ограничительные условия, поддерживающие целостность
Ограничительное условие — это правило, определяющее возможные значения в базе данных. В реляционной модели Кодда есть несколько ограничительных условий, используемых для проверки данных в базе данных, а также для придания данным осмысленной структуры. Далее рассмотрим следующие ограничения: