При проектировании реляционных баз данных важно уметь группировать атрибуты в различные отношения.
Рациональные варианты группировки должны отвечать требованиям:
1) Выбранные в отношении первичные ключи должны содержать минимальное число элементов.
2) Выбранный состав отношений базы должен обладать минимальной избыточностью атрибутов.
3) Должны выполняться без аномалий операции включения, удаления и модификации данных в базе.
4) Должна быть минимальная перестройка набора отношений при введении новых типов данных.
5) Разброс времени ответа на различные запросы к базе данных должен быть небольшим.
Рассмотрим на примере аномалии при выполнении операций включения, удаления и модификации данных при нерациональном проекте базы данных.
Поставки (название поставки, адрес поставщика для любого товара, товар, количество, цена)
1) Аномалия модификации заключается в том, что если у поставщика изменяется адрес, то необходимо заменить это данное во всех кортежах, где оно есть.
|
|
Если по каким-то причинам это данное изменено не во всех кортежах, база данных становится противоречивой, нарушается целостность данных.
2) Аномалия удаления возникает при попытке удаления всех кортежей, в которых поставщик не поставляет ни одного типа товара. В базе может быть потерян адрес и название поставщика, даже если с ним в дальнейшем может быть заключен договор на поставку.
3) Аномалия включения – возникает в случае, когда с поставщиком только что заключили договор, но еще нет поставки, нельзя включить в базу.
Чтобы исключить аномалии, выполняется нормализация исходных схем отношений проекта БД путем их декомпозиции и назначения ключей для каждого отношения по определенным правилам нормализации.
В отношении ключи возможные и первичные. Если некоторый атрибут Аi входит в состав первичного ключа, он называется первичным (остальные атрибуты – непервичные).
Исчисление отношений
В реляционном исчислении главным средством описания новых отношений исходной структуры является символическое обозначение вида А(х1.y1, x2.y2, …..)В. Оно означает отношение с именем А, полученное в результате проекции кортежей, удовлетворяющих булевскому выражению В, на домены х.у, где хi - имя отношения (исходной структуры), yi – имя домена из этого отношения. Различают квантор существования $ и квантор всеобщности ".
Двоеточие: – «такой, что»
Пример: выражение
А (К.ФИО, К.зарплата): К.цех = 3 зарплата __1500 задает таблицу (отношение) с именем А с двумя доменами из отношения К (кадры). Первый домен содержит фамилии, имена и отчества рабочих, второй – размер месячной заработной платы. В отношение А включаются только рабочие третьего цеха с размером зарплаты больше 1500 руб.
|
|
Вторая и третья нормальные формы.
Если в отношении какой-либо атрибут или группа атрибутов Х полностью определяют другой атрибут (или группу атрибутов) Y, то Y функционально зависит от Х. (" Х соответствует лишь одно значение Y). Атрибут (группа атрибутов) называется полно зависимыми от группы атрибутов Х, если Y функционально зависит только от всего множества Х, а не от какого-либо его собственного подмножества.
Атрибут или группа атрибутов, значение которых однозначно идентифицируют строку таблицы называется возможным ключом отношения.
Атрибут, входящий в состав какого-либо возможного ключа, называется основным (первичным).
Отношение задано во второй нормальной форме, если оно находится в первой нормальной форме и каждый атрибут, не являющийся основным, полно зависит от любого возможного (вообще говоря, составного) ключа в этом отношении.
Если любой такой ключ является простым ключом и Х не зависит функционально от Y или Y – от Z, имеет место неполная транзитивная зависимость Z от Х.
Преобразование 2НФ в третью форму (3НФ) состоит в расщеплении отношения R на два
a) СТАТ и ГОРОД не функционально полно зависят от первичного ключа
b) СТАТ и ГОРОД не являются взаимно независимыми.
Отношение ПЕРВОЕ содержит аномалии:
- включение (не можем включить поставщика, пока не поставляет детали. Нет поставщика n5 из Афин)
- удаление (с удалением кортежа о поставке удаляем информацию о поставщике)
- обновление (значение ГОРОД повторяется многократно).
Заменим отношение ПЕРВОЕ двумя отношениями: ВТОРОЕ и ПОСТАВКА
П # | СТАТ | ГОРОД |
n1 | Лондон | |
n2 | Париж | |
n3 | Париж | |
n4 | Лондон | |
n5 | Афины |
ВТОРОЕ
ПОСТАВКА
П # | Д# | КОЛ |
Отношение ВТОРОЕ и ПОСТАВКА находятся во второй нормальной форме (2НФ).
Отношение R находится во второй нормальной форме, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа. (Атрибут называется неключевым, если он не является составной частью первичного ключа).
Преобразования из 1НФ во 2НФ состоит в замене отношения соответствующими проекциями.
ВТОРОЕ = П1,2, 3 (ПЕРВОЕ)
ПОСАВКА = П1,4,5(ПЕРВОЕ)
ПЕРВОЕ = ВТОРОЕ > < ПОСТАВКА
1=1
Отношение в 1НФ, которое не находится во 2НФ, должно иметь составной первичный ключ. В отношении ВТОРОЕ отсутствует взаимная независимость между неключевыми атрибутами.
П# ®ГОРОД ГОРОД®СТАТ
Зависимость СТАТ от П# является транзитивной.
П# ®ГОРОД ГОРОД ®СТАТ
Заменим отношение ВТОРОЕ двумя проекциями
ПГ | П# | ГОРОД | ГС | ГОРОД | СТАТ |
n1 | Лондон | Афины | |||
n2 | Париж | Лондон | |||
n3 | Париж | Париж | |||
n4 | Лондон | ||||
n5 | Афины |
Устраняется транзитивная зависимость.
Оба отношения находятся в 3НФ.
26. ЯЗЫК ЗАПРОСОВ SQL
В конце 80-х годов произошел стремительный взлет популярности СУБД одного конкретного типа — системы управления реляционными базами данных. С тех пор реляционная база данных (РБД) стала единственным стандартным типом базы данных. Данные в РБД хранятся в простой табличной форме, что дает реляционным базам данных много преимуществ по сравнению с базами данных более ранних разработок. SQL представляет собой язык именно реляционных баз данных
Краткая история SQL
История SQL тесно связана с развитием реляционных баз данных. Понятие реляционной базы данных было введено доктором Э. Ф. Коддом, научным сотрудником компании IBM. В июне 1970 года доктор Кодд опубликовал статью под названием "Реляционная модель для больших банков совместно используемых данных'' (“A Relational Model of Data for Large Shared Data Banks"), в которой в общих чертах была изложена математическая теория хранения данных в табличной форме и их обработки. Реляционные базы данных и SQL ведут свое начало от этой статьи, появившейся в журнале " Communications of the Association for Computing Mashinery”.
|
|