بررسی معماری مدل رابطه ای ORACLE

سیستم مدیریت بانک اطلاعاتی رابطه ای اراکلRelational Database Management System (RDBMS) چنان طراحی شده است که حجم زیادی از اطلاعات ذخیره شده را به طور همزمان در اختیار کاربران قرارمی دهد. هر سیستم RDBMS متشکل از بانک اطلاعاتی و Instance می باشد. قسمت بانک اطلاعاتی شامل فایل های فیزیکی، قسمتهای منطقی نظیرTablespace ها و اشیاء Schema می باشد. منظور از Instance روشی است که برای دستیابی به داده ها به کار می رود و شامل پردازش ها و حافظه سیستم می باشد. هر بانک اطلاعاتی ORACLE شامل یک لایه منطقی و یک لایه فیزیکی است. لایه فیزیکی، عبارت است از فایل هائی که در دیسک قرار می گیرند و لایه منطقی نیز، لایه ای است که عناصر آن، داده ها را به لایه فیزیکی منتقل می کند.

هر کاربر برای دستیابی به اشیایی که در Schema ی او قرار دارد، نیاز به مجوز ندارد. زیرا تمامی مجوزهای لازم به صورت پیش فرض به کاربر Owner واگذار می شود.

Datafile ها بانک اطلاعاتی را به صورت فیزیکی و Tablespace ها بانک اطلاعاتی را به صورت منطقی به واحدهای کوچکتر جهت مدیریت تقسیم می کنند.

دسترسی کاربران به بانک اطلاعاتی رابطه ای
در یک مدل رابطه ای تمامی اشیاء بانک اطلاعاتی به صورت غیرمستقیم در اختیار کاربران بانک اطلاعاتی قرار می گیرند. یعنی کاربران بانک اطلاعاتی مستقیماً به جداول و سایر اشیا بانک اطلاعاتی که بر روی دیسک قرار می گیرند، دسترسی نداند. برای دسترسی به بانک
اطلاعاتی رابطه ای به Instanceی از بانک اطلاعاتی نیاز می باشد.
Instanceبه مجموعه ای از پردازشهای اراکل و حافظه مشترک اطلاق می شود که برای

دسترسی به اشیاء بانک اطلاعاتی مورد نیاز می باشد. بنابراین اگرInstance ای از بانک اطلاعاتی وجود نداشته باشد امکان دسترسی به بانک اطلاعاتی و اشیاء آن وجود نخواهد داشت. Instance ساختار پردازشی و حافظه ای است که با start شدن سیستم عامل ایجاد شده و با shutdown شدن سیستم عامل نیز از بین می رود. اما ساختار فیزیکی بانک اطلاعاتی همواره بر روی دیسک وجود داشته و تنها از طریق Instance آن بانک اطلاعاتی
قابل دسترس می باشد.

هر مدل رابطه ای از سه قسمت اصلی زیر تشکیل می شود:
1. Kernel یا هسته RDBMS
2. Data Dictionary
3. SQL

لایه فیزیکی
لایه فیزیکی بانک اطلاعاتی ORACLE از سه نوع فایل تشکیل شده است:

 یک یا چند Data File : تنها واحد ذخیره سازی داده ها در بانک اطلاعاتی را Data File می نامند. از طریق این فایل ها امکان نگهداری اشیاء Schema مانند جداول، Viewها، Index ها و…. در بانک اطلاعاتی وجود دارد. در بانک اطلاعاتی ORACLE برحسب نیاز می توان از یک تا صدها Data File را ایجاد و مورد استفاده قرار داد.
این فایل ها یک بانک اطلاعاتی را به واحدهای کوچکتر برای مدیریت تقسیم می کنند. در واقع بانک اطلاعاتی ORACLE از طریق این فایل ها به واحدهای کوچکتر که امکان توزیع آنها بر روی دیسکهای مختلف فراهم می شود، تقسیم می شود. توزیع اطلاعات بین چند Data File، اثر قابل توجهی بر کارآیی سیستم خواهد گذاشت. ازطریق این فایل ها اطلاعات مربوط به یک جدول را می توان در بیش از یک Data File توزیع نمود. همچنین امکان ذخیره سازی اطلاعات مشترک مربوط به چند جدول در یک Data File، ممکن می باشد. Data Fileها در بانک اطلاعاتیORACLE مستقیماً مورد دستیابی قرار نمی گیرند، بلکه از طریق یک لایه منطقی به نام Tablespace مدیریت می شوند. هر Data File تنها می تواند به یک Tablespace تعلق داشته باشد. امکان توسعه فضاهایData File ها بعد از ایجاد آنها در بانک اطلاعاتی وجود دارد.

در واقع Data File
• تقسیمات فیزیکی بانک اطلاعاتی اراکل است.
• تنها واحد ذخیره سازی داده ها در بانک اطلاعاتی است.
• هر Data File می تواند با یک نام مشخص در یک مسیر مشخص بر روی دیسک ایجاد شود.
• هر Data File در زمان ایجاد با یک فضای اولیه مشخص ایجاد می شود. این فضای فیزیکی اولیه که در اختیار Data File قرار می گیرد از دید سیستم عامل یک فضای مصرفی و از دید بانک اطلاعاتی اراکل یک فضای رزرو شده اولیه برای ذخیره داده ها می باشد که می تواند در صورت نیاز رشد یابد.
• هر Data File برای بانک اطلاعاتی اراکل همانند یک پارتیشن برای سیستم عامل می باشد.
• هر Data File یک فضای فیزیکی بهم پیوسته بر روی یک پارتیشن سیستم عامل می باشد. بنابراین نمی توان Data File ای ایجاد نمود که بخشی از

فضای خود را از یک پارتیشن و بخشی از پارتیشن دیگر سیستم عامل دریافت کرده باشد.

 دو یا چند Redo Log File : این فایل ها، اطلاعاتی را نگهداری می کنند که هنگام خرابی سیستم، امکان Recovery نمودن بانک اطلاعاتی را ممکن می سازند. این فایل ها تمامی تغییرات اعمال شده در بانک اطلاعاتی را نگهداری می کنند. به کمک این فایل ها می توان به اعمال مجدد تغییراتی پرداخت که کاربر پس از اعمال آن تغییرات، به علت خراب شدن سیستم فرصت نوشتن آنها را در Data Fileها نداشته است.

 یک یا چند Control File: Control Fileها حاوی اطلاعاتی چون مکان فیزیکیData Fileها و Redo Log Fileها هستند که برایStart شدن یک Instance بانک اطلاعاتی بکار می روند. این اطلاعات، برای ایجاد یک Instance مورد نیاز می باشند. اگر این فایل ها خراب شده و یا از بین رفته باشند، امکان Start شدن بانک اطلاعاتی به هیچ وجه ممکن نمی باشد. به علت اهمیتی که این فایل ها دارند، مدیر بانک اطلاعاتی باید حفاظت های لازم را بعمل آورد. در ORACLE مکانیزمی پیش بینی شده است که این فایل ها را می توان در چند نسخه بصورت Mirror ایجاد نمود، در آن صورت در زمان Start شدن بانک اطلاعاتی تمامی این فایل ها در اختیار بانک قرار گرفته و بطور همزمان محتویات درون آنها تغییر می یابد، بنابراین اگر یکی از Control File ها از بین رفته باشد، امکان Start نمودن بانک از سایرفایل های موجود، ممکن می شود.
Control File شامل اطلاعاتی مربوط به :
• نام بانک اطلاعاتی
• تاریخ و زمان ایجاد بانک
• محل فیزیکی Data File ها
• محل فیزیکی Redo Log File ها

لایه منطقی
لایه منطقی بانک اطلاعاتی اراکل، از عناصر زیر تشکیل شده است:
• یک یا چند Tablespace
• اشیاء Schema (شامل جداول، Viewها، Index ها، Database Linkeها،…)

Data File ها به صورت فیزیکی و Tablespace ها به صورت منطقی ، یک بانک اطلاعاتی را به واحدهای کوچکتر جهت مدیریت تقسیم می کنند.

Tablespace
واحد منطقی تقسیمات بانک اطلاعاتی را Tablespace می نامند. از طریق Tablespace ها می توان بانک اطلاعاتی را به واحدهای کوچکتر جهت مدیریت آسانتر تقسیم نمود. مهمترین Tablespace در بانک اطلاعاتی اراکل SYSTEM می باشد. این Tablespace تمامی جداول Data Dictionary را نگهداری می کند. مدیر بانک اطلاعاتی اراکل باید از قرار دادن جداول سایر کاربران در این Tablespace جلوگیری کند. زیرا این Tablespace به اندازه کافی بزرگ بوده و قرار دادن اشیاء سایر کاربران باعث کاهش کارایی سیستم می گردد.

در واقع Tablespace
• تقسیمات منطقی بانک اطلاعاتی اراکل است.
• وظیفه Tablespace ها در بانک اطلاعاتی اراکل بهم پیوسته کردن فضای فیزیکی نابهم پیوسته Data File ها و ایجاد یک فضای فیزیکی بهم پیوسته بزرگتر برای بانک اطلاعاتی است.
• تمامی پارامترهای ذخیره سازی داده ها، در بانک اطلاعاتی فضای مصرفی مورد نیاز خود را از Tablespace ها می گیرند.

Listener
پردازشی بر روی Server جهت گوش دادن به درخواستهای ارتباطی از طرف Client به Server و مدیریت ترافیک Server. هرگاه یک Client یا یک Server (همانند یک Client) درخواست ارتباط با Server را داشته باشد یک Listener ارتباط را به عهده دارد. اگر اطلاعات Client منطبق بر اطلاعات Listener باشد آنگاه Listener مجوز ارتباط با Server را صادر می نماید. به ازای هر پروتکل ارتباطی یک Listener جهت برقراری ارتباط با Server مورد نیاز می باشد.

شکل _ پردازش Listener و پیکربندی آن

دسترسی به بانک اطلاعاتی
کاربران بانک اطلاعاتی برای دستیابی به داده های بانک نیاز به برقراری ارتباط با Server بانک اطلاعاتی را دارند.
Server بانک اطلاعاتی با ایجاد یک Session ارتباط یک کاربر را با بانک حفظ کرده و پاسخگویی به درخواست آن کاربر را انجام می دهد. هر Server اراکل از دو ساختار فیزیکی و Instance تشکیل گردیده است. کاربران در زمان برقراری ارتباط با بانک به Instance بانکم اطلاعاتی وصل شده و ازطریق Instance درخواستها در بانک اطلاعاتی پردازش می گردد. در معماری Client/Server اراکل از یک لایه میانی به نام SQL*NET برای برقراری ارتباط استفاده می شود.
SQL*NET ابزاری بالقوه برای برقراری ارتباط با بانک اطلاعاتی می باشد و زمانی بالفعل می گردد که پارامترهای پیکربندی لازم برای این نرم افزار لایه میانی مشخص شود.

فایل پارامتری INIT.ORA
هر Instance باید یک فایل پارامتری که آن را INIT.ORA می نامند برای تنظیم پارامترها و وضعیت بانک اطلاعاتی خود داشته باشد. این فایل پارامتری در زمان Start شدن Instance توسط ابزارهای مدیریتی خوانده می شود. بعد از آنکه Instance ، Start شد این فایل پارامتری دیگر مورد نیاز نمی باشد تا دفعه بعد که Instance دوباره Start می شود. این فایل پارامتری باید بر روی کامپیوتری قرار داشته باشد که ابزارهای مدیریتی Instance در آنجا قرار گرفته اند.
فایل پارامتری Init.Ora در زمان ایجاد بانک اطلاعاتی از طریق برنامه گرافیکی Database Configuration Assistant ایجاد و تمامی پارامترهای بانک اطلاعاتی در آن ثبت می شود.

