1 / 32

Shahriar Pirnia pirnia

Database پايگاه داده ها. Shahriar Pirnia http://www.pirnia.net. معماري سيستم پايگاه داده : در اوایل تکنولوژی پایگاه داده ها معماری استانداردی وجود نداشت . ANSI در اوایل سال 1970 معماری استاندارد ANSI را پیشنهاد کرد . نکته ! : هر DBMS واقعي بايد معماري ANSI را Support نمايد .

casper
Télécharger la présentation

Shahriar Pirnia pirnia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Databaseپايگاه داده ها Shahriar Pirnia http://www.pirnia.net

  2. معماري سيستم پايگاه داده : در اوایل تکنولوژی پایگاه داده ها معماری استانداردی وجود نداشت .ANSI در اوایل سال 1970 معماری استاندارد ANSI را پیشنهاد کرد . نکته ! : هر DBMS واقعي بايد معماري ANSI را Support نمايد . اين اساسي ترين ضابطه در تشخيص نرم افزارهاست که آيا DBMS واقعي است يا شبه DBMS است يا DMS است . اين اولين محک براي Packageهاست . به نکات اين چنينيD-logyیعنی شناخت DBMSگويند .

  3. DBA کاربر کاربر HL + DSL HL + DSL سطح خارجی ديد خارجی ديد خارجی ديد خارجی DBMS سطوح انتزاعی ديد مفهومی (ادراکی) سطح ادراکی داخلی سطح داخلی فيزيکی پايگاه فیزیکی

  4. يک معماري سه سطحي يا چهار سطحي است که عناصر آن عبارتند از : کاربرUser زبان ميزبانHost language (HL) زبان فرعي داده ايData sublanguage (DSL) ديد خارجيExternal view ديد ادارکيConceptual view سطح داخليInternal level پايگاه فيزيکي Physical Database نگاشت و تبديلات بين سطوحMapping نرم افزارDBMS تيم تخصصي اداره کننده پايگاهDBA سطح انتزاعي(محيطي مستقل از Filing) Abstract تمام سطوحتحت مديريت DBA است و تمام سطوح تحت کنترل DBMS است .

  5. شرح عناصر معماري : ديد ادراکي: ديد طراح است از کل داده هاي ذخيره شدني در محيط عملياتي. اين ديد جامع تمام نياز هاي کاربران محيط است . اين ديد بايد در کادر يک DS مشخصنگاشته شود . اين ديد بايد به کمک احکامي از Data sublanguage (DSL) تعريف شود . شماي اداراکي :(conceptual scheme) به تعريف ديد ادراکي شماي ادراکي مي گويند . شماي ادراکي نوعي برنامه است که طراح مي نويسد و توسط Compiler سيستم Object مي شود (يعني Compile شده و تبديل به Object مي شود ). در کتابخانه مخصوصي نوشته مي شود و نگهداري مي شود که گاه موسوم به کاتالوگ سيستم يا Data Dictionary است .

  6. P# این یک نمودار ER است S# QTY Pname 1..n 1..n تهيه كننده تهيه قطعه Sname Weight Color Status City City

  7. payment-number date amount Loan-number Payment amount Loan

  8. نکته ! : اين نمودار ER بايد در يک DS مشخص نگاشته Map شود هر DBMS يک DS خاص را تامين يا Support مي نمايد 1- رابطه ای Relational 2- سلسله مراتبي (درختي) Hierarchical 3- شبکه ای Network DS هاي رايج اگر DBMS اي DS اش رابطه اي باشد به آن DBMS رابطه اي گويند . اگر DBMS اي DS اش سلسله مراتبي باشد به آن DBMS سلسله مراتبي گويند . اگر DBMS اي DS اش شبکه اي باشد به آن DBMS شبکه اي گويند . بعد از سيستمهاي رابطه اي سيستمهاي Post relational به وجود آمد به این دو Prerelational گویند . یعنی نسل قدیمی تری نسبت به Relationalهستند .

  9. معرفي مقدماتي DS رابطه اي براي ادامه مثال رابطه (relation) : يک مفهوم رياضي است از ديد کاربررابطه نمايشی جدولي دارد (يک جورجدول است) هر جدول دو خصوصيت مهم دارد : يکي ستون و يکي سطر براي مدل کردن سطح ادراکي پايگاه داده توسط DS رابطه اي : براي هر نوع موجوديت يک جدول تهيه مي کنيم که هر ستونش بيانگر يک Attribute (صفت خاصه) آن موجوديت است . S P S اگر اين جدول را به گونه اي براي کامپيوتر تعريف کنيم ، فقط نوع موجوديت (Entity Type) را معرفي کرده ايم .هر سطر يک نمونه از موجوديت خواهد بود. Entity Occurrence Entity instance يک سطر P

  10. برای Modeling (مدلسازي) ارتباط 1:n دو سویه بین این دو موجودیت جدولی دیگر طراحی می کنیم . SP (shipment) نام جدول يک نمونه محموله – يک نمونه ارتباط بین نمونه موجوديتهاي S1 و P2

  11. حال شماي ادراکي را طراحي مي کنيم نمونه ساده شده شماي ادراکي به زبان طبيعي(natural language) اسم جدول S است ستونها شامل S# کاراکتر 6 Sname کاراکتر 20 Status عدد صحيح City کاراکتر 12 شناسه(identifier) هر سطر S# است. اسم جدول SP است ستونها شامل S# همان S# که در S است P# همان P# که درP است Qty عدد صحيح است شناسه(identifier) هر سطر (S# , P#) است. اسم جدول P است ستونها شامل P# کاراکتر 8 Pname کاراکتر 14 Color کاراکتر 10 Weight عددي City کاراکتر 12 شناسه(identifier) هر سطر P# است.

  12. SQL : Structured Query Language

  13. SQL : DSL استاندارد سيستمهاي رابطه اي است . (زبان تعريف و کار با داده ها) CREATE TABLE S (S# CHAR (6) , Sname CHAR (20) , STATUS INTEGER , CITY CHAR (12) ) PRIMARY KEY S# ; ایجاد جدول S اين شماي ادراکي است در DBMS رابطه اي به نحوي که DBMS ، SQL را Support مي نمايد . • CREATE TABLE P • (P# CHAR (8) , • Pname CHAR (14) , • WEIGHT INTEGER , • COLOR CHAR (10) , • CITY CHAR (12) ) • PRIMARY KEY P# ; • CREATE TABLE SP • (S# CHAR (6) , • P# CHAR (8) , • QTY INTEGER ) • PRIMARY KEY (S# , P#) ایجاد جدول P ایجاد جدول SP

  14. کاربران هرچه ببينند از همين ديد ادراکي و از همين Table ها خواهند ديد زيرا طراح اين سطح را به طور جامع طراحي مي کند و يک سطح بين کاربران و سطوح پائين تر است . ديد خارجي External view : 1 – ديد کاربر خاص است نسبت به داده هاي ذخيره شده در پايگاه (در محدوده نيازهاي اطلاعاتي اش) 2 – هر کاربر ديد هاي خاص خود را دارد 3 – چند کاربر مي توانند در يک ديد مشترک باشند . همين اشتراک در ديد است که تامين کننده Data sharing (اشتراک داده ها) در محيط انتزاعي مي باشد (لازمه وجود محيط انتزاعييک Data Structure است .) 4 – ديد هر کاربر تحت نظرِِdBA تعريف مي شود ( dBA سرپرست تيم DBA مي باشد ) .. محيط انتزاعي : محيط منفک و مجزا از filing . *ديد خارجي روي ديد ادراکي تعريف مي شود . (يعني ديد ادراکي بايد ايجاد شده و در Catalog باشد تا کاربر بتواند روي اين ديد ادراکي ديد خارجي مخصوص خود را ايجاد کند )

  15. چون ديد ادراکي روي يک DS مشخص ايجاد مي شود پس ديد خارجي هم مثل ديد ادراکي در کادر يک DS مشخص تعريف مي شود . 5 – به تعريف ديد خارجي شماي خارجي( (External Schema مي گويند . نوعي برنامه است که Compile مي شود و در Catalog سيستم يا در کتابخانه ديدهاي خارجي ذخيره مي شود تا موقع استفاده از پايگاه به کار گرفته شود . ديدهاي زير مي تواند در سطح خارجي روي جداول S .و P و SP تعريف شده باشد . S P SP تیم طراح تصمیم می گیرد که User x باید این دید را داشته باشد و بجز آن را نبیند . U1S2 U1S1

  16. اين ديد مي گويد : نام من U1S1 است روي S تعريف شده و ستونهايش S# و Sname است . این دید می گوید : نام من U1S2 است ستونهايش SN و STA از تهیه کنندگان ساکن C2 . پس Database از ديد User1 تنها دو جدول u1s1 و u1s2 است . اگر user1 بخواهد کاري روي DB انجام دهد فقط مي تواند روي همين دو تا جدول انجام دهد ولاغير . U2Px U3Sx

  17. شماره تهيه کننده و قطعاتي که در يک شهر هستند . U4SP4

  18. create view sView(SNUM, sname,STA) AS SELECT S#, sname, status FROM S WHERE city = 'C2' Go SELECT * FROM sVIEW

  19. در سطح داخلي سيستم سه فايل ايجاد مي کند : )در Oracle به ازاي هر تعداد جدول که داشته باشيم يک فايل به نام*.ora ساخته مي شود .( S File P File SP File

  20. اينکه چند فايل بکار رفته و چه Pointer هايي استفاده شده باشد و غيره بستگي به نوع Mapping از سطح ادراکي به سطح داخلي دارد . خصوصيت سيستم DBMS : وحدت ذخيره سازي و کثرت (تعدد) ديد هاي خارجي. ترکيب يک OS با Hardware را Platform گويند . تعريف u1s2 در شبه SQL : CREATE VIEW U1S2 (SN,STA) ON S(S#,STATUS) . . . WHERE S.CITY = ‘C2’ بعد از WHERE شرط يا شرايط مورد نظر را مي آوريم وقتي سطح ادراکي شما جدولي است و مبتني بر سطها و ستونهايي است ديدها نيز بخشي از جداول (بخشي از سطرها و ستونها) هستند .

  21. سطح داخلي : در واقع سطح file definition است درون خود سيستم توسط خود DBMS. DBMSدر اين سطح با پايگاه برخورد منطقي دارد . اما به مسائل فيزيکي پايگاه نمي پردازد . (مسائل فيزيکي پايگاه بر عهده MethodAccess (شيوه دستيابي) است) در سيستم DB در سيستم های فایلینگ سطح خارجي ؟ انتزاعي سطح ادراکي تعريف فايلها و کار با فايلها توسط خود ِِDBMS در محيط منطقي Filing تعريف فايلها و کار با فايلها توسط خودبرنامه ساز ايجاد مي شود. داخلي Access Method Access Method فيزيکي Files Files

  22. DBMS مي داند : 1-چه فايلهايي وجود دارد . 2-استراتژي دستيابي به هر فايل چيست و ساختارش چگونه است ؟ ا3-اندازه فايل چقدر است . 4-کليد يا کليدها را مي شناسد. 5-ترتيب منطقي رکوردها را مي داند . 6-نحوه نگاشت ساختارهاي ادراکي در فايلها را . (چه فايلي مربوط به چه جدولي است ). چند نکته ! : D-logy: هر چند به مسائل مربوط به سطح داخلي پايگاه توسط DBMS پرداخته مي شود اما DBA و تيمش اختياراتي در طراحي اين سطح دارند . مثلا مي تواند درخواست ايجاد شاخص نمايد (Index) . يا اينکه انواع کليد را معرفي کند اما ميزان دخالت DBA در ايجاد سطح داخلي و نهايتا فيزيکي پايگاه در DBMS هاي مختلف فرق مي کند . در DBMS هاي قديمي تر اين دخالت بيشتر است . (در Pre relational بيشتر است) اما در جديدها کمتر زيرا اتوماتيسم DBMS ضعيف تر بوده است . D-logy : معمولا يک DBMS قوي بيش از يک ساختار File را اجازه مي دهد و اين که چندين Access Method وجود خواهد داشت . يک DBMS کلاسيک حداقل دو روش دستيابي را ارائه مي دهد . اما DBMS هايي هم هستند که شش و يا پنج روش دستيابي را ارائه مي دهند .

  23. فصل سوم مفاهيم مبنايي DM رابطه اي ( Data Model رابطه اي) - تعريف رابطه - خصوصيات رابطه - مفهوم ميدان (دامنه) - کليد در DM رابطه اي - قواعد جامعيت در ِDM رابطه اي - مشخصات کلي يک سيستم رابطه اي - عمليات در رابطه ها

  24. تعريف رابطه : تعريف مقدماتي : فرض مي کنيم که : D1, D2 , …, Dn ، n ميدان از مقادير باشند .رابطه مجموعه ايست که هر عنصر آن به صورت <di1,di2,….,din> است. (n تايي ) N-Tuple i =1,2,3,…,m به نحوي که D1di1 dij  Dj مثال : S(S#, sname , status , city ) میدان مقادير Status ها ميدان مقادير Sname ها مجموعه مقادير City ها يک تاپل Tuple

  25. تعريف کامل تر) از (DATE : با فرض داشتن n ميدان D1,D2,….,Dn رابطه از دو مجموعه تشکيل شده است : مجموعه عنوان : Heading يا سررابطه مجموعه بدنه : Body يا پيکر رابطه (Attribute names) مجموعه اسامي صفات خاصه است. بنحوي که اين صفات خاصه از ميدانهايي که صفات خاصه روي آنها تعريف مي شود ، مقدار مي گيرند. هر رابطه داراي يک نام است . با داشتن نام و مجموعه عنوان رابطهجوهر رابطه معلوم است. R (A1 , A2 ,…. , An) نام رابطه مجموعه عنوان رابطه ذات يا جوهر رابطه که ثابت در زمان است .

  26. منطقا بايد ميدانهاي زيرين نيز به نحوي به سيستم معرفي شوند. مجموعه بدنهBody) (: {<ai1 ,ai2 ,…. , ain>} ai1 D1 (A1مجموعه مقادير صفت خاصه) aij Dj (Aj مقادير صفت خاصهمجموعه) به مجموعه Body : بسط يا گستره رابطه : Extension ) رابطه( گفته مي شود و تعداد Tuple های رابطه را Cardinality رابطه مي گويند . کارديناليتي رابطه : تعداد عناصر مجموعه بدنه . (تعداد سطرها) کارديناليتي رابطه : تعداد تاپلهای بسط رابطه .

  27. درجه رابطه : کارديناليتي مجموعه عنوان ، يعني تعداد صفات خاصه عنوان رابطه (تعداد ستونها) مثال : s از درجه 4 است. SP از درجه 3 است . P از درجه 5 است. اصطلاح درجه رابطه Unary 1 2 3 . . رابطه Binary رابطه Ternary رابطه n-ary

  28. خصوصيات رابطه : 1- تاپل تکراری ندارد 2- صفات خاصه فاقد نظم هستند 3- تاپلها فاقد نظم هستند چون بدنه مجموعه است و مجموعه عنصر تکراری نمي تواند داشته باشد. چون عنوان مجموعه است نه n تایی مرتب چون بدنه مجموعه است در سیستمهای موجود هر دو نوع نظم ارائه شده است . یعنی هم می توان رابطه ای داشت منظم شده بر مبنای سطرها یا ستونها بسته به تقاضای طراح و هم برای صفات خاصه مجموعه عنوان قائل به موقعیت Position شد . می توان گفت ستون اول ، ستون دوم ، ستون سوم یعنی ترتیب قائل شویم برای صفات خاصه رابطه در نمایش جدولی . 4- مقادیر تمام صفات خاصه اتومیک (Atomic : تجزیه نشدنی) هستند . يعني در تقاطع هر سطر و ستون جدول یک داده ساده داریم که از لحاظ مفهومی غیر قابل تجزیه است .

  29. ادامه بحث مفاهيم مبنايي مدل رابطه اي : مقدار اتوميک يا تجزيه نشدني : مقداري است که اگر آنرا به اجزا تجزيه کنيماجزاي بدست آمده فاقد Semantic (معني) باشد . از اين نظر مقدار اتوميک را واحدSemantic داده مي گويند . (Semantic Unit Of Data) (از ديد کاربر در معناي عام : از جمله طراح ، dba و ...) مثال : مقدار صفت خاصه رنگ آبي غير قابل تجزيه از لحاظ سمنتيک سياه غير قابل تجزيه از لحاظ سمنتيک آب + ي سي + آه اين اجزاي حاصله از تجزيه در مقوله شناخت مقادير رنگ اشيا فاقد معنا هستند . در صورتيکه اين تجزيه در مقوله زبانشناسي ممکن است داراي معني باشد . مثال : تاريخ yy mm dd : مرکب ، هم از نظر Syntax و هم از نظر Semantic . اين مقدار يک مقدار اتوميک نيست زيرا تجزيه مي شود به سه مقدار داراي معنا . نکته : يک مقدار مرکب يا تجزيه شدني لزوما نبايد تجزيه شود ، بستگي دارد به ديد طراح . همين تاريخ را در يک ديد ممکن است اتوميک ببينيم و در ديد ديگر بسته به کاربرد ممکن است تجزيه شود . نکته : خاصيت 4 (اتوميک) :از نظر رياضي يک رابطه لزومي ندارد داراي خاصيت چهارم باشد ولي اين نظر آقاي Codd است . دليلش را در ادامه بحث مي بينيم . (از لحاظ رياضي لزومي ندارد ميدانهايي که رابطه روي آنها تعريف مي شود اتوميک باشد) . مقدار ساده يا اتوميک است .

  30. اتوميک : ساده ميدان Nonatomic : مرکب ياد آوري : رابطه روي تعدادي ميدان تعريف مي شود . ميدان : مجموعه اي از مقادير است ساده يا مرکب که يک يا بيش از يک صفت خاصه از آن مقدار مي گيرد . لزوما Di = DjAi = Aj => Attribute Names مثال : Assembly (MAJP# , MINP# , QTY) 2P7P1 1P11P1 3 P21P1 قطعه قطعه در ساخت قطعاتي بکار رفته است ميدان مقادير P# ها اين هر دو صفت هر دو از يک ميدان مقدار ميگيرد.

  31. تمرين : دو مثال ديگر در همين مورد قيد کنيد .(اول محيطش (ER) را نشان دهيد و بعد مقاديرش را طراحي کنيد .) ميدانهايي که يک رابطه روي آن تعريف مي شود بخشي از Metadata پايگاه داده هستند و بايد در شماي ادراکي پايگاه به کمک احکام خاص (که مي دانيم احکام DDL است ) تعريف شود به عنوان تمرين اين مثال را تکميل کنيد . SQL هاي موجود در بازار فاقد تعريف ميدان هستند . در SQL 92 اين کمبود رفع شده است تا اولا آنچه بطور عملي ايجاد شده با تئوري تطبيق داشته باشد . Create domain snum , char (6) Create domain sname , char(20) Create domain STA , Integer Create domain city , char(12) Create domain Pnum char(8) Create domainPNAM char(16) Create domain Weight , integer

More Related