1 TEKNOLOGI OBJECT-RELATIONAL DBMS pada ORACLE 10g

dokumen-dokumen yang mirip
PERTEMUAN 10 PEMBUATAN TABEL

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

Pertemuan VI F U N C T I O N

MODUL 4. Query SELECT dan DML (INSERT, UPDATE, DELETE) PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

MODUL PEMPROGRAMAN SQL TINGKAT DASAR 1 STANDAR KOMPETENSI: MENERAPKAN BAHASA PEMPROGRAMAN SQL TINGKAT DASAR SMK NEGERI 1 MAJALENGKA

Praktikum Basis Data 14 Structure Query Language 2

Praktikum Basis Data 2017 TE UM MODUL 8 TRIGGER A. TUJUAN

MODUL 1. Pembuatan tabel, pendefinisian constraint, export dan import PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

PRAKTIKUM PL/SQL (Trigger) OLEH : WIRATMOKO YUWONO, ST

SQL (Structured Query Language)

Tahap Instalasi PostgreSQL di Windows

Oracle Academic Initiative

BAB VIII FUNGSI, PL/PGSQL dan TRIGER

Basis Data Relational

Basis Data 2. Procedure dan Function Database. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Untuk mencoba contoh-contoh perintah join, silahkan eksekusi query create+insert dibawah ini:

MODUL 4 INTERNET PROGRAMMING DATABASE

Praktikum Basis Data. By. Rita Wiryasaputra, ST., M. Cs.

Oracle Academic Initiative

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

Sejarah(1) Sejarah(2) STRUCTURE QUERY LANGUANGE (1) Definisi SQL

BAB II PEMBUATAN DAN MANAJEMEN TABLE

Pertemuan VII TRIGGERS

Membuat Function, Stored Procedur dan View pada MySQL

KapitaSelekta. (KBKI82127, 2 sks) Materi : Pengenalan MySQL

DESAIN DATABASE. Pertemuan 06 3 SKS

Database Interfaces. By: Arif Basofi

Modul 3 : Query Penggabungan Tabel

TUGAS BASIS DATA LANJUT

Bab 5. Database Trigger POKOK BAHASAN: TUJUAN BELAJAR: 5.1. PENDAHULUAN

BAB III MODEL DATA RELASIONAL DAN ALJABAR RELASIONAL

1. Hasil ERD dari Tabel satu adalah sebagai berikut: Figure 1: ERD Apotik. 2. Syntax CREATE tabel untuk masing - masing tabel :

LAPORAN PRAKTIKUM MODUL 1 PENGENALAN MYSQL

Oracle Academic Initiative

APLIKASI GENERATOR SCRIPT BASIS DATA BERORIENTASI OBYEK ORACLE 10g

Praktikum TRIGGER. Tujuan :

Mengelola Data. Oleh: Arif Basofi

MODUL 3. View PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

PERTEMUAN 11 CONSTRAINT. Tujuan Pembelajaran : Memahami definisi Constraint Dapat Membuat Constraint Dapat Melakukan pemeliharaan Constraint

@Tessy Badriyah, SKom. MT. PERTEMUAN 12 VIEW

P - 7 Pembahasan UTS PSIK V

TABLE JOIN SQL SERVER 2005

SQL Lanjut. Modifikasi Database. Versi 2

B a s i s D a t a. Tatap MUka. SQL Query & Agregate Function. Arif Basofi PENS

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

INTERNET PROGRAMMING DATABASE

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

Pertemuan 10 Structure Query Language(SQL)

Pengenalan PL/SQL. Pertemuan 3

TRIGGER TRIGGER 5/29/2017 HANI IRMAYANTI, S.KOM

CARA MENGGUNAKAN SELECT QUERY PADA MYSQL

B a s i s D a t a C H A P T E R. SQL Operasi DML. Arif Basofi PENS 2015

Konsep Dasar. Relatsional dan RDBMS User dan Schema Database Membuat Tabel dan Mendefinisikan Constraint Input Data ke dalam Tabel

Schema Objects. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

Contoh SQL Constraint

Menggunakan Set Operators

B a s i s D a t a - 1 C H A P T E R. SQL Operasi DML. Copyright 2005 PENS-ITS

Eksekusi file setup.exe yang ada dalam CD atau folder instalasi oracle.

MySQL J A M K E T I G A

DATABASE - MySQL. Muhammad Zen S. Hadi, ST. MSc.

INTEGRITAS BASIS DATA. OLEH : Slamet Sn Wibowo Wicaksono

Contoh SQL Constraint

Oracle Academic Initiative

