Программирование >>  Исключение дубликатов строк 

1 2 3 [ 4 ] 5 6 7 ... 152


Ключи

Ключи являются специальными полями, которые играют совершенно особую роль в таблице. Тип ключа определяется его предназначением. Хотя таблица может содержать несколько типов ключей, наше обсуждение ограничится двумя наиболее важными: первичным ключом и внешним ключом.

Первичный ключ - это поле (или группа полей), которое уникальным образом идентифицирует каждую запись в таблице. Когда первичный ключ состоит из двух или более полей, он называется составным первичным ключом. Первичный ключ является наиболее важным из всех по двум причинам: его значение идентифицирует конкретную запись из всей базы данных, а его поле идентифицирует указанную таблицу во всей базе данных. Первичные ключи также обеспечивают целостность на уровне таблиц и помогают установить связи с другими таблицами. Каждая таблица в базе данных должна иметь первичный ключ.

Agents


вичныи ключ

Первичный ключ



Внешний ключ

Рис. 1.3. Первичный и внешний ключи

ntFirstName

AgeRtLasiName

DateofHire

entHomePhone

1001

Stella

Resales

1994-07-11

299-5764

1002

Steve

Pundt

1994-05-01

515-5762

(

1003

Randi

Nathanson

199Ф09-11

998-3882

11 <t

EntertainerlD

AgentlD

EntertalnerName

EntertalnerPhorte

98100

1002

The Mike Hernandez Trio

959-8837

98101

1002

Jazz Times

555-9928

98102

1003

The Country Squires

709-3542

............

Поле AgentlD на рис. 1.3 является хорошим примером первичного ключа, потому что оно уникальным образом идентифицирует каждого агента в таблице Agents и помогает обеспечить целостность на уровне таблицы, гарантируя отсутствие дуб-лируюш,их записей. Оно также используется для установления связей между таблицей Agents и другими таблицами в базе данных, например таблицей Entertainers,

показанной в примере.

При установлении связи двух таблиц друг с другом обычно берут копию первичного ключа из первой таблицы и вставляют ее во вторую таблицу, где она становится внешним ключом. (Поскольку во второй таблице уже имеется собственный первичный ключ, то первичный ключ, вносимый из первой таблицы, будет внешним для второй таблицы.)



На рис. 1.3 приведен пример внешнего ключа, в котором AgentID является первичным ключом таблицы Agents и внешним ключом в таблице Entertainers. Как можно видеть, в таблице Entertainers уже имеется первичный ключ - EntertainerlD. В этом взаимоотношении AgentID является полем, устанавливаюш,им связь между Agents и Entertainers.

Внешний ключ важен не только потому, что он помогает установить связь между двумя таблицами, но он также обеспечивает целостность на уровне связей (т. н. ссылочную целостность) базы данных. Это означает, что записи в обеих таблицах всегда будут правильно связаны, потому что значения внешнего ключа долоюны быть скопированы из значений первичного ключа, на который он ссылается. Внешние ключи также помогают избежать опасных висяш,их в воздухе записей , классическим примером которых является запись заказа, не связанная с клиентом. Если не известно, кто сделал заказ, то его невозможно обработать и, что очевидно, выставить счет. Это вызовет спад квартальных продаж!

ПредстоАлениА

Представление является виртуальной таблицей, которая составлена из полей одной или нескольких таблиц базы данных. Таблицы, из которых составляют представление, называются базовыми. В реляционной модели представление считается виртуальной таблицей, поскольку оно извлекает данные из базовых таблиц, а не хранит все данные в себе. На самом деле единственной информацией о представлении, которая сохраняется в базе данных, является ее структура.

Представления позволяют рассматривать информацию в базе данных с различных точек зрения, обеспечивая тем самым большую гибкость в работе с данными. Представление можно создать разными способами. Они особенно полезны, когда основываются на нескольких связанных таблицах. Например, можно создать представление, которое суммирует такую информацию, как обш,ее количество часов, отработанное кавдым столяром в пределах деловой части Эль-Пасо. Или можно создать представление, которая группирует данные по конкретным полям. Представление такого типа отображает обш.ее количество служащ,их в каждом городе в пределах каждого штата указанного ряда регионов.

Пример типичного представления показан на рис. 1.4.

Во многих СУРБД представление обычно реализовано в виде хранимого запроса или, более кратко, запроса. В большинстве случаев запрос имеет все характеристики представления, а его единственное отличие состоит в том, что на него ссылаются по другому имени. Важно отметить, что некоторые поставщ,ики начинают называть запрос его настояш,им именем. Независимо от того, как он называется в ваших СУРБД, вы, несомненно, будете использовать представления в своей базе данных.



Customers


Y ~

Customer Engagements (Предсювлвние)

52113

19997-01

1199-07-04

13:00

54223

1999-0701

1999-07-05

13:00

52233

1999-07-10

1999-07-15

13:00

CustLastName

StartOafe

EhdOaie

Mark

Resales

1999-07-01

1999-07-04

Thomas

Fuller

19997-01

1999-07-05

Sally

Callahan

1999-07-10

1999-07-15

Рис. 1.4. Пример представления

CustlaslName

CuslRione

10001

Sally

Callahan

555-2671

10002

Fuller

555-2496

10003

James

Leverling

555-2501

1 IT t

Связи

Если записи указанной таблицы могут быть связаны некоторым образом с записями в другой таблице, то говорят, что между таблицами имеется связь. Способ установления этой связи зависит от типа связи. Между двумя таблицами может существовать три типа связей: один-к-одному, один-ко-многим, многие-ко-многим. Уяснение связей является решающим для понимания работы производных таблиц, а также проектирования и использования многотабличных запросов SQL (подробнее см. в части III).

Свпзь один-к-одному

Пара таблиц связана отношением один-к-одному, если одна запись в первой таблице связана только с одной записью во второй таблице, а одна запись во второй таблице связана только с одной записью в первой таблице. В таком типе связи одна таблица называется первичной, а другая - вторичной. При связывании берется первичный ключ из первичной таблицы и вставляется во вторичную таблицу.



1 2 3 [ 4 ] 5 6 7 ... 152

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика