طراحی و پیاده سازی پایگاه داده

45
سام دس : ػاتيي اطا ك تا هذيشيتاي يستن سيصايش تااب آلاي دكتد گشاهي خستا اش خثلي اهيگيسش اتذال تي يايض پاي90

Upload: amir-jebelli

Post on 21-Nov-2014

604 views

Category:

Technology


5 download

DESCRIPTION

درس سیستم‌های مدیریت پایگاه داده دانشگاه آزاد اسلامی - واحد الکترونیکی نام استاد: دکتر بازایی ارائه کننده: امیر جبلی پاییز ۹۰

TRANSCRIPT

Page 1: طراحی و پیاده سازی پایگاه داده

سيستن اي هذيشيت تاك اي اطالػاتي: ام دسس استاد گشاهي خاب آلاي دكتش تاصايي

اهيش خثلي ياسش اتذال تيگي

90پاييض

Page 2: طراحی و پیاده سازی پایگاه داده

همذه

ك تشاي پياد ساصي يك پشط هؼواسي يا تليذ يك دستگا واطسدس اتتذا ياص ت يك طشح الي است تشاي پياد ساصي پايگا داد يض

.ياص ت يك طشح الي داسين

Page 3: طراحی و پیاده سازی پایگاه داده

هشاحل اغلي دس طشاحي پايگا داد

تحليل ياصهذي ا(Requirement Analysis)

سسن دياگشام استثاط هخديت ا(Entity Relationship Diagram)

تي هذل ساتط اي(Relational Model)

شهال ساصي(Normalization)

ايداد هذل فيضيكي(Physical Model)

Page 4: طراحی و پیاده سازی پایگاه داده

تحليل ياصهذي ا

دس ايي هشحل ياصهذي اي پايگا داد ضاسايي هي ضد. تواهي اطالػات هشتثط تا دليك كاستش اص پايگا داد تظاساتا

.سيستن استخشاج هي گشددايي لشاس است دس پايگا هطخع طس دليمي ت ضد ك چ داد

داد رخيش ضد وچيي ايي داد ا ت چ غست لشاس است .اص پايگا داد تاصياتي ضد

Page 5: طراحی و پیاده سازی پایگاه داده

تحليل ياصهذي ا

اي هخد داد تشسسي هستذات، فشم ا پايگا

تحميمات تشسسي اي هحيطي

ي هحيط كاس هطاذ

پشسطاه استفاد اص

هػاحث گفتگ تا غاحة ظشاى

ايداد و الي

اضكاالت تشگضاسي خلسات گشي تشاي سفغ

Page 6: طراحی و پیاده سازی پایگاه داده

... خطت ال چى ذ هؼواس كح

هشحل دس طشاحي پايگا داد هي تاضذ هن تشيي تشسسي ياصهذيايتا كوك اطالػات تذست اهذ اص ايي فاص ،داد صيشا طشاحي پايگا

اي ايي فاص تاس ا، طشاحي ادام هي ضد ها دس طل هشاحل اص يافت .استفاد خاين كشد

Page 7: طراحی و پیاده سازی پایگاه داده

يك پيطاد

اي ك تدشت كوي دس ايي صهي داسذ تتش است طشاحاى پايگا داد اي لذيوي ساصهاى سا تشسسي كذ تا تشاي طشاحي اتتذا پايگا داد

.تذست آسذ پايگا داد خذيذ يك چاسچب كلي اي هشتثط تا ساصهاىتشاي سسيذى ت ايي چاسچب تايذ تثيين داد

ش تخص سا دس حال حاظش ت چ غست رخيش ساصي كشد ت چ .طشيمي اص آى استفاد هي كذ

Page 8: طراحی و پیاده سازی پایگاه داده

هشاحل اغلي دس طشاحي پايگا داد

تحليل ياصهذي ا ادياگشام استثاط هخديت سسن تي هذل ساتط اي شهال ساصي فيضيكيهذل ايداد

Page 9: طراحی و پیاده سازی پایگاه داده

هخديت ا دياگشام استثاط

Entity Relationship Diagram ك ت طس خالغ ت آىERD .هي گيذ

ERD ايي .يك هذل سطح تاال تشاي تياى طشاحي پايگا داد استتا كوك تؼذادي سوثل ،گشافيكي هذل ت طس ساد ت غست .هي كذ ساختاس پايگا داد سا هطخع

ايي ك دس هشحل تذست آهذ اكى دس "تحليل ياصهذي ا"داد .ظاش هي ضذ ERD وداس