Basis Data 1. Dasar SQL Query. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

Komponen-Komponen SQL a. Data Definition Language (DDL) : Digunakan untuk mendefinisikan data dengan menggunakan perintah : create, drop, alter.

MySQL Databases. Dasar-dasar MySQL dan Implementasi MySQL kedalam pemrograman PHP. Jakarta, 16 April 2011 Oleh: M. Awaludin, S.Kom

Pengenalan Database Management System MySQL. Pokok Bahasan: Pengenalan DataBase Pembangunan database berbasis Client-Server Dasar-Dasar MySQL

BAB 2 : Deklarasi Variabel

E-trik Ajax. Database MySQL. Dedi Alnas

Konsep Sistem Informasi B. BAB 2 - SQL Overview

STRUCTURE QUERY LANGUAGE

BAB 6 PROGRAM UNITS DAN STRORED PROGRAMS UNITS

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

MODUL II. Instalasi OracleXE Dan SQL

Sistem Basis Data Danny Kriestanto, S.Kom., M.Eng

Sistem Basis Data. Chapter 5: Logical Database Design and the Relational Model Andronicus Riyono, M.T.

Modul 6 Function dan Trigger

15-Jan DATABASE - MySQL. Database. Constraints. Tujuan: Memahami perintah-perintah dasar DDL dan DML

PL / SQL. Arif Basofi

3.1 Form Wizard. 3. Pilihlah menu use data block wizard dan tekanlah button OK, maka akan tampil window di bawah ini.

S Q L STRUCTURED QUERY LANGUAGE DEFINITION MANIPULATION C O N T R O L D M L SELECT INSERT UPDATE DELETE

Persiapan Table Untuk Latihan Sebelum kita berkenalan lebih jauh dengan Trigger, mari kita buat terlebih dahulu, struktur table yang dibutuhkan.

SQL. Brigida Arie Minartiningtyas, M.Kom

BAB 4 MEMBUAT LIST OF VALUE (LOV) DAN NON-BASE TABLE FIELDS

IMPLEMENTASI TRIGGER, STORED PROCEDURE, FUNCTION DAN VIEW PADA MYSQL DALAM PERANCANGAN SYSTEM INVENTORY CAFFE BOULEVARD JAYAPURA

Database Management System. Program yang memungkinkan item-item dalam suatu database disusun, diolah dan diperbaharui

BAB 4 : Interaksi PL/SQL dengan Oracle Server

Data Manipulation Language (DML) & Data Control Language (DCL) pada Database

Pertemuan 9 Struktur Query Language(SQL)

Basis Data II. Pertemuan Ke-9 dan ke-10 (Stored Procedure dan Trigger) Noor Ifada S1 T. Informatika - UTM (2012) 1

LAPORAN TERTULIS ON THE JOB TRAINING

PERINTAH DASAR MySQL

Pemrograman Lanjut. Class : Deeper Look 2

Oracle Academic Initiative

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

Constraint dan Manajemen Data dalam Timezone Berbeda

MODUL 2 PENGENALAN DATA DEFINITION LANGUAGE (DDL) & DATA MANIPULATION LANGUAGE (DML)

PRAKTIKUM BASIS DATA TERDISTRIBUSI MODUL 4 SINKRONISASI DATA

Modul 2. Database Menggunakan Primary Key, Unique, Auto Increment, Alter-Add dan Alter-Drop. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA

Transkripsi:

1 TEKNOLOGI OBJECT-RELATIONAL DBMS pada ORACLE 10g Tujuan Instruksional : Mahasiswa mampu memahami konsep Object- Relational Database yang diimplementasikan menggunakan ORDBMS Oracle 2 10g. 1. Object Types dan User-Defined Types Object type adalah tipe data yang dapat dibuat sendiri oleh pengguna, hal ini dikenal sebagai userdefined 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, PLSQL, Java dan interface yang lain menampilkannya. Tipe data objek memudahkan untuk bekerja dengan menggunakan data komplek(complex data), seperti : images, video, dan audio. Pada Oracle, perintah create type digunakan untuk membuat suatu tipe data baru (object type) yang nantinya dapat digunakan secara umum pada saat : membuat sebuat tabel (menggunakan perintah create table ) membuat tipe data lain Perintah untuk membuat suatu object type : CREATE [OR REPLACE] TYPE <object schema> AS OBJECT (attribute attribute type,..., attribute attribute type) Contoh 1 : CREATE OR REPLACE TYPE Person_T AS OBJECT (person_id VARCHAR2(10), person_name VARCHAR2(30)) CREATE TABLE Course (course_id VARCHAR2(10), course_name VARCHAR2(20), lecturer Person_T); Keterangan : As object harus selalu digunakan setelah statement createreplace sebuah object type. or replace bersifat optional. Dengan menggunakan perintah or replace maka suatu object dengan nama yang sama akan otomatis di-update (diganti) dengan versi yang baru dari object type tsb. Hal : 1

