ПРОФЕСІЙНЕ ВИКОРИСТАННЯ SQL ТА PL/SQL НА ПРИКЛАДІ РСУБД ORACLE11G - Робоча програма навчальної дисципліни (Силабус)

Реквізити навчальної дисципліни

Рівень вищої освіти Перший (бакалаврський)
Галузь знань 12 Інформаційні технології
Спеціальність 126 Інформаційні системи та технології
Освітня програма Інтегровані інформаційні системи, Інформаційне забезпечення робототехнічних систем, Інформаційні управляючі системи та технології
Статус дисципліни Вибіркова
Форма навчання очна(денна)/заочна/дистанційна
Рік підготовки, семестр 2 курс, осінній семестр
Обсяг дисципліни 120 годин (36 годин – Лекції, 18 годин – Лабораторні, 66 годин – СРС)
Семестровий контроль/ контрольні заходи Залік/модульна контрольна робота
Розклад занять http://rozklad.kpi.ua
Мова викладання Українська
Інформація про керівника курсу / викладачів

Лектор: к.т.н., Ульяницька Ксенія Олександрівна

k.ulianytska@kpi.ua

моб. +38(050)355-62-15

Лабораторні: к.т.н., доцент, Бойко Олександра Володимирівна

alexbb14112016@gmail.com

моб. +38(097)294-40-83

Розміщення курсу https://campus.kpi.ua

Програма навчальної дисципліни

Опис навчальної дисципліни, її мета, предмет вивчання та результати навчання

Опис дисципліни

При проходженні даної дисципліни, студенти познайомляться з конструювання складних запитів, аналізом та оптимізацією відпрацювання SQL запитів на сервері РСУБД Oracle 11g. На лабораторних заняттях повторюватимуть етапи проектування реляційних баз даних, відпрацювання різних конструкцій SQL-запитів, відпрацюють на практиці методи де-нормалізації. В курсі передбачений контроль якості отриманих знань у вигляді експрес-контрольних та модульних контрольних робіт. На лекціях проводитимуться практичні заняття по опануванню принципів побудови складних запитів, застосуванню обмежень цілісності для оптимізації відпрацювання SQL-запитів.

Предмет навчальної дисципліни

Повний цикл проектування та реалізації баз даних, поняття цілісності даних, SQL запити в розділі DML та DQL, оптимізація планів відпрацювання запитів, де-нормалізація, супроводження баз даних.

Міждисциплінарні зв’язки

Дисципліна Професійне використання SQL та PL/SQL на прикладі РСУБД Oracle11g базується на дисциплінах:

Мета навчальної дисципліни

Підготовка висококваліфікованих фахівців, які володіють методами, моделями та засобами побудови реляційних баз даних, методами оптимізації та підвищення ефективності роботи реляційних баз даних для відпрацювання складних SQL-запитів.

Основні завдання навчальної дисципліни

Знання
  • повного циклу розробки реляційних баз даних (РБД);
  • нормальних форм для коректної фізичної реалізації реляційних баз даних;
  • обмежень цілісності реляційних баз даних;
  • індекси, що застосовуються в реляційних системах управління базами даних (СУБД) (Oracle, MS SQL Server);
  • поняття транзакцій, журнали транзакцій, відпрацювання транзакцій в реляційних СУБД;
  • види та рівні блокування;
  • методи оптимізації та підвищення ефективності відпрацювання SQL-запитів.
Уміння
  • відпрацьовувати повний цикл етапів проектування реляційних баз даних на основі відомих методів побудови РБД та сучасних реляційних СУБД;
  • будувати складені запити, параметризовані запити мовою SQL, застосування оператору SELECT з різним конструктивним наповненням;
  • працювати та знати механізми відпрацювання запитів в реляційних СУБД, поняття транзакцій;
  • знати механізми блокування транзакцій, рівні блокування в реляційних СУБД;
  • застосовувати обмеження цілісності по даталогічній моделі та в результаті нормалізації бази даних;
  • застосування та обслуговування індексів реляційних СУБД;
  • аналізувати плани виконання SQL-запитів;
  • оптимізація виконання запитів в реляційних СУБД.

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

Пререквізити

Вміти проводити інфологічне та даталогічне моделювання; на базі нормалізованої даталогічної моделі вміти будувати фізичну модель даних в РСУБД Oracle 11g; виконувати прості однотабличні запити та бути ознайомленим з конструкцією JOIN для опанування більш складних запитів.

Постреквізити

Створення складних запитів з використанням конструкцій JOIN, GROUP BY; аналіз та методи оптимізації виконання SQL-запитів – підвищення ефективності роботи РСУБД. Після проходження дисципліни студенти зможуть вільно працювати з інфологічними та даталогічними моделями, оптимізувати SQL-запити за певними методами, застосовувати складні конструкції про створенні SQL-запитів.

Зміст навчальної дисципліни

Очна форма

Лекційні заняття

Розділ 1. Оглядовий матеріал по спорідненому предмету. Розділ 2. Відпрацювання різних видів запитів на тестовій базі даних. Розділ 3. Реляційна СУБД на прикладі серверу MS SQL Server Розділ 4. Обмеження цілісності реляційних баз даних. Розділ 5. Механізми роботи реляційних баз даних. Розділ 6. Адміністративні функції для роботи в реляційних СУБД Розділ 7. Оптимізація виконання запитів в реляційних СУБД

Лабораторні заняття
  1. Встановлення та налаштування візуального інтерфейсу роботи з СУБД Oracle Database ХE 11g/18c. Відпрацювання скриптів (відновлення за моделлю, та розробка власної моделі за варіантом) для створення тестової бази даних.
  2. Відпрацювання SQL-запитів для конструкцій JOIN та різних операторів конструкції SELECT.
  3. Відпрацювання SQL-запитів для конструкції GROUP BY … HAVING.
  4. Відпрацювання складних SQL-запитів.
  5. Встановлення та налаштування MS SQL Server ХЕ. Відпрацювання (встановлення) скриптів для створення тестової бази даних. Перенос бази даних з Oracle в MS SQL Server.
  6. Відпрацювання методів де-нормалізації.