ا دس لالة هخديت ا ساتط تيي آا دس وداس ERD ايي داد .لشاس هي گيشذ

Page 10: طراحی و پیاده سازی پایگاه داده

ي اخضا تطكيل ERD دذ

هخديت ا غفات ساتط

Page 11: طراحی و پیاده سازی پایگاه داده

(Entities) هخديت ا

.تخطي اص هحيط كاسي است ك دس سيستن ها خد داسد :ااع هخديت ا

هخديت هي تاذ خد فيضيكي داضت تاضذ هثل خا هاضيي

هخديت هي تاذ يك اتفاق تاضذ هثل فشش يك خا يا تؼويش هاضيي

يك يا هخديت هيتاذ يك هفوم تاضذ هثل سفاسش هطتشي تشاكص

Page 12: طراحی و پیاده سازی پایگاه داده

غفات

ايي كشد ستذ ك ها دس خػظ هخديت ا خوغ آسي داد . ايي داد ا هخديت ا سا تضيح هي دذ اين

هثال غفات يك هاضيي هي تاذ هذل، سگ، ضواس هتس ، تؼذاد .تاضذ … سيلذس

،غفات يك هخديت هثل تؼويش هاضيي هي تاذ ام تؼويشكاس .تاضذ … ايشاد هاضيي

،غفات يك هخديت هثل سفاسش هطتشي هي تاذ هثلغ سفاسش .تاضذ آيتن اي سفاسش تاسيخ سفاسش

Page 13: طراحی و پیاده سازی پایگاه داده
Page 14: طراحی و پیاده سازی پایگاه داده

ساتط

ساتط استثاطات تيي هخديت ا سا هطخع هي كذ.

ت ػاى هثال دس يك ساتط تيي هطتشي سفاسش ساتط .خد داسد "سفاسش دادى" خد داسد ”صذگي كشدى“تيي هخديت فشد ضش ساتط.

Page 15: طراحی و پیاده سازی پایگاه داده

ERDو اي اص يك

يك تيواس دس يك تخص تستشيهي ضد يك دكتش تشاي ش

.تيواس هطخع هي ضد پشستاس تشاي هشالثت تؼذادي

اص تيواساى خد داسذ ك دس ش تخص تؼذادي پشستاس

.هطغل كاس ستذ

Page 16: طراحی و پیاده سازی پایگاه داده

ERD هؼشفي اتضاس ايي تشاي سسن

صيادي تشاي سسن اتضاس اي ERD خد داسد ك هتذال تشيي اا دس :اداه آسد ضذ است

Avolution, dbForge Studio for MySQL, ER/Studio, ERwin, MEGA International, ModelRight, OmniGraffle, Oracle Designer, PowerDesigner, Rational Rose, Sparx Enterprise Architect, SQLyog, System Architect, Toad Data Modeler, and Visual Paradigm

MySQL Workbench(Open Source)

Open ModelSphere(Open Source)

Page 17: طراحی و پیاده سازی پایگاه داده

Power Designer شم افضاس

Page 18: طراحی و پیاده سازی پایگاه داده

MySQL Workbench شم افضاس

Page 19: طراحی و پیاده سازی پایگاه داده

هشاحل اغلي دس طشاحي پايگا داد

تحليل ياصهذي ا ادياگشام استثاط هخديت سسن هذل ساتط اي تي شهال ساصي فيضيكيهذل ايداد

Page 20: طراحی و پیاده سازی پایگاه داده

اي تي هذل ساتط

هطخع ضذى ساسيي پشط اص سي ERD است تسياس ساحت . هذل تتشي ياص است ك تتاين اص سي آى ،ساصي پياد لي تشاي

.كين ايداد پايگا داد سات ايي هظس اص هذل ساتط اي استفاد هي كين. اي دس هذل ت ERD هخديت ا ساتط دس دياگشام ،ساتط

.خذال تثذيل هي ضد

Page 21: طراحی و پیاده سازی پایگاه داده

تثذيل هخديت ا ساتط

:لاى اغلي خد داسد 3 تشاي تثذيل هخديت ا ساتطهخديت ا لاى

لاى يك ت چذ

لاى چذ ت چذ

Page 22: طراحی و پیاده سازی پایگاه داده

لاى هخديت ا

هي ضد يك خذل تثذيل ت ش هخديت. كليذ اغلي هخديت ت كليذ اغلي دس خذل تثذيل هي ضد. هخديت ت ستى ايي دس خذل تثذيل خاذ ضذ غفت اي.

