You are on page 1of 219

‫به نام خداوند متعال‬

‫به صنف دیتابیس‪ 1‬خوش آمدید‬


‫موضوع ‪ :‬تعاریف و معرفی کورس دیتابیس ‪1‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫توضیحات در باره کورس‬
‫• این کورس برای طرح‪ ,‬دیزاین و ساختن دیتابیس است‪.‬‬
‫• این کورس در برگیرینده موضوعات ذیل میباشد ‪:‬‬
‫جمع آوری معلومات از مشتری به خاطر دیزاین دیتابیس‬ ‫•‬
‫تبدیل نمودن معلومات جمع اوری شده به دیتا مودل‬ ‫•‬
‫(دیزاین نمودن دیتابیس ساده توسط ‪)ERD‬‬
‫تبدیل نمودن دیاگرام های ‪ ERD‬به ‪Relation‬‬ ‫•‬
‫به شکل عملی ترسیم دیاگرام ها توسط ‪MySQL Work bench‬‬ ‫•‬
‫به شکل عملی تطبیق و اجراء نمودن دیتابیس در پرگرام مایکروسافت اکسس ‪.‬‬ ‫•‬
‫کارخانگی‪.‬‬ ‫•‬
‫پروژه ها‪.‬‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫این کورس با کدام پروگرام ها ارتباط دارد‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫ارزیابی‬

‫پروژه های کورس‪%10..................‬‬ ‫•‬


‫کارخانگی)لیاقت صنفي(‪%5 ...........‬‬ ‫•‬
‫نظم ‪ ،‬دسپلین و اخالق‪%5 .............‬‬ ‫•‬
‫امتحانات ‪%80............................‬‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫برای مطالعه بیشتر‬

‫لکچر نوت‬ •
Modern Database Management System (Jaffery A. Hoffer) •
Step by Step Courseware M.S Access (Microsoft Access •
2002) – Microsoft
Microsoft Access 2003 •
Database 1 Chapter •
:‫• ادرس های انترنتی‬
http://www.istutorials.com/database-tutorials.htm •
http://db.grussell.org •
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
‫اهداف و دست اورد از این کورس‬

‫‪ .1‬اموختن مهارتها در استفاده از دیتابیس هاي مرتبط )‪.(Relational Databases‬‬


‫‪ .2‬اموختن مهارتها در تهیه دیتا مودل ها (‪. )Data Model‬‬
‫‪ .3‬اجرا طریقهء ‪ Normalization‬باالي یک مودل ‪: Relational‬‬
‫توسط این پروسه میتوانیم یک دیتا بیس را طوری دیزاین نمایم تا از وقوع غلطی و تکرار دیتا جلوگیری‬ ‫‪(a‬‬
‫شده باشد ‪.‬‬
‫‪ .4‬به شکل عملی ترسیم دیاگرام ها توسط ‪MySQL Work bench‬‬
‫‪ .5‬به طور عملی طریقه استعمال و دیزاین یک دیتابیس ساده توسط پروگرام مایکرو سافت‬
‫اکسس‬
‫‪ .6‬با ختم این صنف شما قادر خواهید بود تا دیتابیس شخصي خود تان را یجاد نماید ‪.‬‬
‫‪ .7‬همچنان خواهید توانست با اشتراک در گروپ ها به دیزاین دیتابیس هاي وسیع بپردازید ‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫بسم هللا الرحمن الرحیم‬

‫اساسات دیتابیس‬
‫موضوع‪ :‬تعریفات و مفاهیم دیتابیس‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫آنچه در اين جلسه مي خوانيد‪:‬‬

‫‪ -1‬سیستم ذخیره و بازیابي اطالعات در معناي عام‬


‫‪ -2‬دسته بندی تكنولوژیكي سیستم مدیریت دیتابیس‬
‫‪ -3‬دیتا‬
‫‪ -4‬تعریف معلومات یا ‪information‬‬
‫‪ -6‬تعریف دیتابیس‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫اصطالح دیتابیس یكي از رایجترین اصطالحات در دانش و‬
‫فن كمپیوتر است‬

‫در این درس محصلین تنها با بخشي از مفاهیم بنیادي‬


‫دانش وفن دیتابیس آشنا شده‪ ،‬آگاهي اساسی الزم را‬
‫براي مطالعه بیشتر و یا كار در این زمینه كسب‬
‫میكنند‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫اهمیت دیتابیس‬

‫استفاده و دانستن تکنالوژي دیتابیس ‪ ،‬امروزه یک جزء مهم تمامي امور در زندگي را تشکیل‬ ‫•‬
‫میدهد ‪ .‬دیتابیس ها در اکثریت مواردقابل استفاده میباشد ‪.‬‬
‫دیتابیس در عصر تکنالوژی امروزی در زندگی بشر بی تاثیر نیست زیرا اگر ما متوجه شویم‬ ‫•‬
‫به اشکال مختلف با دیتابیس سروکارداریم‪.‬‬
‫طورمثال‪:‬‬ ‫•‬
‫اگر به خاطر دریافت و یا پس انداز پول به بانک مراجعه میکنیم‪،‬‬ ‫•‬
‫اگر به پوهنتون ها به خاطر دریافت نتایج امتحانات(ترانسکرپت) مراجعه میکنیم ‪.‬‬ ‫•‬
‫سروي تعداد استفاده کننده گان دیتابیس ‪ Facebook‬اضافه تر از ‪25‬میلیون نشان میدهد ‪.‬‬ ‫•‬

‫• ‪.....‬‬
‫• این همه کار ها بیدون دیتابیس امکان پذیر نیست‪.‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫سیستم مدیریت دیتابیس یكي از سیستمهاي‬
.‫ذخیره و بازیابي اطالعات است‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫دیتا چه است ؟‬

‫• دیتا ساخته شده از ‪ Text‬تصاویر و ویدیو و آواز است که میتواند توسط کمپیوتر‬
‫تحت پروسس قرار گیرد‪.‬‬
‫• و یا به عبارت دیگر معلومات به شکل خام‬
‫(‪)information in row format‬عبارت از دیتا است‪.‬‬
‫• یا معلومات که پروسس نشده باشد عبارت از دیتا است‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫معلومات( ‪) Information‬‬
‫اگر دیتا طوری تفسیر و پروسس شود که برای استفاده کنندگان معلومات اضافی را ارایه‬ ‫•‬
‫دهد‪.‬‬
‫دیتا که بعد از پروسس در معلومات یک شخص بیافزاید عبارت از معلومات است ‪.‬‬ ‫•‬
‫حالت پروسس شده دیتا را معلومات گویند ‪.‬‬ ‫•‬
‫اگر دیتاها طور ترتیب و تنظیم گردد که برای ‪ user‬یک معنی و مفهوم ارایه نماید عبارت‬ ‫•‬
‫از معلومات است‪.‬‬

‫‪Data‬‬ ‫‪Information‬‬ ‫‪Knowledge‬‬ ‫‪Action‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫معلومات و دیتا‬
‫دیتا (‪ )Data‬؟‬ ‫معلومات (‪ )Information‬؟‬
‫هر چیزی اولیه که برای کمپیوتر قابل پذیرش‬ ‫معلومات شکل پروسس شده و‬
‫وپروسس باشد‪.‬‬ ‫تنظیم شده دیتا است‪.‬‬

‫دیتا‬ ‫پروسس‬ ‫معلومات‬


‫‪25‬‬
‫والیت‬ ‫عمر‬ ‫اسم‬
‫احمد‬ ‫‪25‬‬ ‫کابل‬ ‫عمر‬ ‫کابل‬ ‫‪25‬‬ ‫احمد‬
‫احمد‬

‫احمد ‪ 25‬سال عمر دارد و باشنده والیت کابل میباشد‬


‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫؟‬ ‫دیتابیس‬
‫• دیتابیس از دو کلمه تشکیل شده‪:‬‬

‫شده‬ ‫دیتابانک هم یاد‬


‫وتنظیمو شده در‬
‫اطالعات‬ ‫بانک‬ ‫نام های‬ ‫مجموعهبه‬
‫دیتابیس‬
‫کمپیوتر را‬ ‫بیس‬
‫ترتب‬ ‫‪،‬‬ ‫دیتا‬
‫مرتبط‬ ‫دیتا‬
‫استگویند‪.‬‬
‫دیتابیس‬

‫منبع‬ ‫مواد خام برای‬


‫کمپیوتر‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫استعمال دیتابیس‬

‫• ایا کسی از شما فعالً از دیتابیس استفاده مینماید ؟؟؟؟‬


‫• ما در زندگی روز مره خود از دیتابیس ها به اشکال مختلف استفاده مینمایم مثآل‪:‬‬
‫تقسیم اوقات سفر هوایی ‪.‬‬ ‫•‬
‫کتابچه نمرات تیلیفون ‪.‬‬ ‫•‬
‫کتابچه یاداشت ادرس ها و غیره‪.‬‬ ‫•‬
‫هر دیتا بیس برای یک مقصد خاص اوآل دیزاین بعدآ ساخته شده و بعدآ مورد‬ ‫•‬
‫اجرا و استفاده قرار میگیرد‪،‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫دیتابیس چه است؟‬

‫سیستم دیتابیس اساسا ً یك سیستم ثبت معلومات به شكل كمپیوتري یا ‪- Computerized‬‬ ‫•‬
‫‪ Record keeping System‬میباشد‪.‬‬

‫مجموعه ترتیب شده دیتا های مرتبط به شکل منظم را دیتابیس گویند ‪.‬‬ ‫•‬
‫یا‬ ‫•‬
‫در مورد یک یا چند شی مجموعه دیتا های با هم ارتباط یافته را دیتا بیس گویند ‪.‬‬ ‫•‬

‫مجموعه دیتا که به شکل منظم ترتیب و ذخیره شده باشد و در صورت ضروت به اسانی در‬ ‫•‬
‫دسترس قرارگرفته ‪،‬تجدید و اداره شده بتواند‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫سیستم های ثبت اطالعات‬
‫برای ثبت وپروسس اطالعات دو نوع سیستم وجود دارد‪:‬‬

‫سیستم ساده یا سیستم سنتی یا ‪File based System‬‬ ‫‪.1‬‬

‫سیستم دیتابیس یا ‪Database System‬‬ ‫‪.2‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫پروسس اطالعات به سیستم ساده (در پوهتنون)‬
‫سیستم ساده (‪)file based system‬‬

‫اطالعات در چندین فایل و به شکل تکراری ثتب گردیده‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مثال از دیتابیس کتابخانه در پروگرام اکسل‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Database System ‫سیستم دیتابیس‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫نواقص استعمال فایل ها به شکل معمولی(‪)file based system‬‬

‫‪ .1‬وقوع تکرار دیتا در فایل های مختلف صورت میگیرد‪.‬‬


‫‪ .1‬حافظه زیاد رامیگیرد‪.‬‬
‫‪ .2‬حفاظت آن مشکل میگردد‪.‬‬
‫‪ .3‬اگر در یک فایل تغیر بیآید ممکن در جای دیگری امکان بی ثباتی به میان بیاید‪.‬‬
‫کنترول مرکزی وجود ندارد‪.‬‬ ‫‪.2‬‬
‫هر نفر برای فایل خود به شکل جداگانه فایل ها را دیزاین میکند‬ ‫‪.3‬‬
‫برای فایل ها دیزاین و فارمت ستندرد وجود ندارد‪.‬‬ ‫‪.4‬‬
‫مصوءنیت آن مشکل میباشد‪.‬‬ ‫‪.5‬‬
‫فلتر كردن آن مختص به همان پروگرام خاص و به صورت محدود میباشد‬ ‫‪.6‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫فواید دیتابیس‬
‫ذخیره گاه مرکزی برای معلومات‪.‬‬ ‫‪‬‬
‫دیتا میتواند از یک مرکزیت کنترول شود‪.‬‬ ‫‪‬‬
‫دیتابیس میتواند ریکارد ها را به مقدار زیاد ذخیره نماید‪.‬‬ ‫‪‬‬
‫توسط دیتابیس میتواند بسیار به سرعت و اسانی معلومات خواسته شده را پیدا نمایم‪.‬‬ ‫‪‬‬
‫دردیتابیس میتوانیم بسیار به اسانی دیتا را از بین برده ‪،‬اضافه و یا تجدید )‪ (Update‬نماییم‪.‬‬ ‫‪‬‬
‫دیتاهای یک دیتابیس میتواند برای دیگرمقاصد از قبیل ‪ Mail-Merge‬استعمال گردد‪.‬‬ ‫‪‬‬
‫در یک وقت میتواند چندین نفر از عین دیتابیس استفاده نماید (‪.)Multi access‬‬ ‫‪‬‬
‫فایل ها میتواند به فارمت ستندرد ذخیره و نگهداری شود‪.‬‬ ‫‪‬‬
‫‪ Security‬آن نسبت به فایل های کاغذی وفایل های کمپیوتری غیرمنظم بهتر میباشد‪.‬‬ ‫‪‬‬
‫دیتا با دیگران مشترک گذاشته شده میتواند‪.‬‬ ‫‪‬‬
‫بسیار به اسانی معلومات ازآن گرفته شده میتواند‪.‬‬ ‫‪‬‬

‫‪ DBMS‬ضرورت است‬
‫?‬ ‫برای این همه کار ها به‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫موارد استفاده دیتابیس‬

peace Search

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫موارد استفاده دیتابیس‬

‫جستجو‬ B0117955

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫موارد استفاده دیتابیس‬

Said kamal
***********
Enter

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫موارد استفاده دیتابیس‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫یک مثال دیتابیس‬

‫• مثآلیک پوهنتون دیتا بیس به نام (‪ )University Database‬را برای محصلین داشته میباشد که‬
‫ممکن در آن معلومات راجع به محصلین کورسهای محصلین و درجه هر محصل موجود میباشد‬
‫که در ذیل ان معلومات را بشکل دیتابیس در اورده که بعضی معلومات ها هم در آن عالوه‬
‫نموده ایم ‪ .‬در این دیتابیس همه معلومات را در ‪ 5‬فایل (‪ ) Table‬گنجانیده ایم که هر یک از این‬
‫فایل ها معلومات های هم نوع را در ریکارد ها )‪ )Records‬جابجا میسازد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫دیتابیس پوهنتون‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫ارتباط بین فایل های دیتابیس پوهنتون‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫سواالت‬
‫ چه است؟‬Information ‫ و‬Data ‫فرق بین‬ •
‫ چه است؟‬Database •
‫دیتا چه است تعریف نماید؟‬ •
‫سه فواید دیتابیس را بیان نماید؟‬ •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫در کدام موارد از دیتابیس استفاده میگردد؟‬

