ign="justify"> CREATE PROCEDURE delIzdan
@ nazv nchar (100) ВИДАННЯ WHERE Назва=@ nazv
Для таблиці ПРЕДМЕТ
) Додавання
CREATE PROCEDURE addPredm
@ subj nchar (40),
@ name nchar (100)a int @ b char (10),c char (100) INTO ПРЕДМЕТ (Предмет, Викладач) (@ subj,name)a =@@ERROR @ b=CONVERT (char (10), @ a) @ c= Код помилки + @ b + - дублювання ключа (@ a!=0)c
2) Видалення
CREATE PROCEDURE delPredm
@ nazv nchar (40) ПРЕДМЕТ WHERE Предмет=@ nazv
3.4 Розробка процедур, що відображають помилки маніпулювання даними
Посилальна цілісність може порушитися в результаті операцій, що змінюють стан БД. Таких операцій трьох - вставка, оновлення і видалення кортежів у відносинах.
Таким чином, посилальна цілісність може бути порушена при виконанні однієї з чотирьох операцій:
· Оновлено кортежу в базовому відношенні.
· Видалення кортежу в базовому відношенні.
· Вставка кортежу в залежне ставлення.
· Оновлено кортежу в залежному відношенні.
Одним з основних методів вирішення проблеми є метод каскадування. Каскадування - це дозвіл на виконання необхідної операції, але вносяться при цьому необхідні поправки в інших відносинах так, щоб не допустити порушення посилальної цілісності і зберегти всі наявні зв'язки. Зміна починається в базовому відношенні і каскадно виконується в зв'язковому відношенні. У реалізації цієї стратегії необхідно враховувати наступне: залежне ставлення саме може бути базовим для деякого третього відносини. При цьому може додатково знадобитися виконання будь-якої стратегії і для цього зв'язку і т.д. Якщо при цьому яка-небудь з каскадних операцій (будь-якого рівня) не може бути виконана, то не виконується всі операції, починаючи від первісної, і БД повертається в початковий стан. Важливість цієї стратегії полягає в тому, що чи не порушується зв'язок між кортежами базового і залежного відносин.
Для підтримки цілісності в таблиці ПРЕДМЕТ створимо дві тригера:
) на каскадне видалення
CREATE TRIGGER trDelPredm ON ПРЕДМЕТ @ subj nchar (40) DELETE @ subj=Предмет FROM deletedFROM ВИДАННЯ WHERE Предмет =subj
2) на каскадне додавання
CREATE TRIGGER trAddPredm ON ПРЕДМЕТ @ subj nchar (40) UPDATE @ subj=Предмет FROM insertedІЗДАНІЕ WHERE Предмет =subj
Для підтримки цілісності в таблиці ВИДАННЯ створимо дві тригера:
) на каскадне видалення
CREATE TRIGGER trDelIzd ON ВИДАННЯ @ nazv nchar (100) DELETE @ nazv=Назва FROM deletedFROM СТУДЕНТ WHEREnazv=Назва
2) на каскадне додавання
CREATE TRIGGER trAddIzd ON ВИДАННЯ @ nazv nchar (100) UPDATE @ nazv=Назва FROM insertedСТУДЕНТ WHEREnazv=Назва
ВИСНОВОК
У ході виконання даної роботи були отримані наступні навички:
. Навички проектування баз даних.
. Навички роботи з СУБД Microsoft SQL Server 2008 R2.
В результаті виконання курсового проекту була розроблена структура БД обліку літератури, визначені властивості атрибутів і цілісності даних. Отримана структура забезпечує незалежне зберігання та ведення даних про видання, предметі, взятої літературі і т. Д.
Пропонована структура забезпечує виключення ряду аномалій, таких як надмірність, додавання і видалення різних даних незалежно один від одного. Це підтверджується тим, що структура розроблена на підставі алгоритму нормалізації і приведена до 3НФ.
В якості основних результатів контрольної роботи можна виділити наступне:
1. Проаналізовано предметна область і сформульовані основні вимоги для розробки БД.
2. Визначено обмеження ведення даних у вигляді функціональних залежностей між атрибутами.
. Розроблена структура БД і приведена до 3НФ на підставі заданих функціональних залежностей і алгоритму нормалізації.
. Визначено основні властивості атрибутів для кожної таблиці БД.
. Запропоноване опис і структура БД може бути використана для практичної реалізації для обліку даних про тестування.
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ
1. Дейт К. Введення в системи баз даних. М .: Вільямс 2001.
2. Т. К...