0% found this document useful (0 votes)
17 views38 pages

DBMS

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views38 pages

DBMS

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

‫بسمه تعالی‬

‫جزوه مباحث حفظی‬

‫پایگاه داده‬
‫مدل داده )‪(Data Model‬‬

‫در سیستم مدیریت پایگاه داده )‪ ، (DBMS‬مدل داده چارچوبی مفهومی برای سازماندهی و ساختاردهی دادهها است‪.‬‬
‫مدل داده به عنوان یک نقشه عمل میکند که چگونگی ذخیره‪ ،‬ارتباط‪ ،‬پردازش و دسترسی به دادهها در پایگاه داده را‬
‫تعریف میکند‪ .‬یک مدل داده به خوبی تعریف شده‪ ،‬برای ایجاد پایگاه دادههایی که کارآمد و موثر برای نیازهای کاربران‬
‫باشند‪ ،‬ضروری است‪.‬‬

‫مدلهای داده اهمیت دارند زیرا‪:‬‬

‫‪ .1‬ساختار را تعریف میکنند‪ :‬ساختار دادهها را مشخص میکنند‪.‬‬

‫‪ .2‬یکپارچگی را تضمین میکنند‪ :‬دقت و سازگاری را حفظ میکنند‪.‬‬

‫‪ .3‬انعطافپذیری را پشتیبانی میکنند‪ :‬امکان تغییرات در طرح داده با حداقل اختالل را فراهم میکنند‪.‬‬

‫‪ .4‬کمک به پردازش پرسوجو‪ :‬با سازماندهی منطقی دادهها‪ ،‬بازیابی آن را سادهتر میکنند‪.‬‬

‫انواع مدلهای داده‬

‫‪ .1‬مدل داده سلسلهمراتبی‬

‫تعریف‪ :‬دادهها را به صورت درختی سازماندهی میکند‪ ،‬با یک ریشه و گرههای فرزند‪.‬‬ ‫‪o‬‬

‫ساختار‪ :‬دادهها در یک ساختار سلسلهمراتبی سازماندهی میشوند که در آن هر گره فرزند تنها یک گره‬ ‫‪o‬‬

‫والد دارد‪.‬‬

‫کاربرد‪ :‬معموالً در سیستمهای ‪ DBMS‬اولیه مانند سیستم مدیریت اطالعات ‪ (IMS) IBM‬استفاده‬ ‫‪o‬‬

‫میشد‪.‬‬

‫مثال‪ :‬یک پایگاه داده شرکتی که گره مدیر والد گرههای دپارتمان و گرههای کارمند است‪.‬‬ ‫‪o‬‬

‫محدودیتها‪ :‬انعطافپذیری محدود؛ مدیریت روابط چند به چند دشوار است‪.‬‬ ‫‪o‬‬

‫‪ .2‬مدل داده شبکهای‬

‫تعریف‪ :‬شبیه مدل سلسلهمراتبی است اما اجازهی چندین رابطه را میدهد‪.‬‬ ‫‪o‬‬
‫ساختار‪ :‬دادهها به صورت یک گراف سازماندهی میشوند که در آن گرهها میتوانند چندین رابطه (والد‬ ‫‪o‬‬

‫و فرزند) داشته باشند‪.‬‬

‫کاربرد‪ :‬مناسب برای برنامههایی با روابط پیچیده مانند سیستمهای مخابراتی یا حمل و نقل‪.‬‬ ‫‪o‬‬

‫مثال‪ :‬نمایش یک زنجیره تأمین که یک تامینکننده به چند فروشگاه محصوالت ارسال میکند و هر‬ ‫‪o‬‬

‫فروشگاه از چند تامینکننده محصول میگیرد‪.‬‬

‫محدودیتها‪ :‬ساختار پیچیده و پیادهسازی دشوارتر‪.‬‬ ‫‪o‬‬

‫‪ .3‬مدل داده رابطهای‬

‫تعریف‪ :‬دادهها را به صورت جدولهایی (روابط) که نمایانگر موجودیتها و روابط آنها هستند سازماندهی‬ ‫‪o‬‬

‫میکند‪.‬‬

‫ساختار‪ :‬هر جدول شامل سطرها و ستونها است‪ .‬هر سطر نشاندهندهی یک نمونهی منحصربهفرد از‬ ‫‪o‬‬

‫یک موجودیت است و ستونها ویژگیها را نشان میدهند‪.‬‬

‫مفاهیم کلیدی‪:‬‬ ‫‪o‬‬

‫کلید اصلی‪ :‬بهصورت منحصربهفرد یک رکورد را در جدول شناسایی میکند‪.‬‬ ‫▪‬

‫کلید خارجی‪ :‬ارتباط بین جدولها را ایجاد کرده و یکپارچگی ارجاعی را تضمین میکند‪.‬‬ ‫▪‬

‫کاربرد‪ :‬پرکاربردترین مدل در ‪ DBMS‬ها (مثل ‪.)PostgreSQL ،MySQL‬‬ ‫‪o‬‬

‫مثال‪ :‬یک پایگاه داده دانشجویی با جدولهایی برای دانشجویان‪ ،‬دروس و ثبتنامها‪ ،‬که در آن ثبتنامها‬ ‫‪o‬‬

‫دارای کلیدهای خارجی به دانشجویان و دروس است‪.‬‬

‫محدودیتها‪ :‬ممکن است در مدیریت دادههای غیرساختیافته کارآمد نباشد‪.‬‬ ‫‪o‬‬

‫‪ .4‬مدل موجودیت‪-‬ارتباط )‪(ER‬‬

‫تعریف‪ :‬از نمودارها برای نمایش بصری موجودیتها‪ ،‬ویژگیهای آنها و روابط بین آنها استفاده میکند‪.‬‬ ‫‪o‬‬

‫ساختار‪:‬‬ ‫‪o‬‬

‫موجودیت‪ :‬نشاندهندهی اشیای دنیای واقعی (مثل دانشجو‪ ،‬درس)‪.‬‬ ‫▪‬

‫ویژگیها‪ :‬ویژگیهای موجودیتها (مثل شناسه دانشجو‪ ،‬نام درس‪).‬‬ ‫▪‬


‫روابط‪ :‬اتصاالت بین موجودیتها (مثل ثبتنام بین دانشجو و درس)‪.‬‬ ‫▪‬

‫کاربرد‪ :‬معموالً در طراحی پایگاه داده برای ایجاد نمایش بصری قبل از پیادهسازی مدل رابطهای استفاده‬ ‫‪o‬‬

‫میشود‪.‬‬

‫مثال‪ :‬نمودار ‪ ER‬که روابط بین موجودیتهای دانشجو‪ ،‬درس و استاد را نشان میدهد‪.‬‬ ‫‪o‬‬

‫محدودیتها‪ :‬تنها مفهومی است و نیاز به ترجمه به یک مدل پایگاه داده مثل رابطهای دارد‪.‬‬ ‫‪o‬‬

‫‪ .5‬مدل داده شیگرا‬

‫تعریف‪ :‬دادهها را به صورت اشیا سازماندهی میکند‪ ،‬مشابه برنامهنویسی شیگرا‪.‬‬ ‫‪o‬‬

‫ساختار‪ :‬دادهها به صورت اشیا نمایش داده میشوند که هر شی نمونهای از یک کالس با ویژگیها و‬ ‫‪o‬‬

‫متدها است‪.‬‬

‫کاربرد‪ :‬مناسب برای برنامههایی که نیاز به انواع دادههای پیچیده دارند‪ ،‬مانند پایگاه دادههای‬ ‫‪o‬‬

‫چندرسانهای‪ CAD ،‬و علمی‪.‬‬

‫مثال‪ :‬یک پایگاه داده کارکنان که در آن کارمند یک شی با ویژگیها (مثل نام‪ ،‬شناسه) و متدها (مثل‬ ‫‪o‬‬

‫محاسبه حقوق) است‪.‬‬

‫محدودیتها‪ :‬پیچیدهتر و کمتر از مدل رابطهای پشتیبانی میشود‪.‬‬ ‫‪o‬‬

‫‪ .6‬مدل داده سندی‬

‫تعریف‪ :‬دادهها را به صورت سندهایی‪ ،‬معموالً در قالب ‪ JSON‬یا ‪ XML‬ذخیره میکند‪.‬‬ ‫‪o‬‬

‫ساختار‪ :‬اسناد مجموعهای از فیلدها و مقادیر هستند که میتوانند تو در تو یا سلسلهمراتبی باشند‪.‬‬ ‫‪o‬‬

‫کاربرد‪ :‬معموالً در پایگاههای داده ‪ NoSQL‬مانند ‪ MongoDB‬استفاده میشود‪.‬‬ ‫‪o‬‬

‫مثال‪ :‬پایگاه داده یک فروشگاه آنالین که هر محصول یک سند با فیلدهایی مانند نام‪ ،‬قیمت و توضیحات‬ ‫‪o‬‬

‫است‪.‬‬

‫محدودیتها‪ :‬ساختار کمتری نسبت به پایگاههای داده رابطهای دارد و پردازش پرسوجو ممکن است‬ ‫‪o‬‬

‫پیچیدهتر باشد‪.‬‬
‫اجزای مدلهای داده‬

‫‪ .1‬ساختار داده‪ :‬تعریف میکند که دادهها در پایگاه داده چگونه سازماندهی میشوند‪.‬‬

‫مثالها‪ :‬جدولها در مدل رابطهای‪ ،‬اشیا در مدل شیگرا‪.‬‬ ‫‪o‬‬

‫‪ .2‬دستکاری دادهها‪ :‬تعریف میکند که کاربران چگونه با دادهها تعامل دارند‪.‬‬

‫زبان پرسوجو‪SQL :‬در ‪ DBMS‬رابطهای؛ ‪ NoSQL‬برای فروشگاههای سندی یا کلید‪-‬مقدار‪.‬‬ ‫‪o‬‬

‫‪ .3‬یکپارچگی دادهها‪ :‬دقت و سازگاری را تضمین میکند‪.‬‬

‫محدودیتها‪ :‬قواعدی مانند کلید اصلی‪ ،‬کلید خارجی‪ ،‬یکتا و نال نبودن در مدلهای رابطهای‪.‬‬ ‫‪o‬‬

‫‪ .4‬روابط دادهها‪:‬‬

‫یکبهیک‪ :‬هر نمونه در یک موجودیت با یک نمونه در موجودیت دیگر مرتبط است (مثال‪ :‬هر کارمند‬ ‫‪o‬‬

‫یک کارت شناسایی دارد)‪.‬‬

‫یکبهچند‪ :‬یک نمونه در یک موجودیت با چند نمونه در موجودیت دیگر مرتبط است (مثال‪ :‬یک دپارتمان‬ ‫‪o‬‬

‫دارای چندین کارمند است)‪.‬‬

‫چندبهچند‪ :‬نمونهها در هر دو موجودیت با چند نمونه در موجودیت دیگر مرتبط هستند (مثال‪:‬‬ ‫‪o‬‬

‫دانشجویان و دروس)‪.‬‬

‫اهمیت مدلهای داده در ‪DBMS‬‬

‫‪ .1‬سادهسازی طراحی پایگاه داده‪ :‬مدلهای داده به مرحله طراحی منطقی راهنمایی میکنند و اطمینان میدهند‬
‫که پایگاه دادهها به طور موثری ساختار یافتهاند تا نیازهای کاربران را برآورده کنند‪.‬‬

‫‪ .2‬بهبود یکپارچگی و سازگاری دادهها‪ :‬یک مدل ساختار یافته خوب تضمین میکند که دادهها به محدودیتهای‬
‫یکپارچگی پایبند باشند و تکرار و ناسازگاری کاهش یابد‪.‬‬
‫‪ .3‬بهبود دسترسی و عملکرد پرسوجو‪ :‬با سازماندهی بهینه دادهها‪ ،‬مدلهای داده امکان بازیابی سریعتر و استفاده‬
‫موثر از شاخصها را فراهم میکنند‪.‬‬

‫‪ .4‬سهولت در نگهداری و مقیاسپذیری‪ :‬با داشتن یک مدل ساختاریافته‪ ،‬تغییرات و مقیاسپذیری پایگاه داده‬
‫بهراحتی مدیریت میشود‪ ،‬زیرا هر مولفه نقش و رابطه تعریف شدهای دارد‪.‬‬

‫‪ .5‬استانداردسازی‪ :‬مدلهای داده نحوهی نمایش دادهها را استاندارد میکنند‪ ،‬امکان حمل و نقل بین‪ DBMS‬ها را‬
‫فراهم کرده و سازگاری بین سیستمها را تضمین میکنند‪.‬‬

‫استقالل داده )‪(Data Independence‬‬

‫استقالل دادهها مفهومی اساسی در سیستمهای مدیریت پایگاه داده )‪ (DBMS‬است که به توانایی تغییر طرح )‪(schema‬‬
‫در یک سطح از پایگاه داده‪ ،‬بدون نیاز به تغییر طرح در سطح باالتر اشاره دارد‪ .‬به عبارت دیگر‪ ،‬این مفهوم به کاربران و‬
‫برنامهها اجازه میدهد که به صورت مستقل از ساختار زیربنایی پایگاه داده‪ ،‬به دادهها دسترسی داشته و آنها را مدیریت‬
‫کنند‪ .‬این مفهوم برای کارکرد و انعطافپذیری ‪ DBMS‬ضروری است و یکی از موضوعات کلیدی در طراحی و مدیریت‬
‫پایگاه داده به شمار میرود‪.‬‬

‫استقالل دادهها به دو نوع اصلی تقسیم میشود‪ :‬استقالل دادههای منطقی و استقالل دادههای فیزیکی ‪.‬در ادامه هر کدام‬
‫از این موارد و اهمیت آنها و همچنین نقش آنها در معماری سیستم پایگاه داده را به تفصیل بررسی میکنیم‪.‬‬

‫انواع استقالل داده‬

‫استقالل دادههای فیزیکی‬ ‫•‬

‫تعریف‪ :‬استقالل داده های فیزیکی به توانایی تغییر طرح فیزیکی بدون تأثیر بر طرح منطقی اشاره دارد‪.‬‬ ‫‪o‬‬

‫به این معنی که تغییراتی در نحوه ذخیرهسازی دادهها (مثالً تغییر از یک دستگاه ذخیرهسازی به دستگاه‬
‫دیگر‪ ،‬اصالح مکانهای ذخیرهسازی‪ ،‬یا حتی تغییر روشهای ایندکسگذاری) نباید بر نحوه دسترسی به‬
‫دادهها توسط کاربران یا برنامهها تأثیر بگذارد‪.‬‬

‫اهمیت‪ :‬استقالل دادههای فیزیکی اهمیت زیادی دارد‪ ،‬زیرا امکان تغییر جزئیات ذخیرهسازی فیزیکی را‬ ‫‪o‬‬

‫بدون نیاز به بازنویسی منطق سطح باالتر فراهم میکند‪.‬‬


‫مثالها‪:‬‬ ‫‪o‬‬

‫تغییر از ذخیرهسازی دیسک مغناطیسی به‪SSD.‬‬ ‫▪‬

‫اصالح استراتژیهای ایندکسگذاری برای بهبود عملکرد کوئریها‪.‬‬ ‫▪‬

‫پارتیشنبندی جداول برای بهینهسازی بازیابی دادهها بدون تأثیر بر کوئریها‪.‬‬ ‫▪‬

‫استقالل دادههای منطقی‬ ‫•‬

‫تعریف‪ :‬استقالل دادههای منطقی به توانایی تغییر طرح منطقی بدون نیاز به تغییر طرح خارجی یا‬ ‫‪o‬‬

‫برنامههای کاربردی اشاره دارد‪ .‬تغییر در ساختار منطقی‪ ،‬مانند افزودن فیلدهای جدید یا جداول‪ ،‬یا‬
‫تغییر روابط بین موجودیتها‪ ،‬نباید باعث نیاز به تغییر در نحوه دسترسی برنامهها به دادهها شود‪.‬‬

‫اهمیت‪ :‬استقالل دادههای منطقی برای انطباق با نیازهای جدید کسبوکار ضروری است‪ ،‬زیرا امکان‬ ‫‪o‬‬

‫تغییر ساختار پایگاه داده را بدون اختالل در برنامههای موجود فراهم میکند‪.‬‬

‫مثالها‪:‬‬ ‫‪o‬‬

‫افزودن ستون جدید به یک جدول برای ذخیره دادههای جدید‪.‬‬ ‫▪‬

‫ایجاد روابط جدید بین جداول برای منعکس کردن تغییر در مدل دادهها‪.‬‬ ‫▪‬

‫نرمالسازی یا غیرنرمالسازی طرح پایگاه داده برای بهینهسازی بدون تأثیر بر برنامههای‬ ‫▪‬

‫دسترسی به پایگاه داده‪.‬‬

‫اهمیت استقالل داده‬

‫استقالل داده سه مزیت اصلی را برای معماری ‪ DBMS‬فراهم میکند‪:‬‬

‫‪ .1‬کاهش نیاز به نگهداری برنامهها‪ :‬با جدا کردن منطق برنامه از طراحی و ذخیرهسازی پایگاه داده‪ ،‬کد برنامه کمتر‬
‫به ساختار پایگاه داده وابسته میشود و در نتیجه نیاز به تغییرات در هنگام تغییر پایگاه داده کاهش مییابد‪.‬‬

‫‪ .2‬انعطافپذیری در مدیریت پایگاه داده‪ :‬استقالل داده امکان مدیریت بهتر ذخیرهسازی‪ ،‬ایندکسگذاری‪ ،‬و‬
‫استراتژیهای بهینهسازی را بدون تأثیر بر تجربه کاربر نهایی فراهم میکند‪.‬‬
‫‪ .3‬پشتیبانی از چندین نمای مختلف‪ :‬استقالل داده به ایجاد چندین نمای خارجی برای گروههای مختلف کاربران‬
‫کمک میکند که میتوانند بدون تغییر ساختار زیربنایی پایگاه داده با گذشت زمان تطبیق یابند‪.‬‬

‫سطوح تجرید داده و استقالل داده‬

‫استقالل داده به طور مستقیم با معماری سهالیهای در ‪ DBMS‬مرتبط است که شامل موارد زیر است‪:‬‬

‫‪ .1‬طرح فیزیکی‪ :‬توصیف نحوه ذخیرهسازی دادهها روی سختافزار‪.‬‬

‫‪ .2‬طرح منطقی‪ :‬تعریف ساختار منطقی پایگاه داده‪ ،‬شامل جداول‪ ،‬روابط و محدودیتها‪.‬‬

‫‪ .3‬طرح خارجی‪ :‬نمای سطح کاربر که متناسب با نیازهای گروههای مختلف کاربران یا برنامهها طراحی شده است‪.‬‬

‫هر سطح از سطح دیگر مستقل است و اجازه میدهد تغییرات در یک سطح به طور مجزا اعمال شود‪.‬‬

‫دستیابی به استقالل داده در ‪DBMS‬‬

‫استقالل داده از طریق نگاشت طرحها به دست میآید‪:‬‬

‫نگاشت طرح فیزیکی به طرح منطقی‪ :‬این امکان را فراهم میکند که تغییرات در ذخیرهسازی فیزیکی در سطح‬ ‫•‬

‫منطقی بازتاب یابد بدون اینکه بر برنامهها تأثیر بگذارد‪.‬‬

‫نگاشت طرح منطقی به طرح خارجی‪ :‬این امکان را می دهد که تغییرات در سطح منطقی انجام شود و در عین‬ ‫•‬

‫حال همان رابط کاربری و الگوهای دسترسی برای برنامهها حفظ شود‪.‬‬

‫چالشها در پیادهسازی استقالل داده‬

‫دستیابی به استقالل کامل دادهها به دلیل برخی چالشها مشکل است‪:‬‬

‫‪ .1‬وابستگیهای طرح‪ :‬برخی از منطقهای برنامه به طرحهای خاص وابستهاند و این میتواند توانایی اعمال تغییرات‬
‫را محدود کند‪.‬‬

‫‪ .2‬نگاشتهای پیچیده‪ :‬ترجمه تغییرات در سطوح طرح از طریق نگاشتها میتواند محاسباتی پرهزینه و پیچیده‬
‫باشد‪ ،‬به خصوص در پایگاه دادههای بزرگ‪.‬‬
‫‪ .3‬مالحظات عملکردی‪ :‬استقالل دادهها‪ ،‬به ویژه استقالل منطقی‪ ،‬ممکن است گاهی نیاز به مصالحه در عملکرد‬
‫داشته باشد‪ ،‬زیرا نیاز است جزئیات طرح از الیههای برنامه انتزاع شود‪.‬‬

‫استقالل داده و بهینهسازی کوئریها‬

‫در ‪ ،DBMS‬بهینهسازی کوئری به شدت به اصول استقالل داده وابسته است‪ .‬بهینهساز کوئریها میتواند کوئریها را بر‬
‫اساس تغییرات در طرح فیزیکی (مانند ایندکسگذاری یا پارتیشنبندی) تغییر دهد‪ ،‬بدون اینکه نیاز به تغییر ساختار‬
‫منطقی یا کوئری های کاربر نهایی داشته باشد و به این ترتیب بازیابی کارآمد داده را صرفنظر از روشهای ذخیرهسازی‬
‫فیزیکی پشتیبانی کند‪.‬‬

‫استقالل داده در عمل‬

‫اکثر سیستمهای مدرن ‪ DBMS‬تالش میکنند تا با ارائه ویژگیهایی مانند ابزارهای مدیریت ایندکس‪ ،‬قابلیتهای تکامل‬
‫طرح‪ ،‬و تعریف نماها استقالل داده را به حداکثر برسانند‪ .‬با این حال‪ ،‬دستیابی به استقالل کامل ممکن است همیشه عملی‬
‫نباشد‪ ،‬به ویژه در برنامههای با اتصال تنگاتنگ یا سیستمهای بالدرنگ که در آنها الزامات عملکردی ممکن است‬
‫انعطافپذیری را محدود کنند‪.‬‬

‫خالصه نکات کلیدی‬

‫استقالل داده اجازه انعطافپذیری طرحها در سطوح مختلف بدون تأثیرگذاری بر طرحها یا برنامههای سطح باالتر‬ ‫•‬

‫را فراهم میکند‪.‬‬

‫دو نوع اصلی‪ :‬استقالل دادههای فیزیکی و استقالل دادههای منطقی‪.‬‬ ‫•‬

‫مزایای کلیدی‪ :‬کاهش نیاز به نگهداری برنامهها‪ ،‬انعطافپذیری در مدیریت پایگاه داده‪ ،‬و پشتیبانی از چندین‬ ‫•‬

‫نمای مختلف‪.‬‬

‫چالشها‪ :‬وابستگیهای طرح‪ ،‬نگاشتهای پیچیده‪ ،‬و تأثیرات احتمالی بر عملکرد‪.‬‬ ‫•‬

‫کاربردهای عملی‪ :‬تکامل طرح‪ ،‬بهینهسازی کوئریها‪ ،‬و ایندکسگذاری پویا مثالهایی از استقالل داده در عمل‬ ‫•‬

‫هستند‪.‬‬
‫انتزاع داده )‪(Data Abstraction‬‬

‫انتزاع داده یک مفهوم بنیادی در سیستمهای مدیریت پایگاه داده )‪ (DBMS‬است که با پنهان کردن جزئیات‬ ‫•‬

‫پیچیده و فراهم کردن یک رابط ساده‪ ،‬تعامالت با پایگاه داده را تسهیل میکند‪.‬‬

‫این مفهوم به کاربران اجازه میدهد تا بدون نیاز به درک چگونگی ذخیرهسازی‪ ،‬بازیابی یا مدیریت پیچیده دادهها‪،‬‬ ‫•‬

‫به آنها دسترسی پیدا کنند‪.‬‬

‫در‪ ، DBMS‬انتزاع داده امکان جدا کردن توصیفات داده و دیدگاههای کاربر از جزئیات فیزیکی ذخیرهسازی داده‬ ‫•‬

‫را فراهم میکند و استفاده و نگهداری از پایگاه داده را آسانتر میکند‪.‬‬

‫اهمیت انتزاع داده در ‪DBMS‬‬

‫پنهانسازی جزئیات‪ :‬جداسازی "چی" (نمایش و عملیات روی داده) از "چگونه" (پیادهسازی)‪.‬‬ ‫•‬

‫رابط کاربرپسند‪ :‬کاربران به روشی سادهتر با دادهها تعامل دارند و این به دسترسی آسان و بهرهوری بیشتر کمک‬ ‫•‬

‫میکند‪.‬‬

‫امنیت پیشرفته‪ :‬دسترسی کنترلشده به دادهها‪ ،‬پنهان کردن جزئیات حساس از کاربران غیرمجاز‪.‬‬ ‫•‬

‫استقالل داده‪ :‬تغییرات در ذخیرهسازی یا ساختار داده بر نحوه تعامل کاربران با داده تأثیر نمیگذارد و این‬ ‫•‬

‫انعطافپذیری و مقیاسپذیری پایگاه داده را افزایش میدهد‪.‬‬

‫سطوح انتزاع داده در ‪DBMS‬‬

‫‪ DBMS‬از معماری سه الیه برای پیادهسازی انتزاع داده استفاده میکند‪:‬‬

‫‪ .1‬سطح فیزیکی (سطح داخلی)‬

‫تعریف‪ :‬پایینترین سطح انتزاع که مربوط به ذخیرهسازی فیزیکی دادهها بر روی سختافزار است‪ ،‬از‬ ‫‪o‬‬

‫جمله جزئیات مربوط به ساختارهای ذخیرهسازی‪ ،‬روشهای دسترسی و ایندکسها‪.‬‬

‫نکات کلیدی‪:‬‬ ‫‪o‬‬


‫قالبهای ذخیرهسازی‪ :‬قالبی که در آن دادهها ذخیره میشوند (مانند ‪ ،B-trees‬ایندکس هش)‪.‬‬ ‫▪‬

‫دستگاههای ذخیرهسازی‪ :‬مدیریت دادهها بر روی دیسکها‪ ،‬حافظه و سایر منابع سختافزاری‪.‬‬ ‫▪‬

‫بهینهسازی‪ :‬تمرکز بر بهینهسازی ذخیرهسازی و مسیرهای دسترسی کارآمد‪.‬‬ ‫▪‬

‫اهمیت‪ :‬امکان مدیریت و بازیابی کارآمد ذخیرهسازی را فراهم میکند و این جزئیات را از کاربران نهایی‬ ‫‪o‬‬

‫پنهان میسازد‪.‬‬

‫‪ .2‬سطح منطقی (سطح مفهومی)‬

‫تعریف‪ :‬سطح میانی انتزاع که ساختار و روابط دادهها را بدون توجه به چگونگی ذخیرهسازی فیزیکی‬ ‫‪o‬‬

‫آنها تعریف میکند‪.‬‬

‫نکات کلیدی‪:‬‬ ‫‪o‬‬

‫مدلهای داده‪ :‬استفاده از مدلهایی مانند رابطهای‪ ،‬سلسلهمراتبی یا شیءگرا برای نمایش داده‪.‬‬ ‫▪‬

‫موجودیتها و روابط‪ :‬تعریف موجودیتها (مانند دانشجویان‪ ،‬کارکنان) و روابط آنها (مانند‬ ‫▪‬

‫ثبت نام در دروس)‪.‬‬

‫محدودیتها‪ :‬شامل محدودیتهای یکپارچگی مانند کلید اصلی‪ ،‬کلید خارجی و قوانین تمامیت‬ ‫▪‬

‫مرجع‪.‬‬

‫استقالل داده‪ :‬سطح منطقی برنامههای کاربردی را از تغییرات در ذخیرهسازی فیزیکی محافظت‬ ‫▪‬

‫میکند‪.‬‬

‫اهمیت‪ :‬برای اطمینان از یکپارچگی داده و نمایش یکپارچه ساختار پایگاه داده ضروری است‪.‬‬ ‫‪o‬‬

‫‪ .3‬سطح نمایشی (سطح خارجی)‬

‫تعریف‪ :‬باالترین سطح انتزاع که دیدگاههای سفارشیسازیشدهای از پایگاه داده را برای کاربران مختلف‬ ‫‪o‬‬

‫فراهم میکند تا نیازهای خاص آنها را برآورده سازد‪.‬‬

‫نکات کلیدی‪:‬‬ ‫‪o‬‬

‫دیدگاههای متعدد‪ :‬به بخشهای مختلف (مانند منابع انسانی‪ ،‬مالی) اجازه میدهد فقط دادههای‬ ‫▪‬

‫مورد نیازشان را مشاهده کنند‪.‬‬


‫امنیت و حریم خصوصی داده‪ :‬محدود کردن دسترسی به دادههای حساس با کنترل دیدگاههای‬ ‫▪‬

‫کاربران‪.‬‬

‫سادهسازی‪ :‬نمایش داده به روشی که قابل درک باشد و از جزئیات غیرضروری اجتناب شود‪.‬‬ ‫▪‬

‫اهمیت‪ :‬ارائه دیدگاههای کاربرمحور از دادهها و بهبود کارایی و امنیت پایگاه داده‪.‬‬ ‫‪o‬‬

‫انتزاع داده و استقالل داده‬

‫استقالل داده‪ :‬یکی از مزایای اصلی انتزاع داده است که اجازه میدهد تغییرات در یک سطح انتزاعی بدون تأثیر‬ ‫•‬

‫بر سطوح باالتر اعمال شود‪.‬‬

‫انواع‪:‬‬ ‫•‬

‫استقالل داده فیزیکی‪ :‬تغییرات در سطح فیزیکی (مانند ارتقاء ذخیرهسازی) بر سطوح منطقی و نمایشی‬ ‫‪o‬‬

‫تأثیر نمیگذارد‪.‬‬

‫استقالل داده منطقی‪ :‬تغییرات در سطح منطقی (مانند افزودن یک فیلد جدید) بر سطح نمایشی تأثیر‬ ‫‪o‬‬

‫نمیگذارد‪.‬‬

‫اهمیت‪ :‬این ویژگی تضمین میکند که پایگاه داده میتواند بدون نیاز به بازنویسی عمده برنامهها تکامل یابد و از‬ ‫•‬

‫مقیاسپذیری و انعطافپذیری آن پشتیبانی میکند‪.‬‬

‫رابطه بین مدلهای داده و انتزاع داده‬

‫مدلهای داده (مانند مدل رابطهای‪ ،‬سلسلهمراتبی و شبکهای) در انتزاع داده نقش اساسی دارند‪:‬‬ ‫•‬

‫مدل رابطهای‪ :‬دادهها را بهصورت جدول تعریف میکند که انتزاعی سطح باال برای سطح منطقی فراهم‬ ‫‪o‬‬

‫میکند‪.‬‬

‫مدلهای سلسلهمراتبی و شبکهای‪ :‬معموالً در سطح فیزیکی برای سازماندهی ساختارهای داده پیچیده‬ ‫‪o‬‬

‫استفاده میشوند‪.‬‬

‫هر مدل از جنبه های مختلف انتزاع داده با نمایش عناصر داده و ارتباطات آنها به فرمتهای خاص پشتیبانی‬ ‫•‬

‫میکند‪.‬‬
‫مثالهای انتزاع داده در ‪DBMS‬‬

‫مثال ‪ )۱‬در یک پایگاه داده دانشجویی‪:‬‬ ‫•‬

