۸۶ مطلب با کلمه‌ی کلیدی «اوراکل» ثبت شده است

پرسش و پاسخ

س: آیا ساختار کش ساختاری منسجم است؟

ج: بله - ولی به طور دستی قابلیت ویرایش توسط DBA را ندارد مگر با برنامه‌نویسی از طریق SQLJ

نکته: با SQLJ حتی می‌توان روش رمزنگاری اوراکل را هم عوض کرد.

س: وقتی تعداد داده‌های جدول در دیتابیس زیاد باشد آیا موقع کوئری گرفتن تمام این جدول به یکباره کش می‌شود؟

ج: اگر تعداد داده‌های جدول شما خیلی زیاد باشد که امکان کش بصورت یکباره وجود نداشته باشد اوراکل جدول را تکه تکه کش می‌کند. و در این صورت سیستم کش اوراکل از بیس رفته است. به طور مثال اگه حدول شما بسیار بزرگ باشد و رم کافی نداشته باشید اوراکل تکه تکه جدول رو درون فضای SGA می‌آورد و روی PGA پردازش را انجام می‌دهد و اگر به داده مورد نظر خود نرسد تکه فعلی را از فضای SGA بیرونن می‌برد و تکه بعدی را وارد فضای SGA می‌کند تا پردازش آن صورت گیرد.

س: زمانی که اوراکل چند جدول را کش کرده است و برای کش کردن جدول جدید دیگر فضای رمی نداریم چه اتفاقی می‌افتد؟

ج: اوراکل جدولی را که کمتر بهش ارجاع شده است را از کش بیرون می‌برد و جدول جدید را کش می‌کند.

س: اگر ما ۱۰ میلیون رکورد داشته باشیم و بخوایم روی این ۱۰ میلیون رکورد کوئری بزنیم اوراکل تا چه مقدار توانایی انجام سریع این کوئری رو داره؟

ج: اگر شما ۱۰ میلیون رکورد داشته باشید و بخواین روی این ۱۰ میلیون رکورد کوئری بزنید و RAM کافی نداشته باشیم نه تنها اوراکل خوب عمل نمی‌کنه بلکه ضعیف هم عمل نمی‌کنه (این مطلب در مورد تمام دیتابیس‌ها صادقه، چون شما باید محفظه کش‌ات حداقل اندازه result هات باشه)

به خاطر همین موضوع ما از SI به محیط RAC سوییچ می‌کنیم چون هرچه قدر هم سرور ما قوی باشه جوابگو SGA نیست چون وقتی دیتای ما که تو هارده نزدیک 20exabyte باشه شما هیچ رمی رو نمی‌تونید روی یک سرور بذارید که فضای SGA بتونه این حجم اطلاعات رو بالا بیاره و کش کنه(البته ۲۰ اگزابایت ما وقتی میاد رو RAM میشه نزدیک ۵ اگزابایت ولی باز ما همچین رمی رو نمی‌تونیم برای یک سرور در حالت SI پیدا کنیم) برای همین ما ورود پیدا می‌کنیم به محیط RAC که در این محیط ما دیگر یک فضای SGA نداریم و مجموعه‌ای از کلاسترها رو داریم که مثلاً هر کلاستر ۶۴ گیگ RAM داره(حالا وقتی ما صحبت از ۲۰ اگزابایت می‌کنیم حتماً نیاز به ۱۰۰۰ کلاستر ۶۴ گیگ RAM داریم که بتونیم از اون کش استفاده کنیم)

س: فضای SGA و PGA چقدر است؟

ج: این فضا موقع نصب توسط DBA از درصدی از مقدار رم شما مشخص می‌شود. همچنین بعد از نصب در صورت نیاز به تغییر قابل تغییر است.

ادامه مطلب...
۰۳ فروردين ۹۴ ، ۰۱:۲۲ ۰ نظر
مهدی غفاری

معماری بانک‌اطلاعاتی اوراکل - ساختار منطقی

همانطور که پیشتر به آن اشاره شد ساختار منطقی دسترسی کاربران را به ساختار فیزیکی ممکن می سازد. در حقیقت ساختار منطقی Data Base از دو واحد اساسی تشکیل شده است:

  • حافظه SGA  یا همان System Global Area
  • حافظه PGA یا همان Program Global Area

پردازشات خود بانک اطلاعاتی و Cashe کردن داده ها در حافظه SGA انجام می پذیرد، این حافظه بین تمام کاربران بانک اطلاعاتی مشترک می‌باشد.

نکته: اوراکل تنها یکبار اطلاعات رو از DataFile میخواند و در فضای SGA کش می‌کند.

ادامه مطلب...
۲۱ اسفند ۹۳ ، ۲۰:۰۲ ۰ نظر
مهدی غفاری

معماری بانک‌اطلاعاتی اوراکل - ساختار فیزیکی

یادآوری

رابطه میان user و owner و schema؟

در حقیقت owner همان schema است، schema هم همان user است، یوزر وقتی مالک چیزی است به آن schema یا owner گفته می‌شود.

نکته: در sqlserver یوزر و schema از همدیگه جدان و ما schema جدا بغیر از یوزر هم داریم که به یوزر کاری نداره. در حقیقت دیتابیس یه نوع schema است.

بخش‌بندی DataBase

هر بانک اطلاعاتی شامل دو ساختار فیزیکی و منطقی است. ساختار فیزیکی همان فایل هایی هستند که بر روی هارد دیسک ذخیره می‌شوند (DataBase)، ساختار منطقی نیز دسترسی کاربران را به ساختار فیزیکی مقدور می سازد (DataBase Instance).