Заочна форма

Лекційні заняття**

Розділ 1. Оглядовий матеріал по спорідненому предмету Розділ 2. Відпрацювання різних видів запитів на тестовій базі даних Розділ 3. Обмеження цілісності реляційних баз даних

Лабораторні заняття
  1. Інсталяція та налаштування візуального інтерфейсу роботи з Oracle Database.
  2. Обробка скриптів для створення тестової бази даних. Створення даталогічної моделі за варіантом.
  3. Робота в тестовій базі даних. Відпрацювання вибірки по одній та по декільком таблицям із застосуванням умов WHERE, сортування ORDER BY, та сполучень JOIN.
  4. Робота в тестовій базі даних. Відпрацювання вибірки по одній та по декільком таблицям із застосуванням GROUP BY… HAVING та усіх розглянутих агрегатних функцій.

Навчальні матеріали та ресурси

Базова література

  1. Ребекка Райордан - Основы реляционных баз данных, 2001
  2. Вьескас Джон - SQL-запросы для простых смертных, 2003.
  3. Грабер Мартин - SQL для простых смертных, 2014.
  4. Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. — М.: Вильямс, 2003. — 1088 с.
  5. Кайт Том. Oracle PL/SQL для профессионалов. Практические решения. – ДиаСофтЮП: - 2005.
  6. Стерн Д., Гринвальд Р., Стаковьяк Р. Oracle 11g. Основы, 4-е издание. – Символ Плюс. – 2009.
  7. И. Бен-Ган Microsoft® SQL Server® 2012. Создание запросов. Учебный курс Microsoft: Пер. с англ. / И. Бен-Ган, Д. Сарка, Р. Талмейдж. — М.: Издательство «Русская редакция», 2014. — 720 с.
  8. SQL. Сборник рецептов. – Пер. с англ. – Спб: Символ-Плюс, 2009. – 672 с.

Допоміжна література

  1. Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с.
  2. Дейт К. Дж. Введение в системы баз данных — 8-е изд. — М.: Вильямс, 2005. — 1328 с.
  3. Санжей Мишра, Алан Бьюли. Секреты Oracle SQL. – Символ Плюс. – 2006.
  4. Ицик Бен-Ган - Microsoft SQL Server 2008. Основы T-SQL. – БХВ П.: - 2009.

Навчальний контент

Методика опанування навчальної дисципліни (освітнього компонента)

Очна форма