تشاي هثال هخديت داطد ت خذل داطد تثذيل ضذ ضواس داطديي كليذ .اغلي ايي خذل خاذ تد

Page 23: طراحی و پیاده سازی پایگاه داده

لاى يك ت چذ

خاسخي ت خذل فشصذ هتمل كليذ دس ساتط يك ت چذ يك .هي ضد

:ت ػاى هثال

Page 24: طراحی و پیاده سازی پایگاه داده

چذ لاى چذ ت

ي چذ ت ت طسي ك ت يك خذل تثذيل هي ضد ،چذ ش ساتطت خذل ايداد ضذ هتمل ،ساتط كليذ اي اغلي د طشف

.تطكيل هي دذ خذل خذيذ سا اغلي كليذتشكية آا هي ضد

Page 25: طراحی و پیاده سازی پایگاه داده

لاى چذ ت چذ

Page 26: طراحی و پیاده سازی پایگاه داده

هشاحل اغلي دس طشاحي پايگا داد

تحليل ياصهذي ا ادياگشام استثاط هخديت سسن هذل ساتط اي تي شهال ساصي فيضيكيهذل ايداد

Page 27: طراحی و پیاده سازی پایگاه داده

شهال ساصي

شهال ساصي فشايذي است ك ت كوك آى افضگي داد دس پايگا .داد كاص يافت يا اص تيي هي سد

اي وچيي ت كوك شهال ساصي احتوال افضد ضذى داد .هتالض دس پايگا داد كاص هي ياتذ

3 تشاي شهال ساصي خذال تايذNF ضكل شهال سم سا تذست يا .آسين

3 تشاي ايك ت ضكلNF 2 تشسين تايذNF , 1NF سا يض تذست .آسين

Page 28: طراحی و پیاده سازی پایگاه داده

1NF فشم شهال

اتتذا تايذ ستى ايي ك داساي 1NF تذست آسدى فشم شهال تشاي اي يكساي ستذ پيذا سپس ش گش اص ايي ستى كشد داد

.كين ا سا ت يك خذل خذيذ هتملاستثاط تيي خذال سا تش لشاس كليذ اغلي تا استفاد اص يك سپس

.هي كين

Page 29: طراحی و پیاده سازی پایگاه داده

1NFهثال

چ هطكلي خد داضت ؟ تا تيطتش ضد تايذ طشاحي 4اگش تؼذاد دسس ا اص .خذال تغييش هي كشد

4كذ دسس 3كذ دسس 2دسس كذ 1كذ دسس ام داطد كذ داطد

103 102 101 100 اهيش خثلي 880869805

106 105 103 100 اتذال تيگي ياسش 880868806

ام داطد كذ داطد

اهيش خثلي 880869805

ياسش اتذال تيگي 880869806

كذ دسس كذ داطد

880860805 100

880869806 100

880869805 101

880869806 106

880869806 103

.... ....

Page 30: طراحی و پیاده سازی پایگاه داده

2NF فشم شهال

2 ذف اص ايداد ضكل شهالNF اي تكشاسي اص خذال حزف داد .است

هشحل صيش سا طي هي كين 2تشاي ايداد ايي فشم: اي تكشاسي دس ش يك اص خذال پيذا كشدى حزف داد

اي حزف ضذ دس يك خذل خذيذ ايداد استثاط لشاس دادى داد خاسخي كليذ تيي خذال تا استفاد اص

Page 31: طراحی و پیاده سازی پایگاه داده

2NFهثال

هطكل چ تد ؟ .اگش ام يك استاى تغييش هي كشد تايذ اطالػات كذ خذل داطدياى تشص هي ضذ -خد افضگي -

ام ضش ام استاى آدسس پستي ام داطد كذ داطد

هطذ خشاساى سضي كسگي خياتاى اهيش خثلي 880869805

تشاى تشاى هالغذسا خياتاى اتذال تيگي ياسش 880868806

تشاى تشاى خياتاى سش شذي ػلي اكثش حذاد 880860807

كذ هطم آدسس پستي ام داطد كذ داطد

1 خياتاى كسگي اهيش خثلي 880869805

2 خياتاى هالغذسا ياسش اتذال تيگي 880869806

2 خياتاى سش شذي ػلي اكثش حذاد 880869807

ضش ام استاى ام كذ هطم

هطذ خشاساى سضي 1

تشاى تشاى 2

اغفاى اغفاى 3

Page 32: طراحی و پیاده سازی پایگاه داده

3NF (1) فشم شهال

