Міністерство освіти і науки України
Міжнародний науково-технічний університет ім. академіка Ю. Бугая Кафедра ІНЖЕНЕРІЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
НАЗВА ТЕМИ
Сучасні СУБД
Реферат
Виконав студент
3 курсу ПIк – 91 групи факультету ІНЖЕНЕРІЯ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ
Забродський Ян Анатолiйович
Зміст
Вступ 3
MongoDB і її можливості. 4
Основні принципи MongoDB. Базові операції з даними. 5
Особливості використання. 7
Висновок. 9
Список використаної літератури. 9
Вступ
Об'єктом дослідження є системи управління базами даних. Предметом дослідження - система управління базами даних MongoDB.
Мета даної роботи - дослідити СУБД MongoDB.
Для досягнення поставленої мети необхідно вирішити такі завдання:
1.Проаналізувати СУБД MongoDB і її можливості;
2.Дослідити основні принципи роботи MongoDB;
3.Виявити особливості використання.
Основні положення реферату грунтуються на роботі Кайла Бенкера.
Бази даних - робочі конячки інформаційної епохи. Як атланти, вони незримо підпирають цифровий світ, в якому ми живемо. Легко забути, що все наше цифрове спілкування, будь то коментарі у форумах, повідомлення в соціальних мережах, пошук або сортування, - це по суті взаємодія з базою даних.
MongoDB - це система управління базами даних, «заточена» під веб-додатки та інфраструктуру Інтернету. Модель даних і стратегія їх постійного зберігання спроектовані для досягнення високої пропускної здатності читання і запису і забезпечує просту масштабованість з автоматичним переходом на резервний ресурс у разі відмови. Скільки б вузлів ні було потрібно з додатком - один або десятки, - MongoDB зуміє забезпечити разюче високу продуктивність. Того, хто раніше мучився з масштабуванням реляційних баз, ця новина обрадує.
Історія MongoDB, хоч і коротка, але заслуговує на увагу, тому що народилася ця СУБД в ході роботи над набагато більш амбітним проектом. В середині 2007 року щойно створена компанія 10gen приступила до розробки проекту «програмна платформа як послуга». Ідея була в тому, щоб створити сервер додатків і базу даних, які могли б служити хостингом для веб-додатків, забезпечуючи масштабування в міру необхідності. Платформа компанії 10gen проектувалася з розрахунком на автоматичне масштабування і управління програмної і апаратної інфраструктурою. В результаті 10gen виявила, що більшість розробників не готові віддати в чужі руки управління своїм технологічним господарством, але зате нова технологія баз даних виявилася затребуваною. Тому компанія вирішила зосередити зусилля виключно на цій СУБД, яка отримала назву MongoDB.
Як було сказано вище, MongoDB - документо-орієнтована СУБД з відкритим вихідним кодом, яка не потребує опису схеми таблиць.
Як з'ясовується, привабливість MongoDB пояснюється в першу чергу не стратегією масштабування, а інтуїтивно зрозумілою моделлю даних. З огляду на, що за допомогою документо-орієнтованої моделі можна уявити розвинені ієрархічно організовані структури даних, часто виявляється можливо обійтися без властивих реляційним СУБД складнощів, пов'язаних з з'єднанням декількох таблиць. Нехай, наприклад, ви моделюєте товари для сайту інтернет-магазину. У повністю нормализованной базі даних інформація про один товар може бути розкидана по десяткам таблиць. Щоб отримати його подання до інтерактивної оболонці СУБД, доведеться написати складний SQL-запит з купою з'єднань. Тому розробники, як правило, звертаються до додаткових програм, коли хочуть зібрати розрізнені дані в щось осмислене.
З іншого боку, в документної моделі велика частина інформації про товар може бути представлена у вигляді одного документа. В оболонці MongoDB, побудованої на основі мови JavaScript, неважко отримати повне уявлення про товар у вигляді ієрархічно організованої JSON-подібної структури (JSON - це скорочення від JavaScript Object Notation. JSON - структури складаються з ключів і значень і допускають довільну глибину вкладеності. Вони аналогічні словників і Хешам в інших мовах програмування). До неї можна пред'являти запити, їй можна маніпулювати. Засоби складання запитів в MongoDB спеціально спроектовані для роботи зі структурованими документами, але так, щоб користувач, який має досвід роботи з реляційними базами, мав у своєму розпорядженні порівнянної виразною силою. До того ж, сьогодні більшість розробників пишуть на об'єктно-орієнтованих мовах, тому їм потрібна така збе ніліще, яке було б простіше відобразити на об'єкти. В разі
MongoDB об'єкт, визначений на мові програмування, зберігається «як є» - без додаткової складності, вноситься системами об'єктно-реляційного відображення.
Основні можливості даної СУБД:
Документо-орієнтоване сховище (проста і потужна JSON-подібна схема даних)
Досить гнучка мова для формування запитів
динамічні запити
Повна підтримка індексів
профілювання запитів
Швидкі оновлення «на місці»
Ефективне зберігання двійкових даних великих обсягів, напр., Фото і відео
Журнал операцій, що модифікують дані в БД
Підтримка відмовостійкості і масштабованості: асинхронна реплікація, набір реплік і шардінг
Для початку потрібно зрозуміти шість основних концепцій.
1.MongoDB - концептуально те ж саме, що звичайна, звична для нас база даних. Усередині MongoDB може бути нуль або більше баз даних, кожна з яких є контейнером для інших сутностей.
2.База даних може мати нуль або більше «колекцій». Колекція настільки схожа на традиційну «таблицю», що можна сміливо вважати їх одним і тим же.
3.Коллекціі складаються з нуля або більше «документів». Знову ж, документ можна розглядати як «рядок».
4.Документ складається з одного або більше «полів», які - як можна здогадатися - подібні «колонкам».
5. «Індекси» в MongoDB майже ідентичні таким в реляційних базах даних.
6. «Курсор» відрізняються від попередніх п'яти концепцій, але вони дуже важливі (хоча часом їх обходять увагою) і заслуговують окремого обговорення. Важливо розуміти, що коли ми запитуємо у MongoDB будь-які дані, то вона повертає курсор, з якими ми можемо робити все що завгодно - підраховувати, пропускати певну кількість попередніх записів - при цьому не завантажуючи самі дані.
Підводячи підсумок, MongoDB складається з «баз даних», які складаються з «колекцій». «Колекції» складаються з «документів». Кожен «документ» складається з «полів». «Колекції» можуть бути проіндексовані, що покращує продуктивність вибірки і сортування. І нарешті, отримання даних з MongoDB зводиться до отримання «курсора», який віддає ці дані у міру потреби.
Всі команди за операціями з даними виконуються в консолі mongo.
Використовується глобальний метод use. Введіть:
«Use project»
Поки наша база даних project не існує. Але це не важливо. Вона буде створена в момент першої вставки.
Створення Колекції (таблиці). Використовуйте команду insert.
Перегляд Колекції. Тепер у колекції users можна викликати метод find, який поверне список документів:
«Db.users.find»
Видалення Колекції. Для повного видалення Колекції необхідно використовувати комаду remove без параметрів:
«Db.users.remove»
Розглянемо деякі відмінності в роботі з MongoDB порівняно зі звичним SQL.
Консольні інструменти. За аналогією з тим, як в консолі MySQL ми можемо виконувати SQL-запити, інтерактивна консоль MongoDB дозволяє виконувати команди сервера БД використовуючи мову JavaScript.
Структура інформації. Структуру даних в реляційних системах на прикладі MySQL ми можемо представити у вигляді такої ієрархії:
База даних -> Таблиця -> Рядок -> Поле + Значення.
Як це все виглядає в MongoDB:
База даних -> Колекція -> Документ -> ключ + значення.
Таблиці в реляційних БД повинні бути жорстко структуровані, в той час як в MongoDB можна створювати документи довільної структури.
Запис. В SQL є оператор INSERT для додавання і UPDATE для оновлення записів. Запис в MongoDB Виконується за допомогою трьох функцій: insert - додавання, save і update - для оновлення і додавання.
Вибірка. Припустимо нам треба вибрати всі документи з певної колекції у яких значення city одно "Moscow". У SQL нам доводиться вдаватися до інструкції JOIN, тому що в уніфікованої системі ми не завжди можемо записати всю інформацію в одну таблицю. наприклад:
SELECT docs.title, loc.city FROM documents docs
INNER JOIN doc_location d_loc ON d_loc.doc_id = docs.doc_id
INNER JOIN location loc ON loc.loc_id = d_loc.loc_id
Як це робиться в MongoDB, враховуючи що все зберігається в одному документі:
db.find ({additional.location.city: "Moscow"});
За аналогією з JOIN ми також можемо створювати посилання на об'єкти інших колекцій, і нам не доведеться робити окремі запити для отримання пов'язаних документів.
MongoDB добре справляється з великою кількістю документів (мільйони), швидкість вибірки як і в SQL оптимізується індексами, лімітами на кількість одержуваних документів за один запит, як і в звичних реляційних БД індекси негативно впливають на швидкість запису. Є знайома нам операція EXPLAIN, що виконує ті ж функції що і в MySQL.
MongoDB підтримує кілька видів атомарних операцій.
Ми можемо використовувати синхронний і асинхронний тип запису, асинхронний за замовчуванням і він швидше, тому що додатка не доводиться чекати відповіді від сервера.
MongoDB рекомендують використовувати при великій кількості одночасних запитів (більше тисячі в секунду), особливо при великій кількості операцій запису. Судячи з численних відгуків, саме швидка запис одне з головних переваг цієї БД.
Непоганим рішенням було б використання цієї БД для ведення статистики, системи кешування, зберігання призначених для користувача сесій, ведення системного журналу, системи управління чергами і т.д. Крім цього, модулі можуть активно використовувати цю БД для зберігання своїх даних якщо в цьому є вигода.
У даній роботі ми досліджували систему управління базами даних MongoDB.
Мета реферату, що полягає в дослідженні СУБД MongoDB, досягнута.
Вирішені наступні завдання:
1) Проаналізовано СУБД MongoDB і її можливості. MongoDB - це система управління базами даних, «заточена» під веб-додатки та інфраструктуру Інтернету. Одними з можливостей є підтримка відмовостійкості і масштабованості, досить гнучкий мову для формування запитів, динамічні запити і ефективне зберігання двійкових даних великих обсягів, напр., Фото і відео.
2) Досліджено основні принципи роботи MongoDB. MongoDB складається з «баз даних», які складаються з «колекцій». «Колекції» складаються з «документів». Кожен «документ» складається з «полів». «Колекції» можуть бути проіндексовані, що покращує продуктивність вибірки і сортування.
3) Виявлено особливості використання. До особливостей використання відносяться створення документів довільної структури; запис в MongoDB виконується за допомогою трьох функцій: insert - додавання, save і update - для оновлення і додавання; MongoDB підтримує кілька видів атомарних операцій.
Список використаної літератури:
Бенкер Кайл «MongoDB в дії» Електронна версія.
http://www.intuit.ru
www.isman.ru
Wikipedia.org