چرا دانشجویان مهندسی نرم‌افزار باید شناخت دقیقی در مورد طراحی اصولی پایگاه داده داشته باشند؟
طراحی پایگاه داده (Database) چیست؟
در این مقاله قصد داریم به یکی از مهم‌ترین پرسش‌های دانشجویان رشته مهندسی نرم‌افزار پاسخ دهیم و به واکاوی این موضوع بپردازیم که طراحی پایگاه داده چیست. نکته‌ای که بسیاری از کاربران از آن بی‌اطلاع هستند فلسفه طراحی پایگاه‌های داده‌‌ای است. پایگاه‌های داده‌ای بزرگ بر مبنای علمی به‌نام هستی‌شناسی پیاده‌سازی می‌شوند. یک مهندس نرم‌افزار ضمن آن‌که باید در ارتباط با چگونگی تعامل با پایگاه‌های داده اطلاعات کافی داشته باشد، گاهی اوقات مجبور است برای پاسخ‌گویی به نیازهای سازمان بانک‌های اطلاعاتی را طراحی کند. با توجه به این‌که پایگاه‌های داده در حوزه‌های مختلف مثل یادگیری ماشین به شکل گسترده استفاده می‌شوند، بنابراین مهم است شناخت دقیقی در ارتباط با مفهوم طراحی پایگاه داده داشته باشید.

درس طراحی پایگاه داده در مقطع کاردانی، کارشناسی و کارشناسی ارشد

طراحی پایگاه داده یکی از دروسی است که دانشجویان مقطع پیوسته و ناپیوسته کارشناسی و کارشناسی ارشد نرم‌افزار در دروس اصلی این رشته با آن آشنا می‌شوند. دانشجویان در مقاطع کاردانی و کارشناسی با اصول اولیه طراحی پایگاه‌های داده آشنا می‌شوند و در مقطع کارشناسی ارشد جزییات پیشرفته‌تر را می‌آموزند. از سرفصل‌های مهم درس اصول طراحی پایگاه داده که منبع آن کتاب مفاهیم بنیادین پایگاه داده نوشته محمد تقی روحانی رانکوهی است باید به مفهوم سیستم مدیریت پایگاه داده (Database Management System)، مفهوم داده، اطلاعات و دانش، مفهوم پایگاه داده، مولفه‌های پایگاه داده، انواع رابطه‌ها و خصوصیات آن‌ها، رده‌بندی صفت‌ها، مفهوم ساختار داده و انواع آن، مدل‌سازی با روش نهاد-رابطه (Entity-Relationship)، مدل‌سازی با روش نهاد-رابطه بهبود‌یافته (Enhanced Entity–Relationship)، تخصیص و تعمیم، مدل‌سازی معنایی، مدل‌سازی با رویکرد زبان مدل‌سازی یکپارچه، معرفی زبان پرسمان ساخت‌یافته، معماری پایگاه داده و انواع آن، طبقه‌بندی انواع سامانه‌های مدیریت پایگاه داده، مزایا و معایب سیستم‌های مدیریت پایگاه داده، مفاهیم مدل داده رابطه‌ای، جبر رابطه‌ای و حساب رابطه‌ای، طراحی منطقی پایگاه داده و طراحی فیزیکی پایگاه داده اشاره کرد. 

همان‌گونه که مشاهده می‌کنید دانشجویان مقطع کارشناسی و کارشناسی ارشد با تمامی مفاهیم مهم این حوزه آشنا می‌شوند، هرچند برای تسلط بر هر یک از مفاهیم مذکور به صرف زمان قابل توجهی نیاز است. 

پایگاه داده چیست؟

پایگاه داده مجموعه‌ای سازمان‌دهی شده از داده‌ها است که در قالب فایل‌های دودویی یا متنی روی سامانه‌های کامپیوتری ذخیره می‌شوند و به شرکت‌ها اجازه می‌دهند به شکل دقیق و هدفمند به اطلاعات تجاری دسترسی داشته باشند. امروزه پایگاه‌های داده شکل پیچیده و پیشرفته‌ای به خود گرفته‌اند، بر همین اساس به مدل‌سازی رسمی برای طراحی آن‌ها نیاز است. طراحی پایگاه داده باید به گونه‌ای باشد که سامانه مدیریت پایگاه داده (DBMS) سرنام Database Management System (نرم‌افزاری که کاربر نهایی، برنامه‌های کاربردی و خود پایگاه داده برای ثبت و تحلیل داده‌ها به آن نیاز دارند) بتواند بدون مشکل با آن ارتباط برقرار کند. 

