В этом случае все операции
В этом случае все операции назначения внешних ключей будут считаться корректными, потому что все объекты были описаны заранее, и для такого алгоритма порядок создания таблиц безразличен. Далее приведен скрипт, который был получен при разработке схемы базы данных «Библиотека» в PowerDesignerG.l. По умолчанию для каждой таблицы создается индекс по первичному ключу, так что кроме знакомых операций создания и изменения таблиц мы увидим еще и операцию создания индексов (CREATE INDEX), после изучения физических моделей в базах данных мы еще вернемся к этой операции, а пока примем ее на веру. При создании даталогичекой модели в качестве СУБД был выбран сервер MS SQL Server 6.X, и для этого сервера скрипт был сгенерирован на встроенном языке этой СУБД, называмом TransactSQL. В нем операция USE <имя базы дан-ных> соответствует операции открытия базы данных, а команда до означает переход к выполнению следующей команды.
/* ================================ */
/* Database name: LIBRARY ' */ /* DBMS name: Microsoft SQL Server 6.x */
/* Created on: 06.10.00 18:56 */
/* ================================ */
/* Database name: LIBRARY */
/* ================================ */
use LIBRARY
go
/* ================================ */
/* Table: BOOKS */
/* ================================ */
create table BOOKS
(
ISBN |
varchar(14) |
not null . |
||
TITLE |
varchar(255) |
not null . |
||
AUTOR |
varchar(30) |
null. |
||
COAUTOR |
varchar(30) |
null. |
||
PUBLICHER |
varchar(30) |
null. |
||
YEAR_IZD smallint not null
constraint CKC_YEAR_IZD_BOOKS check
(
YEAR_PUBL >- 1969 AND YEAR_PUBL <= YEAR(GetDate())).
PAGES smallint not null
constraint CKC_PAGES_BOOKS check
(
PAGES between 5 and 1000).
constraint PK_BOOKS primary key (ISBN).
constraint CKT_BOOKS check
(
(AUTOR IS NOT NULL OR (AUTOR IS NULL AND COAUTOR IS NULL))) ) go
/* Table: READERS */
create table READERS