اوراکل پر استفاده ترین پایگاه داده ها در سراسر دنیا است.
تقریبا می توان گفت که اوراکل روی هر نوع کامپیوتر از کامپیوتر شخصی و مکینتاش گرفته تا مینی کامپیوتر ها وکامپیوتر های بزرگ (mainframe) کار می کند.
اوراکل تقریبا روی تمام ماشین ها به یک شکل واحد عمل می کند، به طوری که وقتی کار کردن با آن را روی یک ماشین آموختید می توانید روی هر ماشین دیگری نیز از آن استفاده کنید این واقعیت باعث شده که اوراکل کاربران و ایجاد کنندگان بسیاری داشته و از سویی نیز دانش ومهارت اوراکل افراد بسیار قابل حمل باشد.
اوراکل یک نرم افزار مدیریت پایگاه های دادهای رابطه ای (جدولی) است.
در طبقه بندی سیستم های رابطه ای، اوراکل را جزو سیستم های رابطه ای کامل و هم ردیف سیستم هایی چون supra, Informix می دانند.
اما آنچه که این محصول را از نوع مشابه آن متمایز می کند سهولت یادگیری و استفاده، سهولت نصب و راه اندازی، امنیت مثال زدنی، سرعت قابل قبول و امکانات و ابزارهای فراوان آن است.
تردیدی نیست که سیستم های رابطه ای و از جمله اوراکل، به جهت طبیعت کندشان، در زمینه هایی چون کاربردهای بلادرنگ، قابل استفاده نیستند، اما از سویی نیز توانمندی آنها در ذخیره ی کارا، بازیابی سریع و نیز مدیریت دقیق داده های یک سازمان، در قالبی ساخت یافته و سهل، غیر قابل انکار است.
این تحقیق به زیر مجموعه ای از کارهای (یا توابع در دسترس) مدیر پایگاه داده ها (DBA) می پردازد که توسط اکثر کاربران اوراکل استفاده می شوند- کارهایی که محدود به DBA نیستند.
شاخص های روی جدول ها، خوشه ها،مولدهای دنباله (sequence generator) و تخصیص فضا برای جدول ها و شاخص ها از این دسته هستند.
این تحقیق چگونگی ساختاردهی پایگاه های داده ای اوراکل به صورت داخلی را نشان می دهد، که به درک روش عملکرد واقعی بسیاری از ویژگی های آن و چگونگی ارتباط بین آنها کمک می کند.
فقط گزینه های محدودی از فرمان های create index create cluster , create ,tablespac در این تحقیق ارائه خواهند شد.
گزینه های کامل در مراجع الفبایی اوراکل ارائه شده اند.
تغییر محیط اوراکل
شاخص ها
شاخص (index) (یا نمایه) مفهوم ساده ای است.
شاخص نوعا فهرستی از کلمات کلیدی است همراه با محل قرار گیری اطلاعات مربوط به یک موضوع 
اگر چه شاخص ها لزوما برای اجرای اوراکل ضروری نیستند، اما باعث تسریع انجام امور می شوند.
به عنوان مثال اگر بخواهید اطلاعات در مورد شاخص ها را در این تحقیق با خواندن مطالب از ابتدا تا زمان مواجهه با صفحه ی شامل آن اطلاعات بیابید این کار به کندی و با اتلاف وقت انجام خواهد شد.
ولی چون شاخص موجود در انتهای این تحقیق به ترتیب حروف الفبا مرتب شده است.
(بدون خواندن تمامی مدخل ها) سریعا می توانید نقطه ی مناسب یعنی کلمه (شاخص) را در آن پیدا کنید.
مشخص است که این روش سریع تر از مطالعه کل تحقیق به نتیجه می رسد.
همین اصول در مورد شاخص ها در اوراکل نیز صادق هستند.
جدول HOCKEY را در نظر بگیرید.
 Select from HOCKEY از میان جدول های معدودی که در عمل استفاده خواهید کرد، تعداد اندکی به کوچکی جدول HOCKEY هستند و به ندرت ترتیب حروف الفبا درآنها رعایت می شود.