طراحی پایگاه داده چیست؟

طراحی پایگاه داده به سازمان‌دهی داده‌ها بر مبنای مدل پایگاه داده اشاره دارد. طراح پایگاه داده مشخص می‌کند چه داده‌هایی باید ذخیره‌سازی شوند و مولفه‌های داده‌ای بر مبنای چه الگویی با یکدیگر ارتباط برقرار کنند تا فرآیند پردازش و دسترسی به اطلاعات ساده شود. طراحی پایگاه داده شامل طبقه‌بندی و شناسایی ارتباطات متقابل است که به آن هستی‌شناسی (Ontology) می‌گویند. هستی‌شناسی نظریه پنهان در پس طراحی پایگاه‌های داده است. طراحی پایگاه‌های داده‌ای به مجموعه فرآیندهایی اشاره دارد که طراحی، توسعه، پیاد‌ه‌سازی و نگهداری سامانه‌های مدیریت داده‌های تجاری را ساده می‌کنند. یک پایگاه داده‌ خوب، سازگاری داده‌ها را بهبود می‌بخشد و بیهوده فضای ارزشمند ذخیره‌سازی را هدر نمی‌دهد. به همین دلیل، وظیفه اصلی طراح پایگاه داده مشخص کردن نحوه تعامل مولفه‌های پایگاه داده با یکدیگر و تعیین داده‌هایی است که باید ذخیره‌سازی شوند. طراحی پایگاه داده روی دو نکته بسیار مهم مدل طراحی فیزیکی و مدل طراحی منطقی تاکید دارد. مدل منطقی روی نیازمندی‌های داده‌ای متمرکز است، اما چگونگی ذخیره‌سازی داده‌ها را شامل نمی‌شود. مدل فیزیکی روی ترجمه (تبدیل) مدل منطقی پایگاه داده در یک رسانه فیزیکی (محلی یا ابری) با استفاده از منابع سخت‌افزاری و نرم‌افزاری (DBMS) متمرکز است. 

مدل‌سازی طراحی پایگاه داده چیست؟

اولین مسئولیت طراح پایگاه داده ساخت یک مدل داده مفهومی است که ساختار اطلاعاتی که قرار است در پایگاه داده ذخیره‌سازی شوند را نشان می‌دهد. به‌طور معمول، طراحان پایگاه داده برای مدل‌سازی مفهومی از رویکرد نهاد-رابطه (Entity-Relationship) و ابزارهای مخصوصی نظیر زبان مدل‌سازی یکپارچه (UML) سرنام Unified Modeling Language استفاده می‌کنند. یک مدل داده موفق به شکل دقیقی وضعیت جهان خارجی که مدل‌سازی شده را نشان می‌دهد. به‌طور مثال، اگر در دنیای واقعی افراد بتوانند بیش از یک شماره تلفن داشته باشند، یک مدل مفهومی باید نشان دهد که پایگاه داده می‌تواند برای یک فرد بیش از یک شماره تلفن را ثبت کند. بر همین اساس قبل از طراحی یک مدل مفهومی باید نیازمندهای کسب‌وکار به درستی درک شده باشند تا مدل بر مبنای اطلاعات واقعی و نه مفروضات طراحی شود. برای دریافت چنین اطلاعاتی، طراح پایگاه داده باید پرسش‌های عمیقی که همسو با اهداف سازمان و پایگاه داده‌ای است که قرار است پیاده‌سازی شود را آماده کند. گاهی اوقات در زمان طراحی یک مدل مفهومی باید از داده‌هایی که ارتباط مستقیمی با فرآیندهای کسب‌وکار یا جریان کاری سازمان دارند استفاده شود. این‌کار به طراح پایگاه داده کمک می‌کند تا ملزومات موردنیاز پایگاه داده را به درستی ارزیابی کند و بداند چه موضوعاتی مهم هستند و از چه موضوعاتی باید صرف‌نظر کرد. هنگامی که فرآیند ساخت مدل داده مفهومی به پایان رسید و کاربر از آن راضی بود، در مرحله بعد باید مدل به طرح‌واره پایگاه داده (Database Schema) ترجمه شود که برخی منابع به این فرآیند طراحی منطقی پایگاه داده می‌گویند. خروجی این مرحله که مدل داده منطقی نام دارد در قالب یک طرح‌واره ارائه می‌شود. در شرایطی که مدل داده‌ای، مفهومی مستقل از فناوری است که پایگاه داده بر مبنای آن ساخته می‌شود، مدل داده منطقی به شکل یک مدل پایگاه داده خاص توصیف می‌شود که توسط سامانه مدیریت پایگاه داده پشتیبانی می‌شود. رایج‌ترین الگویی که طراحان برای ساخت از آن استفاده می‌کنند مدل رابطه‌ای است که به وسیله زبان SQL ارائه می‌شود. فرآیند طراحی پایگاه داده منطقی با استفاده از مدل مذکور مبتنی بر روش نرمال‌سازی (Normalization) است. هدف از نرمال‌سازی اطمینان از این موضوع است که اطلاعات تنها در یک مکان ذخیره می‌شوند و هنگامی که عملیات مختلف نظیر درج، به‌روزرسانی و حذف به شکل خودکار یا دستی انجام می‌شود، سازگاری در پایگاه داده حفظ می‌شود. آخرین گام در فرآیند طراحی پایگاه داده، تصمیم‌گیری در ارتباط با عملکرد، گسترش‌پذیری، بازیابی پس از حادثه و امنیت است که تاثیر مستقیمی روی ساخت پایگاه داده دارند و ارتباط مستقیمی با سامانه مدیریت پایگاه داده‌ای دارند که قرار است برای میزبانی از آن استفاده شود. تمامی این موارد تحت عنوان طراحی پایگاه داده فیزیکی (Physical Database Design) از آن‌ها نام برده می‌شود که خروجی مدل داده فیزیکی را مشخص می‌کنند. موضوع مهمی که مرحله مذکور بر آن تاکید دارد این است که تصمیمات اتخاذ شده در ارتباط با بهینه‌سازی عملکرد باید برای کاربر نهایی و برنامه‌های کاربردی که قرار است از پایگاه داده استفاده می‌کنند قابل مشاهده باشد. 

طراحی فیزیکی پایگاه داده چیست؟

طراحی فیزیکی پایگاه داده پیکربندی فیزیکی پایگاه داده روی رسانه ذخیره‌ساز را مشخص می‌کند. در فرآیند طراحی فیزیکی پایگاه داده، انواع داده، گزینه‌های شاخص‌گذاری، جزییات مربوط به عناصر داده‌ای، مشخصات سخت‌افزاری رسانه، نرم‌افزارهای کاربردی و جزییات مرتبط با سایر مولفه‌های پایگاه داده و سامانه مدیریت پایگاه داده بررسی می‌شوند. از مهم‌ترین جنبه‌هایی که طراحی فیزیکی پایگاه داده روی آن‌ها تاکید دارد باید به موارد زیر اشاره کرد: 

  •  امنیت: ‌امنیت کاربر نهایی و امنیت حساب کاربری مدیر پایگاه داده در چه سطحی قرار دارد؟
  •  تکثیر: چه بخش‌هایی از داده‌ها باید در پایگاه داده ثانویه کپی شوند و این فرآیند در چه بازه‌های زمانی انجام می‌شود؟ 
  • دسترسی‌پذیری بالا: فارغ از پیکربندی فعال (Active) یا غیرفعال (Passive)، هم‌بندی و طرح‌واره به تمامی الزامات تجاری مدنظر مشتری پاسخ می‌دهند. پرسش مهمی که طراح باید به آن پاسخ دهد این است که آیا دسترس‌پذیری به پایگاه داده در بالاترین سطح وجود دارد؟ 
  •  بخش‌بندی: اگر قرار است پایگاه داده به شیوه توزیعی پیاده‌سازی شود، آیا یک نهاد یکتا تعریف شده و فرآیند توزیع داده در تمامی بخش‌های پایگاه داده به درستی انجام شده است؟ علاوه بر این، تمهیدات لازم برای موارد پیشرفته‌تری نظیر شکست (Fail) در بخش‌های مختلف پایگاه داده در نظر گرفته شده است؟
  • آیا قابلیت تهیه نسخه پشتیبان و بازیابی طرح‌واره در نظر گرفته شده است؟ 

چرا قبل از ساخت پایگاه داده باید به طراحی آن دقت ویژه‌ای داشته باشیم؟

هدف از طراحی پایگاه داده ساخت دقیق و هدفمند مخازن اطلاعاتی است که قرار است به نیازهای سازمان پاسخ دهند و بالاترین سطح از عملکرد را ارائه کنند. به همین دلیل در زمان ساخت پایگاه‌های داده باید چرخه حیات توسعه آن‌ها به دقت بررسی شود. چرخه حیات توسعه پایگاه داده به مراحلی اشاره دارد که هنگام توسعه پایگاه داده به ترتیب اجرا می‌شوند. این چرخه حیات به شرح زیر است. 

تحلیل نیازها

مرحله تحلیل نیازها شامل برنامه‌ریزی و تعریف سیستم می‌شود. مرحله برنامه‌ریزی با چرخه حیات پایگاه داده در ارتباط است و چشم‌اندازها و اهداف تجاری سازمان را مشخص می‌کند. 

طراحی پایگاه داده

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

پیاده‌سازی

در مرحله پیاده‌سازی دو فرآیند مهم تبدیل و بارگذاری داده‌ها و آزمایش انجام می‌شود. در مرحله تبدیل و بارگذاری داده، پایگاه با کدنویسی ساخته می‌شود و داده‌های جدید به پایگاه داده وارد شده یا داده‌هایی که درون سامانه‌های قدیمی هستند در صورت لزوم پس از تبدیل به پایگاه داده جدید وارد می‌شوند. پس از اتمام این فرآیند مرحله آزمایش کردن آغاز می‌شود که هدفش شناسایی خطاها در سامانه جدید است. در مرحله آزمایش، پایگاه داده به لحاظ اشتباهات کدنویسی یا مشکلات امنیتی ارزیابی می‌شود. در بیشتر موارد، فردی که مسئولیت طراحی پایگاه داده را دارد در طراحی و پیاده‌سازی پایگاه داده متخصص است و قرار نیست در ارتباط با داده‌هایی که قرار است به پایگاه داده وارد شوند صاحب تخصص باشد. به‌طور مثال، قرار نیست یک طراح پایگاه داده در ارتباط با اطلاعات مالی، داده‌های علمی یا پزشکی تبحر داشته باشد. به همین دلیل در زمان ورود داده‌ها به پایگاه داده باید فرد دیگری به طراح کمک کند تا داده‌های درستی در پایگاه داده ذخیره‌سازی شوند. هنگامی که مشخص شد چه داده‌هایی قرار است در پایگاه داده ذخیره‌سازی شوند، در ادامه باید وابستگی‌های میان داده‌ای را تعیین کرد. به‌طور مثال، برای یک کارمند (فیلد اسم) تنها یک آدرس واقعی مفروض است و نباید همزمان دو آدرس مختلف برای یک کارمند ثبت شوند. علاوه بر این، باید به وابستگی معکوس نیز دقت کرد، زیرا ممکن است در یک آدرس فیزیکی چند کارمند سکونت داشته باشند. به‌طور مثال، چند کارمند در یک مجتمع سکونت دارند. در این حالت فیلد آدرس وابسته به یک اسم در نظر گرفته می‌شود. نکته دیگری که باید به آن دقت زیادی داشت و متاسفانه بیشتر طراحان پایگاه داده توجهی به آن ندارند، رابطه پنهان میان فیلدهای مختلف است. 

به‌طور مثال، گاهی اوقات نام و نام خانوادگی کارمندان شاغل در یک سازمان یکسان یا شبیه به هم است (به دلیل فامیل بودن) و به‌طور مثال، نام و نام خانوادگی پسر و پدربزرگ یکسان است.  (مثلا، علی روغنی فرزند رضا روغنی در یک سازمان شاغل است و فرزند رضا روغنی نیز علی رونقی نام دارد و در همان سازمان استخدام شده است!) اگر طراح پایگاه داده نسبت به این موضوع دانش کافی نداشته باشد، سازمان با مشکلات زیادی روبرو می‌شود.

کلام آخر

