جلسه پنجم2

Download Report

Transcript جلسه پنجم2

‫سيستمهاي اطالعات مديريت‬
‫هفته پنجم‬
‫فهرست مطالب‬
‫•‬
‫•‬
‫•‬
‫مدلسازي داده اي‬
‫نمادهاي‪ERD‬‬
‫رابطه‬
‫–‬
‫–‬
‫–‬
‫–‬
‫–‬
‫•‬
‫•‬
‫‪2‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫انواع رابطه‬
‫درجه ارتباط‬
‫رابطه بازگشتي‬
‫ارتباطات دوگانه و چند گانه‬
‫موجوديت مشاركتي‬
‫قدم هاي ترسيم ‪ERD‬‬
‫مفاهيم پايگاه داده‬
‫فرآيند طراحي پايگاه داده‬
‫اصول نرمال سازي‬
‫تبديل ‪ ERD‬به پايگاه داده‬
‫تبديل ارتباطهاي ‪ ERD‬در پايگاه داده‬
‫طراحي پايگاه داده و نرمال سازي از روي فرم اطالعاتي‬
‫هفته پنجم‬
‫مدلسازي داده اي‬
‫•‬
‫‪3‬‬
‫•‬
‫مدلسازي داده اي تكنيكي است كه داده هاي سيستم را‬
‫سازماندهي كرده و مستند مي كند‪ .‬به مدلسازي داده اي‬
‫مدلسازي پايگاه داده نيز گفته مي شود زيرا ساختار داده ها و‬
‫حفظ آن در سيستم توسط پايگاه داده ها مي باشد‪ .‬در برخي از‬
‫مواقع به آن مدلسازي اطالعات نيز گفته شده است‪.‬‬
‫به مدل داده اي ساخته شده دياگرام ارتباط موجوديت ها‬
‫گفته ميشود )‪Entity Relationship Diagram (ERD‬‬
‫هفته پنجم‬
‫مدلسازي داده اي‬
‫•‬
‫كليد ((‪)Key)Identifier‬‬
‫–‬
‫–‬
‫‪4‬‬
‫–‬
‫هفته پنجم‬
‫يك مشخصه يا مجموعه اي از مشخصه هاي موجوديت است كه‬
‫براي هر نمونه از موجوديت‪ ،‬ارزش واحدي (يگانه) اختيار مي كند‪.‬‬
‫ممكن است چند مشخصه از يك موجوديت قابليت كليد شدن را‬
‫داشته باشند كه به آنها كليد هاي كانديد ( ‪Candidate‬‬
‫‪)Key‬اطالق مي شود‪.‬‬
‫بين كليد هاي كانديد مشخصه اي كه در تمام مواقع به يك نمونه‬
‫خاص از موجوديت اشاره كند و ارزش تهي اختيار نكند به عنوان‬
‫كليد اصلي(‪ )Primary Key‬انتخاب مي شود‬
‫نمادهاي‪ERD‬‬
‫‪5‬‬
‫هفته پنجم‬
‫نمادهاي‪ERD‬‬
‫•‬
‫مثال‪:‬يك نويسنده مي تواند يك يا چند كتاب تاليف كند و يك كتاب‬
‫خاص فقط توسط يك نويسنده (در اين مثال ساده فرض بر اين‬
‫است كه هر كتاب توسط يك نويسنده ايجاد مي شود) توسعه يافته‬
‫است‪ .‬اين كتاب مي تواند در يك يا چند كتابخانه نگهداري شود و‬
‫يك كتابخانه شامل كتابهاي مختلفي است‪ .‬نمودار (‪ )ERD‬اين مثال‬
‫ساده بصورت ذيل خواهد بود ‪:‬‬
‫‪6‬‬
‫هفته پنجم‬
‫رابطه‬
‫•‬
‫رابطه اي است كه در واقعيت بين يك موجوديت با يكي يا چند‬
‫موجوديت ديگر در سيستم وجود دارد‪ .‬در واقع رابطه ها وقايعي‬
‫را بيان مي كنند كه موجوديت ها را به هم متصل ( مرتبط ) مي‬
‫سازد‬
‫‪7‬‬
‫هفته پنجم‬
‫رابطه‬
‫•‬
‫انواع رابطه‬
‫–‬
‫ارتباط يك به يك ( ‪)1:1‬‬
‫‪B‬‬
‫–‬
‫‪8‬‬
‫هر يك از نمونه هاي موجوديت ‪ )B(A‬فقط با يكي از نمونه هاي‬
‫موجوديت ‪ )A(B‬ارتباط دارد‬
‫پاركينگ‬
‫هفته پنجم‬
‫‪A‬‬
‫پرسنل شركت‬
‫رابطه‬
‫•‬
‫انواع رابطه‬
‫–‬
‫ارتباط يك به چند (‪)1:m‬‬
‫‪B‬‬
‫–‬
‫‪9‬‬
‫هر يك از نمونه هاي موجوديت ‪ A‬با يك يا چند نمونه از موجوديت ‪B‬‬
‫ارتباط دارد در حاليكه هر يك از نمونه هاي موجوديت ‪ B‬فقط با يكي‬
‫از نمونه هاي موجوديت ‪ A‬ارتباط دارد‬
‫سفارش خريد‬
‫هفته پنجم‬
‫‪A‬‬
‫مشتري‬
‫رابطه‬
‫•‬
‫انواع رابطه‬
‫–‬
‫ارتباط چند به چند (‪)m:n‬‬
‫‪B‬‬
‫–‬
‫‪10‬‬
‫هر يك از نمونه هاي موجوديت ‪ A‬يا ‪ B‬با يك يا چند نمونه از‬
‫موجوديت ‪ B‬يا ‪ A‬ارتباط دارد‪.‬‬
‫كاال‬
‫هفته پنجم‬
‫‪A‬‬
‫سفارش خريد‬
‫رابطه‬
‫•‬
‫انواع رابطه پيشرفته‬
‫‪11‬‬
‫هفته پنجم‬
‫رابطه‬
‫•‬
‫درجه ارتباط‬
‫–‬
‫‪12‬‬
‫هفته پنجم‬
‫درجه ارتباط بيانگر تعداد موجوديت هائي است كه در ارتباط‬
‫مشاركت دارند‪.‬‬
‫رابطه‬
‫•‬
‫رابطه بازگشتي‬
‫–‬
‫‪13‬‬
‫هفته پنجم‬
‫رابطه بازگشتي ارتباط نمونه هاي يك موجوديت يكسان را نشان مي‬
‫دهد‪.‬‬
‫رابطه‬
‫•‬
‫ارتباطات دوگانه و چند گانه‬
‫–‬
‫–‬
‫–‬
‫‪14‬‬
‫هفته پنجم‬
‫ارتباط باينري ‪ :‬ارتباط بين دو موجوديت مي باشد‪.‬‬
‫ارتباط سه گانه ‪ :‬ارتباط بين سه موجوديت مي باشد‬
‫براي بيش از سه موجوديت ارتباط چندگانه ناميده مي شود‪.‬‬
‫رابطه‬
‫•‬
‫موجوديت مشاركتي‬
‫–‬
‫‪15‬‬
‫هفته پنجم‬
‫موجوديتي است كه در اصل يك رابطه است وليكن چون اطالعات دارد به‬
‫عنوان موجوديت تلقي مي شود‪ .‬كليد اصلي موجوديت مشاركتي از‬
‫موجوديت هاي مرتبط به ارث برده مي شود كه به ان موجوديت ها والد‬
‫گفته مي شود‪ .‬در واقع كليد اصلي موجوديت مشاركتي كليد تركيبي است‬
‫كه هر بخش از كليد به يكي از نمونه هاي موجوديت ها اشاره مي كند‪ .‬به‬
‫موجوديت مشاركتي ‪ ،‬موجوديت اتصالي نيز گفته مي شود و معمول ارتباط‬
‫هاي چند به چند مي توانند با استفاده از يك موجوديت مشاركتي به‬
‫ارتباط هاي دوگانه يك به چند تبديل مي شوند‪.‬‬
‫رابطه‬
‫•‬
‫موجوديت مشاركتي‬
‫–‬
‫ارتباط موجوديت كتاب را با موجوديت كتابخانه در نظر بگيريد‪.‬‬
‫كتابخانه‬
‫–‬
‫‪16‬‬
‫هفته پنجم‬
‫كتاب‬
‫ارتباط از نوع چند به چند است‪ .‬اين ارتباط حاوي اطالعات است‪ .‬به‬
‫عنوان مثال مي توان به جانمايي (‪ )Location‬كتاب در كتابخانه اشاره‬
‫كرد‪ .‬در اين صورت مي توان با تعريف يك موجوديت مشاركتي عالوه بر‬
‫بيان ارتباط چند به چند با ارتباط هاي يك به چند اطالعات رابطه را نيز‬
‫نمايش داد‪.‬‬
‫قدم هاي ترسيم ‪ERD‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪17‬‬
‫•‬
‫•‬
‫موجوديت هاي سيستم را تعريف كنيد‬
‫مشخصه هاي اطالعاتي هر موجوديت را تعريف و كليد اصلي آنها را مشخص‬
‫نمائيد‪.‬‬
‫با ترسيم يك نسخه اوليه رابطه بين موجوديت ها را مشخص كنيد‪.‬‬
‫نوع ارتباطات را مشخص كنيد و در صورت نياز موجوديت هاي مشاركتي را‬
‫تعريف كنيد‪.‬‬
‫ترسيم ‪ ERD‬يك عملي است كه بايد بارها مورد بازنگري و تجديد نظر قرار‬
‫گيرد تا تكميل شود‪.‬‬
‫لزم به ذكر است كه ذخيره داده ها(‪ )Data Store‬در ‪ DFD‬به عنوان‬
‫موجوديت در نظر گرفته مي شوند‪.‬‬
‫هفته پنجم‬
‫قدم هاي ترسيم ‪ERD‬‬
‫‪18‬‬
‫هفته پنجم‬
‫مفاهيم پايگاه داده‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪19‬‬
‫•‬
‫•‬
‫‪ :A field‬هر فيلد پياده سازي فيزيكي مشخصه داده اي يك موجوديت مي باشد كه‬
‫كوچكترين واحد داده اي با معني مي باشد‪.‬‬
‫‪ :A primary key‬فيلدي مي باشد كه مقدار يا ارزش آن به يك ركورد يگانه از فايل اشاره‬
‫مي كند‬
‫‪ :A descriptive field‬هر يك از ساير فيلدهاي غيركليدي كه داده هاي تجاري سازمان را‬
‫ذخيره مي كنند‪.‬‬
‫‪ :A foreign key‬فيلدي است كه در يك فايل به عنوان كليد اصلي تعريف شده است‪.‬‬
‫‪ :A record‬يك ركورد مجموعه اي از فيلدها مي باشد كه در فرمت و ساختاري از پيش‬
‫تعريف شده در يك فايل ذخيره مي شوند‪ .‬هر ركورد در يك فايل (جدول) مجموعه اي از‬
‫فيلدها (مشخصه ها) براي يك نمونه از موجوديت است‪.‬‬
‫‪ :A File‬مجموعه اي از ركورد ها ي مرتبط با يك موجوديت كه اطالعات نمونه هاي‬
‫موجوديت است تشكيل يك فايل مي دهند‪.‬‬
‫‪ :A database‬يك پايگاه داده نيز مجموعه اي از فايل هاي بهم مرتبط مي باشد‪ .‬بدين معني‬
‫كه ركوردي از يك فايل با ركوردهائي از فايل هاي ديگر مرتبط مي باشد‪.‬‬
‫هفته پنجم‬
‫مفاهيم پايگاه داده‬
‫•‬
‫•‬
‫‪20‬‬
‫•‬
‫‪ :The data type‬نوع داده براي هر مشخصه‪ ،‬مقادير و نوع‬
‫داده هائي كه مي تواند اختيار كند را بيان مي كند‪ ( .‬حروف‪،‬‬
‫عدد ‪ ،‬تاريخ ‪ ،‬فيلم و ‪) ...‬‬
‫‪ :The domain‬دامنه مقاديري كه هر مشخصه مي تواند‬
‫اختيار كند را تعريف مي كند‪.‬‬
‫‪ :The default value‬ارزش پيش فرض را براي مشخصه‬
‫داده اي در صورتي كه كاربر وارد نكند در نظر مي گيرد‪.‬‬
‫هفته پنجم‬
‫فرآيند طراحي پايگاه داده‬
‫در مراحل طراحي پايگاه داده مي بايست داده هاي ذيل در نظر‬
‫گرفته شوند ‪:‬‬
‫•‬
‫‪.1‬‬
‫‪.2‬‬
‫‪.3‬‬
‫•‬
‫‪21‬‬
‫هفته پنجم‬
‫عناصر داده اي سيستم در وروديها يا خروجيها‬
‫عناصر داده اي در فرمها يا گزارشات‬
‫عناصر داده اي موجود در ‪ERD‬‬
‫يك پايگاه داده رابطه اي خوب شامل جداولي است كه داراي‬
‫حداقل تعداد داده هاي مازاد يا تكراري است و به كاربران‬
‫اجازه مي دهد كه به راحتي داده به جداول اضافه كنند يا‬
‫حذف يا اصالح نمايند‪.‬‬
‫اصول نرمال سازي‬
‫•‬
‫نرمال سازي فرايندي است كه ساختار پيچيده داده ها را به‬
‫ساختارهاي ساده و پايدار تبديل مي كند‪.‬‬
‫‪22‬‬
‫هفته پنجم‬
‫اصول نرمال سازي‬
‫•‬
‫نرمال سازي نوع اول(‪)1NF‬‬
‫–‬
‫‪23‬‬
‫هفته پنجم‬
‫نبايد عناصر داده اي در سطر ها تكرار شوند يعني داده هاي مازاد‬
‫نبايد وجود داشته باشند براي پرهيز از تكرار داده ها جدول به دو‬
‫جدول تجزيه مي شود تا داده هاي ثابت در يك جدول و داده هاي‬
‫متغير در جدول ديگري ذخيره گردند‪.‬‬
‫اصول نرمال سازي‬
‫•‬
‫مثال از نرمال سازي نوع اول(‪.)1NF‬‬
‫‪24‬‬
‫هفته پنجم‬
‫اصول نرمال سازي‬
‫•‬
‫جداول نرمال شده نوع اول‬
‫–‬
‫‪25‬‬
‫هفته پنجم‬
‫جدول فوق به دو جدول ذيل تجزيه مي شود ‪:‬‬
‫اصول نرمال سازي‬
‫•‬
‫نرمال سازي نوع دوم(‪)2NF‬‬
‫–‬
‫‪26‬‬
‫هفته پنجم‬
‫جدول بايد شكل نرمال اول را داشته باشد و هر يك از فيلدهاي غير‬
‫كليدي جدول تنها با مشخص شدن ارزش كل كليد بدست آيند نه‬
‫تنها با بخش ي از كليد اصلي ‪ .‬اين حالت در جايي بوجود مي آيد كه‬
‫كليد اصلي جدول تركيبي از مشخصه ها باشد و تنها در صورتي كه‬
‫تمام فيلدهاي غيركليدي با مشخص شدن كل تركيب كليد بدست‬
‫آيند مشكلي نيست در غير اينصورت بايد جدول تجزيه شود‪.‬‬
‫اصول نرمال سازي‬
‫•‬
‫مثال از نرمال سازي نوع دوم(‪.)2NF‬‬
‫‪27‬‬
‫هفته پنجم‬
‫اصول نرمال سازي‬
‫•‬
‫جداول نرمال شده نوع دوم‬
‫–‬
‫‪28‬‬
‫هفته پنجم‬
‫جدول فوق به دو جدول ذيل تجزيه مي شود ‪:‬‬
‫اصول نرمال سازي‬
‫•‬
‫نرمال سازي نوع سوم(‪)3NF‬‬
‫–‬
‫‪29‬‬
‫هفته پنجم‬
‫جدولي شكل نرمال سوم را دارد كه اول شكل نرمال نوع دوم را داشته‬
‫باشد و ثانيا هيچ رابطه وابستگي بين دو يا بيشتر از فيلدهاي غير‬
‫كليدي وجود نداشته باشد‪.‬‬
‫اصول نرمال سازي‬
‫•‬
‫مثال از نرمال سازي نوع سوم(‪.)3NF‬‬
‫‪30‬‬
‫هفته پنجم‬
‫اصول نرمال سازي‬
‫•‬
‫جداول نرمال شده نوع دوم‬
‫–‬
‫همانطور كه مالحظه مي كنيد يك وابستگي تابعي بين فروشنده و ناحيه فروش‬
‫وجود دارد زيرا هر شخص فروشنده اي فقط به يك ناحيه فروش اختصاص‬
‫دارد‪ .‬مشكالتي كه اين وابستگي تابعي مي تواند ايجاد كند عبارتند از ‪:‬‬
‫«‬
‫«‬
‫«‬
‫‪31‬‬
‫اگر يك شخص جديدي به عنوان فروشنده بخواهد به يك ناحيه تخصيص يابد نمي تواند‬
‫مگر اينكه يك مشتري به آن تخصيص يابد‪.‬‬
‫اگر به عنوان مثال مشتري ‪ 6837‬از جدول حذف شود آنگاه اطالعات ‪ Hernandez‬ناحيه‬
‫شرق نيز حذف مي شود‪.‬‬
‫اگر ‪ Smith‬بخواهد ‪ Hernandez‬جابجا شوند آنگاه اطالعات زيادي بايد جابجا شوند‪.‬‬
‫– اين مشكالت مي توانند با تجزيه جدول به دو جدول حل شوند ‪:‬‬
‫))‪Sales ( CUSTOMER_ID , Name , Sales person (Foreign Key‬‬
‫) ‪Person ( Sales person , Region‬‬
‫هفته پنجم‬
‫تبديل ‪ ERD‬به پايگاه داده‬
‫پايگاه داده را مي توان با شناخت داده ها از فرمها ‪ ،‬گزارشات و‬
‫داده هاي ورودي يا خروجي سيستم شناسايي و پايگاه داده ها را‬
‫ايجاد كرد‪ .‬اگر مدل داده اي ( ‪ ) ERD‬براي سيستم تهيه شده‬
‫باشد آنگاه براحتي مي توان آنرا تبديل به پايگاه داده كرد‪.‬‬
‫•‬
‫‪.1‬‬
‫‪.2‬‬
‫‪32‬‬
‫‪.3‬‬
‫‪.4‬‬
‫هفته پنجم‬
‫هر موجوديت در‪ ERD‬تبديل به يك جدول در پايگاه داده مي شود‬
‫مشخصه هاي هر موجوديت فيلدهاي جدول و كليد اصلي آن نيز همان‬
‫كليد اصلي موجوديت مي باشد‬
‫روابط موجود در ‪ ERD‬ممكن است تبديل به كليدهاي خارجي و يا‬
‫جدول هاي مجزا شوند‬
‫سپس جداول ايجاد شده نرمال مي شوند‬
‫تبديل ارتباطهاي ‪ ERD‬در پايگاه داده‬
‫•‬
‫‪33‬‬
‫رابطه يك به يك‬
‫‪Binary or Unary relationship : 1:1‬‬
‫كليد اصلي در دو جدول يكسان مي باشد‪.‬‬
‫• رابطه يك به چند‬
‫‪Binary 1:N relationship‬‬
‫كليد اصلي جدول ( ‪ )1‬به عنوان كليد خارجي در جدول )‪ ( N‬وارد مي‬
‫شود‬
‫• رابطه چند به چند‬
‫يك جدول جديد ايجاد شده و كليد اصلي آن تركيب كليدهاي اصلي دو‬
‫موجوديت (جدول ) مي شود‪.‬‬
‫هفته پنجم‬
‫ در پايگاه داده‬ERD ‫تبديل ارتباطهاي‬
:‫مثال‬
‫مشتري‬
•
1
‫انجام‬
N
‫سفارش‬
34
Customer ( Customer ID , Name , Address , Account)
Order (Order ID , Order date , Dispatch date , Customer ID (Foreign Key))
‫هفته پنجم‬
‫ در پايگاه داده‬ERD ‫تبديل ارتباطهاي‬
:‫مثال‬
‫سفارش‬
•
M
‫خريد‬
N
‫محصول‬
35
Order (Order ID , Order date , Dispatch date)
Product ( Product ID , Name,…)
Purchase ( Order ID , Product ID , Order Amount)
‫هفته پنجم‬
‫طراحي پايگاه داده و نرمال سازي از روي فرم اطالعاتي‬
‫‪36‬‬
‫هفته پنجم‬
‫طراحي پايگاه داده و نرمال سازي از روي فرم اطالعاتي‬
‫•‬
‫براي طراحي پايگاه داده و اعمال اصول نرمالسازي جدولي بصورت ذيل طراحي‬
‫شده است كه داده ها در اين جدول سازماندهي شده و براي موجوديت هاي‬
‫سيستم تعريف شده و سپس به ترتيب در ستونهاي جدول نرمال مي شوند‪.‬‬
‫‪37‬‬
‫سطح ‪ : 1 :‬داده هاي غير تكراري ‪ : 2‬داده هاي تكراري ‪ : 3‬داده هاي تكراري زيرگروه داده‬
‫هاي تكراري‬
‫هفته پنجم‬
‫طراحي پايگاه داده و نرمال سازي از روي فرم اطالعاتي‬
‫‪38‬‬
‫هفته پنجم‬
‫طراحي پايگاه داده و نرمال سازي از روي فرم اطالعاتي‬
‫‪39‬‬
‫هفته پنجم‬
‫طراحي پايگاه داده و نرمال سازي از روي فرم اطالعاتي‬
‫‪40‬‬
‫هفته پنجم‬
‫طراحي پايگاه داده و نرمال سازي از روي فرم اطالعاتي‬
‫‪41‬‬
‫هفته پنجم‬