‫سطح فیزیکی‪ :‬چگونگی ذخیرهسازی رکوردهای دانشجویان روی دیسک (مانند استفاده از ‪B-trees‬‬ ‫‪o‬‬

‫برای ایندکس)‪.‬‬

‫سطح منطقی‪ :‬تعریف جداول مانند ‪ Student‬و ‪ Course‬و روابط آنها (مانند ‪ Enrollment‬که‬ ‫‪o‬‬

‫‪ Student‬و ‪ Course‬را پیوند میدهد)‪.‬‬

‫سطح نمایشی‪ :‬ارائه دیدگاههای سفارشی‪ ،‬مانند دیدگاه "نمرات دانشجو" که فقط برای اساتید قابل‬ ‫‪o‬‬

‫دسترسی است‪.‬‬

‫مثال ‪ )۲‬پایگاه داده بانک برای مشتریان و تراکنشها‪:‬‬ ‫•‬

‫سطح فیزیکی‪ :‬جزئیات ذخیرهسازی مانند تقسیمبندی دادههای مشتریان در دیسکهای مختلف‪.‬‬ ‫‪o‬‬

‫سطح منطقی‪ :‬تعریف موجودیتهایی مانند ‪ Account ،Customer‬و ‪ Transaction‬با‬ ‫‪o‬‬

