مقدمه
اُراكل (Or – a – cle): 1- شخصي (همچون يكي از كشيش‌هاي يونان باستان) كه يكي از خدايان از طريق وي سخن مي‌گفته است. ۲- عبارت يا پاسخ مقتدرانه يا معقول. ۳- شكل در هم ريخته Carole.
تعريف مذكور بيانگر همه چيز است، اين طور نيست؟ صحبت از اُراكل i8 است. اين همان بانك اطلاعاتي است كه تمام بانك‌هاي اطلاعاتي ديگر را مغلوب مي‌كند. اُراكل يعني عصاره تمام محصولات، بارزترين مدرك، بهترين بهترين‌ها، چيزي كه تمام حكمتها و پاسخها از آن جريان مي‌يابد. و اگر كشيش يوناني خود را براي مشاوره داشتيد، در آن صورت هيچ مشكلي براي پيدا كردن چگونگي استفاده از اين مورد مشكل‌ساز نداشتيد.
اُراكل i8 نه تنها يكي از بهترين نرم‌افزارهاي بانك اطلاعاتي رابطه‌اي است، بلكه يكي از پيچيده‌ترين آنها نيز مي‌باشد. اُراكل i8 كارهاي بسيار جالبي انجام مي‌دهد، اما كارهاي آسان‌ نيز گاهي اوقات مشكل‌ساز هستند.

شايد اُراكل i8 را از طريق اينترنت خريده باشيد. شايد از اُراكل i8 در كارهايتان استفاده مي‌كنيد. صرفنظر از اينكه چه عاملي باعث روي آوردن‌تان به اُراكل i8 شده است، مي‌خواهم يك مطلب را در همين مرحله به طور واضح مطرح كنم. موتور بانك اطلاعاتي در اختيار داريد كه حقيقتا پيچيده است و قابليتهاي بسيار زيادي دارد، اما اُراكل i8‌ فاقد زيباييهايي است كه خريداران نرم‌افزار در عصر تكنولوژي “Plug and Play” خواهانند.
اُراكل i8 به تنهايي همچون اكسس ميكروسافت يا پارادكس نيست، يعني برنامه‌هايي كه همه چيز را آماده و سهل‌الاستفاده به طور يكجا دارند. اُراكل i8 از نظر شماي ظاهري بسيار ساده است و ويژگيهاي بسيار كمي براي گزارش‌گيري و آماده‌سازي فرم‌ها دارد.
كشف اُراكل i8: برنامه‌اي كه همه چيز را يكجا دارد

در دهه ۷۰ ميلادي شخصي به نام لري اليسون نرم‌افزار بسيار بزرگي نوشت. برنامه اُراكل در يك كامپيوتر بزرگ اجرا مي‌شد و اندازه آن به قدري بزرگ بود كه تنها كامپيوترهاي بسيار بزرگ، فضا براي آن داشتند.
روزي يكي از دوستان وي اين برنامه را ديد و از وي خواست كه يك نسخه از آن را در اختيار او بگذارد، و ليكن به وي اطلاع داد كه كامپيوترش قادر به اجراي آن برنامه بزرگ نيست. بنابراين به وي پيشنهاد نمود كه چنانچه حجم برنامه‌اش را كاهش دهد، وجه قابل توجه‌اي به او پرداخت خواهد نمود.
لري اليسون پيشنهاد او را پذيرفت و در كمتر از يك سال نسخه كم‌حجم‌تري از برنامه را براي كامپيوتر كوچك وي آماده نمود. وقتي نسخه جديد برنامه به آن شخص تحويل داده شد، وي آن را «اعجاب‌انگيز» خواند.

