DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

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

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Звіт до лабораторної роботи № 6: Віртуальні таблиці в MS SQL Server

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут післядипломної освіти
Факультет:
Інститут післядипломної освіти
Кафедра:
Кафедра програмного забезпечення

Інформація про роботу

Рік:
2014
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Бази даних
Група:
ПЗ-11
Коротко про документ

Про що ця робота

У звіті до лабораторної роботи досліджено створення та модифікацію віртуальних таблиць у MS SQL Server. Реалізовано підсистему розмежування прав доступу до даних на основі уявлень.

У роботі розглядаються

  • Віртуальні таблиці
  • MS SQL Server
  • Бази даних
  • Розмежування доступу
  • SQL запити
  • Створення користувачів

Зміст і розділи

  1. Мета
  2. Хід роботи
  3. Вправа 1
  4. Вправа 2
  5. Вправа 3
  6. Висновки
Для кого:Студенти технічних спеціальностей та викладачі баз даних.
Викладачі:Павич Н.Я.

Ключові поняття

віртуальна таблицяViewMS SQL Serverбаза данихкористувачправа доступузапитмодифікаціятаблицяроль

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" ІНСТИТУТ ПІСЛЯДИПЛОМНОЇ ОСВІТИ / ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №6 на тему: «Віртуальні таблиці в MS SQL Server» з курсу: "Бази даних" Львів – 2014 Мета: Вивчення синтаксису створення та модифікації віртуальних таблиць. Засвоєння принципів представлення даних для різних груп користувачів. Хід роботи Завдання: Виконати усі вправи вказані у вказівках до лабораторної роботи (у звіті вказати усі зроблені при цьому зміни у структурі навчальної бази даних). Реалізувати віртуальні таблиці для бази індивідуального завдання, орієнтовані на спрощення сприйняття інформації користувачем (багатотабличні запити). Реалізувати підсистему розмежування прав доступу до даних у базі індивідуального завдання на основі віртуальних таблиць. Врахувати, що різні користувачі можуть мати різні рівні повноважень (див. вправу 3). Оформити звіт (у звіті вказати структуру бази даних індивідуального завдання до і після реалізації розмежування доступу до даних). Вправа 1. Доповніть перелік полів віртуальної таблиці полями з таблиці Salers. Дослідіть можливість вставки та модифікації даних засобами такої віртуальної таблиці. Створимо новий логін: “Serres” (рис. 1-2): / Рис. 1. Команда створення логіна / Рис. 2. Створення логіна Тепер створимо відповідного користувача для нашої бази даних (рис. 3-4): / Рис. 3. Команда створення користувача БД / Рис. 4. Створення користувача БД Підключимося до БД за під даним користувачем і наступним запитом створимо для нього віртуальну таблицю vCustomers (рис. 5): CREATE VIEW [dbo].[vCustomers] AS SELECT cus.cname as Customer, cus.city CustomerCity, cus.rating, sal.comm as SalerProfit, sal.city as SalerCity FROM dbo.Customers cus JOIN Salers sal ON cus.snum = sal.snum WHERE sal.sname = SUSER_SNAME() / Рис. 5. Створення таблиці vCustomers Для перевірки результату виконаємо простий запит до цієї таблиці (рис. 6): SELECT * FROM vCustomers / Рис. 6. Результат запиту до vCustomers Відкриємо дану таблицю для редагування. Зауважимо, що дані можна змінювати, але додати нові колонки не вдасться (рис. 7): / Рис. 7. vCustomers після редагування Виконаємо попередній запит до модифікованих даних (рис. 8): / Рис. 8. Виконання запиту до vCustomers Вправа 2. Запропонуйте та реалізуйте модифікації (можливо кілька варіантів) навчальної бази даних, щоб кожному замовнику можливо було призначити кілька альтернативних продавців. Для модифікованої бази даних створіть аналогічну до vCustomers віртуальну таблицю, що забезпечить для продавця можливість роботи з усіма замовниками, яким його призначено. Врахуйте, що кількість продавців, які призначені замовнику, може бути довільною. Створимо ще одну таблицю Relations, для проставлення відношень продавців до покупців (рис. 9): / Рис. 9. Таблиця Relations Створимо користувача Serres та побудуємо для нього віртуальну таблицю vSalersCustomers. Для цього підключимося під цим користувачем до бази і виконаємо наступний скрипт (рис. 10): CREATE VIEW [dbo].[vSalersCustomers] AS SELECT cus.cname as Customer, cus.city CustomerCity, cus.rating, sal.sname as Saler, sal.comm as SalerProfit, sal.city as SalerCity FROM dbo.Customers cus JOIN Salers sal ON cus.snum = sal.snum WHERE cus.cnum in ( SELECT cnum FROM Relations WHERE sname = SUSER_SNAME() ) / Рис. 10. Створення таблиці vSalersCustomers Перевіримо результат наступним запитом (рис. 11): / Рис. 11. Вибірка всіх даних з таблиці vSalersCustomers Таким чином продавець Serres може працювати з цією віртуальною таблицею. Вправа 3. Запропонуйте та реалізуйте модифікації навчальної бази даних (можливо кілька варіантів), щоб для ряду продавців було можливим задати особливий статус (керівника підприємства), а саме забезпечити для них доступ до інформації про усіх замовників. Для модифікованої бази даних створіть аналогічну до vCustomers віртуальну таблицю, що забезпечить виконання поставленої задачі. Створимо таблицю керівників ChiefSalers (рис. 12): / Рис.12. Таблиця ChiefSalers Доповнимо попередній запит, умовою, якщо користувач в списку керівників то йому формується таблиця зі всіма записами, цей запит матиме вигляд: CREATE VIEW [dbo].[vNewSalersCustomers] AS SELECT cus.cname as Customer, cus.city CustomerCity, cus.rating, sal.sname as Saler, sal.comm as SalerProfit, sal.city as SalerCity FROM dbo.Customers cus JOIN Salers sal ON cus.snum = sal.snum WHERE cus.cnum in ( SELECT cnum FROM Relations WHERE sname = SUSER_SNAME() ) union SELECT cus.cname as Customer, cus.city CustomerCity, cus.rating, sal.sname as Saler, sal.comm as SalerProfit, sal.city as SalerCity FROM dbo.Customers cus JOIN Salers sal ON cus.snum = sal.snum WHERE SUSER_SNAME() in ( SELECT sname FROM ChiefSalers ) Зайдемо в базу під користувачем Serres та запустимо його, віртуальна таблиця матиме вигляд (рис. 13): / Рис. 13. Віртуальна таблиця для користувача Serres Як бачимо вона містить лише 3 записи, як і в попередній вправі, оскільки цей користувач не є керівником. Зайдемо під користувачем Peel і сформуємо таблицю для нього (рис. 14):  Рис. 14. Віртуальна таблиця для користувача Peel Як бачимо таблиця містить всі можливі записи, оскільки користувач є в списку керівників. Висновки: На даній лабораторній роботі я вивчив синтаксис створення та модифікації віртуальних таблиць. Засвоїв принципи представлення даних для різних груп користувачів.
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!