tutorial Ordbms Oracle 1 2012

Embed Size (px)

Citation preview

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    1/16

    1 TEKNOLOGI OBJECT-RELATIONAL DBMSpada ORACLE 10 g

    2

    1. Object Types dan User-Defned Types

    Object type adalah tipe data yang dapat dibuat sendiri oleh pengguna , hal ini dikenal sebagai user-defined types yang lebih memungkinkan user untuk memodelkan entitas dunia nyata yang komplek (complex real-world).

    Metadata untuk user-defined types disimpan di dalam suatu skema yang memungkinkan SQL,PL/SQL, Java dan interface yang lain menampilkannya. Tipe data objek memudahka n untuk bekerjadengan menggunakan data komplek (complex data), seperti images, video, dan audio.

    Pada !ra"le, perintah # create type $ digunakan untuk membuat suatu tipe data baru %obje"ttype& yang nantinya dapat digunakan se"ara umum pada saat

    membuat sebuat tabel %menggunakan perintah #"reate table$ &membuat tipe data lain

    Perintah untuk membuat suatu object type

    CREATE [OR REPLACE] TYPE AS O !ECT(attribute attribute type, ....,attribute attribute type)/

    C"nt"# 1 $

    CREATE OR REPLACE TYPE Person_T AS O !ECT(person_id VARCHAR2(10),person_name VARCHAR2(30))/CREATE TA LE Course(course_id VARCHAR2(10),course_name VARCHAR2(20),lecturer Person_T);

    'eterangan #(s obje"t$ harus selalu digunakan setelah statement "reate/repla"e sebuah obje"t type.#or repla"e$ bersi)at optional. *engan menggunakan perintah #or repla"e$ maka suatu

    obje"t dengan nama yang sama akan otomatis di+update %diganti& dengan versi yang baru dari obje"t type tsb.

    Object Relational Database pada Oracle 10g ~ Agnes Maria Polina, S.Kom.,M.Sc ~Hal 1

    T%j%an &nstr%'s("na) $ Ma!asis"a mamp# mema!ami $onsep Object-Relational Database %ang diimplementasi$an mengg#na$an ORD&MS Oracle10 g.

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    2/16

    ontoh di atas menunjukkan penggunaan obje"t type Person-T sebagai jenis attributdalam tabel ourse.

    C"nt"# * $

    erikut ini pembuatan object type bernama Mahasis a-objtyp

    Object type

    CREATE OR REPLACE TYPE Mahasiswa_objtyp AS OBJECT (

    NIM NUMBER, Na a !ARC"AR#($%%&, E ai' !ARC"AR#(# &, T)'p !ARC"AR#(#%&&* +

    erikut ini merupakan "ontoh pembuatan tabel (lumni-objtab dengan sebuah kolom object type .

    Tabel objek

    CREATE TABLE A' -i_objtab (

    Mhs_US. Mahasiswa_objtyp, T/'_' ' s .ATE &*

    Sintak di ba ah ini menyisipkan satu baris data ke dalam tabel (lumni-objtab

    INSERT INTO A' -i_objtab !ALUES( Mahasiswa_objtyp ( 0$1%%$, 2E'3a E3)'i-a2, 2)'3a4yahoo56o 2,2%7$ 8$#018 9:72&,

    2$% No3 #%%72 &*

    Tabel (lumni-objtab merupakan tabel relational dengan sebuah object type sebagai tipedata dari kolom+kolomnya. !bjek yang menempati kolom dari tabel relational disebutdengan objek kolom (column object) . 0ambar berikut mengilustrasikan tabel(lumni-objtab, yang pada salah satu kolomnya berupa objek kolom

    !bjek kolom

    'olom Mhs-1S* bertipe objek Mahasis a-objtyp'olom Tgl-lulus

    bertipe *(T2

    34M 3ama 2mail Telp Tgl-lulus

    5678997 2lva 2velina elva:yahoo."om 9;76+7; 79+3ov+

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    3/16

    Latihan :

    7. uatlah !bje"t Type seperti tampak di ba ah ini

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    4/16

    Perintah umum (general syntax) untuk mende)inisikan suatu object type

    CREATE ;OR REPLACE< TYPE Na aTip)

    ;AUT"I. =CURRENT_USER > .E?INER@<

    = =IS > AS@ OBJECT > UN.ER Na aS p) typ) @

    (

    Na aAt ib t Tip).ata;, Na aAt ib t Tip).ata OR.ER@ MEMBER Sp)si i asi? -/si,<

    ;=?INAL> NOT ?INAL@ MEMBER Sp)si i asi? -/si,<

    ;=INSTANTIABLE> NOT INSTANTIABLE@ MEMBER Sp)si i asi? -/si,< ;=MEMBER > STATIC@ = Sp)si i asiS bP o/ a >

    Sp)si i asiP) a-//i'a-@

    ;, =MEMBER > STATIC@ = Sp)si i asiS bP o/ a >

    Sp)si i asiP) a-//i'a-@ NOT ?INAL@< ; =INSTANTIABLE> NOT INSTANTIABLE@

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    5/16

    + OR.ER Pernyataan yang digunakan met od untuk membuat suatu perbandingan se"ara

    langsung object-to-object.+ ?INAL Pernyataan yang menjelaskan bah a object type&met od tidak dapat mende)inisikan

    suatu subtype dari object type&met od tersebut.

    + NOT ?INAL Pernyataan yang menjelaskan bah a object type&met od dapat mende)inisikan

    suatu subtype dari object type&met od tersebut.

    + INSTANTIABLE Pernyataan yang menyatakan bah a tidak dapat menginisialisasikan

    instance dari object type.

    + NOT INSTANTIABLE Pernyataan yang menyatakan bah a tidak dapat menginisialisasikan

    instance dari object type.

    Object Relational Database pada Oracle 10g ~ Agnes Maria Polina, S.Kom.,M.Sc ~Hal *

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    6/16

    *. ,et#"ds Object

    Sebuah object type %sudah dibahas pada bab 7 di atas& teridiri dari dari < bagian, yaitu 7. attributes STATIC@ = Ba a-S bP o/ a > Sp)si i asiP) a-//i'a- @*

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    7/16

    MAP MEMBER ?UNCTION get_NIM RETURN NUMBER&*

    +

    >>>>>C&,

    C77 3ov

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    8/16

    P) a-//i'a- )tho (invoke a method) )-// -a a- dot

    not tion obje!t_" #i b$e % &ethod'( isa'-ya D

    Mhs_USD 5get_NIM'( i a-a Mhs_US. a a'ah att ib t a i tab)'

    a' -i_ti s a- /)t_NIM a a'ah -a a )tho pa a obj)6t typ)

    Mhs_objtyp5

    "asi' --i-/ D

    Contoh II :

    7. Membuat object type Person

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    9/16

    6. uat tabel !3T( TS< dimana attribut !3T( T bertipe person

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    10/16

    5. Perintah SQL untuk menampilkan )irst-name, last-name, email, dan phone untuk

    obj"et instan"e yang memiliki )irst-name 'evin adalah sbb

    Object Relational Database pada Oracle 10g ~ Agnes Maria Polina, S.Kom.,M.Sc ~Hal 10

    1/

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    11/16

    Latihan 2 :

    7. uatlah !bje"t Type seperti tampak di ba ah ini

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    12/16

    0. &n#er(tance

    Suatu object type dapat me ariskan baik attribut maupun method pada sub type di ba ahnya.

    1ntuk menerapkan in eritance , suatu obejct type harus dide)inisikan ‘ !" #I $L% pada

    akhir deklarasi. 'ey ord ‘U D&'% yang digunakan bersama statement ‘C'&$"& "()&% ber)ungsi untuk membuat sub type dari super type di atasnya.

    0eneral SyntaD yang digunakan untuk in eritance adalah sbb

    CREATE [OR REPLACE] TYPE AS O !ECT(key attribute attribute type,attribute attribute type,...,attribute attribute type) [ &2AL32OT &2AL]/CREATE [OR REPLACE] TYPE U2DER 4 super-typeobject schema>(additional attribute attribute type, ....,additional attribute attribute type)[ &2AL32OT &2AL]/CREATE TA LE O

    (key attribute 2OT 2ULL5PR&,ARY 6EY (key attribute)) 7

    C"nt"# $ atla! object t%pe Person/t dengan s#b t%pe seperti tampa$ pada

    gambar di ba"a!.

    Object Relational Database pada Oracle 10g ~ Agnes Maria Polina, S.Kom.,M.Sc ~Hal 1'

    1*

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    13/16

    Lan8'a#-)an8'a# $

    *+ Memb#at object type dengan nama Pers"n+9typ %ang bersi at O2 34 A5

    agar object ini dapat memili$i s#b t%pe 6dapat di"aris$an7

    8R9A29 2:P9 person)/t%p AS O&;982 6idno ?

    2+ Memb#at isi :et#"d mili$ object type Pers"n+9typ . @#na$an perinta!

    8R9A29 OR R9P5A89 2:P9 &OD: sbb

    @2(T2 !@ @2PL( 2 TAP2 !*A person8-typ (SM(P M2M 2@ E13 T4!3 get-idno @2T1@3 31M 2@ 4S

    2043@2T1@3 idnoB23*B++ )un"tion that "an be overriden by subtypesM2M 2@ E13 T4!3 sho @2T1@3 ?(@ F(@< 4S

    2043@2T1@3 C4d C GG T!- F(@%idno& GG C, 3ame C GG nameB23*B

    23*B/

    ,+ Membuat sub type dengan nama student_typ yang merupakan "hild %anak& dari

    obje"t type person-_typ :

    @2(T2 TAP2 student-typ 13*2@ person8-typ %

    dept-id 31M 2@,

    major ?(@ F(@

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    14/16

    @2(T2 TAP2 !*A student-typ (S!?2@@4*430 M2M 2@ E13 T4!3 sho @2T1@3 ?(@ F(@< 4S

    2043@2T1@3 %sel) (S person8-typ&.sho GG C ++ Major C GG major B23*B23*B/

    + Membuat sub type dengan nama employee_typ yang merupakan "hild %anak& dari

    obje"t type person-_typ :

    @2(T2 TAP2 employee-typ 13*2@ person8-typ %emp-id 31M 2@,mgr ?(@ F(@

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    15/16

    @2(T2 TAP2 !*A part-time-student-typ (S!?2@@4*430 M2M 2@ E13 T4!3 sho @2T1@3 ?(@ F(@< 4S

    2043@2T1@3 % %S2LE (S person8-typ&.sho GG C ++ Major C GG major GGC, Fours C GG T!- F(@%number-hours&&B23*B23*B/

    + Membuat table dengan nama person-_obj_table yang bertipe obje"t person-_typ :

    @2(T2 T( L2 person8-obj-table !E person8-typB

    *3+Menyisipkan data ob Jones ke dalam object type person-_typ pada tabel

    person-_obj_table

    43S2@T 43T! person8-obj-table

    ?(L12S %person8-typ%7

  • 8/16/2019 tutorial Ordbms Oracle 1 2012

    16/16

    S2L2 T p.sho %&

    E@!M person8-obj-table pB

    HIII ractices makes erfect IIIH

    1