در پرس و جوی زیر از اوراکل می خواهیم که یک تیم خاص را بر اساس تعداد پیروزی های آن بیابید: Select Team, won, lost, Tied From HOCKEY Where won= 20 اگر جدول HOCKEY فاقد شاخصی روی ستون won باشد، اوراکل مجبور خواهد بود که همه ی سطرهای جدول را یک به یک بخواند تا نیمی را پیدا کند که با شرط موجود در عبارت where در پرس و جوی مذکور مطابقت داشته باشد.
می توانید برای سرعت بخشیدن به این فراروند، شاخصی روی ستون won ایجاد کنید.
اگر بعدا همان پرس و جوی قبلی را اجرا کنید، اوراکل ابتدا به شاخص، که به ترتیب عددی مرتب شده، نگاه می کند، بدین ترتیب خیلی سریع تیمی را پیدا می کند که 20 پیروزی دارد (اوراکل تمامی مدخل ها را نمی خواند و مستقیما به نزدیکی تیمی مراجعه می کند که تعداد پیروزی های آن به عدد مورد نظر نزدیک تر باشد.
این عمل بسیار مشابه با عملی است که هنگام جستجو در شاخص تحقیق می شود ) سپس مدخل شاخص، موقعیت دقیق سطر مربوط به تیم Montreal را در جدول (و روی دیسک) به اوراکل می دهد.
با دانستن این موضوع، مشخص می شود که ایجاد شاخص روی یک ستون مهم (ستونی که در عبارت where ذکرخواهد شد) چگونه سرعت اوراکل را در پاسخگویی به پرس و جوها بالا می برد.
همچنین ایجاد شاخص روی ستون های مرتبط (به وسیله ی عبارت where) سرعت اجرای پرس و جوهایی را که روی دو جدول پیوند خورده انجام می شوند، افزایش می دهد.
اینها مبانی شاخص بندی هستند مطالب باقی مانده در این تحقیق برخی ویژگیهای دیگر و موارد مرتبط با شاخص بندی را نشان می دهند که در سرعت انجام کارها تاثیر دارند.
ایجاد شاخص فرمان زیر اساسی ترین شیوه ی ایجاد شاخص است.
Create (bitmap) [unique] index on table (, []…) index باید یک اسم منحصر به فرد باشد و از قواعد نام گذاری ستون ها در اوراکل پیروی کند.
Table اسم جدولی است که شاخص روی آن ساخته خواهد شد و column نام ستون مورد نظر است شاخص های نقش بیتی (bitmap) که از اوراکل 3/7 به بعد در دسترس هستند این امکان را فراهم می آورند که شاخص های سودمندی روی ستون های حاوی مقادیر محدود مجزا (distinct) ایجاد شوند بخش ایجاد شاخص نقش بیتی را در ادامه ی این تحقیق ببینید.
می توانید با نوشتن نام چند ستون به صورت متوالی که با علامت کاما (،) از هم جدا شده اند، یک شاخص منفرد روی ستون های متعدد ایجاد کنید.
جدول WORKERSKILL را به یاد آورید.
کلید اصلی این جدول، ترکیبی از نام (Name) و مهارت (skill) هر کارگر است.
پرس و جوی زیر جدول نشان داده شده در بالای شکل 1-19 را تولید می کند: Select ROWID, Name skill, Ability From WORKERSKILL در این مثال RowID نیز انتخاب شده است.
این مقدار، موقعیت داخلی هر سطر (مانند سر شماری صفحه در کتاب) را مشخص می کند که اوراکل هنگام ذخیره ی سطرهای داده در جدول از آن استفاده می کند حال شاخص روی کلید اصلی ایجاد می شود: Create index workerskill name skill on worker (name,.
skill) این روش نام گذاری شاخص به وسیله ترکیب نام جدول و ستون، به طول حداکثر 30 کاراکتر، یک روش عملی و سودمند است.
اصلا نیازی به دانستن نام شاخص در پرس وجوها یا هر فرمان دیگر SQL ندارید اوراکل هر گاه به آن نیاز پیدا کند، به صورت خود کار آن را به کار خواهد برد.
همچنین هر گاه شاخص های ایجاد شده را فهرست (یا حذف) می کنید، فورا با مشاهده ی نام آنها، کار آنها را متوجه خواهید شد (نام شاخص ها در دیدی از فرهنگ داده ها با نام USER- INDEXES ذخیره می شوند و می توانید روی آن دید پرس و جو نیز انجام دهید) شاخص های اوراکل شبیه جدول دوم در شکل 1-19 هستند شکل 1-19: جدول WORKERSKILL و شاخص آن وقتی پرس و جویی مشابه با پرس و جوی زیر را اجرا می کنید.
Select Neme, skill, Ability From WORKERSKILL Where Name= And skill= WOODCUTTER اوراکل Name و Skill را در شاخص یافته RowID (یعنی E AAAsYABQAAAAAAGzAA ) را برداشته و سپس اطلاعات موجود در سطر مربوط به این RowID را از جدول WORKERSKILL می خواند.
شاخص در قالبی است که به عنوان درخت دودویی (B-Tree) توصیف می شود و بدین معنی است که دارای ساختاری شبیه به یک درخت با گره ها و برگ ها است و هر گاه سطر جدیدی در جدول درج می شود، به صورت خود کار ساختار خود را بازسازی می کند توصیف طرز کار درخت های دودویی از حدود این تحقیق خارج است ولی می توانید مطالب مربوط به آنها را در بسیاری از متون کامپیوتری بیابید.
چند بخش باقی مانده برخی از موارد مربوط به نحوه ی استفاده از شاخص ها را در بر می گیرند.
اعمال یکتایی می گوییم مجموعه ای از جدول ها در شکل نرمال سوم هستند اگر تمامی ستون های هر سطر ازجدول فقط به کلید اصلی وابسته باشند.
در جدول WORKERSKILL کلید اصلی، ترکیبی از Name و Skill است.
در سایر جدول ها کلید اصلی ممکن است شماره ی شناسایی کارمند، شماره ی شناسایی مشتری، شماره ی حساب یا در بانک ها، ترکیبی از شماره ی شعبه و شماره ی حساب باشد.
در هر یک از این موارد، یکتایی کلید اصلی بسیار حائز اهمیت است.
بانکی که در آن دو شماره ی حساب تکراری وجود داشته، یا یک سیستم صدور صورت حساب که دو شماره ی شناسایی تکراری برای مشتری های خود دارد، هنگام ارسال صورت کارکرد به حساب های متعلق به افراد مختلف ولی با همان کلید اصلی، خرابی به بار خواهد آورد (به همین دلیل است که معمولا از نام به عنوان کلید اصلی استفاده نمی شود- چرا که موارد یکسان بسیار فراوان است).
برای اجتناب از این خطر از پایگاه داده های خود کمک بگیرید تا از ایجاد کلیدهای اصلی تکراری جلوگیری شود.
اوراکل دو امکان پیشنهاد می کند می توانید یکتایی کلید اصلی را با شاخص بندی یا اعمال قیدها تضمین کنید و یا می توانید مولدهای دنباله را به کار ببرید.
ایجاد شاخص یکتا برای ایجاد شاخص که یکتایی کلید اصلی را (خواه کلید اصلی تک ستونی باشد یا چند ستونی) تضمین کنید، مانند آنچه که روی جدول WORKERSKILL وجود دارد از قید کلید اصی روی ستون های کلید در جمله ی create table استفاده کنید.
همچنین می توانید از جمله create uniqu index استفاده کنید ولی اگر از قبل موارد تکراری وجود داشته باشند این جمله شکست خواهد خورد.
اگر از قید کلید اصلی استفاده می کنید هیچ گاه موارد تکراری نخواهید داشت.
در صورتی که جمله یcreate uniue index با موفقیت به انجام برسد، درج (یا بهنگام سازی) هر سطری که باعث ایجاد کلید تکررای شود شکست خورده و پیغام خطای زیر را نتیجه خواهد کرد.
ERROR at line 1: ORA-0001: duplicate value in index ممکن است شرایطی پیش بیاید که بخواهید یکتایی را روی چیز دیگری غیر از کلید اصلی اعمال کنید، در این صورت قید یکتایی انجام این کار را برای شما میسر می سازد.
به عنوان مثال، اگر در جدولی برای هر شخصی شماره ی تامین اجتماعی را نیز اضافه کنید و کلید اصلی یک دنباله باشد ممکن است بخواهید با کمک قید یکتایی، از یکتایی ستون social security نیز مطئمن شوید.
به عنوان مثال جدول STOCK را در نظر بگیرید.
ستون company، کلید اصلی آن است اگر چه symbol کلید اصلی نیست اما ستون symbol نیز باید یکتا باشد.
برای اعمال یکتایی روی هر دوی این ستون ها، هنگام ایجاد جدول به صورت نشان داده شده در زیر، دو قید جداگانه ایجاد کنید.
Create table STOCK Company ( VARCHAR2 (20) primary key Symbol VARCHAR2 (6) unique, Industry VARCHAR2 (15) Closeyesterdey NUMBER (6,2) Closetoday NUMBER (6,2) Volume NUMBER اوراکل هنگام ایجاد قیدهای کلید اصلی و یکتایی برای جدول SROCK به صورت خودکار شاخص های یکتایی را برای اعمال این قیدها ایجاد خواهد کرد.
ایجاد شاخص نقش بیتی (Bitmap) برای کمک به تنظیم کارایی پرس و جوهایی که در شرط های محدود کننده ی آنها از ستون هایی استفاده شده که معیار انتخاب نیستند، می توانید شاخص های نقش بیتی را به کار ببرید.
از آن جا که شاخص های نقش بیتی بر هزینه ی تمامی تراکنش های دستکاری داده ها در جدول های مربوط می افزایند، فقط باید در صورتی به کار گرفته شوند که داده ها به ندرت به هنگام سازی می شوند.
شاخص های نقش بینی وقتی مناسب هستند که ستون های استفاده شده در شرط های محدود کننده ی پرس و جو معیار انتخاب نیستند.
به عنوان مثال اگر تعداد مقادیر متمایز Lodging در یک جدول بسیار بزرگ WORKER بسیار اندک باشد، ممکن است حتی با وجود متداول بودن به کار گیری Lodging در عبارت های where، مایل به ایجاد شاخص B-tree روی این ستون نباشید.
ولی Lodging می تواند از مزیت شاخص نقش بیتی سود ببرد.
به صورت داخلی شاخص نقش بیتی مقادیر مجزای ستون ها را به هر رکورد می نگارد (map) می کند.
در مورد این مثال فرض کنید در یک جدول بسیار بزرگ WORKER فقط دو مقدار Lodging (MATTS, WEITBROCHT) وجود دارند.
از آنجا که دو مقدار lodging وجود دارد، برای شاخص نقش بیتی مربوط به lodging نیز دو مدخل نقش بیتی مجزا وجود خواهد داشت.
اگر در پنج سطر اول جدول، مقدار lodging برابر MATTS و در پنج سطر بعدی مقدار lodging برابر WEITBROCHT باشد، در آن صورت مدخل های نقش