آشنایی با داده و بانک اطلاعاتی

شاید تعریف داده و بانک اطلاعاتی کار دشواری باشد اما به صورت خلاصه، مفید و البته با یک نگاه تجربی به داده “بود خام” میگویند و به منابع دارای ساختاری که داده در آنها نگهداری میشود “بانک اطلاعاتی” گفته میشود. پس به سادگی میتوان ادعا نمود که یک جدول دارای فیلدهای تعریف شده که دادهها در سطرهای آن قرار میگیرد نیز یک بانک اطلاعاتی محسوب میشود.
دادهها به شکلهای مختلفی نظیر نام افراد، شهرها، آدرس، کد پستی، قیمتها، مقادیر فروش، نمرات یا سایر اشکال دیگر وجود دارند که در سیستمهای مدیریت بانکهای اطلاعاتی مختلف دارای انواع مختلفی هستند. مواردی نظیر Text، Number، Currency، Date، Yes/No، Attachment برخی از دستهبندی کلان انواع Data Typeها محسوب میشوند که طیف این دسته بندی با افزایش پیچیدگی سیستمهای بانکهای اطلاعاتی افزایش مییابد. به عنوان نمونه، تعداد انواع Data Typeها موجود در نرمافزارهای اکسل، اکسس و SQL به ترتیب افزایش مییابند و تخصصیتر میشوند.
یک درک صحیح از تفاوت بین انواع بانکهای اطلاعاتی (پایگاه داده یک سطحی، بانک اطلاعاتی غیر رابطهای، بانک اطلاعاتی رابطهای) به تصمیمگیری برای انتخاب یک سیستم مدیریت بانک اطلاعاتی مناسب برای مدیریت دادهها کمک بسزایی میکند ضمن اینکه انواع بانک اطلاعاتی صرفا محدوده به توسعه نرمافزار نمیشود و به عنوان مفاهیم پایهای حوزه تحلیل داده نیز محسوب میشود و تحلیل گران داده و در مجموع مشاغلی که در پُست قبل به آنها اشاره شد میبایست نسبت به این مفاهیم کاملا آشنا باشند. در ادامه توضیحاتی در خصوص هر یک از انواع بانکهای اطلاعاتی ارائه میشود:
پایگاه داده تک سطحی – Flat File Databases
بانک اطلاعاتی تک سطحی یک نوع بانک اطلاعاتی است که در یک فایل تک سطحی مانند یک فایل Text که شامل لیست رکوردهای داده است. در این نوع بانکهای اطلاعاتی دادههای هر رکورد از فیلدها تشکیل میشوند که هر فیلد توسط جدا کننده از فیلد دیگر متمایز جدا شده است. جداکنندههای انواع مختلفی دارند که Comma، Tab، Semi Colon از جمله رایجترین آنها در بانکهای اطلاعاتی تک سطحی است. به عنوان نمونه در شکل زیر نمونهای از یک بانک اطلاعاتی تک سطحی در قالب فایل CSV نمایش داده شده است (لازم به ذکر است منظور از CSV عبارت Comma Seperate Value است).
نکته: بانکهای اطلاعاتی تک سطحی معمولا برای سادهترین مقادیر داده کاربرد دارد و معمولا احتمال بروز خطا در کار با آنها بسیار بالاست.
بانک اطلاعاتی غیررابطهای – Nonrelational Databases
در بانک های اطلاعاتی غیررابطه ای مقادیر داده در فیلدهای اطلاعاتی بسیار سرراست قرار میگیرند بهطوریکه به راحتی قابل فهم هستند و برای درک دادهها نیاز به جداول دیگر نیست. به عنوان یک نمونه ساده، یک لیست از اطلاعات پرسنلی که شامل نام شخص، آدرس، شماره تماس باشد یک بانک اطلاعاتی غیررابطه ای محسوب میشود. موارد زیر از جمله ویژگیهای بانکهای اطلاعاتی غیررابطه ای است:
مقادیر داده در فیلدهای اطلاعاتی خود توصیفگر و سرراست بوده و بدون نیاز به جداول وابسته دادهها براحتی قابل درک هستند.
تعداد فیلدها به ازای هر رکورد داده یکسان است.
فیلدها دارای عنوان هستند.
که دو مورد آخر وجه تمایز اصلی این نوع بانک اطلاعاتی با بانکهای اطلاعاتی تک سطحی است (لزوما در بانک های اطلاعاتی تک سطحی تعداد دادههای هر سطر با سطر دیگر برابر نیست و همچنین لزوما فیلدها دارای عناوین نیستند). در ادامه یک نمونه از یک بانک اطلاعاتی غیررابطه ای ارائه شده است:
بانکهای اطلاعاتی رابطهای – Relational Databases
این نوع بانکهای اطلاعاتی مشابه بانکهای اطلاعاتی غیررابطه ای هستند با این تفاوت که رکورد داده در بیش از یک جدول ذخیرهسازی میشود و این جداول برای ثبت و ضبط تمام تراکنشها به سایر جداول وابسته هستند. به عنوان نمونه در یک بانک اطلاعاتی غیررابطه ای برای نگهداری تمامی مربوط به مشتری، انبار و محصول نیاز به یک جدول بزرگ است که شامل اطلاعات مربوط به محصول، حوزه محصول، تراکنش های انجام شده برای ورود و خروج محصولات از انبار و همچنین اطلاعات مربوط به نام مشتری، گروه بندی مشتری و آدرس مشتری می شود در حالی که در یک بانک اطلاعاتی رابطه ای یک جدول حاوی دادههای مربوط به محصولات، جدول دیگر حاوی اطلاعات مربوط به تراکنشهای محصولات در انبار و یک جدول دیگر به طور اختصاصی حاوی اطلاعات مربوط به مشتریان است و این جداول به هم وابسته و البته با هم در ارتباط هستند.
از مزایای بانکهای اطلاعاتی رابطهای میتوان به کاهش حجم ذخیرهسازی داده، عدم نیاز به ثبت دادههای تکراری و به تبع آن کاهش احتمال بروز خطا برای ثبت دادهها اشاره نمود.
برای ایجاد ارتباط بین جداول یک بانک اطلاعاتی رابطهای از Primary Key و Foreign Key استفاده میشود. Primary Key در واقع یک شناسه منحصر به فرد نظیر شماره سریال یا کد شناسهای است که به هر سطر یا رکورد جدول اصلی نسبت داده میشود و Foreign Key فیلدی در جدول مرتبط است که حاوی داده های مربوط به شناسه منحصر به فرد فیلد Primary Key در جدول اصلی است. در ادامه نمونهای از بانک اطلاعاتی رابطهای ارائه شده است:
به عنوان نمونه در مثال فوق:
ستون ID در جدول Product ستون Primary Key و ستون مرتبط در جدول Sales تحت عنوان Product_Ref به عنوان ستون Foreign Key محسوب می شود (این رابطه نشان می دهد هر ردیف در جدول Product می تواند چندین بار در جدول Sales استفاده شود).
به طریق مشابه، ستون ID در جدول Customer ستون Primary Key و ستون مرتبط در جدول Sales تحت عنوان Customer_Ref به عنوان ستون Foreign Key محسوب میشود (همچنین این رابطه نشان میدهد هر ردیف در جدول Customer میتواند چندین بار در جدول Sales استفاده شود).
لازم به ذکر است در تعاریف حوزه داده و نرمافزار، تعاریف مربوط به دیتاست (Dataset) و دیتابیس (Database) هم وجود داره. که برخی منابع به این شکل اعلام میکنند که در واقع Dataset مجموعهای ساختاریافته از دادهها که مرتبط با یک حوزه خاص هست، در صورتی که Database مجموعهای ساختار یافته از دادههاست که در قالب چندین Dataset نگهداری میشوند. این تعریف در زمان کار با نرم افزارهایی RDBMS نظیر SQL ملموس است.