3 دس ضكل شهالNF ت حزف ستى ايي هي پشداصين ك ت كليذ .اغلي اتستگي ذاسذ

هؼذل كل ام داطد كذ داطد

18 اهيش خثلي 880869805

19 اتذال تيگي ياسش 880868806

20 شذي ػلي اكثش حذاد 880860807

احذ وش كذ داطد

880869805 19 3

880869806 18 2

880869807 20 2

ام داطد كذ داطد

اهيش خثلي 880869805

اتذال تيگي ياسش 880869806

شذي ػلي اكثش حذاد 880869806

Page 33: طراحی و پیاده سازی پایگاه داده

3NF (2) فشم شهال

تا تخ ت ايك هؼذل كل اص سي وشات داطد هحاسث هي ضد اتستگي تا ضواس داطديي فشد ذاسد تايذ اص خذل اطالػات

.داطد حزف ضذ دس غست ياص همذاس آى هحاسث ضد

اضكالي خد داضت ؟ چ

دس ش صهاى تؼييش كذ تايذ هؼذل يض داطديك غستي ش يك اص وشات دس تشص ضد ك ايي هضع ن سذ كذ يسي سا پيچيذ هي كذ ن هوكي است

ادام ... يا ( runtime error)ػول تشص سساي هؼذل كل ت دليل خطاي تشاه .طد

Page 34: طراحی و پیاده سازی پایگاه داده

ديگش فشم اي شهال

تشاي شهال ساصي فشم اي ديگشي يض خد داسد ك ػثاستذ اص: Elementary Key Normal Form (EKNF)

Boyce–Codd normal form (BCNF)

Fourth normal form (4NF)

Fifth normal form (5NF)

Domain/key normal form (DKNF)

Sixth normal form (6NF)

6 ػاى هثال اص فشم شهال تNF تشاي شهال ساصي اثاس داد .استفاد هي ضد

Page 35: طراحی و پیاده سازی پایگاه داده

هشاحل اغلي دس طشاحي پايگا داد

تحليل ياصهذي ا ادياگشام استثاط هخديت سسن هذل ساتط اي تي شهال ساصي فيضيكيهذل ايداد

Page 36: طراحی و پیاده سازی پایگاه داده

! تا هذل فيضيكي ERD اص

پايگا داد سا دس شم افضاس يكاكى MySQL Workbench دس لالة يك فايل هي ساصين SQL ساخت، اص شم افضاس يك خشخي

PHPMyAdmin سپس اص طشيك شم افضاس هذيشيت پايگا دادهتمل كشد هذل فيضيكي MySQL ايي خشخي سا ت پايگا داد

.سا ايداد هي كين

Page 37: طراحی و پیاده سازی پایگاه داده

MySQL Workbench دس ايداد خذال

Page 38: طراحی و پیاده سازی پایگاه داده

SQL تي خشخي

Page 39: طراحی و پیاده سازی پایگاه داده

SQL خشخي

Page 40: طراحی و پیاده سازی پایگاه داده

SQL ايداد خذال دس پايگا داد اص طشيك فايل

Page 41: طراحی و پیاده سازی پایگاه داده

SQL فايل Import خذال ايداد ضذ پس اص

Page 42: طراحی و پیاده سازی پایگاه داده

ايد الخذ اسد ضذ دس اد

Page 43: طراحی و پیاده سازی پایگاه داده

ساختاس فيضيكي

تش سي فايل سيستن ت غست فايل اي تايشي كذ ضذ خذال .گذاسي هي ضد

فايل ا تست ت ع پايگا داد هتفات است ساصي رخيش ضي.

Page 44: طراحی و پیاده سازی پایگاه داده

هاتغ

http://www.relationaldbdesign.com/relational-database-design/module4/sequence-analysis-requirements-tasks.php

http://www.programmerfish.com/4-steps-to-a-professional-database-design/

http://www.leesweblog.com/2008/10/12/practical-application-of-database-normalization/

http://www.javaguicodexample.com/erdrelationalmodelnotes.html

http://www.javaguicodexample.com/erdrelationalmodelnotes1.html

http://www.jkinfoline.com/steps-in-database-design.html

http://en.wikipedia.org/wiki/Database_model

http://en.wikipedia.org/wiki/Database_normalization

http://en.wikipedia.org/wiki/Entity-relationship_model

http://en.wikipedia.org/wiki/Database_design

http://en.wikipedia.org/wiki/Relational_model

http://en.wikipedia.org/wiki/Data_modeling