Рубріки: Теорія

Що таке CRUD простими словами: функції, переваги та приклади

Андрій Денисенко

Ми щодня взаємодіємо з інформацією: читаємо стрічки в соцмережах, дивимося стріми, створюємо записи в блогах, надсилаємо повідомлення в месенджерах. Якщо потрібно щось додати, ми можемо відредагувати записи, а якщо щось стало непотрібним — видаляємо зайві дані.

Загалом, робота з інформацією зводиться якраз до чотирьох основних операцій:

  • створення;
  • читання;
  • оновлення;
  • видалення.

Ці ж операції можна виконати з даними в базі даних або іншій системі управління інформацією.

Що таке CRUD

CRUD — це скорочення від англійських слів, що позначають ці чотири операції:

  • Create (створювати);
  • Read (читати);
  • Update (оновлювати);
  • Delete (видаляти).

CRUD

Функції CRUD

Операції CRUD становлять основу для багатьох застосунків та систем управління інформацією, даючи змогу користувачам взаємодіяти з даними та змінювати їх відповідно до потреб.

Розглянемо ці функції та приклади їх використання докладніше.

Create

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

Операцію CRUD Create можна реалізувати в застосунку у вигляді форми з полями для введення тексту, чисел, адрес електронної пошти, вибору елементів у списку, а також із кнопкою Відправити для надсилання інформації в базу даних.

Після натискання цієї кнопки надсилається HTTP-запит POST до API нашого застосунку. У застосунку виконується функція, яка відправляє до бази даних запит на додавання нового запису.

Ми використовуємо операцію Create, щоб створити:

  • профіль користувача;
  • публікацію в блозі або соцмережі;
  • новину на сайті;
  • продукт в електронному магазині;
  • рахунок або платіж у банку;
  • завдання в планувальнику справ;
  • замітку в записнику тощо.

Read

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

Операція Read дає змогу переглядати записи. Вона не змінює дані, але над її результатами можна здійснювати дії, наприклад, фільтрувати список продуктів за вказаними критеріями.

Операція Read використовується, щоб прочитати:

  • інформацію про клієнта;
  • стрічку друзів;
  • вміст статті;
  • відомості про продукт;
  • дані про платіж;
  • подробиці поставленого завдання;
  • текст замітки тощо.

Update

Якщо інформація про клієнта застаріває або виявляється неповною, ви використовуєте операцію Update, щоб оновити її

Спочатку ви змінюєте дані у формі, а потім натискаєте кнопку Відправити, щоб записати оновлені відомості в базу даних.

Операція Update застосовується, щоб:

  • змінити електронну адресу або номер телефону користувача;
  • оновити статус у соцмережі;
  • внести правки в публікацію;
  • оновити ціну продукту або оптимізувати його опис для SEO;
  • змінити суму банківського переказу або інформацію про одержувача;
  • відзначити завдання як виконане або перенести його на інший час;
  • оновити запис про поїздку, додавши в нього нові фотографії з описами тощо.

Delete

Припустимо, з фірми звільняється кілька співробітників, і вам більше не потрібна інформація про них. Для видалення окремих записів використовується операція Delete.

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

Ця операція може також бути використана для видалення даних про фінансові операції, якщо це необхідно відповідно до політики банку.

Операція Delete використовується, наприклад, коли:

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

Переваги CRUD

Швидке керування даними

Застосовуючи операції CRUD, організації можуть керувати своїми даними набагато швидше. Завдяки можливості миттєво створювати, читати, оновлювати та видаляти дані, вони будуть впевнені, що ці дані впорядковані та актуальні.

Підвищена продуктивність

Операції CRUD допомагають організаціям підвищити продуктивність. Більше не потрібно вводити дані вручну, тому ви позбудетеся людських помилок. Коли дані впорядковані, можна ухвалювати більш обґрунтовані рішення та розвивати бізнес.

Масштабованість рішень

У міру зростання організації зростає й кількість операцій CRUD. Їхня універсальність спрощує масштабування відповідно до потреб зростаючого бізнесу.

Зручний інтерфейс

Завдяки операціям CRUD організації можуть позбутися важких для розуміння процесів управління даними. Вони користуються простим та зрозумілим інтерфейсом, який дає змогу членам команди отримувати необхідну їм інформацію та керувати даними.

Безпека даних

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

Зручність спільної роботи

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

Оптимізація робочого процесу

Операції CRUD покликані забезпечити максимальну ефективність. Вони спрощують завдання управління даними, автоматизуючи їх та скорочуючи витрати часу та грошей.

Спрощення резервного копіювання та відновлення даних

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

