کامپیوتر و 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

به نام خدا سيستم‌هاي اطالعات مديريت بخش هشتم نرمال‌سازي پايگاه داده ()Normalization دكتر محمد حسين فاضل زرندي دانشكده مهندسي صنايع دانشگاه صنعتي اميركبير تهران-ايران نرمال شدن پايگاه داده ‏يك پايگاه داده را نرمااليز ( )Normalizedگويند اگر هر فيلد تنها يك مقدار بگيرد و هر جدول داراي مجموعه‌ي صحيح فيلدها باشد. 2 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرمهاي نرمال ‏شش فرم نرمال وجود دارد: 3 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي 1NF 2NF 3NF ‏BCNF 4NF 5NF 1. 2. 3. 4. 5. 6. دانشگاه صنعتي اميركبير فرمهاي نرمال :1NF .1همه‌ي فيلدها بايستي تنها شامل يك مقدار باشند. ‏o مثال :ذخيره‌سازي دو شماره تلفن در يك فيلد واحد در فرم 1NFمجاز نيست. :2NF .2بخشي از كليد اوليه ممكن است بعنوان يك فيلد غير كليد تعيين نگردد. :3NF .3يك فيلد غير كليد ممكن است يك فيلد غيركليد ديگر را تعيين نكند. :BCNF .4هر دترميننت ( )DETERMINENTيك كليد است. :4NF .5در يك جدول ، ALL-KEYبخشي از كليد مي‌تواند با چند مقدار 4 حداكثر يك فيلد ديگر تعيين گردد. دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير جدول نرمال نشده ‏MEMBERVISIT ‏ID ‏Email ‏Password ‏Fname ‏Lname ‏Phone ‏Date-Time-In ‏Date-Time_out 5 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير جدول نرمال نشده MEMBER Email Password Fname Lname Phone VISIT ID MEMBER$Email Date-Time-In Date-Time-Out دانشگاه صنعتي اميركبير دكتر محمد حسين فاضل زرندي 6 دانشكده مهندسي صنايع Arcade نرمال‌سازي پايگاه داده وجودMEMBER$Email كليد خارجي، در طراحي غيرنرمال: توجه .ندارد زيرا رابطه‌اي وجود ندارد . عدم وجود كليد خارجي يكي از ويژگي‌هاي پايگاه داده غيرنرمال شده است VISIT ID Email Passwor d Fnam e Lname Phone DateTime-In DateTimeOut 001 dayj@ohio.co m Rocket John Day 5920646 25jun-02 14:00 25jun-02 17:30 002 luce@ohio.ed u Bullet Thom Luce 5921111 25jun-02 12:00 25jun-02 18:00 003 mcgann@ohi o.edu Arrow Sean McGan n 5922222 27jun-02 10:00 27jun-02 11:30 004 اميركبير luce@ohio.ed دانشگاه صنعتي Bullet زرندي محمد حسين فاضل دكتر Thom Luce 592- 7 27-دانشكده مهندسي 27صنايع مشكل Update در جدول غيرنرمال زير اگر مثال Thom Luceرمز عبور خود را تغيير دهد ،تغيير در يك ركورد و عدم تغيير در ساير ركوردها محتمل است. نتيجه‌ي اين بهنگام شدن عدم ثبات را بوجود مي‌آورد :سيستم نمي‌داند كدام رمز عبور درست است. ‏VISIT ‏DateTimeOut ‏DateTime-In ‏Phone ‏Lname ‏Fnam ‏e ‏Passwor ‏d ‏Email ‏ID 25jun-02 17:30 25jun-02 14:00 5920646 ‏Day ‏John ‏Rocket ‏dayj@ohio.co ‏m 001 25jun-02 18:00 25jun-02 12:00 5921111 ‏Luce ‏Thom ‏Bullet ‏luce@ohio.ed ‏u 002 27jun-02 8 11:30 27jun-02 10:00 5922222 ‏McGan ‏n ‏Sean ‏Arrow ‏mcgann@ohi ‏o.edu 003 27- 27- دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير ‏luce@ohio.ed 004 Update حل مشكل را حل كردUpdate با نرمال‌سازي مي‌توان مشكل MEMBER Email Password Fname Lname Phone dayj@ohio.com Rocket John Day 5920646 luce@ohio.edu Obama Thom Luce 5921111 mcgann@ohio.edu Arrow Sean McGan n 5922222 VISIT ID MEMBER $ Email Date-Time-In Date-Time-Out 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 mcgann@ohio.e du 27-jun-02 10:00 27-jun-02 11:30 محمد حسين فاضل زرندي دكتر luce@ohio.edu 27-jun-02 15:00 مهندسي صنايع دانشكده 27-jun-02 18:30 دانشگاه صنعتي اميركبير 004 9 مشكل اضافه كردن در يك جدول نرمال نشده ،يك عضو تا زماني‌كه ( Visit-Idفيلد كليد اوليه) يك مقدار يكتا نگيرد نمي‌تواند به آن جدول اضافه شود. طبق تعريف ،كليد اوليه را نمي‌توان خالي گذاشت. بنابراين طراحي غيرنرمال در درج يك ركورد عضو در اولين مالقات مشكل دارد. ‏VISIT ‏Email ‏ID ‏John ‏Rocket ‏dayj@ohio.com 00 1 ‏Bullet ‏luce@ohio.edu 00 2 ‏mcgann@ohio. ‏edu 00 3 ‏luce@ohio.edu 00 4 ‏Date-TimeOut ‏Date-Time-In ‏Phone 25-jun-02 17:30 25-jun-02 14:00 5920646 ‏Day 25-jun-02 18:00 25-jun-02 12:00 5921111 ‏Luce ‏Thom 27-jun-02 11:30 27-jun-02 10:00 5922222 ‏McGan ‏n ‏Sean ‏Arrow 27-jun-02 18:30 27-jun-02 15:00 5921111 ‏Luce ‏Thom ‏Bullet 10 دانشكده مهندسي صنايع ‏Passwo Fname Lname ‏rd ‏Frostحسين فاضل زرندي دكتر محمد ‏Rayma ‏Tutle دانشگاه صنعتي اميركبير 00 ‏frostr@ohio.co حل مشكل اضافه كردن ذخيره‌ي داده‌ها در جداول گوناگون:با نرمال‌سازي مي‌توان مشكل اضافه كردن را حل كرد MEMBER Email Password Fname Lname Phone dayj@ohio.com Rocket John Day 5920646 luce@ohio.edu Obama Thom Luce 5921111 mcgann@ohio.edu Arrow Sean McGan n 5922222 frostr@ohio.com Turtle Rayman Frost 2162512 VISIT ID MEMBER $ Email Date-Time-In Date-Time-Out 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 دانشگاه صنعتي اميركبير mcgann@ohio.ed 27-jun-02 10:00 uدكتر محمد حسين فاضل زرندي 27-jun-02 11:3011 دانشكده مهندسي صنايع اولين فرم نرمال First Normal )Form(1NF :1NF جدولي كه همه‌ي فيلدها تنها شامل يك مقدار است. ساده‌ترين راه تشخيص تخطي از 1NFيافتن فيلدهايي است كه بيش از يك مقدار دارند. هر فيلدي كه از اين قاعده تخطي نمود را بايستي به يك جدول مجزا منتقل كرد. ‏MEMBER 12 ‏Phone ‏Lname ‏Fname ‏Password ‏Email 5920646 ‏Day ‏John ‏Rocket ‏dayj@ohio.com 5921111 5930212 ‏Luce ‏Thom ‏Obama ‏luce@ohio.edu دانشكده مهندسي صنايعMcGan 592- زرندي دكتر محمد حسين فاضل ‏Arrow ‏Sean ‏mcgann@ohio.eduاميركبير دانشگاه صنعتي اولين فرم نرمال First Normal )Form(1NF براي تخلف از نرمال‌سازي بايستي پايگاه داده را طراحي مجدد نمود: .1 .2 .3 .4 13 جداول: • • جداول جديد خلق كنيد. جداول اوليه نام‌گذاي مجدد كنيد. • بين جداول اوليه و جداول جديد رابطه برقرار كنيد. • فيلدها را منتقل كنيد و در صورت نياز آنها را نامگذاري مجدد كنيد. • كليدهاي اوليه و خارجي همه‌ي جداول را انتخاب كنيد. روابط: فيلدها: كليدها: دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير :1NFمثال جداول: ‏MEMBER ‏DIRECTORY 14 دانشكده مهندسي صنايع ‏Email ‏Password ‏Fname ‏Lname ‏Phone دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير :1NFمثال فيلدها: ‏MEMBER ‏DIRECTORY ‏Email ‏Password ‏Fname ‏Lname ‏Phone 15 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير :1NFمثال كليدها: ‏MEMBER ‏DIRECTORY ‏Email ‏Password ‏Fname ‏Lname ‏MEMBER$emai ‏l ‏Phone 16 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير مثال:1NF : جداول اصالح شده MEMBER Email Password Fname Lname dayj@ohio.com Rocket John Day luce@ohio.edu Obama Thom Luce mcgann@ohio.edu Arrow Sean McGan n DIRECTORY دانشگاه صنعتي اميركبير MEMBER $ Email Phone dayj@ohio.com 592-0646 luce@ohio.edu 592-1111 mcgann@ohio.edu 592-2222 دكتر محمد حسين فاضل زرندي 17 دانشكده مهندسي صنايع تعيين‌كنندگان(دترميننت‌ها)Determinants: فرم‌هاي نرمال باالتر (از 2تا )5متكي به واژه دترميننت مي‌باشند. يك دترميننت يك فيلد يا گروهي از فيلدها بوده كه مقادير فيلد ديگر را كنترل يا تعيين مي‌كند. فيلد Xدر صورتي فيلد Yرا تعيين مي‌كند كه هر مقدار داده شده براي Xهمواره با همان مقدار در Yجفت و جور مي‌شود. كليد اوليه همواره فيلدهاي غير كليد( )non-keyرا تعيين مي‌كند. 18 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير تعيين‌كنندگان(دترميننت‌ها)Determinants: دترميننت‌ها را معموال با فلش جهت‌دار نشان مي‌دهند. ‏SKY-MEMBER ‏email ‏Fname ‏Lname ‏Phone ‏Jump ‏Equip ‏Level در تعيين دترميننت‌ها دقت كنيد؛ براي تمرين يك جدول با دترميننت خوب و يك جدول با دترميننت بد طراحي كنيد. 19 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرم نرمال دوم())Second Normal Forms(2NF :2NF يك جدول كه در آن هر فيلد غير كليد با تمامي كليد اوليه تعريف شده و نه با بخشي از كليد اوليه بوسيله‌ي خود. تخلف از 2NFهنگامي در جداول اتفاق مي‌افتد كه جداول داراي كليدهاي اوليه‌اي باشند كه با بيش از يك فيلد شكل گرفته‌اند. مثال زير يك طراحي كه شامل تخلف از 2NFاست را نشان مي‌دهد: ‏STUDENT-ENROLL ‏ID ‏SECTION$Call-no ‏Fname ‏Lname ‏Dorm ‏Phone ‏grade 20 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرم نرمال دوم())Second Normal Forms(2NF كليد اوليه‌ي جدول STUDENT-ENROLLبصورت مشترك IDو SECTION$Call-noاست. كليد اوليه بايستي تمامي فيلدهاي غير كليد را تعيين كند. انحراف از 2NFبدين دليل اتفاق مي‌افتد ID :كه تنها بخشي از كليد اوليه است ،fname، lname ،و phoneرا تعيين مي‌كند. 21 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرم نرمال دوم())Second Normal Forms(2NF مثال :مشكل بهنگام شدن ممكن است بدليل طراحي بد باشد: ‏STUDENT-ENROLL ‏SECTION$Callno ‏Id ‏Fnam Lname ‏e ‏grade ‏Phone ‏Dorm ‏Jim 001 1111 ‏C 5932456 450A ‏Green 001 2222 ‏B 5944623 326B ‏Black ‏Steve 003 3333 ‏A 5932356 144A ‏Brown ‏Linda ‏Greenكه Jim 450A درCصورت 593- ‏Jim004 كدام شماره تلفن روشن نيست بهنگام شدن 2541 1111 Greenصحيح است 22 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام‌هاي اصالح تخلف از 2NF گام اول :جداول :يك جدول جديد بنام ENROLLخلق مي‌شود. ‏STUDENT ‏ENROLL ‏ID ‏SECTION$Call-no ‏Fname ‏Lname ‏Dorm ‏Phone ‏grade 23 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام‌هاي اصالح تخلف از 2NF گام دوم :رابطه‌ي دو جدول تعيين مي‌گردد: ‏STUDENT ‏ENROLL ‏ID ‏SECTION$Callno ‏Fname ‏Lname ‏Dorm ‏Phone ‏grade 24 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام‌هاي اصالح تخلف از 2NF گام سوم :فيلدهاي gradeو Call-noبه جدول جديد منتقل مي‌گردند: ‏STUDENT ‏ID ‏Fname ‏Lname ‏Dorm ‏Phone ‏ENROLL ‏SECTION$Callno ‏grade 25 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام‌هاي اصالح تخلف از 2NF گام چهارم :يك كليد خارجي بنام STUDENT$IDيك رابطه يك به چند را بين جداول ايجاد مي‌كند ‏STUDENT ‏ID ‏Fname ‏Lname ‏Dorm ‏Phone ‏ENROLL ‏STUDENT$ID ‏SECTION$Call-no ‏Grade 26 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير جدول اصالح شده بر اساس راه حل2NF ‏STUDENT ‏ID ‏ENROLL ‏Fname ‏Lname ‏Dorm ‏Phone ‏STUDENT$ID ‏SECTION$Call-no ‏Grade 27 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير 2NFجدول اصالح شده بر اساس راه حل STUDENT Id Fnam Lname e Dorm Phone 1111 Jim Green 450A 5932456 2222 Steve Black 326B 5944623 3333 Linda Brown 144A 5932356 ENROLL دانشگاه صنعتي اميركبير Id SECTION$Callno grade 1111 001 C 2222 001 B 3333 003 A 1111 004 C دكتر محمد حسين فاضل زرندي 28 دانشكده مهندسي صنايع فرم نرمال سوم)Third Normal Form(3NF تخطي از 3NFمي‌تواند در هر جدول كه بيش از يك فيلد غير كليد دارد اتفاق بيافتد. براي جلوگيري از تخطي از 3NFبايستي روابط ممكن كه بين فيلدهاي غير كليد وجود دارد در نظر گرفته شود. 29 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرم نرمال سوم)Third Normal Form(3NF مثال در جدول زير يك تخطي از 3NFنشان داده شده است: ‏STUDENT ‏ID ‏Email ‏Password ‏Fname ‏Lname ‏Phone ‏Date-time-in ‏Date-time-out Email كه يك فيلد غير كليد است، phone ,lname ,fname passwordرا تعيين 30 مي‌كند(كه همه‌ي اينها غير كليد مي‌باشند). دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير Third Normal Form(3NF)فرم نرمال سوم : امكان مشكل در به‌روز كردن را بوجود مي‌آورد3NF تخطي VISIT ID Email Passwo rd Fnam e Lname Phone Date-Time-In Date-Time-Out 00 1 dayj@ohio.com Rocket John Day 5920646 25-jun-02 14:00 25-jun-02 17:30 00 2 luce@ohio.edu Bullet Thom Luce 5921111 25-jun-02 12:00 25-jun-02 18:00 00 3 mcgann@ohio.e du Arrow Sean McGa nn 5922222 27-jun-02 10:00 27-jun-02 11:30 00 4 luce@ohio.edu ‍Obama Thom Luce 5921111 27-jun-02 15:00 27-jun-02 18:30 ذخيره كرده و روشن نيست كداميكLuce برايPassword اين جدول دو دانشگاه صنعتي اميركبير دكتر محمد حسين فاضل زرندي .صحيح است 31 دانشكده مهندسي صنايع راه‌حل تخطي 3NF گام اول :جدول جديد ‏MEMBER ‏ID ‏Email ‏Password ‏Fname ‏Lname ‏Phone ‏Date-time-in ‏Date-time-out ‏VISIT 32 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير راه‌حل تخطي 3NF گام دوم :روابط ‏MEMBER ‏ID ‏Email ‏Password ‏Fname ‏Lname ‏Phone ‏Date-time-in ‏Date-time-out ‏VISIT 33 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير راه‌حل تخطي 3NF گام سوم :انتقال فيلدها ‏MEMBER ‏Email ‏Password ‏Fname ‏Lname ‏Phone ‏VISIT ‏ID ‏Date-time-in ‏Date-time-out 34 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير راه‌حل تخطي 3NF گام چهارم:تعيين كليدها ‏MEMBER ‏VISIT ‏Email ‏Password ‏Fname ‏Lname ‏Phone ‏ID ‏MEMBER$emai ‏l ‏Date-time-in ‏Date-time-out 35 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير جداول اصالح شده در3NF اكنون كليدها تنها دترميننت هستند: در اينجا passwordتنها يكبار براي هر عضو ذخيره مي‌گردد: حذف مشكل به‌روز كردن. ‏MEMBER ‏VISIT ‏Email ‏Password ‏Fname ‏Lname ‏Phone ‏ID ‏MEMBER$emai ‏l ‏Date-time-in ‏Date-time-out 36 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير 3NFجداول اصالح شده در MEMBER Email Password Fname Lname Phone dayj@ohio.com Rocket John Day 5920646 luce@ohio.edu Obama Thom Luce 5921111 mcgann@ohio.edu Arrow Sean McGan n 5922222 frostr@ohio.com Turtle Rayman Frost 2162512 VISIT ID MEMBER $ Email Date-Time-In Date-Time-Out 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 دانشگاه صنعتي اميركبير mcgann@ohio.ed 27-jun-02 10:00 uدكتر محمد حسين فاضل زرندي 27-jun-02 11:30 37 دانشكده مهندسي صنايع )Bayce-Codd Normal Form(BCNF هر دترميننت يك كليد است. اين شكل نرمال بصورت خاص جهت پوشش شرايطي كه يك غير كليد بخشي از يك كليد اوليه را تعيين مي‌كند طراحي شده است. ‏QUARTERLY-BONUSE ‏Employee-id ‏Quarter ‏Ssn ‏bonus يك فيلد غير كليد ،ssnعبارت employee-idرا تعيين مي‌كند كه بخشي از كليد است. در حقيقت ssnو employee-idهمديگر را تعيين مي‌كنند ،بنابراين فلش دوطرفه است. 38 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير )Bayce-Codd Normal Form(BCNF اين تخطي نيز مشكل به‌روز كردن را بوجود مي‌آورد. ‏QUARTERLY-BONUSE 39 ‏bonus ‏Ssn ‏Quarter ‏Employee-id 1000 999-44-8857 ‏Q1 8857 500 999-23-9216 ‏Q1 9216 750 999-44-8175 ‏Q2 8857 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام اول :جداول: راه حل تخطيBCNF ‏EMPLOYEE ‏QUARTERLY-BONUSE ‏Employee-id ‏Quarter ‏Ssn ‏bonus 40 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام دوم :روابط: ‏EMPLOYEE راه حل تخطيBCNF ‏QUARTERLYBONUSE ‏Employee-id ‏Quarter ‏SSN ‏bonus 41 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير راه حل تخطيBCNF گام سوم :انتقال: ‏EMPLOYEE ‏SSN ‏QUARTERLYBONUSE ‏Employee-id ‏Quarter ‏bonus 42 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام چهارم :كليدها: راه حل تخطيBCNF ‏EMPLOYEE ‏ID ‏QUARTERLYBONUSE ‏EMPLOYEE$id ‏Quarter ‏SSN ‏bonus 43 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير گام چهارم :كليدها: ‏EMPLOYEE ‏ID جداول اصالح شده ‏QUARTERLYBONUSE ‏EMPLOYEE$id ‏Quarter ‏SSN ‏bonus 44 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير جداول اصالح شده گام چهارم :كليدها: ‏QUARTERLY-BONUSE ‏bonus ‏Quarter ‏Employee$i ‏d 1000 ‏Q1 8857 500 ‏Q1 9216 750 ‏Q2 8857 ‏QUARTERLY-BONUSE 45 دانشكده مهندسي صنايع ‏Ssn ‏Employee$i ‏d 999-44-8857 8857 999-23-9216 9216 دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرم نرمال چهارم )Fourth Normal Form(4NF در يك جدول كه همه‌ي فيلدها كليد هستند ( ، )all-keyبخشي از كليد مي‌تواند چندين مقدار براي يك فيلد ديگر را تعيين كند. از دو جهت 4NFاز فرم‌هاي نرمال قبلي متفاوت است: 4NF .1تنها در جداول all-keyعمل مي‌كند :يك جدول all- keyجدولي است كه فيلد غيرکليد ندارد. .2در 4NFيكي از فيلدهاي كليد چندين مقدار فيلدهاي كليد ديگر را تعيين مي‌كند. 46 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرم نرمال چهارم )Fourth Normal Form(4NF براي درك 4NFبايستي مفهوم همبستگي چندارزشي ()MVD يا ( )Multi valued Dependencyرا دانست. MVD يك فيلد يا دسته‌اي از فيلدهاست كه مقادير چندگانه‌ي فيلد ديگر را كنترل يا تعيين مي‌كند. فيلد Xفيلد Yرا چند تعيين ()Multi Determinant مي‌كند اگر هر مقدار داده شده به Xهمواره مجموعه‌اي از مقادير مربوط به Yرا تعيين كند. 47 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير فرم نرمال چهارم )Fourth Normal Form(4NF در جدول زير فلش دوسره ( )Double Headedيك دترميننت چند ارزشي را نشان مي‌دهد: ‏SKILL ‏Email ‏Language ‏Sport 48 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير Fourth Normal Form(4NF) فرم نرمال چهارم بوجود آمده را نشان4NF جدول زير مشكل بروز شدن كه در نتيجه‌ي تخطي SKILL Email Language Sport dayj@ohio.edu Hungarian soccer dayj@ohio.edu German Soccer dayj@ohio.edu Spanish Soccer luce@ohio.edu German Tennis mcgann@ohio.ed French u Mountain climbing mcgann@ohio.ed French u Sky driving :مي‌دهد French Kayaking  را حذفmcgann@ohio.ed luce به مربوط ) German ( آلماني ) certification (‌ ه تاييد اگر u . اطالعات مربوط به اينكه او بازي تنيس مي‌كند را نيز از دست خواهيم داد،كنيم دانشگاه صنعتي اميركبير دكتر محمد حسين فاضل زرندي 49 دانشكده مهندسي صنايع حل تخطي4NF گام اول :جداول :اطالعات زبان به جدول LANGUAGEو اطالعات مربوط به ورزش به جدول SPORTمنتقل مي‌گردد. ‏LANGUAGE ‏SPORT ‏Email ‏Language ‏Sport 50 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير حل تخطي4NF گام دوم :روابط :خودتان تعيين كنيد. ‏LANGUAGE ‏SPORT ‏Email ‏Language ‏Sport 51 دانشكده مهندسي صنايع دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير حل تخطي4NF گام سوم :انتقال فيلدها. ‏SPORT 52 دانشكده مهندسي صنايع ‏LANGUAGE ‏Email ‏Email ‏Sport ‏Language دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير حل تخطي4NF گام چهارم :تعيين كليدها. ‏SPORT 53 دانشكده مهندسي صنايع ‏LANGUAGE ‏Email ‏Email ‏Sport ‏Language دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير حل تخطي4NF تنها يك MVDبراي هر جدول. ‏SPORT 54 دانشكده مهندسي صنايع ‏LANGUAGE ‏Email ‏Email ‏Sport ‏Language دكتر محمد حسين فاضل زرندي دانشگاه صنعتي اميركبير 4NFحل تخطي . براي هر جدولMVD تنها يك LANGUAGE SPORT 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 mcgann@ohio.ed Mountain u climbing mcgann@ohio.ed French u mcgann@ohio.ed Sky driving u mcgann@ohio.ed Kayaking u دانشگاه صنعتي اميركبير دكتر محمد حسين فاضل زرندي 55 دانشكده مهندسي صنايع

51,000 تومان