‫ممكن یك شركت ساختماني معلومات پروژهاي خود را در دیتابیس ثبت نماید‪.‬‬ ‫‪‬‬
‫ممکن پولیس تفصیالت در مورد جرایم مجرمان را در دیتابیس ذخیره نماید‪.‬‬ ‫‪‬‬
‫ممکن یک مکتب معلومات راجع به شاگردان ‪ ،‬کارمندان و استادان خود در دیتابیس ثبت‬ ‫‪‬‬
‫نماید‪.‬‬
‫ممکن یک شفاخانه معلومات راجع به مریضان ‪ ،‬داکتران ‪ ،‬ومصارف خود ثبت نماید‪.‬‬ ‫‪‬‬
‫ممکن حکومت ها معلومات راجع به مالیات مردم ثبت نماید‪.‬‬ ‫‪‬‬
‫ممکن یک بانک معلومات راجع به حساب داران خود در دیتابیس داشته باشد‪.‬‬ ‫‪‬‬
‫ممکن پوهنتون معلومات راجع به محصلین ‪ ،‬استادان ‪ ،‬دیپارتمنت ها ‪ ،‬کورسهای موجود در‬ ‫‪‬‬
‫هر دیپارتمنت ‪ ،‬سکشن های موجود در اکادمی وبالخره معلومات راجع به تمام کارمندان خود‬
‫در یک دیتابیس ذخیره نماید……‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫یک سیستم دیتابیس چه است ؟‬
‫یک سیستم دیتابیس چه است ؟‬
‫‪-‬سیستم دیتابیس اساسا ً یك سیستم ثبت معلومات به شكل كمپیوتري یا‬
‫‪Computerized Record Keeping System‬‬
‫یک سیستم دیتابیس بصورت عمومي متشکل از چهار قسمت ذیل میباشد‬
‫‪Database‬‬
‫‪System‬‬
‫‪Users‬‬

‫‪Database Application‬‬

‫‪DBMS‬‬

‫‪Database‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫یک سیستم دیتابیس چه است ؟‬
‫یک سیستم دیتابیس بصورت عمومي متشکل از چهار قسمت ذیل میباشد‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫اشخاص که در سیستم دیتابیس دخیل اند‬
‫‪:‬‬
‫‪ Application Programmer‬این کتگوری اشخاص در بخش ساختن اپلیکیشن ها ماهرین میباشد و‬ ‫•‬
‫مطابق ضروریات یک اداره برای دیتابیس ها ‪ Application ،‬ها را دیزاین و تهیه مینماید ‪.‬‬
‫‪ :End User‬اشخاص که ‪ Application‬های دیتابیس که توسط ‪ Application Programmer‬تهیه شده باشد‬ ‫•‬
‫استفاده مینماید ‪.‬‬
‫میباشد‪:‬‬ ‫• ‪ End User‬به انواع ذیل‬
‫‪ :Naive‬این نوع اشخاص تنها به ‪ Application‬سرو کار دارد و به دیگر بخشهای دیتابیس کاری ندارد‬ ‫•‬
‫صرف میتواند دیتا را از طریق فورم ها داخل دیتابیس نماید‪.‬‬
‫‪ :Sophisticated Users‬این نوع اشخاص نسبت به ‪ Naive‬اختیارات زیادتر را دارا میباشد و‬ ‫•‬
‫میتواند در بعضی بخش های مهم دیگری دیتابیس هم دسترسی داشته باشد ‪ ،‬این شخص باید در بخش دیتابیس‬
‫کافی مهارت داشته باشد ‪ ،‬و مسولیت انها هم اضافه تر میباشد و میتواند به اشکال مختلف یک ‪Application‬‬
‫‪Program‬را استفاه نماید‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫اشخاص که در سیستم دیتابیس دخیل اند‬
‫‪:‬‬
‫)‪ Database Administrator (DBA‬شخصی که مسوءلیت ادره ‪،‬محافظت و نگهداری دیتابیس بر‬ ‫•‬
‫عهده دارد این اشخاص در پست حساس کار مینماید و تمام مسولیت ها برای اداره و کنترول استفاده کننده ها به عهده ان‬
‫میباشد و باید در بخش دیزاین و اداره دیتابیس مهارت خاص داشته باشد ‪.‬‬

‫‪ :System‬شخصی که مسوءلیت دیزاین نمودن سافت ویر و دیتابیس را داشته باشد‪.‬‬ ‫• ‪Developer‬‬

‫‪ :Database designer‬شخصی که مسوءلیت مشخص کردن دیتا برای دیتابیس و تعین نمودن ساختار دیتابیس‬ ‫•‬
‫برای ذخیره دیتا را به عهده دارد ‪.‬‬

‫)‪ :System Analyst(Software Engineer‬شخصی که وظیفه آن تعین و جمع آوری معلومات و دانستن‬ ‫•‬
‫ضرورت های استفاده کننده (‪)End User‬میباشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪DBMS‬‬
‫در بین دیتابیس و استفاده کننده گان سیستم بصورت فزیکي یک طبقه ً از ‪Software‬‬ ‫•‬
‫موجود است که به نام های ذیل نیز یاد میگردد‪:‬‬
‫‪. Database Manager‬‬ ‫‪.1‬‬
‫‪. Database Server‬‬ ‫‪.2‬‬
‫‪. DBMS‬‬ ‫‪.3‬‬
‫سیستم اداره ء دیتابیس‪.‬‬ ‫‪.4‬‬
‫یا به عبارت دیگر‪:‬‬
‫یک کمپیوترایزد دیتابیس توسط دیتابیس منجمنت سیستم ایجاد و اداره میگردد ‪.‬‬ ‫•‬
‫‪ DBMS‬در حقیقت یک پروگرام برای مقاصد عمومی در بخش دیتابیس میباشد که توسط‬ ‫•‬
‫آنها ‪ User‬میتواند یک دیتابیس را دیزاین ‪ ،‬تنظیم و دست رسی استفاده کننده را کنترول‬
‫نمایند‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬ ‫•‬


Database Management System

 A software system that is used to create, maintain, and provide controlled


access to user databases
‫ تنظیم و ارایه کردن معلومات به‬، ‫ذخیره‬، ‫ عبارت از پروگرام است که به خاطر ایجاد‬DBMS 
.‫استفاده کننده گان مجاز استفاده میگردد‬
‫آمریت تدریسات‬

‫دیپارتمنت کمپیوتر ساینس‬

‫دیپارتمنت حقوق‬ DBMS


Central database
‫دیپارتمنت تاریخ‬ ‫دیتابیس مرکزی‬

DBMS manages data resources like


an operating system manages
.
.
.

hardware resources

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


DBMS

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫وظایف ‪DBMS‬‬
‫‪ – 1‬اداره دکشنري دیتا (‪.)Meta data‬‬ ‫•‬
‫‪ – 2‬اداره ذخیره دیتا ‪.‬‬ ‫•‬
‫‪ – 3‬ایجاد دیتابیس ‪.‬‬ ‫•‬
‫‪ – 4‬ایجاد جداول )‪. (Tables‬‬ ‫•‬
‫‪ – 5‬ایجاد ساختمان هاي کمکي ‪.‬‬ ‫•‬
‫‪ – 6‬خواندن دیتا از یک دیتابیس ‪.‬‬ ‫•‬
‫‪ – 7‬تغیر آوردن در دیتا یک دیتابیس ‪.‬‬ ‫•‬
‫‪ – 8‬حفظ و نگهداشت ساختمان هاي داخلي دیتابیس ‪.‬‬ ‫•‬
‫‪ – 9‬اجراء اوامر ‪.‬‬ ‫•‬
‫‪ – 10‬ثبات دیتا( ‪) Data Consistency‬‬ ‫•‬
‫‪ – 11‬کنترول همزمانی (‪. ( Concurrency Control‬‬ ‫•‬
‫‪ – 12‬امنیت دیتا )‪. ( Data Security‬‬ ‫•‬
‫‪ – 13‬توسعه و تبدیل نمودن دیتابیس سابقه به دیتابیس جدید ( ‪Fast Development of new‬‬ ‫•‬
‫‪.)Application‬‬
‫‪ – 14‬تهیهء ‪ Backup‬و مطمـًن بودن دیتا )‪.(Backup and Recovery Procedures‬‬ ‫•‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫دسته بندي سیستمهاي مدیریت دستابیسها‬

‫سیستمهاي مدیریت دیتابیس را ميتوان به چندین صورت دستهبندي نمود این دستهبنديها در ذیل آمدهاند‪:‬‬
‫از نظر مودل دیتا‬
‫• سیستم رابطهاي‬
‫• سیستم سلسله مراتبي(درختی)‬
‫• سیستم شبكهاي‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫دسته بندي سیستمهاي مدیریت دستابیس‪….‬‬

‫از نظر دسته بندی كمپیوتر‬


‫• قابل اجرا بر روي كمپیوترهاي بزرگ و خیلي بزرگ‬
‫• قابل اجرا بر روي كمپیوترهاي متوسط‬
‫• قابل اجرا بر روي كمپیوترهاي شخصي‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫دسته بندي سیستمهاي مدیریت دستابیس‪….‬‬

‫از نظر محیط سیستم عامل‬


‫• وابسته به یك نوع خاص از سیستم عامل‬
‫• عدم وابستگي به سیستم عامل و قابل اجرا بر روي چند سیستم عامل‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫دسته بندي سیستمهاي مدیریت دستابیس‪….‬‬

‫از نظر نوع معماري سیستم دیتابیس ها‬


‫• داراي معماري دیتابیس متمركز‬
‫• داراي معماري دیتابیس نا متمركز‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫دسته بندي سیستمهاي مدیریت دستابیس‪….‬‬

‫از نظر معماري مشتري‪ -‬خدمتگذار‬


‫• توانایي در ارائه معماري یك خدمتگذار‪ -‬چند مشتري‬
‫• توانایي در ارائه معماري چند خدمتگذار‪ -‬چند مشتري‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫دسته بندي سیستمهاي مدیریت دستابیس‪….‬‬

‫از نظر نوع ترانزکشن‬


‫• پذیرنده ترانزکشن ساده و یك سطحي‬
‫• پذیرنده ترانزکشن با مودل پیشرفته (مثال تودرتو‪ ،‬زنجیرهاي و‪)...‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Application Programs
‫ دیتابیس عبارت از یک پروگرام کمپیوتر و یا دسته ء از پروگرام هاي‬Application ‫• یک‬
. ‫ استفاده میشوند‬DBMS ‫کمپیوتر میباشد که بحیث رابط بین استفاده کننده و‬
insert, ‫ در حقیقت پروگرام است که وظایف‬Database Application •
.‫ رابرای دیتابیس انجام میدهد‬update, delete

User Application Program DBMS Central database

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


DBMS and Application

Application programs can be run on either


the clients or server
Applications

Data and Data


Definitions DBMS

Applications

Applications

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Application Program ‫وظایف‬

‫ایجاد و پروسس فورم ها‬ •


‫ ها‬Query ‫اجرا‬ •
‫ ها‬Report ‫ایجاد و پروسس‬ •
Logic ‫ هاي منطقي یا‬Application ‫اجرا ء‬ •
Application ‫کنترول‬ •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Application Program ‫راپور تهیه شده توسط‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Application Program ‫راپور تهیه شده توسط‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫اجزاء دیتابیس‬
User data •
Meta data •
Indexes •
……… •

Database Components

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪: Meta Data‬‬

‫• دیتای که تشریح کننده خصوصیات و صفات دیتا های دیگر باشند ‪.‬‬
‫• دیتا که ساختار یک دیتابیس را تشریح میکند به نام ‪ Metadata‬یاد میشود‪.‬‬
‫• مانند‪:‬‬
‫• نام جدول ها ‪.‬‬
‫• نام ستون ها ‪.‬‬
‫• مشخصات یا )‪ (property‬جدول ها ‪ Column،‬ها وغیره‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


example1:Meta data
)Fiel Name( ‫) نام فیلد‬Data Type( ‫نوع اطالعات‬ )Fiel Size( ‫اندازه فیلد‬ )Caption(‫نام مستعار برای فیلد‬

StudenID Integer 6 ‫سلایر نمبر شاگرد‬

StudenName Alphabetic 30 ‫اسم شاگرد‬

StudentFName // 30 ‫ولد‬

StudentGFName // 35 ‫ولدیت‬

StudentDoB Date ‫تاریخ تولد‬

StudentClass Alphnumeric 5 ‫صنف‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


example2:Meta data

Descriptions of the properties or characteristics of the data, including data


types, field sizes, allowable values, and data context

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
‫سواالت‬
‫ چه است؟‬DBMS •
‫ کدام ها اند؟‬DBMS ‫وظایف عمدهء‬ •
‫ چه وظیفه دارد؟‬Application Program •
‫ کدام مسوءلیت دارد؟‬Database Designer •
‫ چه وظیفه دارد؟‬Database Administrator •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫سواالت‬
‫فرق بین ‪ Data‬و ‪ Information‬چه است؟‬ ‫•‬
‫‪ Database‬چه است؟‬ ‫•‬
‫فرق بین استعمال دیتابیس و استعمال فایل ها به شکل سنتی چه است؟‬ ‫•‬
‫دیتابیس را تعریف نماید؟‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫بسم هللا تعلیء‬

‫اساسات دیتابیس‬

)Types of Database( ‫انواع دیتابیس‬ :‫موضوع‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Types of Database

:‫به صورت عموم دیتابیس ها به سه نوع ذیل تقسم بندی شده است‬

Desktop or Personal database •


Client/Server Database •
Distributed Database •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Desktop or Personal database‬‬

‫عبارت از دیتابیس است که توسط یک یا چند تن محدود از ‪ User‬ها استفاده‬ ‫•‬


‫میگردد‪.‬‬
‫برای استعمال شخصی ویا یک دفتر که دیتا محدود داشته باشد مناسب میباشد ‪.‬‬ ‫•‬
‫به ‪ Software‬و ‪ Hardware‬بسیار قوی ضرورت نیست ‪.‬‬ ‫•‬
‫وسایل ذخیروی با ظرفیت زیاد را حمایه کرده نمیتواند ‪.‬‬ ‫•‬
‫برای این نوع دیتابیس ها میتوان از پروگرام ها (‪ )DBMS‬ذیل استفاده کرد‪:‬‬
‫• ‪M.S.Access‬‬
‫• ‪FoxPro‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪Client/Server database‬‬

‫این نوع دیتا بیس در محیط شبکه استفاده میگردد‪.‬‬ ‫•‬


‫در یک وقت میتواند به تعداد زیاد از ‪ User‬ها به دیتابیس دسترسی پیدا نماید‬ ‫•‬
‫به یک ‪ DBMS ، Hardware‬و سیستم عامل (‪ )OS‬قوی ضرورت دارد ‪.‬‬ ‫•‬
‫در یک وقت به هزار ها و حتی به میلیون ها استفاده کننده را قبول میکند‪.‬‬ ‫•‬
‫دیتا بسیار زیاد را در وسال ذخیروی تنظیم و ذخیره کرده میتواند ‪.‬‬ ‫•‬
‫مصوءنیت و ثبات آن نیز قوی میباشد‪.‬‬ ‫•‬
‫برای این نوع دیتابیس ها میتوان از پروگرام ها (‪ )DBMS‬ذیل استفاده کرد‪:‬‬

‫‪Oracle ‬‬
‫‪Microsoft SQL Server ‬‬
‫‪My SQL Server ‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Client/Server database

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Distributed Database‬‬

‫• دیتابیس که بشکل منطقی یک ‪ ،‬ولی بشکل فزیکی در نقاط مختلف ساحه جغرافیایی‬
‫در کمپیوتر های مختلف پخش شده باشد ‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪Distributed Database‬‬
‫این نوع دیتابیس برای ادرات و کمپنی های که شعبات جداگانه در نقاط مختلف‬ ‫•‬
‫جغرافیایی موقعیت داشته باشد(مانند بانک ها) مناسب میباشد‪.‬‬
‫در این نوع سیستم تمام کمپیوتر ها توسط شبکه انترنتی با هم وصل میگردد ‪.‬‬ ‫•‬
‫در مرکز باالی‪ Database server‬اضافی لود میاید‪.‬‬ ‫•‬
‫‪( Performance‬کارکردگی)در ‪( Branch‬شعبات) ها و مرکز کم میگردد‪.‬‬ ‫•‬
‫جواب ازطرف ‪ Database server‬بسیار کند میباشد‪.‬‬ ‫•‬
‫سبب زیاد شدن ترافیک درشبکه میگردد‪.‬‬ ‫•‬
‫چون ارتباط از طریق انترنت برقرار میباشد به همین علت مصارف مالی هم زیاد میگردد‪.‬‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫سواالت‬
‫دیتابیس به چند نوع است؟‬ •
‫ چه نوع دیتابیس است؟‬Personal Database •
‫ چه نوع دیتابیس است؟‬Client/Server database •
‫ چه است؟‬Distributed ‫ و‬Client/server ‫فرق بین دیتابیس‬ •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫بسم هللا الرحمن الرحیم‬

‫اساسات دیتابیس‬

)Models of Database( ‫انواع مودل های دیتابیس‬ :‫موضوع‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Data model?
.‫دیتا مودل عبارت از نمایش دیتا به اشکال مختلف میباشد‬
.‫به انواع ذیل میباشد‬
)Flat file system(‫سیستم فایل یا‬: file system– 1 •
‫ یا مودل شجری مانند‬: Hierarchical model – 2 •
‫ مودل شبکه یی‬: Network model – 3 •
‫ یا مودل مرتبط‬: Relational model – 4 •
‫ مودل شی گرا‬: Object Model – 5 •
‫ یا مودل مرتبط شی گرا‬: Object Relational model - 6 •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫تاریخچه‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Data model‬‬
‫• ‪: file system– 1‬سیستم فایل یا(‪)Flat file sysyem‬‬
‫در این سیتم فایل کدام تکنیک خاص از ‪ data modeling‬به کار برده‬
‫نشده و صرف به کمک سیستم فایل های سیستم عامل (‪ )OS‬دیتا را‬
‫در فایل ها ذخیره مینماید که آنرا معموالً ‪ flat file system‬یاد‬
‫مینماید‪ ،‬مانند ذخیره اطالعات در فایل نوت پد و یا ‪Microsoft‬‬
‫‪word‬وغیره‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Hierarchical model
. ‫• مشابه یک درخت سرچپه معلوم میشود‬
.‫ یاد میگردد‬Node ‫• هر فایل به نام‬
.‫ دیگر یک طرفه میباشد‬Node ‫ به‬Node ‫• حرکت از یک‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Hierarchical model

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Network data model‬‬
‫برخالف مادل شجری (درختی) در این مادل چندین فایل توسط راه های مختلف باهم دیگر‬ ‫•‬
‫وصل میباشد‪.‬‬
‫برای حرکت از یک فایل به فایل دیگر چندین راه و جود دارد این مادل انعطاف پزیر‬ ‫•‬
‫)‪ ( Flexible‬است و لی با آن هم نگهداری و در صورت‬
‫خرابی پیداکردن مشکل آن سخت میباشد ‪.‬‬ ‫•‬
‫این مادل انکشاف یافته مادل شجری است و برای دیتابیس های کالن مغلق استفاده می‬ ‫•‬
‫گردید ‪.‬‬
‫فعال این مادل زیاد مورد استفاده نیست‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪Relational Data model‬‬

‫• در مودل ‪ Relational‬دیتا در ساختار جدول مانند که بنام ‪Relation‬‬


‫یادمی گردد ذخیره میشود که این ‪ Relation‬ها با یک دیگر توسط‬
‫‪ Primary Key‬و ‪ Foreign Key‬به طوری منطقی با هم دیگر پیوند‬
‫دارد ‪ ،‬در این مودل میتوانید به هر فایل مورد ضرورت بیدون اینکه‬
‫به فایل عمومی بروید دست رسی پیدا کنید‪ ،‬طور مثال برای پیداکردن‬
‫یک ‪ employee‬ضرورت ندارید که اوالً به فایل ‪ Company‬بعداً به‬
‫فایل ‪ Employee‬و بالخره انرا جستجو نماید بلکه میتوانید مستقیما ً به‬
‫فایل ‪ Employee‬رجوع کرده شخص مورد ضرورت را پیدا نماید‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Relational Data model

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relational Data model

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relational Data model
. ‫ یادمی گردد ذخیره میشود‬Relation ‫• دیتا در ساختمان جدول مانند که بنام‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relational Data model

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relational Data model

‫) داشته باشد‬Relationship( ‫• جدول ها میتواند با جداول دیگری پیوند‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relational Data model

‫ کار میکند عبارت اند از‬Relational model ‫های که به اساس نظریه‬DBMS •


, DB2, INFORMIX, SYBASE, Ms access , My SQL Server , •
‫ در این مودل دیتا در ساختمان های دو‬، ‫ وغیره میباشد‬Oracle , SQL Server
‫ یاد میگردد ذخیره میشود‬Relation ‫بعدی که به نام‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Object Model‬‬

‫• برخالف مودل رلیشنل ‪،‬در این مادل دیتا در‬


‫ساختارهای سه بعدی ذخیره و پروسس میشود و‬
‫میتواند اشیا بسیار پیچیده مانند صدا و ویدیو را نیز‬
‫به صورت بسیار خوب پروسس نماید همچنان‬
‫بعضی پیچیدگی ها که در مودل رلیشنل وجود دارد‬
‫انرا نیز برطرف میکند مانند پروسس ‪many to‬‬
‫‪ ، many relationship‬ارث بری (‪)inheritance‬‬
‫و تجزیه اجزای دیتابیس به اجزای کوچکتر‪ ،‬مثال از‬
‫‪ DBMS‬که به اساس این مودل کار مکند عبارت‬
‫از ‪ONTOS, Gemstone‬و ‪Object Store‬‬
‫میباشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪Object Relational Data Model‬‬

‫دیتابیس های ‪ Relational‬نمیتواند که دیتا های مغلق وپیچیده مثآل اواز (‪، )Sound‬‬
‫ویدیو (‪ ) Movies‬وغیره ‪ Multimedia‬را به شکل درست ‪ Proceess‬و اداره نماید‬
‫به این ملحوظ یک نوع جدید از ترکیب مودل مرتبط( ‪ )Rlational‬و ‪Object‬‬
‫‪relational‬است که میتواند دیتا های مغلق و پیچیده را پروسس و باالی ان با اسانی‬
‫عملیات را انجام دهد ‪ DBMS‬های که به اساس همین مودل کار میکند عبارت از‬
‫‪ ODB2, UniSQL ،Oracle‬و غیره میباشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫سواالت‬
‫• چند نوع مودل های دیتابیس را میشناسید؟‬
‫ چه است؟‬hierarchical model ‫• نقص‬
‫ کدام خوبی ها دارد؟‬Relational ‫• مادل مرتبط یا‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫سواالت‬
‫‪ Field , record‬چه است؟‬ ‫•‬
‫برای ایجاد دیتابیس از کدام نرم افزار استفاده میگردد ؟‬ ‫•‬
‫‪ DBMS‬چه است تعریف نماید؟‬ ‫•‬
‫مراحل دیزاین دیتابیس را طور خلص تشریح نماید؟‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫بسم هللا الرحمن الرحیم‬

‫اساسات دیتابیس‬

Entity Relationship data modeling :‫موضوع‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫اهداف‬
‫• مراحل دیزاین دیتابیس به کمک ‪ERD.‬‬
‫• عناصر مهم مودل ‪. E-R‬‬
‫• سمبول های که در ‪ ERD‬از آن استفاده میگردد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مراحل دیزاین یک دیتابیس‬
Planning

Analysis

Logical Design

‫حفظ و نگهداشت دیتابیس‬


Physical Design

Implementation

Maintenance

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫مراحل دیزاین یک دیتابیس‬
‫مقصد ‪ :‬این دیتابیس برای چه هدف دیزاین میگردد‪.‬‬
‫‪Planning‬‬
‫‪Planning‬‬ ‫سیستم فعلی که دارای نواقص است باید تحت مطالعه قرار بگیردو‬
‫تمام کارکردگی های آن تحلیل شود‬
‫‪Analysis‬‬ ‫تا متخصصین بتواند از روی سیستم سابقه یک سیستم جدید راپیشنهاد‬
‫نماید‪،‬‬
‫همچنان دیتاکه استفاده کننده انرا درسیستم فعلی پروسس و به کار‬
‫‪Logical Design‬‬ ‫میبرد‬
‫ودیتاکه استفاده کننده انرا از سیستم به دست میاوردمطالعه میگردد‪.‬‬
‫‪Physical Design‬‬

‫‪Implementation‬‬

‫‪Maintenance‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مراحل دیزاین یک دیتابیس‬
‫مقصد‪ :‬به طور مکمل معلوم نمودن ضروریات ‪ ،‬تحلیل و تجزیه‬
‫‪Planning‬‬ ‫این ضروریات‬
‫یکجا نمودن این ضروریات برای ساختن یک مودل ‪.‬‬
‫‪Analysis‬‬
‫‪Analysis‬‬ ‫در این مرحله معلوم میگردد كه باید كدام اشخاص و چطور و‬
‫كجا باید این سستم را استفاده نماید‪.‬‬
‫در این مرحله باید یك پیشنهاد (‪ )Proposal‬نوشته شود‪.‬‬
‫‪Logical Design‬‬ ‫در این مرحله جهت ایجاد سیستم معلوماتی (دیتابیس) پیشنهاد‬
‫ترتیب و به مشتری برای تصمیم بعدی ارایه میگردد‪.‬‬
‫‪Physical Design‬‬

‫‪Implementation‬‬

‫‪Maintenance‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مراحل دیزاین یک دیتابیس‬
‫مقصد ‪ :‬به معلومات که ضرورت است آنرا استخراج میکنیم و ساختار یا‬
‫‪Planning‬‬ ‫سترکچر مفصل آنرا دیزاین مینمایم‪.‬‬
‫یعنی به کمک یکی از دیتا مودل ها (مانند ‪Entity Relationship‬‬
‫‪Analysis‬‬ ‫‪ )Model‬دیاگرام (‪ )ERD‬تهیه میگردد‬
‫تعین نمودن فورم ها اشکال نمایشی و تعین حدود امنیت دیتابیس‪...‬‬

‫‪Logical‬‬ ‫‪Design‬‬
‫‪Logical Design‬‬

‫‪Physical Design‬‬

‫‪Implementation‬‬

‫‪Maintenance‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مراحل دیزاین یک دیتابیس‬
Planning ‫ معلوم نمودن این که برای اداره این دیتابیس باید از کدام‬: ‫مقصد‬
‫ به چه طور این معلومات‬، ‫استفاده گردد‬DBMS ‫تکنالوژی یا‬
....‫ از چه نوع اندکس ها استفاده شود‬،‫ها ذخیره گردد‬
Analysis

Logical Design

Physical Design
Physical Design

Implementation

Maintenance

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫مراحل دیزاین یک دیتابیس‬
‫‪Planning‬‬ ‫مقصد ‪ :‬پروگرام کردن ‪،‬کود نویسی و راه اندازی دیتابیس‪.‬‬
‫امتحان کردن دیتابیس ‪.‬‬
‫‪Analysis‬‬ ‫دیتابیس به سیستم ‪ Install‬شده در دسترس استفاده کننده گان‬
‫قرار میگیرد‬
‫تربیه نمودن کارمندان برای استعمال این دیتابیس‬
‫‪Logical Design‬‬

‫‪Physical Design‬‬

‫‪Implementation‬‬
‫‪Implementation‬‬

‫‪Maintenance‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مراحل دیزاین یک دیتابیس‬
Planning ، ‫ درصورت خرابی ترمیم دیتابیس‬،‫ ارزیابی نمودن دیتابیس‬: ‫مقصد‬
.‫در صورت ضرورت ارتقاء دادن به دیتابیس جدید‬
.‫اداره و مراقبت از کار کرد دیتابیس‬
Analysis

Logical Design

Physical Design

Implementation

Maintenance
Maintenance

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫مراحل دیزاین دیتابیس‬
‫برای دیزاین یک دیتابیس باید مراحل ذیل در نظر گرفته شوند ‪.‬‬
‫‪ .1‬تعین هدف ‪ ،‬تهیه مواد و جمع آوری معلومات برای طرح دیتابیس‬
‫یک ‪ Data Model‬ایجاد گردد‪.‬‬ ‫•‬
‫طرح های از جدول ها ‪ ،‬فورم ها ‪ Query ،‬ها و غیره باید ترتیب شوند‬ ‫•‬
‫‪ .2‬دیزاین دیتابیس ‪:‬‬
‫در این مرحله جدول های با نام های معین نام های ستون های جداول ‪ Relationship‬ها ‪Primary Key‬‬ ‫•‬
‫ها ‪ Foreign Key‬ها و ‪ Constraint‬ها مشخص میشوند ‪.‬‬
‫‪ .3‬اجرای دیتابیس ‪:‬‬
‫در جریان این مرحله ‪ User Data‬به دیتابیس داخل میگردد ‪ Query‬ها ‪ Form‬ها و ‪ Report‬ها ایجاد‬ ‫•‬
‫میگردند ‪.‬‬
‫‪ .4‬حفظ ونگهداشت دیتابیس‪:‬‬
‫دیتابیس وقت به وقت تحت ارزیابی و نگهداشت قرار میگیرد همچنان در این مرحله به استفاده کننده‬ ‫•‬
‫گان(‪ )users‬برای استفاده دیتابیس اموزش داده میشود‪.‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫مراحل دیزاین دیتابیس‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫مودل سازی ‪)Entity Relationship model( E-R‬‬

‫عبارت از نمایش منطقی دیتا در یک سازمان میباشد این مودل‬


‫مجموع موجودیت های تمام سازمان را با روابط که این موجودیت ها‬
‫با هم دارد نشان میدهد‪،‬یا با بیان دیگر این مودل اجزای یک سیستم را‬
‫با ارتباطات که باهمدیگر دارد نشان میدهد‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مودل سازی ‪)Entity Relationship model( E-R‬‬

‫برای مودل سازی روش های مختلفی استفاده شده میتوانند که مشهورترین روش های قرار ذیل اند‬
‫• روش موجودیت‪ -‬ارتباط (‪)ER‬‬
‫• روش لسان عمومي مودلسازي (‪)UML‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مودل سازی ‪)Entity Relationship model( E-R‬‬

‫تاریخچه مودل سازی ‪: E-R‬‬


‫در سال ‪ 1976‬توسط آقای ‪ Chen‬در ‪ MIT‬ارائه گردید و به مرور زمان این ابزار پیشرفت كرد تعریف‬
‫‪ Chen‬از بانك اطالعات عبارت بود از تعدادی موجودیت‪ ،‬دارای صفات مشخص و ارتباط بین موجودیتها‪.‬‬
‫در این روش‪ ،‬سه مفهوم معنایی زیر وجود دارد‬
‫نوع موجودیت (‪)Enity Type‬‬

‫صفت (‪)Attribute‬‬

‫ارتباط‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مودل سازی ‪)Entity Relationship model( E-R‬‬

‫نمودار یا دیاگرام ‪:)ERD( ER‬‬


‫نمودار یا دیگرام ‪ ER‬عبارت از نمایش گرافیکی مودل ‪ E-R‬میباشد که در آن از سمبول‬
‫های ستندر مودل ‪ E-R‬استفاده میگردد ‪ ،‬هر سمبول به ترتیب ذکر میگردد‪.‬‬
‫نمودار ‪ ER‬در واقع نموداري است كه در آن سه مفهوم اساسي مدل ‪ ER‬یعني موجودیت‪،‬‬
‫صفت و نوع ارتباط نمایش داده ميشوند‪ .‬در واقع نمودار ‪ ER‬اولین طرح دیتابیسها و مودل‬
‫کلی ميباشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


E-R ‫عناصر مهم درمودل‬

)‫ موجودیت‬،‫(هویت‬Entity •
)‫(صفت‬Attributes •
)‫ (شناسه‬Identifiers •
) ‫ (وابستگی‬Relationships •
) ‫ (حد اعظمی و اصغری‬Cardinality •
) ‫ (هویت ضعیف‬Week Entities •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


)Entity Relationship model( E-R ‫مودل سازی‬

‫درجه‬ ‫شماره دانشجویي‬

‫نام‬ ‫درس‬ ‫نام‬


‫استاد‬ ‫محصل‬

‫رشته تحصیلي‬

ER ‫رسم نمودار‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪( Entity‬موجودیت)‬
‫• هدف ایجاد دیتابیس این است که در آن معلومات راجع به یک شخص یا شی مشخص‬
‫ذخیره گردد‪.‬‬
‫• پس هر چیزی (شی ‪ ،‬شخص ‪ ،‬محل ‪ )...‬که می خواهیم در یک سیستم راجع به آن در‬
‫‪Table‬اطالعاتی را جمع آوری و نگهداری نمائیم به نام موجودیت یا ‪entity‬‬
‫یادمیگردد ‪.‬‬
‫‪ Entity‬میتواند یک شی که دارای وجود فزیکی است باشد مانند کمپیوتر ‪ ،‬لوازم دفتر‪ ،‬موتر ‪...‬‬ ‫•‬
‫• ‪ Entity‬ممکن یک شخص باشد مثآل شاگرد (‪ ) Student‬استاد (‪ ، ) Instructor‬کارمند‬
‫(‪..... )Employee‬‬
‫یا ‪ Concept‬باشدمثآل قانون نیوتن حساب بانکی (‪…)Account‬‬ ‫‪ Entity‬ممکن یک نظریه‬ ‫•‬
‫‪Entity‬ممکن موقعیت (‪ )Place‬باشد مثآل اکادمی (‪، )Academy‬پوهنتون (‪ ، )University‬مملکت‪.‬‬ ‫•‬
‫‪ Entity‬ممکن یک حادثه (‪ )Event‬باشد مثآل تادیات فیس ‪ ،‬فروشات ‪ ،‬رجستریشن‪.....‬‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Entity

‫ را توصیف می كند كه به‬Entity ‫ شامل اجزاء هائی است که آن‬Entity ‫• هر‬


. ‫ گفته می شود‬Entity ‫) این‬Field( Attribute ‫آنها صفت و یا‬
.‫) میداشته باشد‬Value( ‫خود قیمت‬Attribute ‫برای هر‬Entity ‫• هر‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Attributes‬‬
‫و هم چنان ‪ Entity‬ها دارای ‪ Attribute‬ها اند که این ‪ Attribute‬ها نشان دهنده نوعیت یا صفت ‪ Entity‬میباشد‪.‬‬ ‫•‬

‫‪Attribute‬ها دارای نوع دیتا یا )‪ )Data types‬و ‪ Properties‬های مشخص میباشد ‪.‬‬ ‫•‬

‫مثال برای ‪ Data types‬عبارت از ‪ Character ,Number, Date, Currency‬و غیره میباشد‪.‬‬ ‫•‬

‫‪ Attribute‬ها دارای یک ‪ Domain‬اند ‪ Domain .‬عبارت از ست عناصر ممکنه برای یک ‪ Attribute‬میباشد‪.‬‬ ‫•‬

‫‪Properties‬یا مشخصات برای یک ‪ Attribute‬در مرحله اول دیزاین دیتابیس تعین میشود‬ ‫•‬

‫‪ Properties‬شرایط برای گرفتن دیتا در ‪ Attribute‬ها را وضع مینماید همچنان تعین مینماید که یک ‪Attribute‬‬ ‫•‬
‫بصورت ‪ Default‬کدام دیتا داشته باشد و قا بلیت گرفتن دیتا خالی (‪ )Null‬را داشته باشد و یا خیر و غیره‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


:‫ استفاده میگردد قرار ذیل میباشند‬E-R ‫اشکال و دیاگرام های که در مودل‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Entity

Student_I Student_Nam Student_Addre


D e ss

STUDENT

‫ طور ذیل تحریر میگردد‬Relational Model ‫ویا هم مودل باال به شکل‬


STUDENT (Student_ID, Student_Name, Student_Address)

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫نام گذاری و مشخص نمودن نام برای ‪Entity‬و ‪Attribute‬ها‬

‫• بخاطر نام گذاری ‪Entity‬ها قوانین ذیل ارآیه میگردد‪:‬‬

‫• باید نام ‪( Entity‬بعضی وقت ها به نام ‪ Entity Type‬هم یاد میگردد) یک نام منفرد ( ‪Singular‬‬
‫‪ )noun‬باشد مثال ‪ STUDENT,CUSTOMAR, EMPLOYEE‬و غیره‪.‬‬

‫• اگر برای نام ‪Entity‬از ترکیب چنیدین نام استفاده مینمایم مثآل اسم شاگرد(‪ ) Student Name‬باید‬
‫انرا طوری نوشته کرد که اولین نام هر کلمه کالن و متباقی حروف آن کوچک تحریر گردد طور‬
‫مثآل ‪ StudentName‬ویا ‪ EmployeeAddress‬ویا ‪ ، EmpAddress‬باید یاد اور شود که بین‬
‫نام فاصله داده نشود مثآل اگر تحریر گردد که (‪ )Student Name‬یا ( ‪ )Emplyee Name‬پس‬
‫به این شکل درست نیست بعضی وقت ها در صورت اجرای دستور های ‪ SQL‬غلطی رخ میدهد و‬
‫لی میتواند به عوض فاصله از عالمه ( _ ) استفاده کرد مثآل ‪، Emolyee_Name‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪ Student_Grade‬و غیره‪.‬‬
‫‪M.Arif Ahmadzai‬‬
‫نام گذاری و مشخص نمودن نام برای ‪Entity‬و ‪Attribute‬ها‬

‫• نام ‪ Entity‬باید مطابق به مشخصات و قوانین آن اداره که برای انها دیتابیس دیزاین میگردد‬
‫باشد مثآل ممکن یک کمپنی یک ‪ Entity‬را بنام ‪ EMPLOYEE‬ودیگر کمپنی به نام‬
‫‪ CLIENT‬یاد نماید و همچنان باید از دیگر ‪Entity‬ها تفاوت داشته باشدیعنی مثآل اگر دو‬
‫‪ Entity‬به نام های ‪ CUSTOMER ORDER‬و ‪ PURCHASE ORDER‬داشته باشیم‬
‫پس هر دو باید تنها به نام ‪ ORDER‬یاد نه گردد‪.‬‬

‫• اگر یک نام برای ‪Entity‬یک دفعه استعمال میگردد باید در تمام دیتابیس و حتی در تمام‬
‫‪( Organization‬اداره) از همان نام استفاده گردد‪.‬مثآل ‪ Customer‬و ‪Client ,Employee‬‬

‫• اگر به عوض نام مکمل یک ‪ Entity‬از مخفف ان استفاده میگردد باید قوانین باال را مراعات‬
‫نماید مثآل ‪ Emp‬و یا ‪ Cust‬و غیره‪.‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫‪Weak Entity‬‬
‫• این نوع ‪ Attribute‬متکی به موجودیت دیگر میباشد یعنی وجود این نوع‬
‫‪ Attribute‬مربوط به ‪ Attribute‬دیگری میباشد یا به عبارت دیگر در‬
‫صورت ناموجودیت ‪Attribute‬قوی ‪ Attribute ،‬ضعیف موجود شده‬
‫نمی تواند‬
‫نوت‪ :‬توجه داشته باشید که ‪ Weak Entity‬در چوکات های دو خطه نشان داده میشود‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Entity Instance and Entity Class

Student_ID Student_Name Student_Address


:Entity Instance
.‫میباشد‬Entity ‫نمونه یک‬
:‫یا به عبارت دیگر‬
STUDENT .‫ است‬Entity Instance ‫عبارت از‬Entity ‫ در مورد یک‬Record ‫هر‬
: Entity Class
‫ میباشد‬Entity Class ‫ ها عبارت از‬Entity Instance ‫مجموعه‬

Entity Class

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Identifier ‫شناسه‬

‫ های اند که‬Attribute ‫ ها عبارت از‬Identifier ، ‫ ها اند‬Identifier ‫ ها دارای‬Instance •


‫ بنام‬Entity Instance ‫ میکند طور مثال‬Identify ‫ را مشخص یا‬Entity Instance ‫یک‬
‫) ویا هم توسط‬Social Security Number( SSN ‫ میتواند توسط‬EMPLOYEE
.‫ مشخص شود‬EmployeeName ‫ ویا هم توسط‬Employee_Number
.‫ باید تغیر نه نماید‬Identifier ‫ یا قیمت یک‬value ‫ در طول حیات جدول در‬
.‫ را قبول نه نماید‬null ‫ قیمت‬

Employee_Number Employee_Name Address

Employee

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Identifier ‫شناسه‬

E- ‫ در مودل‬Identifire .‫ میباشد‬Identifire ‫ عبارت از‬Student_ID ‫• مثآل در مثال ذیل‬


. ‫ نشان داده میشود‬underline ‫ به شکل‬R

Student_ID Student_Name Student_Address

STUDENT

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Identifier ‫شناسه‬

‫ های اند که‬Attribute ‫ ها عبارت از‬Identifier ، ‫ ها اند‬Identifier ‫ ها دارای‬Instance •


‫ بنام‬Entity Instance ‫ میکند طور مثال‬Identify ‫ را مشخص یا‬Entity Instance ‫یک‬
‫) ویا هم توسط‬Social Security Number( SSN ‫ میتواند توسط‬EMPLOYEE
‫ مشخص شود‬EmployeeName ‫ ویا هم توسط‬Employee_Number

Employee_Number Employee_Name Address

Employee

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Identifier ‫شناسه‬

E- ‫ در مودل‬Identifire .‫ میباشد‬Identifire ‫ عبارت از‬Student_ID ‫• مثآل در مثال ذیل‬


. ‫ نشان داده میشود‬underline ‫ به شکل‬R

Student_ID Student_Name Student_Address

STUDENT

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Composite Attribute‫ و‬Derived Attribute ‫ با‬Entity ‫مثال از یک‬

CityName
Student_Address StreateName
Student_Name

Student_Age
Sudent_ID StreateNo

Student

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


)Identifier( ‫شناسه‬

‫ تشکیل شود مثآل در در‬Attribute ‫ امکان دارد از یک‬Entity Instance ‫ یک‬Identifier. •


.‫ میباشد‬Identifier ‫ عبارت از‬Student_ID ‫شکل گذشته‬
‫که به نام‬. ‫ ها تشکیل شود‬Attribute ‫ میتواند از تعداد بیشتر‬Attribute ‫• ویا هم‬
. ‫ یاد میگردد‬Composite Identifiers
‫) به دست آمده‬Flight_NO , Date(Attribute ‫ از ترکیب چندین‬Flight_ID ‫مثآل در مثال شکل ذیل‬ •

Flight_No Date

Flight_ID No_Of_Passengers

FLIGHT

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫سواالت‬
‫‪ Entity‬چه است با یک مثال تشریح کنید؟‬ ‫•‬
‫فرق بین ‪ Entity Class‬و ‪ Entity Instance‬چه است؟‬ ‫•‬
‫‪ Attribute‬چه است تشریح نماید؟‬ ‫•‬
‫یک مثال از ‪ Domain‬را بیان نماید؟‬ ‫•‬
‫مراحل دیزان دیتابیس را تشریح کنید؟‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


) Attributes( ‫انواع فیلد ها‬

:‫ها نظر به ساختمان ها به دو نوع میباشد‬Attribute •


:‫فیلد مرکب‬Composite Attribute .1
Address ‫های دیگری تجزیه و یا تقسیم شود مثآل‬Attribute ‫• میتواند به چندین‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


) Attributes( ‫انواع فیلد ها‬

: ‫( یا فیلد ساده‬Atomic) Simple Attribute .2


، Marital Status ، Gender ‫ های‬Attribute ‫ مثآل‬، ‫نمیتواند به اجزای کوچکتر تجزیه شود‬
‫ و غیره‬Age

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫همچنان ‪ Attribute‬ها نظر به داشتن محتوی نیز به دو نوع اند‪:‬‬

‫• ‪ Single Value-A‬فیلد های یک قیمته‪:‬‬


‫• ‪ Attribute‬های که دارای دیتا معین برای هر جزء میباشد ‪.‬یعنی برای هر ‪Entity‬‬
‫صرف یک جزء دیتا موجود میباشد‪.‬‬
‫• یا برای هر نمونه (‪ )Instance‬یک قیمت موجود باشد ‪.‬‬
‫• مثآل ‪ SSN‬یا (‪ )Social Security Number‬یا ‪ Emp_ID‬و یا هم سریال نمبر یک جنس‬
‫و غیره ‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫همچنان ‪ Attribute‬ها نظر به داشتن محتوی نیز به دو نوع اند‪:‬‬

‫‪ Multi valued Attribute‬یا فیلد های چندین قیمته ‪ :‬عبارت از‬ ‫‪-B‬‬
‫‪ Attribute‬های است که میتواند برای هر ‪ Instance‬یا به عبارت دیگر برای یک ریکارد قیمت‬
‫های مختلف داشته باشد مثآل یک استاد میتواند چندین درجه تحصیلی (…‪)BBA, MBA,DBA‬‬
‫داشته باشد یا مثآل یک شخص متواند دارای چندین نمبر تلفون باشد وغیره ‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Derived Attribute ‫فیلد های مشتق شده‬

.‫ های دیگر میگیرد‬Attribute ‫ که قیمت خودرا از‬Attribute •


‫ بخاطر که از ستون های‬.‫ است‬Derived Attribute ‫ عبارت از‬MarkPercentage ‫مثآل در جدول ذیل ستون‬ •
‫ بدست آمده‬Totalmark ‫ و‬ObtainedMark

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Derived and Multi value Attributes

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relationships
‫وابستگی‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫وابستگی (‪)Relationship‬‬
‫به خاطر وصل نمودن چندین ‪ Entity‬در مودل ‪ E-R‬از ‪ Relationship‬استفاده میگردد ‪ ،‬در حقیقت‬ ‫•‬
‫‪ Relationship‬به خاطر پیوند نمودن چندین ‪ Instance‬یک یا چندین ‪ Attribute‬استفاده میگردد‪.‬‬
‫) نشان داده میشود‪.‬‬ ‫‪ Relationship‬در مودل ‪ E-R‬توسط عالمه (‬ ‫•‬
‫هر ‪ Relationship‬میتواند دارای یک کلمه یا کلمات از نوع فعل باشد مانند ‪.Completes‬‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


One to one Relationship
Department

Department_ID Department_Name
‫ است که ازیک‬Relationship ‫• عبارت از‬
‫ با‬Instance ‫ یک‬، ‫جانب یک جدول‬ 001 kabul
‫ در ارتباط‬Instance ‫جانب دیگر با یک‬
.‫میباشد‬ 002 herat
Manager
003 mazar
Manager_ID Manger_Name Department_ID 004 konar
1
Sls100 Ali 01
Mnanager_ID
Sls200 Ahmad 02 Department_Name
Manager_Name

Sls300 Rafi 04
Manager Departmen
Sls400 javed 03 1
t
Department_ID
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
One to many
‫ ارتباط‬Instance ‫ با طرف دیگر با چندین‬Instance ‫است که در ان از یک طرف یک‬Relationship ‫عبارت از‬ •
Sub_Code .‫میگیرد‬
Course_Name
Sub_Name

Subject Course
1
Course_Code

Subject Course

Sub_Code Sub_Name C_Code Cousrse_Code C_Name


Sub001 DBMS Cs001
Cs001 DDB
Sub002 Ms.Access Cs001
Cs002 DBA
Sub003 SQL Cs001 Cs003 MBA
Sub004 Win Server Cs004 MCSE
Cs004
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Relationship

: ‫ یا درجه وابستگی‬Degree of Relationships


‫ از‬E-R ‫ در مودل‬،‫ است‬Relationship ‫ سهم میگیرد عبارت از درجه‬Relationship ‫ های که دریک‬Entity ‫تعداد‬ •
‫) بیشتر‬Binary Relationship( ‫ بادرج ًه دو یعنی‬Relationship ‫ های ذیل استفاده میگردد ولی‬Relationship
.‫معمول میباشد‬
.‫ میباشد‬3 ‫ درج ًه دو و درج ًه‬، ‫ ها درجه یک‬Relationship ‫شکل ذیل نشان دهنده‬ •

MOTHER FATHER SUPLYER

CHILD QUOTATION

Ternary Relationship Binary Relationship

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Binary Relationship

‫ به سه شکل ایجاد شده‬Binary Relationship ‫های با درجه دو یا‬Relationship •


:‫میتواند که در اشکال ذیل به طور بهتر نشان داده شده است‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Many to many Relationship

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Many to many Relationship
associative entity (CERTIFICATE)

Entity ‫ است ولی در ضمن یک‬Relationship ‫در حقیقت یک‬Associative entity


‫هم است‬
‫ و‬COURSE ‫ بین‬Rlationship Many to many ‫ متوجه باشید که دو‬:‫یاداشت‬
‫ تبدیل شده است‬one to many، Relation ‫ به دو‬EMPLYEE
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Many to many
Teacher_Name Course_Title Date_Completed
‫ است که‬Relationship ‫• عبارت از‬
‫ با چندین‬، ‫ از یک جدول‬Instance ‫چندین‬ Zia C++ 06/2006
‫ در جدول دیگر در ارتباط‬Instance
.‫باشد‬ Chen Java 5/2007
Chen Basic 5/2005
‫• این نوع ارتباط مستقیمآ در دیتابیس عملی‬
Melton C++ 10/2005
Relationship ‫ باید انرا اول به‬، ‫نمیشود‬
.‫ تبدیل گردد‬one to many ‫از نوع‬ Melton Cobol 5/2006

Teacher ‫ و‬course ‫• مثاآل‬ Zia SQL 5/2004


Ritchi Perl 5/2007
Zia Java 5/2007
Celko SQL 10/2006

Gasoling Java 9/2007


Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Recursive Relationship

‫ به شکل داخلی ایجاد‬Entity ‫ را بین عناصر خود‬Relationship ‫ که‬Entity ‫• یک‬


‫مثآل در شکل ذیل یک نفر میتواند با یک نفر دیگر ازدواج نماید همچنان یک‬. ‫نماید‬
.‫ نماید‬Manage ‫ دیگر را اداره یا‬Employee ‫ میتواند چندین‬Employee

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫تعین حد اعظمی و حد اصغری را برای یک صفت به خاطر سهم گرفتن در وابستگی ها‬
‫)‪(Cardinality‬‬

‫• ‪ Cardinality‬حد اعظمی و حد اصغری را برای یک ‪Attribute‬به خاطر سهم گرفتن در‬


‫‪ Relationship‬تعین مینماید ‪ ،‬به عبارت دیگر ‪ ،‬به هر تناسب که یک ‪Attribute‬بتواند در‬
‫‪ Relationship‬سهیم شود‪ ،‬عبارت از ‪ Cardinality‬میباشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫تعین حد اعظمی و حد اصغری را برای یک صفت به خاطر سهم گرفتن در وابستگی ها‬
‫)‪(Cardinality‬‬

‫• ‪ Minimum Cardinality‬به اشکال مختلف نشان داده میشود‪ .‬از جمله برای نمایش حد اقل‬
‫یک ‪ ، Entity‬یک خط عمودی در کنار ‪ Entity‬بروی خط ‪ Relationship‬گذاشته میشود و‬
‫برای نمایش حد اقل صفر ‪( Entity‬یعنی که موجودیت ‪ Entity‬در ‪ Relationship‬اختیاری‬
‫است) یک بیضوی کوچک بشکل عمودی درکنار ‪ Entity‬بروی خط ‪ Relationship‬دیاگرام‬
‫آن رسم میشود ‪.‬‬
‫و یا هم میتوان به شکل ‪ N:M‬ستفاده کرد‪.‬‬ ‫و یا‬ ‫• برای نمایش چندین سمبول‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫)‪(Cardinality‬‬

‫هرتاریخچه نتها وتنها میتواند برای‬


‫یک مریض ثبت گردد‬ ‫تاریخچه مریض باید حتمآ یک دفعه ثبت گردد‬
‫ولی میتواند چندین دفعه ثبت شود‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫)‪(Cardinality‬‬

‫دریک پروژه باید حتمآ حد اقل یک کارمند کارنماید‬ ‫یک کارمند میتواند در چندین پروژه ثبت گردد ولی‬
‫ولی میتواند چندین کارندان در یک پروژه کارنماید‬ ‫میتواند در هیچ پروژه ثبت نشود‬

‫نشان دهنده ‪ cardinality‬در ‪Many to many Relationship‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


(Cardinality)

‫یک شخص میتواند به یک شخص دیگری‬


‫ازدواج نماید ولی ممکن است بین خود هیچ‬
‫ازدواج نه نماید‬

.‫ میباشد‬Recursive Relationship ‫ در‬Cardinality ‫نشان دهنده‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫ میتواند به اشکال مختلف نشان داده شود‬Cardinality

Binary One to One

Binary One to Many

Binary Many to many

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


(Cardinality) ‫مثال های از‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Enhanced ERD‬‬

‫• این مادل شکل توسعه یافته از مادل ‪ ERD‬میباشدکه دارای بعضی ساختمان یا‬
‫سمبول های خاص میباشد‪.‬‬
‫بعضی مفاهیم‪:‬‬
‫‪( Super Class‬کالس عمومی) یا (‪ :)Super Type‬عبارت از یک صنف از موجودیت‬
‫(‪ )Entity Class‬عمومی است که با یک یا چندین کالس دیگری ارتباط داشته باشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Enhanced ERD

‫شکل‬super type/subtype ‫ در‬ERD


Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
‫چه وقت باید از ‪ SubClass/SuperClass‬استفاده گردد ؟‬

‫‪ .1‬در صورت که برای‪( Instance Entity‬نمونه کالس)ها بعضی صفات یا ‪ Attribute‬موجود‬


‫و برای بعضی اعضا موجود نمیباشد مثآل در مثال ذیل ‪ Hourly_Rate‬تنها مربوط به کسانی‬
‫است که ساعتانه کار میکند (مربوط به ‪ HOURLYEMPOLYEE‬میباشد)‬
‫تمام کارمندان(‪ ) Employees‬اعم از کالس های فرعی‬
‫دارای ‪، Employee_Name ، Employee_Number‬‬
‫‪ Date_Hired Address‬میباشد‬

‫هر کارمند (‪ ) Employee‬از کالس فرعی دارای‬


‫بعضی صفات خاص میباشد‪.‬‬

‫‪ ERD‬در ‪super type/subtype‬شکل‬


‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫چه وقت باید از ‪ SubClass/SuperClass‬استفاده گردد ؟‬

‫‪ .2‬در صورت که یک گروپ فرعی به یک ‪ Entity Class‬دیگر ارتباط داشته باشد مثآل برای‬
‫دیتابیس یک شفاخانه ممکن مریض ها به دو نوع باشدکه عبارت از مریضان‬
‫داخل(‪ )RESIDENTPATIENT‬بستر و مریضان خارج بستر (‪)OUTPATIENT‬‬

‫‪ ERD‬در ‪super type/subtype‬شکل‬


‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
Generalization

‫ میباشد‬Generalization ‫ های خاص یک کالس عمومی به میان اوردن عبارت از پروسه‬Entity Class ‫از چندین‬ •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Specialization
‫ پروسه است که توسط ان یک کالس عمومی به چندین کالس های فرعی تقسیم میگردد این‬Specialization
‫ میباشد‬Generalization ‫عملیه معکوس عملیه‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪:UML Entities and Relationship‬‬

‫• هر ‪ Entity‬توسط یک ‪ Entity Class‬در داخل چوکات که از سه قسمت تشکیل‬


‫شده ‪ ،‬نشان داده شده است‪ .‬قسمت باالیی چوکات‪ ،‬نام ‪ Entity‬را نشان میدهد‪.‬قسمت‬
‫دوم آن ‪ Attribute‬های مربوطه همین ‪Entity‬را نشان میدهد‪ ،‬قسمت سوم نشان‬
‫دهندهء قواعد و میتودهای که پروگرام باید به ان عمل نماید ومربوط ‪، Entity‬‬
‫میباشد نشان میدهد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


UML
EMPLOYEE PARKINGSPACE

EmploeeNumber ParkingNumber
EmployeeName 0....1 1....1 Location
OfficePhone OtherAttribute
EmailAddress

EmployeeNumber is ParkingNumber is
Identifier Identifier

1 : 1 ‫ از نوع‬: Relationship ‫الف‬

ITEM QUOTATION

ItemNumber QuotationID
Description QutationDate
1....1 0...*
Category Quantity
RetailPrice

ItemNumber is Identifier QuoantityIDis Identifier

1 : N ‫از نوع‬: Relationship ‫ب‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


UML

STUDENT COURSE
StudentID
StudentName CourseID
0....* 1....*
StudentPhone CourseName
EmailAddress OtherAttribute
StudentID is Course is Identifier
Identifier

M : N ‫از نوع‬: Relationship ‫ج‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


:

UML ‫ در‬Weak Entity ‫نمایش‬

PATIENT PRESCRIPTION

PrescNo
Name Date
1
Phone 0....* PrescDetail

PrescriptionID

Name is Identifier is Identifier

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫بسم هللا الرحمن الرحیم‬

‫اساسات دیتابیس‬

Basics of database design :‫موضوع‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫اهداف‬
: ‫اشنا شدن با‬
)Relational model( ‫مودل مرتبط‬ .1
: ‫ بعضی مفاهیم اولیه‬.2
Table
Record
Field
Entity
Domain
Primary Key
:‫ مراحل دیزاین دیتابیس‬.3

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫مفاهیم اولیه‬
‫جدول )‪ : (Table‬ساختمان است که از خط های عمودی و خط های افقی ساخته شده باشد‪.‬‬
‫• ‪ -Record:‬مجموعه دیتا یا معلومات مشخص در مورد یک شی یا ‪ Entity‬را ریکارد‬
‫گویند که بنام ‪Row‬یا سطر هم یادمیشود‪.‬‬
‫• ‪Field: -‬یگانه دیتا که برای هر ریکارد به کار برده می شود بنام فیلد یا کالم یاد می گردد‪.‬‬
‫• یا به عبارت دیگر‪ :‬دیتا واحد مربوط به ریکاردیک شخص یا شی در فیلد ذخیره میگردد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مفاهیم اولیه‬
• Domain
• Set of all possible values for a specific column.
.‫ست تمام قیمت های ممکنه برای یک فیلد مشخص‬

• Primary Key
‫ را‬null ‫عبارت از یک یا چندین کالم بوده که از تکرار ریکارد جلوگیری میکند و قیمت‬
.‫هم قبول نمیکند‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫مشخصات ‪Relation‬‬

‫یک ‪Relation‬مانند جدول عبارت از ساختاردو بعدي (بعد اول ان عبارت ازقطارهای‬ ‫•‬
‫عمودی یا کالم ها وبعد دوم ان قطار های افقی یا سطر ها میباشد ) با مشخصات ذیل میباشد ‪.‬‬
‫سطر ها ) ‪(Rows‬نشان دهنده دیتا در مورد ‪ Entity‬میباشد ‪.‬‬ ‫•‬
‫ستون ها )‪(Columns‬نشان دهنده ‪Attribute‬هاي ‪ Entity‬میباشد‪.‬‬ ‫•‬
‫خانه های )‪ (Cells‬یک جدول )‪ (Table‬هر کدام یک قسمت مشخص دیتا را دارا میباشد ‪.‬‬ ‫•‬
‫هر ستون داراي یک نام مشخص میباشد ‪.‬‬ ‫•‬
‫ترتیب قرار گرفتن ستون ها در جدول غیر مشخص است ‪.‬‬ ‫•‬
‫ترتیب قرار گرفتن سطر ها در جدول غیر مشخص است ‪.‬‬ ‫•‬
‫دو سطر داراي عین محتویات بوده نمیتوانند ‪.‬‬ ‫•‬
‫دیتا در هر سطر مربوط به یک ‪( entity‬شی ‪ ،‬شخص یا موقعیت ) میباشد‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مشخصات ‪Relation‬‬

‫تکرار عین دیتا در یک ‪ Cell‬مجاز نمیباشد ‪.‬‬ ‫•‬


‫دیتا در یک ستون باید از یک نوع مشخص باشد (یا به عبارت دیگر دیتا باید از یک‬ ‫•‬
‫دومین خاص باشد)‪.‬‬
‫نام هاي ستون ها در یک رلیشن تکرار نشود‪.‬‬ ‫•‬
‫اندازه دیتا در یک ‪ Cell‬معین نیست ‪.‬‬ ‫•‬
‫نام جدول در یک دیتابیس غیر تکراری است‬ ‫•‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مثال های ذیل ِرلیشن نیستند‬
Non Relation Example

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relation ‫مثال یک‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Relation ‫مثال یک‬

‫ طور ذیل تحریر میگردد‬entity ‫در مودل رلیشنل یک‬

STUDENT (Student_ID, Student_Name, Student_Address)

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫بعضی اصطالحات‬
Database Relational Model programmer ER Model

Table Relation File Entity

Field Attribute Field Attribute


Row Tuple Record Entity instance

Primary key Primary key Key( or link) Identifier

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫بسم هللا الرحمن الرحیم‬

‫اساسات دیتابیس‬

Types of key :‫موضوع‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫اهداف‬
. Relational ‫• کلید ها در مودل‬
Primary key •
Foreign key •
None key •
Candidate key •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫انواع کلید ها )‪(Types of Keys‬‬

‫• یک کلید )‪ (Key‬عبارت از یک یا اضافه از یک ستون در یک جدول میباشد که معموآل‬


‫براي شناسایی یک سطر (‪ Row‬یا ‪ )Record‬استفاده میشود ‪.‬‬
‫• ستون کلید معموآل دو وظیفه دارد‪:‬‬
‫به حیث ‪ Primary key‬که توسط آن از تکرار سطر ها جلوگیری میگردد یعنی ریکارد تکراری را‬ ‫•‬
‫قبول نمیکند‪.‬‬
‫به حیث ‪ Foreign key‬که برای ایجاد ‪ Relationship‬به کار برده میشود‪.‬‬ ‫•‬
‫• این نوع ستون میتواند دیتا تکراري داشته باشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪Primary and Candidate Keys‬‬

‫‪:Primary‬‬
‫• یک ‪ Attribute‬یا ‪ Attribute‬ها که و قوع یک ‪ Entity instance‬را به شکل‬
‫غیر تکراری تعریف نماید عبارت از ‪ Primary Key‬است‪.‬‬
‫• یا به عبارت دیگر ‪ :‬عبارت از یک ‪ Attribute‬یا چندین ‪ Attribute‬است که از‬
‫تکرار ریکارد ها جلوگیری میکند‪.‬‬
‫• ‪ Primary keys‬تنها بخاطر داشتن دیتا غیر تکراري مهم نبوده بلکه بخاطر ایجاد‬
‫پیوند یا ‪ Relationship‬نیز مهم میباشند ‪.‬‬
‫• محتواء ‪ Primary Key‬را به منظور هاي مختلف دیگر نیزاستفاده مینمایند ‪ .‬مثال‬
‫براي تنظیم نمودن ‪ Relation‬در داخل دیتابیس تهیه ‪ Index‬ها بخاطر دستیابي‬
‫فوري به دیتا ‪ ،‬برای جلوگیر از تکرار و غیره ‪.‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
Primary key Attribute
:‫ دارای خواص ذیل اند‬Primary key Attribute •
.‫ (خالی ) داشته باشد‬Null ‫نمیتواند قیمت‬ •
.‫) را قبول نمینماید‬Duplicate( ‫قیمت تکراری‬ •
:‫ ها به دو نوع است‬Primary key
‫ است که کهه‬Primary key ‫ عبارت از‬: Atomic or simple Primary Key .1
Atomic ‫ بهه طهور اختصهاری‬، ‫ ) باشهد‬Attribute ‫ یها‬Column(‫تنها دارای یک سهتون‬
Atomic PK ‫ عبارت از‬StudID ‫ مثاآل‬.‫ هم نوشته میگرد‬PK ‫به شکل‬Primary key
.‫است‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Composite Keys Attributes
.‫) تشکیل شده باشد‬Attribute( ‫ عبارت از کلید است که اضافه تر از یک ستون‬.2

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


None Key Attribute
.‫ باشد‬Primary key ‫ میباشد و نه هم بخش از‬Primary key ‫که نه خودش‬Attribute •
:Foreign Key Attribute and Referential Integrity •

‫ است‬none key ‫است که در حقیقت‬Attribute ‫عبارت از‬: Foreign key Attribute •


‫ هر دیتا که‬. ‫ ارتباط داشته میباشد‬Primary key Attribute ‫ دیگری با‬Relation ‫ولی دریک‬
‫ موجود باشد‬primary key ‫در این کالم داخل میگردد باید قبالً در کالم‬

‫ داشتن‬، ‫ مهم نیست بلکه شرط مهم‬Foreign Key ‫ و‬Primary Key ‫• داشتن عین نام براي‬
. ‫عین گروپ عناصر (دیتا ) میباشد‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Primary key and Foreign key

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Surrogate Keys ‫کلید هاي جانشین یا‬

‫• ایننن کلینند از تکننرار و اضننافه نویسنني دیتننا تننا اننندازه زیننادي جلننوگیري‬
. ‫مینمایند‬
‫ بنه صنورت‬AutoNumber ‫• پروگرام اکسنس ینک سنتون را در فارمنت‬
. ‫اتومات به جدول اضافه مینماید‬

PROPERTY (Street, City , State , Zip ) •


PLANT (Item Number , VarietYName, Price , Street , City , State , Zip) •
SERVICE (Invoice Number , Date , TotalHours, Street , City, State , Zip ) •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫سواالت‬
‫کلید چه است؟‬ •
‫ در دیتابیس به چه هدف استعمال میگردد ؟‬Primary key •
‫ استفاده میگردد؟‬Foreign key ‫چرا از‬ •
‫ چه نوع کلید است؟‬Surrogate key •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪ Relational Model‬قوانین ذیل را ارایه میکند‬

‫‪: Entity Integrity .1‬این قانون بیان مینماید که هر رلیشن باید یک ستون که‬
‫ازتکرار جلوگیری نماید یعنی ‪ Primary key‬داشته باشد و هیچ کلید اصلی‬
‫(‪ )Primary key‬نمیتواند ‪ null‬باشد‪.‬‬
‫‪: Referential Integrity .2‬این قانون بیان مینماید که هر قیمت که در ستون‬
‫کلید خارجی (‪ ) Foreign key‬داخل میگیرد باید قبالً در ستون ‪primary key‬‬
‫موجود بوده و با آن مطابقت داشته باشد‪ ،‬کلید خارجی میتواند قیمت خالی (‪null‬‬
‫) به خود بگیرد‪.‬‬
‫‪ Referential Integrity‬در پروگرام اکسس به دو نوع است‪:‬‬
‫‪Cascade Update Related Fields (a‬‬
‫‪Cascade Delete Related Field (b‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪Referential Integrity‬‬

‫‪ :Cascade Update .A‬به این معنی که اگر دیتا از ریکارد طرف جدول یک ( ‪one‬‬
‫‪ ) side‬تغیر داده شود باید در طرف جدول چندین (‪ )many side‬نیز باید به شکل خود‬
‫کار تغیر نماید‪.‬‬
‫‪ :Cascade delete .B‬اگر ریکارد از ‪ one side‬از بین برود باید دیتا مربوطه در‬
‫‪ many side‬نیز باید به شکل خودکار از بین برود‪.‬‬
‫‪ :Domain Integrity .3‬عبارت از محدود کردن ساحه و اندازه برای یک‬
‫‪ Attribute‬میباشد یعنی باید متیقین شویم که معلومات ویا دیتا که در یک کالم‬
‫اضافه میگردد درست و مطابق اندازه که برای کالم تعین شده مطابقت دارد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫ به مودل مرتبط‬ERD ‫• تبدیل نمودن دیاگرام های‬
Mapping conceptual model(ERD) to
Relational model

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Mapping a regular entity
‫ عادی به رلیشن‬entity ‫تبدیل نمودن یک‬

(a) CUSTOMER entity


type with simple
attributes

(b) CUSTOMER relation

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Mapping an entity with a multivalued attribute

Multivalued attribute becomes a separate relation with foreign key

(b)

One–to–many relationship between original entity and new relation


Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Example of mapping a weak entity

a) Weak entity DEPENDENT

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping a weak entity (cont.)

b) Relations resulting from weak entity

NOTE: the domain constraint


for the foreign key should
NOT allow null value if
DEPENDENT is a weak entity

Foreign key

Composite primary
key

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping a weak entity

a) Weak entity DEPENDENT

Emp No
Employee

has
Employee (Emp_No, ….(

Depd Name
Dependent
FK
Gender
Dependent( Emp_No , Depd_Name, Gender, DOB, Relation)
Relation DOB
Composite primary key

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping a weak entity (cont.)

b) Relations resulting from weak entity

NOTE: the domain constraint


for the foreign key should
NOT allow null value if
DEPENDENT is a weak entity

Foreign key

Composite primary key

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping a 1:M relationship
a) Relationship between customers and orders

Note the mandatory one

b) Mapping the relationship

Again, no null value in the


foreign key…this is
because of the mandatory
minimum cardinality

Foreign key
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Example of mapping an M:N relationship
a) Completes relationship (M:N)

The Completes relationship will need to become a separate relation

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping an M:N relationship (cont.)
b) Three resulting relations

Composite primary key

Foreign key
New
Foreign key intersection
relation

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping a binary 1:1 relationship

a) In_charge relationship (1:1)

Often in 1:1 relationships, one direction is optional.

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping a binary 1:1 relationship (cont.)
b) Resulting relations

Foreign key goes in the relation on the optional side,


Matching the primary key on the mandatory side

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Transforming EER Diagrams into Relations
(cont.)

Mapping Associative Entities


:‫ دو حالت وجود دارد‬Tow situation :
Identifier Not Assigned .1
Default primary key for the association relation is •
composed of the primary keys of the two entities (as in
M:N relationship)
Identifier Assigned .2
It is natural and familiar to end-users •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping an associative entity
a) An associative entity

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping an associative entity (cont.)
b) Three resulting relations

Composite primary key formed from the two foreign keys

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping an associative entity with an identifier

a) SHIPMENT associative entity

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Example of mapping an associative entity with an identifier (cont.)

b) Three resulting relations

Primary key differs from foreign keys

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Mapping a unary 1:N relationship

(a) EMPLOYEE entity with


unary relationship

(b)
EMPLOYEE
relation with
recursive
foreign key

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Mapping a unary M:N relationship

(a) Bill-of-materials
relationships (M:N)

(b) ITEM and


COMPONENT
relations

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Transforming EER Diagrams into Relations
(cont.)

Mapping Binary Relationships


• One-to-Many–Primary key on the one side becomes a foreign
key on the many side
• Many-to-Many–Create a new relation with the primary keys
of the two entities as its primary key
• One-to-One–Primary key on the mandatory side becomes a
foreign key on the optional side

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Transforming EER Diagrams into Relations
(cont.)

Mapping Ternary (and n-ary) Relationships


• One relation for each entity and one for the
associative entity
• Associative entity has foreign keys to each entity
in the relationship

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Mapping a ternary relationship
a) PATIENT TREATMENT Ternary relationship with associative entity

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Mapping a ternary relationship (cont.)
b) Mapping the ternary relationship PATIENT TREATMENT

Remember This is why But this makes a It would be better


that the treatment date very to create a
primary key and time are cumbersome surrogate key like
MUST be included in the key… Treatment#
unique composite
primary key
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Supertype/subtype relationships

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Figure 5-21
Mapping Supertype/subtype relationships to relations

These are implemented as one-to-one


relationships

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


ABC‫یک قسمت از دیاگرام دیتابیس ازکمپنی‬

CUSTOMER

Customer_ID Customer_Name Customer_Address

ORDER

Order_ID Order_Date Customer_ID

ORDER_DETAIL

Product_ID Order_ID Quantity

PRODUCT

Product_ID Product_DEscription Price

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪Normalization‬‬

‫• نورماالیزیشن در دیتابیس یک عنوان بسیار و سیع و در عین حال‬


‫بسیار مهم است‪.‬‬
‫• نارمالیزیشن عبارت از پروسه است که توسط آن ساختار دیتابیس به‬
‫ساده ترین و با ثبات ترین شکل تبدیل میگردد یا به عبارت دیگر جداول‬
‫باید به رلیشن کامل تبدیل شود تا در وقت وارد کردن‪ ،‬تجدیدکردن‪ ،‬واز‬
‫بین بردن دیتا دارای نواقص و بی ترتیبی (‪ )anomalies‬نباشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫هدف استفاده از ‪Normalization‬‬

‫دیزاین و کار کرد دیتابیس را بهتر میسازد‪.‬‬ ‫•‬


‫در صورت امکان مقدار دیتا را کاهش میدهد‪.‬‬ ‫•‬
‫ساختار دیتابیس را از نواقص و بی نظمی که ممکن در وقت‬ ‫•‬
‫واردکردن ‪ ،‬تجدیدکردن و از بین بردن دیتا صورت گیرد جلوگیری‬
‫میکند‪.‬‬
‫دیتابیس مطابق قوانین رلیشن دیزاین میگردد‪.‬‬ ‫•‬
‫اداره و مراقبت دیتا را ساده و از دوباره تغیرات در ساختار دیتابیس‬ ‫•‬
‫جلوگیری میکند‪.‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫مشخصات دیتابیس نورمال شده ( ‪Characteristics of‬‬
‫‪)Normalized database‬‬

‫یک نورمالیزد دیتابیس دارای مشخصات ذیل میباشد‬ ‫•‬


‫هر رلیشن باید یک فیلد کلی دار (‪ )primary key‬داشته باشد‪.‬‬ ‫•‬
‫هر حجره فیلد باید دارای دیتا واحد (‪ )atomic data‬باشد‪.‬‬ ‫•‬
‫در جدول (رلیشن) باید یک فیلد تکرارنباشد‪.‬‬ ‫•‬
‫در هر جدول باید دیتا مربوط یک ‪ entity type‬باشد‪.‬‬ ‫•‬
‫در جدول هر فیلد باید متکی به ‪ key primary‬باشد‪.‬‬ ‫•‬
‫در جدول هر ستون ‪ none key‬باید در بین خود مستقل باشد یعنی یک‬ ‫•‬
‫ستون ‪none key‬متکی به ‪ none key‬دیگر نباشد‪.‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫‪Normalization‬‬

‫عملیۀ ‪ Normalization‬دارای مراحل مختلف بوده یعنی در مراحل جداگانه عملیه‬


