صفحه 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