2 Contoh di atas menunjukkan penggunaan object type Person_T sebagai jenis attribut dalam tabel Course. Contoh 2 : Berikut ini pembuatan object type bernama Mahasiswa_objtyp : Object type CREATE OR REPLACE TYPE Mahasiswa_objtyp AS OBJECT ( NIM NUMBER, Nama VARCHAR2(100), Email VARCHAR2(25), Telp VARCHAR2(20)); Berikut ini merupakan contoh pembuatan tabel Alumni_objtab dengan sebuah kolom object type. Tabel objek CREATE TABLE Alumni_objtab ( Mhs_USD Mahasiswa_objtyp, Tgl_lulus DATE ); Sintak di bawah ini menyisipkan satu baris data ke dalam tabel Alumni_objtab : INSERT INTO Alumni_objtab VALUES ( Mahasiswa_objtyp (5314001, 'Elva Evelina', 'elva@yahoo.com', '0815-1234-5678'), '10 Nov 2008' ); Tabel Alumni_objtab merupakan tabel relational dengan sebuah object type sebagai tipe data dari kolom-kolomnya. Objek yang menempati kolom dari tabel relational disebut dengan objek kolom (column object). Gambar berikut mengilustrasikan tabel Alumni_objtab, yang pada salah satu kolomnya berupa objek kolom : Objek kolom Kolom Mhs_USD bertipe objek Mahasiswa_objtyp Kolom Tgl_lulus bertipe DATE NIM Nama Email Telp Tgl_lulus 5314001 Elva Evelina elva@yahoo.com 0813-1234-5678 10-Nov-2008 Hal : 2

Latihan : 1. Buatlah Object Type seperti tampak di bawah ini : 2. Buatlah tabel CONTACTS yang terdiri dari field : Contact bertipe person_typ Contact_date bertipe date 3. Isilah Tabel CONTACTS tsb dengan data-data (object instances) yang terdiri dari 2 object instances yaitu Verna Mills dan John Smith. Masukkan juga data : Pada Verna Mills : contact date tanggal 24 Juni 2003 Pada Johns Smith : contact date tanggal 12 Mei 2008 Hal : 3

4 Perintah umum (general syntax) untuk mendefinisikan suatu object type : CREATE [OR REPLACE] TYPE NamaTipe [AUTHID {CURRENT_USER DEFINER}] { {IS AS} OBJECT UNDER NamaSupertype } ( NamaAtribut TipeData[, NamaAtribut TipeData]... [{MAP ORDER} MEMBER SpesifikasiFungsi,] [{FINAL NOT FINAL} MEMBER SpesifikasiFungsi,] [{INSTANTIABLE NOT INSTANTIABLE} MEMBER SpesifikasiFungsi,] [{MEMBER STATIC} { SpesifikasiSubProgram SpesifikasiPemanggilan} [, {MEMBER STATIC} { SpesifikasiSubProgram SpesifikasiPemanggilan}]...] ) [{FINAL NOT FINAL}] [ {INSTANTIABLE NOT INSTANTIABLE}]; Keterangan : - CREATE TYPE :Perintah yang digunakan untuk mendefinisikan object type. - OR REPLACE TYPE: Perintah yang digunakan untuk melengkapi suatu tipe objek yang belum lengkap(incomplete) atau untuk meng-update tipe objek yang sudah lengkap (complete). - AUTHID CURRENT USER DEFINER :menspesifikasikan bahwa object type didefinisikan menggunakan invoker right : method dieksekusi dibawah hak dari user saat itu(current USER) atau berdasar hak dari user yang mendefinisikan tipe tersebut(definer). - UNDER : Pernyataan yang menjelaskan bahwa tipe tersebut diturunkanmewarisi dari suatu tipe tertentu. - MEMBER : Pernyataan sifat method yang dapat mengakses ke data object insantace-nya. - STATIC : menyatakan bahwa methods tidak mempunyai parameter SELF dan dipanggil pada object type-nya bukan pada object instances-nya. - MAP : Pernyataan yang digunakan untuk membandingkan objek dengan memetakan object instances ke salah satu dari tipe scalar(date, number, varchar2, character atau real). Hal : 4

