در درس گذشته سری زدیم به مقدمه sql server2019. در این جلسه میخواهیم درباره سیستم فایلینگ در پایگاه داده صحبت کنیم.
همانطور که میدانید اصطلاح پایگاه داده در علوم کامپیوتر یکی از رایجترین مفاهیم است. اما معنی این واژه چیست؟ به بیان ساده پایگاه داده محلی است برای نگهداری داده و علم پایگاه داده. اما ممکن است سوالی که ذهنتان را مشغول کند این باشد که منظور از نگهداری داده چیست؟ این نگهداری یک ذخیره پایدار مانند فایل است یا مانند آرایه و بسیاری از موارد دیگر یک ذخیره موقت در حافظه است؟
بله اگر دقت کرده باشید ما هم در ابتدا به این موضوع اشاره کردیم. در واقع در این درس میخواهیم به جواب سوال شما و معرفی سیستم فایلینگ در پایگاه داده و همچنین مهمترین سوالی که مطرح میشود یعنی تفاوت سیستم فایلینگ نسبت به پایگاه داده، بپردازیم.
اما بهتر است قبل از شروع، با یکسری از مفاهیم که در ادامه به آنها اشاره میکنیم آشنا شوید.
به سیستمی میگویند که به برنامهنویس یا کاربر امکان ذخیره، بازیابی و پردازش اطلاعات را میدهد.
برای این مفهوم تعاریفی بسیاری وجود دارد مانند مجموعهای از دانستنیها یا نمایش اشیا فیزیکی، رویدادها یا هر چیز قابل مشاهدهای که در تصمیمسازی کاربرد دارد.
اما بهترین تعریف از دادهها مربوط به دیدگاه ANSI میباشد. چراکه این دیدگاه داده را، به نمایش گذاشتن پدیدهها، مفاهیم یا شناختهها به صورت صوری و مناسب برای برقراری ارتباط، تفسیر یا پردازش توسط انسان یا به طور خودکار میداند.
اطلاعات یعنی داده پردازش شدهای که شناختی را منتقل و در تصمیمگیری کاربرد دارد؛ درست برخلاف داده خام.
خب بعد از آشنایی با این مفاهیم، باید به معنی علمی پایگاه داده و همچنین تعریف سیستم فایلینگ پی ببریم.
همان طور که گفتیم در سیستمهای اولیه فقط محاسبات ارزشمند بود، اما بعد از مدتی نگهداری دادهها ارزش بیشتری از محاسبات پیدا کرد. چراکه همه متوجه شدند که با هر وسیلهای میشود محاسبات را انجام داد اما نگهداری دادهها را خیر. نگهداری دادهها یعنی اینکه بتوانیم دادههای فعلی خود را ذخیره کنیم تا در یک روز و زمان خاص آن را بازیابی کنیم. در اینجا بود که مبحثی به نام ذخیره و بازیابی اطلاعات بهوجود آمد که در تعاریف بالا آن را توضیح دادیم.
اما در گذشته، دادهها را به کمک سیستمهای فایلینگ ذخیره میکردند. مانند تصاویر و فایلهای صوتی که ذخیره میکنیم. این سیستم فایلینگ در تمام سیستم عاملها کمک میداد تا بتوانیم دادههای خود را ذخیره کنیم. در گذشته وقتی اطلاعات موجودیتها ذخیره میشد، مدیر فایل مستقیما دادههایی را که حاوی اطلاعات موجودیتها بود دریافت و در یک فایل ذخیره میکرد.
اما از لحاظ علمی پایگاه داده یعنی مجموعهای از دادههای ذخیره شده که درباره موجودیتهای یک محیط عملیاتی و ارتباطات میان آنها به صورت مجتمع و مبتنی بر یک ساختار تعریف شده، به صورت صوری با حداقل افزونگی تحت کنترل متمرکز، مورد استفاده یک یا چند کاربر قرار بگیرد آن هم به صورت اشتراکی و همزمان.
برای ایجاد یک برنامه کاربردی دو روش وجود دارد. روش اول همان روش سنتی یا اصطلاحا فایلینگ است. در این روش، با استفاده از دستورات موجود در یک زبان برنامهنویسی، عملیات ایجاد فایل، خواندن و نوشتن اطلاعات در فایل، حذف فایل و … انجام میشود. در واقع در یک برنامه، ساختاری توسط برنامهنویس تعریف میشود، فایلی با آن ساختار بر روی دیسک ایجاد شده و این فایل جهت عملیات ذخیره و بازیابی اطلاعات مورد استفاده قرار می گیرد. مدیریت و کنترل اجرای عملیات روی فایل بر عهده بخشی از سیستمعامل به نام سیستم فایل است. سیستم فایل تنها بخش مدیریتی است که در این روش بر روی عملیات کنترل دارد. اما این کنترل یک کنترل ضعیف است و همچنین محدودیتهایی را برای استفاده همزمان کاربران ایجاد میکند که در ادامه به آنها اشاره خواهیم کرد.
اما روش دوم روش پایگاهی است. در این روش از پایگاه دادهها جهت ذخیره و بازیابی دادهها استفاده میکنیم و عملیات خود را تحت کنترل یک سیستم مدیریتی قدرتمند به نام سیستم مدیریت بانک اطلاعات (DBMS) انجام میدهیم.
در این قسمت دقیقا میخواهیم به تفاوت سیستم فایلینگ و پایگاه داده بپردازیم. درست است که همه اطلاعات ذخیره شده به صورت فایل ذخیره میگردد ولی در روش فایلینگ، ما مستقیما با فایل کار میکنیم و این درحالیست که در سیستم مدیریت پایگاه داده(DBMS) اینکار توسط یک واسط انجام میشود؛ یعنی از طریق این واسط، ساختار دادههای خود را تعریف میکنیم. پس در سیستم مدیریت بانک اطلاعات بعد از نوشتن دادهها، آنها در فایلهایی ذخیره میشوند که استفاده از محتوا فایلها فقط از طریق خود DBMS امکانپذیر است.
در بالا صحبت از DBMS یا سیستم مدیریت پایگاه داده شد. حالا سیستم مدیریت بانک اطلاعاتی یا سیستم مدیریت پایگاه داده (DBMS) یعنی چی؟
به نرمافزاری میگویند که واسط بین یک محیط ذخیره و بازیابی اطلاعات و محیط منطقی برنامه در یک سیستم پایگاه داده است. این نرمافزار هرگونه ارتباط بین کاربر و داده را کاملا کنترل و مدیریت میکند و به کاربران این امکان را میدهد تا پایگاه داده خود را ایجاد کنند، عملیات انجام دهند و تا حدی بر پایگاه داده خود کنترل داشته باشند.
با توجه به توضیحاتی که دادیم، نتیجه میگیریم که در روش پایگاهی، اطلاعات به صورت یکپارچه ذخیره میشوند ولی در سیستم فایلینگ فایلهای تعریف شده به صورت مجزا بر روی دیسک ذخیره شده و یک ساختار یکپارچه برای ذخیره آنها وجود ندارد.
با نبود یک ساختار یکپارچه برای ذخیره اطلاعات، کنترل عملیات قدرتمندی نیز برای سیستمهای فایلینگ وجود ندارد و تنها مرجع کنترل، سیستم فایل از سیستم عامل است که این مورد در سیستم مدیریت پایگاه داده برعکس است.
همچنین بخاطر ممکن نبود استفاده همزمان چندین کاربر از یک فایل در بعضی موارد مجبور هستیم در سیستمهای فایلینگ یک فایل را در چندین محل مختلف ذخیره کنیم و این یعنی افزونگی دادهها که علاوه بر مصرف فضای اضافی بر روی دیسک، مشکلات دیگری هم بهوجود میآید.
مساله دیگری که باعث افزونگی دادهها میشود مجزا بودن ساختار فایلهاست که نمیتوان بین آنها ارتباط برقرار کرد به همین خاطر اگر نیاز به استفاده از یک بخش فایل نسبت به بخش دیگر باشیم، مجبوریم آنها را در بخش مورد استفاده دوباره داشته باشیم.
مهمترین مساله در هر حوزه کاری بحث امنیت آن است که دنیای پایگاه داده نیز از این قاعده مستثنی نیست. یکی دیگر از ضعفهای سیستم فایلینگ عدم امنیت اطلاعات کاربر در آنها میباشد. در صورتی که این عامل در سیستمهای مدیریت بانک اطلاعاتی به خوبی مدیریت میشود.
کارهایی که یک سیستم اطلاعات بانکی برای این منظور به کار میبرد عبارت است از:
استفاده از روشهای رمزگذاری پیشرفته بر روی اطلاعات و امکان سطوح دسترسی مختلف برای کاربران
دارا بودن امکانات ویژه برای پشتیبانگیری دادهها
دارا بودن عملیات پشتیبانگیری خودکار برای در اختیار داشتن نسخههای پشتیبان در صورت بروز حادثه
اقدام به ترمیم دادهها با استفاده از دادههای پشتیبان و فایل گزارش تراکنشهای صورت گرفته شده بر روی دادهها
برای مدیریت تراکنشها چهار ویژگی اصلی تراکنش از قبیل: یکپارچگی، همخوانی، انزوا و مانایی باید حفظ شود که سیستمهای فایلیلنگ قادر به انجام آنها نیستند. اما سیستم مدیریت پایگاه داده دارای یک سیستم قوی برای مدیریت تراکنشهاست.
با تعاریفی که تا الان داشتیم معنی این عبارت به خوبی درک میشود که سیستمهای فایلینگ بخاطر عدم استفاده چندین کاربر از فایلها، اشتراکی شدن دادهها بین کاربران مختلف وجود ندارد در صورتی که سیستم DBMS با استفاده از روشهای قفلگذاری پیشرفته، امکان استفاده همزمان کاربران متعدد از دادهها به صورت کاملا کنترلشده فراهم شده است.
مورد بعدی که درباره ضعف سیستمهای فایلینگ وجود دارد کدنویسی برای حتی سادهترین عملیات است. این مورد در سیستم مدیریت پایگاه داده با وجود دستوراتی که دارد، حل شده است.
خب دوستان درباره مباحث مهم سیستم فایلینگ در پایگاه داده صحبت کردیم و در انتها به تفاوت این سیستم نسبت به سیستم پایگاه داده پرداختیم. امیدواریم که این مطلب مورد پسند شما دوستان درسمنی قرار گرفته باشد. اما اگر میخواهید توضیحات بیشتری درباره مطلب گفته شده بدانید، پیشنهاد میکنیم که حتما ویدئو ما درباره این موضوع مشاهده و در صورت سوال یا مشکل میتوانید به انجمن پرسش و پاسخ درسمن مراجعه کنید. پیشنهادات و انتقادات خود را در بخش نظرات برای ما ارسال کنید. امید آنکه بیش از پیش موفق و مؤید باشید.
با سلام و عرض ارادت خیلی زیاد خدمت استاد پرتلاش آقای عباسی عزیز , و تیم پرقدرت و با انرژی یک پیشنهادی داشتم , اگر ممکن باشه sql server , مفاهیم مربوط به زبان های پرطرفدار مثل python , c# ,c++ javascript و ... رو هم در این آموزش قرار بدید و یک تکنولوژی جذاب به نام container, Docker رو هم قرار بدید که به نظرم خیلی جذاب و کاربردی میشه.
سلام عبدالله جان خیلی از کامنت پر انرژی شما ممنون هستیم، حتما نظر شما رو به استاد عباسی انتقال خواهم داد، از شما بابت ایده و نظر خوبتون ممنونیم.