Professional Documents
Culture Documents
2 DB DataModeling
2 DB DataModeling
مرتضی امینی
کاربری
ابتدا باید مدل شوند داده های ذخیره شدنی در DB
سیستمی
دادههای کاربری
موسومند به داده های عملیاتی
پایا هستند :بعد از اجرای برنامه کاربر کماکان در سیستم ماندگارند[حسب تعریف]
لزوماً همان داده های I/Oنیستند .هر داده موجود در پایگاه داده لزوما داده ورودی نیست و هر داده
خروجی از پایگاه لزوما در پایگاه ذخیره شده نیست (مانند دادههای محاسبه شده از دادههای موجود-
میانگین نمرات)
دادههای سیستمی
سیستم تولید میکند برای انجام وظایفش
مراحل تولید سیستم اطالعاتی
بخش دوم :مدلسازی معنایی داده ها 3
نیازهای پردازشی
محیط شناسی
تحلیل عملکردی
مدلسازی
معنایی دادهها
طراحی AP’s
تعیین تراکنشها طراحی منطقی
پیادهسازی DB
طراحی فیزیکی
DB
ارائه یک مدل کلی (در باالترین سطح انتزاع) از داده های محیط با استفاده از مفاهیم انتراعی و
براساس معنایی که کاربر برای دادهها قائل است.
مفهوم انتزاعی :مفهومی است فراتر از سطح منطقی و طبعاً فراتر از سطح پیادهسازی
روش :)Unified Modeling Language( UMLخاصّ مدلسازی معنایی داده ها نیست بلکه برای
مدلسازی و طراحی سیستم های نرمافزاری است .لذا با آن میتوان پایگاه داده را مدل کرد.
روش ERمبنایی
بخش دوم :مدلسازی معنایی داده ها 6
نمودار :ER
نموداری است که سه مفهوم اساسی نوع موجودیت ،صفت و نوع ارتباط در آن نمایش داده میشوند.
در واقع این نمودار امکانی است برای نمایش مدلسازی و اولین طرح پایگاه دادهها در باالترین سطح
انتزاع.
برای رسم این نمودار به نمادهایی نیاز داریم .در این درس از نمادهای چِن استفاده میشود.
نمادهای نمودار ERمبنایی
بخش دوم :مدلسازی معنایی داده ها 7
[نام نوع
ارتباط] نوع ارتباط
[نام نوع
ارتباط] نوع ارتباط موجودیت ضعیف با قوی
[نام نوع
[نام نوع موجودیت] ارتباط] مشارکت نوع موجودیت در نوع ارتباط
صفت مرکب
[نام صفت]
نوع موجودیت:
مفهوم کلی شیئ ،چیز ،پدیده و به طور کلی آنچه از یک محیط که میخواهیم در موردش اطالع
داشته باشیم.
...
تذکر :اولین قدم در مدلسازی معنایی تشخیص درست نوع موجودیتهاست.
در مثال فوق آیا دانشگاه یک نوع موجودیت در نظر گرفته میشود یا خیر؟
ERمبنایی -نوع موجودیت (ادامه)
بخش دوم :مدلسازی معنایی داده ها 11
نام
دانشجو هر نوع موجودیت:
شماره یک نام دارد.
در چه حالتی نوع موجودیت تک نمونهای را موجودیت در نظر میگیریم؟ نمونه هایی دارد (حداقل یک نمونه).
آیا نوع موجودیت ایزوله داریم؟ ارتباط (هایی) با نوع موجودیت (های) دیگر دارد.
عضو خانواده
ERمبنایی -صفت
بخش دوم :مدلسازی معنایی داده ها 13
صفت:
خصیصه یا ویژگی نوع موجودیت و هر نوع موجودیت مجموعهای از صفات دارد که حالت یا وضع آن را
توصیف میکند.
صفات :شماره ،نام ،تعداد واحد ،زمان برگزاری ،تاریخ امتحان ،نوع درس (پایه ،تخصصی ،اختیاری،)...،
سطح درس (کارشناسی ،کارشناسی ارشد ،دکترا) ،ماهیت درس (نظری ،عملی ،ترکیبی)
ERمبنایی – صفت (ادامه)
بخش دوم :مدلسازی معنایی داده ها 14
هر صفت:
یک نام دارد.
محدودیت میدانی یا دامنهای
یک معنا دارد (معنای مشخص در حیطه معنایی مشخص).
یک دامنه یا میدان ( )Domainدارد.
معنای
محدودیتهای صفت:
صفت را مشخص میکند .و نه لزوماً نام صفت را. نوع
طیف مقادیر -1محدودیت میدانی
-2محدودیت نمایشی .مثال :قالب تاریخ yyyy/mm/dd
-3محدودیت پردازشی ناشی از نوع صفت یا ناشی از قواعد محیط [غیر از آنچه ناشی از میدان است]
مثال :عدم جمع دو آدرس :محدودیت ناشی از میدان است. مثال :سن کاهش نمییابد.
-4محدودیت وابستگی به یک صفت دیگر .مثال :وابستگی شمول به صفت دیگر }B{values} A{values
-1ساده – تجزیه ناپذیر :از نظر معنایی در یک محیط مشخص -اگر صفت را تجزیه کنیم ،خودِ تکه ها مقداری
صفت
از صفت در آن محیط نشود .مثال :عنوان درس
-2مرکّب :از چند صفت ساده (و می تواند ساختار سلسله مراتبی هم داشته باشد) مثال :آدرس (ترکیبی از
استان ،شهر ،خیابان)... ،
ERمبنایی – صفت (ادامه)
بخش دوم :مدلسازی معنایی داده ها 16
توجه :ساده یا مرکب بودن نسبی است و نه مطلق .بستگی به حیطه معنایی و کاربرد دارد( .مثال :آدرس از دید نشریه
(ساده) یا از دید شهرداری (مرکب).
اینکه صفت مرکّب را در یک فیلد ذخیره کنیم یا اجزا را در فیلد های مجزا به چه عواملی بستگی دارد؟
-1تک مقداری :به ازای یک نمونه از نوع موجودیت ،Eحدّاکثر یک مقدار میگیرد .مثال :نام درس
صفت
-2چند مقداری :حدّاقل برای یک نمونه از نوع موجودیت ،Eبیش از یک مقدار .مثال :شماره تلفن استاد
ساده – تک مقداری
مرکب -تک مقداری
ساده -چند مقداری توجه
مرکب -چند مقداری
-1هیچمقدار پذیر ( Nullableیا :)Nullvalueمقدار صفت می تواند ناشناخته ،ناموجود ،تعریف نشده یا غیر قابل
اعمال باشد .مثال :شماره تلفن دانشجو صفت
-2هیچمقدارناپذیر ( :)Not nullabeحتما مقدار صفت برای هر نمونه موجودیت باید معلوم باشد .مثال :شماره درس
تذکر :اگر صفتی ماهیت محاسبه شوندگی داشته باشد لزوما مجازی نیست و ممکن است برای افزایش سرعت و
در صورتی که بسامد (فرکانس) ارجاع زیاد باشد مقدار ذخیره شده داشته باشد.
ERمبنایی – نوع ارتباط
بخش دوم :مدلسازی معنایی داده ها 18
𝑁 = 1ارتباط با خود -بازگشتی ()self-relationship رابطه ،اندرکنش و یا تعامل بین 𝟏 ≥ 𝑵 نوع موجودیت
نام عنوان
شماره شماره
دانشجو انتخاب درس
حذف
نوع
پیشنیازی
نوع ارتباط:
اصطالح N
یک نام دارد.
ارتباط یگانی 1
ارتباط دوگانی 2 یک معنا دارد.
ارتباط سهگانی 3
شرکت کنندگانی ( )participantsدارد (𝟏 ≥ 𝑵).
ارتباط -nگانی n
()n-ary به تعداد شرکت کنندگان درجه ( )arityارتباط گویند.
هر دانشجو لزوماً درسی را انتخاب میکند ولی همه دروس لزوماً توسط دانشجویان انتخاب نمیشوند.
الزامی بودن مشارکت از محدودیتهای معنایی محیط است ناظر به نوع ارتباط.
ERمبنایی – نوع ارتباط (ادامه)
بخش دوم :مدلسازی معنایی داده ها 22
ترم سال
با فرض اینکه هر دانشجو چند درس میتواند انتخاب کند ولی فقط یک درس را میتواند حذف
اضطراری کند ،چندی ارتباطات به صورت زیر خواهد بود.
M N
دانشجو انتخاب درس
N 1
حذف
اضطراری
ERمبنایی – نوع ارتباط (ادامه)
بخش دوم :مدلسازی معنایی داده ها 25
1 N
گروه آموزشی عضویت استاد
1 1
مدیریت
تذکر :اگر به ارتباط صفت هایی از جنس زمان بدهیم ،چندی ارتباط میتواند بسته به قواعد معنایی محیط
از تا
ERمبنایی – نوع ارتباط (ادامه)
بخش دوم :مدلسازی معنایی داده ها 26
شماره
ترم -سال
درس
ترم -سال
درس
ERمبنایی – نوع ارتباط (ادامه)
بخش دوم :مدلسازی معنایی داده ها 27
هر نمونه eاز نوع موجودیت Eباید حداقل در Minو حداکثر در Maxنمونه از ارتباط Rشرکت
داشته باشد.
)(1,N )(0,M
دانشجو انتخاب درس
سال
ترم
استاد
در حالت سه ارتباط دوگانی اگر از فقره اطالع های دوگانی فقره اطالع سه گانی را استنتاج کنیم در
شرایطی که از لحاظ معنایی این استنتاج درست نباشد می گوییم دچار دام پیوندی حلقهای شدهایم.
تا
از عنوان گروه آموزشی
1 درس
1 M
کتاب
1 1 N
تحصیل گروه آموزشی اشتغال کارمند
...
M
N
N مبدا
دانشجو مهمان
از ترم
مثال :محیط دانشکده (ادامه)
بخش دوم :مدلسازی معنایی داده ها 31
دارد
شماره
M N
دانشجو انتخاب گروه درس
روز
N
ساعات
ارائه
میشود سال
1 ترم
استاد
مثال :محیط تولید
بخش دوم :مدلسازی معنایی داده ها 32
S
S#
P
P#
J
J# Part :P
⋮ ⋮ ⋮
N N N M 1 1 Project :J
P-P
Employee :E
SC PW مدیریت اشتغال
تعداد
City :C
1 M 1 N
Warehouse :W
1 N 1 کار N
C CW W کردن E
عضو
کارمند دارد تاریخ تولد
خانواده صفت ممیزه
جنسیت
اگر در نظر گرفته شود دیگر نباید ضعیف دیده شود. کد ملی ⋮
چندی ارتباط معموال ( 1:Nدر حالت خاص 1:1تمرین :مثال قید شود).
بحث تکمیلی :نوع موجودیت ضعیف (ادامه)
بخش دوم :مدلسازی معنایی داده ها 36
تاریخ
درجه ارتباط شناسا معموال 2و گاه بیشتر است.
کد نام شماره
تاسیس
موسسه کارمند
کارمند
آموزشی
نیاز به اطالعات بیشتر از موسسه صفت ممیزه
آموزشی
دارد
دارد
نام عنوان
عنوان موسسه
آموزشی تاریخ
مدرک اخذ
مدرک
تاریخ تحصیلی
تحصیلی ⋮
اخذ
در این مدل آیا صفت ممیزه نسبت به دو قوی لزوما واحد است؟
نوع موجودیت ضعیف میتواند خود قوی برای نوع موجودیت ضعیف دیگر باشد.
عنوان
تاریخ شروع
عضو سابقه
دارد سابقه درمان
خانواده بیماری
نوع درمان
⋮
صفت چند مقداری (به خصوص مرکب) را همیشه میتوان با مفهوم نوع موجودیت ضعیف مدل کرد
(نمایش داد) اما عکس این تکنیک توصیه نمیشود.
دلیل :انعطاف پذیری مدل را از نظر گسترش پذیری کاهش میدهد ،زیرا نوع ضعیف میتواند خود نوع
ارتباطهایی داشته باشد با دیگر نوع موجودیتها ،اما وجود ارتباط با صفت معنا ندارد.
کارمند
صفت ممیزه
عنوان
مدرک
دارد کارمند
تحصیلی
تاریخ
عنوان اخذ
نام تاریخ
⋮
موسسه مدرک اخذ
آموزشی تحصیلی
⋮
… …
بحث تکمیلی :نوع موجودیت ضعیف (ادامه)
بخش دوم :مدلسازی معنایی داده ها 39
مفهوم نوع موجودیت ضعیف به ویژه برای مدل کردن پدیدههای تکرار شونده (در زمان) و وابسته به
مفهوم دیگر استفاده میشود.
شماره
حکم
کارگزینی
دارد ⋮
کارمند
عنوان
مدرک
سابقه سابقه تاریخ
تحصیلی
ماموریت تشویق اخذ
⋮
موضوع مدت تاریخ … علت نوع تاریخ …
بحث تکمیلی :نوع موجودیت ضعیف (ادامه)
بخش دوم :مدلسازی معنایی داده ها 40
از مفهوم نوع موجودیت ضعیف میتوان برای تبدیل یک ارتباط سهگانی (یا -nگانی) به ارتباطات
دوگانی استفاده کرد.
اغلب ابزارهای طراحی مبتنی بر روش ERفقط ارتباطات دوگانی را پشتیبانی میکنند.
استاد استاد
بحث تکمیلی :نوع موجودیت ضعیف (ادامه)
بخش دوم :مدلسازی معنایی داده ها 41
میتوان چند ارتباط شناسا بین یک نوع موجودت قوی و یک نوع موجودیت ضعیف داشت.
E
F
یک نوع موجودیت ضعیف میتواند در یک نوع ارتباط دیگر با نوع موجودیت قوی دیگر شرکت داشته باشد.
E1 E2
F
نکات راهنمای تدوین نمودار ER
بخش دوم :مدلسازی معنایی داده ها 42
مشکل تصمیمگیری در مورد اینکه یک مفهوم ،نوع موجودیت در نظر گرفته شود یا صفت یا نوع ارتباط باید
در یک فرآیند تدریجی در مدلسازی معنایی دادهها اصالح شود.
اگر یک مفهوم ،صفت به نظر آید ،آنرا صفت میگیریم ،اما اگر به نوع موجودیت دیگری ارجاع داشته
باشد ،آنرا به یک نوع ارتباط در نظر میگیریم.
اگر یک (چند) صفت در چند نوع موجودیت ،مشترک باشند ،آنرا به عنوان یک نوع موجودیت مستقل
منظور میکنیم.
اگر یک نوع موجودیت ،تنها یک صفت داشته باشد و تنها با یک نوع موجودیت دیگر مرتبط باشد ،آن
را صفت در نظر میگیریم.
اگر مجموعهای از صفات مستقال قابل شناسایی نباشند ،آنرا به صورت نوع موجودیت ضعیف در نظر
میگیریم.
ERگسترش یافته
بخش دوم :مدلسازی معنایی داده ها 43
ER مبنایی کمداشت هایی داشت در نمایش بعض نوع ارتباطها (که بعدا در حیطه شیگرایی مطرح
شد)
ارتباط :IS Aارتبباط بین یک نوع موجودیت عام است با نوع موجودیت (های) خاص آن که بر
زیرنوع زبرنوع
()SubType ()Supertype
صفت معرف
Defining Attribute
شماره نام
کارمند
انواع کارمندان
کارمند کارمند
مونث مذکر
نکات:
زبرنوع مجموعه صفاتی دارد مشترک در تمام زیرنوع ها
درنتیجه زیرنوع تمام صفات زبرنوع را به ارث میبرد (وراثت صفات از نوع ساختاری).
اگر mتعداد شاخه های تخصیص منشعب از یک زبرنوع باشد داریم𝒎 ≥ 𝟏 :
ارتباط ” - “IS Aتخصیص
بخش دوم :مدلسازی معنایی داده ها 47
-1کامل :تمام زیرنوع های زبرنوع با توجه به ضابطه در مدلسازی دخالت داده میشود .هر نمونه از
زبرنوع ،جزء مجموعه نمونههای حداقل یکی از زیرنوعها است. تخصیص
-2ناقص :براساس ضابطه تمام زیرنوع های زیرنوع در نظر گرفته نمیشوند .هر نمونه از زبرنوع لزوما
جزء مجموعه نمونههای یکی از زیرنوعها نیست.
تخصیص ناقص :براساس مهارت کارمند فقط برنامه سازان را جدا کرده ایم.
شماره نام
کارمند
تخصیص کامل
برنامه ساز کارمند
کارمند کارمند
مونث مذکر
ارتباط ” – “IS Aتخصیص (ادامه)
بخش دوم :مدلسازی معنایی داده ها 48
-1مجزا :یک نمونه از زبرنوع جزء مجموعه نمونههای حداکثر یک زیرنوع است.
تخصیص
-2همپوشا :یک نمونه از زبرنوع جزء مجموعه نمونههای حداقل دو زیرنوع است.
کارمند
تخصیص مجزا
D
کارمند کارمند
مونث مذکر
برنامه ساز
تخصیص همپوشا
O
کامل ناقص
ادامه نکات:
D
ابزارساز O
کاربردساز سیستمساز
ارتباط ”( “IS Aادامه)
بخش دوم :مدلسازی معنایی داده ها 51
شماره شماره
کارگزینی دانشجویی
سال
سال ورود
استخدام داکا
⋮ ⋮
کد ملی و نام را فقط یک بار
برای «داکا» محاسبه میکند.
زیرنوع اجتماع ()U-Type
بخش دوم :مدلسازی معنایی داده ها 52
زیرنوع موجودیت Gرا زیرنوع U-Typeزبرنوعهای … E,F,گوییم هرگاه در مجموعه نمونههای G
نمونههایی از … E,F,وجود داشته باشد .در واقع نمایانگر اجتماعی از نمونهها از انواع مختلف است.
یک نمونه از زیرنوع اجتماع (دسته) ،بسته به اینکه از نوع کدام زبرنوع باشد ،صفات همان زبرنوع را به
ارث میبرد.
E F E F
U U
G G
زیرنوع اجتماع (ادامه)
بخش دوم :مدلسازی معنایی داده ها 53
VID VID
⋮
ظرفیت سواری باری
U
VID ⋮
از تا
OID ⋮
M N وسیله
⋮
مالک مالکیت
نقلیه U
در چه صورت مدلسازی با U-Typeرا میتوان با تکنیک تخصیص (ویژهنمایی) معمولی مدل کرد؟ در چه شرایطی کدام یک
بهتر است؟
زیرنوع اجتماع (ادامه)
بخش دوم :مدلسازی معنایی داده ها 54
تمرین :برای محیط با مفاهیم زیر ،هم با U-Typeو هم بدون U-Typeیک مدلسازی ارایه دهید:
بانک -دانشگاه
تعمیم عبارت است از تشخیص یک نوع موجودیت جدید از روی [با داشتن] 𝟐 ≥ 𝒏 نوع موجودیت از
پیش دیده که ماهیتا از یک نوع باشند( .احیانا به منظور ادغام ERDهای جدا)
شماره شماره
کارمند کارمند
روزمزد رسمی
نام نام
ادامه:
کارمند
روزمزد رسمی
شرایط تعمیم:
هرچه صفات مشترک بیشتر ،تعمیم توجیه پذیرتر است [شرطِ الزم نیست ولی شرطِ ارجحیت است].
ارتباطها؟
ارتباط ” “IS-A-PART Ofیا ” “Has-Aیا ”“Contains
بخش دوم :مدلسازی معنایی داده ها 58
تعریف :ارتباط بین نوع موجودیت کل است با نوع موجودیتهای جزء آن (تشکیل دهنده آن)
E دارد .F
نکته :نوع کل مجموعه صفات خاص خود را دارد.
VID
⋮ وسیله نقلیه نکته :نوع جزء هم مجموعه صفات خاص خود
را دارد [از جمله شناسه].
…
ارتباط شاسی و موتور با وسیله نقلیه
⋮ ⋮
ارتباط ”( “IS-A-PART Ofادامه)
بخش دوم :مدلسازی معنایی داده ها 59
با حذف نوع کل لزوما نوع جزء حذف نمیشود (به عبارتی وابستگی وجودی لزوما نداریم).
... ؟
تکنیک تجزیه :دیدن نوع موجودیتهای جزء از روی نوع موجودیت کل
در ارتباط ”“IS-A-PART Of
تکنیک ترکیب :دیدن نوع موجودیت کل از روی اجزاء
ارتباط با ارتباط
بخش دوم :مدلسازی معنایی داده ها 60
تکنیک تجمیع ( :)Aggregationدیدن 𝟏 ≥ 𝑵 نوع موجودیت شرکت کننده در ارتباط ،Rبه صورت
یک نوع موجودیت انتزاعی :به منظور مدلسازی ارتباط با ارتباط (به ویژه زمانی که نوع موجودیت R
صفاتی هم داشته باشد).
چرا ؟ معموال از این تکنیک به ویژه زمانی استفاده میشود که چندی ارتباط M:Nباشد.
طرز دیگر مدلسازی برای برای محیط دانشجو – درس – استاد:
… شماره
گروه
M N
دانشجو انتخاب درس
سال
ارایه
ترم
⋮
پروژه
راهنمایی
استاد پروژه
دانشجو
ارزیابی
ارزیاب
مدلسازی معنایی داده ها
بخش دوم :مدلسازی معنایی داده ها 63
تناظر بین مفاهیم روش [E]ERو روش [ UMLدر نمودار رده ]Class diagram
مراحل مدلسازی معنایی دادهها
بخش دوم :مدلسازی معنایی داده ها 64
گاه به علت وسعت محیط عملیاتی و تعدد کاربران آن الزم است مدلساز به ازای هر زیرمحیط و یا حتی یک
کاربر نمودار ERرسم کند.
در ادغام چند نمودار ERباید به تعارضهای (ماهیتا معنایی) بین نمودارها توجه کرد .از جمله موارد زیر:
مدلهای نایکسان برای ایده واحد
تحلیل این تعارضها قبل از تصمیمگیری درباره ادغام ERها باید انجام شود.
بخش دوم :مدلسازی معنایی داده ها 66
amini@sharif.edu