Робота з нереляційною СКБД MongoDB
Автор: Максим4 Иванов • Июнь 21, 2021 • Лабораторная работа • 1,095 Слов (5 Страниц) • 502 Просмотры
Лабораторна робота №10
Тема: Робота з нереляційною СКБД MongoDB
Мета роботи: вивчення структури та особливостей MongoDB і отримання навичок роботи з нею.
Теоретичні відомості
Раніше ви вже ознайомились з представником SQL баз даних, а саме – SQL Server. SQL бази даних, також відомі, як реляційні бази даних, широко використовуються для обробки структурованих даних, які організовують елементи даних і стандартизують їх відношення один з одним.
NoSQL бази даних, також відомі, як нереляційні бази даних, дозволяють зберігати неструктуровані дані з використанням динамічної схеми. NoSQL широко використовуються завдяки своїй гнучкій здатності створювати унікальну структуру і може бути документом, графіком, стовбцем або KeyValue, організованим як структура даних.
SQL база даних – чудовий вибір для будь-якого додатку, якому буде зручно користуватися попередньо визначеною структурою і готовими схемами. Наприклад: система бухгалтерського обліку, система управління інвентарем.
MongoDB, як представник NoSQL баз даних, підходить для бізнесів зі швидкими темпами зростання. Доцільно використовувати, якщо неможливо чітко визначити схему для бази даних. Таке може траплятись в мобільних додатках, аналітиці, що працює в режимі реального часу, системам менеджменту контенту.
MongoDB – це JSON-подібна база даних, але заснована на специфікації BSON.
BSON – це двійкове кодування JSON-подібних документів, яке використовує MongoDB при зберіганні документів в колекціях. В ньому реалізована підтримка типів даних, наприклад, Date, які не підтримуються в JSON.
В основі бази даних лежить документ. В контексті JavaScript це звичайний об’єкт:
{
name: 'Merrick', article: 'MongoDB - part 1'
}
Як стає очевидно з прикладу, документ – звичайний набір ключ / значення. Також, дана база даних чутлива до регістру і типу значень. В цьому прикладі показано 4 повністю різні документи:
{ count: 5 }
{ count: '5' }
{ Count: 5 }
{ Count: '5' }
Ключі в документах це рядки, для імені доступні всі UTF-8 символи, за винятком декількох виключень:
- ключі не можуть використовувати символ \0 тому що він означає кінець рядка;
- символи . і $ мають особливе значення.
Документи відсортовані в тому ж порядку, в якому і були додані в базу даних. Тобто, { x: 1, y: 2 } не те ж саме, що { y: 2, x: 1 }.
Також, документ не може мати поля з однаковими ключовими значеннями. Такий документ не може існувати:
{ greeting: "Hello, world!", greeting: "Hello, MongoDB!" }
Колекції – це група документів. Ідентифікуються колекції по name. Нижче, name колекції це users.
users:
{ name: 'Merrick', views: 5 }
{ name: 'John', views: 15 }
Декілька правил для імен колекцій:
- пустий рядок це неправильна назва;
- заборонено використовувати знак \0;
- непотрібно використовувати назви, які починаються з system, так в колекції system.users зберігається інформація про користувачів бази даних;
Для колекцій не існує патерну, за яким їх потрібно створювати. Наприклад, нижче наведено повністю працюючу структуру:
users:
{ name: 'Merrick', views: 5 }
{ name: 'John', views: 15 }
{ weather: 'rain', walk: false }
Колекції в свою чергу поєднуються в одну базу даних, яких в mongo може бути скільки завгодно.
Правила, за якими потрібно називати бази даних:
- пустий рядок це неправильна назва;
- база даних не може мати в назві | / \ $ # . " * < > : ? \s \0;
- назва бази даних чутлива до регістру;
- ліміт для назви 64 байти.
В результаті отримуємо наступну ієрархію:
Сервер MongoDB 🡪 Бази даних 🡪 Колекції 🡪 Документи
Хід роботи:
- Перше, що потрібно зробити перед виконанням лабораторної роботи – встановити локально MongoDB. Для цього скористуйтеся даним посиланням. Після встановлення можна переходити до наступного пункту.
- Далі потрібно запустити командне вікно MongoDB. Для цього перейдіть до папки, в яку встановили базу даних. За замовчуванням - C:\Program Files\MongoDB\Server\4.4\bin. Запустіть файл mongo.exe. Очікуваний результат:
[pic 1]
- Щоб створити свою базу даних достатньо написати use myDatabase, після чого ви отримаєте у відповідь «switched to db myDatabase». Це означає, що все пройшло успішно і ви створили свою першу нереляційну базу даних.
- Далі пояснення буде відбуватися відповідно до варіанту 13 лабораторної роботи №1. Створимо в нашій базі даних колекцію equipment:
[pic 2]
- Перед заповненням таблиці потрібно дещо з’ясувати. MongoDB – нереляційна база даних. Саме тому було створено лише одну колекцію, де і буде знаходитись весь наш «документ». За основу взято середню таблицю, а поля «Код обладнання» і «Код працівника» будуть представлені об’єктом, який міститиме всі значення з відповідних таблиць. Таблиці, про які йшла мова вище:
[pic 3]
Пропонується наступна структура: [pic 4]
- Для того щоб додати записи у таблицю потрібно скористатися методом insertOne (якщо хочете додати один запис) або insertMany (якщо хочете додати багато записів). У нашому випадку це виглядатиме так:
db.equipment.insertOne( { writeOffId: 1, equipmentDetails: { equipmentName: "Миша", type: "Периферія", startDate: "2020-06-06"}, writeOffReason: "Поломка", writeOffDate: "2020-09-09", workerDetails: { surname: "Коркошко", name: "Віктор", patronymic: "Русланович", position: "Директор", employmentDate: "2019-03-03"}, documentId: 100, registrationDate: "2020-09-09" })
Наприклад, в середовищі Atlas (хмарна база даних MongoDB) даний запис буде виглядати так:
...