Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD.doc
Скачиваний:
14
Добавлен:
27.09.2019
Размер:
411.14 Кб
Скачать

7.Связывание таблиц. Типы связей.

В частном случае БД может состоять из одной таблице. Реляционная БД состоит из набора взаимосвязанных таблиц. Организация связи между таблицами, называют связыванием или соединением таблицы. Связи между таблицами можно устанавливать как при создании БД, так и при выполнении приложения, используя средства, предоставленные СУБД. Связывать можно две или несколько таблиц. В реляционной БД кроме связанных таблиц могут быть отдельные таблицы, не соединенные ни с одной другой таблицей. Для связывания таблиц исп-ют поля связи. Поля связи обязательно должен быть индексированными. В главной таблице задается первичный ключ. В подчиненной таблице для связи с главной таблицей задается индекс, который также наз-ся внешним ключом. Состав полей этого индекса должен полностью или частично совпадать с составом полей индексов главной таблицы. Особенности использования индексов зависят от форматов связываемых таблиц. Связи между таблицами определяет отношение подчиненности. При котором одна таблица яв-ся главной (родительской), вторая подчиненная (дочерняя). Существует три типа связей между таблицами. Тип создаваемой связи зависит от того, как определены связанные столбцы. Связь "один ко многим" — самая распространенная. В этом типе связей у строки таблицы А может быть несколько совпадающих строк таблицы Б, но каждой строке таблицы Б может соответствовать только одна строка из А. Например, каждый издатель выпускает множество изданий, но конкретное издание выпускается только одним издателем. Используйте связь "один ко многим" в том случае, если только у одного из связанных столбцов есть ограничение первичного ключа или уникальности.

Столбец, являющийся первичным ключом в связи "один ко многим", отмечается символом ключа. Столбец, являющийся внешним ключом в связи "один ко многим", отмечается символом бесконечности. В связи "многие ко многим" строке таблицы А может сопоставляться несколько строк таблицы Б, и наоборот. Такие связи создаются путем определения третьей таблицы, которая называется таблицей соединения, первичный ключ которой состоит из внешних ключей А и Б

В связи "один к одному" строке таблицы А может сопоставляться только одна строка таблицы Б и наоборот. Связь "один к одному" создается, если для обоих связанных ключей определены ограничения первичного ключа или уникальности. Этот тип связи обычно не используется, так как большую часть связанных таким образом данных можно хранить в одной таблице. Связь "один к одному" можно использовать для следующих целей: -Разделение таблицы со многими столбцами. -Изоляция части таблицы из соображений безопасности. -Хранение кратковременных данных, которые можно легко удалить вместе со всей таблицей. -Хранения данных, которые относятся только к части основной таблицы. -Столбец, являющийся первичным ключом в связи "один к одному", отмечается символом ключа. Столбец, являющийся внешним ключом, также отмечается символом ключа.

8.Нормализация бд(1nf,2nf,3nf)

Нормализация- это формальный процесс, разбиение таблицы на несколько таблиц с целью уменьшения избыточности информации.

1NF - Объект базы данных находится в первой нормальной форме тогда, когда каждый ее атрибут атомарен. Атрибут атомарен тогда, когда его значение теряет смысл при перестановке любой его частей или при любом разбиении его на части. Если по простому, то данное правило говорит: одно поле - одно значение. Например, 1. Если у нескольких товаров одинаковая цена, то для каждого товара должна быть отдельная запись.2. Если у одного товара несколько складов, то для такого случая аналогично должна быть каждая запись. С одним складом и с другим.

2NF - Объект базы данных находится во второй нормальной форме тогда, когда он находится в первой нормальной форме и при этом любой его атрибут, не входящий в состав потенциального ключа, функционально полно зависит от каждого потенциального ключа. Это правило говорит об отделении функционально полных зависимостей на отдельные структуры.

Вот пример таблицы, находящийся во второй нормальной форме:

1. Таким образом, в таблице для каждого товара мы пишем не названия склада, а указываем его первичный ключ именуемый как ID. А сами названия складов выносим в отдельную таблицу.

2. Исходя из пункта №1 можно сделать вывод, что наличие первичного ключа, у всех таблиц обязательно.

3NF - Объект базы данных находится в третьей нормальной форме тогда, когда он находится во второй нормальной форме и отсутствуют транзитивные зависимости не ключевых объектов от ключевых. Транзитивная зависимость - это очевидная зависимость между полями. Итак, предположим, что в таблице "Склады" добавилась информация об их адресах (добавлены столбцы "Город" и "Почтовый индекс"):

В данном примере есть транзитивная зависимость, а именно это поля "Город" и "Индекс". Если индекс равен 630423, то мы уже знаем, что это явно Новосибирск и никак иначе, других городов с таким индексом нет. Вот это и есть транзитивная зависимость от которой необходимо избавляться, путем разбиения ее на отдельные таблицы. В конечном итоге, наша таблица складов разбилась на 2 таблицы и полностью отвечает правилам третьей нормальной формы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]