Лекційні заняття

Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1 Тема 1.1. Структура та зміст курсу. РСО.
Тема 1.2. Повний цикл проектування баз даних. Нормалізація.
Лекція 1. Вступ. Огляд базового курсу «Бази даних». Моделювання реляційних баз даних.
Структура курсу, РСО. Етапи моделювання реляційних баз даних (РБД). Інфологічне та даталогічне моделювання. Формалізація зв’язків. Нормалізація відношень.
Література: [1, Ч.ІІ]
Завдання на СРС. Поглиблене повторення повного циклу моделювання РБД, проведення нормалізації відношень на практиці в рамках лабораторного циклу.
2 Тема 1.3. Схема даних. Класифікація зв’язків.
Тема 2.1. Тестова база даних СУБД Oracle. Відтворення тестових баз даних під власним користувачем СУБД Oracle.
Лекція 2. Схема даних в Oracle Database. Базові зв’язки фізичної моделі даних. Тестові бази даних Oracle Database.
Фізична реалізація базових видів зв’язків, схема даних реляційних систем управління базами даних (РСУБД), види тестових баз даних для Oracle Database.
Література: [1, Гл.3]
Завдання на СРС. Відпрацювання та налагодження тестових баз даних Oracle Database на своїй РСУБД.
3 Тема 2.2. Відпрацювання різних видів JOIN.
Лекція 3. Поняття багатотабличних SQL-запитів. Види JOIN для поєднання відношень в РСУБД.
Внутрішні та зовнішні об’єднання таблиць – визначення, різниця в застосуванні, особливості застосування на прикладах.
Література: [2, Ч.ІІІ], [3, Гл.5-8], [7, Гл.1]
Завдання на СРС. Практичне відпрацювання всіх видів JOIN на власній тестовій базі даних на власній РСУБД. Практичне застосування операцій із теорії множин (перетин, об’єднання, віднімання).
4 Тема 2.3. Відпрацювання конструкції GROUP BY … HAVING.
Лекція 4. Конструкція GROUP BY … HAVING в підмові SQL – DQL. Алгоритм побудови запитів з використанням групувань.
Практичні прийомі застосування конструкції GROUP BY … HAVING в РСУБД.
Література: [2, Ч.IV], [3, Гл.6], [7, Гл.1]
Завдання на СРС. Практичне відпрацювання конструкції GROUP BY … HAVING на власній тестовій РБД.
5 Тема 2.4. Відпрацювання окремих конструктивних операторів SELECT.
Тема 2.5. Відпрацювання складених та застосування параметризованих запитів.
Лекція 5. Складні вбудовані SQL-запити. Параметризовані SQL-запити. Поняття SQL-Injection.
Структури вкладених запитів, особливості застосування. Приклад відпрацювання параметризованих запитів в середовищі MS Visual Studio.
Література: [7, Гл.1], [2, Гл.10-11], [3, Гл.12-14]
Завдання для СРС. Відпрацювання викладеного матеріалу на практиці у власній тестовій базі даних.
6 Лекція 6. Модульна контрольна робота
На контрольну роботу виноситься увесь попередній матеріал, що включає поняття, конструкції, побудови запитів та нормалізація для коректної роботи з мовою SQL. Завдання включають теоретичну та практичну частини.
Завдання для СРС. Повторити матеріал 1-5 лекцій.
7 Тема 3.1. Узагальнена архітектура серверу.
Лекція 7. Встановлення та налагодження MS SQL Server XE. Узагальнена структура серверу.
Демонстрація встановлення MS SQL Server XE, його попереднє налагодження. Аналіз архітектури серверу, структур пам’яті. >
Література: Література: [7, Введение]
Завдання для СРС. Встановити MS SQL Server XE, налагодити, встановити існуючі тестові бази даних для MS SQL Server XE.
8 Тема 3.2. Створення бази даних. Тестова база даних на MS SQL Server ХЕ.
Лекція 8. Поняття бази даних для MS SQL Server ХЕ. Тестова база даних, налаштування власної тестової РБД.
Практичний приклад створення та налаштування бази даних для MS SQL Server ХЕ, вбудовані бази даних.
Література: Література: [7, Гл.8]
Завдання для СРС. Відпрацювання матеріалу на власному сервері MS SQL Server ХЕ. Аналіз вбудованих баз даних, параметри налаштування власної бази даних.
9 Тема 3.3. Відпрацювання окремих конструктивних операторів SELECT на MS SQL Server ХЕ.
Лекція 9. SQL запити в середовищі MS SQL Server ХЕ.
Практичні прийоми переносу бази даних Oracle Database ХЕ в MS SQL Server ХЕ. Відпрацювання пройдених SQL запитів.
Література: [7, Гл.1]
Завдання для СРС. Порівняльна характеристика T-SQL та SQL Oracle.
10 Тема 4.1. Види обмежень цілісності, особливості застосування.
Лекція 10. Обмеження цілісності для реляційних СУБД.
Повторення видів обмежень цілісності, особливості застосування кожного обмеження для різних РСУБД.
Література: [1, Гл.3], [7, Гл.8]
Завдання для СРС. Застосування певних обмежень цілісності в своїй власній базі даних або тестовій базі даних Oracle Database ХЕ та MS SQL Server XE.
11 Тема 4.2. Поняття індексів, особливості застосування. Обслуговування індексів.
Лекція 11. Індекси в РБД. Класифікація індексів. Найбільш вживані індекси Oracle Database ХЕ та MS SQL Server XE
Визначення та класифікація індексів. Обслуговування та експлуатація індексів. Індекс-організовані таблиці та кластеризовані індекси – принципи двох різних РСУБД.
Література: [6, Гл.4], [7, Гл.8;Гл.15]
Завдання для СРС. Застосування індексів у власній РБД. Аналіз всіх наявних індексів РСУБД, що розглядаються. Найбільш розповсюджені індекси, мета застосування кожного окремого індексу.
12 Тема 5.1. Робота зі словником метаданих. Обробка транзакцій.
Лекція 12. Метадані РСУБД. Визначення, приклади використання. Визначення транзакції, режими роботи транзакцій.
Визначення та застосування словнику даних РСУБД. Практичні приклади відтворення транзакцій, відкладені транзакції.
Література: [6, Гл.9], [7, Гл.12]
Завдання для СРС. Порівняння словників даних Oracle Database ХЕ та MS SQL Server XE. Практичне відпрацювання режимів роботи транзакцій, журнал транзакцій.
13 Тема 5.2. Блокування транзакцій. Види і рівні блокування в реляційних СУБД.
Лекція 13. Рівні та види блокувань транзакцій в РСУБД.
Теоретичне та практичне відпрацювання теми блокування транзакцій в РСУБД Oracle Database ХЕ та MS SQL Server XE.
Література: [5, Гл.6], [7, Гл.12]
Завдання для СРС. Практичне відпрацювання рівнів блокування, відстеження блокувань транзакцій у спеціальних системних таблицях словника даних РСУБД. Порівняння роботи з транзакціями в Oracle Database ХЕ та MS SQL Server XE.
14 Лекція 14. Модульна контрольна робота
На контрольну роботу виноситься увесь попередній матеріал другої частини модулю, що включає знання MS SQL Server ХЕ на рівні налаштувань, створення власної РБД, залиття тестової РБД. Поняття транзакцій, рівнів блокувань транзакцій. Поняття індексів, обслуговування та експлуатація індексів. Завдання включають теоретичну та практичну частини.
Завдання для СРС. Повторити матеріал 7-13 лекцій.
15 Тема 6.1. Бекапування.
Тема 6.2. Архівування.
Тема 6.3. Відновлення бази даних.
Лекція 15. Практичне відпрацювання механізмів бекапування, архівування та відновлення бази даних.
Розгляд механізмів зняття бекапів, проведення архівації та відновлення РБД з бекапу в РСУБД.
Література: [6, Гл.5], [7]
Завдання для СРС. Механізм роботи RMAN в режимі ARCHIVELOG для РСУБД Oracle Database.
16 Тема 7.1. План виконання запитів. Аналіз плану відпрацювання запитів.
Лекція 16. Механізми побудови плану виконання SQL-запитів в Oracle Database.
Аналіз планів відпрацювання одних SQL-запитів, але побудованих за різним принципом. Порівняння різних типів запитів: з параметром, зі змінною, з літералом.
Література:[6, Гл.7], [7, Гл.12]
Завдання для СРС. Механізми побудови плану виконання SQL-запитів в MS SQL Server ХЕ.
17 Тема 7.2. Шкідливість/користь індексування.
Лекція 17. Застосування індексів для атрибутів таблиць. Межі застосування.
Переваги та недоліки індексації. Проведення меж застосування індексів для РБД.
Література: [6, Гл.4], [7, Гл.8;Гл.15]
Завдання для СРС. Порівняти застосування індексів для різних типів РСУБД Oracle Database ХЕ та MS SQL Server XE.
18 Тема 7.3. Варіанти оптимізації запиту. Де-нормалізація бази даних.
Лекція 18. Оптимізація відпрацювання SQL-запитів. Методи підвищення ефективності роботи РБД. Де-нормалізація.
Розглядаються етапи проведення оптимізації відпрацювання SQL-запитів з метою підвищення ефективності роботи РБД в цілому.
Література: [6, Гл.7;Гл.9], [7, Гл.12]
Завдання для СРС. Проведення практичної де-нормалізації у власній тестовій РБД Oracle Database ХЕ та MS SQL Server XE.