انجام اين كار لري را بر اين فكر واداشت كه مالكين كامپيوترهاي كوچك ديگر نيز ممكن است برنامه اُراكل را بخواهند. بنابراين وي گروهي از بهترين مهندسين سرتاسر جهان را در كاليفرنيا گردهم آورد تا اُراكل را براي انواع كامپيوترها توليد كنند.
نسخه امروزي موتور اُراكل همان چيزي است كه وي رويايش را در سر مي‌پروراند. استفاده از اُراكل i8 يعني به كارگيري يك بانك اطلاعاتي بسيار قدرتمند.
هسته مركزي اُراكل i8
شكل ۱۱ موتور بانك اطلاعاتي اُراكل i8 و برنامه‌هاي خدماتي مركزي آن را نشان مي‌دهد. اين برنامه‌هاي خدماتي صرفنظر از سيستم عامل يا سخت‌افزاري كه به كار مي‌بريد، تجهيزات استاندارد همراه اُراكل i8 هستند. اين برنامه‌هاي خدماتي و خود بانك اطلاعاتي در تمام محيط‌ها به يك شكل عمل مي كنند. تنها تفاوت موجود به امكانات دروني سيستم‌هايي كه به كار مي‌بريد مربوط است و اُراكل i8 از ويژگيهاي منحصر به فرد هر كامپيوتر براي ذخيره‌سازي، خواندن، نوشتن و غيره بهره‌مند مي شود.

برنامه‌هاي خدماتي مركزي عبارتند از:
WebDB – صبر كنيد تا به موقع ببينيد كه اين برنامه خدماتي قادر به انجام چه كارهايي است! با استفاده از آن مي‌توانيد صفحه‌هاي وبي پياده‌سازي كنيد كه به صورت برنامه در بانك اطلاعاتي ذخيره مي شوند و داده‌ها را بر حسب تقاضا به اينترنت يا يك اينترانت تحويل مي‌دهند.
Enterprise Manager – استفاده از اين ويژگي كه در اُراكل ۷ به عنوان يك برنامه خدماتي افزودني معرفي شد، در اُراكل i8 نيز ادامه دارد. اين ابزار از طريق منوها و پنجره‌هايي كه براي انجام بسياري از كارهاي مديريتي بانك اطلاعاتي دارد (مثلا ايجاد جداول و تعريف كاربران جديد)، سبب صرفه‌جويي بسيار زياد در برنامه‌نويسي مي‌شود.

SQL*Plus – اين ابزار امكان ايجاد و اجراي پرس‌و‌جوها، افزودن سطرهاي جديد، تغيير داده‌ها و نوشتن گزارشها را فراهم مي‌سازد. براي استفاده از آن بايد با زبان برنامه‌نويسي SQL آشنا باشيد. زبان SQL را مي‌توانيد در تقريبا تمام بانكهاي اطلاعاتي به كار بريد.
EXP و IMP – داده‌ها را مي‌توانيد از بانك‌هاي اطلاعاتي اُراكل i8‌صادر (EXP) و يا به آن وارد (IMP) كنيد.
Precompilers – مجموعه‌اي از «پيش‌كامپايلرها» در دسترس هستند؛ در واقع، يك مورد براي هر يك از زبانهاي برنامه‌سازيي چون كوبول، Ada، C، C++، پاسكال و فرترن وجود دارد.

Assistants – ويزاردهايي در اُراكل معرفي شده‌اند كه شما را در انجام كارهايي چون انتقال از اُراكل ۷ به ۸، انتقال يك بانك اطلاعاتي اكسس به اُراكل، و تبديل ساختارهاي بانك‌هاي اطلاعاتي رابطه‌اي به شي‌ءها، گام به گام ياري مي‌كنند.
راه‌اندازي اُراكل i8
مي‌دانم كه بسياري از شما اُراكل i8 را در يك كامپيوتر بزرگ يا در يك شبكه به كار مي‌بريد. اُراكل i8 مي‌بايست به عنوان بخشي از روتين راه‌اندازي اوليه كامپيوتر آماده و اجرا شود. در غير اين صورت قادر به استفاده از Enterprise Manager نخواهيد شد. همان گونه كه در قسمت «راه‌اندازي اُراكل i8 با استفاده از Server Manager» همين فصل شرح داده شده است، يك روش ديگر براي انجام اين كار، استفاده از ابزار Server Manager در خط فرمان است.

راه‌اندازي بانك اطلاعاتي با Instance Manager
براي راه‌اندازي بانك اطلاعاتي اُراكل i8 خود به شكل ذيل عمل كنيد:
۱- Instance Manager را اجرا كنيد.
اگر از ويندوز ۹۵، ۹۸ يا NT استفاده مي‌كنيد، گزينه‌هاي زير را از منو انتخاب كنيد
Start Programs Oracle HOME2 DBA Management pack Instance Manager
دقت كنيد كه ممكن است نام Oracle HOME2 در كامپيوترتان Oracle HOME1 باشد. نام دقيق اين فرمان توسط شخصي كه نرم‌افزار را بر روي كامپيوتر نصب مي‌كند مشخص مي‌شود.
اگر از يونيكس استفاده مي‌كنيد، فرمان ذيل را در مقابل خط فرمان سيستم عامل تايپ كنيد:
Oemapp instance
صفحه آغازين Oracle Instance Manager را مشاهده خواهيد كرد. سپس پنجره برقراري ارتباط همچون شكل ۲-۱ ظاهر مي‌شود.
۲- با استفاده از نام كاربري INTERNAL ارتباط برقرار كنيد.
دگمه راديويي “Connect directly to a database” را انتخاب كنيد. INTERNAL را به عنوان نام كاربري وارد و از ORACLE (يا كلمه عبور جاري) به عنوان كلمه عبور استفاده كنيد. كادر Service را خالي گذاشته و يا نام گره شبكه اُراكل را تايپ كنيد.

نماد تصويري Database نزديك بالاي ساختار درختي است كه در پنجرة سمت چپ نشان داده شده است. وقتي اين نماد تصويري را به وسيله ماوس برمي‌گزينيد، در وضعيت متمايز قرار مي‌گيرد. سپس تصوير چراغ راهنمايي در پنجرة سمت راست ظاهر مي‌شود. سبز بودن چراغ آن نشانگر باز بودن و اجراي بانك اطلاعاتي است. چنانچه چراغ آن قرمز رنگ باشد، بانك اطلاعاتي بسته است و نياز به اجرا دارد. چراغ زرد رنگ نيز نمايانگر آن است كه بانك اطلاعاتي اجرا يا نصب شده و ليكن براي كار باز نشده است.

۳- در صورت نياز، بانك اطلاعاتي را اجرا كنيد.
اگر چراغ راهنمايي قرمز است، بانك اطلاعاتي را اجرا كنيد. براي اين كار، دگمه راديويي Database Open را در پنجرة سمت راست به وسيله ماوس برگزينيد. سپس، Apply را به وسيله ماوس برگزينيد. از شما سؤال خواهد شد كه از كدام پارامترهاي مقداردهي اوليه استفاده شود. OK را به وسيله ماوس برگزينيد تا از مجموعه پارامترهاي پيش‌فرض استفاده شود. سپس پيامي مبني بر اجراي اُراكل i8 نمايش داده مي شود. OK را يك مرتبه ديگر به وسيله ماوس برگزينيد تا چراغ راهنمايي سبز رنگ را مشاهده كنيد.

۴- كادر (*) گوشه بالايي سمت راست را به وسيله ماوس برگزينيد تا از Instance Manager خارج شويد. اينك مي‌توانيد قسمتهاي مختلف بانك اطلاعاتي را بررسي كنيد.
قطع اجراي اُراكل i 8
قسمتهاي ذيل شيوه قطع اجراي بانك اطلاعاتي را نشان مي‌دهند.
به هنگام قطع اجراي بانك اطلاعاتي خود دقت كنيد، به ويژه اگر بانك اطلاعاتي را در شبكه به اشتراك گذاشته‌ايد. كاربران ديگر نيز ممكن است در حال استفاده از آن باشند. اجراي اُراكل i8 را تنها پس از كسب اجازه از DBA خود قطع كنيد. پس از حصول اطمينان از اينكه همه كاربران، كار خود را با بانك اطلاعاتي به پايان رسانده‌اند، اجراي آن را قطع كنيد.

قطع اجراي اُراكل i8 در Desktop
اُراكل i8 راه‌حل ساده‌اي براي قطع اجراي بانك اطلاعاتي فراهم كرده است. Instance Manager مي‌تواند اين كار را مديريت كند. با انجام كارهاي ذيل مي‌توانيد اجراي اُراكل i8 را با استفاده از ابزار مذكور قطع كنيد.
۱- Instance Manager را اجرا كنيد.
اگر از ويندوز ۹۵، ۹۸ يا NT استفاده مي‌كنيد، فرمان زير را به وسيله ماوس برگزينيد.
Start Programs Oracle HOME2 DBA Management pack Instance Manager
اگر از يونيكس استفاده مي‌كنيد، فرمان ذيل را تايپ كنيد:
Oemapp instance
پنجره برقراري ارتباط ظاهر ‌شده و اطلاعات لازم را درخواست مي‌كند.
۲- با استفاده از نام كاربري INTERNAL ارتباط برقرار كنيد.
كادرهاي پنجرة برقراري ارتباط را پر كنيد؛ INTERNAL را به عنوان ID كاربري وارد كنيد و كلمه عبور متناظر با آن را نيز وارد كنيد. كلمه عبور پيش‌فرض آن ORACLE است.
۳- كارهاي اين مرحله را تنها در صورتي كه پارامترهاي خود را تغيير داده و يا هيچگاه پيش از اين اجراي اُراكل i8 به وسيله Instance Manager قطع نكرده‌ايد، انجام دهيد. براي اينكه پارامترها را ذخيره كنيد، Initialization Parameters را در بخش سمت چپ به وسيله ماوس برگزينيد. پارامترهاي بانك اطلاعاتي خود را مشاهده خواهيد كرد. دگمه Save را در بخش سمت راست به وسيله ماوس برگزينيد.

۴- دگمه راديويي Shutdown را انتخاب و Apply را به وسيله ماوس برگزينيد.
همان گونه كه در شكل ۲۰-۱ نشان داده شده است، فهرستي از گزينه‌ها ظاهر مي‌شود. اين گزينه‌ها نشان دهندة روشهاي مختلف قطع اجراي بانك اطلاعاتي هستند.
۵- Immediate (گزينه پيش‌فرض) را انتخاب و OK را به وسيله ماوس برگزينيد.
شرح گزينه‌هاي ديگر در ذيل آورده شده است.
Normal – قطع اجراي اُراكل i8 با استفاده از اين گزينه بيشتر طول مي‌كشد، اما روند كار به گونه‌اي است كه به تمام كاربران فرصت داده مي‌شود تا كارهاي خود را پيش از قطع اجراي بانك اطلاعاتي كامل كنند. از اين گزينه در مواقعي استفاده كنيد كه به كاربران هشدار داده‌ايد كه ارتباط خود را قطع كنند و مي‌خواهيد قطع اجراي بانك اطلاعاتي تا كامل شدن كار آنها به تعويق بيفتد.

Abort – اين گزينه براي مواقعي است كه اجراي بانك اطلاعاتي با استفاده از گزينه‌هاي Normal يا Immediate قطع نمي‌شود. از اين گزينه در مواقعي استفاده كنيد كه بانك اطلاعاتي به فرامين پاسخ نمي‌دهد، و يا اقدام به قطع اجراي آن ناقص مانده است.
اُراكل i8 پيامي را ارسال مي‌كند و به آگاهيتان مي‌رساند كه پيش از قطع اجرا، آنقدر در انتظار مي‌ماند تا همه كاربران كار خود را به پايان برسانند. OK را به وسيله ماوس برگزينيد. صبر كنيد تا اُراكل i8 كارش را انجام دهد. اُراكل i8 شما را به Instance Manager باز مي‌گرداند. خواهيد ديد كه چراغ راهنمايي قرمز رنگ است.
۶- Instance Manager را ببنديد.

كادر (*) را در گوشه بالايي سمت راست پنجره به وسيله ماوس برگزينيد.
اينك بانك اطلاعاتي بسته شده و در صورت تمايل مي‌توانيد كامپيوتر خود را خاموش كنيد.

قطع اجراي اُراكل i8 در يك كامپيوتر بزرگ يا شبكه
اجراي اُراكل i8 را بدون كسب اجازه از DBA خود قطع نكنيد. در كامپيوترهاي بزرگ، پردازشهايي كه نياز به بانك اطلاعاتي دارند ممكن است در حال اجرا باشند – پردازشهايي كه ممكن است از وجودشان آگاه نباشيد. برخي از پردازشها به گونه‌اي زمانبندي مي‌شوند تا پس از ساعات اداري اجرا شوند تا تأثيري بر عمليات معمول نداشته باشند.
اگر فردي به عنوان DBA تعيين شده است، به وي اطلاع دهيد. در غير اين صورت، براي آشنايي با فرمان خاصي كه براي قطع اجراي اُراكل i8 است، به دفترچه راهنماي اُراكل i8 رجوع كنيد. همان گونه كه در قسمت پيش شرح داده شد، متداولترين روش براي قطع اجراي اُراكل i8، استفاده از Instance Manager است.
انواع كارهايي كه مي‌توانيد با اُراكل i8 انجام دهيد

