ایجاد، خواندن، روزآمدی و حذف

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از Create, read, update and delete)

ایجاد، خواندن، روزآمدکردن[۱] (به‌روزرسانی) و حذف (به انگلیسی: Create, read, update and delete) که به اختصار (CRUD) نیز خوانده می‌شوند؛ چهار تابع بنیادین ذخیره ماندگار هستند.[۲] ممکن است از واژه‌های جایگزین در زمان تعریف چهار تابع اساسی CRUD استفاده شود، مثل «بازیابی (به انگلیسی: retrieve)» به جای خواندن، و اصلاح (به انگلیسی: modify) به جای روزآمدکردن، و تخریب (به انگلیسی: destroy) به جای حذف. گاهی از واژه CRUD برای توصیف قراردادهای واسط کاربری که دیدن، جستجو، و تغییر اطلاعات را ساده‌سازی می‌کنند، استفاده می‌شود، این کار معمولاً از طریق فرم‌ها و گزارش‌های کامپیوتری انجام می‌شود. این اصطلاح (CRUD) احتمالاً اولین بار توسط جیمز مارتین در کتاب سال ۱۹۸۳ ایشان به نام «مدیریت محیط پایگاه داده» رواج یافته‌است.[۳][۴] گاهی این کوته‌نوشت را به CRUDL گسترش می‌دهند تا «لیست کردن (به انگلیسی: listing)» دیتاست‌های بزرگ را پوشش دهد، و این موضوع پیچیدگی‌های اضافی پیش می‌آورد، مثلاً موقعی که دیتاست‌ها بسیار بزرگ هستند و نمی‌توان آنها را در حافظه نگهداشت، باید از صفحه‌بندی استفاده کرد.

کاربردها در پایگاه داده

کوته‌نوشت CRUD به همه «توابع عمده» ای که در نرم‌افزار کاربردی پایگاه داده رابطه‌ای پیاده‌سازی شده‌است، اشاره دارد. هر حرف موجود در این مخفف، را می‌توان به یک بیانیه زبان پرسمان ساخت‌یافته (SQL) استاندارد، متدهای پروتکل انتقال ابرمتن (HTTP) (که در ساخت واسط کاربری RESTful[۵] استفاده می‌شوند) یا یک عملیات خدمت توزیع‌شده داده (DDS) نگاشت داد:

Operation SQL HTTP RESTful WS DDS MongoDB
Create INSERT PUT / POST POST write Insert
Read (Retrieve) SELECT GET GET read / take Find
Update (Modify) UPDATE PUT / POST / PATCH PUT write Update
Delete (Destroy) DELETE DELETE DELETE dispose Delete

مقایسه عملیات‌های پایگاه داده محور CRUD با متدهای HTTP ایراداتی هم دارد. اگر بخواهیم دقیق‌تر بگوییم، هم PUT و هم POST می‌توانند منابع را بسازند یا روزآمد کنند؛ تفاوت کلیدی آن است که برخلاف POST، متد PUT خودتوان است، یعنی چندین درخواست مشابه باید تأثیر مشابهی با یک درخواست منفرد داشته باشد. درنتیجه، PUT یک عملیات «جایگزین» است، که می‌توان استدلال کرد که معادل روزآمدسازی یا «update» نیست.

اگرچه یک پایگاه داده رابطه‌ای یک لایه ماندگاری معمول در نرم‌افزارهای کاربردی می‌باشد، لایه‌های ماندگاری فراوان دیگری هم وجود دارد. برای مثال، عملیات CRUD را می‌توان در پایگاه داده شیء یا پایگاه داده اکس‌ام‌ال، یا فایل‌های متنی صاف، یا فرمت فایل سفارشی هم پیاده‌سازی کرد. بعضی از سامانه‌ها (داده‌ای بزرگ) UPDATE را پیاده‌سازی نمی‌کنند، بلکه فقط یک INSERT مهرزمان‌دار (وقعه‌نامه) دارند، یعنی در واقع یک ورژن جدید از شیء را ذخیره‌سازی می‌کنند. درنتیجه، آنها تراکنش ندارند، و ممکن است سازگاری‌شان را از دست بدهند.

واسط کاربری

CRUD همچنین با مرحله واسط کاربری بیشتر برنامه‌های کاربردی مرتبط است. مثلا در نرم‌افزار کتاب آدرس، که واحد ذخیره‌سازی مبنایی، یک «ورودی تماس» است. در اینجا به صورت یک حداقلی، نرم‌افزار باید به کاربر اجازه این موارد را بدهد:

  • ساخت یا اضافه کردن ورودی جدید؛
  • خواندن، بازیابی، جستجو، یا دیدن ورودی موجود؛
  • روزآمدی یا اصلاح ورودی موجود؛
  • حذف، غیرفعال‌سازی، یا برداشتن ورودی موجود.

بدون حداقل این چهار عملیات، نرم‌افزار را نمی‌توان کامل درنظر گرفت. به دلیل آنکه این عملیات‌ها بسیار بنیادین هستند، معمولاً مستندسازی شده، و تحت یک عنوان جامع توصیف می‌شوند، مثل «مدیریت تماس»، «مدیریت محتوا» یا «نگهداری از محتوا» (یا «مدیریت سند» به صورت کلی، بر اساس واحد ذخیره‌سازی اساسی برای کاربرد خاص).

انواع دیگر

دیگر انواع CRUD شامل این موارد است:

  • BREAD: browse, read, edit, add, delete[۶]
  • DAVE: delete, add, view, edit[۷]
  • CRAP: create, replicate, append, process[۸]

جستارهای وابسته

پانویس

  1. «روزآمد کردن» [رایانه و فنّاوری اطلاعات] هم‌ارزِ «update»؛ منبع: گروه واژه‌گزینی. جواد میرشکاری، ویراستار. دفتر سوم. فرهنگ واژه‌های مصوب فرهنگستان. تهران: انتشارات فرهنگستان زبان و ادب فارسی. شابک ۹۶۴-۷۵۳۱-۵۰-۸ (ذیل سرواژهٔ روزآمد کردن)
  2. Heller, Martin (29 January 2007). "REST and CRUD: the Impedance Mismatch". Developer World. InfoWorld.
  3. Managing the Data-base Environment, p. 381, at Google Books
  4. Martin, James (1983). Managing the Data-base Environment. Englewood Cliffs, New Jersey: Prentice-Hall. p. 381. ISBN 0-13-550582-8.
  5. Tom Spencer (2014). "No REST for the whippet".
  6. Paul M. Jones (2008). "BREAD, not CRUD".
  7. McGaw, James (21 June 2010). Beginning Django E-Commerce. p. 41. ISBN 978-1-4302-2536-2.
  8. "CRAP and CRUD: From Database to Datacloud - Direct2DellEMC". Direct2DellEMC. 2012-11-13. Retrieved 2018-01-30.

منابع