- ORDER : Pernyataan yang digunakan method untuk membuat suatu perbandingan secara langsung object-to-object. - FINAL : Pernyataan yang menjelaskan bahwa object typemethod tidak dapat mendefinisikan suatu subtype dari object typemethod tersebut. - NOT FINAL : Pernyataan yang menjelaskan bahwa object typemethod dapat mendefinisikan suatu subtype dari object typemethod tersebut. - INSTANTIABLE : Pernyataan yang menyatakan bahwa tidak dapat menginisialisasikan instance dari object type. - NOT INSTANTIABLE : Pernyataan yang menyatakan bahwa tidak dapat menginisialisasikan instance dari object type. Hal : 5

6 2. Methods Object Sebuah object type (sudah dibahas pada bab 1 di atas) teridiri dari dari 2 bagian, yaitu : 1. attributes 2. methods seperti tampak pada gambar di bawah ini : Methods adalah fungsi atau prosedur yang dideklarasikan di dalam object type untuk mengimplementasikan behavior dari suatu objek. Pada prisnispnya method digunakan untuk mengakses data (instance object) dari objek yang bersangkutan. Method bersifat optional dalam object type, artinya suatu object type boleh tidak memiliki method. Perintah untuk membuat pendefinisian suatu method : CREATE [OR REPLACE] TYPE BODY NamaTipe {IS AS} { {MAP ORDER} MEMBER BadanFungsi; {MEMBER STATIC} {BadanSubProgram SpesifikasiPemanggilan};} [{MEMBER STATIC} { BadanSubProgram SpesifikasiPemanggilan };]... ] Contoh I: 1. Membuat object type dengan nama Mhs_objtyp yang selain memiliki attribut juga memiliki deklarasi method untuk menampilkan NIM. CREATE OR REPLACE TYPE Mhs_objtyp AS OBJECT ( NIM NUMBER, Nama VARCHAR2(100), Email VARCHAR2(25), Telp VARCHAR2(20), Method Hal : 6

MAP MEMBER FUNCTION get_nim RETURN NUMBER); 2. Membuat isi method milik object type Mhs_objtyp. Gunakan perintah CREATE OR REPLACE TYPE BODY sbb: CREATE OR REPLACE TYPE BODY Mhs_objtyp AS MAP MEMBER FUNCTION get_nim RETURN NUMBER IS BEGIN RETURN NIM; definisi method 3. Membuat tabel dengan nama alumni_tiusd dimana attribut Mhs_USD bertipe Mhs_objtyp. CREATE TABLE alumni_tiusd( Mhs_USD Mhs_objtyp, Tgl_lulus date); 4. Menyisipkan data alumni pada tabel alumni_tiusd : INSERT INTO alumni_tiusd VALUES (Mhs_objtyp(5314003, 'Maria', 'maria@yahoo.com', '0856-123456'), '11 Nov 2006'); INSERT INTO alumni_tiusd VALUES (Mhs_objtyp(5314004, 'Anita', 'anita@yahoo.com', '0856-777777'), '11 Nov 2006'); 5. Perintah SQL untuk memanggil method get_nim() yang berfungsi menampilkan NIM dari tabel alumni_tiusd : SELECT a.mhs_usd.get_nim() FROM alumni_tiusd a; Keterangan : a adalah nama alias dari tabel alumni_tiusd, nama alias berfungsi untuk memperpendek penulisan query. Hal : 7

8 Pemanggilan method (invoke a method) menggunakan dot notation object_variable.method() misalnya : Mhs_USD.get_NIM() dimana Mhs_USD adalah attribut dari tabel alumni_tiusd dan get_nim adalah nama method pada object type Mhs_objtyp. Hasil running : Contoh II : 1. Membuat object type Person2_Typ yang memiliki 2 method yaitu get_idno dan method untuk menampilkan data (instance object). 2. Membuat method milik object type Person2_Typ : Hal : 8

3. Buat tabel CONTACTS2 dimana attribut CONTACT bertipe person2_typ : 4. Insert object instance ke tabel CONTACTS2 : Hal : 9

10 5. Perintah SQL untuk menampilkan first_name, last_name, email, dan phone untuk objcet instance yang memiliki first_name Kevin adalah sbb: Hal : 10

Latihan 2 : 1. Buatlah Object Type seperti tampak di bawah ini : 2. Memanggil (invoke) method untuk menampilkan id_no. 3. Memanggil (invoke) method untuk menampilkan detail. Hal : 11

