Достаточно часто встречается ситуация, когда хранить всю базу данных в одной таблице неудобно и нерационально. Таблица содержит большое количество полей, различные записи дублирую друг друга, что увеличивает информационный объем данных и замедляет процедуры ее обработки.
Пример.
Номер | Наименование | Описание | Поставщик | Адрес | Цена (руб) |
Накопитель | 3.5", 2000Гб, | Фирма 1 | Адрес 1 | ||
Накопитель | 3.5", 2000Гб, | Фирма 2 | Адрес 2 | ||
Монитор | 21.5” | Фирма 1 | Адрес 1 | ||
Монитор | 21.5” | Фирма 2 | Адрес 2 | ||
Клавиатура | 112кл | Фирма 1 | Адрес 1 | ||
Клавиатура | 112кл | Фирма 2 | Адрес 2 | ||
Мышь | Notebook -Mouse | Фирма 1 | Адрес 1 | ||
Мышь | Notebook -Mouse | Фирма 2 | Адрес 2 |
Структура базы данных должна быть такой, чтобы при работе с ней требовалось вводить в нее как можно меньше данных. Если ввод каких-то данных приходится повторять неоднократно, базу делают из нескольких связанных таблиц. Структуру каждой таблицы разрабатывают отдельно.
В данном примере таблицы записи дублируют друг друга. Причина дублирования в следующем. Комплектующие компьютера имеют два неотъемлемых свойства: Наименование и Описание. Свойствами поставщика являются: Поставщик, Адрес, Цена. Наиболее удобно разделить исходную таблицу на две: Комплектующие и Поставщики.
В результате база данных будет состоять из двух связанных таблиц. Для того, чтобы связи между таблицами работали надежно, и по записи из одной таблицы можно было однозначно найти записи в другой таблице, необходимо предусмотреть в таблице уникальные поля.
Каждая таблица должна содержать хотя бы одно уникальное поле, ключевое поле, содержимое которого уникально для каждой записи в этой таблице (Код комплектующих и Код постащика).
Таблица Комплектующие
Код комплектующих | Наименование | Описание |
К1 | Накопитель | 3.5", 2000Гб, |
К2 | Монитор | 21.5” |
К3 | Клавиатура | 112кл |
К4 | Мышь | Notebook -Mouse |
Таблица Поставщики
Код поставщика | Поставщик | Адрес |
П1 | Фирма1 | Адрес1 |
П2 | Фирма2 | Адрес2 |
Связывание таблиц.
После создания различных таблиц, содержащих данные, относящиеся к различным аспектам базы данных, необходимо обеспечить целостность базы данных. Для этого необходимо связать таблицы между собой.
Всего имеются три типа связей (отношений):
Один-к-одному,