‫محدودیتهایی برای اطمینان از تراکنشهای صحیح‪.‬‬

‫سطح نمایشی‪ :‬ارائه دیدگاههای مختلف برای نقشهای مختلف—کارمندان فقط مانده حساب مشتریان‬ ‫‪o‬‬

‫را میبینند در حالی که مدیران دادههای وام و رهن را مشاهده میکنند‪.‬‬

‫کاربردهای انتزاع داده در حل مسائل ‪DBMS‬‬

‫طراحی طرحواره‪ :‬با درک سطوح انتزاع داده‪ ،‬طراحان میتوانند طرحوارههایی ایجاد کنند که از سیستمهای‬ ‫•‬

‫ماژوالر‪ ،‬مقیاسپذیر و امن پشتیبانی کنند‪.‬‬

‫امنیت داده‪ :‬انتزاع در سطح نمایشی برای اجرای سیاستهای حفظ حریم خصوصی داده ضروری است و دسترسی‬ ‫•‬

‫کاربران را محدود میکند‪.‬‬

‫بهینهسازی پایگاه داده‪ :‬با استفاده از سطح فیزیکی‪ ،‬مدیران پایگاه داده با ایجاد ایندکس‪ ،‬تقسیمبندی و مدیریت‬ ‫•‬

‫کارآمد ذخیرهسازی‪ ،‬عملکرد را بهینه میکنند‪.‬‬


‫جداسازی خطا‪ :‬خطاها در تغییرات ساختار یا ذخیرهسازی را میتوان به سطوح خاصی از انتزاع محدود کرد و‬ ‫•‬

‫تأثیر آنها را در سراسر سیستم کاهش داد‪.‬‬

