Зміст

1. Нормальні форми відносин

1.1. Етапи розробки бази даних

1.2. Критерії оцінки якості логічної моделі даних

1.3 Адекватність бази даних предметної області

1.4 Легкість розробки й супроводу бази даних

1.5 Швидкість операцій відновлення даних (вставка, відновлення, видалення)

1.6 Швидкість операцій вибірки даних

1.7 Основний приклад

1.8 1НФ (Перша Нормальна Форма)

1.8.1 Аномалії

1.8.1.1 Аномалії відновлення

1.8.1.2 Аномалії вставки (INSERT)

1.8.1.3 Аномалії відновлення (UPDATE)

1.8.1.4 Аномалії видалення (DELETE)

1.8.2 Функціональні залежності

1.8.2.1 Визначення функціональної залежності

1.8.2.2 Функціональні залежності відносин і математичне поняття функціональної залежності

1.9 2НФ (Друга Нормальна Форма)

1.9.1 Аналіз декомпозированных відносин

1.9.2 Аномалії

1.9.2.1 Аномалії, що залишилися, вставки (INSERT)

1.9.2.2 Аномалії, що залишилися, відновлення (UPDATE)

1.9.2.3 Аномалії, що залишилися, видалення (DELETE)

1.10 3НФ (Третя Нормальна Форма)

1.10.1 Алгоритм нормалізації (приведення до 3НФ)

1.11 Аналіз критеріїв для нормалізованих і ненормалізованих моделей даних

1.12 Порівняння нормалізованих і ненормалізованих моделейОшибка! Закладка не определена.

1.13 OLTP й OLAP-системи

1.14 Коректність процедури нормалізації - декомпозиція без втрат. Теорема Хеза

2. Транзакції й цілісність баз даних

2.1 Пример порушення цілісності бази

2.2 Поняття транзакції

2.3 Обмеження цілісності

2.4 Докласифікация обмежень цілісності

2.4.1 Класифікація обмежень цілісності по способах реалізації

2.4.2 Класифікація обмежень цілісності за часом перевірки

2.4.2 Класифікація обмежень цілісності по області дії

2.5 Обмеження домена

2.6 Обмеження атрибута

2.7 Ограничения кортежу

2.8 Ограничения відносини

2.9 Обмеження бази даних

2.10 Реалізація декларативних обмежень цілісності засобами SQLОшибка! Закладка не определена.

2.11 Загальні принципи реалізації обмежень засобами SQL

2.12 Синтаксис обмежень стандарту SQL

2.13 Синтаксис операторів SQL, що використають обмеження

Висновок

2.12 Синтаксис операторів SQL, що використають обмеження

Стандарт SQL описують наступні оператори, у яких може бути використані обмеження:

  • CREATE DOMAIN - створити домен
  • ALTER DOMAIN - змінити домен
  • DROP DOMAIN - видалити домен
  • CREATE TABLE - створити таблицю
  • ALTER TABLE - змінити таблицю
  • DROP TABLE - видалити таблицю
  • CREATE ASSERTION - створити твердження
  • DROP ASSERTION - видалити твердження
  • COMMIT WORK - зафіксувати транзакцію
  • SET CONSTRAINTS - установити момент перевірки обмежень

CREATE DOMAIN Ім'я домена [AS] Тип даних

[DEFAULT Значення за замовчуванням][Ім'я обмеження] Обмеження check [Атрибути обмеження]

Цей оператор задає домен, на основі якого можна визначатиколонки таблиць. Так, як ім'я колонки, що буде заснована на цьомудомені заздалегідь невідомо, те в обмеженні CHECK домена для посилання на значення цьогодоменавикористається ключове слово VALUE. У конкретній таблиціСУБД замінить слово VALUE на ім'я колонки таблиці.

Приклад 18. Наведений нижче оператор створює домен Salary на основі цілочисельного типу даних, причому значення із цьогодомена не можуть приймати непозитивні значення (але можуть приймати значення NULL!). За замовчуванням це обмеження перевіряється негайно, але може бути й відкладеним:

CREATE DOMAIN Salary AS integer CHECK (VALUE > 0) DEFERRABLE INITIALLY IMMEDIATE

ALTER DOMAIN Ім'я домена{SET DEFAULT Значення за замовчуванням} | {DROP DEFAULT} | {ADD [Ім'я обмеження] Обмеження check [Атрибути обмеження]} | {DROP CONSTRAINT Ім'я обмеження}

Цей оператор змінює наявних домен. Стандарт забороняє вносити кілька змін однією командою ALTER DOMAIN. Тобто якщо потрібно видалити обмеження CHECK і додати значення за замовчуванням, то прийде виконати два оператори ALTER DOMAIN.

DROP DOMAIN Ім'я домена CASCADE | RESTRICT

Цей оператор знищує наявних домен. Якщо зазначено опцію RESTRICT, то домен не знищується, якщо є посилання на нього зі стовпців таблиць. Якщо зазначено опцію CASCADE, то відбуваються наступні дії:

  • Тип данихдомена передається стовпцям, заснованим на цьомудомені.
  • Якщо стовпець не має значення за замовчуванням, а для домена значення за замовчуванням визначено, то воно стає значенням за замовчуванням для стовпця.
  • Всі обмеження домена стають обмеженнями стовпця.

CREATE TABLE Ім'я таблиці( {Визначення стовпця | [Обмеження таблиці]}.,..)

Визначення стовпця::= Ім'я стовпця {Ім'я домена | Тип даних [Розмір]} [Обмеження стовпця…]
[DEFAULTЗначення за замовчуванням]

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

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

