استقلال داده
•What is Data Independence of DBMS?

استقلال داده بعنوان یک ویژگی DBSM تعریف میشود که این امکان را ایجاد میکند که اسکیما در یک سطح از دیتا بیس تغییر کند بدون اینکه نیاز باشد در یک سطح بالاتر اسکیما تغییر کند.
استقلال داده به ما کمک میکند که داده ها از همه برنامه ها که از آن استفاده میکنند، مستقل بماند.
دونوع استقلال داریم:
1- فیزیکی
2- منطقی
3 تایرtier 🙂

tier به معنای ردیف است. تایر اول مربوط به دیتا است

تایر دوم مربوط به برنامه هایی است که به دیتابیس دسترسی دارند. این برنامه ها یک view از نوع abstract از دیتا بیس برای کاربران ایجاد میکنند. درواقع واسط بین اندیوزر و دیتابیس است.

کابر نهایی در این لایه وجود دارد. در این لایه چند view متعدد از دیتابیس برای کاربر فراهم است(که توسط اپلیکیشن فراهم میشود که در application tier قرار دارند).
انواع schema:
اسکیما خارجی:
ویو اول: اطلاعات دوره آموزشی
ویو دوم: اطلاعات دانش آموزان
اسکیمای مفهومی:
اسکیمای جداول: دانش آموزشان + دوره های آموزشی + مشارکت
حال هر کام خود زیر مجموعه هایی دارد. برای مثال در بخش دانش جو، مواردی نظیر نام و سن داریم.
اسکیمای فیزیکی:
دیتابیسها
روابط جداول
شاخص روی ستون اول دانشجویان

استقلال فیزیکی داده:

0- این نوع از استقلال داده به شما اجازه میدهد که سطوه مفهومی را از داخلی/فیزیکی جدا کنید.
1- به شما اجازه میدهد یک توصیف منطقی از داده ها داشته باشید، بدون نیاز به مشخص کردن ساختار فیزیکی.
2- در مقایشه با استقلال منطقی، دسترسی به استقلال فیزی راحت تر است.

مثال از تغییر تحت استقلا فیزیکی:
بر اساس استقلال فیزیکی هیچ یک از موارد زیر تاثیری بر لایه مفهومی نخواهند داشت:
1- استفاده از هارد اکترنال
2- تغییر فلدر ها در دیتابیس
3- جابجایی بین ساختار داده های متعدد
4- تغییر متود دسترسی
5-ایجاد ایندکس جدید
6-تغییر متود فشرده سازی یا hasshing
7-تغییر مکان دیتابیس از c به d برای مثال

استقلال منطقی داده:

تفاوت بین استقلال فیزیکی و منطقی داده ها

اهمیت استقلال داده:
- بهبود کیفیت داده
- قابلیت نگه داری سیتم دیتابیس
- بهبود استاندارد و امنیت
- عدم نیاز به تغییر ساختار داده در کار با اپلیکیشن ها
- کاهش ناهماهنگی داده ها

رابطه در دیتا بیس:
در دیتابیس مدرسه ، دنش آموز یک entity است که دارای attributes های متعدد است مانند name و age و class.

رابطه : ارتباط منطقی بین entity های متعدد را relationship گویند. که در انواع زیر است:
1- یک به یک
2- یک به چند
3- چند به یک
4-چند به چند

transaction
واحد منطقی پردازش در dbms را گویند که شامل دسترسی به دیتابیس در یک یا چند مورد است.

تصویر مهم:

چند نکته:
دیتا در جداولی وجود دارد که به آن relation گویند.
مقادیر میتوانند در مقادیر اتمیک قرار بگیرند.
و …

نکات مهم در مورد transaction

concurrency در transaction (همزمانی)
دیتابیس به طور همزمان در دسترس تعداد زیادی از کاربران است. برای مثال در سیستم بانکی یا خیلی از سیستمها رزرو. اگر موضوع concurrency رعایت نشود مسائلی نظیر موارد زیر رخ میدهد:

حالات متعدد transaction:

نمودار حالات متعدد transaction :

ACID چیست؟

واحد بودن transaction را تضمین میکند. هر transaction جند مرحله دارد. اگر تمام مراحل انجام شود، میگوییم در کل اوکی شده. اگر حتی یک مورد انجام نشود، میگویید تراکنش انجام نشد.

این اطمینان داده میشود که دیتایبس از حالت معتبر به حالت معتبر دیگر بده میشود. ؟؟؟

؟؟؟

تصویر از مفهوم ACID:

تا اسلاید 80- 23 بهمن 401