‫تکامل شِما )‪(Schema Evolution‬‬

‫تکامل شِما به توانایی یک ‪ DBMS‬در پشتیبانی از تغییرات در ساختار پایگاه داده بدون اختالل در عملیاتهای جاری یا‬
‫نیاز به بازتعریف کامل پایگاه داده اشاره دارد‪ .‬این قابلیت به پایگاه دادهها اجازه میدهد تا با نیازهای در حال تغییر سازگار‬
‫شوند‪ ،‬که برای سیستمهای پویا امری حیاتی است‪ .‬مفهوم تکامل شِما شامل بهروزرسانی‪ ،‬تغییر و انطباق شِماهای پایگاه‬
‫داده با گذشت زمان است‪ ،‬در حالی که یکپارچگی دادهها حفظ شده و سازگاری با برنامههای موجود نیز ادامه مییابد‪.‬‬

‫در ادامه‪ ،‬یک توضیح جامع از تکامل شِما در ‪ DBMS‬ارائه شده است‪:‬‬

‫مفهوم شِما در‪DBMS‬‬

‫تعریف شِما‪ :‬شِما در ‪ DBMS‬ساختار پایگاه داده را تعریف میکند و چگونگی سازماندهی دادهها و نحوه ساختار‬ ‫•‬

‫روابط میان موجودیتها را توضیح میدهد‪.‬‬

‫انواع شِماها‪:‬‬ ‫•‬

‫شِما فیزیکی‪ :‬ساختار ذخیرهسازی پایگاه داده را تعریف میکند‪.‬‬ ‫‪o‬‬

‫شِما منطقی‪ :‬ساختار پایگاه داده را که کاربران با آن تعامل دارند (مانند جداول‪ ،‬نماها و شاخصها)‬ ‫‪o‬‬

‫توصیف میکند‪.‬‬

‫شِما خارجی‪ :‬چگونگی مشاهده دادهها توسط کاربران یا گروههای کاربر را نشان میدهد که معموالً شامل‬ ‫‪o‬‬

‫نماها یا زیرمجموعههایی از شِما منطقی است‪.‬‬

‫تکامل شِما در مقابل تغییر شِما‬

‫تکامل شِما‪ :‬به تغییرات تدریجی و بدون اختالل در شِما اشاره دارد‪ ،‬در حالی که پایگاه داده به کار خود ادامه‬ ‫•‬

‫میدهد‪ .‬این تغییرات برای سازگاری با شرایط جدید طراحی شدهاند‪.‬‬


‫تغییر شِما‪ :‬معموالً به تغییراتی اشاره دارد که ممکن است نیاز به زمان توقف یا بازسازی قابل توجه دادهها داشته‬ ‫•‬

‫باشند و ممکن است به صورت موقت خدمات پایگاه داده را مختل کنند‪.‬‬

‫دالیل تکامل شِما‬

‫نیازهای برنامههای کاربردی‪ :‬تغییر نیازهای برنامهها اغلب منجر به اضافه شدن ویژگیها یا ساختارهای داده جدید‬ ‫•‬

‫میشود‪.‬‬

‫تغییرات تجاری‪ :‬سازمانها با گذشت زمان تغییر میکنند و نیازهای ذخیرهسازی دادههای آنها ممکن است‬ ‫•‬

‫توسعه یافته یا تغییر کند که نیازمند تنظیم شِما است‪.‬‬

‫پیشرفتهای فناوری‪ :‬ویژگیها یا بهینهسازیهای جدید در ‪ DBMS‬ممکن است نیازمند تنظیمات شِما برای‬ ‫•‬

‫بهبود عملکرد باشند‪.‬‬

‫رشد دادهها‪ :‬با افزایش حجم داده‪ ،‬تکامل شِما ممکن است برای پارتیشنبندی جداول‪ ،‬افزودن شاخصها یا‬ ‫•‬

‫مدیریت ذخیرهسازی الزم باشد‪.‬‬

‫انواع تغییرات شِما‬

‫تکامل شِما میتواند شامل انواع مختلفی از تغییرات باشد‪:‬‬

‫افزودن یا حذف ویژگیها (ستونها)‪ :‬ستونهای جدید میتوانند به جدولهای موجود اضافه شوند یا ستونهای‬ ‫•‬

‫بالاستفاده حذف شوند‪.‬‬

‫افزودن یا حذف جداول‪ :‬جداول جدید میتوانند اضافه شوند یا جداول غیرضروری حذف گردند‪.‬‬ ‫•‬

‫تغییر انواع داده یا محدودیتها‪ :‬تغییر نوع داده یک ستون‪ ،‬افزودن یا حذف محدودیتهایی مانند ‪،NOT NULL‬‬ ‫•‬

‫‪ UNIQUE‬یا ‪.FOREIGN KEY‬‬

‫تغییر نام ویژگیها یا جداول‪ :‬تغییر نام جداول یا ویژگیها برای وضوح بیشتر یا تطبیق با اصول جدید نامگذاری‪.‬‬ ‫•‬

‫تغییر روابط‪ :‬شامل افزودن‪ ،‬حذف یا تغییر کلیدهای خارجی یا انواع روابط (‪ ۱‬به ‪ ۱ ،۱‬به چند)‪.‬‬ ‫•‬
‫چالشهای تکامل شِما‬

‫تکامل شِما چالشهای متعددی دارد که یک ‪ DBMS‬باید به آنها رسیدگی کند‪:‬‬

‫یکپارچگی دادهها‪ :‬تغییرات نباید درستی یا یکپارچگی دادههای موجود را به خطر بیندازد‪.‬‬ ‫•‬

‫سازگاری به عقب‪ :‬برنامههایی که به شِما قبلی وابستهاند باید همچنان کار کنند یا مسیر انتقال نرم داشته باشند‪.‬‬ ‫•‬

‫بازنویسی پرسوجوها‪ :‬پرسوجوهایی که برای شِما اصلی طراحی شدهاند ممکن است نیاز به بازنویسی یا تنظیم‬ ‫•‬

‫داشته باشند‪.‬‬

‫انتقال و تبدیل دادهها‪ :‬تغییر ستونها یا تغییر روابط ممکن است نیازمند تبدیل دادههای موجود باشد تا با شِما‬ ‫•‬

‫جدید هماهنگ شوند‪.‬‬

‫زمان توقف سیستم‪ :‬یک ‪ DBMS‬قدرتمند باید بتواند تغییرات شِما را بدون زمان توقف زیاد مدیریت کند‪ ،‬هرچند‬ ‫•‬

‫که در عمل این امر ممکن است دشوار باشد‪.‬‬

‫مکانیزمهای تکامل شِما در ‪DBMS‬‬

‫برای مدیریت تکامل شِما‪ ،‬سیستمهای ‪ DBMS‬مکانیزمهای مختلفی را به کار میبرند‪:‬‬

‫نسخهبندی‪ :‬برخی سیستمها اجازه نسخهبندی شِما را میدهند‪ ،‬که در آن چندین نسخه از شِما میتوانند همزمان‬ ‫•‬

‫وجود داشته باشند‪.‬‬

‫سازگاری رو به جلو و عقب‪ :‬تغییرات شِما به گونهای طراحی میشوند که دادههای نوشتهشده در هر دو نسخه‬ ‫•‬

‫قدیم و جدید شِما قابل خواندن باشند‪.‬‬

‫ابزارهای مهاجرت خودکار شِما‪ DBMS :‬ها ممکن است ابزارهایی ارائه دهند که به طور خودکار مهاجرت شِما را‬ ‫•‬

‫مدیریت میکنند‪ ،‬مانند افزودن ستونها با مقادیر پیشفرض‪ ،‬تبدیل انواع داده یا تغییر نام ستونها‪.‬‬

‫مدیریت متادیتا‪ :‬سیستمهای ‪ DBMS‬اغلب متادیتا دقیق نگه میدارند‪ ،‬که تکامل شِما را با ضبط روابط‪ ،‬انواع و‬ ‫•‬

‫محدودیتهای هر نسخه شِما تسهیل میکند‪.‬‬

‫ردیابی وابستگی‪ DBMS :‬وابستگیها مانند کلیدهای خارجی و نماها را ردیابی میکند‪ ،‬بنابراین تغییرات شِما‬ ‫•‬

‫میتوانند به صورت خودکار گسترش یابند یا کاربران را به تنظیمات الزم هشدار دهند‪.‬‬
‫تکامل شِما در ‪ RDBMS‬در مقابل ‪NoSQL DBMS‬‬

‫سیستم مدیریت پایگاه داده رابطهای )‪(RDBMS‬‬ ‫•‬

‫تکامل شِما در ‪ RDBMS‬میتواند پیچیده باشد‪ ،‬زیرا شِماها به طور دقیق تعریف شدهاند‪.‬‬ ‫‪o‬‬

‫‪RDBMS‬اغلب نیاز به مهاجرت و تبدیل گسترده دادهها دارد‪ ،‬به خصوص برای تغییرات ساختاری‪.‬‬ ‫‪o‬‬

‫ابزارهایی مانند ‪ALTER TABLE‬استفاده میشوند‪ ،‬اما ممکن است برای مجموعه دادههای بزرگ‬ ‫‪o‬‬

‫تأثیر منفی بر عملکرد داشته باشند‪.‬‬

‫‪:NoSQL DBMS‬‬ ‫•‬

‫پایگاههای داده‪ ، NoSQL‬به ویژه پایگاههای داده مبتنی بر سند (مانند ‪ ،)MongoDB‬شِماهای‬ ‫‪o‬‬

‫انعطافپذیرتری دارند و تکامل شِما را آسانتر میکنند‪.‬‬

‫در ‪ ،NoSQL‬شِماها میتوانند در سطح سند تغییر کنند و امکان وجود نسخههای مختلط در یک‬ ‫‪o‬‬

‫مجموعه را فراهم میکنند‪.‬‬

‫تکامل شِما در سیستمهای ‪ NoSQL‬معموالً محدودیتهای کمتری دارد‪ ،‬که باعث کاهش اختالالت‬ ‫‪o‬‬

‫میشود‪.‬‬

‫تأثیرات تکامل شِما‬

‫تکامل شِما بر جنبههای مختلف یک سیستم پایگاه داده تأثیر میگذارد‪ ،‬که ‪ DBMS‬باید به دقت آنها را مدیریت کند تا‬
‫از ناسازگاری یا کاهش عملکرد جلوگیری شود‪:‬‬

‫الگوهای دسترسی به داده‪ :‬شِما های تغییر یافته ممکن است نحوه دسترسی یا پرسوجوهای داده را تغییر دهند‬ ‫•‬

‫و عملکرد را تحت تأثیر قرار دهند‪.‬‬

‫ایندکسگذاری‪ :‬تغییرات شِما‪ ،‬به ویژه تغییرات مرتبط با ستونهای جدید یا کلیدها‪ ،‬ممکن است نیاز به ایجاد یا‬ ‫•‬

‫بهروزرسانی ایندکسها داشته باشد‪.‬‬

‫امنیت و کنترل دسترسی‪ :‬ویژگیها یا جداول جدید ممکن است نیاز به بهروزرسانی لیستهای کنترل دسترسی‬ ‫•‬

‫)‪ (ACL‬داشته باشند تا امنیت حفظ شود‪.‬‬


‫منطق برنامه‪ :‬برنامههای متصل به پایگاه داده باید با شِما جدید سازگار شوند‪ ،‬یا با بهروزرسانی پرسوجوها یا‬ ‫•‬

‫استفاده از میانافزارها‪.‬‬

‫سناریوهای نمونه در تکامل شِما‬

‫افزودن یک ستون جدید برای ذخیره دادههای اضافی کاربر‪:‬‬ ‫•‬

‫مراحل شامل استفاده از ‪ ALTER TABLE‬برای افزودن ستون با مقدار پیشفرض است تا هیچ‬ ‫‪o‬‬

‫برنامه موجودی به دلیل مقادیر ‪ null‬دچار مشکل نشود‪.‬‬

‫تغییر نوع داده (مانند ‪ INT‬به ‪:)BIGINT‬‬ ‫•‬

‫تبدیل دادههای موجود به نوع جدید و اطمینان از اینکه تمام وابستگیها مانند ایندکسها و محدودیتها‬ ‫‪o‬‬

‫سازگار هستند‪.‬‬

‫افزودن محدودیت کلید خارجی‪:‬‬ ‫•‬

‫اطمینان از یکپارچگی ارجاعی از طریق بررسی اینکه تمام دادهها با الزامات کلید خارجی مطابقت دارند‪،‬‬ ‫‪o‬‬

‫که ممکن است نیاز به پاکسازی داده داشته باشد‪.‬‬

‫تکامل شِما در‪ DBMS‬های مدرن‬

‫سیستمهای ‪ DBMS‬مدرن ابزارهای پیشرفتهای برای تسهیل تکامل شِما دارند‪:‬‬

‫‪ Oracle‬و ‪ PostgreSQL‬پشتیبانی قوی از تکامل شِما با زمان توقف کم دارند‪.‬‬ ‫•‬

‫‪ MySQL‬عملیات ‪ ALTER TABLE‬را ارائه میدهد‪ ،‬اگرچه تغییرات گسترده ممکن است همچنان بر‬ ‫•‬

‫عملکرد تأثیر بگذارد‪.‬‬

‫‪ MongoDB‬و سایر پایگاههای داده ‪ NoSQL‬به طور ذاتی تکامل شِما را مدیریت میکنند‪ ،‬زیرا شِماهای‬ ‫•‬

‫سختگیرانهای ندارند‪.‬‬

‫ابزارهای کنترل نسخه و مهاجرت‪ :‬سیستمهایی مانند ‪ Liquibase‬و ‪ Flyway‬به مدیریت تغییرات شِما کمک‬ ‫•‬

‫میکنند و کنترل نسخه و بازگشت تغییرات را برای تکامل شِما فراهم میکنند‪.‬‬
‫بهترین روشها برای تکامل شِما‬

‫برنامهریزی برای سازگاری رو به جلو و عقب‪ :‬تغییرات را به گونهای طراحی کنید که با نسخههای قدیمی و جدید‬ ‫•‬

‫شِما سازگار باشند‪.‬‬

‫استفاده از کنترل نسخه برای تغییرات شِما‪ :‬تغییرات شِما را با ابزارهای کنترل نسخه ردیابی کنید تا در صورت‬ ‫•‬

‫بروز مشکل بتوانید بازگردانی کنید‪.‬‬

‫مستندسازی دقیق تغییرات‪ :‬مستندسازی مناسب اطمینان میدهد که توسعهدهندگان و مدیران پایگاه داده مسیر‬ ‫•‬

‫تکامل را درک کرده و میتوانند به طور مؤثری عیبیابی کنند‪.‬‬

‫آزمایش قبل از پیادهسازی‪ :‬تغییرات باید در محیط آزمایشی تست شوند تا پیش از رسیدن به محیط تولید‪،‬‬ ‫•‬

‫مشکالت احتمالی شناسایی شوند‪.‬‬

‫مدل داده مفهومی )‪(Conceptual Data Model‬‬

‫در سیستمهای مدیریت پایگاه داده)‪ ، (DBMS‬مدل داده مفهومی (‪ Conceptual Data Model‬یا ‪ )CDM‬نمایش‬
‫سطح باالیی از دادههای یک سازمان است که به صورت مستقل از هر سیستم مدیریت پایگاه داده خاصی طراحی میشود‪.‬‬
‫این مدل برای طراحان پایگاه داده بسیار اهمیت دارد‪ ،‬زیرا به آنها اجازه میدهد نیازهای تجاری و روابط بین دادهها را به‬
‫وضوح مشاهده کنند‪ ،‬بدون این که وارد جزئیات ذخیرهسازی فیزیکی یا فناوری خاصی شوند‪.‬‬

‫مدل داده مفهومی به عنوان یک نقشهی پایهای عمل میکند که طراحی پایگاه داده را با قوانین تجاری و نیازهای داده‬
‫تطبیق میدهد‪ .‬در اینجا تمامی جنبههای مهم مدل داده مفهومی را بررسی میکنیم تا در پاسخگویی به سواالت مرتبط‬
‫کمککننده باشد‪.‬‬

‫هدف مدل داده مفهومی‬

‫متمرکز بر کسبوکار‪ :‬مدل داده مفهومی بر موجودیت ها و روابط کسبوکاری تمرکز دارد بدون توجه به نحوه‬ ‫•‬

‫ذخیرهسازی دادهها‪ .‬این امر به طراحان پایگاه داده کمک میکند تا درک کنند چه دادههایی مهم هستند و چگونه‬
‫باید سازماندهی شوند تا موجودیت های دنیای واقعی را منعکس کنند‪.‬‬

‫ابزاری برای گردآوری نیازمندیها‪ :‬مدل داده مفهومی به عنوان پلی بین نیازهای کسبوکار و جنبههای فنی‬ ‫•‬

‫مدیریت داده عمل میکند‪.‬‬


‫استقالل از پایگاه داده‪ :‬مدل داده مفهومی از جزئیات نرمافزار پایگاه داده )‪ (DBMS‬یا مالحظات سختافزاری‬ ‫•‬

‫جدا است و در نتیجه با تغییرات فناوری ثابت میماند‪.‬‬

‫اجزای مدل داده مفهومی‬

‫مدل داده مفهومی شامل چندین جزء اصلی است که به عنوان اجزای سازنده این الیه انتزاع داده عمل میکنند‪:‬‬

‫موجودیت ها )‪ : (Entities‬نمایانگر اشیا یا چیزهای موجود در حوزه کسبوکار هستند‪ ،‬مانند مشتری‪ ،‬سفارش‪،‬‬ ‫•‬

‫محصول و غیره‪.‬‬

‫ویژگیها )‪ : (Attributes‬خصوصیات هر نهاد را توصیف میکنند‪ ،‬مانند نام مشتری‪ ،‬تاریخ سفارش‪ ،‬قیمت‬ ‫•‬

‫محصول‪.‬‬

‫شناسهها (کلیدها)‪ :‬شناسههای یکتا یا کلیدهای اصلی ویژگی های ضروری هستند که هر نمونه از یک نهاد را‬ ‫•‬

‫منحصربهفرد میسازند‪ .‬به عنوان مثال‪ ،‬کد مشتری هر مشتری را به صورت یکتا شناسایی میکند‪.‬‬

‫روابط )‪ : (Relationships‬نحوه ارتباط موجودیت ها را تعریف میکنند‪ .‬روابط قوانین و تعامالت کسبوکاری‬ ‫•‬

‫را مشخص میکنند‪ ،‬مانند مشتری سفارش میدهد‪.‬‬

‫ویژگیهای مدل داده مفهومی‬

‫سادگی‪ :‬این مدل سعی دارد دادهها را تا حد امکان ساده نمایندگی کند و از پیچیدگیهای موجود در طراحی‬ ‫•‬

‫پایگاه داده فیزیکی اجتناب کند‪.‬‬

‫شفافیت در قوانین کسبوکار‪ :‬قوانین کسبوکار که بر تعامالت دادهها حاکم هستند در روابط و ویژگیها گنجانده‬ ‫•‬

‫شدهاند‪.‬‬

‫اصطالحات غیرتخصصی‪ :‬برای مخاطبان غیر فنی طراحی شده است و از اصطالحات خاص پایگاه داده اجتناب‬ ‫•‬

‫میکند‪.‬‬
‫نمودارهای مدل داده مفهومی‬

‫نمودار ارتباط موجودیت )‪ : (ERD‬رایجترین نمایش بصری برای مدل داده مفهومی است که از عناصر زیر‬ ‫•‬

‫استفاده میکند‪:‬‬

‫مستطیلها برای موجودیت ها‬ ‫‪o‬‬

‫بیضیها برای ویژگیها‬ ‫‪o‬‬

‫لوزیها برای روابط‬ ‫‪o‬‬

‫کاردینالیته )‪ (Cardinality‬روابط‪ :‬روابط با محدودیتهای کاردینالیته (مثل یکبهچند‪ ،‬چندبهچند) همراه‬ ‫•‬

‫هستند که نحوه ارتباط نمونههای موجودیت ها را تعریف میکنند‪.‬‬

‫مثال‪ :‬یک رابطه یکبهچند در ‪ ERD‬ممکن است نشان دهد که یک مشتری میتواند چندین سفارش ثبت کند‪،‬‬ ‫•‬

‫اما هر سفارش فقط به یک مشتری مربوط است‪.‬‬

‫مراحل طراحی مدل داده مفهومی‬

‫‪ .1‬شناسایی موجودیت های کسبوکار‪ :‬یافتن و تعریف موجودیت های اصلی در بستر کسبوکار‪.‬‬

‫‪ .2‬تعریف ویژگیها‪ :‬تعیین خصوصیات کلیدی یا فیلدهای هر نهاد‪.‬‬

‫‪ .3‬ایجاد روابط‪ :‬شناسایی و تعریف نحوه ارتباط موجودیت ها با توجه به کاردینالیته‪.‬‬

‫‪ .4‬اعمال نامگذاری استاندارد‪ :‬استفاده از نامهای معنادار برای موجودیت ها‪ ،‬ویژگیها و روابط برای اطمینان از وضوح‪.‬‬

‫‪ .5‬اعتبارسنجی با ذینفعان‪ :‬بررسی مدل با ذینفعان کسبوکار تا از صحت نمایندگی نیازهای آنها اطمینان حاصل‬
‫شود‪.‬‬

‫نرمالسازی در مدل داده مفهومی‬

‫با اینکه نرمالسازی بیشتر در مدل منطقی صورت میگیرد‪ ،‬نرمالسازی اولیه میتواند در سطح مفهومی انجام شود تا‬
‫دادهها بدون افزونگی ساختاربندی شوند‪ .‬به عنوان مثال‪:‬‬
‫شناسایی و تفکیک موجودیت ها برای جلوگیری از تکرار اطالعات‪.‬‬ ‫•‬

‫اطمینان از اتمی بودن (تفکیکپذیر بودن) ویژگیها برای وضوح و سادگی در مراحل بعدی‪.‬‬ ‫•‬

‫مزایای استفاده از مدل داده مفهومی‬

‫بهبود ارتباطات‪ :‬به ذینفعان و توسعهدهندگان کمک میکند تا نیازهای دادهای را درک کنند‪.‬‬ ‫•‬

‫کاهش ابهام‪ :‬تعریفات واضح از موجودیت ها و روابط مانع از سوءتفاهمها میشود‪.‬‬ ‫•‬

‫راهنمایی برای مدلهای منطقی و فیزیکی‪ :‬مدل داده مفهومی به عنوان یک نقشه پایهای عمل میکند و به انتقال‬ ‫•‬

‫به مدلهای دقیقتر و قابل پیادهسازی کمک میکند‪.‬‬

‫محدودیتهای مدل داده مفهومی‬

‫انتزاع سطح باال‪ :‬مدل داده مفهومی به انواع دادهها‪ ،‬ایندکسگذاری‪ ،‬یا مشخصات ذخیرهسازی نمیپردازد‪ .‬این امر‬ ‫•‬

‫از نظر انعطافپذیری مزیت دارد‪ ،‬اما ممکن است برخی محدودیتهای فنی را از دست بدهد‪.‬‬

‫محدود به روابط ساده‪ :‬مدل داده مفهومی به روابط ساده موجودیت ها میپردازد؛ محدودیتهای پیچیده و قوانین‬ ‫•‬

‫پیشرفته کسبوکار در مدلهای منطقی و فیزیکی تعریف میشوند‪.‬‬

‫مقایسه مدل داده مفهومی و مدل داده منطقی‬

‫حوزه‪ :‬مدل داده مفهومی بر موجودیت ها و روابط سطح باال تمرکز دارد‪ ،‬در حالی که مدل داده منطقی )‪(LDM‬‬ ‫•‬

‫انواع داده‪ ،‬کلیدهای اصلی و خارجی و محدودیتهای جزئیتری را مشخص میکند‪.‬‬

‫انعطافپذیری‪ :‬مدل داده مفهومی از نظر پایگاه داده مستقل است‪ ،‬در حالی که مدل داده منطقی به ساختار یک‬ ‫•‬

‫‪ DBMS‬خاص نزدیکتر است‪.‬‬

‫هدف‪ :‬مدل داده مفهومی مشخص میکند چه دادهای نیاز است بدون جزئیات فنی‪ ،‬در حالی که مدل داده منطقی‬ ‫•‬

‫مشخص میکند چگونه دادهها در یک پایگاه داده خاص سازماندهی میشوند‪.‬‬


‫مدل داده مفهومی و استقالل داده‬

‫مدل داده مفهومی یک الیه استقالل داده منطقی فراهم میکند و اطمینان میدهد که تغییرات در ذخیرهسازی فیزیکی‪،‬‬
‫بر قوانین کسبوکار و روابطی که در مدل گنجانده شدهاند‪ ،‬تأثیری ندارد‪ .‬با تعریف نیازهای داده به صورت انتزاعی‪ ،‬سازمانها‬
‫یک چارچوب پایدار ایجاد میکنند که با تغییرات تکنولوژیک و مهاجرت به سیستمهای مدیریت پایگاه داده جدید‪ ،‬همچنان‬
‫کارآمد میماند‪.‬‬

‫تکامل اسکیمای پایگاه داده و مدل داده مفهومی‬

‫تکامل اسکیمای پایگاه داده شامل اصالح اسکیمای پایگاه داده بدون اختالل در برنامههای موجود است‪ .‬با یک مدل داده‬
‫مفهومی بهخوبی تعریفشده‪:‬‬

‫افزودن موجودیت ها و ویژگیهای جدید‪ :‬امکانپذیر است تا نیازهای کسبوکار در حال تغییر را منعکس کند‪.‬‬ ‫•‬

‫تنظیم روابط‪ :‬اصالح روابط‪ ،‬کاردینالیته‪ ،‬یا ویژگیها با توجه به دیدگاه سطح باالی مدل آسانتر است‪ ،‬و تکامل‬ ‫•‬

‫اسکیمای پایگاه داده را بدون تأثیرات شدید بر منطق برنامه تسهیل میکند‪.‬‬

‫زبان ‪ DML‬سطح باال )‪(High Level DML‬‬

‫زبان ‪ DML‬سطح باال یا غیر رویهای به کاربران اجازه میدهد تا مشخص کنند چه دادهای را میخواهند بازیابی کنند‬
‫بدون اینکه دقیقاً نحوه دسترسی به آن را تعیین کنند‪ .‬این نوع ‪ DML‬در جستجوهای اعالمی )‪ (Declarative‬استفاده‬
‫میشود که در آن سیستم مدیریت پایگاه داده )‪ (DBMS‬بهترین روش دسترسی به دادهها را مشخص میکند‪.‬‬

‫ویژگیهای کلیدی ‪ DML‬سطح باال‪:‬‬

‫‪ .1‬ماهیت اعالمی‪:‬‬

‫کاربران مشخص میکنند چه دادهای نیاز دارند و نه چگونه باید به آن دست یافت‪.‬‬ ‫‪o‬‬

‫تمرکز بر نتیجه نهایی است و نه فرآیند‪ ،‬که به ‪ DBMS‬اجازه میدهد تا جستجو را بهینه کند‪.‬‬ ‫‪o‬‬

‫‪ .2‬نمونه زبانها‪:‬‬
‫)‪ ،SQL (Structured Query Language‬به ویژه دستورات ‪،INSERT ،SELECT‬‬ ‫‪o‬‬

‫‪UPDATE‬و ‪DELETE‬که به صورت غیر رویهای استفاده میشوند‪.‬‬

‫این دستورات میتوانند به صورت همزمان به چندین رکورد دسترسی داشته باشند و عموماً سادهتر و‬ ‫‪o‬‬

‫کاربرپسندتر هستند‪.‬‬

‫‪ .3‬مزایای ‪ DML‬سطح باال‪:‬‬

‫سادگی در نحو‪ :‬نوشتن و درک دستورات برای کاربران آسانتر است‪.‬‬ ‫‪o‬‬

‫بهینهسازی توسط‪ : DBMS‬بهینهساز پرسوجوی ‪ DBMS‬بهترین مسیر دسترسی را مشخص میکند‪،‬‬ ‫‪o‬‬

‫که منجر به اجرای کارآمدتر پرسوجوها میشود‪.‬‬

‫افزایش بهرهوری‪ :‬کاربران نیازی به نگرانی در مورد ساختار زیرین ندارند‪ ،‬که احتمال بروز خطا در بازیابی‬ ‫‪o‬‬

‫دادهها را کاهش میدهد‪.‬‬

‫‪ .4‬مثالهایی از دستورات ‪ DML‬سطح باال در‪SQL:‬‬

‫بازیابی دادهها‪:‬‬ ‫‪o‬‬

‫;‪Select name, age From students Where age > 20‬‬

‫این دستور همه دانشجویان باالی ‪ ۲۰‬سال را بازیابی میکند‪ ،‬بدون اینکه نحوه جستجو در جدول را‬
‫مشخص کند‪.‬‬

‫درج داده‪:‬‬ ‫‪o‬‬

‫;)'‪Insert Into students (name, age, grade) Values ('John Doe', 21, 'A‬‬