Приклад 19.

CREATE TABLE Salespeaple

(Salespeaple_Id Id_Nums PRIMARY KEY,

Fam CHAR(20) NOT NULL,

Im CHAR(15),

BirthDate DATE,

Salary Salary_Domain DEFAULT 1000,

City_Id INTEGER REFERENCES City ON UPDATE CASCADE ON DELETE RESTRICT,

District_Id INTEGER,

CONSTRAINT AltKey UNIQUE(Fam, Im, BirthDate),

CHECK (City_Id IS NOT NULL OR District_Id IS NOT NULL),

FOREIN KEY District_Id REFERENCES District ON UPDATE CASCADE ON DELETE RESTRICT)

Цей оператор створює таблицю Salespeaple з колонками (Salespeaple_Id, Fam, Im, BirthDate, Salary, City_Id, District_Id) і наступними обмеженнями:

  • Колонка Salespeaple_Id успадковує всі обмеження домена Id_Nums. Крім того, ця колонка утворить первинний ключ таблиці (отже, не допускає NULL-значень).
  • Колонка Fam не допускає NULL-значень.
  • Колонка Salary успадковує всі обмеження домена Salary_Domain. Крім того, ця колонка має значення за замовчуванням1000.
  • Колонка City_Id є зовнішнім ключем, що посилається на первинний ключ таблиці City. При зміні первинного ключа в таблиці City відповідні значення зовнішнього ключа в таблиці Salespeaple будуть каскадно змінені. При видаленні рядка з таблиці City буде виконуватися перевірка, немає чи посилань на видаляє строку, що, з таблиці Salespeaple. Якщо такі посиланнянайдуться, то операція видалення в таблиці City буде відкинута.
  • Колонка District_Id також є зовнішнім ключем, що посилається на первинний ключ таблиці District. Цей зовнішній ключ, на відміну від попереднього, визначене як обмеження таблиці. Дії, певні по посиланню аналогічні попередньої.
  • Колонки (Fam, Im, BirthDate) утворять альтернативний ключ таблиці. Це обмеження має найменування AltKey.
  • Колонки City_Id й District_Id не можуть одночасно приймати NULL-значення (хоча кожна з них окремо допускає використання NULL-значень).

ALTER TABLE Ім'я таблиці{ADD [COLUMN] Визначення стовпця} | {ALTER [COLUMN] Ім'я стовпця {SET DEFAULT Значення за замовчуванням | DROP DEFAULT}} | {DROP [COLUMN] Ім'я стовпця RESTRICT | CASCADE} | {ADD Обмеження таблиці} | {DROP CONSTRAINT Ім'я обмеження RESTRICT | CASCADE}

Цей оператор дозволяє змінювати наявну таблицю. У таблиці можна видаляти або додавати колонки й/або обмеження. Крім того, для колонок можна міняти значення за замовчуванням.

DROP TABLE Ім'я таблиці CASCADE | RESTRICT

Цей оператор дозволяє видаляти наявну таблицю. Разом з таблицею віддаляються й обмеження, певні для цієї таблиці.

Якщо зазначено параметр RESTRICT, то таблиця віддаляється тільки якщо немає ніяких посилань на цю таблицю в інших обмеженнях або поданнях.

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

CREATE ASSERTION Ім'я твердженняОбмеження check
[Атрибути обмеження]

Цей оператор дозволяє створювати твердження - тобто обмеження, що не є частиною визначення домена, колонки або таблиці.

Предикат CHECK, що входить у визначення твердження, може бути досить складним і міститипосилання на кілька таблиць.

Приклад 20.

CREATE ASSERTION Check_Pay CHECK (Salespeaple.Salary IS NOT NULL) OR

(Salespeaple.Commission IS NOT NULL) DEFERRABLE INITIALLY IMMEDIATE

DROP ASSERTION Ім'я твердження

Цей оператор дозволяє видаляти наявне твердження.

COMMIT WORK

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

