кту бази даних, в якому кожен факт з'являється лише в одному місці, тобто виключена надмірність інформації. Це робиться не стільки з метою економії пам'яті, скільки для виключення можливої ??суперечливості збережених даних. Нормальна форма Бойса-Кодда вимагає, щоб в таблиці був тільки один потенційний первинний ключ. Найчастіше в таблиць, що знаходяться в третій нормальній формі, так і буває, але не завжди. Якщо виявився другий стовпець (комбінація стовпців), що дозволяє однозначно ідентифікувати рядок, то для приведення до нормальної форми Бойса-Кодда такі дані треба винести в окрему таблицю.
Слідуючи даними посібникам, була створена наступна діаграма:
Рисунок 8 - Даталогіческая модель
5. Запити до БД на рівні уявлень і параметричні запити на рівні функцій користувача і збережених процедур
Тепер ми можемо заповнити деякі таблиці, такі як Рекламні щити, Фірми-клієнти і т.д. Це також можна зробити засобами Management Studio:
Рисунок 9 - Заповнення таблиць засобами Management Studio
Уявлення дозволяють об'єднувати декілька таблиць в одну і фільтрувати їх по зумовленої фільтру. Приміром, є таблиця [Договори з фірмами клієнтами], але вибірка з цієї таблиці не дасть повної інформації про те рекламному оголошенні, яке зараз розташоване на щиті. Але можна згідно полю [№ реклами] приєднати таблицю [Рекламні оголошення], в якій є більш повна інформація. На малюнку 9 зображено уявлення, що відображає повну інформацію про рекламних оголошеннях і те, на якому щиті вони розташовані. Конструктор уявлень дозволяє, не вникаючи детально в синтаксис SQL створювати необхідні об'єднання і фільтрацію таблиць.
Рисунок 10 - Конструктор уявлень
У базі даних так само реалізовані запити: по конструкції щитів.
Малюнок 11 - Результат запиту
І запит на знаходження договорів з фірмами-клієнтами за певний проміжок часу.
Рисунок 12 - Результат запиту
6. Заходи щодо захисту (опис ролей) і забезпеченню цілісності (опис тригерів) бази даних
. 1 Тригери
Тригер - це особливий різновид збереженої процедури, виконувана автоматично при виникненні події на сервері бази даних. Тригери мови обробки даних виконуються по подіях, викликаним спробою користувача змінити дані за допомогою мови обробки даних. Подіями DML є процедури INSERT, UPDATE або DELETE, застосовувані до таблиці або поданням. Ці тригери спрацьовують при запуску будь-якого допустимого події незалежно від того, чи впливає воно на які-небудь рядка таблиці.
Цілісність бази даних - відповідність наявної в базі даних інформації її внутрішньою логікою, структурі і всім явно заданими правилами. Кожне правило, оскiльки воно деяке обмеження на можливий стан бази даних, називається обмеженням цілісності.
Цілісність БД не гарантує достовірності що міститься в ній інформації, але забезпечує, принаймні, правдоподібність цієї інформації, відкидаючи свідомо неймовірні, неможливі значення.
Створимо тригер для таблиці Договори з фірмами-клієнтами. Встановимо, що вартість договору не може бути менше 2000 руб.
Малюнок 13 - Тригер обмеження вартості договору
Тепер при додаванні договори вартістю менше 2000 виводитиметься помилка.
Малюнок 14 - Помилка у вартості договору
Компанія не розміщує рекламу на термін більше одного півроку. Якщо потрібен більший час - договір необхідно переукладати. Створимо тригер обмежує термін між датою розміщення і датою зняття рекламного оголошення.
Малюнок 15 - Тригер обмеження терміну розміщення реклами
Тепер при додаванні нового договору, в якому термін розміщення реклами більше півроку буде виводитися помилка.
Малюнок 16 - Помилка в терміні розміщення реклами
6.2 Ролі
Для прикладу налаштування в мережі розробника створений тестовий користувач на комп'ютері LENOVO1234, з ім'ям 1 raquo ;. На сервері необхідно створити ім'я для входу для нього.
Малюнок 17 - Створення користувача бази даних
Малюнок 18 - Ролі сервера тестового користувача
Далі необхідно додати користувача в базу даних Рекламне агентство raquo ;, і теж задати роль.
Малюнок 19 - Створення користувача бази даних