- •Рецензія на курсову роботу
- •1.Тема роботи: Проектування бази даних салону з продажу автомобільної техніки 2
- •1 Моделювання реляційної структури бази даних
- •Систематизація вимог до бази даних
- •Семантичне моделювання даних
- •1.3 Нормалізація структури даних
- •2 Створення бази даних і базових таблиць
- •2.1 Вибір технологічного інструментарію для реалізації проекту
- •2.2 Розробка сценаріїв для створення бази даних і базових таблиць
- •2.3 Забезпечення декларативної цілісності реляційних даних
- •3 Розробка об’єктів для доступу до реляційних даних
- •3.1 Розробка об’єктів для маніпулювання даними
- •3.2 Розробка об’єктів для обробки подій бази даних
- •3.3 Розробка об’єктів для відображення реляційних даних
- •Висновки та пропозиції
- •Перелік посилань
- •Додатки
3 Розробка об’єктів для доступу до реляційних даних
3.1 Розробка об’єктів для маніпулювання даними
Основним об’єктом для маніпулювання даними є збережені процедури. Збережена процедура – це відкомпільований сценарій послідовного виконання операторів SQL, який зберігається на сервері баз даних під унікальним ім'ям. Збережені процедури дозволяють підвищити продуктивність бази даних, розширюють можливості програмування запитів і підтримують функції безпеки, які недоступні при використанні команд SQL, що безпосередньо передаються для обробки на сервер. Продуктивність бази даних підвищується за рахунок локального (по відношенню до бази даних) зберігання програмного сценарію, прекомпіляції початкового тексту та кешування.
У процесі передачі кожної команди (або пакету команд) SQL на сервер баз даних для обробки, СУБД повинна визначити, чи є у відправника права на виконання команд і, чи допустимі самі команди. Перевіривши права доступу і синтаксис команд, SQL Server будує план виконання запиту. Збережені процедури, у даному випадку більш ефективні, оскільки зберігаються на сервері баз даних і, при запиті, відразу передаються на виконання. Тобто, один оператор, переданий на сервер баз даних, дозволяє викликати складний сценарій SQL, який міститься в збереженій процедурі, що дозволяє уникнути передачі через мережу великої кількості команд.
Збережені процедури поділяються на наступні категорії: системні, локальні, тимчасові, розширені.
Системні збережені процедури. Системні збережені процедури знаходяться в системній базі даних екземпляра серверу баз даних. У MS SQL – це база даних Master. Як правило, їх імена починаються з префікса sp_. Вони призначені для підтримки функцій СУБД. До них відносяться: вибірка даних з системних таблиць програмними додатками, адміністрування бази даних і управління безпекою.
Локальні збережені процедури. Локальні збережені процедури зберігаються в користувальницьких базах даних. Як правило, їх створюють для вирішення певних задач у базі даних. Локальні збережені процедури також дозволяють розширити функціональність системних збережених процедур. Для того, щоб створити на основі системної збереженої процедури локальну збережену процедуру, потрібно зробити копію системної процедури, зберегти її, як локальну процедуру, а потім зробити необхідні зміни.
Тимчасові збережені процедури. Тимчасова збережена процедура схожа на локальну. Але вона існує лише до закриття з'єднання, в якому створена, або до завершення роботи серверу баз даних. Тимчасові збережені процедури знаходяться в тимчасовій базі даних, яка створюється наново при кожному запуску серверу баз даних і видаляється з усім вмістом після завершення його роботи. Для MS SQL ім'я такої бази – TempDB. Тимчасові збережені процедури корисні при роботі з ранніми версіями СУБД, які не підтримують повторне використання планів виконання, а також у тих випадках, коли немає сенсу зберігати процедуру, оскільки значення її команд постійно змінюється.
Розширені збережені процедури. У випадку, якщо розробникам ІС необхідно використати складні програми на інших мовах програмування (C++, JAVA і ін.), ці програми можна викликати із СУБД засобами збережених процедур особливого типу, які називаються розширеними збереженими процедурами. Розширені збережені процедури звертаються до зовнішніх програм, скомпільованих у вигляді 32-розрядних динамічних бібліотек програмного коду – DLL.
Основні переваги збережених процедур:
з метою захисту конфіденційної інформації користувачам надається дозвіл тільки на виконання збереженої процедури, а не на доступ до даних, що знаходяться в базових таблицях;
поряд із можливістю передачі в збережену процедуру значень змінних, існує можливість отримання значень із збереженої процедури;
збережені процедури можуть містити управляючі оператори Transact-SQL, включаючи оголошення й присвоєння значень змінним, оператори IF, CASE та GOTO;
оскільки збережена процедура уявляє собою набір операторів Transact-SQL, то в одній процедурі можуть одночасно бути присутніми такі оператори управління даними, як SELECT, INSERT, UPDATE та DELETE;
оскільки всі оператори збереженої процедури компілюються завчасно ще до її виконання, то це є засобом підвищення швидкості й ефективності роботи з даними.
Для створення збережених процедур використовують оператор CREATE PROCEDURE. Сценарій створення збережених процедур надається у лістину Д.
у 1 рядку зазначений оператор CREATE PROCEDURE, показує на необхідність створення збереженої процедури під ім’ям ДобавитьКлиента;
потім починається перерахування параметрів процедури, в які входять атрибути з таблиць Человек, Адрес, Клиент;
рядок 16 містить конструкцію AS, яка означає початок опису логіки збереженої процедури;
у 17 рядку оголошується змінна LocalError для збереження даних про помилки
у рядку 18 знаходиться оператор, що вказує на початок трансакції.
у рядках 19-31 відбувається додавання даних у таблиці Человек, Адрес, Клиент
у останніх рядках відбувається реалізація поведінки процедури у випадку виникнення помилки, та умови завершення трансакцій.
Були створені також збережені процедури для: додавання співробітника, постачальника, автомобіля, та покупки, код яких повністю аналогічний зазначеному.
Для створення процедур з модифікації та видалення даних було використано аналогічну схему, лише з операторами UPDATE та DELETE відповідно. Створено процедури змінити клієнта, співробітника, постачальника і автомобіль. Процедуру змінити покупку було вирішено не створювати з міркувань безпеки клієнта, від махінацій працівників, які могли б змінити умови покупки. Процедури видалити клієнта, співробітника та постачальника. Видалити покупку не використано з уже зазначених причин, а видалити автомобіль не є необхідною, так як є статус автомобіля, де може бути записано, що він проданий, а інформація буде зберігатися задля цілісності табл. Покупка, та можливого гарантійного обслуговування. Взагалі з процедурою видалити треба бути дуже обережним, так як вона видаляє багато інформації з багатьох таблиць для підтримки цілісності, наприклад видалити клієнта видаляє також всі факти його покупок, про це є попередження в транзакції.
Перевірку процедур виконують з використанням оператору EXEC, ця первірка показала, що процедури працюють корректно та змінюють інформацію в усіх необхідних таблицях, не порушуючи цілісність.
