Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Unique(rdnumb)

PRIMARY KEY(READER, BOOKKEY)

PRIMARY KEY(UNIKEY)

);

 

Визначення первинного ключа з конструкцією CONSTRAINT

CREATE TABLE TBOOK_PLACE

(UNIKEY PRMKEY,

CODPLACE VARCHAR(25) character set WIN1251 collate PXW_CYRL,

NAMEPLACE VARCHAR(60) character set WIN1251 collate PXW_CYRL,

CONSTRAINT CONST_TBP_PK PRIMARY KEY(UNIKEY)

);

 


Приклади альтернативних описів таблиць

 

- З простим ключем

CREATE TABLE TBOOK_READER

(UNIKEY PRMKEY PRIMARY KEY, - опис на рівні поля

READER PRMKEY,

BOOKKEY PRMKEY,

STARTDATE DATE

);

 

 

CREATE TABLE TBOOK_READER

(UNIKEY PRMKEY,

READER PRMKEY,

BOOKKEY PRMKEY,

STARTDATE DATE,

PRIMARY KEY(UNIKEY) - опис на рівні таблиці

);

 

 

CREATE TABLE TBOOK_READER

(UNIKEY PRMKEY PRIMARY KEY,

READER PRMKEY,

BOOKKEY PRMKEY,

STARTDATE DATE,

CONSTRAINT CONST_TBR_1PK PRIMARY KEY(UNIKEY)- з конст.CONSTRAINT

);

 

- зі складним ключем

CREATE TABLE TBOOK_READER

(READER PRMKEY,

BOOKKEY PRMKEY,

STARTDATE DATE,

);

- зі складним ключем і конструкцією CONSTRAINT

CREATE TABLE TBOOK_READER

(READER PRMKEY,

BOOKKEY PRMKEY,

STARTDATE DATE,

CONSTRAINT CONST_TBR_PK PRIMARY KEY(READER, BOOKKEY)

);


Визначення унікального ключа

 

CREATE TABLE TREADER (

UNIKEY PRMKEY PRIMARY KEY,

RDNUMB VARCHAR(25) character set WIN1251 collate PXW_CYRL UNIQUE,

RDNAME VARCHAR(60) character set WIN1251 collate PXW_CYRL);

 

CREATE TABLE TREADER (

UNIKEY PRMKEY PRIMARY KEY,

RDNUMB VARCHAR(25) character set WIN1251 collate PXW_CYRL,

RDNAME VARCHAR(60) character set WIN1251 collate PXW_CYRL,

);

 

CREATE TABLE TREADER (

UNIKEY PRMKEY PRIMARY KEY,

RDNUMB VARCHAR(25) character set WIN1251 collate PXW_CYRL,

RDNAME VARCHAR(60) character set WIN1251 collate PXW_CYRL,

CONSTRAINT CONST_TR_UN UNIQUE(RDNUMB)

);

 

Стовбці з атрибутами UNIQUE можуть як і первинний ключ використовуватися для забезпечення посилальної(ССЫЛОЧНОЙ) цілостності між батьківськими та дочірніми таблицями.

 

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

 

CREATE TABLE TREADER_BOOK

(

UNIKEY PRMKEY PRIMARY KEY,

READERKEY PRMKEY,

BOOKKEY PRMKEY,

START_DATE DATE,

CONSTRAINT CONST_TRB_UN UNIQUE(READERKEY, BOOKKEY)

);

 


Конструкція

 

FOREIGN KEY (стовпець(поле)/список_стовпців)

REFERENCES ім’я_таблиці_на_яку_посилаємось [(стовпець/список_стовпців)]

[ON DELETE

{ NO ACTION/CASCADE/SET DEFAULT/SET NULL}]

[ON UPDATE

{ NO ACTION/CASCADE/SET DEFAULT/SET NULL}]

задає обмеження зовнішнього ключа для описуваного стовпця.

 

 

Обмеження означає, що дане поле відповідає первинному ключу у батьківській таблиці і в цій таблиці існує рядок із зазначеним значенням. Якщо список опущений, то передбачається список з одного поля, що має те ж ім'я, що й описуваний стовпець.

Додаткові режими ON DELETE і ON UPDATE задають дії, виконувані при видаленні чи відновленні ключових полів у батьківській таблиці.

Можливі наступні варіанти:

NO ACTION - немає дій (приймається за замовчуванням).

CASCADE - каскадне видалення(заміна) передбачає видалення (заміну) у всіх рядках дочірньої таблиці при видаленні(заміні) відповідних їм рядків батьківської таблиці.

SET DEFAULT - передбачає встановлення значення зовнішнього ключа у всіх рядках дочірньої таблиці, що відповідають видаленому(відновленому) ключу в батьківській таблиці, значення за замовчуванням.

SET NULL - передбачає встановлення значення зовнішнього ключа у всіх рядках дочірньої таблиці, що відповідають видаленому(відновленому) ключу в батьківській таблиці,в NULL.


Приклад: Пов’язати батьківські таблиці TAUTHOR i TBOOK з проміжною таблицею T_BOOK_AUTHOR

 

Описи батьківських таблиць

 

CREATE TABLE T_AUTHOR

(

AUTHOR PRMKEY PRIMARY KEY,

AUNAME VARCHAR(60) CHARACTER SET WIN1251,

COMMENT VARCHAR(180) CHARACTER SET WIN1251,

);

 

 

CREATE TABLE TBOOK

(

UNIKEY PRMKEY PRIMARY KEY,

MATHERKEY INTEGER,

BOOKNM VARCHAR(250) character set WIN1251 collate PXW_CYRL,

REFERAT VARCHAR(500) character set WIN1251 collate PXW_CYRL

NUM_ALL SMALLINT DEFAULT 0 NOT NULL,

NUM_PRESENCE SMALLINT DEFAULT 0 NOT NULL,

NUM_USED COMPUTED BY (NUM_ALL - NUM_PRESENCE)

);

 

CREATE TABLE TBOOK_AUTHOR

(

UNIKEY PRMKEY,

AUTHOR PRMKEY,

BOOKKEY PRMKEY,

Bl COMPUTED BY ((select a.auname from tauthor a

where a.author = tbook_author.author)),

 

B2 COMPUTED BY ((select a.booknm from tbook a

where a.unikey=tbook_author.bookkey)),

<== предыдущая лекция | следующая лекция ==>
Приклади. Alter table tbook_author b2 computed by | On delete cascade on update cascade
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 279; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.