Лабораторні заняття

Назва лабораторної роботи Кількість ауд. годин
1 Лабораторна робота 1. Інсталяція та налаштування візуального інтерфейсу роботи з Oracle Database. Необхідно завантажити з офіційного сайту Oracle відповідне програмне забезпечення (SQL Developer), налаштувати та увійти в свою базу даних на сервері. Свою базу даних необхідно створити в рамках своєї схеми даних. Література: [6, Гл.1-3] 2
2 Лабораторна робота 2. Обробка скриптів для створення тестової бази даних. Створення даталогічної моделі за варіантом. В інстальованій програмі з лабораторної роботи 1 необхідно відпрацювати скрипти існуючої тестової бази даних для Oracle, провести реінжиніринг – створити даталогічну модель за наданими скриптами. Написати та відпрацювати скрипти для БД згідно отриманого варіанту. Література: [1, Ч.ІІ], [6, Гл.4] 4
3 Лабораторна робота 3. Робота в тестовій базі даних. Відпрацювання вибірки по одній та по декільком таблицям із застосуванням умов WHERE, сортування ORDER BY, та сполучень JOIN. Набути практичного досвіду у відпрацюванні скриптів по декільком таблицям із застосуванням операцій роботи над множинами та відповідних ним структур РСУБД мови SQL – конструкцій JOIN. Література: [2], [3] 2
4 Лабораторна робота 4. Робота в тестовій базі даних. Відпрацювання вибірки по одній та по декільком таблицям із застосуванням GROUP BY… HAVING та усіх розглянутих агрегатних функцій. Набути практичного досвіду у відпрацюванні скриптів із застосуванням конструкції GROUP BY… HAVING у власній тестовій базі даних та у тестовій базі даних серверу Oracle. Література: [2], [3] 2
5 Лабораторна робота 5. MS SQL Server XE або Developer (інсталяція та налаштування). Перенесення тестової БД з РСУБД Oracle на MS SQL Server. Відтворення тестових баз даних для MS SQL Server. Необхідно завантажити з офіційного сайту Microsoft відповідне програмне забезпечення (MS SQL Server XE/DEVELOPER), налаштувати та увійти в свою базу даних на сервері. Завантажити та відновити одну з доступних тестових баз даних MS SQL Server (AdventureWorks, NorthWind), перенести скриптами базу даних свого варіанту з серверу Oracle. Література: [6], [7] 2
6 Лабораторна робота 6. Де-нормалізація. Опанувати один із методів підвищення ефективності відпрацювання SQL-запитів – де-нормалізація нормалізованої бази даних на тестовій базі даних власного варіанту. Проведений процес необхідно описати та проаналізувати відпрацювання скриптів ДО де-нормалізації та ПІСЛЯ. Література: [1], [6], [7] 2
7 Лабораторна робота 7. Реалізація складних запитів в рамках SQL команди DQL за отриманими завданнями. Набути практичного досвіду у відпрацюванні скриптів із застосуванням конструкції SELECT різного ступеня складності. Література: [2], [3] 4

Заочна форма

Лекційні заняття

Назва теми лекції та перелік основних питань (перелік дидактичних засобів, посилання на літературу та завдання на СРС)
1 Тема 1.1. Повний цикл проектування баз даних.
Тема 1.2. Нормалізація.
Лекція 1. Огляд базового курсу «Бази даних». Моделювання реляційних баз даних.
Етапи моделювання реляційних баз даних (РБД). Інфологічне та даталогічне моделювання. Формалізація зв’язків. Нормалізація відношень.
Література: [1, Ч.ІІ]
Завдання на СРС. Поглиблене повторення повного циклу моделювання РБД, проведення нормалізації відношень на практиці в рамках лабораторного циклу. Фізична реалізація базових видів зв’язків, схема даних реляційних систем управління базами даних (РСУБД), види тестових баз даних для Oracle Database. Відпрацювання та налагодження тестових баз даних Oracle Database на своїй РСУБД.
2 Тема 2.2. Відпрацювання різних видів JOIN.
Лекція 2. Поняття багатотабличних SQL-запитів. Види JOIN для поєднання відношень в РСУБД.
Внутрішні та зовнішні об’єднання таблиць – визначення, різниця в застосуванні, особливості застосування на прикладах.
Література: [2, Ч.ІІІ], [3, Гл.5-8], [7, Гл.1]
Завдання на СРС. Практичне відпрацювання всіх видів JOIN на власній тестовій базі даних на власній РСУБД. Практичне застосування операцій із теорії множин (перетин, об’єднання, віднімання). Структури вкладених запитів, особливості застосування. Приклад відпрацювання параметризованих запитів в середовищі MS Visual Studio.
3 Тема 2.3. Відпрацювання конструкції GROUP BY … HAVING.
Лекція 3. Конструкція GROUP BY … HAVING в підмові SQL – DQL. Алгоритм побудови запитів з використанням групувань.
Практичні прийомі застосування конструкції GROUP BY … HAVING в РСУБД.
Література: [2, Ч.IV], [3, Гл.6], [7, Гл.1]
Завдання на СРС. Практичне відпрацювання конструкції GROUP BY … HAVING на власній тестовій РБД. Структури вкладених запитів, особливості застосування. Приклад відпрацювання параметризованих запитів в середовищі MS Visual Studio.
4 Тема 3.1. Види обмежень цілісності, особливості застосування.
Лекція 4. Обмеження цілісності для реляційних СУБД.
Повторення видів обмежень цілісності, особливості застосування кожного обмеження для різних РСУБД.
Література: [1, Гл.3], [7, Гл.8]
Завдання для СРС. Застосування певних обмежень цілісності в своїй власній базі даних або тестовій базі даних Oracle Database ХЕ та MS SQL Server XE.
5 Тема 3.2. Поняття індексів, особливості застосування. Обслуговування індексів.
Тема 3.3. Шкідливість/користь індексування.
Лекція 5. Індекси в РБД. Класифікація індексів. Найбільш вживані індекси Oracle Database ХЕ та MS SQL Server XE
Визначення та класифікація індексів. Обслуговування та експлуатація індексів. Індекс-організовані таблиці та кластеризовані індекси – принципи двох різних РСУБД.
Література: [6, Гл.4], [7, Гл.8;Гл.15]
Завдання для СРС. Застосування індексів у власній РБД. Аналіз всіх наявних індексів РСУБД, що розглядаються. Найбільш розповсюджені індекси, мета застосування кожного окремого індексу. Практичне відпрацювання режимів роботи транзакцій, журнал транзакцій. Практичне відпрацювання рівнів блокування, відстеження блокувань транзакцій у спеціальних системних таблицях словника даних РСУБД.

