11 روش برتر برای طراحی پایگاه داده
مهمترین دستورات طراحی پایگاه داده چیست؟ اطمینان حاصل کنید که هر یک از طرح های شما با این مجموعه از بهترین روش ها برای طراحی پایگاه داده مطابقت دارد و پایگاه داده شما همیشه روان و سریع اجرا می شود.
برای تبدیل شدن به یک طراح پایگاه داده، باید زمان و تلاش زیادی را صرف کنید. برای یادگیری طراحی پایگاه داده، باید دوره ها را بگذرانید، مدرک بگیرید، کتاب بخوانید، با آخرین روندها همراه باشید و تمرین زیادی داشته باشید. در نهایت، شما قادر خواهید بود برای هر نیازی که پیش روی شما قرار می گیرد، مدل های داده ایجاد کنید.
اما حتی زمانی که تمام این مسیر را طی کرده اید و تمام وقت خود را وقف طراحی پایگاه داده کرده اید، حتی زمانی که تمام مهارت های مورد نیاز یک مدل ساز داده را کسب کرده اید، کاملاً از اشتباه در امان نیستید. و اشتباهاتی که در طراحی یک پایگاه داده انجام می شود، زمانی که به یک پایگاه داده فعال راه پیدا می کنند، اصلاح آنها بسیار دشوار و پرهزینه است.
بنابراین، ایده خوبی است که همیشه فهرستی از دستورات طراحی پایگاه داده را در دسترس داشته باشید. قبل از ارائه یک طرح کامل برای تبدیل شدن به یک پایگاه داده، همیشه آن فهرست دستورات را بخوانید – یا به عبارت صحیح تر، لیست بهترین روش ها برای طراحی پایگاه داده – و بررسی کنید که طرح شما با همه آنها مطابقت دارد.
چاپ این لیست از بهترین روش ها برای طراحی پایگاه داده و آویزان کردن آن بر روی دیوار در دفتر کارتان به گونه ای که همیشه آنها را در معرض دید داشته باشید، ضرری ندارد. به این ترتیب، هر بار که می خواهید یک طراحی پایگاه داده را ارائه دهید، مرور آنها را فراموش نمی کنید. به علاوه، به شما در مقابله با چالشهای مدلسازی داده که هر روز با آن روبرو هستید، کمک میکند.
۱۱ روش برتر طراحی پایگاه داده
1- برای هر مدل 3 نمودار ایجاد کنید: مفهومی، منطقی و فیزیکی
خیلی وقت ها وسوسه می شویم که نمودارهای مفهومی و منطقی را نادیده بگیریم و برای صرفه جویی در وقت مستقیماً به سراغ نمودار فیزیکی برویم. زمانی که با رد کردن نمودارهای مفهومی و منطقی “ذخیره” کردید، مطمئناً در آینده، زمانی که مجبور شوید تغییراتی در مدل ایجاد کنید، از بین خواهد رفت. و اگر شخص دیگری نیاز به اصلاح مدل شما داشته باشد، زمان بسیار بیشتری را برای درک مبانی عملکردی و مفهومی مدلهای داده شما تلف میکند.
بهترین کار در اینجا این است که هر بار که باید در مدل داده تغییراتی ایجاد کنید، ابتدا روی نمودار مفهومی، سپس روی نمودار منطقی و در نهایت روی نمودار فیزیکی کار کنید. ابزارهایی مانند VERTABELO با تسهیل انتقال از نمودار مفهومی به منطقی و از نمودار منطقی به فیزیکی، این عمل خوب را ترویج می کنند.
همچنین باید مطمئن شوید که نمودار پایگاه داده شما برای هر کسی که نیاز به استفاده از آن دارد به راحتی قابل خواندن است. برای این کار، پیشنهاد میکنم این سری نکات برای بهبود طرحبندی دیاگرام پایگاه داده خود را بخوانید.
2 – از یک قرارداد نامگذاری پیروی کنید
قبل از ارائه یک طرح پایگاه داده، مطمئن شوید که طرح دارای یک قرارداد نامگذاری طرح پایگاه داده صریح است. بررسی کنید که همه نامهای جدول، ستون، نما و دیگر اشیاء پایگاه داده با آن قرارداد نامگذاری مطابقت داشته باشند.
حفظ یک قرارداد نامگذاری باید در فهرست بهترین شیوه های هر طراح برای مدل سازی داده ها باشد. اهمیت یک قرارداد نامگذاری بسیار فراتر از یک موضوع زیبایی شناسی یا آراستگی است. هنگامی که پایگاه داده عملیاتی شد، نام اشیاء در پایگاه داده را نمی توان تغییر داد. ایجاد تغییرات در نام ها می تواند باعث خرابی برنامه هایی شود که از پایگاه داده استفاده می کنند یا محدودیت های لازم برای حفظ یکپارچگی اطلاعات را از بین ببرد. علاوه بر این، یک قرارداد نامگذاری درک مدل داده را آسان تر می کند و کار را برای برنامه نویسانی که باید برای دسترسی به داده ها کد بنویسند، ساده می کند.
قرارداد نامگذاری باید صریح باشد. این ایده خوبی است که از حاشیه نویسی در ERD های خود استفاده کنید (Entity Relationship Diagram). در این یادداشت ها، مطمئن شوید که قراردادهای استفاده شده در مدل به دقت دقیق هستند.
3- مستندات را به روز نگه دارید
علاوه بر اینکه همیشه نسخه های مفهومی، منطقی و فیزیکی مدل داده را به روز نگه دارید، باید اسنادی را که مدل داده خود را همراهی می کند نیز به روز نگه دارید. این مستندات میتواند یک فرهنگ لغت داده در یک سند جداگانه باشد یا میتواند در یادداشتهای پیوست شده به ERDهای شما باشد، مانند یادداشتهای متنی درون نمودار که قبلاً ذکر کردیم.
4-از مدل سازی استفاده کنید
تغییرات ایجاد شده در مدل داده باید نسخه جدیدی از آن ایجاد کند و نسخه قبلی را برای مرجع و ردیابی نگه دارد. یک پایگاه داده می تواند توسط چندین برنامه استفاده شود، و تغییر در یک پایگاه داده تقریباً همیشه مستلزم تغییر در برنامه هایی است که از آن استفاده می کنند.
با استفاده از نسخه سازی مدل، هر توسعه دهنده می تواند تغییرات بین نسخه های مختلف طراحی پایگاه داده را مشاهده کند. به این ترتیب، آنها می دانند که چه تغییراتی باید در برنامه ها ایجاد شود تا آنها را با هر نسخه جدید پایگاه داده تطبیق دهند.
5- نوع داده و اندازه مناسب را برای هر ستون تنظیم کنید
هنگام ایجاد یک ERD فیزیکی، باید دقیقاً نوع داده هر ستون را تعیین کنید. اگر دادههای حروف الفبا هستند، باید به صراحت حداکثر تعداد کاراکترهایی را که ستون میپذیرد تعیین کنید. اگر عددی است، باید تعداد ارقام صحیح و اعشاری – یا در مورد اعداد ممیز شناور، تعداد ارقام دقیق را تنظیم کنید. یک مهارت اساسی طراحی پایگاه داده که باید داشته باشید، توانایی تعیین بهترین نوع و اندازه داده برای هر فیلد در یک پایگاه داده است.
هیچ گزینه ای برای تنظیم اندازه های تقریبی وجود ندارد. اگر ستونی را با ظرفیت کمتر از نیاز آن تعریف کنید، در برنامه هایی که از پایگاه داده استفاده می کنند خطاهایی رخ می دهد. اگر ستونی با ظرفیت بیش از حد تعریف کنید، فضای اشغال شده توسط پایگاه داده بیشتر از حد لازم خواهد بود که ممکن است مشکلات عملکردی ایجاد کند.
6- در صورت معامله، عادی سازی کنید. اگر ابعادی است، غیرعادی کنید
مدل های داده بسته به کاربرد مورد نظرشان می توانند به صورت تراکنشی یا بعدی طراحی شوند. مدلهای تراکنش برای پشتیبانی از سیستمهایی ایجاد میشوند که تراکنشهای آنلاین را مدیریت میکنند، مانند تجارت الکترونیک یا برنامههای رزرو بلیط. از سوی دیگر، مدلهای بعدی برای کاربردهای تحلیل دادهها مانند هوش تجاری یا ابزارهای تحلیل مالی طراحی شدهاند. نکات مختلف مدل سازی پایگاه داده برای هر یک از این دو نوع مدل اعمال می شود.
در مدلهای تراکنشی، حفظ یکپارچگی اطلاعات و اجتناب از ناهنجاریها در فرآیندهای درج، بهروزرسانی یا حذف دادهها حیاتی است. به همین دلیل است که نرمال سازی باید برای هر مدل داده ای برای برنامه های کاربردی تراکنش اعمال شود، و مطمئن شوید که مدل در 1NF، 2NF و 3NF عادی شده است. این کار از مشکلات یکپارچگی جلوگیری می کند، افزونگی را کاهش می دهد و فضای ذخیره سازی اشغال شده توسط پایگاه داده را بهینه می کند.
در مدلهای بعدی، مهمترین نکته سادهسازی و تسریع دسترسی به اطلاعات خلاصهشده است. درج، به روز رسانی و حذف پایگاه داده توسط فرآیندهای خودکار و کنترل شده انجام می شود، بنابراین بعید است که این عملیات به یکپارچگی داده ها آسیب برساند. برای دستیابی به سادگی و سرعت در به دست آوردن اطلاعات، از تکنیک های غیرعادی سازی استفاده می شود. اینها افزونگی را برای ساده کردن پرس و جوها اضافه می کنند.
7 – به همه جداول یک کلید اصلی بدهید
کلیدهای اصلی برای شناسایی منحصر به فرد هر ردیف در جدول استفاده می شود. اگر جدولی را بدون کلید اصلی در مدل داده خود رها کنید، در معرض خطر ظاهر شدن ردیفهای تکراری در آن جدول قرار میگیرید که باعث میشود پرسوجوها در آن جدول اطلاعات نادرست یا متناقض را برگردانند. علاوه بر این، ردیفهای تکراری در یک جدول میتواند باعث خرابی برنامههایی شود که از پایگاه داده استفاده میکنند. برای اطلاعات بیشتر، در مورد کلید اصلی چیست و چه کاری انجام می دهد، بخوانید.
کلید اصلی از مقادیر null در ستون های مؤلفه خود پشتیبانی نمی کند. هنگام تعریف یک کلید اصلی در جدول، سیستم مدیریت پایگاه داده به طور خودکار یک شاخص توسط فیلدهایی که کلید را تشکیل می دهند ایجاد می کند که به بهبود عملکرد پرس و جو کمک می کند.
از نظر فنی، میتوانید با استفاده از نمایههای منحصربهفرد و ستونهای غیر قابل تهی، کلید اصلی را کنار بگذارید. شما حتی می توانید نتایج یکسانی را از نظر عملکرد و یکپارچگی بدست آورید. اما با این وجود، جداول شما همچنان باید کلید اصلی خود را داشته باشند.
کلید اصلی یک جدول، تفسیر مدل داده را تسهیل می کند. هر برنامه نویسی که باید کدی بنویسد که با پایگاه داده تعامل داشته باشد، با دیدن کلید اصلی جدول، درک بهتری از نحوه دسترسی به جدول خواهد داشت.
فکر نکنید که مدل داده شما تغییر ناپذیر است. باید در مقطعی تغییراتی در آن ایجاد کنید. وقتی زمان انجام تغییرات فرا می رسد، وجود کلیدهای اولیه در همه جداول باعث می شود که شما در انتقال طرح و داده های آن به نسخه جدید دچار سردرد شوید.
8- زمانی که منطقی است از کلیدهای جایگزین استفاده کنید
دلایل متعددی وجود دارد که افزودن کلید SURROGATE PRIMARY به جدول را توجیه می کند:
- جدول مجموعه ای از ستون ها ندارد که بتواند هر سطر را به طور منحصر به فرد شناسایی کند.
- ستونهایی که کلید اصلی طبیعی را تشکیل میدهند، از نظر نوع دادههایشان بسیار زیاد یا پیچیده هستند.
- کلید اصلی طبیعی بسیار بزرگ است (به عنوان مثال VARCHAR 1000 کاراکتری).
- داده های تشکیل دهنده کلید اولیه طبیعی مستعد تغییرات مکرر هستند.
- داده هایی که کلید اولیه طبیعی را تشکیل می دهند، اطلاعات حساس یا خصوصی را نشان می دهند.
علاوه بر شرایط فوق، افزودن کلید اصلی جایگزین می تواند عملکرد شاخص را بهبود بخشد. کلیدهای اصلی همیشه با یک شاخص همراه هستند. اگر دادههای نمایهسازیشده ساده و کوچک باشند (مثلاً یک نوع داده INT)، ایندکس بسیار کارآمدتر است و فضای ذخیرهسازی کمتری نسبت به زمانی که دادههای نمایهشده پیچیده یا بزرگ هستند، اشغال میکند.
برخی از طراحان مستقیماً تصمیم می گیرند یک کلید اصلی جایگزین را به همه جداول اضافه کنند، صرف نظر از اینکه به آن نیاز دارند یا نه. این کار تصمیم گیری را در هر مورد صرفه جویی می کند، اما نقطه ضعف تولید اطلاعات تکراری را دارد – یعنی ردیف های یکسانی که فقط در کلید جایگزین متفاوت هستند. این می تواند مشکلات مشابهی را در ناهماهنگی داده ها ایجاد کند که گویی کلید اولیه وجود ندارد. به همین دلیل است که تصمیم برای استفاده از کلیدهای اصلی جایگزین یا طبیعی بی اهمیت نیست. باید با توجه به ویژگی های هر جدولی که طراحی می کنید به دقت آنالیز شود.
9 – کلیدهای خارجی را برای روابط تعریف کنید
هنگامی که دو جدول توسط یک یا چند ستون به هم مرتبط هستند، یک محدودیت کلید خارجی باید بین آنها وجود داشته باشد. اگر عبارت “کلید خارجی” برای شما جدید است، ممکن است بخواهید ابتدا در مورد ورودی و خروجی کلیدهای خارجی مطالعه کنید.
وجود کلیدهای خارجی بین فیلدهای جداول مرتبط، تحقق چندین شرط را تضمین می کند:
- برای هر سطر در جدول ثانویه رابطه، یک و تنها یک سطر متناظر در جدول اصلی وجود دارد. در رابطه یک به چند، جدول اصلی در کنار ضلع “یک” و جدول ثانویه در کنار ضلع “تعدادی” ظاهر می شود.
- سطرهایی در جدول اصلی که دارای ردیف های مرتبط در جدول ثانویه هستند قابل حذف نیستند.
- جدول اصلی دارای یک شاخص منحصر به فرد است که توسط ستون یا ستون هایی تشکیل شده است که آن را به جدول ثانویه پیوند می دهد.
محدودیت های کلید خارجی به حفظ یکپارچگی در طرحواره ها با جداول مرتبط کمک می کند. در مثال بالا، محدودیتها به شما اجازه نمیدهند ردیفهایی را از WorkingStatus، Departments، یا Position حذف کنید، اگر ردیفهای مرتبط در Employees وجود داشته باشد.
این شرایط یکپارچگی و سازگاری اطلاعات را با پیوند دادن هر دو جدول تضمین می کند، که به نوبه خود تضمین می کند که الزامات عملکردی که باعث ایجاد رابطه بین جداول شده است، برآورده می شود.
10 – اضافه کردن شاخص به برنامه ریزی برای عملکرد
ایندکس ها ساختارهای داده ای هستند که به شما امکان می دهند اطلاعات را با سرعت بیشتری در جدول پیدا کنید. همانطور که فهرست یک کتاب به خواننده اجازه میدهد مستقیماً به یک صفحه خاص برود، فهرست به شما امکان میدهد بدون نیاز به جستجو در تمام ردیفها، یک ردیف را در یک جدول پیدا کنید. برای اطلاعات بیشتر در مورد این موضوع، در مورد اینکه شاخص پایگاه داده چیست، بخوانید.
ایندکس ها را می توان زمانی ایجاد کرد که یک پایگاه داده از قبل در حال اجرا باشد، یعنی برای رفع مشکلات کندی. این امر مستلزم بررسی فعالیت پایگاه داده، تعیین اینکه کدام کوئری ها باعث کندی سرعت می شوند و تجزیه و تحلیل جداول و ستون هایی که توسط آن کوئری ها قابل دسترسی هستند، می باشد. با این حال، طراح پایگاه داده می تواند این وضعیت را با تعریف نمایه های پیشاپیش بر روی جداول و ستون های خاص پیش بینی کند.
چگونه می توان نیاز به نمایه ها را هنگام طراحی پایگاه داده پیش بینی کرد؟ برای شروع، همه کلیدهای اصلی و خارجی باید دارای شاخص های مرتبط با آنها باشند. این معمولا به طور خودکار توسط موتور پایگاه داده مراقبت می شود. اما اگر موتور شما به طور خودکار آن را کنترل نکند، لازم است که برای همه کلیدهای اصلی و خارجی در طرح نمایه ایجاد کنید.
سپس لازم است جداول و ستون هایی با کاردینالیته بالا در نظر گرفته شود. برای این جداول، لازم است تجزیه و تحلیل شود که کدام ستون ها کاندیدای استفاده به عنوان فیلتر جستجو، معیار انتخاب یا معیار گروه بندی هستند. پس از تعیین ستونها، میتوانید با زیرمجموعههای مربوطه آن ستونها فهرستهایی ایجاد کنید. به عنوان مثال، در یک جدول Orders که درخواست های زیادی توسط مشتری و تاریخ دریافت می کند، ایجاد یک شاخص برای هر یک از این دو ستون بسیار منطقی است.
11 – پارتیشن بندی طرحواره های بزرگ
وقتی یک طرحواره به حدی رشد می کند که خواندن و درک آن دشوار می شود، زمان تقسیم آن فرا رسیده است. پارتیشن بندی طرحواره به شما این امکان را می دهد که اشیایی را که آن را تشکیل می دهند به مناطق گروه بندی کنید.
به عنوان مثال، در طرحی که داده ها را برای چندین برنامه کاربردی فراهم می کند، می توان پارتیشن هایی ایجاد کرد تا اشیاء مربوط به هر برنامه را در کنار هم نگه دارد. این می تواند علاوه بر پارتیشنی باشد که اشیاء مشترک برای همه برنامه ها را گروه بندی می کند.
مدل سازی پایگاه داده عالی یک تعهد مداوم است
با این لیست از بهترین شیوه های مدل سازی پایگاه داده، می توانید مطمئن باشید که طرح های پایگاه داده شما قوی و بادوام خواهند بود.
با این حال، برای ماندن در مسیر موفقیت، باید این بهترین شیوهها را برای طرحوارههای جدید به کار ببرید. همچنین باید تأیید کنید که برای هر تغییری که در هر یک از طرحوارههای موجود خود انجام میدهید، آنها همچنان دنبال میشوند. بنابراین این لیست را چاپ کنید و به یاد داشته باشید: برای اینکه یک مدل ساز عالی داده باشید، نیاز به تعهد مداوم دارد!
مقاله های مرتبط:
1- توسعه پایگاه داده استاندارد SQL Server
2- کارشناس پایگاه داده کیست؟
3- کدام پایگاه داده برای یادگیری ماشینی بهتر است؟
4-داشبورد سازی در نرم افزار تبلو و تجسم داده ها