Создание многотабличной реляционной базы данных
Ограничения таблиц
Ограничение PRIMARY KEY указывает на то, что столбец, к которому оно применено, является первичным ключом. Таким образом, это ограничение относится ко всей таблице и эквивалентно комбинации двух ограничений столбца: NOT NULL и UNIQUE. Это ограничение, как показано в следующем примере, можно задавать в операторе CREATE:
CREATE TABLE CLIENT ( | ||
ClientName | CHARACTER (30), | PRIMARY KEY, |
Address1 | CHARACTER (30), | |
Address2 | CHARACTER (30), | |
City | CHARACTER (25), | |
State | CHARACTER (2), | |
PostalCode | CHARACTER (10), | |
Phone | CHARACTER (13), | |
Fax | CHARACTER (13), | |
ContactPerson | CHARACTER (30)); | |
); |
Утверждения
Утверждение (assertion) задает ограничение для более чем одной таблицы. В следующем примере для создания утверждения применяется условие поиска, составленное для столбцов из двух таблиц.
CREAE TABLE ORDERS ( | ||
OrderNumber | INTEGER | NOT NULL, |
ClientName | CHARACTER (30), | |
TestOrdered | CHARACTER (30), | |
Salesperson | CHARACTER (30), | |
OrderDate | DATE | |
); | ||
CREATE TABLE RESULTS ( | ||
ResultNumber | INTEGER | NOT NULL, |
OrderNumber | INTEGER | |
Result | CHARACTER(50), | |
DateReported | DATE, | |
PrelimFinal | CHARACTER (1), | |
); | ||
CREATE ASSERTION | ||
CHECK (NOT EXISTS SELECT * FROM ORDERS, RESULTS | ||
WHERE ORDERS.OrderNumber = RESULTS. OrderNumber | ||
AND ORDERS.OrderDate > RESULTS.DateReported); |
Благодаря этому утверждению дата анализа не будет предшествовать дате заказа теста.