Лабораторні заняття

Назва лабораторної роботи Кількість ауд. годин
1 Лабораторна робота 1. Інсталяція та налаштування візуального інтерфейсу роботи з Oracle Database. Необхідно завантажити з офіційного сайту Oracle відповідне програмне забезпечення (SQL Developer), налаштувати та увійти в свою базу даних на сервері. Свою базу даних необхідно створити в рамках своєї схеми даних. Література: [6, Гл.1-3] 2
2 Лабораторна робота 2. Обробка скриптів для створення тестової бази даних. Створення даталогічної моделі за варіантом. В інстальованій програмі з лабораторної роботи 1 необхідно відпрацювати скрипти існуючої тестової бази даних для Oracle, провести реінжиніринг – створити даталогічну модель за наданими скриптами. Написати та відпрацювати скрипти для БД згідно отриманого варіанту. Література: [1, Ч.ІІ], [6, Гл.4] 4
3 Лабораторна робота 3. Робота в тестовій базі даних. Відпрацювання вибірки по одній та по декільком таблицям із застосуванням умов WHERE, сортування ORDER BY, та сполучень JOIN. Набути практичного досвіду у відпрацюванні скриптів по декільком таблицям із застосуванням операцій роботи над множинами та відповідних ним структур РСУБД мови SQL – конструкцій JOIN. Література: [2], [3] 2
4 Лабораторна робота 4. Робота в тестовій базі даних. Відпрацювання вибірки по одній та по декільком таблицям із застосуванням GROUP BY… HAVING та усіх розглянутих агрегатних функцій. Набути практичного досвіду у відпрацюванні скриптів із застосуванням конструкції GROUP BY… HAVING у власній тестовій базі даних та у тестовій базі даних серверу Oracle. Література: [2], [3] 2

Самостійна робота студента/аспіранта

Очна форма

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Поглиблене повторення повного циклу моделювання РБД, проведення нормалізації відношень на практиці в рамках лабораторного циклу. 4
2 Відпрацювання та налагодження тестових баз даних Oracle Database на своїй РСУБД. 2
3 Практичне відпрацювання всіх видів JOIN на власній тестовій базі даних на власній РСУБД. Практичне застосування операцій із теорії множин (перетин, об’єднання, віднімання). 4
4 Практичне відпрацювання конструкції GROUP BY … HAVING на власній тестовій РБД. 4
5 Відпрацювання викладеного матеріалу на практиці у власній тестовій базі даних. 2
6 Встановити MS SQL Server XE, налагодити, встановити існуючі тестові бази даних для MS SQL Server XE. 1
7 Відпрацювання матеріалу на власному сервері MS SQL Server ХЕ. Аналіз вбудованих баз даних, параметри налаштування власної бази даних. 2
8 Порівняльна характеристика T-SQL та SQL Oracle. 4
9 Застосування певних обмежень цілісності в своїй власній базі даних або тестовій базі даних Oracle Database ХЕ та MS SQL Server XE. 4
10 Застосування індексів у власній РБД. Аналіз всіх наявних індексів РСУБД, що розглядаються. Найбільш розповсюджені індекси, мета застосування кожного окремого індексу. 4
11 Порівняння словників даних Oracle Database ХЕ та MS SQL Server XE. Практичне відпрацювання режимів роботи транзакцій, журнал транзакцій. 3
12 Практичне відпрацювання рівнів блокування, відстеження блокувань транзакцій у спеціальних системних таблицях словника даних РСУБД. Порівняння роботи з транзакціями в Oracle Database ХЕ та MS SQL Server XE. 4
13 Механізм роботи RMAN в режимі ARCHIVELOG для РСУБД Oracle Database. 2
14 Механізми побудови плану виконання SQL-запитів в MS SQL Server ХЕ. 4
15 Порівняти застосування індексів для різних типів РСУБД Oracle Database ХЕ та MS SQL Server XE. 4
16 Проведення практичної де-нормалізації у власній тестовій РБД Oracle Database ХЕ та MS SQL Server XE. 4
17 Підготовка до заліку по всьому матеріалу модуля. 10

Заочна форма

Назва теми, що виноситься на самостійне опрацювання Кількість годин СРС
1 Поглиблене повторення повного циклу моделювання РБД, проведення нормалізації відношень на практиці в рамках лабораторного циклу. 20
2 Відпрацювання та налагодження тестових баз даних Oracle Database на своїй РСУБД. 8
3 Практичне відпрацювання всіх видів JOIN на власній тестовій базі даних на власній РСУБД. Практичне застосування операцій із теорії множин (перетин, об’єднання, віднімання). 12
4 Практичне відпрацювання конструкції GROUP BY … HAVING на власній тестовій РБД. 12
5 Застосування певних обмежень цілісності в своїй власній базі даних або тестовій базі даних Oracle Database ХЕ та MS SQL Server XE. 18
6 Застосування індексів у власній РБД. Аналіз всіх наявних індексів РСУБД, що розглядаються. Найбільш розповсюджені індекси, мета застосування кожного окремого індексу. 10
7 Практичне відпрацювання рівнів блокування, відстеження блокувань транзакцій у спеціальних системних таблицях словника даних РСУБД. Порівняння роботи з транзакціями в Oracle Database ХЕ та MS SQL Server XE. 10
16 Підготовка до заліку по всьому матеріалу модуля. 10