У чому різниця між CRUD та REST?

CRUD та REST — це два різні підходи до управління даними у вебзастосунках.

Основна відмінність між CRUD та REST у тім, що:

  • CRUD визначає набір основних операцій з даними (Create, Read, Update, Delete);
  • а REST визначає стандарти для обміну даними між клієнтом та сервером з використанням різних методів HTTP-запитів.

CRUD — це цикл із чотирьох основних команд для роботи з базою даних. Це не архітектурна система.

Для кожного окремо взятого вебсайту існує багато циклів CRUD. Незважаючи на те, що CRUD спочатку призначався для баз даних, зараз він відповідає принципам проектування динамічних застосунків.

У багатьох протоколах та мовах програмування існують реалізації CRUD, хоча назви команд та принцип їхньої роботи можуть трохи відрізнятися. Найяскравіший приклад — мова SQL, у якій реалізовано ці чотири команди.

Цикл CRUD використовується на динамічних вебсайтах. Наприклад, на сайті електронної комерції можна створити обліковий запис, переглянути інформацію, оновити її та видалити продукти з кошика.

Ці сайти створюються за допомогою спеціальних платформ для різних мов програмування, у тому числі:

  • Java (iBAtis, JOOQ);
  • Python (Django);
  • PHP (Doctrine, Propel);
  • .NET (LLBLGEN Pro, NHibernate).

REST (Representational State Transfer) — це архітектурний стиль, який використовується для створення вебсервісів. Він заснований на протоколі HTTP та встановлює стандарти для обміну даними між клієнтом та сервером.

Історія створення REST

Рой Філдінг

Творець REST Рой Філдінг (Roy Fielding) визначає цей протокол як «абстракцію архітектурних елементів у розподіленій системі гіпермедіа».

Принципи REST було викладено в його кандидатській дисертації 2000 року. До цього у веброзробників не було стандарту, відповідно до якого можна було б розробити інтернет-API та навіть скористатися ним.

У той час використовувалося багато протоколів, але їх було занадто складно дотримуватися. Для вирішення цієї проблеми Рой Філдінг та його колеги розробили протокол REST. Цей протокол дав змогу двом серверам обмінюватися інформацією незалежно від того, в якій точці світу вони перебувають.

Системи, сумісні з REST, називаються RESTful-системами. Вони характеризуються відокремленням роботи сервера від роботи клієнта та діють без збереження стану.

REST спирається на архітектуру RESTful, яка підтримує HTTP для реалізації вебінтерфейсу, а CRUD можна співвіднести з DDS, SQL або HTTP-методами.

Зараз протоколом REST користується безліч компаній, зокрема такі гіганти, як eBay та Amazon.

Що обрати: CRUD чи REST?

CRUD — це дія, яку виконують для запису даних у базу даних, а REST сумісний із будь-яким об’єктом або ресурсом: від медіафайлу до вебсайту або документа тощо.

REST-сервіси можуть реалізовувати CRUD-операції, використовуючи різні HTTP-методи, як-от:

  • POST (Create);
  • GET (Read);
  • PUT (Update);
  • DELETE (Delete).

Але REST також підтримує інші методи, наприклад, HEAD, OPTIONS, PATCH тощо.

REST — це надійна архітектура, що охоплює ресурси та гіпермедіа за протоколом HTTP. CRUD — це цикл обслуговування записів, які зберігаються в системах управління базами даних.

Таким чином CRUD та REST — дві різні концепції, але REST-сервіси можуть використовувати CRUD-операції для управління даними, що робить їх взаємопов’язаними.

Якщо перед розробниками стоїть завдання вибору між CRUD та REST, вони обирають CRUD для реалізації функцій постійного сховища. Нижче наведено деякі параметри, що забезпечують надійність REST:

  • Масштабованість. Архітектура REST прив’язана до однакового інтерфейсу та забороняє використовувати різні інтерфейси для конкретного API. Цей механізм забезпечує масштабованість REST.
  • Простота. REST працює без збереження стану та відокремлює клієнт від сервера. Уся необхідна інформація передається в запиті.
  • Систематизація. REST ефективно використовує механізм кешування, визначаючи відповіді, які відправляє сервер.

Приклад роботи з користувачем у CRUD

Розглянемо, який вигляд може мати приклад роботи з користувачем у CRUD.

Припустимо, є сайт example.com, який приймає запити до API та надсилає відповіді у вигляді коду JSON.

Перегляд користувачів

Read(читання списку користувачів): системі надсилається запит на отримання списку користувачів, після чого вона завантажує цей список із бази даних та надсилає список у форматі JSON.

