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

همانطور که پیشتر به آن اشاره شد ساختار منطقی دسترسی کاربران را به ساختار فیزیکی ممکن می سازد. در حقیقت ساختار منطقی 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 رو خریده و به همین شدت داره توسعه پیدا میکنه تا جایی که امروزه شرکت اوراکل خطوط هوایی داره و جزوی از سهامداران شرکت تویوتا است.

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

ExecutorService

شما میتونید به تعداد دلخواه ترد رو بهش واگذار کنید تا ترد ها همزمان ولی با تعداد مشخص اجرا کنه، مثلا میگید 10 تا ترد رو بگیر و دوتا دوتا اجرا کن، ترد اول و دوم رو اجرا میکنه وقتی مثلا ترد اول کارش تموم شد میره سراغ ترد سوم و الا آخر

۱۲ اسفند ۹۳ ، ۱۳:۲۵
مهدی غفاری

زبان 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: درج رکورد جدید و یا تغییر رکوردهای موجود

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

مهمونی هالووین

توضیح مسئله

الکس با دوست‌دخترش سیلویا تو یه مهمونی هالووین شرکت‌کرده. سیلویا تو مهمونی چشمش می‌خوره به یه شکلات تخته‌ای بزرگ. اگه شکلات رو فقط بشه یک در یک قسمت کرد، و الکس هم اون رو دقیقا k بار قسمت کنه، کمترین تعداد تکه‌شکلاتی که الکس می‌تونه به سیلویا بده چند تاس؟

فرمت ورودی

فرمت خروجی

محدودیت‌ها

نکات

نمونه ورودی #00

نمونه خروجی #00

توضیح

۲۵ دی ۹۳ ، ۱۹:۳۳
مهدی غفاری

تفاوت فانکشن و متد

هر زمان زیر یک کلاس فانکشن تعریف شود اسمش میشود متد

فانکشن آزاده و تو کلاس تعریف نمیشه

(متدی که اول اجرا میشه متد main است)

تفاوت فانکشن و پروسیجر

Procedur = return نداره

Function = return داره

 

۲۸ شهریور ۹۳ ، ۱۷:۳۵
مهدی غفاری

برنامه‌نویسی شی‌گراء

پکیج به خونه تشبیه میشه

کلاس به آدم، آدم دارای ۲ مشخصه است (رفتار(method) و خصوصیت(متغیری که در سطح کلاس تعریف بشه property))

خصوصیت مثل: موهای مشکی، وزن، جنسیت، نوع اخلاق و ... (دلالت بر وضعیت یک موجود داره)

رفتار: درس دادن، غذا خوردن، راه رفتن، خوابیدن (دلالت بر انجام یک کار داره (دلالت بر انجام یک فعل))

 

۲۸ شهریور ۹۳ ، ۱۷:۳۵
مهدی غفاری

آرایه ۲ بعدی

یک آرایه ۲ بعدی

۱۰ طبقه داره هر طبقه ۱۲ واحده

طبقه اندیسش از ۰ شروع میشه

واحدها هم از ۰ شروع میشن

 

۲۸ شهریور ۹۳ ، ۱۷:۳۵
مهدی غفاری