Первичные ключи таблицы важный элемент в структуре базы данных. Они - основа вашей системы записи в файл; и когда вы хотите найти определенную строку в таблице, вы ссылаетесь к этому первичному ключу. Кроме того, первичные ключи гарантируют, что ваши данные имеют определенную целостность. Если первичный ключ правильно используется и поддерживается, вы будете знать что нет пустых строк таблицы и что каждая строка отличается от любой другой строки. Мы будем обсуждать ключи и далее когда поговорим относительно справочной целостности в Главе 19.
СТОЛБЦЫ ИМЕНУЮТСЯ И НУМЕРУЮТСЯ
В отличие от строк, столбцы таблицы (также называемые полями ) упорядочиваются и именуются. Таким образом, в нашей таблице адресной книги, возможно указать на " адрес столбца " или на " столбец 3 ". Конечно, это означает что каждый столбец данной таблицы должен иметь уникальное имя чтобы избежать неоднозначности. Лучше всего если эти имена указывают на содержание поля. В типовых таблицах этой книги, мы будем использовать такие сокращения для имени столбца, как cname для имени заказчика, и odate для даты порядка. Мы также дадим каждой таблице личный числовой номер столбца в качестве первичного ключа. Следующий раздел будет объяснять эти таблицы и их ключи более подробно.
ТИПОВАЯ БАЗА ДАННЫХ
Таблицы 1.1, 1.2, и 1.3 составляют реляционную базу данных которая является минимально достаточной чтобы легко ее отслеживать, и достаточно полной, чтобы иллюстрировать главные понятия и практику использования SQL.
Эти таблицы напечатаны в этой главе а также в Приложении E. Так как они будут использоваться для иллюстрирования различных особенностей SQL по всей этой книге, мы рекомендуем чтобы вы скопировали их, для удобства ссылки к ним.
Вы могли уже обратить внимание что первый столбец каждой таблицы содержит номера чьи значения различны для каждой строки. Как вы наверное и предположили, это - первичные ключи таблиц. Некоторые из этих номеров также показаны в столбцах других таблиц. В этом нет ничего неверного. Они поазывают связь между строками которые используют значение принимаемое из первичного ключа, и строками где это значение используется в самом первичном ключе.
Таблица 1.1: Продавцы
SNUM
|
SNAME
|
CITY
|
COMM
|
1001
|
Peel
|
London
|
.12
|
1002
|
Serres
|
San Jose
|
.13
|
1004
|
Motika
|
London
|
.11
|
1007
|
Rifkin
|
Barcelona
|
.15
|
1003
|
Axelrod
|
New York
|
.10
|
Таблица 1.2: Заказчики
CNUM
|
CNAME
|
CITY
|
RATING
|
SNUM
|
2001
|
Hoffman
|
London
|
100
|
1001
|
2002
|
Giovanni
|
Rome
|
200
|
1003
|
2003
|
Liu
|
SanJose
|
200
|
1002
|
2004
|
Grass
|
Berlin
|
300
|
1002
|
2006
|
Clemens
|
London
|
100
|
1001
|
2008
|
Cisneros
|
SanJose
|
300
|
1007
|
2007
|
Pereira
|
Rome
|
100
|
1004
|
Таблица 1.3: Порядки
ONUM
|
AMT
|
ODATE
|
CNUM
|
SNUM
|
3001
|
18.69
|
10/03/1990
|
2008
|
1007
|
3003
|
767.19
|
10/03/1990
|
2001
|
1001
|
3002
|
1900.10
|
10/03/1990
|
2007
|
1004
|
3005
|
5160.45
|
10/03/1990
|
2003
|
1002
|
3006
|
1098.16
|
10/03/1990
|
2008
|
1007
|
3009
|
1713.23
|
10/04/1990
|
2002
|
1003
|
3007
|
75.75
|
10/04/1990
|
2004
|
1002
|
3008
|
4723.00
|
10/05/1990
|
2006
|
1001
|
3010
|
1309.95
|
10/06/1990
|
2004
|
1002
|
3011
|
9891.88
|
10/06/1990
|
2006
|
1001
|
Например, поле snum в таблице Заказчиков указывает, какому продавцу назначен данный заказчик. Номер поля snum связан с таблицей Продавцов, которая дает информацию об этих продавцах. Очевидно, что продавец которому назначены заказчики должен уже существовать - то есть, значение snum из таблицы Заказчиков должно также быть представлено в таблице Продавцов. Если это так, то говорят, что "система находится в состоянии справочной целостности ".
Этот вывод будет более полно и формально объяснен в Главе 19.
Читать дальше