Для цього надсилається запит GET на URL-адресу http://example.com/users. У разі його успішного виконання сервер надсилає HTTP-відповідь 200 із даними:

{ "users": [
    {
        "id": 1,
        "name": "John Doe",
        "email": "johndoe@example.com",
        "password": "Qw12h%63h"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "janedoe@example.com",
        "password": "Ue7^4ls7$6"
    },
    ...
    ]
}

Другий приклад. Системі надсилається запит на отримання відомостей про користувача, після чого система завантажує інформацію про його профіль із бази даних та надсилає користувачеві відповідь.

Наприклад, для отримання користувача з ідентифікатором 1 надсилається запит GET на URL-адресу http://example.com/users/1. У разі його успішного виконання сервер надсилає HTTP-відповідь 200 із даними:

{
    "id": 1,
    "name": "John Doe",
    "email": "johndoe@example.com",
    "password": "Qw12h%63h"
}

Додавання користувача

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

Наприклад, щоб додати користувача з ім’ям Jack Smith, адресою jacksmith@example.com та паролем hKP*%8b3;, надсилається запит POST на URL-адресу http://example.com/users/add з відповідними даними:

{
    "name": "Jack Smith",
    "email": "jacksmith@example.com",
    "password": "hKP*%8b3;"

Оновлення користувача

Update(оновлення інформації про користувача): користувач заходить на сторінку свого профілю та вносить необхідні зміни в поля форми (наприклад, змінює адресу електронної пошти). Після натискання на кнопку Зберегти дані надсилаються на сервер, який оновлює інформацію про користувача в базі даних та надсилає відповідь, повідомляючи користувачеві, що його профіль було успішно оновлено.

Наприклад, щоб змінити адресу електронної пошти користувача з ідентифікатором 1 на johndoejr@example.com, на адресу http://example.com/users/1 надсилається запит PUT зі зміненими даними:

{ "email": "johndoejr@example.com" }

Видалення користувача

Delete(видалення користувача): користувач заходить на сторінку свого профілю та натискає кнопку Видалити обліковий запис. Після підтвердження видалення система надсилає запит на сервер, який видаляє дані користувача з бази даних та надсилає відповідь, повідомляючи користувачеві, що його обліковий запис було успішно видалено.

Наприклад, для видалення користувача з ідентифікатором 3 надсилається запит DELETE за адресою http://example.com/users/3.

Якщо після цієї операції надіслати за цією адресою запит GET, буде отримано код 404, який означає, що запитаних даних немає.

Висновок

CRUD (Create, Read, Update, Delete) — це основні операції, які використовуються для управління даними в більшості вебзастосунків та систем управління інформацією. Ці операції дають змогу працювати з базою даних, тобто створювати, читати, оновлювати та видаляти дані.

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

Це дає змогу розробникам швидко створювати застосунки та системи управління інформацією, використовуючи наявні бази даних.

Але для більш складних систем управління інформацією або вебзастосунків операцій CRUD може виявитися недостатньо. У таких випадках потрібні складніші архітектурні патерни та технології.

Операції CRUD — важливий та невід’ємний елемент під час розроблення вебзастосунків та систем управління інформацією, який гарантує простоту та універсальність управління даними.

Останні статті

Brave1 збільшив гранти для оборонних розробок: можна отримати до 2 млн гривень

Кластер Brave1 збільшує гранти для оборонних розробок — тепер можна отримати від 500 тис до…

10.05.2024

Softserve, Luxoft та Infopulse. З’явився рейтинг найбільших платників податків серед IT-компаній

За 2023 рік IT-компанії сплатили сплатили в державний бюджет 20,8 мільярда гривень податків. Це 7,4%…

10.05.2024

«За заслуги перед компанією»: Microsoft розморозить підвищення зарплат співробітникам

Корпорація Microsoft планує відновити підвищення зарплат для найбільш ефективних співробітників. Про це повідомив Insider. Вірогідне…

10.05.2024

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

Міністерство економіки запропонувало виробникам дронів пільгові гранти від держави за програмою «Переробка». Про це йдеться…

09.05.2024

Дочекалися. В квітні попит на айтівців без досвіду був вищий, ніж на досвідчених фахівців

В квітні попит на недосвідчених айтівців був вищий, аніж на тих, хто має 3-4 роки…

09.05.2024

Dell буде відстежувати переміщення та присвоювати рейтинг «прогульникам» офісу

Американська компанія Dell після зміни політики щодо ремоуту посилює контроль за працівниками. Зокрема, відстежує фізичне…

09.05.2024