Введение в курс "Базы данных" - Связи между таблицами

E-mail Печать PDF
Рейтинг пользователей: / 9
ХудшийЛучший 
Индекс материала
Введение в курс "Базы данных"
Классификация БД по их использованию
Реляционные БД (MS Access)
Ключи
Связи между таблицами
Неформальные методы приведения таблиц к третьей нормальной форме
Операции в БД (VBA)
Операции над записями
SQL
Оператор Select
DISTINCT
FROM
Группировка
Объединение таблиц
Параметры
Перекрёстные запросы
Обновление данных
Удаление данных
Подчинённые запросы
Создание таблиц
Добавление новых полей
Tехнология разработки программного обеспечения, использующего базы данных
Доступ к данным в VB 6.0
Работа с записями
Отчёты в VB6
Доступ к данным в C++ Builder
Отчёты в C++ Builder
Создание многоуровневых приложений
Доступ к данным в C# (Visual Studio 2005)
Создание отчётов
OLAP технологии. XML язык
SQL Server
Триггер
Программирование триггера
XML
Все страницы

Связи между таблицами

Связи между таблицами бывают 3 типов:

1.      Связь "один к одному", когда каждой записи в первой таблице соответствует 1 запись во второй таблице.

2.      Связь "Один ко многим", когда одной записи в одной таблице соответствует множество записей во второй таблице.

3.     

1

 

1

 

 

 

 

 
Связь "Многие ко многим", когда одной записи из первой таблицы соответствует множество записей из второй таблицы, и одной записи из второй таблицы соответствует множество записей из первой таблицы. Такие связи в реляционных БД НЕДОПУСТИМЫ. Они преобразуются в две связи один-ко-многим через внедрение вспомогательной таблицы.

Поддержка целостности данных

Поддержка целостности данных предназначена для исключения ошибок при вводе данных и их редактировании, а также при удалении ненужных записей. При включенном режиме невозможно удалить записи из первой таблицы, если существуют связанные с ней записи во второй таблице. Например, имеется 2 таблицы: наименований товаров и их приход. При включённой поддержке целостности данных при удалении (или изменении ключевого поля) одного из товаров в таблице Товары будут также удалены (изменены) записи, соответствующие этому товару, в таблице Приход.

Характерные черты:

1.      При изменении значения ключевого поля в 1-й таблице автоматически изменяется  значение в связанных записях.

2.      Невозможно ввести во вторую таблицу в поле внешнего ключа значение, которого нет в первой таблице.

Допустимые опции:

1.      Каскадное обновление.

2.      Каскадное удаление.

Нормализация БД

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

Нормализация БД предназначена для уменьшения объёма хранимых данных и снижения вероятности ошибки при вводе данных и затрат труда при этом.

Пример.

Имеется следующая таблица, в которой содержаться данные по товарным накладным:

№ накладной

Дата

Поставщик

Адрес

Товар

Цена

Количество

Стоимость

               

Она имеет очевидные недостатки:

1.      Одна накладная может иметь разные даты вследствие человеческой ошибки.

2.      У одного и того же товара могут быть разные цены.

3.      Адреса у одного и того же поставщика могут быть разные

4.      Стоимость можно ввести неверно.

Для того чтобы устранить эти недостатки, таблицу необходимо привести к 3-й нормальной форме (всего существует 5 нормальных форм).

1.      Первая нормальная форма. Таблица соответствует 1-й нормальной форме, если каждый столбец содержит атомарные (которые нельзя разделить на более простые) значения, а в таблице не содержаться повторяющиеся группы. В рассматриваемом примере повторяющейся группой является накладная, следовательно, часть полей повторяется. Группы удаляются помощью добавления таблиц. Создаём дополнительную таблицу "Накладная".

2.      Чтобы привести таблицу ко второй нормальной форме необходимо, чтобы таблица была в первой нормальной форме, и каждый столбец должен зависеть от ключевого поля. В примере выделяется ещё одна таблица, в которой содержаться код товара (ключевое поле), наименование товара и его цена.

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



 

Добавьтe Ваш комментарий

Ваше имя (псевдоним):
Ваш адрес почты:
Заголовок:
Комментарий: