مدلسازی معنایی داده

کاربران پایگاه داده به طور معمول با داده‌های ذخیره شده در پایگاه داده سر و کار دارند که اصطلاحا به آنها داده‌های عملیاتی می‌گویند. یکی از نکات مهم در ذخیره‌سازی داده‌ها مدلسازی معنایی داده‌ها می‌باشد. یعنی داده‌های ذخیره شدنی در پایگاه داده‌ها ابتدا باید در بالاترین سطح انتزاع، مدل سازی معنایی شوند. حال ممکن است این سوال به ذهن برسد که مدل سازی معنایی به چه معنی است.
مدلسازی معنایی داده‌ها
مدل سازی معنایی داده‌ها عبارت است از ارائه مدلی از محیط عملیاتی به کمک مفاهیمی مستقل از موضوعات مربوط به نمایش منطقی و فیزیکی داده‌ها. مدل سازی معنایی را در بعضی از کتب، طراحی ادراکی نیز می‌نامند. برای مدل سازی معنایی روش‌های مختلف وجود دارد. برخی روش‌های کلاسیک رایج عبارتند از:
روش موجودیت- ارتباط
روش زبان عمومی مدلسازی
روش موجودیت- ارتباط
مدل سازی به روش موجودیت- ارتباط؛ یکی از ابزارهای مدل سازی معنایی در پایگاه داده‌است که در سال ۱۹۷۶ توسط چن مطرح گردید. در این روش، سه مفهوم معنایی وجود دارد: "نوع موجودیت، صفت و نوع ارتباط ". به عبارت بهتر، در این روش مشخص می‌شود که داه‌های پایگاه ما در مورد چه چیز هستند و چه ارتباطی با هم دارند.
به عنوان مثال در این روش برای مدلسازی معنایی داده‌های یک پایگاه داده‌های کتابشناختی، ابتدا مشخص می‌کنیم که چه داده‌هایی در مورد منابع اطلاعاتی باید در پایگاه قرار گیرند و ارتباط بخشهای مختلف این پایگاه با یکدیگر چگونه باید باشد. ارتباط این سه مفهوم در شکل ۱ نشان داده شده‌است.
شکل ۱: ارتباط بین مفاهیم معنایی در روش موجودیت- ارتباط
تصویر:Mojodiat.png
- "نوع موجودیت:" نوع موجودیت عبارت است از مفهوم کلی هر آنچه که می‌خواهیم در مورد آن اطلاعی جمع‌آوری کنیم و دانش خود را در موردش افزایش دهیم. گاه به نوع موجودیت، نوع شیی هم می‌گوییم. لازم بذکر است که تشخیص انواع موجودیت هادر یک محیط کاری دشوار می‌باشد.
به طور کلی یک نوع موجودیت دارای خصوصیات زیر می‌باشد یا به بیانی دیگر لازم است اطلاعات زیر در مورد هر نوع موجودیتی بدست آید:
نام موجودیت (یا پدیده)
معنای مشخص
مجموعه‌های از صفات
مجموعه‌های از نمونه‌ها
حالت کنش گری یا کنش پذیری
عدم وابستگی یا وابستگی به یک نوع دیگر
برای مثال در یک سیستم اطلاعات کتابخانه، انواع موجودیت‌ها می‌توانند شامل موجودیت منابع اطلاعاتی، پدید آورنده و… باشند. در یک سیستم آموزشی انواع موجودیت‌ها می‌توانند شامل موجودیت‌های درس، دانشجو، استاد، کلاس و… باشند.
هر نوع موجودیت شامل مجموعه‌ای از صفات (مشخصات) مربوط به آن موجودیت است که حالت یا وضع آن موجودیت را توصیف می‌کند. این صفات خود دارای رده‌بندی‌های مختلفی هستند که در زیر آمده‌است.
- "صفت:" صفات یک موجودیت بر حسب مفهوم آنها به دسته‌های زیر تقسیم می‌گردند:
ساده یا مرکب:
صفت ساده صفتی است که مقدار آن تجزیه نشدنی است. به این معنا که اگر مقدار آن را به اجزایی تجزیه کنید، مقادیر هر جز فاقد معنا است. مانند نام خانوادگی نویسنده.
صفت مرکب، صفتی است که از چند صفت ساده تشکیل شده و قابل تجزیه شدن است. مانند صفت وضعیت انتشار، که می‌تواند به محل نشر، نام ناشر و تاریخ انتشار تجزیه شود. لازم است ذکر شود که می‌توان بر حسب نوع نیاز به جای استفاده از یک صفت مرکب، آن را به چندین صفت ساده شکست.
تک مقداری یا چند مقداری:
صفت تک مقداری صفتی است که حداکثر یک مقدار از میدان مقادیر را برای یک نمونه از یک نوع موجودیت می‌گیرد. به بیانی دیگر مقدار آن صفت برای نوع موجودیت مورد نظر، یک مقدار مشخص از میدان مقادیر مربوط به آن صفت می‌باشد. مثلا برای هر منبع اطلاعاتی یک شماره بازیابی وجود دارد.
صفت چند مقداری، صفتی است که بیش از یک مقدار از میدان مقادیر را برای حداقل یک نمونه از نوع موجودیت در بر می‌گیرد. مانند مقطع تحصیلی اعضای کتابخانه که ممکن است چند مقداری باشد، لیسانس، فوق لیسانس و…
شناسه یا ناشناسه: صفت شناسه موجودیت، صفتی است که باید یکتایی مقدار داشته باشد و تا حد امکان طول مقادیرش کوتاه باشد.
هیچ مقدار پذیر یا هیچ مقدار ناپذیر: این مفهوم از مفاهیم مدل رابطه‌ای است، مقدار هیچ یعنی مقدار ناشناخته، مقدار تعریف نشده. ممکن است مقدار یک صفت برای برخی از نمونه‌های یک نوع موجودیت، ناشناخته باشد. لازم است ذکر شود که صفت شناسه موجودیت نمی‌تواند هیچ مقدار پذیر باشد.
ذخیره شده (واقعی یا مبنا) یا مشتق:
صفت واقعی آن صفتی است که مقادیرش در پایگاه داده‌ها ذخیره شده باشد. باید توجه داشت چنانچه صفت بعنوان شناسه نباشد، می‌تواند مقدار هیچ را نیز داشته باشد.
صفت مشتق، صفتی است که مقادیرش در پایگاه داده‌ها ذخیره شده نباشد. این صفت وجود خارجی ندارد؛ ولی از روی دیگر صفات قابل محاسبه‌است. مانند سن افراد که از روی تاریخ تولد قابل محاسبه‌است.
هر صفت جنبه‌های زیر را دارد:
نام
معنا
میدان (دامنه مقادیر)
نوع مقدار
طول مقدار
یک یا چند محدودیت ناظر به صفت
در شکل ۲ ارتباط بین رده‌های مختلف صفات آورده شده‌است.
شکل ۲: نمودار ارتباط دهنده رده‌های مختلف صفات
تصویر:Nemood.png
- "نوع ارتباط:" یکی از مفاهیم بسیار مهم در مدل سازی معنایی داده‌ها، مفهوم ارتباط یا بستگی است. ارتباط، تعامل بین دو یا بیش از دو نوع موجودیت است و به طور ماهوی بستگی بین انواع موجودیت‌ها است.
نوع ارتباط عبارت است از تعامل بین n نوع موجودیت و ماهیتا نوعی بستگی بین انواع موجودیت‌ها است. به تعبیر دیگر، عملی است که بین انواع موجودیت‌ها جاری بوده، هست یا خواهد بود. هر نوع ارتباط یک معنای مشخص داشته و با یک نام بیان می‌شود.
خصوصیات نوع ارتباط:
- هر ارتباط یک نام دارد، هر ارتباط یک معنای مشخص دارد که با معنای هر ارتباط دیگر متفاوت است، هر ارتباط نمونه‌هایی دارد.
- «ارتباط:» ارتباط، تعامل بین دو یا بیش از دو نوع موجودیت است و به طور ماهوی، نوعی بستگی بین انواع موجودیت‌ها است.
نمودار ER
نمودار ER، نموداری است که در آن سه مفهوم اساسی مدل یعنی موجودیت، صفت و نوع ارتباط در آن نمایش داده می‌شوند. این نمودار اولین طرح پایگاه داده‌ها و مدل کلی آن در بالاترین سطح انتزاع می‌باشد. نمادها و مفهوم آنها در زیر نشان داده شده‌اند.
تصویر:Nemoodar.pngتصویر:Nemoodar2.pngتصویر:Nemoodar3.png
هر نمودار ER پاسخگوی مجموعه مشخصی از نیازهای کاربران است و بدیهی است که این نمودار با تغییر و رشد نیازهای کاربران تغییر یافته و توسعه داده می‌شود. یک نمونه از نمودارهای ER را می‌توان در ادامه ملاحظه نمود.
نمودار۱: یک نمونه نمودار ER برای نمایش سیستم کتابخانه دانشگاهی
تصویر:qaq.png
مشکلات روش موجودیت-ارتباط
در نتیجه درک نادرست و تفسیر ناصحیح از معنای ارتباطات در مدل سازی داده‌ها، مشکلاتی موسوم به دامهای پیوندی نمایان می‌گردد. این دامهای پیوندی عبارتند از:
دام حلقه‌ای
دام چند شاخه
دام گسل
برای درک بهتر مفهوم این دامها، هریک از آنها در ادامه توضیح داده شده‌اند.
دام حلقه‌ای
این دام وقتی ایجاد می‌شود که با داشتن مثلا سه ارتباط دو موجودیتی، وجود یک ارتباط سه موجودیتی را نتیجه‌گیری کنیم ولی این استنتاج درست نباشد.
دام چند شاخه‌ای
این نوع دام وقتی ایجاد می‌شود که بین یک نوع موجودیت E و موجودیت‌های F و G ارتباط 1:N با مشارکت الزامی وجود داشته باشد، ولی ارتباط بین F و G دیده نشده باشد. در این صورت نمی‌توان وجود ارتباط بین F و G را بدست آورد.
دام گسل
این نوع دام وقتی ایجاد می‌شود که بین دو نوع موجودیت E و F یک ارتباط 1:N و مشارکت الزامی وجود داشته باشد، ولی F با نوع موجودیت G ارتباط 1:N با مشارکت غیر الزامی داشته باشد. در این شرایط نمی‌توان تمام اطلاع‌های دو موجودیتی بین E و G را بدست آورد. اگر چنین فرضی در نظر گرفته شود، دچار دام گسل شده‌ایم.
روش زبان عمومی مدلسازی
با مطرح شدن الگوهای شی گرایی که هر موجودیت در جهان واقع را شامل داده‌های آن موجودیت و عملکردهای مرتبط با آن توصیف می‌کرد، طراحان سیستم روش‌های موجودیت ارتباط را ناکارآمد تشخیص داده و در جستجوی یک روش جدید بودند تا بتوانند عملکرد هر موجودیت را نیز به نمایش بگذارند. از این رو روش زبان عمومی مدلسازی مطرح شد. مهمترین خصوصیت این روش، ایجاد امکانی برای ایجاد و نمایش اشیا جهان واقع و به صورت تصویری است. یکی از نکات مهم در این روش، وجود دانش کافی در مفاهیم شی گرایی است. به بیانی دیگر بدون دانستن مفاهیم شی گرایی، امکان استفاده موثر و به جا از این روش وجود ندارد.
مفاهیم اصلی
اساس روش UML بر مبنای نمودار است. این روش از نمودار برای نمایش مدلسازی و طراحی نرم‌افزار استفاده می‌کند. چند نمونه از مهمترین نمودارها در این روش عبارتند از:
نمودار کلاس
نمودار چرخه حیات موجودیت
نمودار مورد استفاده
نمودار فعالیت
نمودار پیاده‌سازی
مهمترین نمودار این روش، نمودار کلاس است. این نمودار، مجموعه‌ای از موجودیت‌ها و عملیات مرتبط با موجودیت‌ها را مدلسازی می‌کند. عملیات در واقع رفتار شی را نشان می‌دهد و به بیانی دیگر، رویدادهای مرتبط با شی را به نمایش درمی‌آورد. مفاهیم اصلی در مدلسازی با این روش عبارتند از:
کلاس
صفت
بستگی
در روش UML دو گونه ارتباط بین رده‌ها وجود دارد که این دو نوع عبارتند از:
بستگی
تجمیع
که در این بین، مفهوم بستگی همان ارتباط بین کلاس‌ها است. تجمیع نیز عبارت است از ارتباط بین یک شی کل و شی‌های جز تشکیل دهنده آن.
خصوصیات کلی روش‌های مدلسازی معنایی داده‌ها
هر روش مدلسازی معنایی داده‌ها باید دست کم دارای خصوصیات زیر باشد:
گویایی
سادگی مفاهیم
ایجاز
گسترش پذیری
صوری بودن
قابلیت نمایش نموداری
جامع بودن مفاهیم
قابلیت نمایش ساختار حالت و رفتار نوع موجودیت
باید به این نکته توجه داشت که برخی خصوصیات ذکر شده ممکن است با هم مغایر باشند. در این صورت، وجود یکی از این خصوصیت‌ها کافی است.