Таблицы и связи
Доктор Кодд выделил 12 принципов (правил) реляционных баз данных. Начнем с первого правила, которое позволит понять суть реляционной модели:
вся информация логически представлена в виде таблиц.
Таблица состоит из строк и столбцов (в реляционной теории строке соответствует кортеж, а столбцу — атрибут, однако в стандарте SQL используются общепринятые термины «строка» и «столбец»).
Поскольку вся информация, хранимая в базе данных, не может быть размещена в одной таблице, возникает вопрос, как организовать связи между таблицами. Согласно первому правилу Кодда вся информация, в том числе и информация о связях между данными, должна содержаться в самих таблицах. В реляционной модели для этого используются общие столбцы таблиц.
Например, пусть в базе данных коммерческой фирмы необходимо хранить ряд сведений о клиентах фирмы:
· порядковый номер (личный код) клиента;
· фамилия, имя, отчество;
· контактные телефоны.
При попытке разместить все эти данные в одной таблице возникает серьезная проблема со столбцом «контактные телефоны». Обычно клиенты оставляют несколько номеров – рабочий, домашний, мобильный телефон и т.д., причем количество номеров может быть различным (допустима даже такая ситуация, когда клиент вообще не предоставляет ни одного номера). Наилучшим способом для хранения контактных телефонов будет отдельная (детальная или подчиненная) таблица, связанная с основной таблицей данных о клиентах при помощи общего столбца «личный код клиента».
Возможный вариант заполнения таблиц показан на рис. 1.10
Рис.1.10 - Информация о клиентах с указанием контактных телефонов
В данном примере клиенту с кодом 1 соответствуют три связанных строки в таблице Контактные телефоны (у них всех в столбце код стоит значение 1), а клиенту с кодом 2 – только одна связанная строка. Получилась очень стройная и логичная структура из двух связанных таблиц, с помощью которой одинаково легко найти как все номера телефонов конкретного клиента, так и определить, какому клиенту принадлежит тот или иной телефон.
Рассмотрим еще один пример организации связи между таблицами в реляционной базе данных. например, товары и поставщики. Пусть необходимо хранить сведения о товарах и их поставщиках. В данном случае связь между товарами и поставщиками несколько сложнее, чем между клиентами и их телефонами. Каждый товар может поставлять, как правило, несколько фирм-поставщиков, но и каждая такая фирма обычно поставляет несколько товаров. В этом случае наилучшим решением будет создание еще одной таблицы, которую называют таблицей-связкой, для хранения информации о связях между товарами и их поставщиками.
Пример заполнения такой базы данных показан на рис. 1.11, здесь таблица-связка названа, как обычно принято, Товары-поставщики и содержит всего два столбца – код товара и код поставщика. В таблицах-связках могут быть и дополнительные, уточняющие, столбцы, например, цена данного товара у данного поставщика и т.д.
Рис. 1.11 - Информация о товарах и их поставщиках
Дата добавления: 2015-08-26; просмотров: 830;