Теория баз данных

дополнительная связующая таблица между книгами



  • Таблица BOOKS

  • Таблица READERS

  • Таблица CATALOG (системный каталог)

  • Таблица EXEMPLAR

  • Таблица RELATION_1 ( дополнительная связующая таблица между книгами и системным каталогом).

    Набор операторов языка SQL принято называть не программой, а скриптом. Тогда скрипт, который добавит набор из 5 взаимосвязанных таблиц базы данных «Библиотека» в существующую базу данных, будет выглядеть следующим образом:

    CREATE TABLE BOOKS

    (

    ISBN varchar(14) NOT NULL .

    TITLE varchar(120) NOT NULL.

    AUTOR varchar (30) NULL.

    COAUTOR varchar(30) NULL.

    YEAR_PUBL smallint NOT NULL.

    PUBLICH varchar(20) NULL.

    PAGES smallInt NOT NULL.

    CONSTRAINT PK_BOOKS PRIMARY KEY (ISBN).

    CONSTRAINT DF_ YEAR_PUBL DEFAULT (Year(GetDate()).

    CONSTRAINT CK_ YEAR_PUBL CHECK (YEAR_PUBL >= 1960 AND

    YEAR_PUBL <= YEAR(GetDate())).

    CONSTRANT CK_PAGES CHECK (PAGES > = 5 AND PAGES <= 1000).

    CONSTRAINT CK_BOOKS CHECK (NOT (AUTOR IS NULL AND COAUTOR IS NOT NULL)) CREATE TABLE READERS

    (

    READER_ID Small int PRIMARY KEY.

    FIRST_NAME char(30) NOT NULL.

    LAST_NAME char(30) NOT NULL.

    ADRES char(50),

    HOME_PHON char(12).

    WORK_PHON char(12).

    BIRTH_DAYdate СНЕCK DateDiff(year. GetDate().BIRTH_DAY) >=17 )

    CONSTRAINT CK_READERS CHECK (HOME_PHON IS NOT NULL OR WORK_PHON IS NOT NULL)

    );

    CREATE TABLE CATALOG

    (

    ID_CATALOG Smallint PRIMARY KEY,

    KNOWELEDGE_AREA varchar(l50)

    );

    CREATE TABLE EXEMPLAR

    (

    ID_EXEMPLAR int NOT NULL,

    ISBN varchar(14) NOT NULL

    FOREIGN KEY references BOOKS(ISBN).

    READER_ID Smallint(4) NULL

    FOREIGN KEY references READERS (READER_ID).

    DATA_IN date,

    DATA_OUT date.

    EXIST Logical,

    PRIMARY KEY (ID_EXEMPLAR. ISBN)

    );

    CREATE TABLE RELATION_1

    (

    ISBN varchar(14) NOT NULL

    FOREIGN KEY references BOOKS(ISBN).

    ID_CATALOG small int NOT NULL

    FOREIGN KEY references CATALOG (ID_CATALOG),

    CONSTRAINT PK_RELATION_1 PRIMARY KEY (ISBN.ID_CATALOG)

    );

    При написании скрипта мы добавили в оператор создания таблицы «Читатели» ограничение на уровне таблицы, которое связано с обязательным наличием хотя бы одного из двух телефонов.




    Содержание  Назад  Вперед