Forwarded from Academy and Foundation unixmens | Your skills, Your future (yashar esmaildokht 🐧)
کتابی که در مورد openstreetmap نوشتم تقدیم عزیزان , جامعه متن باز نیازمند مشارکت همگان جهت بهبود و توسعه نقشه های باز هست , در این راه به یکدیگر و خودمان کمک کنیم , نقشه باز کاربردهای گسترده و بسیار زیاد دارد , هرگونه انتقاد و پیشنهاد را در مورد کتاب پذیرا هستم
با تشکرات فراوان
یاشار اسمعیل دخت
با تشکرات فراوان
یاشار اسمعیل دخت
Forwarded from ديدهبان محيط زيست ایران
تراز سطح آب دریاچه اروميه در تاريخ ۹۷/۵/۱۵ نسبت به روز مشابه در سال قبل یک سانتیمتر، وسعت دریاچه ۱۲/۱۱ کیلومتر مربع و حجم آب موجود در دریاچه ۰/۰۲ميليارد مترمکعب افزایش یافت.
دیده بان محیط زیست
iew.ir
دیده بان محیط زیست
iew.ir
Forwarded from CEIT Students | مهندسی کامپیوتر و فناوری اطلاعات
Social Mapper یک ابزار متن باز و مفید که به هکرهای قانونی اجازه تست فرایند ردیابی فعالیت کاربران در رسانه های اجتماعی را می دهد
#security #social_media @unixmens
#security #social_media @unixmens
ویژگی Private Temporary Table
با کمک این ویژگی اوراکل 18c، جدول موقتی در سطح یک session یا transaction ایجاد می شود طوری که session دیگری امکان دسترسی به ان را ندارد همچنین با پایان یافتن session یا transaction، این جدول هم حذف خواهد شد.
فراداده(metadata) مربوط به این جداول معمولا در حافظه ذخیره می شوند(البته امکان ذخیره موقت ان در temporary tablespace هم وجود دارد).
این نوع از جداول باید با پیشوند مشخصی ایجاد شوند که این پیشوند از طریق پارامتر private_temp_table_prefix مشخص می شود:
SQL> show parameter private
NAME VALUE
—---------------------------------- —---------------—
SQL> alter system set private_temp_table_prefix='ORA$usef_' scope=spfile;
این نوع از جداول در دو سطح session و transaction قابل تعریف می باشند که به طور پیش فرض(در صورت عدم اعمال نظر در این زمینه)، با پایان یافتن یک transaction، جدول هم حذف خواهد شد.
برای ایجاد جدول در سطح transaction، می توان از عبارت "ON COMMIT DROP DEFINITION" استفاده کرد و استفاده از عبارت "ON COMMIT PRESERVE DEFINITION" هم سبب خواهد شد تا این جدول تا پایان یافتن یک session باقی بماند:
ایجاد جدول در سطح transaction:
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 (name varchar2(9),last_name varchar2(9)) ON COMMIT DROP DEFINITION;
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 (name varchar2(9),last_name varchar2(9)) ON COMMIT PRESERVE DEFINITION;
NAME LAST_NAME
—------- —-------
VAHID USEFZADEH
ضمن در نظر داشتن این مقدمات، جدول موقت یا private temp tableی را در session شماره یک ایجاد می کنیم:
[oracle@ol7 ~]$ sqlplus "usef/a@PDB"
SQL> insert into ORA$usef_TBL1 values('VAHID','USEFZADEH');
select username,sid,serial# from v$session where sid in(SELECT sid FROM v$mystat WHERE ROWNUM = 1);
با توجه به اینکه فراداده مربوط به این نوع از جداول در حافظه ذخیره می شود، پس امکان ایجاد انها در حالت read only هم ممکن می باشد:
SQL> select OPEN_MODE,DATABASE_ROLE from v$database;
OPEN_MODE DATABASE_ROLE
—------------------ —------------—
READ ONLY PHYSICAL STANDBY
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 (name varchar2(9),last_name varchar2(9));
SQL> select SID,SERIAL#,TABLE_NAME from USER_PRIVATE_TEMP_TABLES;
SID SERIAL# TABLE_NAME
—------— —------— —------------------
377 10668 ORA$USEF_TBL1
پ.ن 2: برای مشاهده همه PTTها هم می توان از ویوی DBA_PRIVATE_TEMP_TABLES کمک گرفت.
پ.ن 3: این نوع از جداول بسیاری از قابلیتهای جداول پایدار، نظیر ایجاد ایندکس، پارتیشن بندی، جمع اوری آمار و ... را پشتیبانی نمی کنند.
#oracle @unixmens
با کمک این ویژگی اوراکل 18c، جدول موقتی در سطح یک session یا transaction ایجاد می شود طوری که session دیگری امکان دسترسی به ان را ندارد همچنین با پایان یافتن session یا transaction، این جدول هم حذف خواهد شد.
فراداده(metadata) مربوط به این جداول معمولا در حافظه ذخیره می شوند(البته امکان ذخیره موقت ان در temporary tablespace هم وجود دارد).
این نوع از جداول باید با پیشوند مشخصی ایجاد شوند که این پیشوند از طریق پارامتر private_temp_table_prefix مشخص می شود:
SQL> show parameter private
NAME VALUE
—---------------------------------- —---------------—
private_temp_table_prefix ORA$PTT_
البته این پیشوند به شرط استفاده از عبارت ORA$ در ابتدای نام و همچنین منحصربفرد بودن ان در بین اسامی اشیاها، قابل تغییر می باشد:SQL> alter system set private_temp_table_prefix='ORA$usef_' scope=spfile;
System altered.
این نوع از جداول در دو سطح session و transaction قابل تعریف می باشند که به طور پیش فرض(در صورت عدم اعمال نظر در این زمینه)، با پایان یافتن یک transaction، جدول هم حذف خواهد شد.
برای ایجاد جدول در سطح transaction، می توان از عبارت "ON COMMIT DROP DEFINITION" استفاده کرد و استفاده از عبارت "ON COMMIT PRESERVE DEFINITION" هم سبب خواهد شد تا این جدول تا پایان یافتن یک session باقی بماند:
ایجاد جدول در سطح transaction:
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 (name varchar2(9),last_name varchar2(9)) ON COMMIT DROP DEFINITION;
Table created.
SQL> insert into ORA$usef_TBL1 values('VAHID','USEFZADEH');1 row created.
SQL> commit;Commit complete.
SQL> select * from ORA$usef_TBL1;ORA-00942: table or view does not exist
ایجاد جدول در سطح session:SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 (name varchar2(9),last_name varchar2(9)) ON COMMIT PRESERVE DEFINITION;
Table created.
SQL> insert into ORA$usef_TBL1 values('VAHID','USEFZADEH');1 row created.
SQL> commit;Commit complete.
SQL> select * from ORA$usef_TBL1;NAME LAST_NAME
—------- —-------
VAHID USEFZADEH
ضمن در نظر داشتن این مقدمات، جدول موقت یا private temp tableی را در session شماره یک ایجاد می کنیم:
[oracle@ol7 ~]$ sqlplus "usef/a@PDB"
SQL*Plus: Release 18.0.0.0.0 Production on Wed Apr 11 16:07:37 2018
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 (name varchar2(9),last_name varchar2(9)) ON COMMIT PRESERVE DEFINITION;Table created.
اطلاعاتی را به این جدول اضافه می کنیم:SQL> insert into ORA$usef_TBL1 values('VAHID','USEFZADEH');
1 row created.
SQL> commit;Commit complete.
در همین حال، با session جدیدی به این pdb متصل شده و جدولی هم نام با جدول قبلی را در این یوزر ایجاد می کنیم:select username,sid,serial# from v$session where sid in(SELECT sid FROM v$mystat WHERE ROWNUM = 1);
USERNAME SID SERIAL#
—------------------ —------— —------—
USEF 287 1657
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 as select * from v$datafile;Table created.
همانطور که قابل مشاهده است، دو جدول با یک نام مشترک توسط کاربر usef ایجاد شده است که هر کدام در سطح session قابل دسترسی هستند.با توجه به اینکه فراداده مربوط به این نوع از جداول در حافظه ذخیره می شود، پس امکان ایجاد انها در حالت read only هم ممکن می باشد:
SQL> select OPEN_MODE,DATABASE_ROLE from v$database;
OPEN_MODE DATABASE_ROLE
—------------------ —------------—
READ ONLY PHYSICAL STANDBY
SQL> CREATE PRIVATE TEMPORARY TABLE ORA$usef_TBL1 (name varchar2(9),last_name varchar2(9));
Table created.
پ.ن 1: برای مشاهده مشخصات این نوع از جدوال در session جاری، می توان از ویوی USER_PRIVATE_TEMP_TABLES استفاده کرد:SQL> select SID,SERIAL#,TABLE_NAME from USER_PRIVATE_TEMP_TABLES;
SID SERIAL# TABLE_NAME
—------— —------— —------------------
377 10668 ORA$USEF_TBL1
پ.ن 2: برای مشاهده همه PTTها هم می توان از ویوی DBA_PRIVATE_TEMP_TABLES کمک گرفت.
پ.ن 3: این نوع از جداول بسیاری از قابلیتهای جداول پایدار، نظیر ایجاد ایندکس، پارتیشن بندی، جمع اوری آمار و ... را پشتیبانی نمی کنند.
#oracle @unixmens
مهمترین تفاوت معماری RDBMS با سایر معماریها استفاده از SQL در دستیابی به داده ها می باشد.در زبان غیر رویه ای چگونگی انجام کار تعریف نمی شود، بلکه درخواست توسط یک زبان شبه انگلیسی مطرح می گردد.مثلا در دستور select * from emp که توسط SQL اجرا می گردد، کاربر تنها درخواست خود را مطرح می کند. محل ذخیره شدن جدول emp، چگونگی بازنمودن جدول، چگونگی دستیابی به داده ها و نمایش آن از قبل در این معماری مشخص گردیده است.ولی در یک زبان رویه ای یا procedural تمامی مراحل فراخوانی داده باید برای سیستم مشخص گردد.
زبان غیر رویه ای خود به زبانهای کوچکتر تقسیم می گردد به شرح زیر:
The Data Query Language(DQL)
The Data Manipulation Language(DML)
The Data Definition Language(DDL)
The Data Control Language(DCL)
The Transaction Control Language(TCL)
The Data Query Language(DQL)
The Data Manipulation Language(DML)
The Data Definition Language(DDL)
The Data Control Language(DCL)
The Transaction Control Language(TCL)
معماری اوراکل:
هر سیستم RDBMS اوراکل متشکل از دو قسمت زیر می باشد:
1-Database
2-Instance
قسمت Database شامل فایلهای فیزیکی و قسمتهایی منطقی مانند schema بانک اطلاعاتی می باشد.
منظور از Instance روشی است که برای دستیابی به داده ها به کار می رود و شامل پردازشها و حافظه سیستم می باشد.
بانک اطلاعاتی اوراکل شامل یک لایه منطقی و یک لایه فیزیکی است.
لایه فیزیکی شامل فایلهایی است که در دیسک قرار دارند.
لایه منطقی نیز لایه ای است که عناصر آن ،داده ها را به لایه فیزیکی منتقل می کنند.
لایه فیزیکی اوراکل از سه نوع فایل تشکیل شده است که عبارتند از:
1- یک یا چند فایل داده ای یا data file
2- دو یا چند فایل redo log
3- یک یا چند فایل کنترلی یا control file
در زیر شرح هر کدام از این فایلها آورده شده است.
هر سیستم RDBMS اوراکل متشکل از دو قسمت زیر می باشد:
1-Database
2-Instance
قسمت Database شامل فایلهای فیزیکی و قسمتهایی منطقی مانند schema بانک اطلاعاتی می باشد.
منظور از Instance روشی است که برای دستیابی به داده ها به کار می رود و شامل پردازشها و حافظه سیستم می باشد.
بانک اطلاعاتی اوراکل شامل یک لایه منطقی و یک لایه فیزیکی است.
لایه فیزیکی شامل فایلهایی است که در دیسک قرار دارند.
لایه منطقی نیز لایه ای است که عناصر آن ،داده ها را به لایه فیزیکی منتقل می کنند.
لایه فیزیکی اوراکل از سه نوع فایل تشکیل شده است که عبارتند از:
1- یک یا چند فایل داده ای یا data file
2- دو یا چند فایل redo log
3- یک یا چند فایل کنترلی یا control file
در زیر شرح هر کدام از این فایلها آورده شده است.
2-فایلهای redo log اطلاعاتی را نگهداری می کنند که هنگام خرابی سیستم برای recovery آن مورد استفاده قرار می گیرند.این فایلها تمامی تغییرات اعمال شده بر روی یک پایگاه داده را نگهداری می کنند. به طور پیش فرض سه فایل redo log وجود دارد که به صورت چرخشی مورد استفاده قرار می گیرند به طوریکه بعد از پر شدن log file جاری یک عمل log switch انجام شده و Log بعدی به عنوان log جاری یا current تغییر می کند.
3-فایلهای کنترلی یا control fileها حاوی اطلاعاتی چون: نام بانک اطلاعاتی،تاریخ و زمان ایجاد Data file ها و Redo log file های بانک اطلاعاتی هستند که برای start شدن یک instance مورد نیاز می باشند. بدون این فایلها امکان دستیابی به سایر ساختارهای فیزیکی در زمان start شدن بانک اطلاعاتی وجود ندارد. بدلیل اهمیت زیاد این فایلها باید به خوبی از آنها محافظت شود. در اوراکل با مکانیزم mirror کردن چند نسخه از این فایلها نگهداری می شود. اطلاعات زیر در control file ها نگهداری می گردد:
🔵 نام بانک اطلاعاتی
🔵 تاریخ ایجاد بانک اطلاعاتی
🔵 شناسه (ID) یکتای بانک اطلاعاتی
🔵 آخرین شماره تغییر بانک اطلاعاتی SCN
🔵 نام و مسیر data file های بانک اطلاعاتی
🔵 نام و مسیر control file های بانک اطلاعاتی
🔵 وضعیت بانک اطلاعاتی از لحاظ قرار داشتن یا قرار نداشتن در حالت Archived log mode
🔵نام redo log file جاری
🔵 اطلاعات مربوط به Tablespace های بانک اطلاعاتی
🔵 اطلاعات مربوط به RMAN backup
🔵 نام بانک اطلاعاتی
🔵 تاریخ ایجاد بانک اطلاعاتی
🔵 شناسه (ID) یکتای بانک اطلاعاتی
🔵 آخرین شماره تغییر بانک اطلاعاتی SCN
🔵 نام و مسیر data file های بانک اطلاعاتی
🔵 نام و مسیر control file های بانک اطلاعاتی
🔵 وضعیت بانک اطلاعاتی از لحاظ قرار داشتن یا قرار نداشتن در حالت Archived log mode
🔵نام redo log file جاری
🔵 اطلاعات مربوط به Tablespace های بانک اطلاعاتی
🔵 اطلاعات مربوط به RMAN backup
داده ها در یک بانک اطلاعاتی اوراکل به دو گروه تقسیم می گردند:
Metadata
Data
به مجموعه اطلاعاتی که بانک اطلاعاتی برای procedural کردن درخواستهای non-procedural به آن نیاز دارد metadata گفته می شود.مجموعه این metadata ها از طریق data dictionary views قابل دسترسی و مشاهده می باشند.مثلا دیدگاه DBA_TABLES وظیفه نگهداری metadataهای جداول ایجاد شده در بانک اطلاعاتی را برعهده دارد. همچنین مثالهای زیر را داریم.
دیدگاه DBA_USERS اطلاعاتی در مورد تمامی کاربران پایگاه داده را در خود دارد.
دیدگاه DBA_VIEWS اطلاعاتی در مورد همه VIEW ها (دیدگاه ها) رادر خود دارد.
و مثال آخر دیدگاه DBA_TAB_COLUMNS که نام و نوع داده همه ستونهای جداول در پایگاه داده را در خود دارد.
یکسری از نکات:
تمامی metadata های بانک اطلاعاتی در Data dictionary ذخیره می شود.
خود data dictionary در یک tablespace به نام SYSTEM ذخیره می گردد.
مفهوم Data به داده های جداولی که توسط ما در بانک اطلاعاتی ذخیره گردیده اطلاق می گردد.
Dynamic Performance Views
تمامی این دیدگاه ها با پیشوند $V آغاز شده و محتوی آنها به فعالیت بانک اطلاعاتی بستگی دارد. تمامی این view ها در زمان shutdown شدن بانک اطلاعاتی خالی شده و در startup بعدی بر مبنای فعالیت بانک پر می شوند.
چند مثال از Dynamic Performance view ها:
دیدگاه V$DATABASE شامل اطلاعاتی در مورد خود پایگاه داده مانند نام پایگاه داده و زمان ایجاد آن می باشد.
دیدگاه V$VERSION نسخه پایگاه داده ای که در حال استفاده است را نشان می دهد.
دیدگاه V$OPTION اجزای اختیاری که در پایگاه داده نصب شده اند را نمایش می دهد.
دیدگاه V$SQL اطلاعاتی در مورد دستور SQL ای که کاربران پایگاه داده اجرا کرده اند نمایش می دهد.
مفاهیم اولیه:
سیستم مدیریت بانک اطلاعاتی رابطه ای (RDBMS):
یک بانک اطلاعاتی رابطه ای مجموعه ای از روابط و جداول دوبعدی است.
دسترسی کاربران به بانک اطلاعاتی رابطه ای: در یک مدل رابطه ای تمامی اشیاء بانک اطلاعاتی به صورت غیر مستقیم در اختیار کاربران بانک اطلاعاتی قرار می گیرند.یعنی کاربران بانک اطلاعاتی مستقیما به جداول و سایر اشیاء بانک اطلاعاتی که بر روی دیسک قرار می گیرند، دسترسی ندارند.برای دسترسی به بانک اطلاعاتی رابطه ای به یک instance از بانک اطلاعاتی نیاز می باشد.
تعریف instance: به مجموعه ای از پردازشهای اوراکل و حافظه مشترک اطلاق می شود که برای دسترسی به اشیا بانک اطلاعاتی موردنیاز می باشد.
نکته:اصلی ترین موضوعی که در یک مدل رابطه ای مطرح می باشد non-procedural بودن درخواستهای آن است که ابتدا باید به صورت procedural تبدیل شده و سپس قابلیت اجرا پیدا کند.instance اوراکل وظیفه procedural کردن درخواستهای non-procedural را برعهده دارد.instance برای ایجاد یک execution plan (طرح اجرایی) از درخواستهای SQL به داده های data dictionary نیاز دارد.بنابراین داده های data dictionary در چگونگی ایجاد طرح اجرایی نقش دارند.در اوراکل درخواستهایی که توسط instance اجرا می شود در حافظه instance نگهداری می شود، تا درخواستهای مشابه بعدی با سرعت بیشتری اجرا شده و نیاز به ایجاد طرح اجرایی جدید نداشته باشد.
پس هر instance اوراکل از دو ساختار اصلی زیر تشکیل می شود:
1-پردازشی:وظیفه procedural کردن درخواستهای non-procedural به عهده این قسمت است.
2-حافظه ای:وظیفه نگهداشتن نسخه ای از اطلاعات اجرا شده در بانک اطلاعاتی به عهده این قسمت می باشد.اگر اطلاعات درخواست شده جدید، قبلا در حافظه instance وجود داشته باشد از اجرای مجدد آن صرفنظر شده و از اطلاعات حافظه پاسخگویی به درخواست انجام می شود. اینکار افزایش کارایی بانک اطلاعاتی را به همراه دارد.
دسته بندی دستورات SQL:
دستورات SQL به 5 دسته کلی تقسیم می شوند:
1-دستورات Data retrieval: مانند دستور SELECT
2-دستورات Data manipulation language یا DML:مانند دستورات
INSERT
UPDATE
DELETE
MERGE
3-دستورات Data definition language یا DDL: مانند دستورات
CREATE
ALTER
DROP
RENAME
TRUNCATE
4-دستورات Transaction control:مانند
COMMIT
ROLLBACK
SAVEPOINT
5-دستورات Data control language یا (DCL): مانند
GRANT
REVOKE
Metadata
Data
به مجموعه اطلاعاتی که بانک اطلاعاتی برای procedural کردن درخواستهای non-procedural به آن نیاز دارد metadata گفته می شود.مجموعه این metadata ها از طریق data dictionary views قابل دسترسی و مشاهده می باشند.مثلا دیدگاه DBA_TABLES وظیفه نگهداری metadataهای جداول ایجاد شده در بانک اطلاعاتی را برعهده دارد. همچنین مثالهای زیر را داریم.
دیدگاه DBA_USERS اطلاعاتی در مورد تمامی کاربران پایگاه داده را در خود دارد.
دیدگاه DBA_VIEWS اطلاعاتی در مورد همه VIEW ها (دیدگاه ها) رادر خود دارد.
و مثال آخر دیدگاه DBA_TAB_COLUMNS که نام و نوع داده همه ستونهای جداول در پایگاه داده را در خود دارد.
یکسری از نکات:
تمامی metadata های بانک اطلاعاتی در Data dictionary ذخیره می شود.
خود data dictionary در یک tablespace به نام SYSTEM ذخیره می گردد.
مفهوم Data به داده های جداولی که توسط ما در بانک اطلاعاتی ذخیره گردیده اطلاق می گردد.
Dynamic Performance Views
تمامی این دیدگاه ها با پیشوند $V آغاز شده و محتوی آنها به فعالیت بانک اطلاعاتی بستگی دارد. تمامی این view ها در زمان shutdown شدن بانک اطلاعاتی خالی شده و در startup بعدی بر مبنای فعالیت بانک پر می شوند.
چند مثال از Dynamic Performance view ها:
دیدگاه V$DATABASE شامل اطلاعاتی در مورد خود پایگاه داده مانند نام پایگاه داده و زمان ایجاد آن می باشد.
دیدگاه V$VERSION نسخه پایگاه داده ای که در حال استفاده است را نشان می دهد.
دیدگاه V$OPTION اجزای اختیاری که در پایگاه داده نصب شده اند را نمایش می دهد.
دیدگاه V$SQL اطلاعاتی در مورد دستور SQL ای که کاربران پایگاه داده اجرا کرده اند نمایش می دهد.
مفاهیم اولیه:
سیستم مدیریت بانک اطلاعاتی رابطه ای (RDBMS):
یک بانک اطلاعاتی رابطه ای مجموعه ای از روابط و جداول دوبعدی است.
دسترسی کاربران به بانک اطلاعاتی رابطه ای: در یک مدل رابطه ای تمامی اشیاء بانک اطلاعاتی به صورت غیر مستقیم در اختیار کاربران بانک اطلاعاتی قرار می گیرند.یعنی کاربران بانک اطلاعاتی مستقیما به جداول و سایر اشیاء بانک اطلاعاتی که بر روی دیسک قرار می گیرند، دسترسی ندارند.برای دسترسی به بانک اطلاعاتی رابطه ای به یک instance از بانک اطلاعاتی نیاز می باشد.
تعریف instance: به مجموعه ای از پردازشهای اوراکل و حافظه مشترک اطلاق می شود که برای دسترسی به اشیا بانک اطلاعاتی موردنیاز می باشد.
نکته:اصلی ترین موضوعی که در یک مدل رابطه ای مطرح می باشد non-procedural بودن درخواستهای آن است که ابتدا باید به صورت procedural تبدیل شده و سپس قابلیت اجرا پیدا کند.instance اوراکل وظیفه procedural کردن درخواستهای non-procedural را برعهده دارد.instance برای ایجاد یک execution plan (طرح اجرایی) از درخواستهای SQL به داده های data dictionary نیاز دارد.بنابراین داده های data dictionary در چگونگی ایجاد طرح اجرایی نقش دارند.در اوراکل درخواستهایی که توسط instance اجرا می شود در حافظه instance نگهداری می شود، تا درخواستهای مشابه بعدی با سرعت بیشتری اجرا شده و نیاز به ایجاد طرح اجرایی جدید نداشته باشد.
پس هر instance اوراکل از دو ساختار اصلی زیر تشکیل می شود:
1-پردازشی:وظیفه procedural کردن درخواستهای non-procedural به عهده این قسمت است.
2-حافظه ای:وظیفه نگهداشتن نسخه ای از اطلاعات اجرا شده در بانک اطلاعاتی به عهده این قسمت می باشد.اگر اطلاعات درخواست شده جدید، قبلا در حافظه instance وجود داشته باشد از اجرای مجدد آن صرفنظر شده و از اطلاعات حافظه پاسخگویی به درخواست انجام می شود. اینکار افزایش کارایی بانک اطلاعاتی را به همراه دارد.
دسته بندی دستورات SQL:
دستورات SQL به 5 دسته کلی تقسیم می شوند:
1-دستورات Data retrieval: مانند دستور SELECT
2-دستورات Data manipulation language یا DML:مانند دستورات
INSERT
UPDATE
DELETE
MERGE
3-دستورات Data definition language یا DDL: مانند دستورات
CREATE
ALTER
DROP
RENAME
TRUNCATE
4-دستورات Transaction control:مانند
COMMIT
ROLLBACK
SAVEPOINT
5-دستورات Data control language یا (DCL): مانند
GRANT
REVOKE
نکته:SQL یک زبان محاوره ای non-procedural می باشد که در زمان اجرا درخواست، توسط instance بانک اطلاعاتیprocedural
شده و در حافظه instance ذخیره می شود.
مفاهیمی دیگر از اوراکل:
سرور بانک اطلاعاتی اوراکل شامل بانک اطلاعاتی و instance بانک اطلاعاتی است.
پس داریم:
Oracle server=oracle instance + oracle database
زمانیکه بانک اطلاعاتی استارت می شود فضایی از حافظه به نام sysyem global area یا SGA و background process هایی بوجود می آیند که به آن instance اطلاق می شود.SGA فضایی از حافظه instance بانک اطلاعاتی است که برای ذخیره تمامی درخواستهای کاربران بانک مورد استفاده قرار می گیرد.در سیستم عامل ویندوز هر instance اوراکل به صورت یک سرویس به سرویسهای ویندوز به فرمت oracleserviceSID اضافه می شود.از تعداد این سرویسها می توان به تعداد instance های بانک اطلاعاتی و نام آنها پی برد.
اجزای مدل رابطه ای:
هر بانک اطلاعاتی رابطه ای دارای سه مؤلفه اصلی زیر می باشد:
1-هسته RDBMS یا RDBMS kernel
2-data dictionary
3-زبان غیر رویه ای SQL
حال در زیر به توصیف هر قسمت می پردازیم.
هسته RDBMS یا RDBMS kernel:
یک RDBMS مانند اوراکل انجام کارهای زیر را برعهده دارد:
-ذخیره و جستجو و امنیت داده ها
-کنترل دسترسی به منابع برای مدیریت در همزمانی دسترسی به بانک اطلاعاتی توسط کاربران
-مدیریت بر روی cache و paging
-مدیریت قفل برای کنترل استفاده همزمان از منابع
-زمانبندی درخواست کاربران
-مدیریت بر روی فضای فیزیکی موردنیاز در tablespaceها و ....
در اوراکل instance وظیفه بارگزاری RDBMS kernel را به عهده دارد.در زمان بارگزاری kernel ابتدا حافظه SGA اختصاص یافته و سپس background process های اوراکل ایجاد می گردند.
بنابراین تا اینجا دریافتیم که یک instance اوراکل
-ابزاری برای دسترسی به پایگاه داده اوراکل می باشد.
-همیشه یک و تنها یک پایگاه داده را باز می کند.
-شامل حافظه و پردازش می باشد.
Data dictionary:
در معماری RDBMS جداولی وجود دارند که به آنها جداول Dats dictionary اطلاق می گردد.این جداول وظیفه نگهداری اشیاء پایگاه داده را برعهده دارند.مثلا در اوراکل جدول از قبل تعریف شده ای به نام DBA_TABLES در data dictionary وجود دارد، که وظیفه نگهداری اطلاعات مربوط به جداول ایجاد شده توسط تمامی کاربران بانک را به عهده دارد.
تمامی اشیاء بانک اطلاعاتی در data dictionary ذخیره می گردند.به این ترتیب می توان با یک زبان مثل sql داده ها را دستیابی کرد.
در خلال ایجاد پایگاه داده، سرور اوراکل ساختارهای شئ اضافی در فایلهای داده ایجاد میکند که عبارتند از:
-Data dictionary tables
-Dynamic performance tables
همچنین در data dictionary دو نوع view یا دیدگاه داریم که عبارتند از:
-Data dictionary views
-Dynamic performance views
#oracle #db @unixmens
شده و در حافظه instance ذخیره می شود.
مفاهیمی دیگر از اوراکل:
سرور بانک اطلاعاتی اوراکل شامل بانک اطلاعاتی و instance بانک اطلاعاتی است.
پس داریم:
Oracle server=oracle instance + oracle database
زمانیکه بانک اطلاعاتی استارت می شود فضایی از حافظه به نام sysyem global area یا SGA و background process هایی بوجود می آیند که به آن instance اطلاق می شود.SGA فضایی از حافظه instance بانک اطلاعاتی است که برای ذخیره تمامی درخواستهای کاربران بانک مورد استفاده قرار می گیرد.در سیستم عامل ویندوز هر instance اوراکل به صورت یک سرویس به سرویسهای ویندوز به فرمت oracleserviceSID اضافه می شود.از تعداد این سرویسها می توان به تعداد instance های بانک اطلاعاتی و نام آنها پی برد.
اجزای مدل رابطه ای:
هر بانک اطلاعاتی رابطه ای دارای سه مؤلفه اصلی زیر می باشد:
1-هسته RDBMS یا RDBMS kernel
2-data dictionary
3-زبان غیر رویه ای SQL
حال در زیر به توصیف هر قسمت می پردازیم.
هسته RDBMS یا RDBMS kernel:
یک RDBMS مانند اوراکل انجام کارهای زیر را برعهده دارد:
-ذخیره و جستجو و امنیت داده ها
-کنترل دسترسی به منابع برای مدیریت در همزمانی دسترسی به بانک اطلاعاتی توسط کاربران
-مدیریت بر روی cache و paging
-مدیریت قفل برای کنترل استفاده همزمان از منابع
-زمانبندی درخواست کاربران
-مدیریت بر روی فضای فیزیکی موردنیاز در tablespaceها و ....
در اوراکل instance وظیفه بارگزاری RDBMS kernel را به عهده دارد.در زمان بارگزاری kernel ابتدا حافظه SGA اختصاص یافته و سپس background process های اوراکل ایجاد می گردند.
بنابراین تا اینجا دریافتیم که یک instance اوراکل
-ابزاری برای دسترسی به پایگاه داده اوراکل می باشد.
-همیشه یک و تنها یک پایگاه داده را باز می کند.
-شامل حافظه و پردازش می باشد.
Data dictionary:
در معماری RDBMS جداولی وجود دارند که به آنها جداول Dats dictionary اطلاق می گردد.این جداول وظیفه نگهداری اشیاء پایگاه داده را برعهده دارند.مثلا در اوراکل جدول از قبل تعریف شده ای به نام DBA_TABLES در data dictionary وجود دارد، که وظیفه نگهداری اطلاعات مربوط به جداول ایجاد شده توسط تمامی کاربران بانک را به عهده دارد.
تمامی اشیاء بانک اطلاعاتی در data dictionary ذخیره می گردند.به این ترتیب می توان با یک زبان مثل sql داده ها را دستیابی کرد.
در خلال ایجاد پایگاه داده، سرور اوراکل ساختارهای شئ اضافی در فایلهای داده ایجاد میکند که عبارتند از:
-Data dictionary tables
-Dynamic performance tables
همچنین در data dictionary دو نوع view یا دیدگاه داریم که عبارتند از:
-Data dictionary views
-Dynamic performance views
#oracle #db @unixmens