مدلسازی معنایی داده
کاربران پایگاه داده بهطور معمول با دادههای ذخیره شده در پایگاه داده سر و کار دارند که اصطلاحاً به آنها دادههای عملیاتی میگویند. یکی از نکات مهم در ذخیرهسازی دادهها مدلسازی معنایی دادهها میباشد. یعنی دادههای ذخیره شدنی در پایگاه دادهها ابتدا باید در بالاترین سطح انتزاع، مدلسازی معنایی شوند. حال ممکن است این سؤال به ذهن برسد که مدلسازی معنایی به چه معنی است.
مدلسازی معنایی دادهها
ویرایشمدلسازی معنایی دادهها عبارت است از ارائه مدلی از محیط عملیاتی به کمک مفاهیمی مستقل از موضوعات مربوط به نمایش منطقی و فیزیکی دادهها. مدلسازی معنایی را در بعضی از کتب، طراحی ادراکی نیز مینامند. برای مدلسازی معنایی روشهای مختلف وجود دارد. برخی روشهای کلاسیک رایج عبارتند از:
روش موجودیت-ارتباط
ویرایشمدلسازی به روش موجودیت- ارتباط؛ یکی از ابزارهای مدلسازی معنایی در پایگاه دادهاست که در سال ۱۹۷۶ توسط چن[۳] مطرح گردید. در این روش، سه مفهوم معنایی وجود دارد: "نوع موجودیت،[۴] صفت[۵] و نوع ارتباط[۶]". به عبارت بهتر، در این روش مشخص میشود که داههای پایگاه ما در مورد چه چیز هستند و چه ارتباطی با هم دارند.
به عنوان مثال در این روش برای مدلسازی معنایی دادههای یک پایگاه دادههای کتابشناختی، ابتدا مشخص میکنیم که چه دادههایی در مورد منابع اطلاعاتی باید در پایگاه قرار گیرند و ارتباط بخشهای مختلف این پایگاه با یکدیگر چگونه باید باشد. ارتباط این سه مفهوم در شکل ۱ نشان داده شدهاست.
- "نوع موجودیت:" نوع موجودیت عبارت است از مفهوم کلی هر آنچه که میخواهیم در مورد آن اطلاعی جمعآوری کنیم و دانش خود را در موردش افزایش دهیم. گاه به نوع موجودیت، نوع شیی هم میگوییم. لازم به ذکر است که تشخیص انواع موجودیت هادر یک محیط کاری دشوار میباشد.
بهطور کلی یک نوع موجودیت دارای خصوصیات زیر میباشد یا به بیانی دیگر لازم است اطلاعات زیر در مورد هر نوع موجودیتی بهدست آید:
- نام موجودیت (یا پدیده)
- معنای مشخص
- مجموعههای از صفات
- مجموعههای از نمونهها
- حالت کنشگری یا کنش پذیری
- عدم وابستگی یا وابستگی به یک نوع دیگر
برای مثال در یک سیستم اطلاعات کتابخانه، انواع موجودیتها میتوانند شامل موجودیت منابع اطلاعاتی، پدید آورنده و… باشند. در یک سیستم آموزشی انواع موجودیتها میتوانند شامل موجودیتهای درس، دانشجو، استاد، کلاس و… باشند.
هر نوع موجودیت شامل مجموعهای از صفات (مشخصات) مربوط به آن موجودیت است که حالت یا وضع آن موجودیت را توصیف میکند. این صفات خود دارای ردهبندیهای مختلفی هستند که در زیر آمدهاست.
- "صفت:" صفات یک موجودیت بر حسب مفهوم آنها به دستههای زیر تقسیم میگردند:
- ساده یا مرکب:[۷]
صفت ساده صفتی است که مقدار آن تجزیه نشدنی است. به این معنا که اگر مقدار آن را به اجزایی تجزیه کنید، مقادیر هر جز فاقد معنا است. مانند نام خانوادگی نویسنده.
صفت مرکب، صفتی است که از چند صفت ساده تشکیل شده و قابل تجزیه شدن است. مانند صفت وضعیت انتشار، که میتواند به محل نشر، نام ناشر و تاریخ انتشار تجزیه شود. لازم است ذکر شود که میتوان بر حسب نوع نیاز به جای استفاده از یک صفت مرکب، آن را به چندین صفت ساده شکست.
- تک مقداری یا چند مقداری:[۸]
صفت تک مقداری صفتی است که حداکثر یک مقدار از میدان مقادیر را برای یک نمونه از یک نوع موجودیت میگیرد. به بیانی دیگر مقدار آن صفت برای نوع موجودیت مورد نظر، یک مقدار مشخص از میدان مقادیر مربوط به آن صفت میباشد. مثلاً برای هر منبع اطلاعاتی یک شماره بازیابی وجود دارد.
صفت چند مقداری، صفتی است که بیش از یک مقدار از میدان مقادیر را برای حداقل یک نمونه از نوع موجودیت در بر میگیرد. مانند مقطع تحصیلی اعضای کتابخانه که ممکن است چند مقداری باشد، لیسانس، فوق لیسانس و…
- شناسه یا ناشناسه: صفت شناسه موجودیت، صفتی است که باید یکتایی مقدار داشته باشد و تا حد امکان طول مقادیرش کوتاه باشد.
- هیچ مقدار پذیر یا هیچ مقدار ناپذیر:[۹] این مفهوم از مفاهیم مدل رابطهای است، مقدار هیچ یعنی مقدار ناشناخته، مقدار تعریف نشده. ممکن است مقدار یک صفت برای برخی از نمونههای یک نوع موجودیت، ناشناخته باشد. لازم است ذکر شود که صفت شناسه موجودیت نمیتواند هیچ مقدار پذیر باشد.
- ذخیره شده (واقعی یا مبنا) یا مشتق:[۱۰]
صفت واقعی آن صفتی است که مقادیرش در پایگاه دادهها ذخیره شده باشد. باید توجه داشت چنانچه صفت به عنوان شناسه نباشد، میتواند مقدار هیچ را نیز داشته باشد. صفت مشتق، صفتی است که مقادیرش در پایگاه دادهها ذخیره شده نباشد. این صفت وجود خارجی ندارد؛ ولی از روی دیگر صفات قابل محاسبهاست. مانند سن افراد که از روی تاریخ تولد قابل محاسبهاست.
هر صفت جنبههای زیر را دارد:
- نام
- معنا
- میدان (دامنه مقادیر)
- نوع مقدار
- طول مقدار
یک یا چند محدودیت ناظر به صفت
در شکل ۲ ارتباط بین ردههای مختلف صفات آورده شدهاست.
- "نوع ارتباط:"یکی از مفاهیم بسیار مهم در مدلسازی معنایی دادهها، مفهوم ارتباط یا بستگی است. ارتباط، تعامل بین دو یا بیش از دو نوع موجودیت است و بهطور ماهوی بستگی بین انواع موجودیتها است.
نوع ارتباط عبارت است از تعامل بین n نوع موجودیت و ماهیتا نوعی بستگی بین انواع موجودیتها است. به تعبیر دیگر، عملی است که بین انواع موجودیتها جاری بوده، هست یا خواهد بود. هر نوع ارتباط یک معنای مشخص داشته و با یک نام بیان میشود.
خصوصیات نوع ارتباط:
- هر ارتباط یک نام دارد، هر ارتباط یک معنای مشخص دارد که با معنای هر ارتباط دیگر متفاوت است، هر ارتباط نمونههایی دارد.
- «ارتباط:» ارتباط، تعامل بین دو یا بیش از دو نوع موجودیت است و بهطور ماهوی، نوعی بستگی بین انواع موجودیتها است.
نمودار ER
ویرایشنمودار ER، نموداری است که در آن سه مفهوم اساسی مدل یعنی موجودیت، صفت و نوع ارتباط در آن نمایش داده میشوند. این نمودار اولین طرح پایگاه دادهها و مدل کلی آن در بالاترین سطح انتزاع میباشد. نمادها و مفهوم آنها در زیر نشان داده شدهاند.
هر نمودار ER پاسخگوی مجموعه مشخصی از نیازهای کاربران است و بدیهی است که این نمودار با تغییر و رشد نیازهای کاربران تغییر یافته و توسعه داده میشود. یک نمونه از نمودارهای ER را میتوان در ادامه ملاحظه نمود.
مشکلات روش موجودیت-ارتباط
ویرایشدر نتیجه درک نادرست و تفسیر ناصحیح از معنای ارتباطات در مدلسازی دادهها، مشکلاتی موسوم به دامهای پیوندی نمایان میگردد. این دامهای پیوندی عبارتند از:
برای درک بهتر مفهوم این دامها، هریک از آنها در ادامه توضیح داده شدهاند.
دام حلقهای
ویرایشاین دام وقتی ایجاد میشود که با داشتن مثلاً سه ارتباط دو موجودیتی، وجود یک ارتباط سه موجودیتی را نتیجهگیری کنیم ولی این استنتاج درست نباشد.
دام چند شاخهای
ویرایشاین نوع دام وقتی ایجاد میشود که بین یک نوع موجودیت E و موجودیتهای F و G ارتباط 1:N با مشارکت الزامی وجود داشته باشد، ولی ارتباط بین F و G دیده نشده باشد. در این صورت نمیتوان وجود ارتباط بین F و G را بهدست آورد.
دام گسل
ویرایشاین نوع دام وقتی ایجاد میشود که بین دو نوع موجودیت E و F یک ارتباط 1:N و مشارکت الزامی وجود داشته باشد، ولی F با نوع موجودیت G ارتباط 1:N با مشارکت غیر الزامی داشته باشد. در این شرایط نمیتوان تمام اطلاعهای دو موجودیتی بین E و G را بهدست آورد. اگر چنین فرضی در نظر گرفته شود، دچار دام گسل شدهایم.
روش زبان عمومی مدلسازی
ویرایشبا مطرح شدن الگوهای شی گرایی که هر موجودیت در جهان واقع را شامل دادههای آن موجودیت و عملکردهای مرتبط با آن توصیف میکرد، طراحان سیستم روشهای موجودیت ارتباط را ناکارآمد تشخیص داده و در جستجوی یک روش جدید بودند تا بتوانند عملکرد هر موجودیت را نیز به نمایش بگذارند. از این رو روش زبان عمومی مدلسازی مطرح شد. مهمترین خصوصیت این روش، ایجاد امکانی برای ایجاد و نمایش اشیا جهان واقع و به صورت تصویری است. یکی از نکات مهم در این روش، وجود دانش کافی در مفاهیم شی گرایی است. به بیانی دیگر بدون دانستن مفاهیم شی گرایی، امکان استفاده مؤثر و به جا از این روش وجود ندارد.
مفاهیم اصلی
ویرایشاساس روش UML بر مبنای نمودار است. این روش از نمودار برای نمایش مدلسازی و طراحی نرمافزار استفاده میکند. چند نمونه از مهمترین نمودارها در این روش عبارتند از:
- نمودار کلاس
- نمودار چرخه حیات موجودیت
- نمودار مورد استفاده
- نمودار فعالیت
- نمودار پیادهسازی
مهمترین نمودار این روش، نمودار کلاس است. این نمودار، مجموعهای از موجودیتها و عملیات مرتبط با موجودیتها را مدلسازی میکند. عملیات در واقع رفتار شی را نشان میدهد و به بیانی دیگر، رویدادهای مرتبط با شی را به نمایش درمیآورد. مفاهیم اصلی در مدلسازی با این روش عبارتند از:
- کلاس
- صفت
- بستگی
در روش UML دو گونه ارتباط بین ردهها وجود دارد که این دو نوع عبارتند از:
- بستگی
- تجمیع
که در این بین، مفهوم بستگی همان ارتباط بین کلاسها است. تجمیع نیز عبارت است از ارتباط بین یک شی کل و شیهای جز تشکیل دهنده آن.
خصوصیات کلی روشهای مدلسازی معنایی دادهها
ویرایشهر روش مدلسازی معنایی دادهها باید دست کم دارای خصوصیات زیر باشد:
- گویایی
- سادگی مفاهیم
- ایجاز
- گسترش پذیری
- صوری بودن
- قابلیت نمایش نموداری
- جامع بودن مفاهیم
- قابلیت نمایش ساختار حالت و رفتار نوع موجودیت
باید به این نکته توجه داشت که برخی خصوصیات ذکر شده ممکن است با هم مغایر باشند. در این صورت، وجود یکی از این خصوصیتها کافی است.
منابع
ویرایش
• فروزنده، حبیب (۱۳۹۰). مدیریت پایگاه داده. تهران، عابد
Alagic, Suad (1986). Relational Database Technology. Available from http://books.google.com/books?id=MY6gcNxhxPcC&printsec=frontcover&dq=database&source=bl&ots=I-ivfiUwmo&sig=XYeftoA-jvzNlr1GJctxa33cPqs&hl=en&sa=X&ei=Q5QaUOrvOsTRhAestoGQBA&ved=0CEgQ6AEwBDgK#v=onepage&q=database&f=false
Powell, Gevin (2006). Beginning Database Design. Available from http://books.google.com/books?id=HbAhv1zAIQ8C&printsec=frontcover&dq=database&source=bl&ots=iUQ01XBO8X&sig=oXm9N_LsdqZMunF-4MGrJrYfqkE&hl=en&sa=X&ei=Q5QaUOrvOsTRhAestoGQBA&ved=0CE4Q6AEwBTgK#v=onepage&q=database&f=false :
• ریاضی نیا، مهدی (۱۳۸۸). پایگاه داده (کامپیوتر). تهران، جهاد دانشگاهی