Связи и перекрестные ссылки
Схемы часто изображают в форме диаграмм, используя для этого блоки.
На рис. 6.1 приведена типичная схема. (Подобно многим рисункам в этой книге, данный рисунок упрощенно представляет реальную систему закупки, содержащую в действительности намного больше элементов, чем изображено на рис. 6.1.)
Сплошные линии, соединяющие блоки, отображают связи между блоками. Запись ЗАКАЗ-НА-ЗАКУПКУ связана с записями ПАРТИЯ - ТОВАРА, в которых содержится заказ на закупку определенных изделий. Запись ПОСТАВЩИК связана с записями РАСЦЕНКА, описывающими поставляемые товары и расценки.
Рис. 6.1. Схема.
Штриховые линии отображают перекрестные ссылки. НАИМЕНОВАНИЕ-ИЗДЕЛИЯ или СПЕЦИФИКАЦИЯ-ИЗДЕЛИЯ содержится не в записи ПАРТИЯ-ТОВАРА, а в отдельной записи ИЗДЕЛИЕ. Подобным образом ИМЯ-ПОСТАВЩИКА и АДРЕС-ПОСТАВЩИКА содержатся в записях ПОСТАВЩИК, а не в записи ЗАКАЗ-НА-ЗАКУПКУ. Таким путем можно избежать повторений записей ПОСТАВЩИК и СПЕЦИФИКАЦИЯ ИЗДЕЛИЯ в каждой записи ПАРТИЯ-ТОВАРА.
Отметим, что, если бы даже штриховые линии были опущены, диаграмма тем не менее представляла бы информацию достаточно полно.
Связи (сплошные линии) на схеме могут обеспечивать передач; такой информации, которая не представлена конкретными элементам: данных, показанными на схеме. В записи ЗАКАЗ-НА-ЗАКУПКУ на рис. 6.1, например, нет никаких сведений о том, какие товары заказаны и в каком количестве. Информация становится полной только тогда когда записи ПАРТИЯ-ТОВАРА связываются с соответствующим) записями ЗАКАЗ-НА-ЗАКУПКУ. В некоторых базах данных одна и те же типы записей могут иметь различные связи.
Перекрестные ссылки не обеспечивают передачу дополнительно информации. Запись ЗАКАЗ-НА-ЗАКУПКУ не содержит имени поставщика и его адреса. Однако она содержит номер поставщика, и, не пользуя его, можно определить имя и адрес из файла ПОСТАВЩИК Если убрать штриховые линии от записи НОМЕР-ПОСТАВЩИКА к записи ПОСТАВЩИК, то потери информации не произойдет. Линии перекрестных ссылок указывают такие связи в файле, которые обеспечивают более быстрый поиск информации.
Подсхемы
Термин схема используется для определения полной таблицы все: типов элементов данных и типов записей, хранимых в базе данных Термином подсхема определяют описание данных, которое использует прикладной программист. На основе одной схемы можно составит; много различных подсхем.
Прикладной программист или конечный пользователь необязательно должен знать о схеме базы данных в целом, так как обычно она очень сложна. Иногда такая неосведомленность объясняется соображениям: безопасности. Программист или пользователь должен иметь дело только с теми конкретными приложениями и записями, которые ему нужны.
На рис. 6.2 показаны подсхемы двух прикладных программ. Программисты имеют различные представления о данных, но и то и другое представление получено из схемы, приведенной на рис. 6.1.
Запись ЗАКАЗ-НА-ЗАКУПКУ программиста А содержит ИМЯ ПОСТАВЩИКА и АДРЕС-ПОСТАВЩИКА, а запись СПЕЦИФИКАЦИЯ-ЗАКАЗА-НА-ЗАКУПКУ содержит записи НАИМЕНОВАНИЕ ИЗДЕЛИЯ и ЦЕНА. Запись программиста В СПЕЦИФИКАЦИЯ ЗАКАЗА содержит элементы данных трех различных записей схемы. Администратор базы данных должен гарантировать, что используемые прикладными программистами подсхемы могут быть получены из схемы.
Рис. 6.2. Подсхемы двух прикладных программистов (вверху), построенные на основе схемы, приведенной на рис. 6.1.
Программы управления базой данных автоматически получают данные, соответствующие подсхеме, на основе данных, описанных в схеме, и передают их прикладной программе.