Політика та контроль

Політика навчальної дисципліни (освітнього компонента)

Система вимог, які ставляться перед студентом:

  • відвідування лекційних та лабораторних занять є обов’язковою складовою вивчення матеріалу;
  • на лекції викладач користується власним презентаційним матеріалом; відпрацьовує практичну частину на віртуальній машині з встановленою відповідною РСУБД; використовує гугл-диск для викладання матеріалу поточної лекції, додаткових ресурсів, лабораторних робіт та інше; викладач відкриває доступ до певної директорії гугл-диска для скидання електронних лабораторних звітів та відповідей на МКР;
  • на лекції заборонено відволікати викладача від викладання матеріалу, усі питання, уточнення та ін. студенти задають в кінці лекції у відведений для цього час;
  • лабораторні роботи захищаються у два етапи – перший етап: студенти виконують завдання на допуск до захисту лабораторної роботи; другий етап – захист лабораторної роботи. Бали за лабораторну роботу враховуються лише за наявності електронного звіту;
  • модульні контрольні роботи пишуться на лекційних заняттях без застосування допоміжних засобів (мобільні телефони, планшети та ін.); результат пересилається у файлі до відповідної директорії гугл-диску;
  • заохочувальні бали виставляються за: активну участь на лекціях; участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць; презентацій по одній із тем СРС дисципліни тощо. Кількість заохочуваних балів не більше 10;
  • штрафні бали виставляються за: невчасну здачу лабораторної роботи. Кількість штрафних балів не більше 10.

Види контролю та рейтингова система оцінювання результатів навчання (РСО)

Рейтинг студента з дисципліни складається з балів, що він отримує за:

  • виконання контрольних робіт (5 експрес-контрольних на лабораторних заняттях);
  • виконання та захист 7 лабораторних робіт;
  • виконання 2 модульних контрольних робіт (МКР);
  • заохочувальні та штрафні бали.

Система рейтингових балів та критерії оцінювання

Експрес-контрольні роботи
  • «відмінно» – повна відповідь (не менше 90% потрібної інформації) – 5 балів;
  • «добре» – достатньо повна відповідь (не менше 75% потрібної інформації) або повна відповідь з незначними недоліками – 4 балів;
  • «задовільно» – неповна відповідь (не менше 60% потрібної інформації) та незначні помилки – 1-3 бали;
  • «незадовільно» – відповідь не відповідає вимогам до «задовільно» – 0 балів.
Лабораторні роботи
  • «відмінно», повна відповідь на питання під час захисту (не менш ніж 90% потрібної інформації) та оформлений належним чином електронний протокол до лабораторної роботи – 10/9 балів;
  • «добре», достатньо повна відповідь на питання під час захисту (не менш ніж 75% потрібної інформації) та оформлений належним чином електронний протокол до лабораторної роботи – 8/7 бали;
  • «задовільно», неповна відповідь на питання під час захисту (не менш ніж 60% потрібної інформації), незначні помилки та оформлений належним чином електронний протокол до лабораторної роботи – 6/4 бал;
  • «незадовільно», незадовільна відповідь та/або не оформлений належним чином електронний протокол до лабораторної роботи – 0/3 балів.
Модульні контрольні роботи
  • «відмінно», повна відповідь (не менш ніж 90% потрібної інформації) – 9-10 балів;
  • «добре», достатньо повна відповідь (не менш ніж 75% потрібної інформації), або повна відповідь з незначними помилками – 7-8 балів;
  • «задовільно», неповна відповідь (але не менш ніж 60% потрібної інформації) та незначні помилки – 5-6 бали;
  • «незадовільно», незадовільна відповідь (неправильний розв’язок задачі), потребує обов’язкового повторного написання в кінці семестру – 0-4 балів.
Заохочувальні бали

– за виконання творчих робіт з кредитного модуля (наприклад, участь у факультетських та інститутських олімпіадах з навчальних дисциплін, участь у конкурсах робіт, підготовка оглядів наукових праць тощо); за активну роботу на лекції (питання, доповнення, зауваження за темою лекції, коли лектор пропонує студентам задати свої питання) 1-2 бали, але в сумі не більше 10;

– презентації по СРС – від 1 до 5 балів.

Міжсесійна атестація

