Розробники та рецензенти
Заклад вищої освіти:

Компанія-рецензент 1:

Компанія-рецензент 2:
Валідація:
Розробник навчальної програми:
Ілона Шевченко - канд. техн. наук , доцент кафедри інженерії програмного забезпечення
Базова інформація
Шифр та назва спеціальності:
121 - Програмна інженеріяНазва освітньо-наукової програми
Інженерія програмного забезпеченняНазва дисципліни
NoSQL бази данихВид дисципліни
ВибірковаБлок дисципліни
Обробка данихКількість студентів
100Курс/Семестр
10Загальна інформація про дисципліну
Анотація
Курс дає загальне уявлення щодо різних NoSQL (нереляційних) моделей даних, їх переваг і недоліків у порівнянні з реляційною моделлю даних, а також детально знайомить здобувача з документо-орієнтованою моделлю даних, як найбільш популярною серед NoSQL моделей даних. У курсі вивчається документо-орієнтована система керування базами даних MongoDB, в якій дані зберігаються у документах з JSON-подібним форматом і гнучкою структурою. В рамках курсу здобувач отримує знання з встановлення MongoDB, створення власних баз даних і наповнення їх колекціями даних, додавання даних до колекцій, вибирання даних з колекцій, оновлення і видалення даних з колекцій, агрегації даних (побудови pipelines), встановлення посилань між колекціями і побудови схем валідації даних, роботи з індексами (в тому числі текстовими і геопросторовими), роботи з різними консольними і графічними клієнтами (наприклад, MongoDB Shell і MongoDB Compass), роботи у хмарному сервісі MongoDB Atlas і хмарним сервісом візуалізації даних MongoDB Charts, міграції реляційної БД у документо-орієнтовану БД і в зворотному напрямку за допомогою інструменту Studio3T. Курс завершується реалізацією нескладного проєкту, який буде виконувати основні CRUD-операції з даними, що зберігаються на локальному або хмарному MongoDB-сервері.Анотація
Розширення знань здобувача в області баз даних через знайомство з NoSQL (нереляційними) базами даних.Анотація
Лекції, практичні роботи, самостійна робота. Підсумковий контроль – іспитРозподіл часу
Загальний обсяг (кредитів): 5; Лекції (занять): 32; Лабораторні (занять): 0; Практичні (занять): 32; Самостійна робота (годин): 86
Попередні дисципліни
-Матеріально-технічне та програмне забезпечення дисципліни
MongoDB Server MongoDB Shell, MongoDB Compass MongoDB Atlas, MongoDB Charts Studio3T Visual Studio PyCharmСтруктура дисципліни
| Теоретична складова Назва, перелік питань або анотація лекції | Годин | Практична складова Опис та приклад завдання, а також посилання на методичні матеріали | Годин | Інструменти, засоби та технології | ||||||||||||||
| Тема 1 – NoSQL бази даних. MongoDB: початковий рівень | ||||||||||||||||||
| Вступ. Знайомство з NoSQL базами даних. SQL або NoSQL - проблема вибору Анотація: Що таке NoSQL бази даних? Історія появи та розвитку. Переваги та недоліки NoSQL баз даних. Вибір між реляційними (SQL) та нереляційними (NoSQL) базами даних. Які бувають NoSQL бази даних: основні типи нереляційних моделей даних. Застосування NoSQL систем бази даних. | 2 | |||||||||||||||||
| Введення до MongoDB. Створення баз даних і колекцій. Наповнення колекцій документами. Анотація: Початок роботи з MongoDB. Встановлення сервера. Консольний та графічний клієнт. Знайомство з MongoDB Compass. Поняття «колекція», «документ», «ключ». Формат даних у MongoDB. Ідентифікатор документа _id. Робота з базами даних: show databases, use, db, db.stats(), db.dropDatabase(). Робота з колекціями: show collections, db.createCollection(), db.collection.renameCollection(), db.collection.stats(), db.collection.drop(). Робота з документами: db.collection.insertOne(), db.collection.insertMany(). Перегляд змісту колекції: db.collection.find(). | 2 | Практична робота № 1. Встановлення MongoDB. Базові команди та методи створення та заповнення колекцій. https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 2 | MongoDB Server MongoDB Shell, MongoDB Compass | ||||||||||||||
| Вибирання даних із колекції. Фільтрація і проєкція даних. Анотація:Вибирання даних: db.collection.find(), db.collection.findOne(). Налаштування виведення даних: db.collections.find().limit(), db.collections.find().skip(). Сортування даних: db.collections.find().sort().Фільтрація документів: за відсутніми ключами, за елементами масиву, за вкладеними даними, з використанням регулярних виразів, із застосуванням умовних операторів, із застосуванням логічних операторів, із застосуванням операторів пошуку у масивах, із застосування оператора $exists, застосування оператора $type. Використаня проєкції. Оператор $slice. | 2 | Практична робота № 2. Вибирання даних із колекцій. https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 2 | MongoDB Server MongoDB Shell, MongoDB Compass | ||||||||||||||
| Заміна та оновлення даних. Видалення даних. Анотація: Заміна даних: db.collection.replaceOne(). Оновлення даних: db.collection.updateOne(), db.collection.updateMany(). Оператори оновлення даних: $set, $unset, $inc, $push, $push+$each, $addToSet, $addToSet+$each, $pop, $pull, $pullAll. Видалення даних: db.collection.deleteOne(), db.collection.deleteMany(). Метод db.collection.bulkWrite(). | 2 | Практична робота № 3. Заміна та оновлення даних у колекціях. Видалення даних. https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 2 | MongoDB Server MongoDB Shell, MongoDB Compass | ||||||||||||||
| Модульна контрольна робота №1. | 2 | |||||||||||||||||
| Агрегація даних. Pipelines. Анотація:Агрегативні функції: db.collection.count(), db.collection.countDocuments(), db.collection.find().count(), db.collection.distinct().Поняття pipelines і stages. Метод db.collection.aggregate(). Приклад stages: $match, $group, $project, $sort та ін. Агрегуючі оператори: $sum, $avg, $min, $max, $first, $last, $push, $addToSet. Функції агрегування db.collection.mapReduce() і аналог pipeline $unwind+$group. | 2 | Практична робота № 4. Агрегація даних. Pipelines. https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 2 | MongoDB Server MongoDB Shell, MongoDB Compass | ||||||||||||||
| Database references. Schema validation. Анотація: Встановлювання зв’язків/посилань між документами через manual references і DBRefs. Пошук пов’язаних даних за допомогою db.collection.aggregate() зі stage $lookup. Побудова правил валідації з використанням $jsonSchema і $expr, а також їх комбінації. | 2 | Практична робота № 5. Встановлення зв’язків/посилань між документами. Валідація даних у колекціях. https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 2 | MongoDB Server MongoDB Shell, MongoDB Compass | ||||||||||||||
| Тема 2 – MongoDB: просунутий рівень | ||||||||||||||||||
| Індекси: призначення, створення, дослідження впливу. Спеціальні типи індексів: текстові, геопросторові. Анотація: Що таке індекси та чому потрібно їх використовувати? Як вирішити, які поля індексувати? Як забезпечити та оцінити використання індексу? Робота з індексами: db.collection.createIndex(), db. collection.getIndexes(), db. collection.dropIndex(). Складений індекс. Неявні індекси. Індексування вкладених документів. Індексування масивів. Коли не варто використовувати індекси? Індекси для повнотекстового пошуку. Оператор пошуку по тексту $text і його складові: $search, $language, $caseSensitive, $diacriticSensitive. Виведення релевантності результату пошукового запиту: $meta. Геопросторові індекси: 2d і 2dsphere. Геопросторові дані. GeoJSON-об’єкти. Робота з 2d-геопросторовим індексом: $geoWithin : { $box: ... }, $geoWithin : { $polygon: ... }, $geoWithin : { $center: ... } та $near. Робота з 2dsphere- геопросторовим індексом: $geoWithin : { $geometry: ... } , $geoWithin : { $centerSphere: ... }, $geoIntersects, $near, $nearSphere. Iмпорт даних із файлу *.json. | 6 | Практична робота № 6. Індекси. Спеціальні типи індексів. https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 6 | MongoDB Server MongoDB Shell, MongoDB Compass | ||||||||||||||
| Хмарні сервіси MongoDB Atlas і MongoDB Charts. Анотація:Створення облікового запису у MongoDB Atlas. Створення Cluster’у. Завантаження Sample Dataset. Пошук із фільтром у MongoDB Atlas, проєкція і сортування даних. Агрегація даних. Використання індексів. Робота з MongoDB Atlas через MongoDB Compass. Iмпорт даних із файлу *.json у хмарну базу даних. Експорт даних з хмарної бази даних у файл *.json.Візуалізація даних. Активація сервісу MongoDB Charts. Створення власного Dashboard для розміщення графіків. Налаштування Data Sources для побудови графіків. Побудова різних типів графіків. | 4 | Практична робота № 7. Хмарні сервіси MongoDB Atlas і MongoDB Charts. https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 4 | MongoDB Atlas, MongoDB Charts MongoDB Shell, MongoDB Compass | ||||||||||||||
| Data migration (from SQL to MongoDB, from MongoDB to SQL). Studio 3T. Анотація:Знайомство з Studio 3T. Використання Studio 3T як клієнта для локальної або хмарної MongoDB. Міграція даних із реляційної бази даних у локальну або хмарну MongoDB. Налаштування міграції даних. Міграція даних з локальної або хмарної MongoDB у реляційну базу даних. Налаштування міграції даних. | 2 | Практична робота № 8. Міграція баз даних (SQL → MongoDB, MongoDB → SQL). https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 4 | MongoDB Server/MongoDB Atlas, Studio 3T, Будь-яка реляційна СКБД (наприклад, MySQL) | ||||||||||||||
| C# + MongoDB Анотація:Встановлення MongoDB драйвера в проєкт на С#. Підключення до бази даних через клас MongoClient. Методи класу MongoClient для роботи з базами даних: ListDatabaseNames(), ListDatabases(), GetDatabase(), DropDatabase(). Робота з колекціями через IMongoDatabase: CreateCollection(), RenameCollection(), GetCollection(), DropCollection(), ListCollections(), ListCollectionNames(). Класи BsonDocument, BsonElement, BsonValue. Додавання, видалення, модифікація документів у колекції через IMongoCollection<BsonDocument>: InsertOne(), InsertMany(), DeleteOne(), DeleteMany(), ReplaceOne(), UpdateOne(), UpdateMany(). Вивидення і фільтрація документів через IMongoCollection<BsonDocument>: Find(). | 2 | Проєктна робота “Розроблення програмного застосунку для роботи з даними в MongoDB” https://drive.google.com/file/d/1zSYnW0RMAY7SoRpPufMwHcwr8BA_7-AU/view?usp=sharing | 8 | MongoDB Server/MongoDB Atlas, Visual Studio | ||||||||||||||
| Python + MongoDB Анотація:Встановлення MongoDB драйвера PyMongo. Підключення до сервера MongoClient(). Отримання списку назв баз даних list_database_names(), підключення до бази даних, видалення бази даних: drop_database(), створення списку назв колекцій у базі даних: db.list_collection_names(), створення колекції db.create_collection(), видалення колекції drop_collection, підключення до колекції, додавання документів collection.insert_one(), collection.insert_many(), виведення і фільтрація документів: find(), модифікація даних: update_one(), update_many(), видалення документів: delete_one(), delete_many(). | 2 | MongoDB Server/MongoDB Atlas, PyCharm | ||||||||||||||||
| Модульна контрольна робота №2. | 2 | |||||||||||||||||
Теми та завдання для самостійної роботи
| Назва та опис завдання | Методи контролю та критерії оцінювання | Годин | |||||||||||||||
| Практична робота № 1 . Встановлення MongoDB. Базові команди та методи створення та заповнення колекцій. | Захист роботи | 6 | |||||||||||||||
| Практична робота № 2. Вибирання даних із колекцій. | Захист роботи | 6 | |||||||||||||||
| Практична робота № 3. Заміна та оновлення даних у колекціях. Видалення даних | Захист роботи | 6 | |||||||||||||||
| Практична робота № 4. Агрегація даних. Pipelines. | Захист роботи | 6 | |||||||||||||||
| Практична робота № 5. Встановлення зв’язків/посилань між документами. Валідація даних у колекціях. | Захист роботи | 6 | |||||||||||||||
| Практична робота № 6. Індекси. Спеціальні типи індексів. | Захист роботи | 18 | |||||||||||||||
| Практична робота № 7. Хмарні сервіси MongoDB Atlas і MongoDB Charts. | Захист роботи | 12 | |||||||||||||||
| Практична робота № 8 . Міграція баз даних (SQL → MongoDB, MongoDB → SQL). | Захист роботи | 6 | |||||||||||||||
| Проєктна робота “Розроблення програмного застосунку для роботи з даними в MongoDB” | Захист роботи | 20 | |||||||||||||||
Проєкт
Курсовий проєкт не передбачено навчальним планом.
Рекомендовані джерела інформації та навчальні матеріали
| Основні | ||||||||||||||||||
| № | Назва | До теми (вказати номер) | ||||||||||||||||
| 1 | MongoDB Documentation. - https://www.mongodb.com/docs/ | |||||||||||||||||
| 2 | MongoDB University. - https://learn.mongodb.com/ | |||||||||||||||||
| 3 | MongoDB Tutorial. - https://www.w3schools.com/mongodb/ | |||||||||||||||||
| 4 | ||||||||||||||||||
| Додаткові | ||||||||||||||||||
| № | Назва | До теми (вказати номер) | ||||||||||||||||
| 1 | Eric Redmond, Jim R. Wilson. “Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement” | |||||||||||||||||
| 2 | ||||||||||||||||||
Контрольні заходи
| Назва та опис | Методи контролю та критерії оцінювання | |||||||||||||||||
| Модульна контрольна робота №1. | Комп’ютерне тестування | |||||||||||||||||
| Модульна контрольна робота №2. | Комп’ютерне тестування | |||||||||||||||||
Результати навчання
Згідно стандарту 121 спеціальності, рівень освіти - другий (магістерський): РН03. Будувати і досліджувати моделі інформаційних процесів у прикладній області. РН04. Виявляти інформаційні потреби і класифікувати дані для проєктування програмного забезпечення. РН06. Розробляти і оцінювати стратегії проєктування програмних засобів; обґрунтовувати, аналізувати і оцінювати варіанти проектних рішень з точки зору якості кінцевого програмного продукту, ресурсних обмежень та інших факторів. РН07. Аналізувати, оцінювати і застосовувати на системному рівні сучасні програмні та апаратні платформи для розв’язання складних задач інженерії програмного забезпечення. РН17. Збирати, аналізувати, оцінювати необхідну для розв’язання наукових і прикладних задач інформацію, використовуючи науково-технічну літературу, бази даних та інші джерела.
Зв'язок з ринком праці
Спеціальність/професія, підготовці до діяльності в якій читається курс:
Розробник серверної частиниПосилання на вакансії (понад 3),
- https://jobs.dou.ua/companies/deloitte/vacancies/286291/
- https://jobs.dou.ua/companies/paycord/vacancies/286197/
- https://jobs.dou.ua/companies/outstaff-your-team/vacancies/286134/
- https://jobs.dou.ua/companies/bitmedia-labs/vacancies/285968/
- https://jobs.dou.ua/companies/manoris/vacancies/278420/
- https://jobs.dou.ua/companies/mycredit/vacancies/282422/
Перелік компетентностей із вказаних як вимоги до вакансії, які набувають студенти, в процесі проходження дисципліни.
Досвід роботи з MongoDB Досвід візуалізації данихІнструменти оцінювання результатів навчання за дисципліною
| Об'єкт оцінювання (знання методів та принципів, практичні навички, командна робота тощо) | Методи контролю (тести, виконання поточних практичних завдань та їх форма: написання коду, створення діаграми Гантта, створення прототипу тощо) | Інструмент оцінювання (доступ до результатів тесту, гостьова лекція, посилання на виконані завдання, посилання на проєкт, присутність на захисті проєктів, доступ до запису захисту тощо) |
| Практичні роботи №1-8 | Виконання завдань, оформлення звіту, захист роботи | доступ до виконанних практичних завдань |
| Проєктна робота | Виконання проєкту, оформлення звіту, захист проєкту | доступ до виконанних проєктів |
| Модульна контрольна робота №1. | Комп’ютерне тестування | доступ до результатів тестування |
| Модульна контрольна робота №2. | Комп’ютерне тестування | доступ до результатів тестування |
