410 likes | 806 Views
معماري پايگاه دادهها. اصول طراحي پايگاه دادهها. مهدی ایل بیگی دانشگاه پیام نور دماوند. معماری پیشنهادی ANSI. اجزاء معماری پیشنهادی ANSI. دید ادراکی ( Conceptual View ) دید داخلی (Internal View) دید خارجی (External View) تبدیلات بین سطوح (Mapping / Transformation) کاربر (User)
E N D
معماري پايگاه دادهها اصول طراحي پايگاه دادهها مهدی ایل بیگی دانشگاه پیام نور دماوند
اجزاء معماری پیشنهادی ANSI • دید ادراکی (Conceptual View) • دید داخلی (Internal View) • دید خارجی (External View) • تبدیلات بین سطوح (Mapping / Transformation) • کاربر (User) • زبان میزبان (Host Language (HL)) • زبان فرعی داده ای (Data Sub Language (DSL))
ديد ادراكي (مفهومي) 1- ديد طراح پايگاه دادهها نسبت به دادههاي ذخيرهشدنی در پایگاه داده است. 2- این دید جامع است، یعنی شامل تمامی نیازهای داده ای کاربران می باشد. 3- در يك محيط انتزاعي (فرافایلی) و مبتنی بر یک ساختار داده ای می باشد. 4- با عناصر ساختاري اساسي همان ساختار دادهاي طراحي ميشود. (مثال: جدول در ساختار داده ای رابطه ای) 5- این دید پس از طراحی باید تعریف گردد. به تعریف دید ادراکی، شمای ادراکی می گوییم. 6- شماي ادراكي نوعي برنامه است حاوي دستورات تعريف (Data Definition) و كنترل دادهها (Data Control). سطح ادراكي در واقع همين شماي ادراكي است. 7- شماي ادراكي به سيستم داده ميشود و در كاتالوگ سيستم نگهداري ميشود.
در کاتالوگ چه چیزهایی ذخیره می شود • اطلاعات در مورد دید داخلی، ادراکی و خارجی. • اطلاعات در مورد خود کاربران. • اطلاعات در مورد امنیت و همچنین جامعیت داده ها و ... • کاتالوگ در سیستم های جدولی، تعدادی جدول می باشد که توسط سیستم ایجاد می شود. • مثال: یکی از جدول های کاتالوگ: • نکته: با ایجاد هر جدول، یک سطر که حاوی مشخصات جدول ایجاد شده می باشد، در جدول فوق اضافه می گردد. پس محتویات کاتالوگ بصورت غیرمستقیم قابل تغییر است.
دید داخلی 1- ديد DBMS و طراح پايگاه دادهها است و در سطحي پايينتر از سطح ادراكي، نسبت به كل دادههاي ذخيرهشده است. 2- در سطح فايلينگ منطقي مطرح است. 3- مبتني بر يك ساختار فايل است كه با نظر طراح پايگاه طراحي ميشود و به طراحي فيزيكي موسوم است. 4- در سطح داخلي پايگاه دادهها، فايلينگ منطقي تعريف ميشود. 5- تناظر بین ساخت های سطح ادراکی (مثل جدول) و مجموعه ساختارهای سطح داخلی، می تواند 1:1، 1:N یا M:N باشد. (مثلا در تناظر 1:1، متناظر با هر جدول در سطح ادراکی یک فایل در سطح داخلی داریم) 6- به تعریف دید داخلی شمای داخلی می گویند. شماي داخلي نوعي برنامه است كه توسط خود DBMS توليد ميشود و شرح فايلينگ منطقی پايگاه است.
نکات دید داخلی • DBMS در مورد فایلینگ فیزیکی چیزی نمی داند. • DBMS می داند: • چه فایل هایی با چه فرمت هایی و با چه اندازه ای در سطح فیزیکی وجود دارد. • استراتژی دسترسی به رکوردهای فایل ها چگونه است. • فیلد کلید(های) فایل کدام است. • DBMS نمی داند: • طرز ذخیره سازی فایل ها روی رسانه فزیکی (مثلا پیوسته یا گسسته بودن) • نحوه همجواری (Locality) رکوردها. (مثلا همجواری رکوردهای درون یک فایل یا همجواری بین دو فایل) • نحوه بافرینگ در سطح سیستم عامل.
ديد خارجي 1- ديد كاربر خاص نسبت به دادههاي ذخيرهشده در پايگاه داده است. 2- جزئي است، یعنی فقط شامل قسمتی از داده ها است که کابر می تواند ببیند. 3- در سطح انتزاعي مطرح است. 4- روي ديد ادراكي طراحي و تعريف ميشود. و معمولا ساختار داده ای که دید ادراکی بر آن مبتنی است را دارا می باشد. (مثل ساختار داده ای رابطه ای) 5- به تعریف دید خارجی، شمای خارجی می گویند. 6- شماي خارجي نوعي برنامه است حاوي دستورات تعريف و كنترل دادهها در سطح خارجي كه توسط كاربر اين سطح نوشته ميشود. 7- به تعريف مجموعه ديدهاي خارجي كاربر، سطح خارجي گفته ميشود. 8- هر كاربر ميتواند تعدادي ديد (View) داشته باشد. 9- چند كاربر ميتوانند در يك ديد مشترك باشند.
دیدهای مختلف در ساختار داده ای رابطه ای
تفاوت سطوح معماری در محیط پایگاهی و ناپایگاهی
زبان ميزبان (HL) • يكي از زبان هاي برنامهسازي متعارف مانند كوبول، PL1، فرترن، پاسكال، C و زبان هايي مثل ADA، LISP، JAVA و ... است. • مزایای افزايش تعداد زبان هاي ميزبان مورد پذيرش DBMS در شکل زیر آورده شده: كاهش هزينه سازمان افزايش تعداد زبانهاي ميزبان مورد پذيرش DBMS انعطافپذيري بيشتر تنوع كاربر تنوع كاربرد
زبان دادهاي فرعي (DSL) • شامل سه دسته دستور زير است: 1- دستورات تعريف دادهها Data Definition Language (DDL) 2- دستورات عمليات روي دادهها Data Manipulation Language (DML) 3- دستورات كنترل دادهها Data Control Language (DCL)
دستورهاي DSL براي سه سطح معماري پايگاه دادهها سطح خارجي DLL معماري ANSI DSL سطح ادراكي DML سطح داخلي DCL
تقسيمبندي زبان دادهاي فرعي از نظر نياز به زبان ميزبان • مستقل (Independent.DSL): به زبان ميزبان نياز ندارد و به صورت تعاملي استفاده ميشود. در واقع يك زبان پرس وجو است. مانند Foxpro و Access. • ادغامشدني (Embeded.DSL): دستورهايش در متن برنامهاي به زبان ميزبان به كار ميرود و مستقلا قابل استفاده نيست. • هم مستقل و هم ادغامشدني (I/E.DSL). مانند: SQL
روند كلي مرحله كامپايل برنامه دوزباني برنامه به HL كامپايل شده كامپايلر HL دستورهاي HL دستورهاي HL و دستورهاي DSL پيش كامپايلر اجرا دستورهاي DSL كامپايل شده كامپايلر DSL دستورهاي DSL
ويژگي هاي زبان دادهاي فرعي 1- تعداد دستورهايش بايد كم باشد. 2- دستورهايش بايد شبه زبان طبيعي باشد. 3- يادگيري و استفاده آن بايد ساده باشد. 4- در طراحي آن بايد اصل وحدت دستور رعايت شود. 5- دستورهايش بايد مبتني بر عناصر ساختاري اساسي ساختار دادهاي طراحي شوند. 6- بهتر است كامپايلري باشد و نه مفسري.
ويژگي هاي زبان دادهاي فرعي 7- بهتر است از نظر برنامهسازي و محاسباتي كامل باشد. 8- زبان بايد از نظر تعداد دستورهاي كنترل دادهها و عملكرد هر دستور، غني و قوي باشد. 9- بايد از نظر انواع دادهاي و به ويژه انواع دادهاي انتزاعي و انواع دادهاي پيچيده، غني باشد. 10- این زبان یک زبان بیانی (Declarative) است یعنی کاربر می گوید چه می خواهد و رویه انجام کار را بیان نمی کند، برخلاف زبان هایی مثل C و ... که رویه ای (Procedural) هستند.
سيستم مديريت پايگاه دادهها DBMS • تعريف: يكي از انواع نرمافزارهاي واسط بين محيط فيزيكي ذخيره و بازيابي اطلاعات و محيط منطقي برنامهسازي است. • DBMS به كاربر برنامهساز امكان ميدهد تا: 1- پايگاه دادههاي خود را تعريف كند. 2- در پايگاه دادههاي خود عمليات انجام دهد. 3- روي پايگاه دادههاي خود تا حدي كنترل داشته باشد.
ردهبندي سيستمهاي DBMS • از نظر نوع ساختار دادهاي: • سيستم رابطهاي • سيستم سلسلهمراتبي • سيستم شبكهاي • و ... • از نظر محيط سختافزاري: • وابسته به يك محيط خاص • ناوابسته به يك محيط خاص (قابل اجرا بر روی سختافزارهای متفاوت)
ردهبندي سيستمهاي DBMS • از نظر رده كامپيوتر: • خاص محيط كامپيوترهاي شخصي • خاص محيط كامپيوترهاي متوسط (Mini Computer) • خاص محيط كامپيوترهاي بزرگ (Main Computer) • خاص محيط كامپيوترهاي خيلي بزرگ (Super Computer) • اجراشونده درچند رده كامپيوتر • از نظر محيط سيستم عامل: • وابسته به يك سيستم عامل خاص • اجراشونده در محيط چند سيستم عامل
ردهبندي سيستمهاي DBMS • از نظر نوع معماري سيستم پايگاه دادهها: • با توانش ايجاد پايگاه متمركز • با توانش ايجاد پايگاه نامتمركز (توزیع شده) • از نظر ماهيت زبان دادهاي فرعي: • با زبان رويهاي • با زبان نارويهاي
ردهبندي سيستمهاي DBMS • از نظر معماري مشتري- خدمتگزار: • با توانش ايجاد معماري چند مشتري – يك خدمتگزار • با توانش ايجاد معماري چند مشتري – چند خدمتگزار • از نظر زبان: • سيستم داراي SQL • سيستم فاقد SQL
ردهبندي سيستمهاي DBMS • از نظر نوع زبان دادهاي فرعي: • داراي I.DSL • داراي E.DSL • داراي E/I.DSL • از نظر سيستم فايل: • خودكفا (مستقل از سیتم فایلینگ سیستم عامل) • وابسته به سيستم فايل محيط سيستم عامل و ...
اجزاي DBMS از نماي بيروني • واحد پردازشگر پرسشها و برنامههاي كاربردي • واحد ايجاد و مديريت دادهاي ذخيرهشده كاربر برنامههاي كاربردي/ پرسش ها واحد پردازشگر برنامه كاربردي و پرسش ها سيستم مديريت پايگاه دادهها واحد دستيابي به دادههاي ذخيرهشده دادههاي ذخيرهشده DB متا داده
اجزاي DBMS از نماي دروني • لايه هسته (سيستم كنترل يا موتور پايگاه دادهها) • لايه مديريت محيط پايگاه دادهها • لايه تسهيلات نرمافزاري (ابزارها)
واحدهاي لايه هسته 1- واحد دريافت درخواست كاربر و وارسيهاي اوليه 2- واحد توليد شماها 3- پيشكامپايلرها براي DML (ادغام شده) 4- كامپايلرها (پردازنده DML) 5-پردازشگر پرسش و بهينهساز پرسش 6- واحد مديريت سطح داخلي
واحدهاي لايه هسته 7- واحد مديريت بافر 8- واحد مديريت فضاي ديسك 9- واحد ناظر زمان اجرا 10- واحد مديريت همروندي تراكنشها 11- واحد مديريت انتقال دادهها 12- واحد مديريت كاتالوگ
واحدهاي لايه مديريت محيط پايگاه دادهها 1- واحد كنترل جامعيت پايگاه دادهها 2- واحد ترميم پايگاه دادهها 3- واحد ايمني و حفاظت پايگاه دادهها 4- واحد توليد نسخههاي پشتيبان 5- واحد توليد فايل هاي ثبت تراكنش ها
تراکنش (Transaction) • هر برنامه ای که توسط کاربر در محیط بانک اطلاعاتی اجرا گردد. • در واقع تراکنش واحد منطقی کار است که شامل چندین عمل بانک اطلاعاتی است. • تراکنش اتمی، پایدار و مجزا از هم هستند. یعنی انجام سریال آن ها، همان نتیجه ای را دارد که اجرای همزمان آن ها خواهد داشت. • مهم حفظ صحت و جامعیت داده ها می باشد نه انجام گرفتن تراکنش ها. • مثال: جابجایی مبلغی از یک حساب بانکی به یک حساب دیگر.
تضمین جامعيت پايگاه دادهها • چهار کنترل اصلی باید روی تمامی تراکنش های پایگاه داده انجام شود تا صحت و جامعیت پایگاه داده تضمین گردد: • تجزیهناپذیری (Atomicity): یعنی یک تراکنش یا باید کاملا انجام شود یا هیچ یک از دستورات آن انجام نشود. • سازگاری (Consistency): یعنی هر تراکنش با اجرای خودش باید پایگاه داده را از حالتی صحیح به حالت صحیح دیگری منتقل کند. • انزوا (Isolation): یعنی اگر چندین تراکنش همزمان اجرا گردند، باید کاملا مجزا از هم اجرا گردند. یعنی تغییراتی که یک تراکنش ایجاد می کند تا زمانی که کار آن بطور کامل تمام نشده باشد توسط تراکنش های دیگر قابل مشاهده نباشد. • پایائی (Durability): یعنی بعد از اجرای کامل یک تراکنش اثر تراکنش نباید بصورت تصادفی از بین برود.
كاربر نابرنامهساز كاربر موردي برنامهساز APها مدير پايگاه دادهها ساختاريك سيستم پايگاهي واسط APها UFI CLI DDL واسط DML فرمان هاي زبان پايگاهي DBMS واحد پردازشگر پرسش ها . . . . . . . واحد مديريت دادههاي ذخيرهشده مدير فايلينگ منطقی مدير تراكنش ها مدير بافر كامپايلر DDL مدير ترميم مدير فضاي ديسك . . . . . . فايل ثبت تراكنشها شاخص ها متادادهها دادههاي ذخيرهشده