69701

КЛЮЧІ

Лекция

Информатика, кибернетика и программирование

В той же час, до цього номер 1 був закріплений за Івановим. У нас вийшло, що один і той же номер зіставлений різним клієнтам. Тепер уявимо, що про це нічого не знає оператор, що знаходиться в магазині. Сидоров замовляє монітор LG, але не оплачує його вчасно...

Украинкский

2014-10-09

27.5 KB

0 чел.

Тема 30: КЛЮЧІ

Припустимо, що хтось додав в таблицю CLIENTS запис:

1    Сидоров     Егорова   Ікировоград      80522345111

В той же час, до цього номер 1 був закріплений за Івановим. У нас вийшло, що один і той же номер зіставлений різним клієнтам. Тепер уявимо, що про це нічого не знає оператор, що знаходиться в магазині. Сидоров замовляє монітор LG, але не оплачує його вчасно (а, може, і зовсім передумав його купувати). Проходить якийсь час, і всі забувають, хто саме замовив монітор: Іванов або Сидоров — адже в таблиці замовлень коштує номер 1, який асоціюється з обома клієнтами.

Щоб уникнути подібної плутанини, потрібно використовувати первинні ключі:

ALTER TABLE CUSTOMER ADD PRIMARY KEY (C_NO);

Після цього запиту поле C_NO може містити тільки унікальні значення. Як первинний ключ не можна використовувати поле, що допускає значення NULL. Створити первинний ключ можна простіше — при створенні таблиці. Це робиться так:

CREATE   TABLE   CLIENTS (

C_NO        int        NOT   NULL,
FI0 char(40) NOT   NULL

ADDRESSchar(30) NOT NULL, CITY char(15) N0T NULL, PHONE char(ll) NOT NULL, PRIMARY   KEY    (C_NO);

Таблиця ORDERS містить відомості про замовлення. По полю C_NO цієї таблиці ідентифікується замовник. Припустимо, що в таблицю ORDERS хтось ввів значення, якого немає в таблиці CLIENTS. Хто ж замовив товар? Нам потрібно не допустити подібної ситуації, тому введіть наступний запит:

ALTER TABLE ORDERS

ADD FOREIGN KEY(C_NO) REFERENCES CLIENTS;

Введені в таблицю ORDERS номера клієнтів C_NO повинні існувати в таблиці CLIENTS. Аналогічно потрібно додати зовнішній ключ по полю T_NO. Ця можливість називається декларативною цілісністю.

Команда ALTER використовується не тільки для додавання ключів. Вона призначена для реорганізації таблиці в цілому. Ви хочете додати ще одне поле? Або встановити список допустимих значень для кожного з полів. Все це можна зробити за допомогою команди ALTER:

ALTER   TABLE   CLIENTS ADD   ZIP   char(6)   NULL;

Цей оператор додає в таблицю CLIENTS нове поле ZIP типу char. Звернете увагу, що ви не можете додати нове поле із значенням NOT NULL в таблицю, в якій вже є дані. Наша компанія працює з клієнтами тільки з Києва і Кіровограда, тому доцільно ввести список допустимих значень для таблиці CLIENTS:

ALTER   TABLE   CLIENTS

ADD   CONSTRAINT   INVALID_STATE   SHECK    (CITY   IN    ('Кировоград','Киев'));


 

А также другие работы, которые могут Вас заинтересовать

66028. Проблемы медицинского и социального обеспечения РФ. Минимальная медицинская помощь 24.76 KB
  Основные проблемы обеспечения доступности и качества медицинской помощи гражданам Российской Федерации и способы их решения Одним из основных направлений дальнейшего развития здравоохранения является разработка мер направленных на повышение качества и обеспечение доступности медицинской помощи гражданам Российской Федерации.
66030. Антикризисная политика ЕС 254.54 KB
  Особенности кризиса для стран ЕС Охватив своим масштабам большинство стран мира экономический кризис немного по-разному повлиял на различные мировые капиталистические центры. Одна из очевидных особенностей стран ЕС связанная с экономическим кризисом ...
66031. Российская модель бюджетного федерализма 15.31 KB
  Основы бюджетного федерализма. Особенностью российского бюджетного федерализма является наличие значительного разрыва в уровне бюджетной обеспеченности субъектов Федерации. Модели бюджетного федерализма Существует несколько приоритетных моделей построения...
66034. Разработка и оптимизация конструкции регулирующего клапана (РК) DN125 для системы САОЗ ВД энергоблока АЭС с ВВЭР-1000 малой серии 7.73 MB
  Цель работы: обеспечение безопасности работы реакторных установок В-320 и В-338 при речах 1 контура, компенсируемых работой САОЗ ВД на основе подхода управляемого снижения давления 1 контура с регулированием расхода впрыска борного расхода...
66035. Глобализация финансов 17.21 KB
  В глобализации финансов часто усматривают причину роста спекуляций и отвлечения со спекулятивными целями капитала от производства и создания новых рабочих мест. Процесс финансовой глобализации сконцентрирован прежде всего в трех основных центрах мировой экономики...