سيستم مديريت بانک اطلاعاتي رابطه اي اراكل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 هاي بانك اطلاعاتي مورد استفاده قرار مي گيرد.