در اين قسمت سه سناريو مطرح شده‌اند كه شما را در درك بهتر كارهايي كه بانك‌هاي اطلاعاتي مي‌توانند در دنياي واقعي انجام دهند ياري مي‌كنند. اميدوارم از مطالعه آنها لذت ببريد. از قوه تخيل خود به خوبي استفاده كنيد و ببينيد كه چه كارهايي مي‌توانيد با استفاده از بانك اطلاعاتي خود انجام دهيد.

حفظ و نگهداري اطلاعات ماهيها (مثال آسان)
چرا ماهيهاي يك آكواريم در مواقعي كه دنياي آبي‌شان ساكت مي‌شود، و در «گهوارة» حبابها و امواج آرام قرار دارند اين قدر مضطرب مي‌شوند. گمان مي‌كنم اگر من هم چشمانم دائما از پشت آن شيشه‌ها به چشمهاي گرد و بزرگ مي افتاد، مضطرب مي‌شدم.
به مثال آكواريم باز مي گرديم. مواردي كه بايد بر روي آنها كار كنيد در ذيل فهرست شده‌اند:
– حجم آب آكواريم يك گالن است.
– روزي يك مرتبه به Wesley غذا مي‌دهيم.
– آب آكواريم را هر ۱۴ روز يك بار عوض مي‌كنيم.
– سه عدد از ماهيها مرده‌اند. نوشته سنگ قبر آنها به شرح ذيل است:
Fish Two – تاريخ تولد ۱/۱/۹۶، تاريخ مرگ ۱۵/۳/۹۶٫
Fish Three – تاريخ تولد ۱/۱/۹۶، تاريخ مرگ ۸/۴/۹۶٫
Fish Four – تاريخ تولد ۱/۳/۹۶، تاريخ مرگ نامعلوم.
حفظ و نگهداري اطلاعات فروشگاه حيوانات خانگي (مثال نسبتا دشوار)
من غذاي ماهيهاي خود را از فروشگاهي كه در نزديكي خانه‌ام است خريداري مي‌كنم. اين فروشگاه محل فروش قفس پرندگان، قلاده سگ، پودر شيرين و چند صد مورد ديگر است، از جمله پرندگان، خرگوش و حتي ميمون. برخي از فعاليتهاي گوناگون مالك فروشگاه در ارتباط با بانك اطلاعاتي اين كار عبارتند از:

– حفظ و نگهداري اطلاعات تمام اقلام فروشگاه، قيمت خريد، قيمت فروش و موجودي انبار
– محاسبه ماليات فروش
– محاسبه مجدد موجودي انبار به هنگام فروش
– تهيه ترازهاي مالي ماهيانه
– تهيه گزارشهاي مالياتي ساليانه
– حفظ و نگهداري نام و نشاني مشتريان
– چاپ نامه‌هاي شخصي براي تبليغ
– چاپ برچسبهاي پستي
محاسبه و حفظ و نگهداري خودكار موجودي انبار – انجام اين كار مستلزم برنامه‌سازي و نوشتن Trigger براي بانك اطلاعاتي است كه از حوصله اين كتاب خارج است.
محاسبه ماليات به هنگام فروش – براي محاسبه ماليات به هنگام فروش به يك Trigger در بانك اطلاعاتي و يا يك ابزار اضافي (مثلا (Oracle Forms نياز خواهيد داشت.

استفاده از توابع دروني اُراكل i8
اُراكل i8 با توابع دروني زيادي عرضه مي‌شود. برخي از اين توابع را مي‌توانيد براي پردازش و مديريت خروجي پرس‌وجوي خود به كار بريد. با به كارگيري اين توابع در عبارت WHERE مي‌توانيد پرس‌وجوهاي واقعا منحصر به فرد بنويسيد. در دو قسمت آتي دو مورد از توابع متداولتر بررسي شده اند: TO – CHAR و CONCATENATE
تغيير فرمت تاريخ با تابع TO – CHAR
يكي از توابعي كه كاربرد بيشتري دارد، TO – CHAR است كه به شما امكان مي‌دهد تا فرمت تاريخ را به هنگام نمايش تغيير دهيد.
مثال قسمت پيش را يك مرتبه ديگر در نظر بگيريد. فرض كنيد مي‌خواهيم براي برخي از خريداران، كارت تبريك توليد ارسال كنيم. پرس‌وجويي براي مشاهده تاريخ توليد هر يك از خريداران (در جدول CLIENT) مي‌نويسيم. با استفاده از تابع TO – CHAR مي‌توانيم مشخص كنيم كه هر يك از آنها در چه روزي از هفته متولد شده اند. پرس‌وجوي انجام اين كار در ذيل نشان داده شده است.

SELECT CUST – ID’ NAME’
TO – CHAR (BIRTH – DATE’ ‘MM/DD/YY’) “BIRTHDATE” ‘
TO – CHAR (BIRTH – DATE’ DAY’) “BIRTHDATE” ‘
FROM CLIENT
ORDER BY BIRTH – DATE
نتايج پرس‌وجوي بالا:
CUST ID NAME Birthdate Birthday
1 Jane 06/11/59 Thursday
4 Amy 09/25/63 Wednesday
2 Jobe 05/30/66 Monday
3 Harry 10/14/71 Thursday
5 Jimmy 01/07/74 Monday
تابع TO – CHAR چند پارامتر دارد كه با استفاده از آنها مي‌توانيد فرمت تاريخ را به هر شكلي كه مي‌خواهيد تغيير دهيد.
داده‌هاي نوع تاريخ شامل زمان و تاريخ هستند. اگر زماني خاصي را مشخص نكنيد، اُراكل i8 زمان پيش‌فرض نيمه‌شب را در نظر مي‌گيرد. از تابع TO – CHAR براي مشاهده زمان استفاده كنيد. به عنوان مثال: TO – CHAR (birthdate, ‘mm/dd/yy hh: mi’)، تاريخ و ساعت تولد را نمايش مي‌دهد.

ادغام ستونها با استفاده از تابع (II CONCATENATE)
به آساني مي‌توانيد دو ستون را ادغام و به صورت واحد نمايش دهيد. شيوه انجام اين كار به شرح ذيل است:
تعداد ادغام (II) را بين دو ستون قرار دهيد. اگر يكي از ستونها از نوع تاريخ است، تابع TO – CHAR را به آن بيفزاييد تا به يك ستون كاراكتري تبديل شود.
مثال مجموعه حوري دريايي را يك مرتبه ديگر در نظر بگيريد. فهرست نمونه جلبكها بر اساس نام تهيه مي‌شود و «خوراكي بودن» هر يك از آنها پس از نامش در بين پرانتز نمايش داده مي‌شود. پرس‌وجوي انجام اين كار به شرح ذيل است.
SELECT SAMPLE – ID’
SAMPLE – DESCRIPTION II’ (‘II EDIBLE II’)’ DESCRIPTION
FROM SEAWEED – SAMPLE SS’
TYPE – OF – SEAWEED TS
WHERE TS. TYPE – ID = SS. TYPE – ID;
گروه‌بندي و خلاصه‌سازي داده‌ها
SUM – مجموع مقادير يك ستون خاص را در تمام سطرهاي انتخاب محاسبه مي‌كند.
MIN – كمترين مقدار يك ستون خاص را در تمام سطرهاي انتخابي محاسبه مي‌كند.
MAX – بيشترين مقدار يك ستون خاص را در تمام سطرهاي انتخاب محاسبه مي‌كند.
COUNT – تعداد سطرهاي انتخابي را شمارش مي‌كند.

تغيير داده‌ها
قدرت واقعي SQL از اين جهت كه همزمان بر تعداد زيادي از سطرها عمل مي‌كند، آشكار است. يك فرمان به تنهايي مي‌تواند تمام سطرهاي يك جدول را تغيير دهد. با استفاده از همان تكنيكهاي گرد‌آوري سطرها در يك گزارش مي‌توانيد همزمان تعداد زيادي از سطرها را تغيير دهيد. روند انجام اين كار در اين قسمت تجزيه شده است. سه فرمان اصلي اين كار عبارتند از: UPDATE، INSERT و DELETE. هر يك از فرامين اجزاي جالبي دارند.