За результатами навчальної роботи за перші 7 тижнів максимально можлива кількість балів – 37 балів (2 лабораторні, МКР-1, 2 експрес-контрольні, 7 заохочувальних балів). На першій атестації (8-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 15 балів.

За результатами 13 тижнів навчання максимально можлива кількість балів – 53 балів (4 лабораторні, МКР-2, 2 експрес-контрольні, 13 заохочувальних балів). На другій атестації (14-й тиждень) студент отримує «зараховано», якщо його поточний рейтинг не менший ніж 25 балів.

Максимальна сума вагових балів контрольних заходів протягом семестру складає:

RD = 7*rлаб+2*rмкр+5*rек + (rз - rш)=7*10+2*10+2*5+ (rз - rш)=100 + (rз - rш), де rлаб – бал за лабораторну роботу (0…10); rмкр – бал за написання МКР (0…10); rек – бал за написання експрес-контрольної роботи (0…5); rз – заохочувальні бали за активну участь на лекціях, презентації, участь в олімпіадах, конкурсі роботи, наукові роботи за тематикою дисципліни (0…10); rзш – штрафні бали.

Залік:

Студенти, які виконали всі умови допуску до семестрової атестації (не мають заборгованостей з лабораторних робіт, наявні усі електронні звіти) та набрали протягом семестру необхідну кількість балів (RD ≥ 60), отримують залікову оцінку (залік) так званим «автоматом» відповідно до набраного рейтингу (табл. 1, що наведена нижче). У такому разі до заліково-екзаменаційної відомості вносяться бали RD та відповідні оцінки. Студенти, які набрали протягом семестру менше ніж 60 балів та не мають заборгованостей, зобов’язані виконувати залікову контрольну роботу.

На заліку студенти виконують письмову контрольну роботу. Кожне завдання містить три теоретичних питання і два практичних. Перелік питань наведений у методичних рекомендаціях до засвоєння кредитного модуля. Кожне питання оцінюється у 20 балів.

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

Система оцінювання питань
  • «відмінно», повна відповідь (не менше 90% потрібної інформації) – 18-20 балів;
  • «добре», достатньо повна відповідь (не менше 75% потрібної інформації, або незначні неточності) – 13-17 балів;
  • «задовільно», неповна відповідь (не менше 60% потрібної інформації та деякі помилки) – 7-12 балів;
  • «незадовільно», незадовільна відповідь – 0-6 балів.

Сума набраних балів RD або балів за залікову роботу переводиться до залікової оцінки згідно з таблицею:

Таблиця 1. Переведення рейтингових балів до оцінок за університетською шкалою
Кількість балів Оцінка
100-95 Відмінно
94-85 Дуже добре
84-75 Добре
74-65 Задовільно
64-60 Достатньо
Менше 60 Незадовільно
Не виконані умови допуску Не допущено

Додаткова інформація з дисципліни (освітнього компонента)

  • передбачена можливість закривати частину лабораторного та лекційного матеріалу шляхом здобування сертифікатам по online курсам (наприклад, COURSERA) відповідних розділів та тем дисципліни;
  • перелік теоретичних питань, які виносяться на семестровий контроль наведено в Додатку 1;
  • на початку семестру викладач аналізує існуючі курси по тематиці дисципліни та пропонує пройти відповідні безкоштовні курси студентам. Після отриманням студентом сертифікату проходження дистанційних чи онлайн курсів за відповідною тематикою, викладач закриває відповідну частину курсу (лабораторні чи лекції) за попередньою домовленістю з групою.

Робочу програму навчальної дисципліни (Силабус): Складено доцент, к.т.н., Ульяницька Ксенія Олександрівна Ухвалено кафедрою ІСТ(протокол № 1 від 30.08.2021 р.) Погоджено Методичною комісією факультету[1] (протокол № 1 від 30.08.2021 р.)

Додаток 1 - Перелік теоретичних питань на залік

  1. Підзапит. Визначення. Де в конструкції SELECT можна додати запит в якості аргументу (рівні запиту)? Приклад для FROM.

  2. Підзапит. Визначення, де в конструкції SELECT можна додати запит в якості аргументу (рівні запиту)? Приклад для WHERE.

  3. Підзапит. Визначення, де в конструкції SELECT можна додати запит в якості аргументу (рівні запиту)? Приклад в SELECT перед FROM.

  4. Підзапит із застосуванням IN. Як такі підзапити можна сформувати без IN, використовуючи лише JOIN? Приклад.

  5. Підзапит із застосуванням EXIST/NOT EXIST. Як такі підзапити можна сформувати без EXIST/NOT EXIST, використовуючи лише JOIN? Приклад.

  6. Види підзапитів SQL. Описати.

  7. Однорядкові підзапити SQL. Приклад, опис.

  8. Багаторядкові підзапити SQL. Приклад, опис.

  9. Багатостовпчикові підзапити SQL. Приклад, опис.

  10. Корельовані підзапити SQL. Приклад, опис.

  11. Пов’язувані змінні :name або** @name.** Опис, приклад.

  12. Параметризовані запити. Опис, приклад, застосування.

  13. Параметризовані запити. Опис. Поняття SQL Injection.

  14. Цілісність бази даних. Визначення. Перелік обмежень цілісності.

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

  16. Перелік обмежень цілісності. PRIMARY, FOREIGN – приклади застосування.

  17. Перелік обмежень цілісності. PRIMARY, UNIQUE – приклади застосування, відмінності.

  18. Типи обмежень цілісності даних. Розписати корпоративні обмеження.

  19. Типи обмежень цілісності даних. Розписати обмеження для доменів полів.

  20. Типи обмежень цілісності даних. Розписати цілісність сутностей. Приклад.

  21. Типи обмежень цілісності даних. Розписати посилальну цілісність. Приклад.

  22. Індекси. Визначення. Застосування.

  23. Індекси як механізм обмежень цілісності. Визначення.

  24. Види індексів в Oracle. Описати B-tree індекси.

  25. Види індексів в Oracle. Описати Bitmap індекси.

  26. Види індексів в MS SQL Server. Описати некластерізований індекс.

  27. Види індексів в MS SQL Server. Описати кластерізований індекс.

  28. Визначення індексів. Коли необхідно впроваджувати індекси?

  29. Визначення індексів. Коли індекси шкідливі?

  30. Індекс-організовані таблиці в Oracle. Визначення, переваги, недоліки.

  31. Моніторинг індексів в Oracle. Команди, принцип дії, приклад.

  32. Обслуговування індексів в Oracle. Команди, принцип дії, приклад.

  33. Обслуговування індексів в MS SQL Server. Команди, принцип дії, приклад.

  34. Транзакція. Визначення. Незавершена транзакція. Приклад.

  35. Транзакція. Визначення. Принципи ACID для транзакції.

  36. Транзакція. Визначення. AUTOCOMMIT – принцип дії в Oracle та MS SQL.

  37. Управління транзакціями Oracle. Перелік команд. Приклад.

  38. Неявні блокування в Oracle при відпрацюванні DML-конструкцій.

  39. Неявні блокування в MS SQL Server при відпрацюванні DML-конструкцій.

  40. DEADLOCK блокування в мові SQL. Опис. Приклад.

  41. Рівні ізоляції в Oracle. Команда для встановлення, опис команди, приклад.

  42. Режими явного блокування в Oracle. Опис, приклад.

  43. Види транзакцій в MS SQL Server. Як встановлюються? Приклад.

  44. Рівні ізоляції в MS SQL Server. Команда для встановлення, опис команди, приклад.

  45. Методи підвищення ефективності відпрацювання SQL-запитів.

  46. Денормалізація. Визначення. Застосування.

  47. Денормалізація. Визначення. Втрати при денормалізації?

  48. Терміни нормалізації (атрибут, домен атрибуту, нормальна форма). 1НФ – визначення, приклад.

  49. Терміни нормалізації (кортеж, кардинальність, функціональна залежність). 2НФ – визначення, приклад.

  50. Терміни нормалізації (відношення, схема відношень). 3НФ – визначення, приклад.

  51. Терміни нормалізації (аномалія – перелічити, визначити).

  52. Терміни нормалізації (відношення, зв'язки – класифіація зв'язків).

  53. Терміни реляційних база даних. Визначення.

  54. Класифікація зв’язків відношень. Перетворення логічних зв’язків у фізичні зв’язки (формалізація).

  55. Визначення обмежень цілісності. Приклади відповідних зв’язків.

  56. 1НФ. Визначення, приклад приведення до 1НФ, методи приведення до 1НФ.

  57. 2НФ. Визначення, приклад приведення до 2НФ, методи приведення до 2НФ.

  58. 3НФ. Визначення, приклад приведення до 3НФ, методи приведення до 3НФ.

  59. Класифікації зв’язків реляційної моделі даних. Рекурсивний зв’язок – приклад логічної та фізичної реалізації.

  60. SQL. Визначення, класифікація SQL команд (перелік, застосування).

  61. Дайте визначення поняттям «атрибут» та «домен атрибуту».

  62. Дайте визначення безумовному зв’язку в реляційній моделі. Приклад.

  63. Дайте визначення умовному зв’язку в реляційній моделі. Приклад.

  64. Дайте визначення біумовному зв’язку в реляційній моделі. Приклад.

  65. Дайте визначення рекурсивному зв’язку в реляційній моделі. Повний приклад можливостей виникнення даного зв’язку.

  66. Формалізуйте зв’язок 1:1.

  67. Формалізуйте зв’язок 1:М.

  68. Формалізуйте зв’язок М:N.

  69. Дайте визначення первинному ключу відношення.

  70. Дайте визначення вторинному ключу відношення.

  71. Дайте визначення унікальному ключу відношення.

  72. Дайте визначення функціональної залежності (повної та часткової) неключового атрибуту від складеного первинного ключа.

  73. Дайте визначення транзитивній залежності.

Додаток 2 - Перелік практичних завдань на залік

  1. «Розклад занять в інституті». Вивести перелік викладачів, які займають аудиторію №777 на першій парі. Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  2. «Лабораторна аудиторія». Вивести всіх студентів, які сиділи за комп’ютерним столом М в період з 12.09.2019 по 21.09.2019. Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  3. «Деканат». Показати перелік студентів, які мають середній бал 85 або вище по курсу «Вища математика», та тих, у кого середній бал нижче 85 з курсу «Програмування». Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  4. «Деканат». Показати перелік студентів, які мають середній бал 85 або вище по курсу «Вища математика», та тих, хто також мають середній бал 85 або вище з курсу «Програмування». Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  5. «Деканат». Показати перелік студентів, які мають середній бал 85 або вище по курсу «Вища математика», разом з тими, хто мають середній бал 85 або вище з курсу «Програмування». Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  6. «Кулінарна книга». Відобразити всі рецепти, що відносяться до НЕ вегетаріанської та мають в своєму складі авокадо та паприку. Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  7. «Кулінарна книга». Знайти компоненти, для яких за замовчуванням використовуються одні і ті ж одиниці виміру кількості для рецептів. Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  8. «Кулінарна книга». Відобразити всі рецепти, що мають в своєму складі авокадо або паприку, тобто в рецепті що містить авокадо може не бути паприки. Які сутності задіяні? Які між ними зв’язки? Варіантів запиту може бути декілька.

  9. «Підприємство». Показати клієнтів та співробітників, які мешкають в одному місті. Клієнти та співробітники між собою напряму не пов’язані. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Як мінімум 2 варіанти запиту.

  10. «Агентство». Показати перелік замовників та заброньованих ними естрадних акторів. Замовники та актори напряму не пов’язані. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Як мінімум 2 варіанти запиту.

  11. «Агентство». Знайти агентів та естрадних артистів, які мають однаковий поштовий індекс. Агенти та артисти напряму не пов’язані. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Як мінімум 2 варіанти запиту.

  12. «Агентство». Знайти агентів, які НЕ мають однаковий поштовий індекс з будь-ким з естрадних артистів. Агенти та артисти напряму не пов’язані. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Як мінімум 2 варіанти запиту.

  13. «Деканат». Показати студентів та їх викладачів, які мають однакові імена. Студенти та викладачі напряму не пов’язані. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Як мінімум 2 варіанти запиту.

  14. «Деканат». Показати студентів, імена яких не співпадають з іменами викладачів. Студенти та викладачі напряму не пов’язані. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Варіантів запиту може бути декілька.

  15. «Кулінарна книга». Відобразити всі рецепти кулінарної книги, серед компонентів яких є риба та нема цибулі. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Варіантів запиту може бути декілька.

  16. «Інтернет-магазин». Вивести всіх клієнтів, які не мешкають в тому ж місці, що і будь-хто із співробітників. Клієнти та співробітники напряму не пов’язані. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Як мінімум 2 варіанти запиту.

  17. «Інтернет-магазин». Навести перелік клієнтів та дати замовлень, впорядкованих за датою замовлення. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Варіантів запиту може бути декілька.

  18. «Інтернет-магазин». Навести перелік співробітників та клієнтів, для яких вони реєстрували замовлення. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Варіантів запиту може бути декілька.

  19. «Інтернет-магазин». Навести всі замовлення, товари в кожному замовленні та суму, яку необхідно сплатити за кожний товар, впорядкував результат запиту за номером замовлення. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Варіантів запиту може бути декілька.

  20. «Розклад занять в інституті». Навести перелік студентів та всі курси лекцій, на які вони ходитимуть в першому семестрі поточного навчального року. Які сутності задіяні? Які між ними зв’язки? По якому полю будете поєднувати? Варіантів запиту може бути декілька.

[1] Методичною радою університету – для загальноуніверситетських дисциплін.