در حقیقت اطلاعات در قسمت Physical ذخیره میشه ولی تا لایه Logical بالا نباشه شما از لایه Phusical نمی‌تونید استفاده کنید. واکشی و ریختن اطلاعات از لایه یا بر لایه Phusical نیازمند بالا بودن بایه Logical است.

اگه بخوایم خیلی ساده بیان کنیم لایه Loical روی CPU و RAM شماست و لایه Physical روی هارد دیسک شماست.

برای اینکه بخوایم به هارد دسترسی داشته باشیم حتماً باید از CPU, RAM استفاده کنیم تا بتونیم یه پردازشی رو استارت کنیم.

نکته:در زمانهایی اگر بیان کردیم instance بالاست یا پایینه منظورمون لایه Logical است.

همچنین در نکاهی کلی اگر instance پایین باشه شما نمی‌تونید با دیتابیس در ارتباط باشید حتی اگه لایه Physical وجود داشته باشه.

ادامه مطلب...
۲۱ اسفند ۹۳ ، ۰۹:۵۸ ۲ نظر
مهدی غفاری

مفاهیم پایه بانک‌اطلاعاتی

به اطلاعات زیر دقت کنید:

نام فامیل شهر
مهدی غفاری تهران
احسان جلالی تهران
فرزاد کارخانی تهران

تعریف داده(Data): به موجودیت مهدی یا جلالی یا تهران داده می‌گویند.

تعریف فیلد(Field): به موجودیتی که درون خودش داده رو ذخیره میکنه فیلد می‌گویند. مثل: نام، فامیل، شهر

تعریف رکورد(Record): به مجموعه‌ای از داده‌ها که در کنار هم قرار بگیرن و یک موجودیت رو تفسیر کنن رکورد می‌گویند. مثل: مهدی غفاری تهران که مهدی غفاری رو تفسیر میکنه

تعریف جدول(Table): به مجموعه فیلدها جدول می‌گویند.

ادامه مطلب...
۲۱ اسفند ۹۳ ، ۰۹:۵۶ ۳ نظر
مهدی غفاری

مفاهیم بنیادی

از ویکیپدیا: در عصر کلاسیک، وخشور یا وخشگر یا هاتف یا اوراکل (به انگلیسی: Oracle) واسطه‌ای بود که گمان می‌رفت بتواند اندرزها و مشاوره‌های بخردانه بدهد یا پیشگویی و پیش‌بینی و غیبگویی کند یا ملهَم از وقایع آینده باشد و به نوعی مورد عنایت خدایان قرار گرفته باشد.

اولین چیزی که باید بدونیم اینه که بانک‌اطلاعاتی اوراکل (دیتابیس اوراکل) محصول شرکتی است به نام شرکت اوراکل و این شرکت ایران رو تحریم کرده و ما از داخل ایران حتی نمی‌تونیم محصولات اوراکل رو دانلود کنیم. همچنین اوراکل یکی از گرونترین بانک‌های اطلاعاتی جهانه.

البته این گرونی بابت خود محصول اوارکل نیست و تو فاز توسعه (Development) محصول مجانیه.

ولی وقتی وارد فاز (Production) می‌شید باید برای خرید لایسنس اقدام کنید، البته این لایسنس فقط برای پشتیبانی محصول‌ه.

نکته: بانک‌اطلاعاتی پیچیده‌ای مثل اوراکل حتماً احتیاج به پشتیبانی از سمت خود شرکت اوراکل رو داره.

شرکت اوراکل در دهه ۷۰ میلادی توسط شخصی بنام لارنس (لری) الیسون تأسیس شد. اولین مشتری شرکت اوراکل CIA بوده و امروزه اوراکل یکی از بزرگترین و قدرتمندترین شرکت‌های حوزه It محسوب میشه، این در صورتیه که شرکت اوراکل PeopleSoft رو خریده Sun Microsystems رو خریده چون Sun رو خریده پس هم صاحب Java و هم Mysql شده همچنین Weblogic رو خریده و به همین شدت داره توسعه پیدا میکنه تا جایی که امروزه شرکت اوراکل خطوط هوایی داره و جزوی از سهامداران شرکت تویوتا است.

ادامه مطلب...
۲۱ اسفند ۹۳ ، ۰۹:۴۶ ۰ نظر
مهدی غفاری

زبان SQL

SQL یک زبان غیر رویه‌ای (non procedural) می‌باشد. یعنی از طریق SQL انجام Query و تغییرات در بانک‌های اطلاعاتی انجام می‌شود بدون این که کاربر چگونگی انجام کار را برای SQL مشخص نماید. 
در SQL امکان تعریف تابع، شرط و حلقه وجود ندارد. برای حل این مشکل، Oracle از بسط یافتن زبان SQL به نام PL/SQL استفاده می‌کند. 

در نگاه کلی به SQL، دستورات آن به ۵ گروه زیر تقسیم می‌شوند: 

  1. (Data Manipulate Language (DML: برای جستجو و یا تغییر داده‌ها
  2. (Data Definition Language (DDL: برای تعریف ساختار بانک‌اطلاعاتی
  3. (Data Control Language (DCL: برای تعریف سطح دسترسی کاربران به بانک‌اطلاعاتی
  4. (Data Query Language (DQL: برای بازیابی اطلاعات
  5. (Transaction Control Language (TCL: برای کنترل تراکنش‌ها


دستورات DML به 4 دسته زیر تقسیم می شوند:

  1. Insert: افزودن رکوردهای جدید به یک جدول
  2. Update: تغییر رکوردهای موجود یک جدول
  3. Delete: حذف رکوردهای موجود یک جدول
  4. Merge: درج رکورد جدید و یا تغییر رکوردهای موجود

ادامه مطلب...
۱۱ اسفند ۹۳ ، ۱۵:۴۳
مهدی غفاری