دیتابیس (DataBase) یا پایگاه داده مجموعهای سازمانیافته از اطلاعات یا دادههای ساختاریافته است که معمولاً به صورت الکترونیکی در یک سیستم کامپیوتری ذخیره میشود. هدف این مقاله آشنایی با مفاهیم اولیه پایگاه داده و کاربردهای آن است.
دیتابیس چیست؟
دیتابیس مجموعهای سازمانیافته از دادهها است که مدیریت دادهها را آسانتر میکند. برای مدیریت دادهها در یک پایگاه داده، معمولاً از یک سیستم مدیریت پایگاه داده (DBMS) یا همان (DataBase management System) استفاده میشود.
به بیان سادهتر، پایگاه داده مجموعهای از دادهها است که در کامپیوتر ذخیره و به نوعی ساختاردهی میشوند و همچنین امکان دسترسی به دادهها از طریق آن برای کاربران تسهیل شده است.
پایگاههای داده معمولاً در قالبی که برای دستگاهها و رایانهها قابل خواندن و قابل دسترسی باشند، ذخیره میشوند.
مفاهیم اولیه دیتابیس
امروزه دادههای موجود در رایجترین انواع دیتابیس معمولاً در یک سری جداول در ردیفها و ستونهای جدول مدلسازی میشوند تا پردازش و پرسوجوی دادهها کارآمد باشد. از این طریق دادهها را میتوان به راحتی در دسترس قرار داد و مدیریت، اصلاح، بهروزرسانی، کنترل و سازماندهی کرد. اکثر پایگاههای داده از زبان پرسوجو ساختیافته (SQL) برای نوشتن و پرسوجو دادهها استفاده میکنند. به عبارت دیگر، پایگاه داده مجموعهای از رکوردهای ذخیرهشده در رایانه با روشی سیستماتیک (اصولی) مثل یک برنامه رایانهای است که میتواند به سوالات کاربر پاسخ دهد.
موجودیت در پایگاه داده (Entity): هر چیزی که راجع به آن بخواهیم اطلاعاتی ذخیره کنیم، یک هویت یا «موجودیت» (Entity) نامیده میشود. به عنوان مثال، در یک سیستم ذخیرهسازی اطلاعات حسابداری، دارایی غیرمنقول یک موجودیت و وجوه نقد یک موجودیت جدا به حساب میآید، زیرا اطلاعات قابل تشخیص برای دارایی منقول با اطلاعات وجوه نقد متفاوت است، ولی ممکن است در یک گزارش با هم مرتبط باشند.
- جداول (Table): اطلاعات موجود در پایگاههای داده داخل Table ذخیره میشود.
- ستون (Field): هر فیلد دربرگیرنده یک صفت و ویژگی برای موجودیت است و در هر فیلد خصوصیت و مقدار آن مشخص میشود.
- سطر(Record): رکوردها شامل اطلاعات طبقهبندیشده درباره یک موجودیت خاص هستند.
انواع دیتابیس
در واقع، انواع مختلفی از دیتابیس وجود دارد که بسته به نحوه استفاده سازمان از دادهها مورد استفاده قرار میگیرند. در ادامه به معرفی انواع آن میپردازیم.
دیتابیس NoSQL
NoSQL یا پایگاه داده غیررابطهای اجازه میدهد تا دادههای بدون ساختار و نیمهساختاریافته ذخیره و دستکاری شوند. NoSQL با رواج و پیچیدهتر شدن برنامههای کاربردی وب، محبوبیت بیشتری پیدا کرد. NoSQL مکانیزمی متفاوت با روابط جدولی استفادهشده در دیتابیس رابطهای برای ذخیره و بازیابی دادههای مدلسازیشده ارائه میکند. گاهی به این پایگاه داده Not only SQL نیز گفته میشود و به این معنی است که پایگاه داده NOSQL میتواند زبانهای مشابه با SQL را نیز پیشتیبانی کند.
پایگاه داده رابطهای (Relational DataBase)
دیتابیس رابطهای رایجترین نوع پایگاه داده است که از یک سری جدول تشکیل شده و اطلاعات را مطابق دستهبندیهایی از پیش تعیین شده مرتب میکند. علت نامگذاری به عنوان رابطهای این است که طراحی و ساخت آن با توجه به مدل رابطهای ادگار کاد انجام شده است. فناوری پایگاه داده رابطهای کارآمدترین و منعطفترین راه را برای دسترسی به اطلاعات ساختاریافته فراهم میکند.
پایگاه داده مبتنی بر فضای ابری (Cloud DataBase)
دیتابیس ابری به پایگاه دادهای گفته میشود که معمولاً روی یک پلتفرم محاسبهگر از نوع cloud اجرا میشود. پایگاه داده ابری نرم افزار بهکار برده شده و دادههای پشتهشده را به کاربر به طور واضح نشان میدهد.
پایگاه داده به عنوان سرویس (DBaaS)
با DBaaS، وظایف اداری و نگهداری توسط یک ارائهدهنده خدمات انجام میشود. در واقع، دیتابیسها با استفاده از زبانهای مختلفی ایجاد میشوند. اما زبان SQL (Structured Query Language) از همه معروفتر و رایجتر است.
دیتابیس اوراکل (Oracle DataBase)
اوراکل معمولاً در بانکها و سازمانهای بزرگ مورد استفاده قرار میگیرد. این پایگاه داده یک سیستم مدیریت پایگاه داده تجاری است. در اوراکل از فناوری پایگاه داده در مقیاسهای سازمانی و همراه با ویژگیهای قدرتمند و خاص استفاده میشود. در اوراکل ذخیرهسازی میتواند به صورت درونسازمانی یا در فضای ابری انجام شود.
دیتابیس PostgreSQL
PostgreSQL یک سیستم پایگاه داده منبعباز و بسیار پایدار است که از عملکردهای مختلف SQL، مانند کلیدهای خارجی، سوالات فرعی، تریگرها و انواع مختلف و عملکردهای تعریفشده توسط کاربر پشتیبانی میکند. PostgreSQL زبان SQL را بیشتر تقویت میکند و چندین ویژگی را ارائه میدهد که به دقت حجم کاری دادهها را مقیاس و ذخیره میکند. PostgreSQL به توسعهدهندگان در ساخت اپلیکیشنها کمک میکند. همچنین به وسیله حفاظت از یکپارچگی اطلاعات به مدیران یاری میرساند تا محیطی با تحمل خطا را ایجاد کنند و در صورت رخ دادن خطا، مشکلی برای اطلاعات ایجاد نشود. و در واقع دیتابیس PostgreSQL قابلیت برنامهنویسی کامل سمت سرور را نیز دارد.
دیتابیس API
API (DataBase Application Programming Interface) کتابخانهای است که به پایتون اجازه میدهد به سرور پایگاه داده متصل شود. API با پشتیبانی از چندین سرور پایگاه داده به راحتی به توسعهدهندگان اجازه میدهد تا از عملکردهای پیچیدهتر مانند تراکنشها استفاده کنند.
دیتابیس Access
Access یک سیستم مدیریت پایگاه داده معروف است که توسط مایکروسافت تولید شده و بخشی از مجموعه آفیس مایکروسافت است. آموزش Access با بیان پراستفادهترین ویژگیهای آن:
- امکان وارد کردن دادهها از اکسل یا پایگاههای داده دیگر
- امکان ایجاد فرمهایی برای ورود یا مشاهده دادهها
- امکان طراحی و اجرای پرسوجوهای بازیابی دادهها
- امکان طراحی گزارش برای چاپ یا تبدیل به PDF
- امکان تعامل کاربران با Access از طریق SQL
دیتابیس ACID
برای ثبت تراکنشها در یک پایگاه داده، باید از خاصیتی به اسم ACID پشتیبانی کنند. ACID مخفف Atomicity، Consistency، Isolation و Durability میباشد.
Atomicity: این خاصیت به خاصیت همه یا هیچ معروف است. در واقع، یک تراکنش یا باید به طور کامل در ACID اجرا شود یا خیر.
Consistency: سازگاری یعنی یک تراکنش، ACID را از یک حالت سازگار به یک حالت سازگار دیگر انتقال میدهد. البته ممکن است این سازگاری در بین تراکنش (وقتی هنوز تراکنش تمام نشده است) نقض شود.
Isolation: به عنوان مثال در ACID، چندین تراکنش با یکدیگر در حال اجرا هستند، این تراکنشها نباید از اجرای یک دیگر مطلع شوند. یعنی این تراکنشها باید طوری اجرا شوند که انگار، فقط همین تراکنش در حال اجرا در کل ACID است.
Durability: پایداری به این معناست که یک تراکنش بعد از اتمام باید در حافظه باقی بماند. یعنی اگر یک تراکنش با موفقیت به اتمام رسید، نتایج کار، با قطع برق یا اتفاقهای دیگر از بین نرود.
اجزای دیتابیس
اجزای مختلف تشکیلدهنده دیتابیسهای معروف عبارتند از:
- سختافزار: سختافزار در واقع یک رابط کاربری بین کامپیوترها و سیستمهای واقعی ارائه میکند.
- نرمافزار: نرمافزارها به کاربر این امکان را میدهند تا با دیتابیس ارتباط برقرار کند.
- کاربر: کاربران افرادی هستند که به روشهای مختلفی با دیتابیس ارتباط دارند.
- برنامهنویسها (DBP): افرادی که ساختار دیتابیس را طراحی میکنند.
- طراحان (DBD): افرادی که به کمک زبانهای مختلف از جمله SQL دیتابیسها را میسازند.
- مدیر پایگاه داده (DBA): افرادی که دیتابیس را مدیریت میکنند.
- کاربران نهایی (End users): کسانی که از دادهها استفاده میکنند.
- داده: اطلاعاتی که باید در دیتابیس ذخیره شوند.
- پردازهها: دستورالعملها و قوانین برای طراحی و اجرای دیتابیس هستند.
- زبان دسترسی: برای اینکه بتوانیم به دیتاهای موجود در دیتابیس دسترسی داشته باشیم استفاده میشوند.
- پردازشگر درخواستها: این بخش درخواستهای کاربر را به مجموعهای از دستورالعملهای سطح پایین تبدیل میکند.
- دیتابیس منیجر (مدیریتکننده) زمان اجرا: بخش اصلی نرم افزار DBMS محسوب میشود که رابط کاربری با اپلیکیشنها و درخواستهای ثبتشده توسط کاربران ایجاد میکند و دسترسی حین اجرا را ممکن میسازد.
- مدیریتکننده داده: مسئولیت کنترل داده در دیتابیس را بر عهده دارد.
کاربردهای دیتابیس
این تکنولوژی در زمینههای مختلف کاربردهای متنوعی دارند:
- انجام انواع ترکنشهای بانکداری
- رزرو و زمانبندی پرواز خطوط هوایی
- ثبتنام دانشجویان، انتخاب واحد و ثبت نمره در دانشگاه و مراکز آموزشی
- ثبت اطلاعات مشتریها، محصولات و فاکتورهای خرید و فروش
- ثبت و محاسبه حقوق کارمندان به همراه کسورات مالیاتی در شرکتها و سازمانهای مختلف
- استفاده از پایگاه داده در بهبود فرآیندهای کسبوکار
- استفاده از پایگاه داده برای ذخیره اطلاعات شخصی در پلتفرمهای مختلف
- استفاده از پایگاه داده در سازمانهای غیرانتفاعی
- استفاده از پایگاه داده در سازمانهای درمانی بهداشتی
- استفاده از پایگاههای داده برای ذخیره اطلاعات شخصی
برای درک بهتر این کاربردها به آموزش دیتابیسها بر پایه چهار عمل اصلی میپردازیم:
دریافت
پایگاه داده برای پیدا کردن اطلاعات بسیار سریع عمل میکند و کار کردن با دیتابیس آسان است. بنابراین، دریافت اطلاعات از آن آسان است.
ذخیره
دیتابیس میتواند تعداد زیادی از مستندات را به صورت موثر در خود ذخیره کند و در حین این کار، فضای خیلی کمی را به خود اختصاص میدهد.
جستجو
در پایگاه داده میتوان به راحتی عمل جستجو را انجام داد. برای مثال، میتوانید بنویسید (تمامی ماشینهای برند Porsche را پیدا کن) و دیتابیس این کار را به سرعت انجام میدهد.
گزارشدهی
در دیتابیس میتوانید به راحتی اطلاعات جدید اضافه کنید یا دادههای قدیمی را ویرایش و حذف کنید و از اطلاعات موجود در پایگاه داده گزارش تهیه کنید. این گزارشات میتواند بر اساس دستهبندیهایی که در آن پایگاه لحاظ شده است، متفاوت باشد.
معایب و مزایا دیتابیس
پایگاههای داده با توجه به نوع و کارکردشان دارای مزایا و معایبی هستند که در ادامه به بررسی آن میپردازیم.
مزایا
- حذف بایگانی کاغذی
- دسترسی آسان به اطلاعات
- اشتراکگذاری آسان اطلاعات
- ذخیرهسازی اصولی دادهها
- پردازش سریع و آسان دادهها
- بهبود کارایی
- کاهش احتمال خطا
- کاهش دادههای بیهوده و زائد
- بهبود وضع امنیت داده
- کاهش هزینههای مربوط به وارد کردن، ذخیره و استخراج داده
- آسان شدن ساخت اپلیکیشنها و برنامههای جدید
معایب
- طراحی و ساخت سیستمهای دیتابیس فرآیندی پیچیده، دشوار و زمانبر است
- ایجاد دیتابیس و استفاده از آن به آموزش و تخصص احتیاج دارد
- آموزش برنامهنویسان، طراحان و کاربران متخصص هزینهبر است
- در صورتی که دیتابیس آسیب ببیند، تمام نرم افزارهایی که با آن در ارتباطند تحت تأثیر قرار خواهند گرفت
- تبدیل سیستم قدیمی فایلی به سیستم مدرن دیتابیس هزینهبر است
- برای استفاده از دیتابیسها ممکن است به سختافزارهای اضافه نیاز باشد
- هزینههای قابل توجه ناشی از ساخت سختافزار و نرم افزار
نکات مهم در استفاده از دیتابیس
در استفاده از پایگاههای داده باید نکات زیر را لحاظ نمود:
امنیت پایگاه داده
- اطمینان از امنیت فیزیکی دیتابیس
- استفاده از اپلیکیشنها و برنامههای مخصوص دفاع از دیتابیس
- کدگذاری دادهها
- دادن دسترسی به تعداد معدودی از افراد
- نظارت بر فعالیت دیتابیس
بکآپگیری از پایگاه داده
مراحل و طریقه بکآپگیری از پایگاه داده به شرح زیر است:
- نرمافزار SQL Server مایکروسافت را اجرا کنید.
- نام کاربری پایگاه داده و رمز عبور را وارد کنید.
- پایگاه داده مورد نظر را با کلیک راست انتخاب کرده و پس از انتخاب tasks، گزینه Back Up را انتخاب کنید
- گزینه Full را در بخش Backup Type انتخاب کنید
- گزینه Add را انتخاب و برای فایل بکآپ مورد نظر خود اسم و مسیر مشخص کنید
- توجه داشته باشید که فایل را با پسوند .bak ذخیره کنید و این پوشه در زیرشاخهی MSSQL قرار داشته باشد
- با کلیک بر گزینهی OK کار شما به پایان میرسد
سورتبندی در پایگاه داده
سورتبندی دادهها در ابزار معروف کنترل دیتابیس معمولاً بر پایه شماره ID هر رکورد انجام میشود. با این حال، روشهای زیاد دیگری نیز برای سورتبندی این دادهها وجود دارد. سورتبندی دادهها میتواند با توجه به تاریخ واردشدن آنها یا نام مشتریان انجام شود، یا ممکن است نیاز داشته باشید که مشتریان را با توجه به اسمشان یا اسم شهرشان سورتبندی کنید. همچنین سورتبندی دادهها میتواند با توجه به نام، دستهبندی یا قیمت محصولات انجام شود.