Полем также называют весь столбец таблицы. Когда говорят о поле записи, речь идет о ячейке. Например, поле Имя записи 536 содержит значение Крылов . Когда же говорят о поле таблицы, то речь идет о столбце. Например, поле Номер (ID) таблицы Клиенты не должно содержать повторяющихся значений.
Каждое поле таблицы имеет строго определенный тип данных. Так, поля Номер (ID) и Рейтинг – числовые, а поля Имя , Телефон и Адрес – текстовые.
Связи между таблицами
Связь между двумя таблицами организуется посредством общих полей этих таблиц. Приведем пример таблицы (табл. 1.2), связанной с таблицей Клиенты.
Таблица 1.2.
Заказы компании
В этом примере общими полями являются поле Номер (ID) таблицы Клиенты и поле Клиент таблицы Заказы . А именно, поле Клиент содержит номер клиента из таблицы Клиенты . Таким образом, каждая запись таблицы Заказы ссылается на какую-либо запись таблицы Клиенты .
На этом принципе организации связи между таблицами и построены реляционные базы данных. Простой на первый взгляд способ связи предоставляет массу полезных возможностей. В частности, он позволяет извлекать информацию одновременно из нескольких таблиц (например, можно составить отчет, представляющий собой список клиентов с указанием общей суммы заказов каждого клиента), а также избежать дублирования сведений. Так, в данном примере не нужно в каждом заказе указывать адрес клиента.
Кроме того, полезно знать, что если одна таблица ссылается на другую, то первая таблица называется дочерней (как таблица Заказы ), а вторая – родительской (как таблица Клиенты ). Если одна запись ссылается на другую, они также называются дочерней и родительской.
Ключевые поля
В реляционной базе данных существует два вида ключевых полей: первичный ключ и вторичный ключ. Для идентификации записей в таблице используется первичный ключ – поле или набор полей таблицы, чьи значения однозначно определяют запись. Соответственно значения первичного ключа должны быть уникальны, то есть в таблице не должно быть двух строк с одинаковыми значениями первичного ключа.
Практически всегда в качестве первичного ключа используется специальное поле, содержащее номер записи (например, поле Номер (ID) в таблице Клиенты ). Программа Access присваивает записям номера автоматически и гарантирует уникальность номеров.
Вторичным ключом называется поле дочерней таблицы, содержащее значения первичного ключа родительской таблицы. Например, поле Клиент в таблице Заказы является вторичным ключом. Таким образом, связи между таблицами организуются с помощью ключевых полей.
Теперь, когда вы познакомились с основными элементами таблиц, можно приступать к разработке структуры собственной базы данных.
Проектирование структуры данных
Как и построение здания, построение базы данных начинается с проектирования. Чтобы понять, какая структура базы будет для вас наиболее удобной и полезной, следуйте нижеприведенным этапам проектирования.
1. Для начала необходимо выяснить, каково назначение базы данных и какую информацию необходимо получать из базы. Составьте список типичных запросов к базе данных:
• список ваших клиентов с контактными данными;
• список заказов конкретного клиента;
• список всех заказов за определенный период;
• какие товары в каком количестве были заказаны за определенный период и т. д.
2. Выделите из этого набора классы объектов, о которых нужно будет получать информацию из базы данных. Объекты каждого класса будут храниться в отдельной таблице, и вы тем самым получите список таблиц будущей базы данных. В примере из предыдущего пункта целесообразно выделить следующие классы: клиенты, заказы и товары. Таким образом, в базе данных будет три таблицы.
3. Выпишите интересующие вас атрибуты объектов каждого класса. Например, для каждого клиента необходимо хранить в базе его имя (или название организации) и контактную информацию, для товара – наименование и цену. В результате вы получите список полей каждой таблицы (рис. 1.1). Учтите, что в таблице должен быть первичный ключ, и добавьте в каждую таблицу дополнительное поле – уникальный номер записи.
Таким образом, были перечислены атрибуты и установлены связи между таблицами. Например, если в таблице заказов есть поля Товар и Клиент , содержащие код товара и номер клиента, то таблица Заказы ссылается и на таблицу Товары , и на таблицу Клиенты .