همان‌گونه که مشاهده می‌کنید، یک طراح پایگاه داده وظایف و مسئولیت‌های مختلفی دارد که فقدان دانش در ارتباط با هر یک از آن‌ها عملکرد پایگاه داده را به شدت کاهش می‌دهد. همان‌گونه که اشاره شد اولین وظیفه یک طراح پایگاه داده این است که برای ساخت یک مدل داده مفهومی که منعکس‌کننده ساختار اطلاعات در پایگاه داده است طرحی پیشنهاد کند. طراحان پایگاه داده برای توسعه یک مدل نهاد-رابطه از ابزارهای طراحی مخصوص این‌کار استفاده می‌کنند که زبان مدل‌سازی یکپارچه از محبوب‌ترین آن‌ها است. در زمینه طراحی و ساخت پایگاه‌های داده‌ای، برخی کارشناسان تازه‌وارد بدون آشنایی دقیق با ساختارها و مفاهیم مرتبط با این حوزه اقدام به ساخت جداول کرده و ارتباطات میان جداول را تعریف می‌کنند. در طراحی پایگاه‌های داده چند نکته مهم وجود دارد که باید به دقت بررسی شوند. اولین نکته تصمیم درست در ارتباط با نرمال‌سازی (اجتناب از تکرار برای صرفه‌جویی در حجم) یا نانرمال‌سازی (تلاش برای تکرار برای افزایش سرعت) است. گاهی اوقات سازمان‌های برای دسترسی سریع‌تر به رکوردها، اطلاعات یکسان را در پایگاه‌های داده مختلف ذخیره‌سازی می‌کنند. در زمان طراحی پایگاه داده باید این نیاز به درستی مشخص شود و تمهیدات لازم برای آن در نظر گرفته شود. دومین نکته مهم شاخص‌گذاری (indexing) یا مرتب‌سازی هدفمند اطلاعات است. برخی بر این باور هستند که مرتب‌سازی تنها بر مبنای نام کاربری یا شناسه عددی انجام می‌شود، در صورتی که این قاعده برای تمامی پایگاه‌های داده صادق نیست. سومین نکته‌ای که باید به آن دقت کنید اصطلاحاتی مثل B-tree است که برخی این اصطلاح را با درخت دودویی اشتباه می‌گیرند، در حالی که B-tree در این حوزه به درخت خود-متعادل‌شونده اشاره دارد، بدان معنا که نرم‌افزار بر اساس تعداد ردیف‌های جدول اطلاعاتی تصمیم می‌گیرد تا چند مرحله شاخص‌گذاری‌ها را دسته دسته کند تا بتواند با مقایسه مقدار مورد جست‌وجو در سریع‌ترین زمان ممکن به داده‌های ردیف مورد نظر برسد. سطوح مختلف این دسته‌بندی‌ها به سه گونه گره ریشه (تنها دسته‌بندی آغازین)، گره‌های شاخه (میانی) و گره‌های برگ (پایانی) تقسیم می‌شوند. 

چهارمین نکته مهم افزایش یا بهبود عملکرد پایگاه داده است که برای این منظور از راهکارهایی مثل شاخص‌گذاری ترکیبی متناسب با نوع جست‌وجو که در زمان ایجاد ارتباطات بین جداول تعریف می‌شود استفاده می‌شود. در ارتباط با برخی سرورها مثل مای‌اس‌کیوال طراحان این پرسش را مطرح می‌کنند که از چه نوع موتور اطلاعاتی MyISAM یا InnoDB باید استفاده کرد. کوتاه‌ترین پاسخ این است که اولی نماینده سرعت در ثبت اطلاعات است (معمولاً بایگانی) و دومی نماینده تعادل در سرعت ثبت و خواندن است. در ارتباط با موتور اطلاعاتی اول در زمان ثبت داده‌ها کل جدول قفل می‌شود که این موتور به‌نام غیر تراکنشی معروف است، در حالی که دومی عملکرد معکوس دارد و ردیف‌ها را قفل می‌کند. به‌طور معمول، فرآیند طراحی بانک اطلاعاتی پس از مرحله طوفان فکری آغاز می‌شود که مرحله طراحی مدل نیز ممکن است در همان زمان انجام شود. پس از قطعی شدن تصمیمات درباره ساختار پروژه، مرحله مدل‌کشی و طراحی پایگاه داده در نرم‌افزار طراحی مانند MySQL Workbench یا SQL server management studio انجام می‌شود

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