‫های ‪ Normalization‬باالی یک جدول تطبیق شده و جدول متذکره به کامل‬
‫ترین و واضح ترین شکل یک ‪ Relation‬تبدیل میشود‪.‬‬

‫هر مرحله نارمالیزیشن به نام ‪ Normal form‬یاد میگردد و هرنارمل فارم آن‬
‫دارای شرایط خاص نیز میباشد اگر شرط در یک ‪ Normal form‬تطبیق شود‬
‫همان مرحله تکمیل شده و مرحله بعدی شروع میگردد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مراحل نارمالیزیشن‬
.‫ دارای مراحل مختلف میباشد‬Normalization •
‫ یاد میگردد که قرار ذیل است‬Normal Form ‫ به نام های‬Normalization ‫• هر مرحله‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫چرا ‪ Normalization‬مهم است؟‬
‫برای و ضاحت بیشتر موضوع ‪ ،‬به جدول ‪ Library Flat Database‬توجه شود‪:‬‬ ‫•‬

‫فرض شود اینکه اگر تعداد کتابها در اکادمی ‪ 15‬میلیون باشد و این کتابها توسط ‪ 10‬هزار مطابع (‪) Publishers‬‬ ‫•‬
‫چاپ شده باشد ‪ ،‬پس ادرس های این مطابع باید در ‪ 15‬میلیون سطر نوشته گردد ‪ ،‬که در این حالت اگر به طور‬
‫متوسط تعداد هر ادرس ‪ 50‬کرکتر باشد ‪ ،‬مقدار حافظه که برای ذخیره ادرس مطبعه به کار است طور ذیل معلوم‬
‫میگردد‪:‬‬
‫‪(15000000-10000)*50=749500000‬‬ ‫•‬
‫فرض شود که اگر هر کرکتر در حافظه دو بایت(در سستم ‪ ) Unicde‬فضا را اشغال مینماید ‪،‬در این صورت تنها در‬ ‫•‬
‫ستون ‪ 1.4GB، Address‬حافظه را ضایع میکند که این در خود عیب دیتابیس است‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫نواقص ‪Flat database‬‬

‫در دیتابیس ‪ Library flat database‬سه نوع بی ترتیبی (‪ )Anomaly‬واقع میگردد‬ ‫•‬

‫‪ :Update Anomaly‬اگر در دیتابیس نمبر تیلفون یک مطبعه تغیر بخورد پس در چندین سطرکه این نمره قرار‬ ‫‪.1‬‬
‫دارد باید تغیر داده شود‪ ،‬اگر احیانآ کدام سطر سهوآ خطا شود یک غلطی به وجود میاآید که عبارت از ‪Update‬‬
‫‪ Anomaly‬است‪.‬‬

‫‪: Insertion Anomaly‬فرض کیند که ستون ‪ ISBN‬به حیث ‪ primary key‬تعین شده باشد‪ ،‬اگر معلومات در‬ ‫‪.2‬‬
‫مورد یک مطبعه را درجدول عالوه میکنیم و کتابهای مربوط به این مطبعه به ما معلوم نباشد در این صورت چون‬
‫معلومات در مورد هر مطبه در سطر جداگانه نوشته میکنیم ‪،‬مجبورآ باید دیتا مربوط به کتاب در هر سطر باید خالی‬
‫بگذاریم و از طرف دیگر هر ستون ‪ ISBN‬دیتا تکراری را نمیگیرد پس یک بی نظمی واقع میگردد که به نام‬
‫‪ Insertion Anomaly‬یاد میگردد‪.‬‬

‫‪ :Deletion anomaly‬اگر خواسته باشیم که در جدول باال ‪،‬تمام ریکاردها در مورد کتابها از بین برده شود ‪،‬در این‬ ‫‪.3‬‬
‫صورت تمام معلومات در مورد ‪ Publisher‬هم از بین میرود که عبارت از ‪ Deletion Anomaly‬میباشد‪.‬‬
‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬
‫‪Functional dependency‬‬

‫‪ Functional Dependency‬یا ‪ FD‬عبارت از رابطه بین ‪ Attribute‬های رلیشن‬


‫میباشد به این معنی که اگرقیمت یک ‪ Attribute‬معلوم باشد از روی آن قیمت‬
‫‪ Attribute‬دوم نیز معلوم خواهد شد‪ ،‬یا به عبارت دیگر (‪ )FD‬عبارت از پروسه‬
‫است که توسط ان قیمت یک ‪ Attribute‬از روی ‪ Attribute‬دیگر مشخص‬
‫میگردد‪ ،‬مثالً اگر یک رلیشن طور ذیل داشته باشیم‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مثال‬
‫‪Functional dependency‬‬
‫)‪STUDENT(student_ID,student_Name,address,Mobile_No‬‬
‫• در این رلیشن اگر اگر ‪ student_ID‬یک شاگرد معلوم باشد ار روی آن میتوان‬
‫اسم آن نیز معلوم نمایم‪ ،‬به این مفهوم که نام شاگرد وابسته به ‪student_ID‬‬
‫شاگرد میباشد‪ ،‬پس اگر در یک رلیشن دو فیلد به نام های ‪ A‬و ‪ B‬موجودباشد و‬
‫یک قیمت از فیلد ‪ A‬تعین کننده قیمت در فیلد ‪ B‬باشد در آن صورت گفته میشود‬
‫که فیلد ‪ B‬وابسته به فیلد ‪ A‬است و طور ذیل نوشته میگردد‬

‫• در اینجا فیلد که در طرف چپ قرار دارد(در این مثال ‪ ) A‬به نام‬


‫‪( Determenant‬تعین کننده ) یاد میگردد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫مثال(ادامه‪)...‬‬

‫در این مثال یک ‪ student_ID‬صرف میتواند مربوط به یک اسم شاگرد‬


‫باشد ولی اسم شاگرد میتواند با چندین آی دی نمبر ارتباط داشته باشد‬
‫طور مثال آی دی نمبر ‪ ۱۰۰‬صرف مربوط یک شاگرد مثالً به اسم‬
‫احمد باشد ولی اسم احمد میتواند مربوط چندین آی دی نمبر باشد زیرا‬
‫میتواند چندین شاگرد به نام احمد وجود داشته باشد‪ ،‬همچنان امکان‬
‫دارد یک فیلد تعین کننده چندین فیلد دیگر باشد مثالً‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


Functional Dependency ‫انواع‬

:Full functional dependency .1


‫ میباشد‬Primary key ‫ کامآل متکی به‬None key ‫ است که از آن تمام‬Dependency ‫• عبارت از‬
STUDENT (ID, Name, Address, Phone)

‫مثال دوم‬
ITEM (ItemCode, WHCode, Quality)
.‫) میباشد‬ItemCode,WHCode( Composite Attribute ‫ متکی به‬Quality ، Attribute ‫در انیجا هم‬

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


Partial functional dependency .2

‫ بالی‬None key Attribute ‫ است که در آن تمام‬Dependency ‫عبارت از‬ •


‫ متکی میباشد‬PK‫ کا مآل متکی نه بلکه باالی برخی از‬PK
PROPERTY (Item_Code, WH_Code, Item_Name, QTY, WareHousName)

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


:Transitive dependency .3

‫ باالی‬None key Attribute ‫ است که در ان یک‬dependency ‫عبارت از آن‬ •


‫ دیگری متکی باشد مثآل‬None key Attribute ‫یک‬
STUDENT (ID, Name, TestA, TestB, Total) •

‫ و‬testA ‫ باالی ستون های‬Total ‫که در جدول فوق ستون‬


‫ های‬Attribute ‫ متکی است که هر سه از نوع‬TestB
TestB ‫ و‬testA ‫ های‬Attribute ‫ است و اگر‬None key
‫ پس گفته‬،‫هم موجود شده نمیتواند‬Total ‫فیلد‬، ‫وجود نداشته باشد‬
‫ است وابستگی با‬total ‫ که به نام‬Attribute ‫میتوانیم که فیلد یا‬
Transitive ‫ دارد که یک‬TestB ‫ و‬TestA ‫ستون های‬
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
.‫ است‬dependency
‫‪:1st NF‬‬

‫• جدول یا ‪Relation‬که شرایط یا قوانین ‪ Relation‬درآن صدق نماید عبارت از ‪Relation‬در‬


‫حالت ‪ 1st Normal Form‬میباشد یا به عبارت دیگر جدول که ‪Multi valued‬‬
‫‪ Attributed‬یا گروپ تکراری (‪ )Repeating Group‬نداشته باشد ‪ ،‬گفته میشود که جدول‬
‫در مرحله )‪ )1stNF‬قرار دارد‪.‬‬
‫• مثالًدر جدول ذیل ‪:‬‬

‫جدول باال نارمالیز نیست زیرا که قیمت های ستون‬


‫های ‪StudentID, StudentName,‬و‬
‫‪ StudentAdderss‬چندین دفعه تکرار آمده‬
‫است‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫‪1st NF‬‬
‫اگر دیده شود ‪ ،‬جدول ذکر شده نارمالیز نیست زیرا که قیمت های ستون‬
‫‪StudentID, StudentName,‬و ‪StudentAdderss‬‬ ‫های‬ ‫این جداول در ‪ 1NF‬قرار دارد‬
‫چندین دفعه تکرار آمده است پس به خاطر از بین بردن دیتا تکراری یا‬
‫‪ ، Repeating Groups‬یعنی اوردن جدول باال به حالت ‪ 1st NF‬باید‬
‫‪ Repeating Group‬را به یک جدول علیهده ‪ ،‬و ستون هایکه دیتا‬
‫تکراری ندارد باید به یک جدول جداگانه تبدیل گردد پس جدول شکل (‪-3‬‬
‫‪ )27‬به دو جدول جداگانه ذیل تبدیل مینمایم‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


:2ndNF
Partial ‫ یا جدول کدام‬Relation ‫ هیچ‬، ‫باشد و بر عالوه‬1stNF ‫• اگر یک دیتابیس درحالت‬
2nd NF ‫ گفته میشود که این دیتابیس در حالت‬، ‫ نداشته باشد‬Functional dependency
‫قرار دارد‬
None key ‫ باشد و بر عالوه هر‬1st NF ‫ که در حالت‬Relation ‫• یا به عبارت دیگری‬
‫مثآل‬. ‫ قرار دارد‬2nd NF ‫ در حالت‬Relation ‫ باشد گفته میشود که‬PK ‫ متکی به‬Attribute
: ‫ قرار دارد‬1stNF ‫ ذیل در حالت‬Relation
ITEM (ItemCode, WHCode, QTY, ItemName, WHName) •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


:3rd NF
2nd NF ‫ در حالت‬، ‫ است درصورت که‬3rd NF ‫ در حالت‬Relation ‫ گفته میشود که یک‬: •
‫ نداشته باشد یا به عبارت دیگر هیچ‬Transitive dependency ‫بوده و برعالوه هیچ‬
.‫ نداشته باشد‬Derived Attribute
:‫• به مثال ذیل توجه کنید‬
STUDENT (ID, Name, testA, TestB, Total) •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫‪: BCNF‬‬
‫• هر دیترمینانت در جدول ‪ candidate key‬است‪ ، ،‬به عبارت دیگر‬
‫جدولی در شکل ‪ BCNF‬گفته میشود که هر ‪ Determent‬باید‬
‫‪Candidate key‬جدول باشد ‪ .‬به طور خلص گفته میتوانیم که‪ :‬جدول‬
‫که در حالت ‪ 3-NF‬باشد و یک ‪ candidate key‬داشته باشد این‬
‫جدول در حالت ‪ BCNF‬قرار دارد‪.‬‬
‫• در صورت که در جدول یک ‪ candidate key ،‬باشد در آن‬
‫صورت ‪ 3-NF‬و ‪ BCNF‬یک و با هم مشابه میباشد‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫خالصه‬

‫• ‪ ،‬یک ‪ Relational Design‬طو ذیل خالصه میگردد‪:‬‬

‫• برای دیزاین بهتر یک جدول ‪ ،‬هر ‪ Determinate‬باید یک ‪ Candidate key‬باشد‪.‬‬

‫• هر جدول که شرایط باال دران صدق نه نماید ‪ ،‬باید به دو یا اضافه از دو جدول تقسیم شود تا‬
‫اینکه هر ‪ Determinant‬یک ‪ Candidate key‬را تمثیل نماید‪.‬‬

‫‪Database Fundamentals I--Copyright © 2011 / CS department‬‬ ‫‪M.Arif Ahmadzai‬‬


‫سواالت‬
‫ چه است؟‬Functional dependency •
‫به چند نوع است؟‬Dependency •
‫ چه اهمیت دارد؟‬Functional dependency •
‫ است؟‬dependency ‫ چه نوع‬Transitive Dependency •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai


‫سواالت‬
‫ استفاده نمایم؟‬ERD ‫• چرا باید از‬
‫ به چند نوع است؟‬Relationship •
‫ است؟‬Relationship ‫ چه نوع‬Binary Relationship •

Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai

You might also like