۱۳۸۹ شهریور ۲۵, پنجشنبه

ديدگاههاي شيي ( object views )

درپايگاه داده ي رابطه اي شي گراي اوراكل يك ديدگاه شيي به شما اجازه ي بازيابي , به روز رساني ,حذف و يا اضافه داده اي را مي دهد كه به عنوان يك نوع شي ذخيره شده باشد .همچنين شما مي توانيد ديدگاههايي با ستون هايي از نوع شي مانند REFs و مجموعه ها ( جدولهاي تو در تو ) تعريف كنيد.

ديدگاههاي مادي (Materialized Views) :
اين نوع ديدگاهها اشيايي از شما هستند كه مي توانيد براي خلاصه سازي( summarize ) , محاسبه كردنcompute) ) , تكرار كردن ( replicate ) و توزيع كردن (  distribute ) داده مورد استفاده قرار گيرد. آنها براي محيطهاي محاسبه اي گوناگون مثل پشتيباني كردن از تصميم گيري ها (decision support ), انبار كردن داده (data warehousing) و محاسبات توزيع شده يا متحرك  (distributed or mobile computing) مناسب مي باشد .
•    در data warehousing , اين نوع ديدگاهها براي ,  محاسبه كردن و  ذخيره نمودن داده ي اجتماع شده , مانند جمع ها و ميانگين ها, مورد استفاده قرار مي گيرد. در اين گونه محيطها معمولا اين ديدگاهها به عنوان summaries , ارجاع داده مي شوند. چرا كه آنها داده ي خلاصه شده را ذخيره مي كنند. همچنين از اين ديدگاه براي محاسبه كردن join ها با يا بدون تجمع استفاده مي شود.
•    در محيطهاي توزيع شده , از اين ديدگاهها براي تكرار داده در سايتهاي توزيع شده و انجام به روز رساني هاي همزمان در چندين سايت , با متدهاي حل تضادها , استفاده مي شود.
•    در محيطهاي محاسبه ي متحرك , از اين ديدگاه براي بارگذاري زير مجموعه اي از داده ي سرور مركزي به مشتري متحرك استفاده مي شود, البته بوسيله ي تازه سازيها دوره اي از طرف سرور مركزي به مشتري و نيز انتشار به روز رساني هاي انجام شده توسط مشتري , به سمت سرور مركزي.
اين ديدگاهها در چندين مورد شبيه به ايندكس هستند , از جمله :
•    براي انبار كردن فضايي را مصرف مي كنند.
•    چنانچه داده در جدول اصلي تغيير يابد , آنها هم بايد تجديد ( refresh ) شوند.
•    آنها كارايي SQL را , زمانيكه براي برنامه نويسي بكار مي رود بهتر مي كند.
•    موجوديت آنها براي برنامه ي كاربردي و كاربران ناپيدا ( transparent ) است.
برخلاف ايندكس ها , اين نوع ديدگاهها مي تواند به طور مستقيم با استفاده از عبارت select مورد دسترسي قرار بگيرند . همچنين اين ديدگاهها , وابسته به نوع تازه سازي كه مورد نياز است مي توانند مستقيما در عبارت DELETE , UPDATEوINSERT مورد دسترسي قرار گيرد.

ديد گاهها ( Views )

ديدگاه نمايش مناسبي از داده اي است كه توسط يك يا بيشتر از يك جدول  و يا ساير ديدگاهها در بر گرفته شده است . در واقع ديدگاه خروجي يك درخواست (query ) را مي گيرد و با آن به عنوان يك جدول برخورد مي كند . بنابراين  , ديدگاه مي تواند تصويري از يك درخواست ذخيره شده و يا يك جدول مجازي باشد . شما مي توانيد از يك ديدگاه در بيشتر مكانهايي كه استفاده مي كرديد استفاده كنيد .
به عنوان , جدول employees شامل چند ستون و بيشمار رديف حاوي اطلاعات است . چنانچه بخوانيد كاربران فقط پنج تا از اين ستونها و يا فقط تعداد مشخصي از رديف ها را ببينند كافيست ديدگاهي از آن جدول را براي كاربراني كه به آن دسترسي دارند , ايجاد نمايند . 

ساختار منطقي اوراكل

ساختار منطقي اوراكل از دو عنصر تشكيل شده است Tablespace و Schema :
 Tablespace
بانك اطلاعاتي اوراكل به صورت منطقي به يك يا چند قسمت تقسيم شده است كه به آن قسمت‌ها Tablespaceمي‌گويند. در حقيقت Tablespace گروه‌بندي منطقي اطلاعاتي است كه به هم ارتباط دارند. Tablespace  معمولاً تحت نظر مدير پايگاه داده يا DBAها قرار دارند و به او اجازه مي‌دهند كارهاي زير را انجام دهد:
- براي افزايش كارايي بانك اطلاعاتي، منابع داده را به دستگاه‌هاي مختلف اختصاص دهد.
 –ميزان فضاي ديسك را در پايگاه داده كنترل نمايد.
 - براي هر كاربر ميزان مشخصي فضا در نظر بگيرد.
 - عمليات كپي پشتيبان و به‌روزآوري اطلاعات را به صورت جزيي انجام دهد.
هر پايگاه داده حداقل داراي يك Tablespace به نام  SYSTEM و يك Tablespace به نام SYSAUX است كه به صورت خودكار در موقع توليد پايگاه جديد توليد مي‌گردد. اگرچه مي‌توانيم در SYSTEM Tablespace و SYSAUX پايگاه كوچك ديگري قرار دهيم، توصيه مي‌شود براي هر كاربر بانك اطلاعاتي يك Tablespace جديد توليد گردد.
اوراكل ازاين دو Tablespace براي ذخيره اطلاعاتي مانند Data Dictionary استفاده مي كند كه در خود اطلاعات MetaData را انبار مي‌كند. اين اطلاعات شامل داده‌هايي همچون سطوح دسترسي و اطلاعات كليدهاي اصلي جداول است.
هر Tablespace دراوراكل شامل يك يا چند DataFile است كه اطلاعات را در خود ذخيره مي‌كنند. اين DataFileها خود شامل DataBlock ،Extentها و Segmentها مي‌شوند.
Data Block ها كه بعضي مواقع به آن‌ها Page ،Oracle block  و logical block نيز مي‌گويند، مكاني هستند كه اطلاعات اوراكل مستقيماً در آن ذخيره مي‌شود و اوراكل از فضاي خالي اين Data Blockها استفاده مي‌كند
Extentsها مجموعه‌اي از DataBlockها هستند كه براي ذخيره نوع خاصي از اطلاعات به كار گرفته مي‌شوند. بعد Extentها در رده بالاتراز  Segmentها قرار دارند كه مجموعه‌اي از extentها هستند كه در يك Tablespace مشخص ذخيره مي‌گردند.
مثلاً تمامي اطلاعات جدول در data segment خود ذخيره مي‌شود و ايندكس‌هاي هر داده در index segment خاص خود ذخيره مي‌شوند. پايگاه داده اوراكل مي‌تواند علاوه بر دو Segment ذكر شده، از Segmentهاي Rollback كه اطلاعات Rollback را ذخيره مي‌كند و Segment به نام Temporary كه براي دستورات SQL مانند مرتب‌سازي به كار گرفته مي‌شوند نيز استفاده كند.
Schema :
Schema در واقع مجموعه اي از اشيا با ساختار منطقي مي باشد كه اجازه ي ديدن اطلاعات پايگاه داده را به ما مي دهد .
تمامي اشياي منطقي از قبيل:
Tables
Cluster
Indexes
Views
Stored procedures
Triggers
Sequences
جدول ها ( tables ) :
جدول ها, واحد اساسي از نگه داري داده در يك پايگاه داده اوراكل هستند. داده در رديف ها و ستون ها ذخيره مي شود.  جدول با يك نام ( مانند employee ) ومجموعه اي از ستون ها تعريف مي شود. به هر ستون يك نام ( مانند employee_id, last_name, job_id ) , يك نوع داده ( مانند Number,char,nvarchar ) و يك عرض مي دهيد . عرض مي تواند به وسيله ي يك نوع داده مثل DATE , از قبل تعيين گردد . چنانچه ستون ها از نوع Nmber باشد به جاي عرض , دقت ( precision ) و مقياس ( Scale ) تعريف مي شوند . رديف مجموعه اي از اطلاعات يك ستون مطابق با يك ركورد منفرد مي باشد .
 شما مي توانيد براي ستون هاي يك جدول , قوانيني مشخص نماييد . اين قوانين , محدوديت هاي يكپارچگي ناميده مي شوند . يك مثال از اين محدوديت ها را مي توان Null نبودن برشمرد . اين محدوديت , ستون را مجبور مي سازد كه براي هر رديف حتما مقداري را داشته باشد .پس از اينكه جدولي را ايجاد نموديد , رديف هايي از جدول را با استفاده از جملات SQL وارد مي كنيد.
شكل زير مثالي از يك جدول به نام emp مي باشد :

 

بررسي اجمالي Application Architecture ( معماري نرم افزار )


http://blogs.oracle.com/reynolds/gems/SOASuiteArchitecture.PNG

دو راه معمول براي معماري پايگاه داده وجود دارد :
Client / server و معماري چند لايه
معماري client /server
براي مجموعه اي از كارهاي مرتبط سيستم چند پردازشي بيشتر از سيستم تك پردازشي مورد استفاده قرار مي گيرد .
از نگاه كلي، برنامه نويسي توزيع شده به مجموعه اي از كامپوننت‌هاي فيزيكي مجزّا اشاره دارد كه مجموعا به‌عنوان يك سيستم واحد عمل مي‌كنند. در اينجا منظور از «كامپوننت‌هاي فيزيكي مجزّا»، چندين پردازنده (CPU)، يا حتي چندين كامپيوتر در شبكه است. بنابراين عملكرد و توانايي كلي سيستم افزايش مي يابد .
يك پايگاه داده ي اوراكل با استفاده از معماري client/server نسبت به پردازش توزيعي برتري مي يابد. در اين معماري , پايگاه داده به دو بخش client يا front-end و server يا back-end تقسيم مي شود .
Client :
يك نرم افزار پايگاه داده است كه درخواست خود را براي اجرا شدن به سرور پايگاه داده مي دهد كه اين درخواستها بوسيله ي سرور پردازش و مديريت مي شود . ايستگاه كاري client مي تواند بهبود يابد . براي مثال ممكن است به فضاي ديسك زيادي نياز نداشته باشد ولي ممكن است به توانايي گرافيكي زيادتري نياز داشته باشد.
Server :
سرور نرم افزار اوراكل را اجرا مي كند و توابعي كه براي دسترسي موازي نياز است را پشتيباني مي كند . سرور جملات sql و pl/sql را از نرم افزار كاربر دريافت و پردازش مي كند . كامپيوتري كه سرور را مديريت مي كند مي تواند  بهبود يابد . براي مثال فضاي ديسك زياد و پردازنده ي سريع داشته باشد .
معماري چندلايه :
معماري چندلايه شامل مولفه هاي زير است :
•    Client يا وارد كننده ي دستورات پردازشي
•    يك يا چند سرور كه بخشي از پردازش را انجام مي دهد .   همچنين سرور دسترسي به داده ها را براي client فراهم مي كند و بسياري از درخواستها را انجام مي دهد .
•    يك سروري كه داده هايي را كه در پردازش استفاده مي شود را ذخيره مي كند .
اين معماري كارهاي زير را براي يك سرور قادر مي سازد :
•     client را از لحاظ معتبر بودن چك مي كند .
•    به سرور اوراكل متصل مي كند.
•    درخواستي را كه از طرف client دريافت شده را اجرا مي كند .

بررسي اجمالي ساختار فيزيكي اوراكل
لايه فيزيکي بانک اطلاعاتي ORACLE از سه نوع فايل تشکيل شده است:
 Data File:
 هر بانك اطلاعاتي اوراكل شامل يك يا چند 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 اي ايجاد نمود که بخشي از فضاي خود را از يک پارتيشن و بخشي از پارتيشن ديگر سيستم عامل دريافت کرده باشد.

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

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

Oracle Available


 يکي از رقابت‌هاي موجود در بين پياده‌سازي ساختارهاي Grid توسط شرکت ها در فناوري‌اطلاعات، پيش‌بيني Downtime  هاي پايگاه داده و ارايه راه‌حل‌هاي متفاوت بسته به نوع مشکل به وجود آمده با استفاده از تکنولوژي Grid Computing است.
ORACLE  با توجه به تقسيم‌بندي عواملي که باعث در دسترس نبودن يک پايگاه داده مي‌شود راه‌حل‌هاي متفاوتي را ارايه کرده است.