12 3. Inheritance Suatu object type dapat mewariskan baik attribut maupun method pada sub type di bawahnya. Untuk menerapkan inheritance, suatu obejct type harus didefinisikan NOT FINAL pada akhir deklarasi. Keyword UNDER yang digunakan bersama statement CREATE TYPE berfungsi untuk membuat sub type dari super type di atasnya. General Syntax yang digunakan untuk inheritance adalah sbb : CREATE [OR REPLACE] TYPE <super type object schema> AS OBJECT (key attribute attribute type, attribute attribute type,..., attribute attribute type) [FINAL NOT FINAL] CREATE [OR REPLACE] TYPE <sub type object schema> UNDER <supertype object schema> (additional attribute attribute type,..., additional attribute attribute type) [FINAL NOT FINAL] CREATE TABLE <super type table schema> OF <super type object schema> (key attribute NOT NULL, PRIMARY KEY (key attribute)); Contoh : Buatlah object type Person_t dengan sub type seperti tampak pada gambar di bawah. Hal : 12

Langkah-langkah : 1) Membuat object type dengan nama Person4_typ yang bersifat NOT FINAL agar object ini dapat memiliki sub type (dapat diwariskan) : CREATE TYPE person4_typ AS OBJECT ( idno NUMBER, name VARCHAR2(30), phone VARCHAR2(20), MAP MEMBER FUNCTION get_idno RETURN NUMBER, MEMBER FUNCTION show RETURN VARCHAR2) NOT FINAL; 2) Membuat isi method milik object type Person4_typ. Gunakan perintah CREATE OR REPLACE TYPE BODY sbb: CREATE OR REPLACE TYPE BODY person4_typ AS MAP MEMBER FUNCTION get_idno RETURN NUMBER IS BEGIN RETURN idno; -- function that can be overriden by subtypes MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN 'Id: ' TO_CHAR(idno) ', Name: ' name; 3) Membuat sub type dengan nama student_typ yang merupakan child (anak) dari object type person4_typ : CREATE TYPE student_typ UNDER person4_typ ( dept_id NUMBER, major VARCHAR2(30), OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2) NOT FINAL; 4) Membuat method milik sub type student_typ : Hal : 13

14 CREATE TYPE BODY student_typ AS OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN (self AS person4_typ).show ' -- Major: ' major ; 5) Membuat sub type dengan nama employee_typ yang merupakan child (anak) dari object type person4_typ : CREATE TYPE employee_typ UNDER person4_typ ( emp_id NUMBER, mgr VARCHAR2(30), OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2); 6) Membuat method milik sub type employee_typ : CREATE OR REPLACE TYPE BODY employee_typ AS OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN ( (SELF AS person4_typ).show ' -- Employee Id: ' TO_CHAR(emp_id) ', Manager: ' mgr ); 7) Membuat sub type dengan nama part_time_student_typ yang merupakan child (anak) dari sub type student_typ : CREATE TYPE part_time_student_typ UNDER student_typ ( number_hours NUMBER, OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2); 8) Membuat method milik sub type part_time_student_typ : Hal : 14

CREATE TYPE BODY part_time_student_typ AS OVERRIDING MEMBER FUNCTION show RETURN VARCHAR2 IS BEGIN RETURN ( (SELF AS person4_typ).show ' -- Major: ' major ', Hours: ' TO_CHAR(number_hours)); 9) Membuat table dengan nama person4_obj_table yang bertipe object person4_typ : CREATE TABLE person4_obj_table OF person4_typ; 10) Menyisipkan data Bob Jones ke dalam object type person4_typ pada tabel person4_obj_table : INSERT INTO person4_obj_table VALUES (person4_typ(12, 'Bob Jones', '111-555-1212')); 11) Menyisipkan data Joe Lane ke dalam sub type student_typ pada tabel person4_obj_table : INSERT INTO person4_obj_table VALUES (student_typ(51, 'Joe Lane', '1-800-555-1312', 12, 'HISTORY')); 12) Menyisipkan data Jane Smith ke dalam sub type employee_typ pada tabel person4_obj_table : INSERT INTO person4_obj_table VALUES (employee_typ(55, 'Jane Smith', '1-800-555-7765', 100, 'Jennifer Nelson')); 13) Menyisipkan data Kim Patel ke dalam sub type part_time_student_typ pada tabel person4_obj_table : INSERT INTO person4_obj_table VALUES (part_time_student_typ(52, 'Kim Patel', '1-800-555-1232', 14, 'PHYSICS', 20)); 14) Menampilkan isi tabel person4_obj_table : Hal : 15

16 SELECT p.show() FROM person4_obj_table p; ~*** Practices makes Perfect ***~ Hal : 16