در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
اما همانطور که گفتیم مدل رابطهای مشکلاتی دارد که باوجود این مشکلات هنوز کاربردی است و در خیلی جاها مورد استفاده قرار میگیرد. اما این مدل بهرغم مزایا و معایب و استفاده گسترده از آن، در خیلی جاها نمیتواند بازدهی خوبی از خود نشان دهد، به همین دلیل مدلهای دیگری طراحی شدهاند تا کاربردی خاص داشته باشند و در عین حال برنامهنویسان و طراحانی را که پیش از این با مدل رابطهای پایگاههای داده خود را طراحی میکردند، درگیر یک مساله جدید کنند.
این مدل جدید براساس اسناد طراحی شد و به همین دلیل آن را به اسم DocumentDb میشناسند. در این مدل اسناد و کلید و مقدار آنها تعیینکننده است و دیگر خبری از کلید و جدول و رابطه و... نیست، از این رو این مدل را به اسم NoSQL نیز میشناسند.
در این شماره قصد داریم بیشتر با این مدل آشنا بشویم و امکاناتی را که در اختیار ما میگذارد، بررسی کنیم.
با ظهور برنامهنویسی شیءگرا، کلاسها و متدها و فیلدها بودند که موجودیتها و مفاهیم برنامه را مشخص میکردند. در طراحی کلاسها چه پارامترهایی دخیل هستند؟ در واقع شما برای طراحی کلاس از مدلهای مفهومی استفاده میکنید تا بتوانید به آنچه مدنظرتان است، دست پیدا کنید. حالا بیاییم از این مدلهای مفهومی در جای دیگر و به شکل دیگر استفاده کنیم. بهطور مثال هر شیء یک سطر در دیتابیس و هر کلاس یک جدول در پایگاه داده است و شما فقط با گرفتن یک شیء از یک کلاس، یک رکورد از پایگاهداده را میخوانید.
در همین جا بحث را به بررسی ساختار پایگاهداده مبتنی بر اسناد اختصاص میدهیم سپس بحث را پیگیری میکنیم.
در این پایگاهداده دیگر جدول و سطر وجود ندارد بلکه ساختار جداول چیزی است که شما در برنامه خود معرفی و اطلاعات آن را ذخیره کردهاید. پس شما هر زمان که خواستید با تغییر آنچه در برنامه خود معرفی کردهاید میتوانید مدل دادههای خود را عوض کـنید. هر سطر در این مدل به عنوان یک سند شناخته میشود و در این سند اطلاعات، مربوط به همان سند است و شما با خواندن یک سند میتوانید به اطلاعات آن سطر از پایگاهداده خود دسترسی پیدا کنید.
حالا بیایید مدل شیءگرا را با این مدل پایگاهداده ترکیب کنیم. ما یک مدل تعریف و هر شیء از آن را در پایگاهداده ذخیره میکنیم که به عنوان یک سند شناخته میشود. اینکاری است که تمام پایگاهدادهها در مدل NoSQL برای ذخیره دادهها استفاده میکنند.
اما چند نکته در مورد خود پایگاهداده
1ـ اسناد چگونه در سیستم بهصورت یکتا تعریف میشود؟
هر سند یک کلید منحصر به فرد دارد که سیستم آن را تولید میکند و هر سند توسط این کلید در سیستم یکتا میشود. علاوه بر این، شما در این مدل میتوانید اسناد خود را ایندکسگذاری کنید تا دسترسی به آنها راحتتر شود.
2ـ اگر هر مدل تمام اطلاعات را در درون خود داشته باشد، باعث افزایش اطلاعات نمیشود؟
در دید اول جواب این سوال مثبت است، اما این مدل رابطهها را به طور کامل منتفی نمیکند. البته این بستگی به طراحی شما نیز دارد، برای مثال ما میخواهیم تمامی محصولات خریداری شده یک کاربر را ببینیم، در این حالت دو راه حل وجود دارد؛ اولی هر کاربر یک سند داشته باشد و محصولات خریداری شده آن در همان سند موجود باشد. این طراحی خوب است اما بهینه نیست. در پاسخ به این پرسشها که هر سند قرار است چقدر بزرگ شود و دسترسی به دادهها و گزارش آن چگونه است؛ بنابراین بهتر است گریزی به مدل رابطهای بزنیم. در این حالت اسناد را طوری طراحی کنید تا تلفیقی از مدل رابطهای و اسناد باشد تا حجم اطلاعاتی که در یک لحظه بارگذاری میشود بهینه شود. بنابراین در این مدل الزاما نفی رابطهها مدنظر نیست، بلکه استفاده بهینه از آنها و کم کردن رابطهها مطرح است.
در تپش این هفته، ماجرای فریب و تعرض در پوشش عرفانهای دروغین و رمالی را بررسی کردیم
گزارش «جامجم» درباره دستاوردهای زبان فارسی در گفتوگو با برخی از چهرههای ادب معاصر
معاون وزیر بهداشت: