کامپیوتر و IT و اینترنتعلوم مهندسی

نرمال سازی پايگاه داده

صفحه 1:
2 3

صفحه 2:
3 0 داده ***يك يايكاه داده را نرمالايز (1101112211601) كويند اكر هر فيلد تنها يك مقدار بگیرد و هر جدول دارای مجموعه‌ی صحیح فیلدها باشد.

صفحه 3:
epee a ** شش فرم نرمال وجود دارد: ‎INF‏ . ‎2NF‏ ‎3NF‏ ‏۲( . ‎4NF‏ ‎5NF‏ DOR WNP

صفحه 4:
epee ‏همه‌ي فبلدها ب ايستي‌تنها شاملكمقار باشند‎ :111 1 ‏مثال: ذخيره‌سازي دو شماره تلفن در يك فیلد واحد در فرم 1۳ مجاز نیست.‎ © ‏211۳:ب خشواز کلید اولیه ممکوست عنولن؛ لف یلد ۶ ۲۱ عیین‎ 2 : ‏تكردد.‎ ‏یلد غیر کلید ممکراسته ادف یلد غي ركليد ديكر را ل عبين كل‎ :3[1 3 ‏هر دترمیننت(] 1(۳:]۳:۹[۷]1([۳[۷) ی ك‌کلید لست‎ 3۱۳ 4 ‎ANF 5‏ در ی د‌جدول۷ 1-,]. ۰۸۵1 ب_خشیاز کلید میت ولند با چند م قدار ‎ ‎ ‎

صفحه 5:
MEMBERVISIT ID Email Password. Fname Lname Phone Date-Time-In Date-Time_out

صفحه 6:
Email Password Fname Lname Phone ID MEMBERS$Email Date-Time-In Date-Time-Out

صفحه 7:
** توجه: در طراحي غیرنرمال, کلید خارجي 0211 ۷1۳71۷1113118[ وجود ندارد زیرا رابطه‌اي وجود ندارد. ** عدم وجود کلید خارجي يکي از ويژگي‌هاي پایگاه داده غیرنرمال شده است. ۱2 ID Email Passwor Fnam Lname Phone Date- Date- d e Time-In Time- Out 001 dayj@ohio.co Rocket John Day 592- 25-jun- 25-jun- ‏د‎ 0646 02 02 14:00 17:30 002 luce@ohio.ed Bullet Thom Luce 592- 25-jun- 25-jun- 1 TUT 02 02 12:00 18:00 003 mcgann@ohi Arrow Sean McGan 592- 27jun- — 27-jun- o.edu n 2222 02 02 10:00 11:30 004 luce@ohio.ed Bullet Thom Luce 592- 27-jun- 27-jun- W 4111 0? 0?

صفحه 8:
*** در جدول غیرنرمال زیر اگر مثلا 1.1106 112010 رمز عبور خود را تغییر دهد. تغییر در يك رکورد و عدم تغییر در سایر رکوردها محتمل است. * نتيجه‌ي این بهنگام شدن عدم ثبات را بوجود مي‌آورد: سبستم نمي‌داند کدام رمز عبور درست است. ee & ID Email Passwor Fnam Lname Phone __Date- Date- 0 8 Time-In Time- Out 001 dayj@ohio.co Rocket John Day 592- 25-jun- —-25-jun- m = 0646 02 02 2 14:00 50 002 luce@ohio.ed Bullet Thom Luce 592- 25-jun- 25-jun- u 1111 02 02 003 mcgann@ohi ©Arrow» Sean McGan 592- o.edu n 2222 004 luce@ohio.eed Ohama Thom Tice 502-

صفحه 9:
8 * بانمال‌سازی م‌تهان مشکل_ ۱110210 حل کرد (3 Password Fname Lname Phone Rocket John Day 592- Fa 0646 Obama Thom Luce 592- 1111 Arrow Sean 592- Date-Time-Out 25-jun-02 17:30 25-jun-02 18:00 27-jun-02 11:30 27-jun-02 18:30 = McGan Date-Time-In 25-jun-02 14:00 25-jun-02 12:00 27-jun-02 10:00 27-jun-02 15:00 MEMBER $ Email dayj@ohio.com luce@ohio.edu mcgann@ohio.e du luce@ohio.edu Email dayj@ohio.com luce@ohio.edu mecgann@ohio.edu VISIT ID 001 002 003 004

صفحه 10:
‎hw 9 2‏ * در يك جدول نرمال نشده. يك عضو تا ‎oS obs) Visit-Id a5 slo;‏ اوليه) يك مقدار یکتا نگیرد نمی‌تواند به آن جدول اضافه شود. ‏۳ نی تعریف کل اولیه رات توا حالی کناد ۲ ‎eZ‏ بنابراین طراحي غیرنرمال در درج يك رکورد عضو در اولین ملاقات مشکل دارد. ‎ ‎ ‎VISIT ‎Email Passwo Fname Lname Phone _ PateTime-tIn Dabs rane rd m dayj@ohio.com Rocket John Day BOF =? ‏ی‎ ‎juce@ohio.edu. Bullet Thom Luce 592- —-25-jun-02-25-jun-02 1111 12:00 18:00 mecgann@ohio. Arrow Sean McGan 592- ae a7 ne edit n 2222 ۱ luce@ohio.edu Bullet Thom Luce 592- 27-Jun-02 27-jun-02 1111 15:00 18:30 ‎frostr@ohio.co Tutle Rayma Frost ‎00 ‎00 ‎00 ‎00 ‎00

صفحه 11:
5 | ‎iS 8‏ با نرمالسازي م توان مشكل اضافه كردن ‎١.‏ حل كرد: ذخيردي دادهها در دول گوناگون ‎ ‎11111111 ‎Email Password Fname Lname Phone dayj@ohio.com Rocket John Day 592- Fe 0646 luce@ohio.edu Obama Thom Luce 592- 1111 mecgann@ohio.edu Arrow Sean McGan 592- n 2222 pene ‏عد 7 هرهز ات‎ VISIT ID MEMBER $ Date-Time-In Date-Time-Out Email 001 dayj@ohio.com 25-jun-02 14:00 25-jun-02 17:30 002 luce@ohio.edu _25-jun-02 12:00 25-jun-02 18:00 ‎= 003 megann@ohio.ed 27-jun-02 10:00 27-jun-02 11:30 u ۳5

صفحه 12:
1 ۳11 * 1[۳: جدولی‌که همه‌ي ف یلدها تنها شاملب لك مقتار لست * ساده‌ترین راه تشخیص تخطی از "1111 یافتن فبلدهاد ‏ که ‎SS Ser e=‏ 5 ** هر فيلدي که از اين قاعده تخطي نمود را بايستي به يك جدول مجزا ‎OO ae‏ ‎Email Password Fname Lname Phone‏ ‎dayj@ohio.com Rocket John Day 592-‏ 0646 ‎luce@ohio.edu Obama Thom Luce 592-‏ 1111 -593 0212 a megann@ohio.edu Arrow Sean McGan 592- ۳5 ۳2 599990

صفحه 13:
1 i i برای تخلف از ترمال‌تساری بایستی پایگاه داده را طرا و مود: 1 جداول: لس ی سس ۶ جداول اولیه نام گذاي مجدد کنید. 2 رولك 15 بين ‎Sa a age‏ 3. فیلدها * . فیلدها را منتقل کنید و در صورت نیاز آنها را نامگذاري مجدد کنید 4 کلیدها: * . کليدهاي اولیه و خارجي همه‌ي جداول رالنتخاب کنید.

صفحه 14:
DIRECTORY Email Fname Lname Phone

صفحه 15:
DIRECTORY — Phone Email Fname Lname

صفحه 16:
oe Bs DIRECTORY — MEMBER$emai 1 Phone Email Fname Lname

صفحه 17:
0. * جداول اصلاح شده: 211111511 Email Password Fname Lname dayj@ohio.com Rocket John Day luce@ohio.edu Obama Thom Luce mcegann@ohio.edu Arrow Sean McGan n DIRECTORY MEMBER $ Email Phone dayj@ohio.com 592-0646 luce@ohio.edu 592-1111 megann@ohio.edu 592-2222

صفحه 18:
ن کنندگان(دترمیننت‌ها): ‎nts‏ ** فرم‌هاي نرمال بالاتر (از 2 تا 5) متكي به واه دترمیننت مي‌باشند. 0 Le ك دترمیننت يك فیلد یا گروهي از فیلدها بوده که مقادیر فیا دیگر را کنترل یا تعیین مي‌کند. * فیلد 5 در صورتی فیلد ۷ را تعیین می‌کند که هر مقدار داده شه براي 5 همواره با همان مقدار در ۷ جفت و جور مي‌شود. *#* کلید اولیه همواره فيلدهاي غیر کلید(/201-1663 را تعیین

صفحه 19:
ها را معمولا با فلش جهت‌دار نشان می‌دهند. 515-11118118 email در تعیین دترمیننت‌ها دقت کنید؛ براي تمرین يك جدول با دترمیننت خوب و يك جدول با دترمیننت بد طراحي کنید.

صفحه 20:
* 217 یك‌جدول‌که در آن‌هر فیلد غیر کلید با تمامي‌کلید اولیه تعریفشده و نه باب خشیاز کلید اولیه بوسيله‌ي خود. ** تخلف از 21117 هنگامي در جداول اتفاق مي‌افتد که جداول داراي کليدهاي اوليه‌اي باشند که با بیش از يك فیلد شکل گرفته‌اند. ی مثال زیر يك طراحي که شامل تخلف از 21۳ است را نشان مي‌دهد: 00000 > ‏م3۳‎ 2 508126 ‏ب‎ ۲۱ ‏وب‎ Sa ) Dorm <_ ~. Phone

صفحه 21:
6 eso Jie 5 ya, STUDENT-ENROLL (ga ‏کلید اولي‌ي‎ ** cui SECTION$Call-no , ID ‏مشترك‎ ۶ کلید اولیه بايستي تمامي فيلدهاي غیر کلید را تعیین کند. * انحراف از "21 بدین دلیل اتفاق می‌افتد: 110 که تنها بخشی از کلید اولیه است 1۳8106 ,106 و ‎ows | phone‏ می‌کند.

صفحه 22:
**مثال: مشکل بهنگام شدن ممکن است بدلیل طراحي بد باشد: Phone | grade 593- 0 2456 594- B 4623 593- A 2356 593- 0 8 2541 Dorm 450A 326B 144A 450A 0 صحیح است Lname Green Black Brown Green Fnam e Jim Steve Linda Jim SECTIONS$Call- no 001 001 003 004 Id 1111 2222 3333 1111

صفحه 23:
** گام اول: جداول: يك جدول جدید بنام .۳11801 خلق es 2 ENROLL 1D SECTIONSCall-no Fname Lname Dorm Phone grade

صفحه 24:
** گام دوم: رابطه‌ي دو جدول تعیین مي‌گردد: FRO ayy ENROLL 1D SECTIONSCall- no Fname name ۳ Dorm Phone grade

صفحه 25:
* گام سوم: فيلدهاي 0078016و 100-[۵1) به جدول جدید منتقل می گردند: ۲ ‎ENROLL‏ ص ‎name‏ ‎Lname < SECTION$Call-‏ ‎Dorm no‏ Phone grade

صفحه 26:
™ گام چهارم: يك کلید خارجی بنام 18110 :911711 يك رابطه يك به جند را بين جداول ايجاد مي كند 1D Ean pene STUDENTSID er SECTIONSCall-no orm Grade Phone

صفحه 27:
للج زد كك لنت ID KO Fname ENROLL —. Lname — STUDENTSID —— = Dorm SECTION$Call-no + Phone Grade a x _

صفحه 28:
5112371 14 Fnam Lname Dorm Phone e 1111 Jim Green 450A 593- 2456 2222 Steve Black 3268 594- 4623 3333 Linda Brown 144A 593° ENROLL Id SECTION$Call- grade no 1111 001 0 2222 001 B 3333, 003 A 1111 004 Cc

صفحه 29:
Third Normal Form(3NF) 50 jks 3 ** تخطي از 31117 مي تواند در هر جدول كه بيش از يك فيلد غير كليد دارد اتفاق بیافتد. ۳ 1 * براي جلوگيري از تخطي از ‎SNF‏ بايستي روابط ممكن كه بين فيلدهاي غیر کلید وجود دارد در نظر گرفته شود.

صفحه 30:
Date-time-in —~ Date-time-out, که یف یلد غیر کلید لست ‎,lname ,fname password‏ 10186 را تعیین ‎

صفحه 31:
ird Normal M(3NF) 5. J تخطی 31 آمکان مشکل در به‌روز کردن را بو ۱ 03 ID Email Passwo Fnam Lname Phone Date-Time-In Date-Time-Out rd 8 00 dayj@ohio.com Rocket John Day 592- 25-jun-02 25-jun-02 1 0646 14:00 17:30 00 luce@ohio.edu Bullet Thom Luce 592- 25-jun-02 25-jun-02 2 1111 12:00 18:00 00 mcgann@ohio.e Arrow Sean McGa 592- 27-jun-02 27-jun-02 3 du nn 2222 10:00 11:30 00 luce@ohio.edu Obama Thom Luce 592- 27-4jun-02 27-jun-02 4 1111 15:00 18:30 #* این جدول دو 2895170۳0 برای 1.۱106 ذخیره کرده و روشن نیست کداميك

صفحه 32:
1D Email Password Fname Lname Phone Date-time-in Date-time-out

صفحه 33:
1D Email Password Fname Lname Phone Date-time-in Date-time-out

صفحه 34:
گام سوم: انتقال فیلدها Email Password Fname - 2 Date-time-in Lname Date-time-out Phone

صفحه 35:
ID MEMBER$emai 1 Date-time-in Date-time-out

صفحه 36:
اکنون کليدها تنها «ترمیتنت هستند: Email 1D Fname MEMBERSemai Lname 1 Phone Date-time-in Date-time-out

صفحه 37:
MEMBER Email Password Fname Lname Phone Rocket John Day 592- 0646 Obama Thom Luce 592- 1111 Arrow Sean McGan 592- n 2222 ‏عد 7 هرهز ات‎ VISIT MEMBER $ Date-Time-In Date-Time-Out Email 25-jun-02 14:00 25-jun-02 17:30 25-jun-02 12:00 25-jun-02 18:00 27-jun-02 10:00 27-jun-02 11:30 ۳ dayj@ohio.com luce@ohio.edu mcgann@ohio.ed u dayj@ohio.com luce@ohio.edu mecgann@ohio.edu Bnei aa

صفحه 38:
Bayce-Codd Normal Forr هر دترمیننت يك کلید است. این شکل نرمال بصورت خاص جهت پوشش شرايطي که يك غير کلید بخشي از يك کلید اولیه را تعیین مي‌کند طراحي شده است. * يك فیلد غیر کلید ‎ons |, employee-id ole .ssn‏ می‌کند که بخشی از | کلیی است. *# در حقیقت 558 و 6100107766-10 همدیگر را تعیین ین فلش دوطرفه است.

صفحه 39:
4 و 5 ** این تخطي نیز مشکل به‌روز کردن را بوجود مي‌آورد. ۱۱۸ 5۴ Employee-id Quarter Ssn bonus 8857 01 999-44-7 1000 9216 Ql 999-23-9216 500 8857 Q2 999-44-8175 750 0 1

صفحه 40:
** گام اول: جداول: EMPLOYE! Employee-id Juarter Ssn bonus

صفحه 41:
** گام دوم: روابط: QUARTERLY- EMPLOYEE BONUSE Employee-id Quarter ania SSN bonus

صفحه 42:
گام سوم انتقال: EMPLOYEE SSN QUARTERLY- BONUSE Employee-id Quarter :C(“‘<‘ér bonus

صفحه 43:
** گام چهارم: کلیدها: QUARTERLY- EMPLOYEE BONUSE 1D EMPLOYEESid Quarter Ee SSN bonus

صفحه 44:
** گام چهارم: کلیدها: QUARTERLY- EMPLOYEE BONUSE 1D 5 ~ ب ‎EMPLOYEES$id‏ ‏ا ل ‎Quarter‏ bonus

صفحه 45:
** گام چهارم: کلیدها: QUARTERLY-BONUSE Employee$i Quarter bonus d 8857 Qi 1000 9216 01 500 8857 Q2 750 QUARTERLY-BONUSE Employee$i Ssn d 8857 999-44-8857 9216 999-23-9216

صفحه 46:
Fourth Normal Form(4NF) ‏فرم نرمال جهارم‎ **در يك جدول كه همدي فيلدها كليد هستند (011-16017) » بخشي از كليد مي تواند جندين مقدار براي يك فيلد ديكر را تعيين كند. **از دو جهت ”4711 از فرمهاي نرمال قبلي متفاوت است: 1 41۷1 تنهادر جداول[211-166 عملمی) ند يكجديل-[21 جدولیلستکه فیلد غب رکلید ندارد. 2 در 411 يكي از فيلدهاي کلید چندین مقدار فيلدهاي کلید كر را تیا ی کند.

صفحه 47:
Fourth Normal Form(4NF) p,k> Ju; * براي درك 4۳ بايستي مفهوم همبستگي چندارزشي ‎(MVD)‏ ‎(Multi valued Dependency) t‏ ,| دانست. ید فیلد یا دسته‌لیاز فيلدهاستكه مقادير چندگانه‌ي فیلد دیگر را کنترلیا تسعیینمیگٍند. (Multi Determinant) 3 a> 1, Y ‏*#*فیلد 26 فیلد‎ می‌کند اگر هر مقدار داده شده به 25 همواره مجموعه‌اي از مقادیر مربوط به 1 راعهنین کند,

صفحه 48:
Fourth Normal For e Double Headed) o,5o (28 2; ‏در جدول‎ * دترمیننت چند ارزشی را نشان مي‌دهد: SKILL mail ‎Language‏ ا ‎Sport‏ ‎

صفحه 49:
5 1 **جدول زير مشكل بروز شدن که در نتيجه‌ي تخطی 41 پوجود آمده را نشان SKILL Sport ‏مي‌دهد:‎ ‎soccer ‎Soccer ‎Soccer ‎Tennis Mountain climbing Sky driving Kayaking 51% تاییده(1 کنیم. اطلاعات مربوط به اینحه او بازي تنیس مي‌کند زا نیز از دست خواهیم داد. Language Hungarian German Spanish German French French French Email dayj@ohio.edu dayj@ohio.edu dayj@ohio.edu luce@ohio.edu mcgann@ohio.ed u megann@ohio.ed u ai |, Megann@ohio.ed fu

صفحه 50:
* گام اول: جداول: اطلاعات ‎g LANGUAGE Jose 4 ghj‏ اطلاعات مربوط به ورزش به جدول 9۳001 منتقل مي كردد. LANGUAGE SPORT Email Language Sport

صفحه 51:
** گام دوم: روابط: خودتان تعیین کنید. LANGUAGE Email Language Sport

صفحه 52:
* گام سوم: انتقال فیلدها. LANGUAGE SPO. Email Email Language Sport

صفحه 53:
**كام چهارم: تعیین کلیدها. LANGUAGE SPO. Email Email Language Sport

صفحه 54:
LANGUAGE Email 5 oe Language

صفحه 55:
**تنها يك (1/11/1 براي هر جدول. Email Language Email Sport dayj@ohio.edu Hungarian dayj@ohio.edu soccer dayj@ohio.edu German dayj@ohio.edu Soccer dayj@ohio.edu Spanish luce@ohio.edu Tennis luce@ohio.edu German megann@ohio.ed Mountain mcgann@ohio.ed French u climbing 3 mcgann@ohio.ed Sky driving u mcegann@ohio.ed Kayaking

32,000 تومان