No Slide Title
Download
Report
Transcript No Slide Title
به نام خدا
پایگاه داده ها
بخش اول :مفاهیم پایگاه داده ها
•
•
•
•
•
•
مفاهیم اولیه
سیستم های فایل و پایگاه داده ها و مقایسه آنها
اجزاء یک سیستم های پایگاه داده
وظایف سیستم های مدیریت پایگاه داده ها
معماری سیستم های پایگاه داده ها
مدلهای پایگاه داده
– مدل سلسله مراتبی
– مدل شبکه ای
– مدل رابطه ای
بخش اول :مفاهیم پایگاه داده ها
• دادههاي توصيفي ()Attribute Data
دادههاي هستند كه اطالعاتي راجع به خصوصيات و ويژگيهاي عوارض را در اختيار
ما قرار ميدهند.
• پايگاه داده ()Database
مجموعه ساختار يافتهاي از دادههاست كه به صورت منسجم براي كاربردهاي
مختلف در كنار يكديگر ذخيره شدهاند و فرق آن با GISاينست كه پايگاه داده
قابليت تجزيه و تحليل ندارد.
در زبان عاميانه پايگاه داده براي دادههاي توصيفي بكار ميرود.
• ديد ()View
هر نوع نمايش پايگاه داده را يك Viewميناميم.
بخش اول :مفاهیم پایگاه داده ها
مدل داده ()Data Model
• سازمان مفهومي پايگاه دادهها را مدل داده گويند و در واقع روش ي براي اداره دادهها و
ذخيرهسازي آنها در يك پايگاه داده محسوب ميشود.
ركورد
• نمايانگر اطالعات مربوط به املان خاص ي ()Entity- Object- Event- Concept
ميباشد.
فيلد
• يك ركورد به فيلدهاي تقسيم ميشود كه هر كدام از اين فيلدها شامل يك قلم از
دادهها ميباشند.
فيلد كليدي
• در سيستم GISهر عارضه داراي يك كد منحصر به فرد است كه به عنوان كد
ذخيرهسازي عارضه محسوب ميشود و در برنامهنويس ي و پايگاه دادهها از اين كد
استفاده ميكنند و در واقع هر ركورد به وسيله يك كليد از پايگاه داده بازيابي ميشود.
همچنين براي اتصال ( )Linkبين دادههاي توصيفي و مكاني از همين كدها استفاده
ميشود.
بخش اول :مفاهیم پایگاه داده ها
مفاهیم اولیه
داده
اطالعات:
فایل :مجموعه ای از رکوردها
سیستم فایل :مجموعه ای از فایلها
بخش اول :مفاهیم پایگاه داده ها
مقایسه سیستم فایل و پایگاه داده
بخش اول :مفاهیم پایگاه داده ها
معایب سیستم های فایل
•
•
•
•
نیاز به برنامه نویس ی زیاد و پیچیده
وابستگی داده ای :تغیير سایز یک فیلد
وابستگی ساختاری :فیلد جدید اضافه/حذف
افزونگی داده ها
– هدر رفتن فضای کار و نيروی کار
– ناسازگاری داده ها
– بروز انواع ناهنجاری (درج-حذف-اصالح)
• عدم وجود امکانات الزم برای تامين امنیت داده ها
بخش اول :مفاهیم پایگاه داده ها
مزاياي روش پايگاه داده نسبت به روش پردازش فايل
• دادهها به طور موثرتري به اشتراك گذاشته ميشوند
در واقع دادهها با استفاده از DBMSميتواند بصورت قابل انعطاف ولي كنترل شده به اشتراك گذاشته شوند.
• استقالل دادهها
برنامههاي كاربردي و كاربران از فرم فيزيكي دادههاي ذخيره شده مستقل ميباشند.
• دستيابي مستقيم به كاربر
سيستمهاي پايگاه داده يك واسطه كاربري را ارائه ميدهند .به صورتي كه افراد غير برنامهنويس نيز ميتوانند آناليزهاي
پيشرفته انجام دهند.
• كنترل متمركز
يك DBMSواحد تحت كنترل يك نفر يا گروه ميتواند تضمين نمايند كه استاندارهاي كيفي دادهها برقرار است،
محدوديتهاي ايمني اعمال ميشوند و صحت پايگاه دادهها باقي ميماند.
• كنترل افزونگي
در محيط پردازش فايل ،فايلهاي جدا از هم براي هر برنامه كاربردي استفاده ميشوند كه اين ميتواند افزونگي قابل
مالحظهاي را در دادهها بوجود آورد .اما افزونگي مستلزم صرف هزينه و حجم ميباشد و در مقابل به روزآوري
دادهها ضعيف عمل ميكند.
• اجراي آسانتر برنامههاي كاربردي جديد در پايگاه داده
بخش اول :مفاهیم پایگاه داده ها
معايب پايگاه دادهها
• نرمافزار و سختافزار پايگاه داده گران هستند.
• در تئوري هر چه پيچيدگي سيستم بيشتر باشد درصد خرابي سيستم نيز بيشتر
شده و رفع خرابي نيز مشكل ميشود و ميدانيم كه سيستم پايگاه دادهها پيچيدهتر
از سيستم پردازش فايل است .عملياتي نظير Recoveryو Backupبراي
جلوگيري از خرابي DBMSبكار برده شدهاند.
بخش اول :مفاهیم پایگاه داده ها
اجزاء سیستم های پایگاه داده ها
• سخت افزار
– شامل کلیه وسایل فيزیکی که برای ورود و خروج و ذخيره اطالعات
• نرم افزار
– سیستم عامل
– SQL server-Oracle-Informix-Access :DBMS
– برنامه های کاربردی :توسط برنامه نویسان ایجاد (برنامه های حسابداری) که با پایگاه داده ها ارتباط
برقرار می کنند.
• کاربران
–
–
–
–
–
مدیران سیستم :بر عملکرد کلی سیستم پایگاه داده ها نظارت دارند.
مدیران پایگاه داده :استفاده بهینه از پایگاه داده را مورد بررس ی قرار می دهند( .خط مش ی کلی)
طراحان پایگاه داده :معماران پایگاه داده -پایگاه داده را بر اساس نظرات مدیران اعمال می کنند.
برنامه نویسان :برنامه های کاربردی الزم برای پایگاه داده را ایجاد می کنند.
کاربران نهایی
• پروسیجرها
– کلیه دستوراتی که برای اجرای قوانين حاکم بر سیستم نوشته می شوند.
• داده ها
بخش اول :مفاهیم پایگاه داده ها
سيستمهاي مديريت پايگاه داده
()Data Base Management System
يك سيستم مديريت پايگاه داده تركيبي از يك مجموعه برنامهها كه
دادههاي درون پايگاه داده را اداره و نگهداري ميكند .در حقيقت DBMS
به عنوان يك كنترل مركزي روي تمام فعل و انفعاالت بين پايگاه داده و
برنامههاي كاربردي كه به نوبه خود با كاربر در تقابل است عمل ميكند.
•
•
•
•
•
•
•
•
•
بخش اول :مفاهیم پایگاه داده ها
وظایف سیستم های مدیریت پایگاه داده ها
تامين استقالل داده های و ساختاری
– دیکشنری داده (مشخصات تمام موجودیت ها و روابط بين آنها)
مدیریت ذخيره سازی داده ها
تبدیل فرمت داده ها میان محیط فيزیکی و منطقی
مدیریت امنیت
– هر کاربر تنها در حوزه اختیارات خود به داده ها دسترس ی داشته باشد.
تامين امکان دسترس ی مشترک چندین کاربر به پایگاه داده ها
مدیریت تهیه نسخه پشتیبان و ترمیم پایگاه داده ها
تامين جامعیت داده ای
– اعتبار داده ها :اطالعات نامعتبر در پایگاه داده ها وارد نمی شود.
– سازگاری داده ها :اگر اطالعات در جاهای مختلفی ذخيره شوند ،مقدار همه آنها یکسان باشد.
تامين زبان پرس و جو و ابزارهای مدیریت پایگاه داده ها
تامين امکان دسترس ی به پایگاه داده ها از طرق مختلف
بخش اول :مفاهیم پایگاه داده ها
معماری سیستم های پایگاه داده ها
• الیه فيزیکی
– محیط فيزیکی که داده ها در آن ذخيره می شوند.
• الیه ادراکی
– دیدی که طراح پایگاه داده ها نسبت به کلیه موجودیتها و ارتباط میان آنها
دارد.
• الیه خارجی
– دیدی است که هر کاربر نسبت به اطالعات ذخيره شده دارد.
– این دید لزوما با دید ادراکی یکی نیست چرا که هر کاربر می تواند از نقطه
نظر های متفاوت به داده ها نگاه کند.
بخش اول :مفاهیم پایگاه داده ها
زبان برنامه های کاربردی پایگاه داده ها
• زبان فرعی داده ای Data Sub Language
– هر کاربر یا برنامه کاربردی برای ارتباط با پایگاه داده ها از یک زبان فرعی داده ای استفاده می
کند.
-معرفترین SQLکه با تمام DBMSها کار می کند.
-زبانهای فرعی به سه قسمت تقسیم می شوند:
Data Definition Language
– برای تعریف ساختار داده ها و ایندکس ها استفاده می شود.
Data Manipulation Language
– برای بازیابی ،حذف ،درج و اصالح اطالعات جداول استفاده می شود.
Data Control Language
– برای مدیریت مجوزهای دسترس ی به پایگاه داده ها استفاده می شود.
• زبان ميزبانHost Language
زبان برنامه نویس ی مانند دلفی – ویژوال – cویژوال بیسیک و غيره
– زبانهای فرعی فاقد امکانات الزم برای تعریف متغيرها ،کنترل ظاهر برنامه ،ایجاد حلقه ها،
تست کردن شرطها و غيره را ندارند.
بخش دوم :پایگاه داده های رابطه ای
• مفاهیم پایگاه داده های رابطه ای
• قوانين حاکم بر پایگاه داده ای رابطه ای
بخش دوم :پایگاه داده های رابطه ای
مفاهیم پایگاه داده های رابطه ای
• جدول یا رابطهTable or Relation
– ساختار دوبعدی شما سطر و ستونهاست
– برای هر نوع موجودیت یا ارتباط میان موجودیتها یک جدول در نظر گرفته می شود.
• ویژگیAttribute
– هر یک از ستونهای یک جدول نمایانگر یکی از ویژگیهای نوع موجودیت است.
• تاپل Tupple
– هر سطر جدول را تاپل گویند.
• بدنهBody
– به مجموعه تاپل های یک جدول
بخش دوم :پایگاه داده های رابطه ای
مفاهیم پایگاه داده های رابطه ای (ادامه)
• مجموعه عنوانHeader
– مجموعه ویژگیهای یک جدول
• دامنه یک ویژگیDomain
– مجموعه مقادیر مجاز برای یک ویژگی به عنوان مثال
oحداکثر طول کاراکتر یک فیلد
– oبازه خاص ی مثال برای فیلد سن
• درجه یک رابطهRelation Degree
– تعداد ویژگیهای یک جدول یا رابطه
• کاردینالیتی یک رابطهRelation Cardinality
– تعداد تاپلهای یک جدول در هر لحظه از حیات آن رابطه یا جدول
بخش دوم :پایگاه داده های رابطه ای
مفاهیم پایگاه داده های رابطه ای (ادامه)
• وابستگی تابعیFunctional Dependence
– در یک جدول ویژگی Bبه ویژگی Aوابستگی تابعی دارد اگر به ازاء هر مقدار برای ویژگی Aحداکثر یک مقدار برای
ویژگی Bوجود داشته باشد.
نام دانشجو -نام دوره شماره دانشجویی
– مثال :
• سوپر کلیدSuper Key
– سوپر کلید مجموعه ای از یک یا چند ویژگی است که سایر ویژگیهای جدول به آن وابستگی تابعی دارند.
•
•
•
•
شماره دانشجویی
نام دوره -شماره دانشجویی
نام دانشجو -شماره دانشجویی
نام دانشجو -نام دوره -شماره دانشجویی
• وابستگی تابعی کامل)Full Functional Dependence(FFD
– در یک جدول ویژگی Bبه ویژگی Aوابستگی کامل دارد اگر:
اوال :ویژگی Bبه ویژگی Aوابستگی تابعی داشته باشد
ثانیا :به هیچ جزئی از آن وابستگی تابعی نداشته باشد
نام دوره شماره دانشجویی (وابستگی تابعی کامل)
(وابستگی تابعی ندارد)
نام دانشجو نام دوره
نام دانشجو نام دوره -شماره دانشجویی (وابستگی تابعی) – وابستگی جزئی
بخش دوم :پایگاه داده های رابطه ای
مفاهیم پایگاه داده های رابطه ای (ادامه)
• کلید کاندیداCandidate Key
– سوپرکلیدی است که قابل خالصه شدن نباشد.
– یا مجموعه ای از یک یا چند ویژگی است که سایر ویژگیهای جدول به آن وابستگی تابعی کامل دارند.
• کلید اصلیPrimary Key
– مجموعه ای از یک یا چند ویژگی است که برای شناسائی و تمایز میان موجودیتهای یک دسته مورد استفاده
قرار می گيرد.
– عموما یکی از کلیدهای کاندیدا را به عنوان کلید اصلی انتخاب می کنند.
– مثال کد ملی – شماره دانشجویی – کدپستی
• کلید ثانویهSecondary Key
– مجموعه ای از یک یا چند ویژگی است که در صورت عدم دسترس ی به مقدار کلید اصلی ،از مقدار آن برای
تسریع جستجوی اطالعات یک موجودیت خاص استفاده می شود .اگر چه ممکن است مقادیر این ویژگی یک
موجودیت منحصر به فرد را مشخص نکنند ولی در یافتن آن کمک می کنند.
• کلید خارجیForeign Key
– اگر ویژگی Aبين جداول 1و 2مشترک و در جدول 1کلید اصلی باشد آنگاه ویژگی Aدر جدول ،2کلید خارجی
نسبت به جدول 1خواهد بود.
بخش دوم :پایگاه داده های رابطه ای
• کلید اصلی
–
–
–
–
City#
St#
Crs#
St#+crs#+year+term
• کلید خارجی
– از آنجا که ویژگی city#بين دو جدول stو cityمشترک و در جدول cityکلید اصلی است،
بنابراین ویژگی city#در جدول stکلید خارجی نسبت به جدول cityمی باشد.
بخش دوم :پایگاه داده های رابطه ای
قوانين حاکم بر پایگاه داده ای رابطه ای
قوانين جامعیت داده ایData Integrity Rules
برای حفظ جامعیت داده ای در پایگاه داده های رابطه ای دو قانون زیر تعریف شده
اند:
• قانون :1قانون جامعیت موجودیتEntity Integrity Rule
– هیچ جزء از کلید اصلی در هیچ یک از تاپلها نمی تواند تهی باشد.
– مقدار کلید اصلی در تاپلها نمی تواند تکراری باشد.
• قانون :2قانون جامعیت ارجاعیReferential Integrity Rule
– مقدار کلید خارجی در یک جدول می تواند تهی باشد .مشروط بر آنکه جزئی از کلید اصلی
نباشد.
– ولی اگر تهی نباشد ،بایستی با یکی از مقادیر کلید اصلی در جدول اصلی مساوی باشد.
– به عنوان مثال :در جدول stمی توان دانشجویی را درج کرد که شهر سکونت وی مشخص
نباشد (تهی باشد) .ولی نمی توان دانشجویی را درج کرد که شهر سکونت وی 07باشد چرا که
در جدول اصلی یعنی جدول cityشهری با این کد وجود ندارد.
بخش سوم :جبر رابطه ای
•
•
•
•
•
•
عملگرهای یکتایی (انتخاب-پرتو-بسط-خالصه سازی یا گروه
بندی)
عملگرهای دوتایی (اجتماع ،اشتراک و تفاضل)
عملگرهای ضرب
عملگرهای پیوند (پیوند شرطی-پیوند طبیعی-شبه پیوند-پیوند
خارجی(چپ-راست-کامل))
عملگر تقسیم
عملگر جایگزینی
بخش سوم :جبر رابطه ای
مجموعه ای از عملگرها و قوانینی است که برای پردازش رابطه ها یا جداول بکار می
روند.
در جبر رابطه ای ورودی و خروجی کلیه عملگرها از نوع جدول می باشد.
در جبر رابطه ای نيز مانند جبر اعداد ،ترتیب انجام عملیات از داخلی ترین پرانتز به
خارجی ترین پرانتز است.
• عملگرهای یکتاییUnary
– ورودی این عملگرها تنها یک جدول است.
• عملگرهای دوتاییBinary
– روی دو جدول سازگار اعمال می شوند.
• عملگرهای ضرب Productو پیوند JOIN
– روی دو جدول دلخواه اعمال می شوند.
• عملگر تقسیمDivide
– روی دو جدول با شرایط خاص اعمال می شوند.
• عملگر جایگزینی
بخش سوم :جبر رابطه ای (عملگرهای یکتایی)
•
عملگر انتخاب
– از این عملگر برای گزینش افقی در یک جدول استفاده می شود.
– یا با استفاده از این عملگر می توان تاپلهایی از یک جدول را که دارای شرط بخصوص ی هستند انتخاب کرد.
– )Select (Table) Where (Condition
•
عملگر پرتو
– از این عملگر برای گزینش عمودی در یک جدول استفاده می شود.
– یا با استفاده از این عملگر می توان ستونهایی مورد نظر از یک جدول را انتخاب کرد.
– )Project (Table) Over (Columns
•
عملگر بسط
– از این عملگر برای اضافه کردن یک یا چند ستون یه یک جدول استفاده می شود.
– مقادیر این ستونها براساس مقادیر دیگر ستونها محاسبه می شود.
– )Extend (Table) Add (Formula) as (New Column
•
عملگر خالصه سازی یا گروه بندی
– از این عملگر می توان تاپلهای یک جدول را بر اساس مقادیر یک یا چند ستون گروه بندی کرد و روی هر گروه به
صورت مجزا محاسبه ای انجام داد.
– توابع SUM,MAX,MIN,AVG,COUNT
– )Sum (Table) by(Columns) add sum(Columns ) as (New Column
Extend SPJ add(qty/1000) as tonQty
Select R Where D>15
Project R over A,D
Sum SPJ by(p#) add sum(qty) as total
بخش سوم :جبر رابطه ای (عملگرهای دوتایی)
این عملگرها روی جداول سازگار قابل اعمال هستند.
جداول سازگار :تعداد ویژگیها و دامنه ویژگیهای متناظر آنها یکسان باشد.
U
• عملگر اجتماعUnion
اجتماع دو جدول سازگار جدولی خواهد بود که مجموعه عنوان آن با مجموعه عنوان دو جدول
یکسان است و بدنه آن شامل تاپلهای هر دو جدول می باشد.
عملگر اجتماع دارای خاصیت جابجایی و شرکت پذیری است.
• عملگر اشتراکIntersect
W
اشتراک دو جدول سازگار جدولی خواهد بود که مجموعه عنوان آن با مجموعه عنوان دو جدول
یکسان است و بدنه آن شامل تاپلهای مشترک بين دو جدول می باشد.
عملگر اشتراک دارای خاصیت جابجایی و شرکت پذیری است.
• عملگر تفاضل
تفاضل دو جدول سازگار جدولی خواهد بود که مجموعه عنوان آن با مجموعه عنوان دو جدول
یکسان است و بدنه آن شامل تاپلهای از جدول اولی است که در جدول دوم وجود ندارد.
عملگر تفاضل خاصیت جابجایی و شرکت پذیری ندارد.
بخش سوم :جبر رابطه ای (عملگر ضرب ) Times
• عملگر ضرب
o
o
o
o
حاصلضرب دو جدول دلخواه ،جدولی خواهد بود شامل ویژگیهای هر دو جدول (حتی
ویژگیهای تکراری) و تاپلهایی که از ضرب دکارتی تاپلهای دو جدول بدست می آیند.
به عبارت دیگر هر یک از تاپلهای یک جدول در کنار هر یک از تاپلهای جدول دیگر قرار
می گيرند.
مثال :اگر یک جدول با 3تاپل را در یک جدول دیگر با 5تاپل ضرب کنیم ،جدول
نتیجه شامل 15تاپل می باشد.
عملگر ضرب دارای خاصیت جابجایی و شرکت پذیری است.
بخش سوم :جبر رابطه ای (عملگر پیوند) Join
• پیوند شرطی یا تتا
این عملگر تاپلهایی از حاصلضرب دو جدول را که دارای شرط بخصوص ی هستند ،انتخاب می کند.
عملگر پیوند شرطی دارای خاصیت جابجایی است ولی شرکت پذیری ندارد.
• پیوند طبیعی
پیوند طبیعی مانند پیوند شرطی است با این تفاوت که در آن هیچ شرطی ذکر نمی شود و شرط آن به
طور پیش فرض تساوی ویژگیهای مشترک بين دو جدول است .همچنين ستونهای تکراری حذف خواهند
شد.
چنانچه بين دو جدول هیچ ویژگی مشترکی وجود نداشته باشد ،پیوند طبیعی دو جدول با حاصلضرب دو
جدول معادل خواهد بود .چنانچه کلیه ویژگیهای دو جدول یکسان باشند ،پیوند طبیعی دو جدول با
اشتراک دو جدول معادل خواهد بود.
عملگر پیوند طبیعی دارای خاصیت جابجایی و شرکت پذیری است.
• شبه پیوند
SJ
عين پیوند طبیعی بوده با این تفاوت که در نهایت تنها ستونهای جدول اول انتخاب می شود.
عملگر شبه پیوند خاصیت جابجایی و شرکت پذیری ندارد.
• پیوند خارجی (چپ-راست-کامل)
پیوند شرطی
R1 Join R2
شبه پیوند
R1 SJ R2
پیوند طبیعی
R1 Join R2
بخش سوم :جبر رابطه ای (عملگر پیوند) Joinادامه
• عملگرهای پیوند خارجی
• عملگر پیوند خارجی چپ
L-O-Join
• پیوند خارجی چپ نوعی پیوند طبیعی است که در آن عالوه بر تاپلهای پیوند شدنی از دو جدول،
تاپلهای پیوند نشدنی از جدول چپ نيز با مقادیر Nullپیوند شده و در نتیجه وارد می شوند.
• عملگر پیوند خارجی راست
R-O-Join
• پیوند خارجی راست نوعی پیوند طبیعی است که در آن عالوه بر تاپلهای پیوند شدنی از دو جدول،
تاپلهای پیوند نشدنی از جدول راست نيز با مقادیر Nullپیوند شده و در نتیجه وارد می شوند.
• عملگر پیوند خارجی کامل
F-O-Join
• پیوند خارجی کامل نوعی پیوند طبیعی است که در آن عالوه بر تاپلهای پیوند شدنی از دو جدول،
تاپلهای پیوند نشدنی از هر دو جدول نيز با مقادیر Nullپیوند شده و در نتیجه وارد می شوند.
عملگر پیوند خارجی چپ
عملگر پیوند خارجی راست
عملگر پیوند خارجی کامل
بخش سوم :جبر رابطه ای (عملگر تقسیم و جایگزینی)
• عملگر تقسیم
or Divide by
تنها در صورتی می توان جدول T1را بر جدول T2تقسیم کرد که مجموعه عنوان
جدول T2زیر مجموعه ای از مجموعه عنوان جدول T1باشد .نتیجه شامل
ویژگیهایی از جدول T1خواهد بود که در جدول T2وجود ندارند.
=
•
• عملگر جایگزینی
or giving
• با استفاده از عملگر جایگزینی می توان نتیجه یک عملیات ا در یک جدول ذخيره کرد و
در عملیات بعدی از آن استفاده کرد.
بخش چهارم :زبان پرس و جوی ساخت یافته
Structured Query Language
زبان داده اي پايگاه داده هاي رابطه اي براي تعريف ،كنترل و
عمليات روي داده
زبانهای فرعی به سه قسمت اصلی تقسیم می شوند:
• دستورات تعریف داده ها
• دستورات دستکاری داده ها
• دستورات کنترل داده ها
دستورات تعريف داده ها-1
Data Definition Language (DDL)
:مثال
Create Database
Create Table
Alter Table
Drop Table
Create Index
Alter Index
Drop Index
دستورات عمليات روي داده ها-2
Data Manipulation Language (DML)
:مثال
Select
Insert
Delete
Update
Insert to
دستورات كنترل داده ها-3
Data Control Language (DCL)
:مثال
Grant Delete, UPDATE, INSERT
ON OBJECT TO USER
Revoke Delete, UPDATE, INSERT
ON OBJECT FROM USER
دستورات كنترل تراكنش-4
Transaction Control Language (TCL)
:مثال
Rollback
Commit
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات تعریف داده ها
-1دستور ايجاد پایگاه داده ها:
CREATE DATABASE database_name
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات تعریف داده ها (ادامه)
-2دستور ايجاد و حذف جدول:
قسمتهای اختیاری دستورات در داخل کروشه ارائه شده است.
CREATE TABLE table_name
(column1 column1_datatype [not null][unique],
column2 column2_datatype [not null][unique],
…
(,نام ویژگیهای تشکیل دهنده کلید اصلی(Primary key
,نام جدول مورد نظر ( referencesنام ویژگیهای کلید خارجی Foreign key(1
,نام جدول مورد نظر ( referencesنام ویژگیهای کلید خارجی Foreign key(2
...
)]شرط مورد نظر [check
حذف یک جدول
DROP TABLE table_name
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات تعریف داده ها (ادامه)
بازه
نوع داده ای
اعداد صحیح
Integer
اعداد صحیح
Smallint
اعدادی با Pرقم و qرقم اعشاری
)Decimal(p,q
اعداد اعشاری با مميز شناور
Float
اعداد حقیقی
)Numeric(p,q
رشته های کاراکتری با طول n
)Char(n
رشته های کاراکتری با طول متغير کوچکتر یا مساوی n
)Varchar(n
تاریخ با فرمت yyyymmdd
Date
زمان با فرمت hhmmss
Time
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات تعریف داده ها (ادامه)
مثال-دستور ايجاد و حذف جدول:
CREATE TABLE S
(s# char(2),
Sname nchar(30) not null unique,
City key(20),
))Primary key(s#
عبارت not nullبرای یک ویژگی باعث می شود که از درج تاپلهای که در آنها مقداری برای ویژگی مورد نظر درج نشده
باشد ،جلوگیری می کند.
عبارت uniqueبرای یک ویژگی باعث می شود که از درج تاپلهای که در آنها برای ویژگی مورد نظر مقداری تکراری وارد
شده باشد ،جلوگیری می کند.
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات تعریف داده ها (ادامه)
-3دستور ايجاد و حذف ایندکس:
ایندکسها در واقع همان کلیدهای ثانویه هستند .از ایندکسها برای تسریع جستجوی یک موجودیت خاص در
صورت عدم دسترس ی به مقدار کلید اصلی استفاده می شود.
(نام ویژگیها) نام جدول onنام ایندکس Create [unique] index
درج عبارت uniqueباعث می شود که از ورود اسمهای تکرای در جدول ،جلوگیری شود.
)Create index names on S(sname
حذف ایندکس
نام ایندکس.نام جدول Drop index
Drop index S.names
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات تعریف داده ها (ادامه)
-4اضافه کردن و تغییر مشخصات یک ستون در جدول
)] [not null][uniqueمشخصات ستون جدید نام ستون جدید( addنام جدول Alter table
))Alter table S add(tel char(10
)] [not null][uniqueمشخصات ستون جدید نام ستون جدید( modifyنام جدول Alter table
)Alter table S modify(sname nchar(20) not null unique
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها
-1دستور بازيابي
نام ستونها و یا عبارات محاسباتی مورد نظر ]SELECT [ALL | DISTINCT
نام جداول FROM
]شرط روی تاپلها [WHERE
]نام ستونهای که قرار است لیست براساس آنها گروه بندی شود [GROUP BY
] انتخاب گروههای که شرط به خصوص ی دارند [HAVING
] [asc|descنام ستونهایی که قرار است لیست براساس آنها مرتب شود [ORDER BY
برای حذف تاپلهای تکراری از گزینه distinctاستفاده می شود.
شرایط برای انتخاب سطرهای خاص با انواع ترکیبات ANDیا ORو یا
, , = , , ,
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
عملگرهای inو not in
برای تست وجود یا عدم وجود یک مقدار در داخل یک مجموعه استفاده می شود.
’Where p#=‘p2’ or p#=‘p3’ or p#=‘p4
)’Where p# in )‘p2’ ,‘p3’ ,’p4
عملگر likeو not like
برای جستجوی یک عبارت در داخل مقادیر یک ستون رشته ای استفاده می شود.
’%مصالحWhere sname like ‘%
یعنی می تواند قبل و بعد از کلمه مصالح عبارات دیگری باشند.
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
توابع جمعي (گروهي)
• :COUNTتعداد تاپلهای مورد نظر را به دست ميدهد.
• :SUMحاصل جمع مقادير اسكالر در يك ستون را به دست ميدهد.
• :AVGميانگين مقادير اسكالر در يك ستون را به دست ميدهد.
• :MAXبيشترين مقدار اسكالر در يك ستون را به دست ميدهد.
• :MINكمترين مقدار اسكالر در يك ستون را به دست ميدهد.
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
يك مثال در مورد استفاده از توابع جمعي
)SELECT MIN(GRADE) , MAX(GRADE
FROM STCOT
’WHERE TR=‘2
AND
’YRYR=’79-80
AND
;’COID=‘COM222
باالترين و پايين ترين نمره در درس COM222در ترم دوم 79-80را بازيابي ميكند.
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
آزمون تست وجود هيچ مقدار در يك ستون
ميتوان با امكان IS NULLوجود هيچ مقدار در يك ستون را تست كرد.
مثال :شماره دانشجوياني را بدهيد كه نمره آنها در درس SOC333در ترم دوم 78-79هنوز
اعالم نشده است؟
SELECT STID
FROM STCOT
’WHERE COID=‘SOC333
AND
’TR=‘2
AND
’YRYR=’78-79
AND
GRADE IS NULL
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
پرس و جو روی چند جدول
عملگر existsو not exists
برای تست وجود یا عدم وجود تاپلهای خاص در یک جدول استفاده می شود.
Select sname
From S
* Where exists (select
from SPJ
where SPJ.s#=S.s#
از جدول Sنام تولید کنندگانی را پیدا می کند که در جدول فروش SPJفروش ی (تاپلی) برای آنها وجود دارد.
Select sname
From S, SPJ
Where SPJ.s#=S.s#
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
پرس و جو روی چند جدول
عملگر unionو union all
برای بدست آوردن اجتماع دو جدول سازگار استفاده می شود.
•عملگر except
برای بدست آوردن تفریق دو جدول سازگار استفاده می شود.
)(select city Form s
Union or expect
)(select city form j
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
امكان BETWEEN
شكل كلي اين امكان چنين است:
Scalar-expression [NOT] BETWEEN Scalar-expression AND Scalar-expression
مثال :شماره دانشجوياني را بدهيد كه نمره آنها در درس HIS444در ترم اول 77-78بين 15و 19باشد.
SELECT STCOT.STID
FROM STCOT
’WHERE TR=‘1
AND
’YRYR=’77-78
AND
’GRADE BETWEEN ’15’ AND ’19
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
-2دستور ایجاد دید خارجی
نکته :داده های موجود در دیدگاه به صورت اتوماتیک تغیير می کند.
یک دستور انتخاب ( Asنام ستونهای دیدگاه(نام دیدگاه Create view
مثال :دیدگاهی به نام partSaleایجاد کنید که شامل کد محصوالت و ميزان کل فروش آنها
باشد.
Create view partSale(p#,sum1) As Select p#,sum(qty) form SPJ group by p#
نام ستونهای دیدگاه به ترتیب با نام ستونهای انتخاب شده در دستور selectنظير می شوند .یعنی در دیدگاه باال p#با p#و
sum1با ) sum(qtyنظير می شود.
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات دستکاری داده ها (ادامه)
-2دستور ایجاد دید خارجی
حذف یک دیدگاه
نام دیدگاه Drop view
درج یک تاپل
(مقادیر ویژگیها) ( valuesنام ویژگیها)نام جدول Insert into
حذف تاپلها
]شرط [whereنام جدول Delete form
اصالح تاپلها
]شرط , … [whereمقدار دو = نام ویژگی دوم ام ,مقدار یک = نام ویژگی یک ام setنام جدول Update
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات کنترل داده ها
دستور واگذاری مجوز
خواندن همه ستونها
Select
خواندن ستونهای مشخص شده
)نام ستونها( Select
اصالح همه ستونها
Update
اصالح ستونهای مشخص شده )نام ستونها( Update
درج تاپل
] [with grant optionنام کاربران toنام جدول On
حذف تاپل
Insert
Grant Delete
تغیير ساختار جدول
Alter
ایجاد ایندکس
Index
کلیه گزینه های باال
All
کاربرانی که مجوز with grant optionرا دریافت نموده اند می توانند به نوبه خود این مجوزها را به
دیگران ارائه دهند.
بخش چهارم :زبان پرس و جوی ساخت یافته
دستورات کنترل داده ها (ادامه)
دستور بازپس گيری مجوز
نام کاربران toنام جدول On
خواندن همه ستونها
Select
خواندن ستونهای مشخص شده
)نام ستونها( Select
اصالح همه ستونها
Update
اصالح ستونهای مشخص شده
)نام ستونها( Update
درج تاپل
Insert
حذف تاپل
revoke Delete
تغیير ساختار جدول
Alter
ایجاد ایندکس
Index
کلیه گزینه های باال
All
-2دستورات پردازش داده ها
-2 -2دستورات عمليات ذخيرهسازي :
براي انجام عمليات سهگانه ذخيرهسازي سه دستور ،DELETE
INSERTو UPDATEوجود دارد.
UPDATE دستور
:شكل كلي اين دستور چنين است
UPDATE table-name
SET assignment-commalist
[WHERE Condition(s)]
. تعداد واحد درسهاي عملي را يك واحد كاهش دهيد:مثال
UPDATE COT
SET CREDIT=CREDIT-1
WHERE COTYPE=‘p’;
DELETE دستور
:شكل كلي اين دستور چنين است
DELETE
FROM table-name
[WHERE Cond(s)]
حذف كنيد78-79 را در ترم دوم سال78110555 درسهاي دانشجوي با شماره:مثال
DELETE
FROM STCOT
WHERE STID=‘78110555’
AND
TR=‘2’
AND
YRYR=’78-79’;
اين دستور دو شكل كلي دارد:
دستور INSERT
INSERT INTO table-name
;)Values(one row
INSERT INTO table-name
;Subquery
در شكل دوم ،تعدادي سطر در جدول درج ميشوند.
مثال :اطالعات درس ي زير را در جدول درج نمائيد.
><78110888,COM888,2,78-79,12
INSERT INTO STCOT
;>VALUES <‘78110888’, ‘COM888’, 2, 78-79, 12
امتيازها
امتيازهايي كه يك كاربر ميتواند به يك كاربر ديگر بدهد:
• :USAGEاجازه استفاده از يك ميدان
• :SELECTاجازه دستيابي به تمام ستونهاي يك جدول
• ) :INSERT(Xاجازه درج يك مقدار در ستون Xاز يك جدول
• :INSERTاجازه درج تمام ستونهاي يك جدول
• ) :UPDATE(Xاجازه بهنگامسازي ستون Xاز يك جدول
• :UPDATEاجازه بهنگامسازي تمام ستونهاي يك جدول
• :DELETEاجازه حذف سطر(ها) از يك جدول
• ) :REFRENCES(Xاجازه ارجاع به ستون Xاز يك جدول در تعريف
محدوديتهاي جامعيتي
جمعبندي در مورد امكانات نسخه SQL1
-1نارويهاي است.
-2داراي كمال ساختاري است.
-3زبان استانده سيستمهاي رابطهاي موجود است.
-4تمام انواع دادهاي ساده را دارد.
-5عملگرهاي بسيار قوي دارد.
-6يادگيري آن ساده است.
-7استقالل دادهاي را تامين ميكند.
-8هم به صورت مستقل و هم به صورت ادغامشده قابل استفاده است.
دستوراتي كه در نسخه SQL2تغيیر كردند يا به آن اضافه شدند:
.1دستور تعريف دادهها
.8دستور حذف جدول
.2دستور تعريف ميدان
.9تعريف جدول موقت
.3انواع دادهاي
.10دستور بازيابي
.4دستور تغيير ميدان
.11امكانات جامعيتي
.5دستور حذف ميدان
.12امكانات ايمني
.6دستور ايجاد جدول
SQL .13پويا
.7دستور تغيير جدول
دستوراتي كه در نسخه SQL3تغيیر كردند يا به آن اضافه شدند:
.1
.2
.3
.4
.5
.6
.7
تعريف نوع داده مجرد
تعريف زيرنوع
امكان تعريف زيرجدول و زبرجدول
امكان ارثبري ستونهاي جدول جديد از ستونهاي جدول نامدار موجود
رويهاي شدن زبان
رهانا
نوشتن رويه
SQL .8ادغامشده
.9واسط درخواست فراخوان
.10دستورات كنترل تراكنشها
امكانات جامعيتي
كاربر ميتواند زمان وارسي جامعيت پايگاه را (براساس
محدوديتها و قواعد دادهشده) خود مشخص كند .ميتواند
درخواست كند كه اين وارسي بالفاصله باشد يا با تاخير.
براي اين منظور از امكان زير استفاده ميشود:
)SET CONSTRAINTS (constraint-name
}{DEFERRED | IMMEDIATE
نوع داده مجرد
شايد مهمترين قابليتي كه در زمينه انواع دادهاي
در SQL3افزوده شد ،امكان تعريف نوع داده
مجرد ( )ADTباشد .با اين نوع داده ميتوان
مجموعهاي از صفات و روالها را تعريف كرد.
نوع داده مجرد نمونههايي دارد و هر نمونه هم به
نوبه خود ،همه صفات و روالهاي تعريفشده را
دارد.
ساختهاي زباني افزودهشده به ،SQL3كه در تعريف توابع و
رويهها استفاده ميشود:
• احكام مركب (تودرتو)
• احكام حلقهگرداني)
• احكام شرطي
• احكام انتساب
• احكام اعالن اشتباهات در برنامه
رهانا
تعريف -قاعده (محدوديت) يا قواعدي است كه قبل يا بعد از
بروز يك رويداد در پايگاه دادهها (معموال يك عمل تغييردهنده
دادهها) بايد اعمال شود .اين قاعده در سطح برنامهسازي ،به
صورت يك رويه از پيش تعريفشده است كه به طور شرطي
يا غيرشرطي ،قبل يا بعد از انجام يك عمل در پايگاه دادهها ،به
طور اتوماتيك اجرا ميشود.
رهانا
مزايا
.1اجراي آن تحت كنترل متمركز سيستم و نظارت مدير
پايگاه دادهها است.
.2با وجود آن ديگر نيازي نيست كه محدوديتهاي مورد نظر
در هر برنامه كاربردي اعمال شوند و كنترلهاي الزم
انجام شود.
.3براي معماري C/S DBبسيار مناسب است.
كاربرد رهانا
.1اعمال قواعد جامعيت.
.2اعمال قواعد ايمني مبتني بر مقادير
.3درج ركوردهاي ثبت عمليات در فايل ثبت تراكنشها
.4توليد نسخهاي از دادههاي ذخيرهشده در يك سايت ديگر.
.5در انتشار اتوماتيك عمليات در پايگاه دادههاي توزيعشده.
.6در بهنگامسازي ديدها در سيستمهاي رابطهاي
تراكنش
تعريف :به بيان ساده عملي است كه تغييري در پايگاه دادهها ايجاد كند.
اين عمل كه طبعا به صورت يك برنامه يا بخش ي از يك برنامه است ،يا
بايد به تمامي اجرا شود و يا اصال اجرا نشود و ميگوييم كه تراكنش
خاصيت تجزيهناپذيري دارد.
خواص
.1تجزيهناپذيري
.2سازگاري
.3جدايي (انفراد)
.4مانايي (دوام)
بخش پنجم :نرمال سازی
•
•
•
•
•
•
•
جداول آنرمال
جداول نرمال 1
جداول نرمال 2
جداول نرمال 3
جداول نرمال BCNF
جداول نرمال 4
جداول نرمال 5
بخش پنجم :نرمال سازی
چرا نرمال سازی جداول الزم است:
• کاهش افزونگی
• آنومالی به روز رسانی ()Update
• آنومالی درج ()Insert
• آنومالی حذف ()Delete
نرررم سررازی در عمررل یعنرری پيررروی از یررک سررری فرررم هررای نرمررال کرره منجررر برره تجزیرره
جداول می شوند.
بخش پنجم :نرمال سازی
• جداول آنرمال
به جداولی اطالق می شود که گروه اطالع تکرار شونده دارد.
یعنی در برخورد هر سطر و ستون آن به جای یک مقدار اتمی و تجزیه
ناپذیر ،مجموعه ای از مقادیر وجود دارد.
در نمودار وابستگی ،برای نمایش گروه اطالع تکرار شونده از یک خط در
باالی ویژگی استفاده می شود.
بخش پنجم :نرمال سازی
جداول نرمال 1یا رابطه 1NF
• رابطهاي 1NFاست اگر هر صفت خاصه آن در هر تاپل ،تكمقداري باشد.
• در حالت کلی در مدل رابطه ای یک جدول همیشه 1NFهستند.
• در جدول نرمال شده دیگر st#نمی تواند کلید اصلی باشد چون برای آن مقادیر تکراری
وجود دارد.
• برای رفع این مشکل کلید تبدیل به st#+telephoneمی شود.
بخش پنجم :نرمال سازی
•در جدول نرمال شده دیگر st#نمی تواند کلید اصلی باشد چون برای آن مقادیر تکراری وجود دارد.
•برای رفع این مشکل کلید تبدیل به st#+crs#+termمی شود.
بخش پنجم :نرمال سازی
چرا جداول نرمال 2
ناهنجاری حذف :فرض کنیم علی تنها دانشجویی باشد که درس ریاض ی 1را گرفته است .اگر الزم باشد
اطالعات علی را حذف کنیم بطور ناخواسته اطالعات ریاض ی 1را از دست می دهیم.
ناهنجاری درج :فرض کنید بخواهیم اطالعات دانشجوی جدیدی که هنوز هیچ درس ی نگرفته است ،درج
کنیم .از آنجا که termو course#جزئی از کلید اصلی هستند و نمی توانند مقدار تهی داشته باشند
انجام این عمل ممکن نیست.
ناهنجاری اصالح :فرض کنیم تعداد واحد درس ی پایگاه داده را از 3به 4تغیير دهیم .در این صورت برای
حفظ سازگاری داده ها الزم است این تغیير را به دفعات مکرر در تاپلهای مختلف اعمال کنیم.
کلید st#+crs#+term
بخش پنجم :نرمال سازی
• جداول نرمال 2
– نرمال یک باشد.
– در آن هیچ وابستگی جزئی به کلید اصلی وجود نداشته باشد.
– یا به عبارت دیگر هیچ ویژگی جدول تنها به قسمتی از کلید اصلی وابستگی نداشته
باشد.
بخش پنجم :نرمال سازی
جداول نرمال 2
مراحل الزم:
کلیه ترکیبات ممکن میان اجزاء کلید اصلی را به ترتیب در سطرهای مجزا بنویسید(.ابتدا ترکیبات یک جزئی ،دو جزئی و )...
در کنار هر یک از ردیفها ویژگیهایی را که در تشکیل کلید اصلی نقش ی ندارند و به ویژگیهای مورد نظر وابستگی تابعی دارند در
سطرهای باالتر نيز نوشته نشده اند ،بنویسید( .مثال با داشتن یک st#تنها به یک nameمی توان رسید)
کلیه ردیفهای را که هیچ ویژگی غيرکلیدی در آنها وجود ندارد و شامل هیچ اطالعات مفیدی که در جداول دیگر نيز وجود
ندارد ،نمی باشند .حذف کرده ،سایر سطرها را به جداول مجزا تبدیل کنید.
St#, name
Crs#, cname,unit
Term
St#+crs#
St#+term
Crs#+term
St#,Crs#,term, grade
نرمال سازی:بخش پنجم
2NF به1NF تبدیل
StudentId
CourseId
Dept
Grade
12
CS101
IE
B-
12
CS102
IE
C+
12
IE201
IE
C-
7
CS201
CS
A
7
CS352
CS
D
StudentId
CourseId
Grade
12
CS101
B-
12
CS102
C+
12
IE201
C-
7
CS201
A
7
CS352
D
StudentId
Dept
12
IE
7
CS
بخش پنجم :نرمال سازی
• چرا جداول نرمال 3
جدول زیر نرمال 2است .چونکه نرمال 1بوده و از آنجا که کلید اصلی تنها یک جزء دارد بدون هیچ
شک هیچ وابستگی جزئی در آن وجود ندارد.
اما دارای ناهنجاری های زیر است:
ناهنجاری حذف :فرض کنیم عسل شاملو تنها کس ی باشد که مدرک کارشناس ی ارشد دارد .اگر
اطالعات آنرا حذف کنیم اطالعات مربوط به مدرک فوق لیسانس را نيز از دست می دهیم.
ناهنجاری اصالح :اگر بخواهیم نام مدرک 4را از فوق لیسانس به کارشناس ی ارشد تغیير دهیم ،در این
صورت مجبوریم این تغیير را در تاپلهای مختلف تکرار کنیم.
بخش پنجم :نرمال سازی
• جداول نرمال 3
– نرمال 2باشد.
– در آن هیچ وابستگی متعددی (وابستگی با واسطه) در آن وجود نداشته باشد.
– به عبارت دیگر در آن هیچ ویژگی غيرکلیدی به ویژگی غيرکلیدی دیگر وابستگی تابعی
نداشته باشد.
مراحل:
ویژگیهای که در وابستگی متعددی شرکت دارند در یک جدول مجزا قرار داده ،ویژگیهای را که در طرف چپ
این وابستگی قرار دارند به عنوان کلید اصلی معرفی کنید.
بقیه ویژگیهای جدول اولیه را در جدول مجزا قرار داده ،ویژگیهای تشکیل دهنده کلید اصلی در جدول اول
را به آنها اضافه کنید.
بخش پنجم :نرمال سازی
• چرا جداول نرمال )BCNF (Codd and Boyce
ناهنجاری درج :به عنوان مثال نمی توان استاد جدیدی را که هنوز هیچ دانشجویی با
وی پروژه نگرفته است در جدول درج کرد .چراکه st#جزئی از کلید اصلی است و نمی
تواند تهی باشد.
ناهنجاری حذف :فرض کنیم که دانشجویی 8001تنها دانشجویی باشد که با پروین
صبا پروژه گرفته است .در این صورت اگر این دانشجو را حذف کنیم ،اطالعات
مربوط به این استاد نيز از بين می رود.
بخش پنجم :نرمال سازی
• جداول نرمال BCNF
– اگر و تنها اگر کلیه تعیين کننده های آن کلید کاندیدا باشند.
تعریف تعیین کننده:
– اگر در یک جدول ویژگی Bبه ویژگی Aوابستگی تابعی داشته باشد ،آنگاه Aیک
تعیين کننده خواهد بود.
– مثال tutor :یک تعیين کننده است در حالی که کلید کاندیدا نیست.
– روند تبدیل جداول نرمال 2به BCNFمعادل تبدیل جداول نرمال 2به
جداول نرمال 3می باشد.
بخش پنجم :نرمال سازی
• مقایسه جداول نرمال BCNFو 3NF
این دو جداول نرمال عموما با هم معادلند.
استثناء :تنها در صورتی که جدول بیش از یک کلید کاندیدا داشته باشد و
میان کلیدهای کاندیدا ویژگی مشترک وجود داشته باشد این دو جدول با
هم معادل نخواهند بود.
بخش پنجم :نرمال سازی
• چرا جداول نرمال 4
– جدول زیر یک جدول نرمال BCNFمی باشد چرا که یک جدول تمام کلید است.
– ناهنجاری درج :اگر کارمند 101مهارت برنامه نویس ی جاوا را نيز کسب کند ،بجای اضافه
کردن یک تاپل باید دو تاپل جدید ذیل به جدول اضافه شود.
– ناهنجاری حذف :اگر بخواهیم زبان آملانی را از اطالعات کارمند 101حذف کنیم ،بجای
حذف یک تاپل باید 3تاپل حذف شود.
بخش پنجم :نرمال سازی
• جداول نرمال 4
– نرمال BCNFباشد.
– هیچ وابستگی چند مقداری در آن وجود نداشته باشد.
تعریف وابستگی چند مقداری
اگر در جدول ) T(a,b,cبه ازاء هر مقدار برای ویژگی aمجموعه ای از
مقادیر برای ویژگی cوجود داشته باشد و این مجموعه مستقل از
مقادیر ویژگی bباشد ،ویژگی cبه ویژگی aوابستگی چند مقداری دارد.
بخش پنجم :نرمال سازی
– در جدول زیر مشاهده می شود که تنها emp#مجموعه languageرا تعیين می کند و تغیير
skillهیچ نقش ی در تغیير مجموعه languageندارد .دلیل این امر نيز آنست که مهارتهای یک
شخص و زبانهایی که شخص بر آنها مسلط است هیچ ارتباطی با یکدیگر ندارند .پس language
به emp#وابستگی چند مقداری دارد.
– همچنين emp#مجموعه skillرا تعیين می کند و languageهیچ نقش ی در تغیير مجموعه
skillندارد .پس skillنيز به emp#وابستگی چند مقداری دارد.
– برای جلوگيری از ایجاد وابستگی چند مقداری ،در همان مرحله اول و هنگام تبدیل جدول آنرمال به
نرمال 1به ازاء هر گروه تکرار شونده باید جدول مجزایی در نظر بگيریم.
BCNFاست
4NFاست
درس
زبان برنامه نویس ی
برنامه نویس ی پیشرفته
Java
برنامه نویس ی پیشرفته
C++
BCNFاست
ولی 4NFنیست
درس
استاد
زبان برنامه نویس ی
برنامه نویس ی پیشرفته
احمدی
مبانی برنامه نویس ی
Java
Java
برنامه نویس ی پیشرفته
احمدی
C++
مبانی برنامه نویس ی
C
برنامه نویس ی پیشرفته
سلیمانی
Java
مبانی برنامه نویس ی
Pascal
برنامه نویس ی پیشرفته
سلیمانی
C++
مبانی برنامه نویس ی
احمدی
Java
مبانی برنامه نویس ی
احمدی
C
مبانی برنامه نویس ی
احمدی
Pascal
مبانی برنامه نویس ی
ادیب
Java
مبانی برنامه نویس ی
ادیب
C
مبانی برنامه نویس ی
ادیب
Pascal
درس
استاد
برنامه نویس ی پیشرفته
احمدی
برنامه نویس ی پیشرفته
سلیمانی
مبانی برنامه نویس ی
احمدی
مبانی برنامه نویس ی
ادیب
بخش پنجم :نرمال سازی
• جداول نرمال 5
– نرمال 4باشد.
– نتوان آنرا به جداول کوچکتر تجزیه کرد بطوریکه حداقل یکی از
جداول شامل هیچ یک از کلیدهای کاندیدای جدول اولیه نباشد.
جدول مقابل BCNFبوده و چون وابستگی چند مقداری نيز ندارد لذا
نرمال 4نيز است.
جدول را به دو جدول زیر می شکنیم.
نتیجه پیوند دو جدول به صورت زیر می باشد که دارای دو تاپل اضافی
است و لذا این تجزیه بیفایده است.
بخش پنجم :نرمال سازی
جدول مقابل BCNFبوده و چون وابستگی چند مقداری نيز ندارد لذا
نرمال 4نيز است.
جدول را به دو جدول زیر می شکنیم.
نتیجه پیوند دو جدول به صورت زیر می باشد که دارای دو تاپل اضافی
است و لذا این تجزیه بیفایده است.
بخش پنجم :نرمال سازی
جدول مقابل BCNFبوده و چون وابستگی چند مقداری نيز ندارد لذا
نرمال 4نيز است.
جدول را به سه جدول زیر می شکنیم.
نتیجه پیوند سه جدول به صورت زیر می باشد که دارای یک تاپل اضافی
است و لذا این تجزیه بیفایده است.
مزاياي نرمالترسازي
ارائه يك طراحي بهتر و واضحتر با كمترين اختالط اطالعات
كاهش بعض ي انواع افزونگي
كاهش بعض ي آنومالیها
تسهيل اعمال بعض ي قواعد جامعيت
معايب روش نرمالترسازي
بروز فزونكاري در سيستم در عمل بازيابي
ايجاد نوعي افزونگي از نوع افزونگي در سطح ادراكي
زمانگير بودن فرآيند نرمالترسازي به ويژه اگر محيط عملياتي بزرگ و تعداد رابطهها زياد
باشد.
تصميمگيري دشوار در اثر تعدد تجزيهها
امكان وابستگي بين مجموعه صفات يك خردجهان ،وابستگیهاي به جز وابستگي تابعي و
پيوندي باشد و بنابراين سبب مطرح شدن قواعد جامعيت ديگر و نيز ضوابط ديگري براي
تجزيه رابطهها شود و غيره.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
آنچه در این فصل خواهیم خواند:
• گروه بندی مدلهای داده براساس درجات تجرید داده ها
–
–
–
–
مدل انتزاعی (باالترین درجه تجرید)
مدل داخلی
مدل خارجی
مدل فيزیکی (پایين ترین درجه تجرید)
• نمودارهای ER
– اجزاء اصلی نمودارها ER
oموجودیتها
oویژگیها
oرابطه ها
• نگاشت یک نمودار ERبه جداول پایگاه داده ها
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
• مدلهای داده نمایش ی نسبتا ساده و غالبا گرافیکی از ساختارهای
داده در دنیای واقعی هستند
• که می توانند بعنوان یک پل ارتباطی میان طراحان ،برنامه نویسان
و کاربران نهایی مورد استفاده قرار گرفته و آنها را در رسیدن به یک
دید مشترک و فهم متقابل از برداشتهای یکدیگر یاری کنند.
• نمودارهای ERیکی از رایجترین ابزارها برای مدلسازی داده ها
هستند.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
• مدل انتزاعی (باالترین درجه تجرید)
– یک دید سراسری نسبت به کل داده های سیستم ارائه می دهد.
– دید مدیران سطح باال نسبت به داده ها است.
– ایجاد مدل انتزاعی اولين مرحله از طراحی پایگاه داده هاست.
– غالبا برای ایجاد این مدل از نمودارهای ERاستفاده می شود.
– مدل انتزاعی مستقل از نرم افزار ،سخت افزار و سیستم عاملی است که
قرار است پایگاه داده ها روی آنها پیاده سازی شود.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
• مثال مدل انتزاعی (باالترین درجه تجرید)
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
• مدل داخلی
–
–
–
–
مدل داخلی همان مدل انتزاعی است با این تفاوت
که جزئیات و شرایط خاص مدل پایگاه داده ها
نيز در آن در نظر گرفته می شود.
مدل داخلی وابسته به نرم افزار است.
در صورت استفاده از مدل شبکه ای یا سلسله
مراتبی بعلت وابستگی شدید مدل به مسيرها و
شیوه ذخيره سازی داده ها ،در مدل داخلی باید
جزئیات مربوط به مسيرها و شیوه ذخيره سازی
داده ها مشخص شود .اما در صورت استفاده از
مدل داده رابطه ای ،نیازی به ارائه این جزئیات
نیست.
مدل داخلی از سخت افزار یا سیستم عاملی که
قرار است پایگاه داده ها روی آن پیاده سازی
شود ،مستقل است.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
• مدل خارجی
– دیدی را که هر یک از کاربران نهایی
یا گروههای مختلف از کاربران
نسبت به داده ها دارند ،نشان می
دهد.
– کاربران مختلف با توجه به حوزه
مسولیتها و وظایف خود دید
متفاوتی نسبت به داده های
سیستم دارند.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
• مدل فیزیکی (پایین ترین درجه تجرید)
– نحوه ذخيره سازی داده ها روی رسانه را نشان می دهد.
– مدل فيزیکی به سخت افزار و نرم افزار مورد استفاده برای پیاده سازی
پایگاه داده ها وابسته است.
– مدلهای سلسله مراتبی و شبکه ای با اشاره گرها سر و کار دارند ،لذا
روش ذخيره سازی و بازیابی فيزیکی داده ها بر کارایی سیستم تاثير بسزایی
دارد .اما در پایگاه داده های رابطه ای چنين وضعیتی حاکم نیست.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
مدل داده ای
• مجموعه ای از ابزار برای بيان
– داده ها
– روابط ميان داده ها
– مفهوم داده ها
– محدوديت حاکم بر داده ها
می باشد.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
مدل Entity-Relationship
•
•
•
•
•
•
ERيک مدل از دنيای واقعی است.
ERرایجترین ابزار برای نمایش مدل انتزاعی داده ها می باشد.
به عنوان ابزاری برای ایجاد درک متقابل و تفاهم میان طراحان پایگاه داده ها ،مدیران ،برنامه
نویسان و کاربران نهایی مورد استفاده قرار می گيرد.
ساختار جداول پایگاه داده ها را می توان از این نمودارها استخراج نمود.
در صورت رعایت کلیه اصول ،جداول استخراج شده از نمودارهای ERنرمال بوده و نیازی به
نرمال سازی نخواهند داشت.
در روش ،ERسه مفهوم معنايی وجود دارد و معنای داده های هر محيط به کمک همين سه
مفهوم نمايش داده می شوند:
– موجوديت ()Entity
– ویژگی یا صفت یا خصیصه ()Attribute
– رابطه ()Relation
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
اجزاء اصلی نمودارهای ER
-1موجوديت ()Entity
• نوع موجوديت عبارت است از “ش ي”“ ،چيز”“ ،پديده” و بطور کلی هر
آنچه که می خواهيم در موردش “اطالع” داشته باشيم و شناخت خود را
در موردش افزايش دهيم ،اعم از اينکه وجود فيزيکی يا ذهنی داشته
باشد.
• برای نمایش موجودیتها از مستطیل استفاده می شود.
– مثال :دانشجو ،درس ،استاد ،کالس و غيره.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
مثال :مشخص کردن موجودیت ها
• نیاز به یک پایگاه داده داریم که اطالعات دانشجو ،استاد و
درس در آن ذخيره شود .هر دانشجو می تواند چند درس را اخذ
کند .هر استاد می تواند چند درس در طول یک ترم ارائه نماید.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
اجزاء اصلی نمودارهای ER
-2ویژگیها-صفات ()Attribute
• صفت در واقع خصيصه يا ويژگی يک نوع موجوديت است و هر نوع
موجوديت مجموعه ای از صفات دارد.
• هر صفت از نظر کاربران يک نام ،يک نوع( )Typeو يک معنای مشخص
دارد.
– مثال :يک شخص که دارای يک کد ملی ،نام ،نام خانوادگی ،قد ،سن و ...می
باشد.
• برای نمایش ویژگیها از بیض ی استفاده می شود.
• صفات را از پنج ديدگاه می توان تقسيم بندی کرد.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
تقسيم بندی صفات از ديدگاه 1
• ساده
– صفت ساده صفتی است که مقدار آن از لحاظ معنايی ساده يا تجزيه نشدنی باشد،
به اين معنا که اگر مقدار آن را (دريک حيطه معنايی و کاربرد مشخص) به اجزايی
تجزيه کنيم ،مقادير جزيی حاصله فاقد معنا باشند.
– مثال :نام کوچک شخص یا شماره دانشجویی و غيره.
• مرکب
– صفت مرکب صفتی است که از چند صفت ساده تشکيل شده باشد به گونه ای که
تجزيه شدنی باشد و اجزای حاصل از تجزيه ،خود صفات ساده باشند.
– مثال تاريخ :خود شامل روز ،ماه و سال است.
– مثال آدرس :خود شامل شهر،خیابان،کوچه،پالک و طبقه است.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
•
•
تقسيم بندی صفات از ديدگاه 2
تک مقداری
– صفت تک مقداری صفتی است که برای يک نمونه از يک موجوديت ،حداکثر يک مقدار از دامنه مقادير را
می گيرد.
– به بيان ساده تر ،به ازای يک نام صفت ،حداکثر يک مقدار برای يک نمونه از موجوديت ،داشته باشيم.
– مثال شماره ملی :يک نمونه از شخص فقط يک شماره ملی می تواند داشته باشد.
چند مقداری
– صفت چند مقداری صفتی است که برای بعض يا همه نمونه های نوع موجوديت بيش از يک مقدار ،از
دامنه مقادير را می گيرد.
– به بيان ساده تر ،به ازاء يک نام صفت ،چند مقدار ،برای يک نمونه از موجوديت داشته باشيم.
– برای مثال اگر شغل فرد را يک صفت برای او در نظر بگيريم آن شخص می تواند چند شغل داشته باشد.
– ویژگی چند مقداری با دو خط به موجودیت وصل می شود.
– ویژگی چند مقداری باید به ویژگیهای تک مقداری تبدیل کرد.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
اجزاء اصلی نمودارهای ER
-3رابطه ها یا ارتباط
• رابطه ها نحوه ارتباط موجودیتها را در سیستم نشان می دهند.
• رابطه با لوزی نمایش داده می شود.
• مفهوم رابطه در نمودارهای ERبا مفهوم رابطه در پایگاه داده های رابطه ای متفاوت
است.
درس
می گیرد
دانشجو
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
انواع رابطه ها
• رابطه یکتایی
– رابطه یک نوع موجودیت است با همان نوع موجودیت
– مثل رابطه درس با درس
• رابطه دوتایی
•
•
رابطه بين دو نوع موجودیت مختلف است
مثل رابطه درس با استاد
• رابطه nتایی
•
•
رابطه بين nنوع موجودیت مختلف است.
بهتر است روابط nتایی را روابط دو تایی شکست و تنها در صورت ضرورت از آنها استفاده نمود.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
مفاهیم مربوط به رابطه ها
• کارديناليتی رابطه
– مشخص می کند در یک رابطه هر موجودیت با حداقل و حداکثر چند موجودیت از طرف مقابل در ارتباط
است.
• درجه یک رابطه یا انواع تناظر:
• تناظر يک به يک 1 : 1
– يک سازمان يک مدير کل دارد و هر مدير کل فقط مدير کل يک سازمان است.
– رابطه ازدواج در کشورهای اسالمی
• تناظر يک به چند 1 : N
– يک مادر چند فرزند دارد و هر فرزند يک مادر دارد.
– رابطه دانشجو با درس
• تناظر چند به چند N : M
– هر دانشجو چند درس می گذراند و هر درس توسط چند دانشجو گذرانده می شود.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
درجه رابطه
()c
()d
• ( )aتناظر يک به يک
• ( )bو ( )cتناظر يک به چند 1 : N
• ( )dتناظر چند به چند N : M
1:1
()b
()a
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
مشارکت در رابطه
مشخص می کند آیا شرکت یک
موجودیت در یک رابطه اجباری است
یا اختیاری.
اگر در یک رابطه کاردینالیتی حداقل
برای یک موجودیت صفر باشد،
موجودیت طرف مقابل اختیاری
است.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
انواع موجودیت:
•
•
•
•
•
•
•
•
•
موجودیت قوی
موجودیتی است که وجود آن بستگی به وجود موجودیتهای دیگر ندارد.
موجودیت ضعیف ()Weak Entity
موجودیتی است که در محدوده مدلسازی ما به یک موجودیت قوی دیگر وابسته بوده و توسط آن موجودیت شناخته
میشود.
کلید اصلی موجودیت قوی جزئی از کلید اصلی آن است.
برای نمایش موجودیت ضعیت از دو مستطیل تو در تو استفاده می شود.
نوع مشارکت موجودیت ضعیف در رابطه الزامی میباشد.
چندی رابطه همواره یک به چند میباشد (در برخی حاالت خاص میتواند یک به یک باشد)
موجودیت بازگشتی
موجودیتی است که با خودش در ارتباط است.
مثل درس که پیش نیاز است برای درس دیگر
موجودیت مرکب
در نمودارهای ERروابط چند به چند را باید به روابط یک به چند تبدیل کرد .برای این کار رابطه را با یک موجودیت
مرکب جایگزین می نماییم.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
نوع و زیر نوعهای موجودیت
• اغلب میان موجودیتها ،رابطه سلسله مراتبی وجود دارد.
• مثال کارمندان یک شرکت به سه گروه خلبان ،مکانیک و حسابدار تقسیم می
شوند.
• برای تبدیل یک رابطه ابر نوع-زیر نوع به ساختار جداول بایستی:
– ویژگیهایی را که میان کلیه زیرنوعها مشترک هستند در جدول مربوط به
موجودیت ابرنوع و ویژگیهای خاص هر موجودیت زیرنوع را در جدول مربوطه
قرار داده ،کلید اصلی جدول مربوط به موجودیت ابرنوع را در جداول زیرنوع
قرار می دهیم.
Summary of Symbols Used in E-R Notation
Summary of Symbols (Cont.)
Alternative E-R Notations
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
نگاشت یک نمودار ERبه جداول پایگاه داده ها
-1برای هر یک از موجودیتهای قوی ،یک جدول در نظر بگيرید .برای هر یک از ویژگیهای موجودیت یک
ستون در نظر بگيرید و کیلد اصلی جدول را مشخص کنید.
-2برای هر یک از موجودیتها ضعیف ،یک جدول در نظر بگيرید و کلید اصلی جدول را مشخص کنید.
نکته :کلید اصلی موجودیتهای دو طرف موجودیت مرکب حتما باید جزء ویژگیهای این جدول باشند.
-3برای هر یک از موجودیتهای مرکب ،یک جدول در نظر بگيرید .کلید اصلی جدول را مشخص کنید.
نکته :کلید اصلی موجودیتهای دو طرف موجودیت مرکب حتما باید جزء ویژگیهای این جدول باشند.
-4برای هر رابطه دوتایی 1:1
چنانچه هر دو طرف رابطه اجباری و یا هر دو طرف اختیاری است ،به دلخواه خود کلید اصلی یکی ازجداول را به ویژگیهای جدول طرف مقابل اضافه نمایید.
چنانچه یک طرف رابطه اجباری و یا طرف اختیاری است ،کلید اصلی جدول طرف اجباری را به ویژگیهایجدول طرف اختیاری اضافه نمایید.
بخش ششم :مدلسازی داده ها با استفاده از
نمودارهای موجودیت رابطهEDR
نگاشت یک نمودار ERبه جداول پایگاه داده ها (ادامه)
-5برای هر رابطه دو تایی 1:M
کلید اصلی جدول طرف 1را به ویژگیهای جدول طرف Mاضافه کنید.
-6برای هر رابطه یکتایی 1:1یا 1:M
کلید اصلی موجودیت بازگشتی را با یک نام دیگر به ویژگیهای جدول اضافه نمایید( .به عنوان کلید خارجی)
-7برای هر رابطه -nتایی با n>2
جدولی در نظر بگيرید که شامل کلیدهای اصلی کلیه موجودیتهای شرکت کننده در رابطه باشد.
-8جداولی را که تنها یک ستون دارند و یا کلیه اطالعات موجود در آنها در جدول دیگری نيز موجود است را
حذف نمایید.
تذکر :ترتیب موارد فوق الذکر الزامی نیست.
روشهاي طراحي منطقي پايگاه دادهها
.1روش طراحی باال به پايين
.2روش طراحی سنتز رابطهاي
.3روش طراحی تركيبي
روش طراحي بال به پايین
در اين روش ابتدا مدلسازي معنايي دادهها انجام ميشود .سپس مدلسازي را به مجموعهاي
از رابطهها تبديل ميكنيم .حاصل اين فرايند ،معموال مجموعهاي از رابطههاي خوشطرح
است.
روش سنتز رابطهاي
در اين روش مجموعه صفات خردجهان واقع را مشخص ميكنيم .سپس با تحليل قواعد و
محدوديتهاي ناظر به صفات و تشخيص وابستگیهاي بين آنها ،صفات را متناسبا باهم سنتز
ميكنيم .هر گروه از صفات عنوان يك رابطه را به ما ميدهد به گونهاي كه حتياالمكان در
مطلوبترين صورت نرمال باشد .هر رابطه بدستآمده نمايشگر بخش ي از خردجهان واقع بوده،
ضوابط يك طرح خوب و قابل دفاع را خواهد داشت.
روش تركيبي
در اين روش ،ابتدا طراحي را با روش باال به پايين انجام ميدهيم و سپس با دخالت دادن برخي
محدوديتهاي جامعيتي كه در مرحله مدلسازي معنايي دادهها منظور نشدهاند و با تحليل هر
رابطه ،مرحله نرمالترسازي رابطهها را انجام ميدهيم تا به مجموعهاي از نرمالترين رابطهها
برسيم.
خصوصيات طراحي خوب
-1نمايش واضحي از خردجهان واقع باشد.
-2نمايش صحيحي از خردجهان واقع باشد.
-3نمايش جامعي از خردجهان واقع باشد.
-4تمام قواعد جامعيتي كه قابل اعمال در هر مرحله از طراحي منطقي باشند ،در طراحي
منظور شده باشند.
-5معناي هريك از صفات از هر نوع موجوديت به درستي رعايت شده باشد.
-6كمترين ميزان افزونگي را داشته باشد.
-7كمترين ميزان اختالط اطالعات را داشته باشد.
-8انعطافپذيري داشته باشد.
-9كمترين دشواري در انجام عمليات ذخيرهسازي
-10كمترين ميزان هيچمقدار
-11هيچ اطالع جعلي در اثر انجام عمليات در پايگاه دادهها پديد نيايد.
-12با درنظر گرفتن طراحي فيزيكي و تاثير آن در طراحي منطقي ،بيشترين كارايي براي سيستم
كاربردي پايگاه دادهها تامين شود.
روش تبديل نمودار ERبه رابطهها
حالت اول
• تعداد نوع موجوديتn>=2 :
• وضع موجوديتها :مستقل
• چندي ارتباطN:M :
در اين حالت n+1 ،رابطه الزم است n .رابطه براي nموجوديت مستقل و يك
رابطه براي نمايش ارتباط بين آنها .اگر ارتباط بين انواع موجوديتها ،صفت ساده
يا مركب چندمقداري نداشته باشد ،در اين صورت كليد كانديد رابطه نمايشگر
ارتباط بين nموجوديت ،از تركيب كليدهاي كانديد nرابطه نمايشگر n
موجوديت به دست ميآيد .سپس كليدهاي خارجي ،اجزاء تشكيلدهنده كليد
كانديد رابطه نمايشگر ارتباط هستند.
روش تبديل نمودار ERبه رابطهها
حالت دوم
• تعداد نوع موجوديت :دو
• وضع موجوديتها :مستقل
• چندي ارتباط1:N :
در اين حالت ،دو رابطه كفايت ميكند :يك رابطه براي نمايش نوع موجوديت
طرف يك ،يك رابطه براي نمايش نوع موجوديت طرف Nو نيز ارتباط .1:N
در رابطه اخير ،كليد كانديد رابطه اول ،به عنوان كليد خارجي رابطه دوم،
ارتباط مورد نظر را نشان ميدهد و جزء تشكيلدهنده كليد كانديد رابطه
نيست.
روش تبديل نمودار ERبه رابطهها
حالت سوم
• تعداد نوع موجوديت :دو
• وضع موجوديتها :مستقل
• چندي ارتباط1:1 :
در اين حالت ،دو رابطه الزم است :يك رابطه براي نمايش يكي از دو
نوع موجوديت و رابطهاي ديگر براي نمايش نوع موجوديت ديگر و
ارتباط بين دو نوع موجوديت.
روش تبديل نمودار ERبه رابطهها
حالت چهارم
• تعداد نوع موجوديت :يك
• وضع موجوديتها :مستقل
• چندي ارتباطN:M :
در اين حالت ،ارتباط با خود داريم .دو رابطه الزم است :يك رابطه
براي نمايش خود نوع موجوديت و ديگري براي نمايش ارتباط ،اعم
از اينكه مشاركت الزامي باشد يا نباشد.
روش تبديل نمودار ERبه رابطهها
حالت پنجم
• تعداد نوع موجوديت :يك
• وضع موجوديتها :مستقل
• چندي ارتباط1:N :
در اين حالت ،هم ”ارتباط با خود“ داريم و يك رابطه كفايت ميكند.
روش تبديل نمودار ERبه رابطهها
حالت ششم
• تعداد نوع موجوديت :يك
• وضع موجوديتها :مستقل
• چندي ارتباط1:1 :
در اين حالت يك رابطه كفايت ميكند ،به شرط آنكه مشاركت در
ارتباط الزامي باشد .البته ميتوان با دو رابطه هم طراحي كرد.
روش تبديل نمودار ERبه رابطهها
حالت هفتم
نمايش موجوديت ضعيف
موجوديت ضعيف داراي شناسه يكتا نيست ،بلكه صفت مميزه دارد.
براي نمايش اين نوع موجوديت در طراحي پايگاه رابطهاي ،يك رابطه
طراحي ميكنيم كه در عنوان آن ،صفات موجوديت ضعيف و كليد
كانديد موجوديت قوي كه با آن ارتباط دارد (موجوديت شناسا) ،وجود
دارند.
روش تبديل نمودار ERبه رابطهها
حالت هشتم
وجود صفت چندمقداري
اگر ،MVAيك صفت (ساده يا مركب) چندمقداري EID ،شناسه موجوديت E
و ... A2 A،1و Aiساير صفات تكمقداري موجوديت Eباشند ،در اين صورت
براي نمايش اين نوع موجوديت ،دو رابطه الزم است:
EID
) , A1 , A2 ,..., Ai
C.K .
EID, MVA
)
C .K .
( R1
( R2