پايگاه دادهها. Database. جزوه مهندس حمید رضا نیرومند

Σχετικά έγγραφα
هر عملگرجبر رابطه ای روی يک يا دو رابطه به عنوان ورودی عمل کرده و يک رابطه جديد را به عنوان نتيجه توليد می کنند.

پایگاه داده جلسه 8 محمد علی فرجیان مدرس :محمد علی فرجیان 1

ﻞﻜﺷ V لﺎﺼﺗا ﺎﻳ زﺎﺑ ﺚﻠﺜﻣ لﺎﺼﺗا هﺎﮕﺸﻧاد نﺎﺷﺎﻛ / دﻮﺷ

روش محاسبه ی توان منابع جریان و منابع ولتاژ

فصل چهارم: جبر رابطه اي

محاسبه ی برآیند بردارها به روش تحلیلی

مقدمه -1-4 تحليلولتاژگرهمدارهاييبامنابعجريان 4-4- تحليلجريانمشبامنابعولتاژنابسته

V o. V i. 1 f Z c. ( ) sin ورودي را. i im i = 1. LCω. s s s

e r 4πε o m.j /C 2 =

( ) x x. ( k) ( ) ( 1) n n n ( 1) ( 2)( 1) حل سري: حول است. مثال- x اگر. يعني اگر xها از = 1. + x+ x = 1. x = y= C C2 و... و

( ) قضايا. ) s تعميم 4) مشتق تعميم 5) انتگرال 7) كانولوشن. f(t) L(tf (t)) F (s) Lf(t ( t)u(t t) ) e F(s) L(f (t)) sf(s) f ( ) f(s) s.

در اين آزمايش ابتدا راهاندازي موتور القايي روتور سيمپيچي شده سه فاز با مقاومتهاي روتور مختلف صورت گرفته و س سپ مشخصه گشتاور سرعت آن رسم ميشود.

ﻴﻓ ﯽﺗﺎﻘﻴﻘﺤﺗ و ﯽهﺎﮕﺸﻳﺎﻣزﺁ تاﺰﻴﻬﺠﺗ ﻩﺪﻨﻨﮐ

1) { } 6) {, } {{, }} 2) {{ }} 7 ) { } 3) { } { } 8) { } 4) {{, }} 9) { } { }

t a a a = = f f e a a

+ Δ o. A g B g A B g H. o 3 ( ) ( ) ( ) ; 436. A B g A g B g HA است. H H برابر

هدف:.100 مقاومت: خازن: ترانزيستور: پتانسيومتر:

گروه رياضي دانشگاه صنعتي نوشيرواني بابل بابل ايران گروه رياضي دانشگاه صنعتي شاهرود شاهرود ايران

آزمایش 8: تقویت کننده عملیاتی 2

تلفات کل سيستم کاهش مي يابد. يکي ديگر از مزاياي اين روش بهبود پروفيل ولتاژ ضريب توان و پايداري سيستم مي باشد [-]. يکي ديگر از روش هاي کاهش تلفات سيستم

آزمایش 2: تعيين مشخصات دیود پيوندي PN

1 ﺶﻳﺎﻣزآ ﻢﻫا نﻮﻧﺎﻗ ﻲﺳرﺮﺑ

O 2 C + C + O 2-110/52KJ -393/51KJ -283/0KJ CO 2 ( ) ( ) ( )

تحلیل مدار به روش جریان حلقه

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

برخوردها دو دسته اند : 1) كشسان 2) ناكشسان

آرايه ها و ساختارها سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر

تصاویر استریوگرافی.

مفاهیم ولتاژ افت ولتاژ و اختالف پتانسیل

آزمایش 1: پاسخ فرکانسی تقویتکننده امیتر مشترك

جلسه 9 1 مدل جعبه-سیاه یا جستاري. 2 الگوریتم جستجوي Grover 1.2 مسا له 2.2 مقدمات محاسبات کوانتمی (22671) ترم بهار

جلسه 3 ابتدا نکته اي در مورد عمل توابع بر روي ماتریس ها گفته می شود و در ادامه ي این جلسه اصول مکانیک کوانتمی بیان. d 1. i=0. i=0. λ 2 i v i v i.

مقاومت مصالح 2 فصل 9: خيز تيرها. 9. Deflection of Beams

مقاطع مخروطي 1. تعريف مقاطع مخروطي 2. دايره الف. تعريف و انواع معادله دايره ب. وضعيت خط و دايره پ. وضعيت دو دايره ت. وتر مشترك دو دايره

را بدست آوريد. دوران

آزمایش 1 :آشنایی با نحوهی کار اسیلوسکوپ

آزمون مقایسه میانگین های دو جامعه )نمونه های بزرگ(

مثال( مساله الپالس در ناحیه داده شده را حل کنید. u(x,0)=f(x) f(x) حل: به کمک جداسازی متغیرها: ثابت = k. u(x,y)=x(x)y(y) X"Y=-XY" X" X" kx = 0

در اين ا زمايش ابتدا راهاندازي موتور القايي رتور سيمپيچي شده سه فاز با مقاومت مختلف بررسي و س سپ مشخصه گشتاور سرعت ا ن رسم ميشود.

(,, ) = mq np داريم: 2 2 »گام : دوم« »گام : چهارم«

هو الحق دانشکده ي مهندسی کامپیوتر جلسه هفتم

جلسه 2 1 فضاي برداري محاسبات کوانتمی (22671) ترم بهار

سايت ويژه رياضيات درسنامه ها و جزوه هاي دروس رياضيات

10 ﻞﺼﻓ ﺶﺧﺮﭼ : ﺪﻴﻧاﻮﺘﺑ ﺪﻳﺎﺑ ﻞﺼﻓ ﻦﻳا يا ﻪﻌﻟﺎﻄﻣ زا ﺪﻌﺑ

حل J 298 كنيد JK mol جواب: مييابد.

1سرد تایضایر :ميناوخ يم سرد نيا رد همانسرد تلااؤس یحيرشت همان خساپ

پايداری Stability معيارپايداری. Stability Criteria. Page 1 of 8

سبد(سرمايهگذار) مربوطه گزارش ميكند در حاليكه موظف است بازدهي سبدگردان را جهت اطلاع عموم در

مدار معادل تونن و نورتن

P = P ex F = A. F = P ex A

Distributed Snapshot DISTRIBUTED SNAPSHOT سپس. P i. Advanced Operating Systems Sharif University of Technology. - Distributed Snapshot ادامه

هدف از انجام این آزمایش بررسی رفتار انواع حالتهاي گذراي مدارهاي مرتبه دومRLC اندازهگيري پارامترهاي مختلف معادله

يﺎﻫ ﻢﺘﻳرﻮﮕﻟا و ﺎﻫ ﺖﺧرد فاﺮﮔ ﻲﻤﺘﻳرﻮﮕﻟا ﻪﻳﺮﻈﻧ :سرد ﻲﺘﺸﻬﺑ ﺪﻴﻬﺷ هﺎﮕﺸﻧاد ﺮﺗﻮﻴﭙﻣﺎﻛ مﻮﻠﻋ هوﺮﮔ ﻪﻴﻟوا ﺞﻳﺎﺘﻧ و ﺎﻫﻒ ﻳﺮﻌﺗ

Vr ser se = = = Z. r Rr

فصل اول آشنايي با Excel

فصل پنجم زبان های فارغ از متن

قاعده زنجیره ای برای مشتقات جزي ی (حالت اول) :

تمرینات درس ریاض عموم ٢. r(t) = (a cos t, b sin t), ٠ t ٢π. cos ٢ t sin tdt = ka۴. x = ١ ka ۴. m ٣ = ٢a. κds باشد. حاصل x٢

كار شماره توانايي عنوان آموزش

جلسه 22 1 نامساویهایی در مورد اثر ماتریس ها تي وري اطلاعات کوانتومی ترم پاییز

تخمین با معیار مربع خطا: حالت صفر: X: مکان هواپیما بدون مشاهده X را تخمین بزنیم. بهترین تخمین مقداری است که متوسط مربع خطا مینیمم باشد:

جلسه دوم سوم چهارم: مقدمه اي بر نظریه میدان

هدف از این آزمایش آشنایی با رفتار فرکانسی مدارهاي مرتبه اول نحوه تأثیر مقادیر عناصر در این رفتار مشاهده پاسخ دامنه

چکيده

دانشگاه ا زاد اسلامی واحد خمينی شهر

فعالیت = ) ( )10 6 ( 8 = )-4( 3 * )-5( 3 = ) ( ) ( )-36( = m n m+ m n. m m m. m n mn

جلسه 14 را نیز تعریف کرد. عملگري که به دنبال آن هستیم باید ماتریس چگالی مربوط به یک توزیع را به ماتریس چگالی مربوط به توزیع حاشیه اي آن ببرد.

:نتوين شور شور هدمع لکشم

مسائل. 2 = (20)2 (1.96) 2 (5) 2 = 61.5 بنابراین اندازه ی نمونه الزم باید حداقل 62=n باشد.

ا يز د ر آ آ لو زا د ا

بررسي علل تغيير در مصرف انرژي بخش صنعت ايران با استفاده از روش تجزيه

ویرایشسال 95 شیمیمعدنی تقارن رضافالحتی

یﺭﺎﺘﻓﺭ یﺭﺎﺘﻓﺭ یﺎﻫ یﺎﻫ ﻑﺪﻫ ﻑﺪﻫ

معادلهی مشخصه(کمکی) آن است. در اینجا سه وضعیت متفاوت برای ریشههای معادله مشخصه رخ میدهد:

هدف: LED ديودهاي: 4001 LED مقاومت: 1, اسيلوسكوپ:

جلسه 12 به صورت دنباله اي از,0 1 نمایش داده شده اند در حین محاسبه ممکن است با خطا مواجه شده و یکی از بیت هاي آن. p 1

1- مقدمه است.

جلسه 2 جهت تعریف یک فضاي برداري نیازمند یک میدان 2 هستیم. یک میدان مجموعه اي از اعداد یا اسکالر ها به همراه اعمال

جلسه ی ۱۰: الگوریتم مرتب سازی سریع

تلفات خط انتقال ابررسی یک شبکة قدرت با 2 به شبکة شکل زیر توجه کنید. ژنراتور فرضیات شبکه: میباشد. تلفات خط انتقال با مربع توان انتقالی متناسب

ﯽﺳﻮﻃ ﺮﯿﺼﻧ ﻪﺟاﻮﺧ ﯽﺘﻌﻨﺻ هﺎﮕﺸﻧاد

است). ازتركيب دو رابطه (1) و (2) داريم: I = a = M R. 2 a. 2 mg

بخش ششم: عملیات در پایگاه داده رابطهای

a a VQ It ميانگين τ max =τ y= τ= = =. y A bh مثال) مقدار τ max b( 2b) 3 (b 0/ 06b)( 1/ 8b) 12 12

Answers to Problem Set 5

رياضي 1 و 2. ( + ) xz ( F) خواص F F. u( x,y,z) u = f = + + F = g g. Fx,y,z x y

جلسه 28. فرض کنید که m نسخه مستقل یک حالت محض دلخواه

فصل چهارم موتورهاي جريان مستقيم

شاخصهای پراکندگی دامنهی تغییرات:

جلسه 16 نظریه اطلاعات کوانتمی 1 ترم پاییز

مربوطند. با قراردادن مقدار i در معادله (1) داريم. dq q

یک روش بهینه سازی ترکیبی بر مبنای الگوریتم pso برای حل مسئله زمان بندی

بسم اهلل الرحمن الرحیم آزمایشگاه فیزیک )2( shimiomd

نيمتوان پرتو مجموع مجموع) منحني

يا (Automatic Generation Control) AGC

نظریه زبان ها و ماشین ها

قطعات DNA وصل ميشوند فاژT7. pppapcpc/a(pn) 1 2 فاژT4. pppapc (PN) 3. *** (p)ppa /G (PN) 7 pppa / G (Pn)~9 در حدود ۱۰

بخش غیرآهنی. هدف: ارتقاي خواص ابرکشسانی آلياژ Ni Ti مقدمه

Top Down Parsing LL(1) Narges S. Bathaeian

سلسله مزاتب سبان مقدمه فصل : زبان های فارغ از متن زبان های منظم

Transcript:

پايگاه دادهها Database جزوه مهندس حمید رضا نیرومند http://niroomand.ir

