референтна цялостност

Неразделна част от модела на релационни данни

Моделът на релационни данни определя два основни изисквания за почтеност, които се поддържат от всички RDBMS:

- почтеност изискване лице

Единица или единици в реалния свят в релационна база данни съвпадат с кортеж отношения. изискване цялост Entity е както следва:

Всяко кортеж всяка връзка трябва да се разграничи от други кортеж от същата връзка.

Това изискване означава, че всяка връзка трябва да има първичен ключ. Това се прави автоматично, ако системата не е в нарушение на основните свойства на отношенията.

В допълнение, могат да се определят следните ограничения:

- UNIQUE - уникалността на стойностите на атрибутите; идентифицира алтернативни връзки ключове;

- NOT NULL - задължителни стойности; когато поставите нови или изменение на съществуващите елементи на стойностите на отношенията на съответните атрибути трябва да бъдат посочени;

- CHECK (състояние) - позволени стойности на атрибутите; Вложки трябва да отговарят на дадено условие.

Например, съотношението на елемента в базата данни SQL за MS SQL Server могат да бъдат определени, както следва:

P_ID SMALLINT ИДЕНТИЧНОСТ (1,1) ОГРАНИЧЕНИЯ P_PK първичен ключ, --1

PNAME VARCHAR (20) NOT NULL ОГРАНИЧЕНИЯ P_UQ_01 UNIQUE, --2

ЦЕНА НА ПАРИ НЕ NULL ОГРАНИЧЕНИЯ P_CH_01 CHECK (ЦЕНА> 0) --3

1 - определен от първичен ключ ограничение (ограничи първичен ключ, ограничение име - P_PK), чиито стойности трябва да се настройват автоматично, и от 1 на стъпки от 1 (т.е., в първия запис е 1, а вторият - на стойност 2 и m .d).

2 - идентифицира уникално ограничение (ограничение име - P_UQ_01) и необходимата стойност;

3 - определено състояние (ограничение име - P_CH_01): стойността на атрибут трябва да бъде строго положителна.

При определяне на ограниченията, полезни за да поиска техните имена, които обикновено са изработени от следното правило: в името на ограниченията включва името на таблицата, а след това въведете името на условните ограничения и ограниченията от този тип номер, ако в тази таблица може да бъде няколко.

Референтните ограничения за интегритет в РМД са условия, наложени на съвместното съществуване на кортежи на свързания с тях отношения. Както вече споменахме, в релационна база данни, връзка между отношенията са представени от външни ключове. Връщайки се към примера, който се занимава с отдели и служители отношения:

ОТДЕЛ (лична карта. Име (AK))

Стая за персонала. Name. Година на раждане. Division номер (FK))

Външен ключов атрибут брой отдел по отношение на служителите позволява да се получи пълна информация за конкретен отдел, в който работи даден служител.

Обикновено, съотношението при което се определя външния ключ, наречен дете връзка, а съотношението на които външния ключ се отнася - майка взаимоотношения. Така че, в нашия пример, отношението на персонала - дъщерно дружество, както и съотношението на ОТДЕЛ - майка.

Изискването за референтна цялостност е както следва:

На външен ключ стойност във всеки кортеж атрибут отношения между деца и трябва да съответства на първичен ключ атрибут на комплект, в родителската връзка.

При извършване на операции, свързани с връзки модификация (инсерция, делеция, и актуализиране на съответния ключ стойност) необходими за наблюдение на изискванията за целостта. Помислете за специално изпълнение на тези операции.

1. Всички сделки с дъщерното връзката трябва да отговарят на изискванията на референтна цялост:

- при поставянето на нов елемент, този елемент трябва да има валидна стойност на външните ключови атрибути;

- отстраняване елемент се извършва без ограничение;

- при промяна на елемент от външния ключ, този елемент трябва да получи валидна стойност на външните ключови атрибути.

2. Сделки с коефициент родител се извършват в съответствие със следните правила:

- поставяне на нов елемент се извършва без ограничения;

- отстраняване елемент не трябва да доведе до нарушение на референтна цялост. Ако връзката дете съществува елемент, който се отнася до подвижен елемент на родителски отношения, как да се справят с него? Има три възможни подхода:

а) да ограничи - за изтриване на елемент от родителски връзката не се осъществява, ако връзката дете има поне един елемент, който се отнася до заличава;

б) каскада - заедно с елемента на връзката родител премахва всички референтни детето елементи на връзката;

в) набор NULL - отношения между деца и атрибути външен ключ се задава нулева стойност (всеки СУБД използва собствен метод за определяне на празна стойност); Този подход е възможно, ако не и ограничение изисква стойности за външен ключов атрибут дете правоотношение;

- изменение на стойностите на първичния ключ на съществуващ елемент също така не трябва да нарушава референтна цялост. Също така е възможно едни и същи три подхода:

а) да ограничи - модификация на основния елемент на ключовото връзката родител не е изпълнено, ако едно дете връзка е най-малко един елемент, който се отнася до изменяема;

б) каскада - заедно с елемент на връзката родител променени стойности на атрибути на чуждестранните ключови елементи, съдържаща препратки го дъщерно предприятие;

в) набор NULL - отношения между деца и атрибути външен ключ се задава нулева стойност; Този подход е възможно, ако едно дете отношения към външните ключови атрибути не са задължителни стойности е ограничен.

Например, съотношението комуникация доставка може да бъде определена за SQL MS SQL Server следва. Тъй като съотношението на доставката е съотношението на връзка (съотношение на дете) връзката между доставчика и част (родителски отношения), преди да се определи съотношението на дъщерното дружество е необходимо да се определи родителя.

Определяне на подробностите по-горе.

ДОСТАВЧИКА връзка може да се определи, както следва:

S_ID SMALLINT ИДЕНТИЧНОСТ (1,1) ОГРАНИЧЕНИЯ S_PK първичен ключ,

SNAME VARCHAR (30) NOT NULL,

Сега ние определяме ДОСТАВКА връзка връзка:

Създаване на таблица SP (

S_ID SMALLINT NOT NULL ОГРАНИЧЕНИЯ SP_FK_01 СПРАВКИ S (S_ID), --1

P_ID SMALLINT NOT NULL ОГРАНИЧЕНИЯ SP_FK_02 ЛИТЕРАТУРА P (P_ID), --1

КОЛ INT NOT NULL ОГРАНИЧЕНИЯ SP_CH_01 CHECK (КОЛ> 0)

ОГРАНИЧЕНИЯ SP_PK първичен ключ (S_ID, P_ID) --2

1 - определя от външен ключ; в външен ключ ограничение (СПРАВКА ключови думи) показва таблицата родител, а основният му ключа; Правилото за неизпълнение се определя като премахването ограничи.

2 - се определя от първичния ключ; тъй като в този пример на първичния ключ компонент, определянето се дава като първичен ключ маса ниво ограничение (външния ключ, в този пример, само един регулируем атрибут, ограничение атрибут ниво).