‫این دستور مشخص میکند که چه دادهای باید اضافه شود بدون اینکه نحوه قرار دادن آن در پایگاه‬
‫داده را توضیح دهد‪.‬‬

‫‪ .1‬محدودیتهای ‪ DML‬سطح باال‪:‬‬

‫کنترل کمتر‪ DML :‬سطح باال کنترل کمتری بر فرآیند بازیابی دادهها فراهم میکند‪ .‬برای کاربرانی که‬ ‫‪o‬‬

‫به بهینهسازیهای خاص یا الگوهای دسترسی نیاز دارند‪ ،‬ممکن است ‪ DML‬سطح پایین ترجیح داده‬
‫شود‪.‬‬
‫پرسوجوهای پیچیده ممکن است ناکارآمد باشند‪ :‬پرسوجوهای پیچیده میتوانند منجر به اجرای‬ ‫‪o‬‬

‫برنامههای بهینهسازی نشده شوند‪ ،‬اگر بهخوبی توسط ‪ DBMS‬مدیریت نشوند‪.‬‬

‫زبان ‪ DML‬سطح پایین )‪(Low Level DML‬‬

‫زبان ‪ DML‬سطح پایین یا رویهای برای تعیین چگونگی دسترسی یا دستکاری دادهها به صورت گام به گام طراحی شده‬
‫است‪ .‬این نوع ‪ DML‬کنترل جزئیات دقیق فرآیند بازیابی و دستکاری دادهها را فراهم میکند و اجازه میدهد به صورت‬
‫رویهای با رکوردهای منفرد تعامل برقرار شود‪.‬‬

‫ویژگیهای کلیدی ‪ DML‬سطح پایین‪:‬‬

‫‪ .1‬ماهیت رویهای‪:‬‬

‫کاربران مشخص میکنند چگونه باید به دادهها دسترسی داشت‪ ،‬اغلب با توصیف مراحل خاص یا‬ ‫‪o‬‬

‫فرآیندهای تکراری‪.‬‬

‫برای استفاده مؤثر‪ ،‬کاربران نیاز به درک ساختار زیرین پایگاه داده دارند‪.‬‬ ‫‪o‬‬

‫‪ .2‬نمونه زبانها‪:‬‬

‫زبانهای دستکاری رکورد به رکورد‪ ،‬که معموالً در زبانهای برنامهنویسی رویهای همراه با ‪ SQL‬تعبیه‬ ‫‪o‬‬

‫شده (مثل ‪ )T-SQL ،PL/SQL‬استفاده میشوند‪.‬‬

‫‪ Cursor‬ها در ‪ SQL‬یک مثال متداول هستند که اجازه پردازش رکورد به رکورد را در برنامهها‬ ‫‪o‬‬

‫میدهند‪.‬‬

‫‪ .3‬مزایای ‪ DML‬سطح پایین‪:‬‬

‫کنترل بیشتر‪ :‬امکان دستکاری دقیق هر رکورد را فراهم میکند‪ ،‬که برای وظایفی که نیاز به پردازش‬ ‫‪o‬‬

‫رکورد به رکورد یا بررسیهای شرطی دارند مفید است‪.‬‬

‫بهینهسازی عملکرد‪ :‬کاربران پیشرفته میتوانند پرسوجوها را بر اساس دانش از توزیع داده و ایندکسها‬ ‫‪o‬‬

‫بهینه کنند و به عملکرد بهتری نسبت به ‪ DML‬سطح باال دست یابند‪.‬‬

‫پردازش جزئیات داده‪ :‬برای برنامههای پیچیده که نیاز به پردازش رکوردهای منفرد دارند مناسب است‪.‬‬ ‫‪o‬‬
‫‪ .4‬مثالهایی از دستورات ‪ DML‬سطح پایین در‪SQL:‬‬

‫استفاده از‪Cursor:‬‬ ‫‪o‬‬

‫‪Declare cursor_example Cusror For‬‬

‫;‪Select name, age From students Where age > 20‬‬

‫;‪Open cursor_example‬‬

‫;‪Fetch Next From cursor_example Into @name, @age‬‬

‫‪While @@FETCH_STATUS = 0‬‬

‫‪Begin‬‬

‫; )‪Print 'Student Name: ' + @name + ', Age: ' + Cast(@age As Varchar‬‬

‫; ‪Fetch Nect From cursor_example Into @name, @age‬‬

‫; ‪End‬‬

‫; ‪Close cursor_example‬‬

‫;‪DeAllocate cursor_example‬‬

‫این دستور هر رکورد در مجموعه نتایج را تکرار میکند و اجازه کنترل دقیق و دستکاری برای هر‬
‫دانشجویی که باالی ‪ ۲۰‬سال دارد را میدهد‪.‬‬

‫‪ .1‬محدودیتهای ‪ DML‬سطح پایین‪:‬‬

‫پیچیدگی‪ :‬نوشتن و درک آن پیچیدهتر است و برای کاربران عمومی کمتر مناسب است‪.‬‬ ‫‪o‬‬

‫بهینهسازی دستی الزم است‪ :‬از بهینهساز پرسوجوی ‪ DBMS‬استفاده نمیکند و کارایی آن به طراحی‬ ‫‪o‬‬

‫کاربر بستگی دارد‪.‬‬

‫زمانبر بودن‪ :‬به خطوط کد بیشتری نیاز دارد و برای عملیات حجمی داده کمتر کارآمد است‪.‬‬ ‫‪o‬‬
‫مقایسه ‪ DML‬سطح باال و سطح پایین‬

‫‪ DML‬سطح باال‬ ‫‪ DML‬سطح پایین‬ ‫جنبه‬

‫پایینتر؛ مراحل دسترسی توسط کاربر مشخص‬


‫باالتر؛ روش دسترسی انتزاعی است‬ ‫سطح انتزاع‬
‫میشود‬
‫حداقلی؛ بهینهساز ‪ DBMS‬مسیر دسترسی را‬
‫باال؛ کاربر دقیقاً مراحل را مشخص میکند‬ ‫کنترل کاربر‬
‫مشخص میکند‬

‫ساده و شهودی‬ ‫پیچیده و دقیق‬ ‫سادگی استفاده‬

‫توسط ‪ DBMS‬انجام میشود‬ ‫بهینهسازی به عهده کاربر است‬ ‫بهینهسازی‬

‫موارد استفاده‬
‫بازیابی داده عمومی‪ ،‬عملیات ساده دادهها‬ ‫دستکاری پیچیده داده‪ ،‬پردازش رکورد به رکورد‬
‫متداول‬

‫‪ INSERT ،SELECT‬و غیره در ‪SQL‬‬ ‫‪Cursor‬ها در ‪ ،SQL‬کد رویهای ‪PL/SQL‬‬ ‫مثالها‬

‫مدل داده فیزیکی )‪(Physical Data Model‬‬

‫مدل داده فیزیکی )‪ (Physical Data Model‬نشان میدهد که دادهها به صورت فیزیکی چگونه در سیستم مدیریت‬
‫پایگاه داده ذخیره میشوند‪ .‬بر خالف مدلهای داده سطح باال (مانند مدل مفهومی و منطقی) که بر ساختار و روابط دادهها‬
‫تمرکز دارند‪ ،‬مدل داده فیزیکی جزئیات ساختارهای ذخیرهسازی و روشهای بازیابی داده را مشخص میکند‪ .‬این مدل در‬
‫‪ DBMS‬اهمیت زیادی در بهینهسازی عملکرد‪ ،‬ذخیرهسازی کارآمد و بازیابی سریع دادهها دارد‪.‬‬

‫هدف مدل داده فیزیکی‬

‫مدل داده فیزیکی به منظور موارد زیر به کار میرود‪:‬‬

‫تعریف ساختارهای ذخیرهسازی‪ ،‬ایندکسها‪ ،‬مسیرهای دسترسی و سایر جنبههای فیزیکی ذخیرهسازی داده‪.‬‬ ‫•‬

‫فراهم آوردن اطالعات الزم برای طراحان پایگاه داده جهت ذخیره‪ ،‬دسترسی و مدیریت دادهها به بهترین نحو‪.‬‬ ‫•‬

‫بهینهسازی مکانیزمهای ذخیره و بازیابی داده برای کاهش هزینه و زمان عملیاتهای دادهای‪.‬‬ ‫•‬
‫اجزای مدل داده فیزیکی‬

‫‪ .1‬جداول )‪(Tablespaces‬‬
‫جداول‪ ،‬ناحیههایی هستند که در آنها جداول و ایندکسها در حافظه فیزیکی پایگاه داده ذخیره میشوند‪ .‬در‬
‫یک ‪ ،DBMS‬یک جداول میتواند چندین فایل فیزیکی را پوشش دهد که انعطافپذیری و کنترل بهتری بر‬
‫توزیع دادهها روی دستگاههای ذخیرهسازی فراهم میکند‪.‬‬

‫‪ .2‬بلوکهای داده‪ ،‬اکستنتها و سگمنتها‬

‫بلوک داده‪ :‬کوچکترین واحد ذخیرهسازی داده در ‪ DBMS‬است که معموالً تعداد مشخصی بایت دارد‪.‬‬ ‫‪o‬‬

‫بلوک داده میزان فضایی را که پایگاه داده در یک عملیات خواندن یا نوشتن استفاده میکند‪ ،‬نشان‬
‫میدهد‪.‬‬

‫اکستنت‪ :‬بلوکهای داده متوالی که برای ذخیره بخشی خاص از یک شیء پایگاه داده (مثل جدول یا‬ ‫‪o‬‬

‫ایندکس) تخصیص داده شدهاند‪.‬‬

‫سگمنت‪ :‬مجموعهای از اکستنت ها است که به یک شیء خاص پایگاه داده مانند جدول‪ ،‬ایندکس یا‬ ‫‪o‬‬

‫پارتیشن مرتبط است‪.‬‬

‫‪ .3‬فایلها و گروههای فایل‬

‫فایلهای داده‪ :‬فایلهای فیزیکی بر روی دیسک که دادههای پایگاه داده را ذخیره میکنند‪.‬‬ ‫‪o‬‬

‫گروههای فایل‪ :‬گروهبندی منطقی فایلهای داده که امکان توزیع دادهها بر روی چندین فایل را فراهم‬ ‫‪o‬‬

‫میکند و به سازماندهی و بهینهسازی بهتر ذخیرهسازی کمک میکند‪.‬‬

‫‪ .4‬ساختارهای ایندکس ایندکسها برای افزایش سرعت بازیابی دادهها با فراهم کردن مسیرهای دسترسی سریع به‬
‫دادهها استفاده میشوند‪.‬‬

‫ایندکس خوشهای )‪ : (Clustered Index‬داده را به صورت فیزیکی بر اساس کلیدهای ایندکس‬ ‫‪o‬‬

‫ذخیره میکند که برای جستجوهای مبتنی بر بازه مفید است‪.‬‬

‫ایندکس غیرخوشهای )‪ : (Non-clustered Index‬ترتیب منطقی کلیدها و اشارهگرهایی به‬ ‫‪o‬‬

‫مکانهای واقعی داده را ذخیره میکند و جستجوها را سریعتر میکند بدون تغییر ترتیب فیزیکی جدول‪.‬‬
‫‪ ،B-tree‬ایندکس هش‪ ،‬ایندکس بیتی‪ :‬انواع مختلف ساختارهای ایندکس هستند که برای نیازهای‬ ‫‪o‬‬

‫مختلف ذخیرهسازی و پرسوجو بهینه شدهاند‪.‬‬

‫‪ .5‬پارتیشنبندی‬
‫پارتیشنبندی جداول و ایندکسهای بزرگ را به بخشهای کوچکتر و قابل مدیریتتر تقسیم میکند‪ .‬انواع‬
‫پارتیشنبندی شامل موارد زیر است‪:‬‬

‫پارتیشنبندی مبتنی بر محدوده )‪ : (Range Partitioning‬داده را بر اساس محدودههای مقداری‬ ‫‪o‬‬

‫تقسیم میکند‪.‬‬

‫پارتیشنبندی هش )‪ : (Hash Partitioning‬از تابع هش برای توزیع دادهها بر روی پارتیشنها‬ ‫‪o‬‬

‫استفاده میکند‪.‬‬

‫پارتیشنبندی لیستی و ترکیبی‪ :‬از لیستهای پیشتعریفشده از مقادیر یا ترکیبی از تکنیکهای‬ ‫‪o‬‬

‫پارتیشنبندی استفاده میکند‪.‬‬

‫‪ .6‬ساختارها و پارامترهای ذخیرهسازی‬

‫مدلهای داده فیزیکی از پارامترهای ذخیرهسازی برای کنترل چگونگی ذخیره و مدیریت داده استفاده میکنند‪.‬‬
‫پارامترهای متداول شامل‪:‬‬

‫‪ :PCTFREE‬درصد فضای آزاد در یک بلوک داده را برای تطبیق بهروزرسانیها مشخص میکند‪.‬‬ ‫‪o‬‬

‫‪ :PCTUSED‬حداقل درصد استفاده شده از فضا را قبل از افزودن ردیفهای جدید تعیین میکند‪.‬‬ ‫‪o‬‬

‫‪INITRANS‬و ‪ :MAXTRANS‬تعداد تراکنشهایی که به طور همزمان میتوانند به یک بلوک‬ ‫‪o‬‬

‫داده دسترسی داشته باشند را کنترل میکند‪.‬‬

‫‪ .7‬مسیرهای دسترسی به داده مسیرهای دسترسی به داده مشخص میکنند که داده به صورت فیزیکی چگونه‬
‫دسترسی پیدا میکند‪ .‬مثالها شامل موارد زیر هستند‪:‬‬

‫اسکن کامل جدول‪ :‬تمام ردیفهای یک جدول را میخواند و معموالً زمانی استفاده میشود که هیچ‬ ‫‪o‬‬

‫ایندکسی وجود ندارد‪.‬‬

‫اسکن ایندکس‪ :‬از ایندکسها برای بازیابی داده استفاده میکند که معموالً سریعتر از اسکن کامل جدول‬ ‫‪o‬‬

‫است‪.‬‬
‫دسترسی از طریق شناسه ردیف)‪ : (Row ID‬بهصورت مستقیم با استفاده از شناسههای منحصر به‬ ‫‪o‬‬

‫فرد ردیف )‪ (ROWIDs‬دسترسی پیدا میکند که سریعترین نوع دسترسی است‪.‬‬

‫بهینهسازی مدل داده فیزیکی‬

‫بهینهسازی مدل داده فیزیکی برای کارایی پایگاه داده اهمیت دارد‪ .‬استراتژیهای کلیدی بهینهسازی شامل‪:‬‬

‫ایندکسگذاری‪ :‬انتخاب ایندکسهای مناسب برای کاهش زمان بازیابی داده در پرسوجوهای پرتکرار‪.‬‬ ‫•‬

‫غیر نرمالسازی )‪ : (Denormalization‬در مواردی که سرعت بازیابی مهم است‪ ،‬غیر نرمالسازی (ذخیره‬ ‫•‬

‫دادههای تکراری) میتواند با کاهش جداول پیوسته‪ ،‬عملکرد را بهبود بخشد‪.‬‬

‫پارتیشنبندی‪ :‬به پردازش موازی کمک میکند‪ ،‬عملیات ورودی و خروجی را کاهش میدهد و با تجزیه جداول‬ ‫•‬

‫بزرگ‪ ،‬مدیریتپذیری را بهبود میبخشد‪.‬‬

‫خوشهبندی )‪ : (Clustering‬ذخیره ردیفهای مرتبط به صورت نزدیک به یکدیگر به منظور کاهش عملیات‬ ‫•‬

‫‪ I/O‬در پرسوجوهای مرتبط‪.‬‬

‫مالحظات طراحی فیزیکی‬

‫تکرار و یکپارچگی دادهها‪ :‬تکرار فیزیکی (مانند تکرار و پشتیبانگیری) در سطح ذخیرهسازی بدون تأثیر بر قیود‬ ‫•‬

‫یکپارچگی داده که در سطح منطقی تعریف شدهاند‪ ،‬مدیریت میشود‪.‬‬

‫کنترل همزمانی‪ :‬تضمین میکند که تراکنشهای متعدد میتوانند به صورت همزمان به دادهها دسترسی داشته‬ ‫•‬

‫باشند بدون ایجاد تعارض‪ ،‬که معموالً از طریق قفلگذاری و کنترل همزمانی چندنسخهای )‪ (MVCC‬مدیریت‬
‫میشود‪.‬‬

‫تنظیم و پایش عملکرد‪ :‬شامل فعالیتهایی مانند تحلیل عملکرد پرسوجو‪ ،‬بهینهسازی مسیرهای دسترسی و‬ ‫•‬

‫تنظیم پارامترهای ذخیرهسازی بر اساس الگوهای کاری است‪.‬‬


‫مدل داده فیزیکی و استقالل داده‬

‫در زمینه استقالل داده فیزیکی‪ ،‬مدل داده فیزیکی امکان ایجاد تغییرات در ساختارهای ذخیرهسازی فیزیکی را بدون تأثیر‬
‫بر طرح منطقی یا برنامههای کاربردی فراهم میکند‪ .‬با انتزاع جزئیات ذخیرهسازی فیزیکی‪ DBMS ،‬این امکان را فراهم‬
‫میکند که طراحان بتوانند جزئیات ذخیرهسازی دادهها را تغییر دهند بدون نیاز به تغییر پرسوجوها و کد برنامهها‪.‬‬

‫نقش مدل داده فیزیکی در بهینهسازی پرسوجو‬

‫مدل داده فیزیکی نقش مهمی در بهینهسازی پرسوجو ایفا میکند‪ ،‬زیرا ‪ DBMS‬از ساختارهای فیزیکی (مانند ایندکسها‪،‬‬
‫پارتیشن بندی و توزیع داده) برای تعیین مؤثرترین راه برای دسترسی به دادهها استفاده میکند‪ .‬بهینهساز پرسوجو مدل‬
‫فیزیکی را تحلیل میکند تا تصمیم بگیرد‪:‬‬

‫روشهای پیوستن جداول‪ :‬انتخاب بین پیوستهای حلقه تودرتو‪ ،‬پیوست هش و پیوست مرتبسازی‪-‬ادغام بر‬ ‫•‬

‫اساس توزیع داده فیزیکی‪.‬‬

‫استفاده از ایندکس‪ :‬تعیین زمان استفاده از ایندکسها در مقایسه با اسکن کامل جدول بر اساس انتخابپذیری و‬ ‫•‬

‫هزینه‪.‬‬

‫طرحهای اجرایی‪ :‬تعریف نحوه دسترسی ‪ DBMS‬به داده برای یک پرسوجو با در نظر گرفتن عوامل هزینه و‬ ‫•‬

‫زمان بر اساس مدل فیزیکی‪.‬‬

‫آرایه افزونهای از دیسکهای مستقل )‪(RAID‬‬

‫‪ RAID‬یا آرایه افزونهای از دیسکهای مستقل‪ ،‬فناوریای است که چندین دیسک فیزیکی را در یک واحد منطقی ترکیب‬
‫میکند تا افزونگی داده‪ ،‬بهبود عملکرد یا هر دو را به دست آورد‪ .‬در زمینه سیستمهای مدیریت پایگاه داده )‪، (DBMS‬‬
‫‪ RAID‬برای مدیریت حجم زیادی از دادهها و اطمینان از در دسترس بودن باال‪ ،‬قابلیت اطمینان و دسترسی سریع به‬
‫دادهها بسیار مهم است‪ .‬سیستمهای ‪ RAID‬در پایگاههای داده سازمانی حیاتی هستند‪ ،‬جایی که ایمنی دادهها و سرعت‬
‫اهمیت باالیی دارند‪.‬‬

‫سطوح ‪ RAID‬بر اساس پیکربندی افزونگی و عملکرد متفاوت هستند و هرکدام توازنی منحصربهفرد ارائه میدهند که‬
‫نیازهای مختلف ‪ DBMS‬را برآورده میکند‪ .‬آشنایی با ‪ RAID‬برای مدیران پایگاه داده )‪ (DBA‬ضروری است‪ ،‬زیرا‬
‫مستقیماً بر سرعت دسترسی به دادهها‪ ،‬قابلیت اطمینان ذخیرهسازی و تحمل خطا تأثیر میگذارد که برای عملیات پایگاه‬
‫داده مهم است‪.‬‬

‫اهداف ‪ RAID‬در ‪DBMS‬‬

‫‪ RAID‬به سه هدف اصلی میپردازد که برای ‪ DBMS‬حیاتی هستند‪:‬‬

‫افزونگی داده و تحمل خطا‪ :‬تضمین میکند که دادهها حتی در صورت خرابی یک یا چند دیسک حفظ میشوند‪،‬‬ ‫•‬

‫که برای حفظ دسترسی به دادهها ضروری است‪.‬‬

‫بهبود عملکرد‪ :‬سرعتهای خواندن و نوشتن را از طریق تکنیکهایی مانند نواربندی دادهها )‪(Data Striping‬‬ ‫•‬

‫افزایش میدهد‪ ،‬که برای مدیریت حجم زیادی از تراکنشهای پایگاه داده ضروری است‪.‬‬

‫مقیاسپذیری‪ :‬پیکربندیهای ‪ RAID‬اجازه میدهند تا ظرفیت ذخیرهسازی با افزودن دیسکهای بیشتر بدون‬ ‫•‬

‫قربانی کردن عملکرد یا افزونگی گسترش یابد‪.‬‬

‫مفاهیم کلیدی در ‪ RAID‬برای ‪DBMS‬‬

‫نواربندی دادهها‪ :‬دادهها را بین چندین دیسک تقسیم میکند تا سرعت خواندن و نوشتن را بهبود بخشد‪ .‬معموالً‬ ‫•‬

‫در سطوحی مانند ‪ RAID 0‬استفاده میشود‪ ،‬جایی که بلوکهای دادهها بدون افزونگی توزیع میشوند‪.‬‬

‫آینهسازی دادهها‪ :‬دادهها را روی چندین دیسک تکرار میکند تا تحمل خطا را فراهم کند‪ .‬به عنوان مثال ‪RAID‬‬ ‫•‬

‫‪1‬دادهها را روی دو دیسک آینهسازی می کند‪ ،‬بنابراین اگر یکی خراب شود‪ ،‬دیگری حاوی یک کپی دقیق از‬
‫دادهها است‪.‬‬

‫برابری‪ :‬روشی برای بررسی خطا که قابلیت بازیابی دادهها را در صورت خرابی یک دیسک فراهم میکند‪ .‬برابری‬ ‫•‬

‫در سطوحی مانند ‪ RAID 5‬و ‪ RAID 6‬پیادهسازی شده و امکان بازسازی دادهها را با استفاده از بیتهای‬
‫برابری ذخیرهشده در دیسکها فراهم میکند‪.‬‬
‫سطوح ‪ RAID‬و کاربردهای آنها در ‪DBMS‬‬

‫سطوح مختلف ‪ RAID‬برای تأمین نیازهای متنوع تحمل خطا و عملکرد طراحی شدهاند‪ .‬در زیر سطوح پرکاربرد ‪RAID‬‬
‫در ‪ DBMS‬با توضیح دقیق عملکرد‪ ،‬مزایا و معایب آنها آورده شده است‪:‬‬

‫‪( RAID 0‬نواربندی بدون افزونگی)‬ ‫•‬

‫عملکرد‪ :‬دادهها را به بلوکهایی تقسیم کرده و این بلوکها را بین چندین دیسک توزیع میکند‪ .‬افزونگی‬ ‫‪o‬‬

‫یا تحمل خطا وجود ندارد‪.‬‬

‫مزایا‪ :‬عملکرد حداکثری‪ ،‬زیرا دادهها بهصورت همزمان روی دیسکها خوانده یا نوشته میشوند‪.‬‬ ‫‪o‬‬

‫معایب‪ :‬بدون تحمل خطا؛ اگر یک دیسک خراب شود‪ ،‬همه دادهها از بین میروند‪.‬‬ ‫‪o‬‬

‫کاربرد در ‪ :DBMS‬در شرایطی استفاده میشود که سرعت باال نسبت به قابلیت اطمینان داده ارجحیت‬ ‫‪o‬‬

‫دارد (مثالً ذخیره موقت پایگاه داده)‪.‬‬

‫‪( RAID 1‬آینهسازی)‬ ‫•‬

‫عملکرد‪ :‬دادههای مشابه را روی دو یا چند دیسک تکرار میکند‪ ،‬و در نتیجه اگر یکی خراب شود‪ ،‬دادهها‬ ‫‪o‬‬

‫روی دیگری حفظ میشوند‪.‬‬

‫مزایا‪ :‬تحمل خطای باال و سرعت خواندن باال‪ ،‬زیرا دادهها میتوانند از هر آینهای قابل دسترسی باشند‪.‬‬ ‫‪o‬‬

‫معایب‪ :‬فضای ذخیرهسازی زیادی الزم است‪ ،‬زیرا دو برابر ظرفیت ذخیرهسازی برای افزونگی نیاز است‪.‬‬ ‫‪o‬‬

‫کاربرد در‪ : DBMS‬مناسب برای پایگاههای دادهای که نیاز به دسترسی باال و قابلیت اطمینان دارند‪،‬‬ ‫‪o‬‬

‫مانند سیستمهای مالی که از دست رفتن دادهها غیرقابل قبول است‪.‬‬

‫‪( RAID 5‬نواربندی با برابری توزیعشده)‬ ‫•‬

‫عملکرد‪ :‬دادهها و اطالعات برابری بین همه دیسکها نواربندی میشوند‪ .‬اطالعات برابری برای بازیابی‬ ‫‪o‬‬

‫دادهها در صورت خرابی یک دیسک استفاده میشود‪.‬‬

‫مزایا‪ :‬توازن خوب بین عملکرد‪ ،‬تحمل خطا و کارایی ذخیرهسازی‪ .‬تنها یک دیسک اضافی برای برابری‬ ‫‪o‬‬

‫نیاز است‪.‬‬
‫معایب‪ :‬عملکرد نوشتن ممکن است به دلیل سربار محاسبه برابری تحت تأثیر قرار گیرد‪ .‬تنها میتواند‬ ‫‪o‬‬

‫یک خرابی دیسک را تحمل کند‪.‬‬

‫کاربرد در‪ : DBMS‬رایج در پایگاه های داده تراکنشی که نیاز به تحمل خطا و استفاده کارآمد از‬ ‫‪o‬‬

‫ذخیرهسازی دارند‪.‬‬

‫‪( RAID 6‬نواربندی با برابری توزیعشده دوگانه)‬ ‫•‬

‫عملکرد‪ :‬مشابه‪ ، RAID 5‬اما با برابری دوگانه که امکان بازیابی دادهها حتی در صورت خرابی دو دیسک‬ ‫‪o‬‬

‫را فراهم میکند‪.‬‬

‫مزایا‪ :‬تحمل خطای باال؛ میتواند دو خرابی دیسک را تحمل کند‪ .‬مناسب برای سیستمهای با دسترسی‬ ‫‪o‬‬

‫باال‪.‬‬

‫معایب‪ :‬کاهش عملکرد نوشتن به دلیل محاسبه برابری دوگانه‪ .‬پیچیدهتر و پرهزینهتر از‪RAID 5.‬‬ ‫‪o‬‬

‫کاربرد در‪ : DBMS‬مورد استفاده در پایگاههای داده حیاتی که نیاز به حداکثر تحمل خطا دارند‪ ،‬مانند‬ ‫‪o‬‬

‫پایگاههای داده پزشکی یا تجارت الکترونیک‪.‬‬

‫‪(RAID 1+0) RAID 10‬‬ ‫•‬

‫عملکرد‪ :‬آینهسازی )‪ (RAID 1‬و نواربندی )‪ (RAID 0‬را با هم ترکیب میکند‪ ،‬به طوری که‬ ‫‪o‬‬

‫مجموعههای آینهای ایجاد شده و سپس نواربندی میشوند‪ .‬این پیکربندی عملکرد باال و تحمل خطای‬
‫باالیی را فراهم میکند‪.‬‬

‫مزایا‪ :‬سرعت باالی خواندن‪/‬نوشتن و تحمل خطای باال‪ ،‬زیرا دادهها هم آینهسازی و هم نواربندی شدهاند‪.‬‬ ‫‪o‬‬

‫معایب‪ :‬هزینه باال‪ ،‬زیرا دو برابر ظرفیت ذخیرهسازی نیاز است‪.‬‬ ‫‪o‬‬

‫کاربرد در‪ : DBMS‬ایدهآل برای پایگاههای داده با عملکرد باال که هم سرعت و هم قابلیت اطمینان‬ ‫‪o‬‬

‫ضروری است‪ ،‬مانند سیستمهای تجاری پرسرعت‪.‬‬


‫عوامل مهم ‪ RAID‬برای پیادهسازی در ‪DBMS‬‬

‫خرابی دیسک و بازیابی داده‪ :‬سطوح ‪ RAID‬مانند ‪ RAID 5‬و ‪ RAID 6‬با استفاده از برابری‪ ،‬راهحلهایی‬ ‫•‬

‫برای خرابی دیسک ارائه می دهند‪ .‬درک زمان بازیابی و پیچیدگی فرآیندهای بازیابی در محیطهای ‪ DBMS‬با‬
‫تراکنش باال که خرابی میتواند منجر به مشکالت زیادی شود‪ ،‬ضروری است‪.‬‬

‫عملکرد نوشتن و سربار برابری‪ :‬سطوح ‪ RAID‬مبتنی بر برابری ‪ (RAID 5‬و )‪ RAID 6‬میتوانند عملکرد‬ ‫•‬

‫نوشتن را به دلیل محاسبه برابری تحت تأثیر قرار دهند‪. DBA‬ها باید ارزیابی کنند که آیا حجم کاری ‪DBMS‬‬
‫بیشتر خواندن است یا نوشتن و بر اساس آن سطح ‪ RAID‬مناسب را انتخاب کنند‪.‬‬

‫دیسکهای یدکی آماده)‪ : (Hot Spare Disks‬اینها دیسکهای اضافی در یک پیکربندی ‪ RAID‬هستند‬ ‫•‬

‫که میتوانند بهطور خودکار دیسک خراب را جایگزین کنند‪ .‬دیسکهای یدکی برای حفظ سرویس بدون وقفه‬
‫ضروری هستند‪ ،‬به ویژه در سیستمهایی که زمان کار باال مهم است‪.‬‬

‫مالحظه هزینه‪ :‬پیکربندیهای آینهسازی مانند ‪ RAID 1‬و ‪ RAID 10‬نیاز به فضای ذخیرهسازی قابل توجهی‬ ‫•‬

‫دارند‪ .‬راهحلهای مقرونبهصرفه‪ ، RAID‬مانند‪ ، RAID 5‬تعادل بین افزونگی و ظرفیت را ارائه میدهند‪ ،‬اگرچه‬
‫ممکن است تحمل خطا را فدا کنند‪.‬‬

‫ارزیابی ‪ RAID‬برای بهینهسازی عملکرد در ‪DBMS‬‬

‫پهنای باند و تاخیر‪ :‬سطوح ‪ RAID‬بر پهنای باند و تاخیر عملیات دیسک در ‪ DBMS‬تأثیر میگذارند ‪. RAID‬‬ ‫•‬

‫‪ 0‬با نواربندی بدون افزونگی بهترین پهنای باند را با کمترین تاخیر ارائه میدهد‪ ،‬در حالی که ‪ RAID 6‬ممکن‬
‫است به دلیل محاسبه برابری دوگانه تاخیر بیشتری داشته باشد‪.‬‬

‫نوع حجم کار‪ : DBMS‬کاربردهای مختلف—‪ DBMS‬تراکنشی )‪ (OLTP‬یا تحلیلی—)‪ (OLAP‬نیازهای‬ ‫•‬

‫متفاوتی از ‪ RAID‬دارند‪ .‬سیستمهای ‪ OLTP‬اغلب از ‪ RAID 1‬یا ‪ RAID 10‬برای دسترسی سریع به‬
‫دادههای پرتکرار بهره میبرند‪ ،‬در حالی که سیستمهای ‪ OLAP‬میتوانند از ‪ RAID 5‬یا ‪ RAID 6‬برای‬
‫ذخیرهسازی حجم زیادی از دادهها با هزینه کم استفاده کنند‪.‬‬

‫نیازهای قابلیت اطمینان‪ :‬کاربردهای ‪ DBMS‬حیاتی که از دست دادن دادهها در آنها غیرقابل قبول است‪ ،‬باید‬ ‫•‬

‫سطوح ‪ RAID‬با تحمل خطای باال مانند ‪ RAID 1‬یا ‪ RAID 6‬را در اولویت قرار دهند‪ .‬این انتخاب بسته به‬
‫توازن قابل قبول بین هزینه‪ ،‬افزونگی و عملکرد خواهد بود‪.‬‬
‫مزایا و معایب ‪ RAID‬در‪DBMS‬‬

‫مزایا‪:‬‬ ‫•‬

‫بهبود عملکرد‪ :‬از طریق نواربندی و آینهسازی‪ RAID ،‬سرعتهای خواندن و نوشتن را افزایش میدهد‪.‬‬ ‫‪o‬‬

‫تحمل خطا‪ :‬برخی از سطوح ‪ RAID‬تضمین میکنند که دادهها حتی در صورت خرابی دیسک قابل‬ ‫‪o‬‬

‫بازیابی هستند‪.‬‬

‫بهبود مقیاسپذیری‪ :‬سیستمهای ‪ RAID‬اجازه میدهند تا به راحتی فضای ذخیرهسازی اضافه شود و‬ ‫‪o‬‬

‫مقیاسپذیری ‪ DBMS‬را تسهیل میکنند‪.‬‬

‫معایب‪:‬‬ ‫•‬

‫پیچیدگی و هزینه‪ :‬پیکربندیهای ‪ ،RAID‬به ویژه ‪ RAID 10‬و‪ ، RAID 6‬میتوانند از نظر‬ ‫‪o‬‬

‫ذخیرهسازی و نیازهای سختافزاری پرهزینه باشند‪.‬‬

‫پتانسیل گلوگاه نوشتن‪ :‬محاسبات برابری در ‪ RAID 5‬و ‪ RAID 6‬ممکن است تاخیرهایی در عملیات‬ ‫‪o‬‬

‫نوشتن ایجاد کند‪.‬‬

‫مصرف بیشتر برق‪ :‬تنظیمات ‪ ،RAID‬به ویژه آنهایی که دارای تعداد زیادی دیسک هستند‪ ،‬مصرف‬ ‫‪o‬‬

‫برق بیشتری دارند که میتواند هزینههای عملیاتی را افزایش دهد‪.‬‬


RAID ‫نوع‬ ‫نحوه چیدمان دادهها‬ ‫افزونگی‬ ‫تحمل خطا‬ ‫سرعت خواندن‬ ‫سرعت نوشتن‬
RAID 0
RAID 1
RAID 2
RAID 3
RAID 4
RAID 5
RAID 6
RAID 10
RAID 01
RAID 50
RAID 60
RAID 1E
RAID DP
RAID Z
RAID 100 ‫ تودرتو مانند‬RAID
‫بهرهوری ذخیرهسازی‬ ‫کاربرد ایدهآل در پایگاه دادهها‬

You might also like