مفاهیم Object type در پایگاه داده‌ی Oracle

Object type در Oracle عبارت است از نوع داده‌هایی که توسط خود کاربر تعریف می‌شوند و امکان مدل سازی موجودیت‌های پیچیده‌ی واقعی همچون سفارشات و خرید مشتریان به صورت موجودیت‌های واحد Object را در پایگاه داده فراهم می‌آورند.

Object اراکل یک لایه‌ی انتزاعی (Abstraction Layer) است که مبتنی بر تکنولوژی Relational پایگاه داده‌ی مزبور می‌باشد. Object type های جدید را می‌توان از هر Database type توکار دیگر و یا هر Object type، Object reference و Collection type دیگری که قبلا تعریف شده، مشتق کرد یا ساخت.

Meta-data های type های تعریف شده توسط کاربر، در یک schema که در دسترس رابط‌های SQL، PL/SQL، Java و یا هر Interface منتشر شده‌ی دیگری قرار دارد، ذخیره می‌گردد.

Object type ها و دیگر قابلیت‌های مربوطه‌ی شی گرایی همچون آرایه‌ها با طول متغیر و جداول تودرتو، روش‌های سطح بالاتری برای سازماندهی و دسترسی به اطلاعات در پایگاه داده فراهم می‌نمایند. با این وجود زیر لایه‌ی object، داده‌ها همچنان در ستون‌ها و جداول ذخیره می‌شوند و شما می‌توانید با داده‌ها مانند موجودیت‌های واقعی برخورد کرده و از آن‌ها استفاده کنید. بجای اینکه در زمان Query گرفتن و پرس و جو از پایگاه داده به سطر و ستون فکر کنید، می‌توانید مشتری را انتخاب کرده و مورد پرس و جو قرار دهید.

برای نمونه در جدول از آدرسی استفاده می‌کنیم که متشکل است از شماره‌ی خیابان (Streetno)، محل سکونت (Locality)، شهر (City)، شماره شناسایى شخصى (Pin) و کشور (Country). برای این اطلاعات ستون‌هایی به صورت جداگانه در جدول ایجاد می‌کنیم.

 

Create table emp (empno number(5),‎

‎              Name varchar2(20),‎

‎              Sal number(10,2),‎

‎              Streetno varchar2(20),‎

‎              Locality varchar2(20),‎

‎              City varchar2(20),‎

‎              Pin varchar2(7),‎

‎              Country varchar2(20));‎

Create table customers (custcode number (5),‎

‎              Name varchar2(20),‎

‎              Bal number(10,2),‎

‎              Streetno varchar2(20),‎

‎              Locality varchar2(20),‎

‎              City varchar2(20),‎

‎              Pin varchar2(7),‎

‎               Country varchar2(20));

 

بجای اینکه بارها و بارها در هر جدول ستون آدرس را تعریف کنیم، می‌توانیم یک نوع داده‌ی address تعریف کرده، سپس نوع داده‌ی User-Defined را در تمامی جداول بکار ببریم.

 

نحوه‌ی تعریف نوع شی (Object Type)

مثال زیر یک Object type تعریف می‌کند.

Create type address as object (‎

‎              Streetno varchar2(20),‎

‎              Locality varchar2(20),‎

‎              City varchar2(20),‎

‎              Pin varchar2(7),‎

‎               Country varchar2(20));

 

حال می‌توانیم این نوع داده را به هنگام تعریف جداول emp و customer بدین صورت بکار ببریم.

Create table emp (empno numbe(5),‎

‎              Name varchar2(20),‎

‎              Sal number(10,2),‎

‎              Emp_addr address);

 

درج سطر در جدول با استفاده از Object datatype

به منظور درج record جدید در جدول emp، باید دستور زیر را مورد استفاده قرار دهید.

Insert into emp values (101,’Sami’,2000,‎

‎  address(‘A.C.Gaurds Road’,‎

‎           ’A.C.Gaurds’,’Hyd’,’500004’,’India’);

 

جهت بروز رسانی فیلد شهر کارکن شماره‌ی 101 باید دستور update را بکار ببرید.

Update emp e set e.emp_addr.city=’Bombay’ ‎

‎       where e.empno=101;‎

 

برای انتخاب سطر از جدول emp باید دستور زیر را اجرا کنید.

Select * from emp;‎

 

به منظور انتخاب فقط اسم و شهر مربوط به فیلد empno باید دستور زیر تایپ کرد.

Select e.empno, e.name, e.emp_addr.city from emp e;‎

 

آرایه‌ها با اندازه‌ی متغیر

آرایه تعدادی متغیر از یک نوع داده و تحت یک نام می‌باشد. هر یک از متغیرهای درون آرایه با یک شماره که به آن «اندیس» می‌گوییم از یکدیگر جدا می‌‌شوند. متغیرهای درون آرایه را «عناصر یا المان‌های آرایه» می‌‌نامند که همگی توانایی و قابلیت نگهداری تنها یک نوع داده را در بازه‌ی زمانی مشخص دارند. تعداد المان‌های موجود در یک آرایه در واقع نشانگر حجم یا اندازه‌ی آرایه می‌باشد.

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

مثال زیر نوع آرایه را تعریف می‌کند.

CREATE TYPE phones AS VARRAY (10) OF varchar2(10);‎

 

حال به منظور استفاده از این آرایه در جدول، دستور زیر را تایپ می‌کنیم.

Create table suppliers (supcode number (5),‎

‎              Company varchar2(20),‎

‎              ph   phones);

 

برای درج سطر نیز دستور زیر را اجرا می‌کنیم:

insert into suppliers values (101,’Interface Computers’,‎

‎          Phones(‘64199705’,’55136663’));‎

insert into suppliers values (102,’Western Engg. Corp’,‎

‎                Phones(‘23203945’,’23203749’,’9396577727’));‎

 

و برای انتخاب سطر از این دستور استفاده می‌کنیم:

Select * from suppliers;‎

 

نظر دهید