SET CONSTRAINT {Ім'я обмеження.,.. | ALL}{DEFERRED | IMMEDIATE}

Цей оператор дозволяє під час виконання транзакції міняти момент перевірки всіх (ALL) або деяких обмежень. Цей оператор діє тільки на обмеження, певні як DEFERRABLE ( відкладає потенційно). Якщо обмеження A перебувало в стані IMMEDIATE ( перевіряє негайно), то оператор SET CONSTRAINT A DEFERRED переводитьйого в стан DEFERRED (з відкладеною перевіркою) і тоді всі операції, що потенційно можуть порушити це обмеження, будуть виконуватися без перевірки. Перевірка буде зроблена наприкінці транзакції або в момент подачі команди SET CONSTRAINT A IMMEDIATE.


Висновок

При розробці бази даних можна виділити кілька рівнів моделювання:

  • Сама предметна область
  • Модель предметної області
  • Логічна модель даних
  • Фізична модель даних
  • Властиво база даних і додатка

Ключові рішення, що визначають якість майбутньої бази даних заставляються на етапі розробки логічної моделі даних. "Гарні" моделі даних повинні задовольняти певним критеріям:

  • Адекватність бази даних предметної області
  • Легкість розробки й супроводу бази даних
  • Швидкість виконання операцій відновленняданих (вставка, відновлення, видалення)
  • Швидкість виконання операцій вибірки даних

Перша нормальна форма (1НФ) - це звичайне відношення. Відношення в 1НФ має наступні властивості:

  • У відношенні немає однакових кортежів.
  • Кортежі не впорядковані.
  • Атрибути не впорядковані.
  • Всі значення атрибутів атомарні.

Відносини, що перебувають в 1НФє "поганими" у тому розумінні, що вони не задовольняють обраним критеріям - є велика кількість аномалій відновлення, для підтримки цілісності бази даних потрібна розробка складних тригерів.

Відношенняперебуває в другій нормальній формі (2НФ) тоді й тільки тоді, коли відношенняперебуває в 1НФ і немає неключових атрибутів, що залежать від частини складного ключа.

Відносини в 2НФ "краще", чим в 1НФ, але ще недостатньо "гарні" - залишається частина аномалій відновлення, як і раніше потрібні тригери, що підтримують цілісність бази даних.

Відношенняперебуває в третій нормальній формі (3НФ) тоді й тільки тоді, коли відношенняперебуває в 2НФ і всі неключові атрибути взаємно незалежні.

Відносини в 3НФє самими "гарними" з погляду обраних нами критеріїв - усунуті аномалії відновлення, потрібні тільки стандартні тригери для підтримки посилальної цілісності.

Перехід від ненормалізованих відносин до відносин в 3НФ може бути виконаний за допомогою алгоритму нормалізації. Алгоритм нормалізації полягає в послідовній декомпозиції відносин для усунення функціональних залежностей атрибутів від частини складного ключа (приведення до 2НФ) і усунення функціональних залежностей неключових атрибутів друг від друга (приведення до 3НФ).

Коректність процедури нормалізації (декомпозиція без втрати інформації) доводиться теоремою Хеза.

Транзакція - це неподільна, з погляду впливу на СУБД, послідовність операцій маніпулювання даними, що виконуються за принципом "всі або нічого", і переводить базу даних з одного цілісного стану в інший цілісний стан.

Транзакціяволодіє чотирма важливими властивостями, відомими як властивості АСІД:

  • (А) Атомарність.
  • (С) Погодженість.
  • (І) Ізоляція.
  • (Д) Довговічність.

База даних перебуває в погодженому стані, якщо для цього стану виконані всі обмеження цілісності.

Обмеження цілісності - це деяке твердження, що може бути щирим або помилковим залежно від стану бази даних.

Обмеження цілісності класифікуються декількома способами:

  • По способах реалізації.
  • За часом перевірки.
  • По області дії.

По способах реалізації розрізняють:

  • Декларативну підтримку обмежень цілісності - засобамимови визначення даних (DDL).
  • Процедурну підтримку обмежень цілісності - за допомогою тригерів і збережених процедур.

За часом перевірки обмеження діляться на:

  • обмеження, що перевіряють Негайно.
  • Обмеженняз відкладеною перевіркою.

По області дії обмеження діляться на:

  • Обмеження домена.
  • Обмеження атрибута.
  • Обмеження кортежу.
  • Обмеження відносини.
  • Обмеження бази даних.

Стандарт мови SQL підтримує тільки декларативні обмеження цілісності, реалізовані як:

  • Обмеження домена.
  • Обмеження, що входять у визначення таблиці.
  • Обмеження, що зберігаються в базі даних у вигляді незалежних тверджень (assertion).

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

Характеристики работы

Диплом

Количество страниц: 80

Бесплатная работа

Закрыть

Розробка бази даних для сфери торгівлі комп'ютерною технікою

Заказать данную работу можно двумя способами:

  • Позвонить: (097) 844–69–22
  • Заполнить форму заказа:
Не заполнены все поля!
Обязательные поля к заполнению «имя» и одно из полей «телефон» или «email»

Чтобы у вас была возможность удостовериться в наличии вибраной работы, и частично ознакомиться с ее содержанием,ми можем за желанием отправить часть работы бесплатно. Все работы выполнены в формате Word согласно всех всех требований относительно оформления работ.