هر بانک اطلاعاتی فایل پارامتری مختص به خود را دارد که برای تنظیم همان بانک اطلاعاتی مورد استفاده قرار می گیرد.
فایل پارامتری INIT.ORA برای مشخص کردن موارد زیر مورد استفاده قرار می گیرد:
• میزان فضای قابل تخصیص به ساختار حافظه ای اراکل.
• Rollback Segment هایی که در Instance مورد استفاده قرار می گیرند.
• تنظیمات سایر زبانهایی که پشتیبانی می شود.
• تنظیمات اراکل برای حالت Parallel Server .
• بانک اطلاعاتی و Control File های آن که مورد استفاده هستند.
• زمانی که Checkpoint اعمال می شود.
• محدودیت برای ساختار های کنترلی بانک اطلاعاتی.
• تنظیمات راه اندازی (MTS) Multi-Threaded Server.
• مقدار دهی پردازش های زمینه غیر اجباری.
• نام و مسیر فایل هایی که بر روی سیستم عامل اطلاعات Trace ، Dump و سایر فایل ها را نگهداری می کنند.

به جای فایل پارامتری INIT.ORA در Oracle 10g از یک فایل به نام SPFILEsid.ORA استفاده می شود. این فایل به صورت باینری بوده و امکان تغییر آن از طریق Editor های سیستم عامل وجود ندارد. برای تغییر این فایل باید به بانک اطلاعاتی وصل شده و از طریق دستور ALTER SYSTEM پارامترهای آن را تغییر داد. به عنوان مثال برای تغییر اندازه ناحیه shared pool از SGA به اندازه 50M دستور به صورت زیر است:
ALTER SYSTEM
SET shared_pool_size=50M;
این فایل پارامترهای همواره با نام INIT.ORA مشخص می شود. اما نام Instance نیز بخشی از نام این فایل را تشکیل می دهد. این فایل پارامتری توسط Editor های سیستم عامل مانند Notepad و Wordpad قابل مشاهده و تغییر می باشد.
ترتیب پارامترها و حروف کوچک و بزرگ بودن هیچ حساسیتی را به همراه ندارد. بیش از 180 پارامتر در فایل INIT.ORA قابل تعریف می باشد. اکثر این پارامترها در محیطهایی که اراکل در آن اجرا می شود، یکسان است. تعداد این پارامترها از یک Version بانک اطلاعاتی به Version بالاتر همواره افزایش می یابد.
یک فایل پارامتری نمونه، همواره با اراکل به نام INIT.ORA وجود دارد. از این فایل پارامتری می توان برای Start کردن بانک اطلاعاتی استفاده کرد. می توان از چندین فایل

در Oracle 10g به صورت پیش فرض ابتدا جستجو برای وجود فایل SPFILEsid.ORA انجام می شود. اگر این فایل در مسیر مطلوب وجود نداشته باشد، آنگاه جستجو برای وجود فایل INIT.ORA و start بانک از طریق این فایل انجام می شود.
پارامتری برای یک Instance واحد استفاده کرد. اما در هر بار Startup بانک اطلاعاتی تنها یکی از این فایل های پارامتری قابل استفاده است. اگر بخواهیم بانک اطلاعاتی با تنظیمات دیگری Start شود ابتداء باید بانک را Shut Down و با فایل پارامتری دیگر مجدداً آنرا Start کرد.
در Oracle 9i و Oracle 10g به جای Init.Ora از یک فایل به نام SPFILEsid.ORA استفاده می شود. این فایل به صورت بانیری بوده و تنها از طریق Instance بانک اطلاعاتی قابل تغییر می باشد.
بعضی از پارامترها دارای مقدار Minimum هستند که اگر مقداری کمتر از آن در نظر گرفته شود، Instance ، Start نمی شود. تنها پارامتر اجباری در فایل INIT.ORA ، پارامتر CONTROL_FILES است که نام و مسیر Control File های Instance را مشخص می کند. Control File در زمان Startup برای مشخص کردن نام و محل Data File ها و Redo Log File های بانک اطلاعاتی مورد استفاده قرار می گیرد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اجرا شده توسط: همیار وردپرس