توجه: - - - استفاده از جزوه بدون حضور در کالسها پيشنهاد نميشود. اين يک انتشار غيررسمي و بدون بازبيني نهايي از جزوه و ويژه دانشجويان مهندس نيرومند است. اين نسخه 1.0.0 از جزوه است و به مرور غنيتر خواهد شد. )لطفا اشتباهات سهوي که مشاهده ميکنيد را به ايميلinfo@niroomand.ir ارسال نماييد(. 2

مقدمه: Database و سيستمهاي مرتبط با آن به يک جزء حياتي زندگي بشر تبديل شدهاند. بسياري از فعاليتهاي روزمره ما با Database درگير است. از جمله: اکثر کارهاي بانکي روال تهيه بليط هواپيما و.... به اين نوع از پايگاه دادهها که فقط با دادههاي عددي و متني سروکار دارند در اصطالح»پايگاه داه سنتي«)Traditional( گفته ميشود در حاليکه اين روزها Multimedia DBs يا GIS و... قابليت ذخيره سازي عکسها ويدئو و صدا را نيز دارد. اما به هر حال براي آموزش پايهاي پايگاه داده بايد از پايگاه دادههاي سنتي استفاده کرد. تعريف عمومي پايگاه داده: ابتدا تشريح کلمه :Database Data کلمهاي است که هم به صورت جمع و هم به صورت مفرد به کار ميرود اما در حقيقت يک کلمه جمع است که مفرد آن Datum است Base هم يعني پايه پايگاه. :Data حقايق شناخته شده يا Fact که ميتواند ثبت شود. مثل: نام آدرس شماره تلفن و... تعريف عمومي پايگاه داده: Database: a Database is a collection of related data پايگاه داده مجموعهاي از دادههاي مرتبط است. مشخصات عمومي :Database يک Database نماد دنياي در مفاهيمي واقعيت به خاطر همين به است miniworld( خرده جهان واقع( يا )Universe Of Discourse (UOD نيز ميگويند. Database مينيورلد يک Database يک مجموعه منطقا مرتبط با معاني غير مرتبط است. مجموعهاي از دادههاي تصادفي )random( Database ناميده نميشود. Database براي يک هدف خاص طراحي و ساخته شده است. 3

تعريف سيستم مديريت :DBMS يک DBMS: DataBase Management System يک پايگاه داده ممکن است به صورت دستي ايجاد شده باشد يا به صورت کامپيوتري مثل فايل.Excel ميدهد. DBMS مجموعهاي از برنامهها است که فوايد استفاده از :DBMS -1-2 -3-4 -5 کنترل افزوندگي دادهها کنترل سطح دسترسيها به کاربر امکان ايجاد و مديريت پايگاه داده امکان تهيه نسخه پشتيبان )Backup( و بازگرداني اطالعات )Recovery( امکان استفاده همزمان چندين کاربر از پايگاه داده تعيين قيود يکپارچگي -6 و... تعريف سيستم پايگاه دادهاي System( )DB : به مجموعه پايگاه داده و سيستم مديريت پايگاه داده سيستم پايگاه دادهاي گفته ميشود. شکل ک يل محيط سيستم پايگاه دادهاي: کامپيوتري را Query Meta Data Stored Data 4

Student مثال: پايگاه دادهاي که شامل ترمها و پروژهها و دانشجوها و نفرات است: مشخصات دانشجويان Name stno Mager Ali Amin 4345 2212 cs math Course رابطه دوره name C01 Course name DB credit 3 Department cs با رشته M203 stat 2 Math Section مشخصات Section ID 85 Course Number C01 Semaster 882 Instractor Year Akbari 2010 هر دوره 82 M203 882 Ahmadi 2010 Grades نمرات stno 3382 Se ID 85 grade 22 تفاوت مشي فايلينگ و با مشي پايگاه دادهاي: مشي فايلينگ: None-DBMS Approach مشي پايگاه دادهاي: DBMS Approach معايب مشي فايلينگ: - تصور کنيد اداره امور دانشجويي به اطالعات دانشجويان نياز داشته باشد در مشي فايلينگ نام و نام خانوادگي و شماره دانشجويي و کليه اطالعات امور در فايلي ذخيره ميشود. از طرفي اداره امور مالي نيز که براي محاسبه شهريه دانشجويان وام و غيره... به اطالعاتي مثل نام آدرس و بسياري اطالعات ديگر نياز دارد که در يک فايل مجزا ذخيره ميشود. پس بدون حضور سيستم پايگاه دادهاي بسياري از اطالعات به صورت تکراري در فايلهاي مختلف ذخيره ميشوند که هدر رفتن فضاي حافظه را در پي خواهد داشت. به اين عيب در اصالح»افزونگي داده«گفته ميشود. - براي به روز کردن يک سري اطالعات بايد چندين فايل مختلف ويرايش شود. - براي هر فايل يک برنامه کاربردي مخصوص به آن نياز است که در نتيجه سيستمهاي کاربردي پراکندهاي خواهيم داشت. 5

خطر بروز ناسازگاري داده عدم امکان اشتراک داده عدم امکان اشتراک داده عدم امکان اعمال ضوابط امنيتي روي کل دادههاي سازمان - - - - مزاياي مشي پايگاه دادهاي: برعکس معايب مشي فايلينگ خواهد بود... افراد مرتبط با پايگاه دادهها Database Administrator -1 DBA وظيفه نظارت و مديريت دو منبع اصلي سيستم يعني DB و DBMS را دارد. برخي از وظايف: مديريت دسترسي کاربران سطوح مختلف به DB - مانيتور کردن و نظارت لحظه به لحظه کارکرد سيستم - تهيه نرمافزارها و سخت افزارهاي الزم - تأمين امنيت سيستم - Database Designers -2 مشخص کردن دادههايي که در پايگاه داده بايد ذخيره شوند. تهيه ساختاري براي نمايش و ذخيره سازي دادههاا در اصطالح به اين ساختار ميگويناد ااش ما.Schema ايجااد Viewهااي مختلاف باراي گروههااي مختلاف سيستم. 3- کاربران نهايي يا :End Users کاربراني هستند که کار آنها طوري اسات کاه نيااز باه دسترساي Database دارناد باراي پارس و جاو و Update کردن و غيره Software Engineers & System Analysis & Application programmers -4 )مهندسان نرمافزار تحليل گران سيستم و برنامه نويسان برنامههاي کاربردي( نيازهاي کاربران نهايي را تعيين ميکنند برنامههاي الزم جهت رفع اين نيازمنديها را طراحي و پيادهساازي ميکنند وظيفه تست خطايابي و تعميرات را نيز بر عهده دارند. نکته: بايد با تمام قابليته يا DBMS آشنا باشد. 6

5- کاربراني که به طور غير مستقيم با Database در ارتباط اند: System Designers & Implementers -5-1 وظيفه طراحي و پياده سازي ماژولهاي DBMS و رابطه يا Tool Developers -5-2 وظيفه طراحي و پيادهسازي پکيجه يا Operators and Maintenance Personel -5-3 نرمافزاري الزم را بر عهده دارند. نرمافزاري را که استفاده از Database را تسهيل ميکنند دارند. پرسنل مربوط به نگهداري و انجامکارهاي عملياتي سيستم وظيفه اجرا تعميرات و مديريت سختافزارها و نرمافزارهاي سيستم را بر عهده دارد. 1862-1882 تاريخچه :Database 1- Databaseهاي اوليه در ساله يا - وجود دادههاي مشابه بسيار در بانک اطالعاتي - عدم انعطاف پذيري مناسب در ايجاد پرس و جوهاي الزم - بزرگترين مشکل: عدم حضور DBMS يعني براي هر بانک اطالعااتي ياک برناماه مخصاوص نوشاته ميشد در نتيجه براي افزودن يک پرس و جوي جديد بايد يک برنامه جديد نوشاته تسات و خطاياابي ميشاد که بسيار وقتگير بود. 2- ظهور Databaseهاي رابطهاي در 1882 - طراحي زبانهاي پرس و جوي سطح باال و قبليت طراحي Applicationهاي منعطفتر. دوره ظهور برنامههاي شيئگرا و نياز به طراحي پايگاه دادههاي پيچيده در اواسط و اواخر دهه 82 دوره ظهور پايگاه دادههاي تحت وب در دهه 82 دوره توسعه قابليته يا Databaseها براي برنامههاي کاربردي جديد -3-4 -5 قابليتهايي مثل ذخياره ساازي دادههاا در زماان خااص ياا باه صاورت ماهياناه گارفتن نساخه پشاتيبان حرفهايتر و... 7

انواع معماري سيستم پايگاه دادهها 1- پايگاه داده متمرکز يا Centralized DB يا : CDB DB و DBMS هر دو بر روي يک کامپيوتر هستند و به شبکه خاصي متصل نيستند. Centeralized DB (CDB) OS Apps DBMS DB 2- پايگاه داده توزيع شده يا Distributed DB يا : DDB OS APPS DBMS DB1 OS APPS DBMS DB2 DCM DCM PC2 NET DCM OS APPS DBMS DB3 PC3 در اين نوع پايگاه داده داريم: DDB={DB1+DB2+DB3} شعب مختلف بانک ملي را به عنوان PC2 PC1 و PC3 در نظر بگيريد. اطالعات هر شعبه روي سيستم همان شعبه است. 8

DDB Technology = DB Tech + NET Tech سوال: تکنولوژي DDB با چه تکنولوژيهايي درگير است -3 پايگاه داده کالينت-سروري يا Client / Server DB يا : C/S DB مانند سيستم شبکه بانکي شتاب OS APPS DBMS OS APPS DBMS DB DCM DCM Clint NET Server LAN WAN پايگاه داده چند کالينتي-چند سروري يا Multi Client / Multi Server DB يا / MC MS DB -4 OS APPS DBMS DB OS APPS DBMS DB DCM DCM LAN WAN NET DCM OS APPS DBMS DB 8

محيط عملياتي: به محيطي که قصد طراحي يک سيستم ذخياره و بازياابي اطالعاات )ذباا( را باراي آن داريام )miniworld( خرده جهان واقع يا»محيط عملياتي«گفته ميشود. هر محيط عملياتي معموال از چندين محيط تشکيل شده است: محیط عملیاتی دانشگاه اداره امور آموزشی اداره امور دانشجویی اداره امور مالی... 12

The Entity-Relationship Model )مدل )E/R روند طراحي يک پايگاه داده با تحليل اطالعاتي که بايد در Database نگه داشته شاوند و رواباط باين آنهاا آغاز ميشود. سپس اين دادهها باياد مدل سازي معنايي شاوند. باراي مادل ساازي معناايي دادههاا روشهااي مختلفي وجود دارد مانند روش.E/R اما رايج ترين تکنولوژي روشي است به نام UML يا روش Functional :E/R يک مدل گرافيکي است شامل Boxها و فلشهايي براي نمايش عناصر دادهاي و روابط بين آنها. )در فصلهاي بعد اين اشکال گرافيکي با استفاده از مدل رابطهاي به جدول تبديل ميشوند( روند پياده سازي يک :Database Ideas E/R Modeling E/R Relational Schema Relational DBMS عناصر مدل :E/R در مدل E/R ساختار Database توسط عناصر زير به صورت گرافيکي نمايش داده ميشود. -1 موجوديت Entity -2 صفات Attribute -3 روابط Relationship -1 موجوديت: An entity represents a real-world object or concepts such as an employee or project. تعريف: يک موجوديت نماد يک شيئ يا مفهوم در دنياي واقعي است. مثل يک کارمند يا يک پروژه. توجه: در هر محيط عملياتي مجموعهاي از موجوديتها وجود دارد که مدل ساز بايد اين مجموعه را به درساتي تشخيص دهد. براي نمونه در محيط عملياتي دانشگاه چند نمونه موجوديت عبارتند از: دانشجو استاد کارمناد کالس درس ترم و.... 11

راهنماي عملي تشخيص موجوديتهاي محيط عملياتي: - يک موجوديت معموال چندين نمونه )instance( در محيط دارد. - کاربر مجموعهاي از اطالعات در مورد آن ميخواهد. - معموال بيش از يک صفت دارد. نمونههاي ديگري از موجوديت: در يک آموزشکده زبان برخي از موجوديتها عبارتند از: زبان آموزان اساتيد کالسها ترمها و غيره. توجه کنيد که در اين سيستم خاود»آموزشاکده«ياک موجوديات نيسات چاون بناد اول در ماورد آن برقارار نيست. اما اگر بخواهيم براي کل آموزشکدههاي سراسار کشاور برناماه بنويسايم آنگااه آموزشاکده خاود ياک موجوديت خواهد بود. براي نمونهاي ديگر ميتوان از کتابخانه نام برد و موجوديتهاايي چاون کتابهاا گروههااي کتااب قفساهها اعضا کتابداران و غيره. يا در مدرسه: دانشآموزان معلمها کالسها کارمندان درسها و غيره. انواع موجوديت: 1- موجوديت قوي يا مستقل 2- موجوديت ضعيف يا وابسته موجوديت قوي: موجوديتي است که وجود آن وابسته به وجود موجوديت ديگري نيست. براي نمونه در سيستم دانشگاه يک»دانشجو«يک موجوديت قوي است حتي اگر هيچ درسي در يک ترم اخذ نکند )مرخصي( باز هم»دانشجو«است.»استاد«نيز موجوديتي قوي است حتاي اگار در ياک تارم درساي ارائاه نکند باز هم»استاد«است. موجوديت ضعيف: موجوديتي است که وجودش وابسته به وجود موجوديت ديگري است. مثل گواهينامه= اگر شخص حذف شود گواهينامه او ديگر مطرح نيست. مثل والدين= اگر شخص حذف شود ديگر والدين او مطرح نيست. 12

-2 صفت: An Attribute represts some property of interest that further describes an Entity هر موجوديت داراي مشخصاتي است که آن موجوديت را بيشتر توصيف ميکند. ايان مشخصاات در اصاطالح»صفت«يا Attribute گفته ميشود. اين موضوع را به صورت زير نيز نمايش ميدهند: مجموعهای از اطالعاتی در مورد هر یک از نمونههایi E Ei = { Ai } i =1,2,... یا => i=1 Ai مثال: موجوديتي به نام دانشجو داراي صفاتي مانند: نام نام خانوادگي نام پدر آدرس تلفن و... است. بخشهاي تشکيل دهنده يک صفت: نام معنا نوع )عددي رشتهاي و...( طول مقدار )22 کاراکتري 42 کاراکتري و...( ميدان يا دامنه )مقادير مجاز( مثل صفت نمره: Grade نمره دانشجو Decimal 4 2 تا 22 انواع صفت: 1- صفت ميتواند شناسه باشد يا نباشد. صفت شناسه عامل جداسازي يک نمونه موجوديت از يک نمونه ديگار اسات. )مثال شاماره دانشاجويي براي موجوديت دانشجو( صفت شناسه داراي دو ويژگي زير است: 1-1- يکتايي مقدار دارد. 1-2 ي- حت االمکان طول کوتاهتر و ترجيحا از صفات طبيعي است. مثل کد ملي 13

صفت ممکن است ساده باشد يا مرکب: صفت مرکب صفتي است که از تعدادي صفت ساده تشکيل شده است. مثل صفت آدرس شامل: نام شهر خيابان کوچه پالک صفت ممکن است تک مقداري يا چند مقداري )Multi-Valued( باشد. مثل صفت شماره تلفن صفت ممکن است واقعي يا مجازي باشد. صفت واقعي مقدار ذخيره شده در Database است. مثل نام نام خانوادگي نمره و... صفت مجازي مقدار ذخيره شده ندارد بلکه از پردازش از روي مقادير ذخيره شده به دست ميآيد. مثل معدل يا سن توجه: به صفت مجازي صفت محاسباتي يا صفت مشتقشده يا Derived Attribute نيز گفته ميشود. -2-3 -4 :E/R Diagram يک دياگرام E/R گرافي است که نماد موجوديتها صفات و روابط است. Symbol Meaning موجوديت صفت رابطه صفت مجازي موجوديت ضعيف صفت چند مقداري 14

مثال: نمودار نمايش دانشجو در محيط عملياتي دانشگاه را رسم کنيد. ت ت مجازي شماره دا. دانشجو آدرس نام نام خانوادگي ش ش 3- رابطهها: Relationships are connections among two or more Entity sets. رابطهها ارتباط بين 2 يا چند موجوديت هستند. به طور مثال درس و دانشجو 2 موجوديت هستند. رابطه )اخذ کردن( 2 موجوديت را به هم متصل ميکند:»دانشجو«اخذ ميکند»درس«را 1 1 E1 R E2 انواع رابطه بين 2 موجوديت: 1- رابطه One-One يا يک به يک: اگر يک نمونه از موجوديت E1 با يک نمونه از موجوديت E2 رابطه داشته باشد و بالعکس آنگااه رابطاه آنهاا يک به يک است. مثال: رابطه مديريت بين استاد و دانشکده. يک نمونه از دانشکده فقط توسط يک استاد مديريت ميشود و بالعکس دانشکده 1 مديريت 1 استاد 2- رابطه Many-One يا يک به چند يا 1 به N: اگر ياک نموناه از موجوديات E1 باا N نموناه از موجوديات E2 در ارتبااط باشاد در حاليکاه ياک نموناه از موجوديت E2 فقط با يک نمونه از موجوديت E1 در ارتباط است در اينصورت رابطه ياک باه چناد برقارار خواهد بود. 1 N E1 R E2 15

مثال: رابطه بين»دانشگاه«و»دانشجو«در سيستم دانشگاههاي کل کشور. باشد. هر دانشجو فقط در يک دانشگاه ميتواند تحصيل کند اما هر دانشگاه ميتواند باا چنادين دانشاجو رابطاه داشاته N 1 تحصيل دانشجو دانشگاه 3- رابطه Many-Many يا چند به چند يا N به : M اگر يک نمونه از موجوديت E1 با M نمونه از موجوديت E2 و يک نمونه از موجوديات E2 باا N نموناه از موجوديت E1 ارتباط داشته باشد بين E1 و E2 رابطه N به M برقرار است. مثال: رابطه بين»دانشجو«و»درس«. يک»دانشجو«چندين»درس«اخذ ميکند و يک»درس«نيز توسط چندين»دانشجو«اخذ ميشود. نکته: در محيطهاي عملياتي بيش از همه اين رابطه به چشم ميخورد. N M E1 R E2 N M درس دانشجو اخذ نکته: ارتباط نيز ميتواند صفت يا صفاتي داشته باشد از اين منظر ارتباط نيز نوعي موجوديت است. مثال: N M نام شماره ترم درس دانشجو انتخاب st تاريخ اخذ نمره units name نام خانواگي نکته: مشارکت يک نوع موجوديت در يک رابطه ممکن است الزامي يا )کامل( باشد يا نباشد. مشارکت الزاماي زماني است که تمام نمونههاي موجوديت در آن ارتباط شرکت داشته باشند. مثال: استاد 1 گروه آموزشي ارتباط الزامي مديريت 1 هر گروه آموزشي حتما بايد توسط يک استاد مديريت شود اما لزوما يک استاد مديريت يک گروه آموزشي را بر عهده ندارد. 16

نکاتي در مورد ارتباط: ارتباط ممکن است بين يک موجوديت و خودش باشد. در اين حالت ارتباط Self-Relation ناميده ميشود. نکته: ارتباط بزرگتر از سه موجوديتي در محيط عملياتي توصيه نميشود. نکته: با داشتن يک ارتباط سه موجوديتي ميتوان ساه ارتبااط دو موجاوديتي باه دسات آورد اماا بار عکاس آن هميشه درست نيست. اگر چنين کنيم در اصطالح دچار دام پيوندي trap( )Connection شدهايم. مثال: استاد مدل اول: يک ارتباط سه موجوديتي درس اخذ دانشجو اگر کاربر به طور قطع از سه ارتباط دو موجوديتي يک ارتباط سه موجوديتي به دست بياورد دچاار دام پيونادي شده است. دانشجو انتخاب درس مدل دوم: سه ارتباط دو موجوديتي ارائه انتخاب استاد اگر بخواهيم مدل دوم را به مدل اول تبديل کنيم )دام پيوندي( به مشکل زير بر ميخوريم. فرض کنيد داريم: R1= دانشجوي ST100 درس C200 را انتخاب کرده است. R2= دانشجوي ST100 دانشجوي استاد PR7 است. R3= استاد PR7 درس C200 را تدريس ميکند. اگر مدل دوم را به مدل اول تبديل کنيم نتيجه زير گرفته ميشود که ممکن است درست نباشد: R4= دانشجوي ST100 درس C200 را با استاد PR7 انتخاب کرده است. ST100 ST200 C200 C300 PR7 PR8 در شکل باال درست است که با PR7 در ارتباط است و درس C200 را نيز اخذ کارده اماا ممکان اسات ايان درس را با PR8 اخذ کرده باشد و درس C300 را با PR7 گرفته باشد. 17

مشکالت روش :ER دام چند شاخه يا چتري: اين دام وقتي توليد ميشود که يک نوع موجوديت با ديگار موجوديات ارتبااط 1 به N با مشارکت الزامي داشته باشد. مثال: دانشکده 1 1 گروه آموزشي دانشکده استاد PR1 F10 DE99 دارد دارد PR2 PR3 F19 DE33 DE44 N N گروهآموزشي استاد توضيح: در اين مثال نميتوان گفت استاد PR1 عضو گروه آموزشي DE99 است يا گروه آموزشاي.DE33 اگر اين مدل سازي به صورت زير تغيير کند مشکل برطرف ميشود: گروه آموزشي N 1 دانشکده گروه آموزشي استاد دارد وابسته است PR1 PR2 PR3 DE99 DE33 DE44 F10 F19 1 N استاد دانشکده 18

دام شکاف يا گسل: زماني ايجاد ميشود که ياک موجوديات باا موجوديات ديگار ارتبااط N باه 1 از ناوع الزامي داشته باشد ولي با يک موجوديت ديگر ارتباط 1 به N غير الزامي داشته باشد. استاد N 1 درس استاد گروه آموزشي DE2 PR1 L11 PR2 L22 انتخاب انتخاب DE3 PR3 L33 1 N گروه آموزشي درس سؤال: در اين مثال درس L22 از درسهاي کدام گروه آموزشي است جواب: نميدانيم. اگر مدل باال به صورت زير تغيير کند مشکل حل ميشود: استاد N 1 درس استاد گروه آموزشي DE2 PR1 L11 تدريس عضويت PR2 L22 DE3 PR3 L33 1 N 1 گروه آموزشي دارد N درس 18

EER (Extended ER or Enhanced ER): روش ER کمبودهايي دارد که در مباحث شيئگرايي برخي از روابط بين اشياء در دنياي واقعي را نميتوان باه اين روش مدلسازي کرد به همين خاطر گسترش داده شده و روش EER ايجااد شاده اسات. ايان مادل شابيه کالسها و وراثت در برنامه نويسي شيئگرا است. - رابطه IS-A )گونهاي است از(: براي نمايش ارتباط يک نوع موجوديت با گونههايش از ايان رابطاه اساتفاده ميشود. معموال به صورت کمان يا مثلث درج ميشود. ميتوان به جاي کمان از استفاده کرد. صفات موجودات زنده توسط صفات موجود زنده صفات حيوانات و انسان به ارث ميبرند. حيوان نباتات انسان نکته: يک زير-موجوديت )sub-entity( ميتواند بايش از ياک موجوديات والاد )super-entity( داشاته باشد. رابطه :IS-A-PART-OF ارتباط بين يک شيئ کل است و اشاياء تشاکيل دهناده آن. ياا باه عباارت ديگار ميگوييم يک موجوديت از تعدادي موجوديت جزء تشکيل شده است. ماشين is-a-part-of is-a-part-of is-a-part-of شاسي درب موتور 22

نمودار ER نشان دهنده پايگاه دادههايي اسات کاه قارار اسات طراحاي و پيااده ساازي شاوند بناابراين نماايش Database است در باالترين سطح انتظار. تخصيص: مشخص کردن گونههاي خاص يک شيئ را گويند. به طور مثاال در ماورد موجاود زناده ساه گوناه خاص عبارتند از: انسان حيوان نبات تعميم: عکس عمل تخصيص است يعني با داشتن زير نوعهاي خاص صفات آنها را در يک مجموعاه صافات براي يک ابر موجوديت در نظر ميگيريم. 21

مشهورترين روشهاي مدلسازي داده: مدل دادهاي رابطهاي Model) 1. RDM (Relational Data مدل دادهاي سلسله مراتبي Model) 2. HDM (Hierarchical Data مدل دادهاي شبکهاي Model) 3. NDM (Network Data مدل دادهاي شيئگرا Model) 4. ODM (Object Data مدل دادهاي شيئگرا رابطهاي Model) 5. ORDM (Object Relational Data مدلهاي HDM و NDM از ابتداييترين مدلهاا باوده و باه دليال برخاي مشاکالت از جملاه عادم وضاوح کاربري ديگر کاربرد خاصي ندارد. مدلهاي ODM و ORDM مدلهاي تازه وارد به حساب ميآيند. آشنايي با مدل RDM - اولين بار توسط آقاي CODD در سال 1872 و سپس توسط آقاي C.J.Date مطرح شد. Edgar 'Ted' Codd C.J. Date - اولااين DBS کااه رابطااهاي بااود در اواياال سااال 1882 توسااط شاارکتهاي oracle و IBM مهاامتاارين RDBMS )سيستمهاي مديريت پايگاه داده رابطهاي( عبارتند از: Microsoft محصول شرکت Access و SQL Server و Oracle محصول شرکت RDB و Oracle مفاهيم RDBMS رابطه: رابطه يک مفهوم رياضي است اما از ديدگاه کاربري نمايش جدولي دارد. به هماين خااطر باه RDM ممکن است )Tabular Data Model( TDM نيز گفته شود. 22

عناصر مدل رابطهاي يا جدولي: جدول :)Table( در طراحاي Database باا TDM هار ناوع موجوديات و رابطاه باا جادول نماايش داده ميشود. سطر :)Row( هر نمونه موجوديت و هر نمونه ارتباط با مفهوم سطر نمايش داده ميشود. ستون :)Column( هر صفت به صورت ستونهاي يک جدول نمايش داده ميشود. در طراحي در روش TDM نمودارهاي ER به مجموعهاي از جدولها تبديل ميشود. هر نوع موجوديت مستقل يک جدول را تشکيل ميدهد و روابط M به N نيز يک جادول باه خاود اختصااص ميدهند. مثال: مسأله توليد کننده و قطعه. تعريف رابطه در مدل :RBM با فرض وجاود m مجموعاه از مقاادير توليد کننده S N M 1 قطعه P تهيه وD D 2 و...و Dهار m ياک باا ناوع مشخص )و نه لزوما متمايز( رابطه R تعريف شده روي ميدان m از دو قسمت تشکيل شده است. S S# SName SN1 Staus 90 City C1 SP S# P# P1 City 100-1 Heading )عنوان( -2 Body )بدنه( S2 SN2 20 C2 S2 P2 50 S3 SN3 10 C3 S3 P3 10 مجموعه Heading مجموعهاي است نامدار از اسامي صفات رابطه. مثال: براي مثال توليد کننده و قطعه داريم S (S#, SName, Status, City) P (P#,PName,Color,Weight) SP (S#,P#,City) {<A 1 :V 11 >, <A 2 :V 12 >,..., <A n :V n >} مجموعه Body بدنهاي است از تاپلها: مثال: براي سطر اول جدول S داريم: {<S#:''>, <SName:'SN1'>, <Status:'10'>, <City:C1>} 23

نکته: مجموعه بدنه»متغير در زمان«است يعني در هر لحظه ممکن است صفر يا چندين تاپل )tuple( يا سطر در آن موجود باشد. )مثل بدو تعريف رابطه که اين مجموعه تهي است و هيچ رابطهاي ندارد.( اما مجموعه عنوان»ثابت در زمان«است. يعني اگر صفتي از آن کم يا زياد کنيم از نظر رياضي با رابطه اول متفاوت است. درجه رابطه: به تعداد صفات يک رابطه درجه رابطه گفته ميشود. )در اصاطالح گفتاه ميشاود: کاردينااليتي مجموعه عنوان( درجه 1 2 3 n اصطالح انگليسي Unary Binary Ternary n-ary اصطالح فارسي يگاني دوگاني سهگاني nگاني نکته: به درجه )Degree( در اصطالح arity نيز گفته ميشود. مثال: مدل S در مثال قبل يک مدل چهارگاني است. کارديناليتي رابطه: تعداد تاپلهاي مجموعه بدنه را کارديناليتي رابطه گويند. تناظر بين مفاهيم رابطهاي و جدولي مفاهيم رابطه رابطه تاپل صفت درجه رابطه کارديناليتي رابطه ميدان کليد مفاهيم جدول جدول سطر ستون تعداد ستون تعداد سطرها محدوده مقادير مجاز ستون شناسه نکته 1: جدول صرفا يک امکان است براي نمايش رابطه. نکته 2: در مدل رابطهاي هم موجوديت و هم ارتباط )رابطه( نمايش داده ميشوند. 24

خصوصيات رابطه: 1- رابطه تاپل تکراري ندارد. )مثال دو سطر در جدول دانشجويان با مشخصات مشابه نداريم.( 2- صفات رابطه نظم مکاني ندارند. R (A 1, A 2 ) = R (A 2, A 1 ) S (S#, SName,...) = S (SName, S#,...) 3- تاپلها نظم ندارند. 4- طبق تعيين آقاي کاد صفات رابطه بايد اتوميک )Atomic( باشد. )ساده باشد يعني مرکب نباشد.( 5- تمام صفات تک مقداري هستند. يعني در تقاطع سطر و ستون بايد يک مقدار وجود داشته باشند. تعريف رابطه :Normal رابطهاي است که صفات ساده يا مرکب چناد مقاداري نداشاته باشاد. باه عباارت ديگر مقادير صفات در تاپلهاي مختلف تکرار شونده نباشند. )مثل شماره تلفن( )مدرک نام شماره( Prof در مورد مدرک به مشکل ميخوريم که کدام را در جدول درج کنيم! ليسانس فيزيک ) ليسانس زبان, Ali Prof (P20, فوق مکانيک ليسانس فيزيک ليسانس زبان فوق مکانيک نام مدرک شماره استاد دليل لزوم Normal بودن رابطه: دليل يک چيز است و آن سادگي! - سادگي در نمايش ظاهري رابطه - سادگي دستورات - سادگي در اجراي عمليات در پايگاه داده. رابطه غير :Normal رابطهاي که صفات ساده يا مرکب چند مقداري داشته باشد. به اين رابطه رابطه تودرتاو نيز گفته ميشود. 25

S.K = Super Key C.K = Candidate Key P.K = Primary Key A.K = Alternative Key F.K = Foreign Key Key يا کليد در مدل رابطهاي: انواع کليد: 1- کليد سوپر يا ابر کليد 2- کليد کانديد 3- کليد اصلي 4- کليد بديل 5 -کليد خارجي R (H) = R (A 1, A 2,... A i, A H... A n ) با توجه به اين رابطه کليدهاي مختلف را تعريف ميکنيم. سوپر کليد: هر زير مجموعه از H که يکتايي مقدار داشته باشد. کليد کانديد: هر زير مجموعه از H که دو خاصيت زير را داشته باشد: 1- يکتايي مقدار داشته باشد. 2- کاهش ناپذير باشد. يعني اگر يکي از عناصر اين مجموعه را حذف کنيم ديگر شاهد يکتايي مقادار نباشيم. مثال: در سيستم کتابخانه چنين جدولي خواهيم داشت. Book Member B-M B# BName Author M# MName MAddress B# M# Date در جدول بوک #B کليد کانديد است. نکته: براي يافتن يک سطر خاص از طريق کليد کانديد ميتوان آن را يافت. در جدول B-M ترکيب #B, #M, Date کليد کانديد است. سؤال: آيا ميتوان فقط ترکيب #B و #M را کليد کانديد گرفت خير. چون ممکن است يک عضاو خااص يک کتاب خاص را چندين بار اخذ کرده باشد. سؤال: آيا هر رابطه حداقل يک کليد کانديد دارد بله. زيرا در بدترين حالات باا ترکياب تماام صافات باه H ميرسيم و طبق تعريف رابطه )که هيچ تاپل تکراري نداريم( H يکتايي مقدار دارد. 26

- رابطهاي که در آن خود H کليد کانديد باشد رابطه All-Key يا»تمام کليد«گفته ميشود. - رابطه ممکن است بيش از يک کليد کانديد داشته باشد. کليد اصلي: طراح پايگاه داده بايد يکي از کليدهاي کانديد را به عنوان کلياد اصالي رابطاه انتخااب و معرفاي کند. از کليد اصلي در تمام بخشهاي سيستم براي يافتن سطر مورد نظر استفاده ميشود. سؤال: آيا هر رابطه حتما يک کليد اصلي دارد بله چون حداقل يک کليد کانديد داريم پس حتما يک کلياد اصلي داريم. کليد بديل: هر کليد کانديد غير از کليد اصلي کليد بديل ناميده ميشود. مثل ترکيب #M, Date در جدول B-K اگر هر عضو در هر روز قادر به بردن فقط يک کتاب باشد. کليد خارجي: صفت کانديد باشد. A i )ساده يا مرکب( از R 2 در R 2 کليد خارجي ناميده ميشاود اگار A i در R 1 کلياد به طور مثال: #B در B-M کليد خارجي است. همچنين #M در B-M کليد خارجي است. نکته: کليد خارجي امکان اصلي براي نمايش ارتباط بين موجوديتها است. مثال: صفت #B و #M در رابطه B-M نشان دهنده ارتباط چند به چند»اخذ«بين موجوديات کتااب و عضاو است. 27

حالت اول: دو موجوديت مستقل و ارتباط چند به چند تبديل مدل ER به مدل رابطهاي بررسي حاالت مختلف روابط # St StName Student N اخذ کردن Getting M Course # Co CoName Grade Date مثال: Student (St#, StName,...) C.K Course (Co#, CoName,...) C.K S-C (St#, Co#, Date, Grade) F.K F.K C.K * در اين حالت تعداد رابطه برابر است با 1+n که n تعداد موجوديتهاست. * در نمايش ارتباط بين دو موجوديت کلياد کاندياد رابطاه حاداقل از ترکياب کليادهاي خاارجي باه دسات ميآيد. يعني ممکن است صفت يا صفاتي از ارتباط هم در کليد کانديد به کار رود. حالت دوم: دو موجوديت مستقل و يک ارتباط يک به N: در اين حالت موجوديت طرف 1 را با يک رابطه و موجوديت طرف N و ارتباط را با هم در ياک رابطاه ديگار نمايش ميدهيم.. استاد 1 N عضويت گروه آموزشي DE# PR name #PR. 28

در رابطه دوم کليد کانديد رابطه اول به عنوان کليد خارجي حضور دارد و ارتباط مورد نظر را برقرار ميکند. نکته: کليد کانديد طرف يک را در طرف N نگه ميداريم. DEPT (DE#, Title,...) C.K PROF (Pr#, PrName,..., DE#) C.K F.K DE# Title حالت سوم: دو نوع موجوديت مستقل و ارتباط يک به يک 1 1 مديريت استاد گروه آموزشي Pr # PrName براي موجوديتي که سمت يک ارتباط است يک رابطه تعيين ميکنيم و براي موجوديتي که در سمت مشارکت است. الزامي رابطه است يک رابطه ديگر تعريف خواهيم کرد که کليد کانديد رابطه اول در اين رابطه کلياد خاارجي نکته: اگر رابطه 1 PROF (Pr#, PrName,...) C.K Deft (DE#, Title,..., Pr#) C.K F.K به N خود صفاتي داشت صفات را به رابطهاي که شامل کليد خارجي است اضافه ميکنيم. حالت چهارم: يک نوع موجوديت داريم که با خودش رابطه N به M دارد. مثال: مسأله قطعه و توليد کننده P# PNam e Part شماره قطعه فرعي : MinP# شماره قطعه اصلي MajP#: P-P Part (P#, P name,...) C.K P-P = (MajP#, MinP#, Qty) F.K C.K F.K Qty MajP# MinP# کليد کانديد رابطه دوم حداقل از ترکيب کليدهاي خارجي به دست ميآيد. 28

حالت پنجم: يک نوع موجوديت که با خودش رابطه يک به N دارد. اين حالت با يک رابطه طراحي ميشود. EMPL (E#, EName, E1name, EManager#) (شماره کارمندي مدير) F.K C.K E# Employee يک کارمند توسط يک مدير مديريت ميشود ولي يک مدير چندين کارمند را مديريت ميکند. حالت ششم: 1 N مديريت ارتباط موجوديت قوي با موجوديت ضعيف. معموال ارتباط موجوديت قوي با موجوديت ضعيف 1 به N است. E# نام تاريخ تولد عضو خانوادگي دارد کارمند جنسيت موجوديت ضعيف در اين حالت براي موجوديت قوي يک رابطه: و براي موجوديت ضعيف و ارتباط آن که حالت هفتم: EMPL (E#, EName, ELName, Address, ) C.K ميتواند صفت هم داشته باشد يک رابطه در نظر ميگيريم: MEM (MName, Birthday, Gender, E#) C.K F.K C.K وجود صفت چند مقداري [اعم از ساده يا مرکب] در اين حالت 2 رابطه يکي براي موجوديت يکي براي صرفت چند مقداري در نظر ميگيريم. E A1 An Aj Ai... A2 32

MEM (M#, Mname,...) C.K مثال 1: صفت چند مقداري ساده: يک جدول براي عضو و يک جدول براي Tel در نظر ميگيريم. Tel (TelNumber, Code,..., M#) F.K C.K MEM شماره تلفن تماس عضو مثال 2: صفت مرکب: سمت از سابقه کار کارمند تا حقوق EMP (E#, Ename,...) C.K EMP jobtistory (E#, JobTittle, BDate, EDate,...) F.K C.K نکته: اگر تعداد صفات چند مقداري يک موجوديت n باشد 1+n رابطه بايد طراحي کرد. حالت هشتم: رابطه IS-A اگر يک نوع موجوديت n زير نوع داشته باشد 1+n رابطه طراحي ميشود. EMP (E#, name, Last name,...) C.K NOPRM (title,..., E#) F.K PRM (PrLanquequ, Fee,..., E#) F.K LastName کارمند E# EName سمت نابرنامهساز برنامهساز 31 پايهحقوق زبانبرنامهنويسي...

حالت نهم: IS-A-PART-OF در اين حالت شيئا جزء صفات شيئا کل را به ارث نمي برد. در اين حالت براي موجوديت کل يک رابطه و براي موجوديت جزء نيز يک رابطه تعريف ميکنيم. Car (M#, Model,...) C.K Motor (M#, Mt#,...) C.K Shasi (M#, Sh#,...) C.K M# Model دارد ماشين دارد Mt# شاسي موتور Sh# حالت دهم: ارتباط سلسله مراتبي بين انواع موجوديتها: در اين حالت براي هر موجوديت يک رابطه تعريف ميکنيم. کليد رابطه ترکيب شناساه موجوديات باا شناساه موجوديت پدر آن موجوديت در نظر گرفته ميشود. E1REL (E1#,...) C.K E2REL (E2#, E1#,...) F.K C.K E3REL (E3#, E1#,...) F.K C.K E4REL (E4#, E3#, E1#,...) C.K E5 (E5#, E3#, E1#,...) F.K F.K C.K E2 E2#,... E1#,... E4 E1 E3 E3#,.. E5 E4#,... E5#,... 32

ادامه مفاهيم مدل رابطهاي نمودار ارجاع Diagram( :)Reference همان طور که گفته شده کليد خارجي عامل ارتباط يک رابطه با رابطه ديگر است يعناي باا داشاتن مقادار کلياد خارجي در هر سطر از رابطه R 2 ميتوانيم به يک سطر مشخص در رابطاه R 1 رجاوع کنايم ايان معناا را چناين R 2 نمايش ميدهيم: R 1 و آن را نمودار ارجاع و يا گراف ارجاع ميناميم. Get Book Member به طور مثال در رابطه اخذ در سيستم کتابخانه داريم: مسير ارجاع ميتواند حلقوي )بازگشتي يا چرخشي( باشد. R n R n-1... R 2 R 1 سؤال: در روابط Self-Relation نمودار ارجاع چگونه خواهد بود جواب: درس Lesson پيش نياز 33

قوانين جامعيت در مدل رابطهاي: در هر محيط عملياتي هميشه مجموعهاي از قواعد و محادوديتها )مثال بيشاتر نباودن نماره از عادد 22( وجاود دارند. اگر دادههاي ذخيره شده در پايگاه داده در تمام لحظات اين محدوديتها را رعايت کنند در اين صورت جامعيت پايگاه دادهها تأمين است. هر DBMS بايد جامعيت پايگاه داده را کنترل و تأمين کند. دليل اصلي کنترل جامعيت پايگاه داده چيست چون دادهها مبناي کلي تصميمگيري در سازمان هستند بنابراين هميشه بايد صحيح دقيق و معتبر باشند. انواع قواعد جامعيت: در RM دو رده کلي محدوديت و قواعد وجود دارد: 1- قواعد خاص 2- قواعد عام 1- قواعد خاص: قواعدي هستند که کاربر مجاز تعريف ميکنند. )معموال اين کاربر DBA است( اين قواعد وابسته به يک محيط عملياتي مشخص هستند و خاص آن محيط هستند. مثال: در محيط عملياتي دانشگاه: قاعده 1: نمره بين 2 تا 22 باشد. قاعده 2: يک دانشجو بيشتر از 22 واحد در يک ترم نميتواند اخذ کند. قاعده 3: اخذ يک درس بدون گذراندن پيش نياز ممکن نيست. - - - 2- قواعد عام: وابسته به محيط خاصي نيستند و هر سيستم رابطهاي باياد بتواناد ايان قواعاد را روي DB اعماال کند. ( به اين قاعده Meta Rules هم گفته ميشود( انواع قواعد عام: C 1 C 2 1- قاعده 2- قاعده يا»قاعده جامعيت موجوديتي«Rule] [Entity Integrity يا»قاعده جامعيت کليد خارجي يا ارجاعي«Rule] [Referential Integrity C1: قاعده در مورد کليد اصلي است. طبق اين قاعده هر جز تشکيل دهنده کليد اصلي نميتواند»هيچ مقادار«)NULL( باشد.»هيچ مقدار«يعني ناشناخته تعريف نشده ناموجود و غيرقابل اعمال. دليل توجيح کننده قاعده C1: کلياد اصالي شناساه هار تاپال در رابطاه اسات يعناي عامال تماايز ياک نموناه موجوديت از نمونه ديگر و عامل تمايز خود نميتواند ناشناخته باشد. 34

براي اعمال قاعده Cبايد 1 کليد اصلي را مطابق کد زير به سيستم معرفي کنيم: CREATE TABLE R ( A1 DOMAIN dom1 NOT NULL Primary Key, A2..., A3..., ); قاعده C2: در مورد کليد خارجي است. طبق اين قاعده اگار Ai در R2 کلياد خاارجي باشاد Ai در رابطاه R2 ميتواند نامعلوم يا NULL باشد به شرطي که جز تشکيل دهنده کليد R2 نباشاد. در غيار ايان صاورت بايد حتما مقداري داشته باشد که در R2 وجود دارد. يعني: مقدار کليد خارجي يک رابطه نميتواند در يک رابطه مرجع وجود نداشته باشد. نکته کنکوري: کليد خارجي ميتواند NULL باشد. مثال 1: در محيط کتابخانه در جدول اخذ نميتوان کد کتابي را اخذ کرد که هناوز در جادول Book تعرياف نشده است. مثال 2: R1: S (S#, SName, Status, City) R2: SP (S#, P#, Qty) SN1 5 Saveh P1 10 S2 SN2 10 Tehran S4 P2 زيرا S4 تعريف نشده است 100 S3 SN3 2 Qom دليل توجيح کننده قاعده C2: کليد خارجي عامل ارجاع است از يک نمونه موجوديت باه نموناه موجوديات ديگر. بنابراين نميتوان به نمونه موجوديت ناموجود ارجاع کرد. نکته: در تعريف کليد خارجي به رابطه R2 در مثال قبل»رابطه رجوع کننده«و باه رابطاه R1»رابطاه مرجاع«گفته ميشود. براي اعمال قاعده C 2-1 اوال کليد يا کليدهاي خارجي بايد به سيستم معرفي شوند. ثانيا بايد مشخص شود که در عمل افزودن و حذف يا ويرايش يک تاپل سيستم چگونه عمل کند. مثال در عمل درج چک شود که آيا در رابطه مرجع مقدار کليد خارجي وجود دارد يا خير و يا در عمل حاذف کدام يک از حاالت زير اتفاق بيفتد: روش آبشاري )Cascading( : دراين روش با حذف ياک تاپال از رابطاه مرجاع )ماثال رابطاه s( تماام تاپلهاي رجوع کننده به آن در رابطههاي رجوع کننده نيز حذف ميشوند. 35

-2-3 روش محدوديا مشروط) Restricted (: اگر درخواست شود که تاپلي از رابطه مرجع حاذف شاود ايان حذف تا زمانيکه تاپل هاي رجوع کنناده در رابطاههااي رجاوع کنناده وجاود داشاته باشاد باه تعوياق ميافتد. روش پر کردن با :)Nullifing) NULL کننده NULL ميشود به شرط آنکه قاعده C1 رعايت شود. -4-5 روش مقدار گذاري با مقدار پيشفرض Value( :)Set-To-Default با حذف تاپل مرجع مقدار کليد خارجي در تاپلهااي رجاوع با حذف تاپل مرجع مقدار کليد خارجي در تاپلهاي رجوع کننده به جاي NULL به مقدار اوليه تعريف شاده در شاماي Database تغيير ميکند. روش عدم اقدام Action( :)No نميشود. توجه: اين روشها در عمل Update )ويرايش( نيز قابل در صورت حذف تااپلي از رابطاه مرجاع اقادام ديگاري درخواسات اعمالاند. * بهتر است يک RBMS همه اين روشها را دارا باشد تا طراح متناسب باا کاارش گزيناهي ماورد نظارش را انتخاب کند. مثال از اعمال قاعده وC 1 CREATE TABLE SP ( S# CHAR (6) NOT NULL, P# CHAR(6) NOT NULL, قاعده C2 QTY NUMBER(2) ) CHECK 0 QTY 100, خاص قاعده PRIMARY KEY (S#,P#), قاعده C1 FOREIGN KEY S# REFERENCES S(S#), ON DELETE CASCADE, ON UPDATE CASCADE, FOREIGN KEY P# REFERENCES P(P#), ON DELETE CASCADE, ON UPDATE CASCADE, :C 2 36

عمليات بر روي پايگاه جدولي: براي انجام عملياتي مثل ايجاد و حذف جدول افزودن حذف و ويرايش رکورد و غيره بر روي پايگاه جادولي از زبان اساتاندارد سيساتمهاي رابطاهاي Language) SQL (Structured Query )زباان پرسوجاوي ساختيافته( استفاده ميشود. که با اين زبان در آزمايشگاه پايگاهدادهها آشنا خواهيد شد. عمليات بر روي پايگاه رابطهاي: جبر رابطهاي Relational Algebra به مجموعهاي از قوانين و عملگرها که امکان پردازش رابطهها را فراهم ميکنند»جبر رابطهاي«ميگويند. در جبر رابطهاي حاصل اجراي هر ياک از عملگرهاا خاود ياک رابطاه اسات. يعناي ورودي و خروجاي تماام عملگرها يک رابطه است. خاصيت بسته بودن: اين واقعيت که خروجي حاصل از هر عمل رابطهاي رابطه است خاصيت بسته بودن يا بستار يا Closure ناميده ميشود براي نمونه اجتماع دو رابطه -1-2 -3-4 عملگرها در جبر رابطهاي به 4 دسته زير تقسيم ميشوند. )جدول( يک عملگرهاي ساده شامل: عملگر گزينش )σ, SELECT, RESTRICT عملگرهاي مجموعهاي شامل: اشتراک ) ( تفاضل )-( اجتماع ) ) و( رابطه )جدول( است.. پرتو )تصوير Project )π, عملگرهاي پيوند شامل: ضرب دکارتي ) ( پيوند طبيعي ) ( نيم پيوند) ( پيوند شرطي) θ عملگرهاي ديگر مثل نامگذاري )ρ( تقسيم) ( و جايگزيني ) ( توجه: مثالهاي اين بخش بر اساس جداول S و P و SP زير طراحي شده است. فراپيوند و( S S# S2 S3 SName City ساوه ساوه تبريز کاوه صفا فن آور SP S# P# P1 P2 Qty 322 222 P P# P1 P2 P3 P4 Color Type City تهران تبريز ساوه شيراز آهن مس برنج آهن قرمز سبز آبي قرمز 37 S2 S2 S3 P3 P1 P2 P3 422 322 422 222

عملگر گزينش: اين عملگر سطرهايي از جدول را بر ميگرداند که با يک شرط مطابقت دارند. در کتب مختلف از نمادهاي و SELECT و RESTRICT استفاده ميشود. مثال: تاپلهايي از رابطه S را مشخص کنيد که شهر آنها ساوه باشد. (S) "ساوه" = city :الف خروجي کاوه ساوه صفا ساوه "ساوه" = city SELECT S WHERE :ب "ساوه" = city RESTRICT S WHERE :ج S2 (R) conds :الف Conditions ساختار کلي: ممکن است 1 يا چند شرط باشد SELECT R WHERE conds :ب RESTRICT R WHERE conds :ج مثال: تاپلهايي را از رابطه SP مشخص کنيد که S#= و P#=P1 باشد. جواب: خروجي σs#= ^ P#=P1(SP) SELECT SP WHERE S#= AND P#=P1 P1 300 * به جاي عملگر = ميتوان از > => < =< >< در صورت نياز استفاده کرد. مثال: تاپل هايي از جدول SP را برگردانيد که قطعه P2 را توليد کرده باشند و به جز شرکت : خروجي σs# s1^p#=p2(sp) SELECT SP WHERE S# AND P#=P2 S2 P2 400 S3 P2 200 مثال: تاپلهايي از جدول SP را برگردانيد که قطعه P3 را بيش از 522 تا توليد کرده باشند! خروجي نداريم صفر است. σp#=p3^ Qty>500 (SP) 38

عملگر پرتو: در خروجي عملگار پرتاو ساطرهاي تکاراري حاذف مايشاوند. عملگار پرتاو هايچ شارطي را نميپذيرد. براي اين عملگر از نمادهاي يا PROJECT استفاده ميشود. ستونهاي مورد نظر زير عالمت نوشته شده و نام جدول جلوي عالمت در پرانتز. مثال: ستون شهر را از جدول S نمايش دهيد. نکته: شهرهاي تکراري حذف ميشود. خروجي (S) city :الف [City] PROJECT S :ب PROJECT S OVER City :ج City ساوه تبريز Qty, P# (SP) مثال: ستونهاي #P, Qty را از جدول SP نمايش دهيد. خروجي P# P1 P2 P3 Qty 300 200 400 مثال: شماره توليد کنندگان و شماره قطعات توليدي آنها را چاپ کنيد به شرط آن که قعطه توليدي آنهاا بيشاتر S#, P# ( Qty 200 (SP)) SName ( City = "ساوه" (S)) S# S2 از 222 عدد باشد. خروجي P# P1 P2 مثال: نام شرکتهايي را برگردانيد که در شهر ساوه قرار دارند. 38

مثال: کد قطعاتي را برگردانيد که از نوع آهن باشند و در شيراز توليد شده باشند. P# ( City = 'شيراز' ^ Type = 'آهن' (P)) PROJECT (SELECT P WHERE City = 'شيراز' AND Type = 'آهن' ) [P#] عملگرهاي و و - اجتماع : اجتماع دو رابطه رابطهاي است که تاپلهايش در يک يا هر دو رابطه وجود دارد. يعني رکوردهاي هر دو جدول با هم ترکيب شده و تاپلهاي تکراري يک بار نوشته ميشوند. R = R1 R2 R = R1 UNION R2 R 1 R 2 اشتراک : اشتراک دو رابطه رابطهاي است که تاپل هايش در هر دو رابطه وجود داشته باشد. به صورت زير نمايش داده ميشود: R = R1 R2 R = R1 INTERSECT R2 R 1 R 2 R 1 R 2 تفاضل: تفاضل دو رابطه رابطهاي است که تاپلهايش در رابطه اول موجاود اسات ولاي در رابطاه دوم وجاود ندارد. R = R1 - R2 R = R1 MINUS R2 R 1 R 2 R 1 R 2 R 1 - R 2 city (S) city (P) city (S) city (P) city (P) - city (S) مثال: ليست شهرهاي مربوط به تهيه کنندگان و قطعات را بدهيد. خروجي: ساوه تهران شيراز تبريز مثال: ليست شهرهايي که بين جدول قطعات و تهيه کنندگان مشترک اند را بدهيد. خروجي: ساوه و تبريز مثال: اسامي شهرهاي قطعاتي را بدهيد که در رابطه S وجود ندارد. خروجي: تهران و شيراز 42

چند مثال کنکوري: مثال: رابطه S و SL به صورت زير مفروض اند. حاصل پرسوجوي زير چيست S (S#, Sname) SL (S#, L#, Term#, Grade) SL [S#] Minus (S WHERE Grade 20) [S#] # Sهايي که نمره مخالف 22 دارند. ليست # Sها در جدول SL الف: شماره دانشجوياني که حداقل يک نمره بيست دارند. ب: شماره دانشجوياني که تمام نمرههاي آنها بيست است. ج: شماره دانشجوياني که نمره بيست ندارند. د: شماره دانشجوياني که حداکثر يک نمره بيست دارند. مثال: اگر A و B دو رابطه با عنوان يکسان باشند عبارت زير معادل کدام رابطه است A - (A - B) (B - (B - A)) A INTERSECT B الف: ب: A DEVIDED BY B ج: A JOIN B د: A MINUS B چند نکته کنکوري: 1- در تفاضل )-( خاصيت شرکت پذيري نداريم. 2- روابااط ورودي بااراي عملگرهاااي و و بايااد همتااا Arity( )Same باشااند. يعنااي تعااداد صفتهاي 2 رابطاه در تعاداد ساتونهاي 2 جادول مسااوي باشاند همچناين صافتها باه ترتياب داراي دامنههاي يکسان باشد. 3- عملگرهاي اجتماع و اشتراک خاصيت جابه جايي دارند ولي تفاضل اين خاصيت را ندارد. A B B A 41

عملگرهاي پيوند يا الحاق )JOIN( : اين عملگرها پرکابرد و قدرتمند ميباشند ولي گاهي اوقات باعث مصرف و زماان زياادي مايگاردد لاذا موقاع استفاده از آنها بايد دقت کافي را داشت. ضرب دکارتي ) (: گران ترين عملگرهاي عملياتي بانک اطالعاتي که زمان و فضاي زيادي ميخواهد. بنابراين تا حد امکان بايد از آنها اجتناب کرد. حاصلضرب 2 رابطه رابطهاي که تاپل هايش از اتصال هر يک از تاپلهاي دو رابطه بدست مايآياد باه عباارت ديگار در R1 R2 هار ساطر R1 را قبال از تماام ساطرهاي R2 قارار ميدهيم. نحوه نمايش R = R1 R2 مثال: حاصلضرب دکارتي 2 رابطه S و P را بنويسيد. S# S2 S2 S2 S2 S3 S3 S3 S3 Sname کاوه کاوه کاوه کاوه صفا صفا صفا صفا فن آور فن آور فن آور فن آور S. city ساوه ساوه ساوه ساوه ساوه ساوه ساوه ساوه تبريز تبريز تبريز تبريز P# Color قرمز سبز آبي قرمز قرمز سبز آبي قرمز قرمز سبز آبي قرمز Type P. city تهران تبريز ساوه شيراز تهران تبريز ساوه شيراز تهران تبريز ساوه شيراز آهن مس برنج آهن آهن مس برنج آهن آهن مس برنج آهن P1 P2 P3 P4 P1 P2 P3 P4 P1 P2 P3 P4 مثال: اگر جدول A داراي m سطر و N ستون و B داراي p سطر و q ستون باشد آنگاه A B چناد ساطر و چند ستون خواهد داشت. سطر = P M ستون = q N + نکته: در رياضاات مجموعاهها خاصايت جاباه جاايي نادارد يعناي B A A B اسات ولاي در جبار رابطهاي چون ترتيب ستونها مهم نيست خاصيت جابجايي دارد. نکته: ضرب دکارتي خاصيت شرکت پذيري دارد. 42

عملگر پيوند طبيعي : اين عملگر 2 رابطه را بر مبناي يک يا چند فيلد مشترک به هم پيوند ميدهد و رکوردهايي از جادول هاايي کاه مقدارهايي از دو فيلد مشترک يکسان است به هم ميچسبند. باه عباارت ديگار فقاط ساطرهايي از دو جادول را کنار هم قرار ميدهد که ستونهاي هم نام دو جدول مقادير مساوي داشته باشد ستونهاي هم نام فقط يکباار در خروجي ظاهر ميشود. مثال: خروجي S SP چيست S# S2 S2 S3 Sname City ساوه ساوه ساوه ساوه ساوه تبريز کاوه کاوه کاوه صفا صفا آور فن P# P1 P2 P3 P1 P2 P3 Qty 322 222 422 322 422 222 توضيح: ستون مشترک بين Sو SP فيلد S# است پس هر سطر جدول S را برداشاته باين ساطرهايي از جادول 43 S# قرار ميدهيم که S# آنها با هم برابر باشد. نکته: پيوند طبيعي خاصيت شرکت پذيري و جابه جايي دارد. نکته: اگر دو جدول فيلد هم نام داشته باشند R1 join R2 يعني تبديل به R1 R2 ميشود. نکته: اگر تمام فيلدهاي دو جدول يکسان باشند آنگاه R1 join R2 معادل R1 R2 نکته: پيوند طبيعي زمان و فضاي کمتري نسبت به ضرب دکارتي ميگيرد. تمرين: خروجي S P را حساب کنيد. اسامي تهيه کنندگان قطعه P2 را ليست کنيد. خروجي عملگر جايگزين : چيست اگر دستوري طوالني باشد با اين عملگر مقداري از دستور در يک متغير موقتي ذخيره ميشاود تاا بعادا بتاوان از آن در خطوط بعد استفاده کرد. مثال: اسامي تهيه کنندگان قطعه P2 را ليست کنيد. sname ( P# = P2 (S SP) ) 1. S join SP Giving temp1 2. select temp1 where P#="P2" Giving temp2 3. project temp2 [sname] #S S3 S

با هم ترکيب ميکنيم: Project (select (S join SP) where P#="P2")[sname] Giving اساتفاده شاده اسات باراي نماايش از temp يک متغير موقتي است کاه در ايان جاا از Temp استفاده ميکنند که نوع نمايش آن به صورت زير است: 1. tmep1 S SP 2. temp2 P# = "P2" (temp1) sname (temp2) sname [ S# ( P# = "P2" (SP) ) S] Temp1 P# = "P2" (SP) Temp2 S# (temp1) Temp3 temp2 S عملگر پيوند شرطي: همان ضرب دکارتي با اين تفاوت که شرط بر روي آن اعمال ميشاود باه صاورت X نمايش داده ميشود که شرطها به جاي مينشيند. مثال: خروجي دستور مقابل چيست عملگر نيم پيوند يا شبه الحاق: SX S.city P.city P مشابه پيوند طبيعي است اما فقط ستونهاي جدول اول را نشان ميدهد و نحوه نمايش آن با عالمت که باه آن semijoin مثال: مشخصات قطعاتي را ليست کنيد که در ساوه ساخته شده و تعداد آنها از 222 بيشتر باشد. خروجي: آبي برنج ساوه Qty 200 (SP) city = "ساوه" (P) 44 P3 نکته: عملگر پيوند خاصيت جابه جايي ندارد. يعني A B B A ليست ميشود. مثال: مشخصات تهيه کنندگاني را بدهيد که قطعه P2 را توليد کرده اند. خروجي: عملگر تقسيم يا ) يا )Divide By چون هميشه ساتونهاي جادول اول S P#="P2" (SP) S# Sname City اگر R1 و R2 به صورت زير باشد. ساوه ساوه تبريز کاوه صفا فنآور S2 S3

R1 S# S2 S2 S3 S4 S4 S4 P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P5 P6 R2 P# P1 مثال: نتيجه R1 R2 جواب: S# S2 توضيح: در حقيقت به سادگي ليست توليدکنندگاني را داريم که قطعه P1 را توليد کرده اند. مثال: ليست کد تهيه کنندگاني را نمايش دهيد که تمام قطعات را تولياد کارده باشاند. )باا توجاه باه R2 و R1 مسأله قبلي( در اينجا تمام قطعات P را توليد کرده است (P ) ) R1 ( P# تمرين: اسامي تهيه کنندگاني را بياوريد که قطعه P2 را توليد نمي کنند. تمرين: اسامي تهيه کنندگاني را بياوريد که حداقل يک قطعه قرمز رنگ را تهيه کرده اند. تمرين: اسامي تهيه کنندگاني را بياوريد که تمام قطعات را تهيه ميکنند. الف: ) sname [S ( P# P2 (SP ]) چون همه شرکتها P2 را توليد کردند جدول تهي است. :ب )] (P SP) "قرمز" = color sname [S ( :ج (P)]] [S [ P#,S# (SP) PE 45

مقدمات نرمال سازي روابط: تعريف آنومالي :)Anomaly( به معني غير متعارف و غير معمول است. هرگاه در يک رابطه مشاکلي غيار عادي در درج يا حذف يا در update کردن اطالعات وجود داشاته باشاد در اصاطالح گفتاه مايشاود رابطاه آنومالي دارد. به طور مثال مشکالتي از قبيل: 1- عدم امکان انجام يک عمل که منطقا قابل انجام باشد. 46 2- بروز پيامد بد پس از انجام يک عمل 3- بروز فزون کاري در سيستم در انجام يک عمل اگر يک رابطه داراي چنين مشکالتي باشد بايد در اصطالح نرمال تر شود. در مبحث نرمال تر سازي رابطه به مفاهيمي از تئوري وابستگي تابعي نياز داريم. بنابراين در ابتدا با برخاي از ايان مفاهيم آشنا ميشويم. وابستگي تابعي :)FD( پس فرض ميکنيم که R يک رابطه و B و A دو زير مجموعه دلخواه از صافات R باشد. در اين صورت ميگوييم B با A وابستگي تابعي دارد اگر و فقط اگار باه ازاي هار مقادار A فقاط ياک مقدار B متناظر باشد. ممکن است گفته شود صفت A صفت B را تعيين ميکند و نشاان داده مايشاود باه ايان صورت A B مثال: در اين مثال نام تابعي از شماره است. ولي صفت فاميلي تابعي از نام نيست. داليل: در مورد اول چون به ازاي 121 فقط يک نام و به ازاي 122 نيز فقط يک نام وجود دارد. اما در مورد دوم به ازاي علي بيش از 1 فاميلي وجود دارد. مثال: در جدول S هر يک از صفات Sname و city با صافت S# وابساتگي تاابعي دارد. چاون باه ازاي هار S.S# S.Sname S.S# S.City مقدار S# فقط يک مقدار از Sname و city متناظر است. S.S# (S.Sname, S.City) تمرين: وابستگيهاي تابعي مربوط به جدول P را بنويسيد. نام خانوادگي حسيني کريمي نام علي علي شماره 121 122 P# color, type, city Color type City P# City type

City color Type color نکته: واضح است که هر صفت که کليد کانديد و بويژه کليد اصلي باشد با تماام ساتونهاي جادول ياا صافات وابستگي تابعي دارد چون کليد کانديد يکتايي مقدار دارد. نکته: در A B به سمت چپ عبارت دترمينان و به سمت راست عبارت )وابسته( گفته شود. نکته: اگر A B لزوما B تعيين ميکند A را درست نيست. وابستگي تابعي کامل: در وابستگي A B را اگر A را ترکيبي از چند صفت بگيريم مثال Sname(,#S( در رابطه S اگر B با هيچ کدام از زير مجموعههاي A وابستگي تابعي نداشته باشد ميگوييم B با A وابساتگي تابعي کامل دارد. S#, Sname city مثال: در رابطه S صفت city با صفت مرکب Sname و S# وابستگي تابعي ندارد. يعني ولي بستگي تابعي کامل نيست. چون S# با city وابستگي تابعي دارد. يعناي يکاي از زيار مجموعاههاي S# و Sname وابستگي تابعي دارد. مثال: در مثال SP صفت Qty با صفات مرکب )p #s#(, وابستگي تابعي کامل دارد. چون هيچ کدام از زيار مجموعهها با Qty وابستگي تابعي ندارند. نمودار وابستگي: براي نمايش وابساتگيهاي تاابعي ياک باناک از نماوداري باه ناام FDDigram ياا نماودار وابستگي تابعي استفاده ميشود. در اين نمودار صفات در مستطيل قرار ميگيرند. و يک فلش از آنها به هر ياک از صفات وابسته وصل ميشوند. S# Sname City P# Pname color type S# P# Qty city وابستگي تابعي بديهي :)tririal( اگر در رابطه R,,A),B C...( صفت B زير مجموعهاي از صفت A باشد در اين صورت A B را ياک وابستگي تابعي بديهي است. مثال: Sname( S#, Sname) دارد. 47

دقت کنيد که وابستگيهاي تابعي بديهي در مورد نظر طراح نيستند. بلکه طراح بايد مجموعه وابستگيهاي مهام بين صفات راشناسايي کند. گاهي اوقات بعضي از وابستگيها مخفي بوده و ممکن است در نگاه اول طراح آنهاا را نبيند. لذا بايد بوسيله يک روش سيستماتيک وابستگيهاي ديگر را کشف کنيم. قواعد استنتاج آرمسترانگ: طبق کشف و بيان شخصي به اين نام اگر,A,B C زير مجموعاه هاايي از صافات If B A A B اگر B زر مجموعه A بود آنگاه A B C, If A B AC BC.اگر, Cيک A B صفت باشد. آنگاه AC BC.را If AC BC AC B, AC C if A B, B C A C 48 رابطه R باشند. قواعد زير برقرارند: 1- انعکاس يا بازتاب: 2- بسط پذيري: 3- انتقال يا تعدي: هر چند قواعد فوق براي استنتاج تمام وابستگيها کامل بود اعمال آنها کار مشکلي بود. بناابراين بعادها ديگاران قواعد ديگري را بيان کردند. If If If A B, A C A BC A BC A C, A B A B, C D AC BD union: decomposition: 4- اجتماع يا 5- تجزيه 6- ترکيب: 7- خود تعيين: 8- شبه تعدي: A B If If If A B, BC D AC D A B, AB C A C A B, C D AV (C-B) BD -8 12- اتحاد کلي يا يگانگي عمومي: تعريف بستار: هر رابطهاي يک مجمعه از وابستگي تابعي دارد. اگر اين مجموعه )يعني مجموعه وابساتگيهاي تابعي يک رابطه(را F بناميم ممکن است مجموعهاي ديگر از وابستگيهاي وابستگيهاي موجود در F اساتنتاج + شود. مجموعه تمام FDهايي که از FDهاي موجود در F قابل اساتنتاج هساتند را بساتار F ماينااميم. و باا F نمايش ميدهيم. مثال: فرمول زير را اثبات کنيد. A B, AB C A C A B A AB A AB, AB C A C

F= {A BC, A E, CD EF} مثال: فرض کنيد رابطه R با صفات FDهاي,,B,C,D,E F زير موجودند. A BC A B, A C :قانون 5 A C AD CD :قانون 2 CD EF CD E, CD F :قانون 5 AD CD, CD F AD F :قانون 3 آيا رابطه Ad F درست است. توجه کنيد که اگر اين باشاد A BC در ايان صاورت A,B A C اماا اگار AC C را نماي توان نتيجه گرفت A C, B C را. مثال: اگر مجموعه وابستگيهاي زير در رابطه R( (A,B,,C,D,E,F G مفروض باشد آنگاه کدام ياک {A B, CD F, B D, B C, Be G, G F, AG B} F= {A D, CD B, AD C} A CD, CD B C B A D, AD C A C A C, A D A CD از وابستگيهاي زير را ميتوان نتيجه گرفت الف: B G ب: G B ج: G D د: A F تمرين: از مجموعه FD زير کدام رابطه را نمي توان اثبات کرد. الف: C D ب: A B ج: A C د: A CD کدام گزينه معدال مجموعه زير است: ا, D {(x,y,z) A,B,C,D, A B, x y} الف: XA BY({ }x,y,z) A,B,C,D, ب: x y({ }x,y) A,C,D, A B, ج: x y({ }y,z) A,C,D, A B, د: x y({ }x,z) A,C,D, A B, 48

نکته: اگر در يک قسمت گزينهها طوري بود که باياد گزيناهها تاک تاک بررساي گردناد از گزيناههاي ج و د شروع کنيد. تبديل مجموعه وابستگيها به مجموعههاي بهينه: با اعمال قواعد آرمسترانگ وابستگيهاي زيادي به وجود ميآيد که تعادادي از آن اضاافه و تکاراري اسات در ادامه بروشي براي حذف اين گونه وابستگيهاي زائد و رسيدن به مجموعه وابسته بهينه ارائه ميکند. قواعد سه گانه براي تبديل يک مجموعه وابستگي به مجموعه بهينه: 1- وابستگيهاي تکراري و اضافه حذف شود. 2- سمت راست هر وابستگي فقط يک صفت + را تغيير نمي دهد از سمت چپ حذف شود. 3- هر صفتي که E مثال: در بانک اطالعاتي زير مجموعه وابستگي بهينه را بدست آوريد. R= {U, V, W, X, Y, Z} F= {U XY, X Y, XY ZV} جواب مثال قبل: u xy u x, u y u xy, xy zv u zv u zv u z, u v xy zv xy z, xy v F + = {x y, u x, x y, u z, x z, u v, x v} opt x y, xy z x z x y, xy zv x zv Fmin= {x y, u x, x z, z v} x zv x z, x v F + = {x y, u x, u y, u z, x z, u v, x y, x v} نکته: با توجه به اين کاه وابساتگيهاي u v, u y, u z از طرياق ديگار وابساتگيها بدسات مايآيناد ميتوان آنها را نيز حذف کرد. مثال: مجموعه وابستگي بهينه مجموعه وابستگيهاي زير را بدست آوريد. A (B, C) A D K C B D A K (B, C) D A (B,C) A B, A C A B, B D A D A K, K C A C F + optm = {A B, A C, A D, A K, K G, B D} F + = {A B, A K, K C, B D} min 52

نمودار وابستگيهاي اوليه و min را رسم کنيد. اوليه min A B K A B C C K تمرين: اگر =R[ [s,t,u,v,w و =F[ [s t, v sw, t u وابستگي بهينه را بدست آوريد. s t, t u s u v sw v s, v w v s, s u v u v s, s t v t F + optm = {s t, t u, s u, v s, v w, v u, v t} F + = {s t, t u, v s, v w, v t} min نحوه بدست آوردن کليد کانديد: همانطور که گفته شد تمام صفات يک رابطه با صفت کلياد وابساتگي تاابعي دارند. + با استفاده از قواعد زير ميتوان کليد کانديد را شناسايي کرد. پس از بهينه کردن F قاعده 1: حرکت کليد کانديد شامل مجموعه از صفت هايي است که در سمت چپ پيکانها ميآيد. قاعده 2: کليد کانديد بايد کمينه باشد. يعني زير مجموعهاي از آن خاصيت کليدي نداشته باشد. اگر w و s به عنوان کليد کانديد در نظر گرفته شود در حالي که خود s حالت کليدي داشته باشد ديگار مجموعاه sw کليد کانديد به حساب نمي آيند. قاعده 3: ممکن است چند کليد کانديد وجود داشته باشد. قاعده 4: کليدهاي کانديد ممکن است در يک يا چند صفت مشترک داشته باشند. + در مثال قبل در F optm در مثال قبل چون v تمام صفات را تعيين ميکند کليد کانديد است. مثال: کدام گزينه کليد کانديد جدولي با 5 ستون ABCDE است با توجه به وابستگيهاي زيار کلياد کاندياد را پيدا کنيد. D {A B, C, B D, D A} 51 D )D, E( )1 )A, E( )2 )A, D( )3 )A,,D, E( )4

اگر يکي از صفات در هيچ يک از وابستگيهاي کانديد است. A B, B D A D B D, D A B A A BC A B, A C تابعي شرکت نکرده بود حتما مي تواند يکاي از اعضااي کلياد نکته: اگر ليست صفات در متن سؤال آمده بود به متن سؤال آمده بود دقت کافي شود. مثال: در بانک زير کليد کانديد کدام است R= {A, B, C, D, E, H} F= { A B, B C, D E, H A} A B, C B C C D E E H C, B, A HD Ce, BE, EA HD C, B, A, E مجموعاه روش هاايي کاه در طراحاي باناک اطالعااتي جهات کااهش EH -1 HD -2 ABD -3 ADH -4 نرماال ساازي: )Normalization( افزونگي اطالعات آنوماليها استفاده ميشوند و طبق آنها روابط بين موجوديتها کنترل ميشوند نرماال ساازي گفته ميشود. در حقيقت هدف نرمال سازي 2 چيز است. minimizing redundancy -1...,minimizing the insertion, deletion -2 براي مثال فرض کنيد يکي سوال کناد چارا باياد باراي جادولهاي SP و S و P ساه جادول جداگاناه در نظار بگيريم. براي پاسخ به اين سوال بايد همه اطالعات را در يک جدول در نظر بگيريم. A B, B C A C H A, A C H C H A, A B A B ترکيب کنيم S# Sname کاوه S.city ساوه P# P1 Color قرمز type آهن p. city تهران Qty 300 52

S2 S2 S3 P2 P3 P1 P2 P3 تبريز ساوه تهران تبريز تبريز مس برنج آهن مس مس سبز آبي قرمز سبز سبز ساوه ساوه ساوه ساوه تبريز کاوه کاوه صفا صفا فن آور 200 400 300 400 200 در اين صورت همانطور که ميبينيد افزونگي داده داريم. نکته: در پايگاه داده رابطهاي تنها افزونگي و تکرار داده که داريم و راهي جز آن نيست در مورد کليد اصلي است که در جدول ديگري به عنوان کليد خارجي عنوان ميشود. تکرارهاي بيش از کليد خارجي افزودگي داده ناميده ميشود. سطوح نرمال سازي: روند نرمال سازي که در سال 1872 توسط آقاي کاد براي اولين بار ارائه شد شامل يکسري تست بود تا مشخص کند آيا يک رابطه به فرم نرمال رسيده است. فرم نرمال يع ين حالت تجزيه شده جداول به طوريکه کمترين افزونگي انومال را داشته باشد. کاد تا 3 سطح نرمال سازي معرفي کرد و بعدها طراحان ديگر ستوني به اينها اضافه کردند تاکنون اين صورتهاي نرمال معرفي شده اند. First normal form 1 NF Second normal form 2 NF Third normal form 3 NF Boyce/GDD normal form BCNF Fourth normal form 4 NF Fifth normal form 5 NF Domain key normal form DKNF 1 NF 2 NF 3 NF BCNF 4 NF 5 NF DKNF سطوح نرمالسازي در عمل: هر چند با ارائه سطوح نرمالسازي پايگاه دادهه يا امروز بسيار بهينه تر از پايگاه دادهه يا گذشتهاند اما طراحان و کاربران بيش از سطوح فعلي را قابل درک نميدانند. و در عمل نرمال سازي بيش از سطوح BCNF و NF 4 و... کاربرد ندارد. 53

نکته: ممکن است يک رابطه نرمال باشد يا نباشد. اگر نرمال باشد حداقل NF 1 است. نکته: هر سطح نسبت به سطح بااليي خود نرمال تر است. يع ين NFو 1 NF 2 را موفقيت طي کرده است. نکته: در کل نرمال سازي يع ين اگر يک رابطه در سطح NF 3 باشد حتما سطوح پيروي از يکسري فرمهاي نرمال که منجر به تجزيه جداول ميشود. فرم :NF 1 اگر در يک رابطه يا جدول صفت ترکيبي نداشته باشيم آن رابطه در سطح NF 1 است. به طور مثال اگر جدولي شامل فيلد آدرس باشد و خود فيلد آدرس از فيلدهاي کوچکتري مثل نام استان و نام شهر و... تشکيل شده باشد جدول مورد نظر NF 1 است. دليل ديگري يک رابطه را غير NF 1 ميکنداين است که يک فيلد با کليدهاي اصلي رابطه وابستگي تابعي کامل نداشه باشد. تعريف صفت عمده :Prime ATTR صفتي است که کليد اصلي يا جز از کليد اصلي باشد. فرم :NF2 رابطه R در حالت فرم دوم نرمال است اگر )اوال NF1 باشد و ثانيا ( هر صفت غير کليد با کليد اصلي رابطه R وابستگي تابعي کامل داشته باشد. مثال: فرض کنيد جدول S و SP را يک جدول در نظر بگيريم. S S2 S2 S3 status 20 20 20 10 10 10 city C2 C2 C2 C3 C3 C3 P P1 P2 P3 P1 P2 P3 Qty 300 200 400 100 200 200 در اين جدول کليد اصلي ترکيب P و S است. درست است که اين به خوبي City را تعي ني نيز به تنهايي ميتوان City را تعيين کند. يع ين ميکند اما S City که يک صفت غير کليد است با کليد اصلي رابطه وابستگي تابعي کامل ندارد. وجود اين مشکل باعث ايجاد آنرمالي هايي در درج و افزونگي دادهها ميشود. براي رفع اين مشکل جدول به دو جدول SP و S تجزيه ميکنيم. S S S2 S3 status 20 10 10 city C2 C3 C3 P S S2 S2 S3 P P1 P2 P3 P1 P2 P3 Qty 300 200 400 100 200 200 54

فرم :NF3 رابطه A در فرم NF3 است اگر )اوال در فرم NF2 باشد و ثانيا ( هيچ صفت غير کليد از R با R وابستگي با واسطه يا انتقالي نداشته باشد. تعريف وابستگي با واسطه انتقالي: اگر صفت B از رابطه R با صفت A از همين رابطه وابستگي A B C تابعي داشته باشد و صفت C از اين رابطه با صفت B در اين رابطه وابستگي تابعي داشته باشد )و A با B وابستگي تابعي نداشته باشد( در اين صورت گفته ميشود C با A وابستگي انتقالي يا با واسطه دارد. مثال: به جدول P دقت کنيد. اين در سطح NF3 status P PName P1 P2 P3 P4 P5 نيست چون فيلد غير کليد PN1 PN2 PN1 PN2 PN3 color weight Red 100 Blue 200 Blue 100 Blue 200 Red 100 در مثال قبل بدست آمد در سطح NF3 city C1 C2 C3 C1 C2 است اما جدول S وابسته به فيلد غير کليد است. )يع ين چون فقط P بقيه را تعي ني Status city را تعي ني ميکند.( ميکند و بقيه اصال همديگر را تعيين نمي کنند. براي رفع اين مشکل ميتوان جدول S را به دو جدول تبديل کرد. S S2 S3 S4 S5 S (S, city) city C2 C3 C3 C2 C1 CS (city, status) city status C1 30 C2 20 C3 10 نکاتي در مورد تجزيه رابطه: -1 تجزيه مطلوب: تجزيهاي که در آن با پيوند رابطههاي حاصل از تجزيه همان محتواي اطالعاتي رابطه اوليه بدست آيد و اطالعات زايد و ناموجود در رابطه اول پديد نيايد و همچنين تمام وابستگيهاي تابعي رابطه اوليه محفوظ بماند. تجزيه مطلوب است. 55

2- بر اساس ضوابط رسانن Ressanen اگر در رابطه )RCABC( اگر رابطه A B و B C در اين صورت تجزيه مطلوب به صورت زير است. )R (A,B,C) R1 (A,B) R2(B,C 3- قضيه :heath اگر با توجه به اين رابطه A,B,C)R( A B آنگاه ميتوان R را به هر رابطه تجزيه کرد )R1 A,B)= و )R2 A,C)= و اين تجزيه مطلوب است )البته اگر ضوابط رساني برقرار نباشد.( الگوريتمهاي تبديل NF1 به NF2 و NF2 به :NF3 مثال: رابطه ABCDEFG)=R( با کليد اصلي BCD با مجموعه وابستگيهاي زير مفروض است FD= BCD E, BCD B, BCD F, BD A, F G, E F, C E در صورت تبديل آن به NF3 چند رابطهايجاد خواهد شد ب( 4 الف( 6 ج( 3 براي تبديل NF1 به NF2 به صورت زير عمل ميکنيم. د( 5 1- هر بخش از کليد اصلي را که صفت وابسته دارد با آن صفتها کنار هم قرار ميدهيم. 2- کل کليد اص يل 3- ساير وابستگيها را ترسيم ميکنيم. را با صفتهاي باقيمانده کنار هم قرار ميدهيم. اگر وابستگي به بخشي از کليد به صورت تو در تو بود الگوريتم فوق بايد تکرار شود. جواب: در مورد مثال قبل فرم NF1 به صورت زير است. BCD E F A G در حقيقت هيچ صفتي نبايد به قسمتي از کليد اصلي وابسته باشد. در سطح NF2 داريم: B D A C E F G سپس الگوريتم جدول NF2 به NF3 تبديل ميکنيم. الگوريتم تبديل جدول NF2 به NF3 به صورت زير است. 1- صفت هايي را که وابستگي انتقالي ايجاد کرده اند با وابستگي آنها کنار هم قرار ميدهيم. 2- کليد اصلي را با صفتهاي باقيمانده کنار هم قرار ميدهيم. 3- صفتهاي کليدي را به عنوان کليد خارجي را در رابطه دوم تکرار ميکنيم. BD A C E E F F G 56

مثال: با نرمال سازي رابطه R تا سطح NF3 چند جدول به جا ميماند R (A, B, C, D, E, F, G, H, I) FD= BC A, B G, BCD I, G H, E I, BCD E, BCD A BCD I A G H E تبديل NF1 به :NF2 B G H B C A BCD E I تبديلNF2 به :NF3 B G G H BC A BCD I I E الف( ب( مثال: اگر رابطه F)R( A B C D E و کليد اصلي BCD باشد آنگاه کدام وابستگي تابعي زير شرط NF2 بودن رابطه R را نقص ميکند. DCB A BC E ج( E F د( A EF فرم :BCNF گاهي اوقات يک رابطه هر چند در فرم NF3 است اما باز هم شاهد افزونگي دادهها هستيم در اين شرايط بايد تجزيه را بيشتر ادامه دهيم. به طور مثال در مواقعي که: 1- رابطه داراي چند کليد کانديد باشد. 2- کليدهاي کانديد رابطه مرکب باشند. 3- کليدهاي کانديد در يک صفت اشتراک داشته باشند. 57

مثال: جدول و رابطه زير را در نظر بگيريد. S Sname P Qty Sn1 P1 300 (S,P ) Sn1 P2 200 کليدهاي کانديد Sn1 P3 400 (Sname,P ) Sn1 P4 200 هر چند رابطه در فرم NF3 است اما هنوز افزونگي داريم. براي رفع مشکل فوق بايد جدول را به دو جدول زير تعيين کنيم. S (S, Sname) S SP (S, P, Qty) نکته: رابطهاي که BCNF باشد حتما NF3 است و يل هر رابطه NF3 لزوما BCNF نيست. Sname Sn1 Sn1 Sn1 Sn نکته: در عمل بايد نرمال سازي را تا حد BCNF ادامه داد مگر اينکه با اين کار وابستگيها حذف شوند. در اين صورت تا سطح NF3 کافي است. S P Qty P1 P2 P3 P4 300 200 400 200 مثال: اگر رابطه )R(ABCDED و کليد اصلي BCD باشد آنگاه کدام وابستگي تابعي زير شرط nf2 بودن رابطه R را نقص ميکند. الف: BC E ب: DCB A ج: E F د: A EF فرم :BCNF گاهي اوقات يک رابطه هر چند در فرم NF3 است اما باز هم شاهد افزونگر دادهها هستيم در اين شرايط بايد تجزيه را بيشتر ادامه دهيم به طور مثال در مواقعي که: 1- رابطه داراي چند کليد کانديد باشد. 58

S# Sname P# Qty Sn1 Sn1 Sn1 Sn1 P1 P2 P3 P4 300 200 400 200 2- کليدهاي کانديد رابطه مرکب باشند. 3- کليدهاي کانديد در يک صفت اشتراک داشته باشند. مثال: جدول و رابطه زير را در نظر بگيريد. کليدهاي کانديد )#s#, p( )#Sname, P( S (S#, Sname) SP (S#, P#, Qty) هر چند رابطه در فرم NF3 است اما هنوز افزونگي داريم. براي رفع مشکل فوق بايد جدول را به دو جدول زير تعيين کنيم. نکته: رابطهاي که BCNF باشد حتما NF3 است ولي هر رابطه NF3 لزوما BCNF نيست. نکته: در عمل بايد نرمال سازي را تا حد BCNF صورت تا سطح NF3 کافي است. S# Sname Sn1 Sn1 Sn1 Sn1 ادامه داد مگر انيکه با اين کار وابستگيها حذف شوند. در اين S# P# Qty P1 P2 P3 P4 300 200 400 200 مثال: رابط زير در حالت NF1 است آن را به حالت NF3 ببريد. NF2 A B C D E F BC ABC E D F 58

NF3 BC E E E ABC D معماري پايگاه داده: Database Architect اين معماري به معماري سه سطحي نيز مشهور است. اجراي معماري :db -1 view external ديد خارجي 2- view conceptual ديد مفهومي يا ادراکي -3 view internal ديد داخلي 4- mapping تبديالت بين سطوح -5 sub-language )DSL (data زبان دادهاي فرعي -6 language )HL (Host زبان ميزبان -7 user کاربر 8- DBMS سيستم مديريت پايگاه داده اي 8- DBA مدير پايگاه داده ممکن است به سطح داخلي فيزيکي نيز گفته شود. کاربر 1 کاربر 2 کاربر i DSL+[HL] DSL+[HL] DSL+[HL] سطح ديد خارجي i ديد خارجي 2 ديد خارجي سطح خارجي انتزاعي DBA ناظر بر امور (ديد ادراکي )مفهومي سطح ادراکي DB سطح فايلينگ منطقي ديد داخلي 62 DB

شرح اجزاي معماري :DB ديد ادراکي يا مفهومي: - ديد ادراکي ديد طراح است نسبت به دادههاي ذخيره شده در Database - اين ديد مبتني است بر يک DS مشخص )جدولي يا رابطهاي...( - طراح سيستم به کمک دستورات بايد اين ديد را توصيف کند. - در اين سطح ساختار داده ها. ارتباط بين موجوديت ها امنيت و جامعيت دادهها و اطالعات معنايي دادهها مطرح ميگردد. - نامهاي ديگري چون سطح مفهومي )سطح منطقي اجتماع( يا سطح منطقي نيز به اين سطح گفته ميشود. مثال: پس از بررسي محيط عمليا يت دانشگاه موجوديتهاي درس و دانشجو مشخص ميشود همين که طراح پايگاه داده دو جدول براي موجوديتها و به طور مثال يک جدول براي رابطه بين آنها در نظر ميگيرد و تعريف ميکند در حقيقت با ديد ادراکي خود در اصطالح )شماي ادراکي( را تعريف کرده است. ديد خارجي: - ديد کابر است نسبت به دادههاي ذخيره شده در Database - اين ديد معموال مبتني بر BS ديد ادراکي است. و اگر مبتني بر BS ديد ادراکي نباشد ميگوييم سيستم دو ساختاره است. - اين ديد جزئي است و فقط در حد نيازهاي اطالعاتي يک کاربر است. - چند کاربر ميتوانند در يک ديد اشتراک داشته باشند. - DBA ديد مربوط به هر کاربر را تعي ني ميکند و ميتواند بيش از يک ديد به کاربر بدهد. )منظور از ديد يا view در حقيقت سطح دسترسي است( V1 مثال: DBA پايگاه دادههاي بانک ملي مرکزي به يک بانک شهرستاني فقط اجازه ديدن شماره حساب و نام کاربران را بدهد نه اجازه مشاهده شماره تلفن و آدرس و... S# Status 10 S2 20 S3 30 S4 10 مثال: در مورد جدول S ميتوان 2 کاربر با viewهاي مختلف زير را تعيين کنيد. ديد خارجي user 1 ديد ادراکي V2 S# Sname S2 S3 SN2 SN3 61 S# Sname Status City 10 C1 20 C2 30 C3 40 C4 S2 S3 S4 SN1 SN2 SN3 SN4