Arsitektur Basis Data Oracle

dokumen-dokumen yang mirip
Perkenalan SQL. Ada empat macam tipe database yaitu hirarki, jaringan, relasional, dan objek.

Oracle Academic Initiative

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

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

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

STRUCTURE QUERY LANGUAGE DDL & DML

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

PERINTAH SQL DAN INTERKONEKSI PHP-MySQL

Apa yang akan dibahas? Pengertian SQL Penggolongan Statement SQL Aturan Gramatika SQL Struktur Dasar SQL Query Satu (1) Tabel

PRACTISE

SUBQUERY-2. MI2154 SQL LANJUT Dedy Rahman Wijaya, S.T., M.T., OCA

Oracle Academic Initiative

Bab 3. Query Lanjutan POKOK BAHASAN: TUJUAN BELAJAR:

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

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

IKG2I4 / Software Project I

Tutorial Database Oracle Chapter4 Pembatasan dan Pengurutan

Oracle Academic Initiative

BAB 4 : Interaksi PL/SQL dengan Oracle Server

STRUCTURE QUERY LANGUAGE (SQL)

Oracle Academic Initiative

Pertemuan 10 Structure Query Language(SQL)

Sub Query. Rosa Ariani Sukamto Blog: Website:

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

Tutorial Database Oracle Chapter3 Menampilkan Data Menggunakan Perintah SQL SELECT

Oracle Academic Initiative

Esson Sihombing, S.Kom. Lab. Basisdata 1 Sistem Informasi UNIKOM 2013

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

Menampilkan Data Dari Beberapa Tabel

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

Oracle Academic Initiative

Perangkat Lunak Pengembangan Web

Konsep Sistem Informasi B. BAB 2 - SQL Overview

Pengertian Query. Query adalah perintah-perintah untuk mengakses data pada sistem basis data

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

TUGAS I PRAKTIKUM SISTEM BASIS DATA. Nama: Krisna Pandu Wibowo( )

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

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

Pertemuan DDL INDIKATOR. Modul Teori Database Aknela

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

Macam - Macam Perintah Pada SQL

BAB 2 LANDASAN TEORI Pengertian DBMS (Database Management System)

SQL (Structure Query Language) Gentisya Tri Mardiani, S.Kom

RENCANA PEMBELAJARAN

PERTEMUAN 10 PEMBUATAN TABEL

MODUL 5. Advanced Query : Pemilihan dan Pengurutan Data PRAKTIKUM BASIS DATA LANJUT TEKNIK PERANGKAT LUNAK UNIVERSITAS PGRI RONGGOLAWE

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

PERTEMUAN 2 PEMILIHAN DAN PENGURUTAN DATA

PENGANTAR TEKNOLOGI SISTEM INFORMASI MANAGEMENT 2

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

Database Systems: Lab. Actvity 1: Database Design. Merancang Database. Merancang Database. Tipe Tabel MySQL.

BAB 2 : Dasar Penulisan Statemen SQL Sasaran Mengetahui kemampuan dari SQL SELECT Statement Dapat membuat perintah SQL dengan SELECT Statement

MODUL V DATA MANIPULATION LANGUAGE (DML) 1

SQL. Pemrograman Web II. Ganjil

Modul 3 : Query Penggabungan Tabel

SQL Data Definition Language (DDL)

Praktikum Basis Data 2. BAB 1 : Pendahuluan

LAPORAN TUGAS BASIS DATA I

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

Operator Himpunan. Operator Himpunan, DML, DDL, DCL, TCL, Sequence, Index dan Synonym

Praktikum Basis Data 14 Structure Query Language 2

Jobsheet SQL Dasar : Hari Zulianto, ST [Year]

SEKOLAH TINGGI TEKNOLOGI INDONESIA TANJUNG PINANG

PERTEMUAN 9 MANIPULASI DATA

SISTEM BASIS DATA. Oleh : Devie Rosa Anamisa

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

Oracle Academic Initiative

PRAKTIKUM 5 SISTEM BASIS DATA JOIN


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

KURSUS ONLINE JASA WEBMASTERS

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

Oracle Academic Initiative

MODUL PEMBINAAN KARIER

LATAR BELAKANG IBM San Jose Research Laboratory.

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN WEB Semester: 2 MYSQL 200 menit No.: Job: 12 Tgl: Hal.

Hendra Setiawan ( )

STRUCTURED QUERY LANGUAGE (SQL) (Implementasi menggunakan MySQL)

Konsep Dasar Basis Data. Oleh: Harnan Malik Abdullah, ST., MSc. Program Pendidikan Vokasi Universitas Brawijaya 2017

Oracle Academic Initiative

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

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

SQL DASAR BASIS DATA. Rajif Agung Yunmar, S.Kom., M.Cs.

Structured Query Language

RENCANA PEMBELAJARAN SEMESTER

Apakah SQL? Membuat basis data dan struktur tabel Input, update, dan delete data dari tabel Membuat query sederhana dan kompleks SQL

Fungsi Single-Row. Fungsi merupakan fitur paling dibutuhkan dari SQL yang dapat digunakan untuk:

Mahasiswa mengetahui & memahami mengenai DML, DCL di SQL. (Isi_Field_1, Isi_Field_2,, Isi_Field_N) ;

MENGENAL SYNTAX DML PADA SQL

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

Oracle Academic Initiative

Pertemuan 12 Pengenalan Structured Query Language

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

CONSTRAINT clients_client_num_pk PRIMARY KEY (client_number));

Pertemuan 10. Bahasa Query Terapan

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

Oracle Academic Initiative

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

MODUL 5 INTERNET PROGRAMMING : MySQL

Transkripsi:

Arsitektur Basis Data Oracle Oracle pertama kali dicetuskan oleh Larry Elisson beserta dua temannya pada tahun 1977. Nama Oracle diambil dari proyek milik CIA di mana dia sebelumnya bekerja. (Wikipedia) Sebuah server Oracle merupakan sebuah DBMS yang menyediakan pendekatan terintegrasi dan komprehensif dalam mengatur informasi. Secara struktur, sebuah DBMS Oracle atas dua bagian besar, yakni: Oracle Instance dan Oracle Database. SGA merupakan sebuah struktur memori di server yang berfungsi sebagai cache berbagai informasi seperti data-buffer, perintah SQL, dan informasi mengenai user. Sebagai tambahan, terdapat juga redo-log yang bersifat online yang berfungsi untuk menyimpan sejarah transaksi. Semua proses dapat juga menyimpan redo-log yang online ini menjadi archive-log yang bersifat offline. 1

Oracle menyimpan data secara logika dalam bentuk tablespace dan secara fisik dalam bentuk datafile. Di dalam sebuah tablespace dapat banyak segment, misalnya index segment, data segment, dan lain-lain. Dan tiap-tiap segment tersebut terdiri dari berbagai extent. Extent terdiri dari kelompok blok-blok data yang berdekatan. Blok-blok data tersebut membentuk unit dasar penyimpanan data. 2

Perkenalan SQL Sebuah database adalah sekumpulan informasi yang disusun dengan baik. Untuk mengatur sebuah database, dibutuhkan sebuah Database Management System (DBMS). DBMS merupakan program untuk menyimpan, mengambil, dan memodifikasi data dalam database karena permintaan user. Ada lima macam tipe database yaitu hirarki, jaringan, relasional, objek, dan dimensional. Ada beberapa terminologi dalam database relasional (yang digunakan oleh Oracle), yaitu: 1. Row, atau baris, mempresentasikan semua data dari sebuah tabel. Sebuah seharusnya diidentifikasikan dengan sebuah kunci primer (primary key). 2. Kolom, atau atribut yang berisi salah satu jenis nilai dari row. 3. Primary key, atau kunci primer, yang HARUS terdiri atas satu nilai unik. 4. Foreign key, atau kunci tamu, merupakan kolom yang mendefinisikan bagaimana tabel dapat berhubungan satu dengan yang lain. 5. Field (pada Oracle) dapat ditemukan sebagai titik pertemuan antara baris dan kolom dan hanya terdapat satu nilai di dalamnya. Untuk mengakses data pada database diperlukan perintah khusus yang dikenal dengan naman SQL. Ada beberapa jenis perintah SQL pada Oracle, yakni: 1. Pengambilan data, yakni: SELECT. 2. Data Manipulation Language (DML), yakni: INSERT, UPDATE, DELETE, dan MERGE. 3. Data Definition Language (DDL), yakni: CREATE, ALTER, DROP, RENAME, dan TRUNCATE. 4. Kontrol transaksi, yakni: COMMIT dan ROLLBACK. 5. Data Control Language (DCL), yakni: GRANT dan REVOKE. Ada beberapa hal yang perlu diperhatikan dalam menulis perintah SQL: 1. Perintah SQL tidak case-sensitive. Artinya, huruf besar dan kecil tidak dibedakan. 3

2. Perintah SQL dapat lebih dari 1 baris. 3. Kata-kata kunci tidak boleh dipotong atau dipisahkan pada baris yang berbeda. 4. Klausa pada umumnya diletakkan pada baris yang berbeda. 5. Inden dapat digunakan untuk memudahkan dalam pembacaan. Perintah dasar SELECT SELECT * {[DISTINCT] kolom ekspresi [alias], } FROM nama_tabel; Keterangan: Setelah perintah SELECT, gunakan tanda * untuk memilih semua kolom yang ada pada tabel. Perintah DISTINCT digunakan untuk menghilangkan duplikasi pada hasil SQL. Bagian kolom dipakai apabila perintah DISTINCT digunakan tapi dapat juga digunakan tanpa perintah DISTINCT. 1. SELECT * ; 2. SELECT DISTINCT * FROM departments; 3. SELECT department_id, location_id FROM departments; Ekspresi Aritmetika SQL juga mengenal beberapa ekspresi aritmetika, yaitu: Operator Deskripsi + Penjumlahan - Pengurangan * Perkalian / Pembagian Dari keempat operator tersebut, urutan prioritas pengerjaannya adalah: *, /, +, - Dengan demikian, operasi dengan menggunakan / akan didahulukan apabila terdapat operator + dan/atau - di dalam SQL, demikian halnya apabila terdapat operasi perkalian dan pembagian maka operator * akan didahulukan sebelum operasi /, dan seterusnya. 4

1. SELECT last_name, salary, salary + 300 ; 2. SELECT last_name, salary, 12 * salary + 100 ; 3. SELECT last_name, salary, 12 * (salary + 100) ; Penggunaan Alias Selain itu, setiap kolom dapat dibuat aliasnya. Alias merupakan penamaan ulang dari sebuah kolom, dan sangat berguna untuk kolom yang melakukan perhitungan. Penulisan alias dilakukan setelah menyebutkan nama kolom dan dapat menggunakan kata kunci AS di antara nama kolom dan nama alias. Penulisan alias membutuhkan tanda petik ganda apabila dalam nama kolom yang baru terdapat spasi, karakter special, atau menggunakan huruf besar dan kecil. 1. SELECT last_name AS nama, commission_pct komisi ; 2. SELECT last_name Nama, salary * 12 Gaji Tahunan ; Perintah Concate Dalam SQL dapat juga digunakan operator penggabungan (concatenate) untuk menggabungkan kolom atau kata dengan kolom lain. Operator ini direpresentasikan dengan dua garis tegak lurus ( ). Untuk menggabungkan dengan kalimat, digunakan tanda petik tunggal. 1. SELECT last_name job_id AS Pegawai ; 2. SELECT last_name memiliki ID pekerjaan: job_id AS Detil Pegawai FROM employees; Struktur Tabel Untuk melihat struktur tabel, dapat digunakan perintah SQL berikut: DESC[RIBE] nama_tabel; 5

DESCRIBE departments; Membatasi dan Mengurutkan Data Salah satu cara untuk membatasi penampilan data adalah dengan memberikan syarat/kondisi pada klausa WHERE. Perintah dasar SQL-nya adalah sebagai berikut; SELECT * {[DISTINCT] kolom/ekspresi [alias], } FROM nama_tabel WHERE kondisi; Pada kolom dengan nilai berupa string, pada bagian kondisi menggunakan tanda petik tunggal. 1. SELECT employee_id, last_name, job_id, department_id WHERE department_id = 90; 2. SELECT last_name, job_id, department_id WHERE last_name = Whalen ; Pada bagian kondisi terdapat beberapa operator perbandingan yang dapat digunakan, seperti yang terdapat pada tabel berikut. Operator Arti = Sama dengan > Lebih besar dari >= Lebih besar atau sama dengan < Kurang dari <= Kurang dari atau sama dengan <> Tidak sama dengan!= Tidak sama dengan ^= Tidak sama dengan 6

BETWEEN AND IN(set) Berada di antara 2 value Yang cocok dengan salah satu yang terdapat dalam set LIKE Yang cocok dengan pola karakter tertentu IS NULL Jika value-nya merupakan merupakan nilai null 1. SELECT last_name, job_id, department_id, hire_date WHERE hire_date = 01-JAN-95 ; 2. SELECT last_name, job_id, department_id, salary WHERE salary >= 6000; 3. SELECT last_name, salary WHERE salary <= 3000; 4. SELECT last_name, salary WHERE salary BETWEEN 2500 AND 3500; 5. SELECT employee_id, last_name, salary, manager_id WHERE manager_id IN (100, 101, 201); 6. SELECT first_name WHERE first_name LIKE S% ; 7. SELECT first_name WHERE first_name LIKE _o% ; 8. SELECT last_name, manager_id WHERE manager_id IS NULL; Logika Kondisi Logika kondisi menggabungkan hasil dari dua komponen kondisi sehingga menghasilkan satu kondisi. Operatornya seperti pada tabel berikut. Operator Arti AND Menghasilkan TRUE apabila kedua komponen benar 7

OR Menghasilkan TRUE apabila salah satu komponen benar NOT Menghasilkan TRUE apabila kondisinya false 1. SELECT employee_id, last_name, job_id, salary WHERE salary >= 10000 AND job_id LIKE %MAN% ; 2. SELECT employee_id, last_name, job_id, salary WHERE salary >= 10000 OR job_id LIKE %MAN% ; 3. SELECT employee_id, last_name, salary, manager_id WHERE manager_id IN (100, 101, 201); 4. SELECT last_name, job_id WHERE job_id NOT IN ( IT_PROG, ST_CLERK, SA_REP ); Tata Urutan Hak Pada Operator Semua operator yang telah dijelaskan di atas memiliki urutan tertentu dalam pengerjaannya, yang ditunjukkan pada tabel di bawah ini. Urutan ini dapat dilanggar dengan menggunakan tanda kurung pada bagian perintah yang akan dikerjakan terlebih dahulu. Urutan Operator Pengerjaan 1 Operator aritmetika 2 Operator penggabungan 3 Operator perbandingan 4 IS [NOT] NULL, LIKE, [NOT] IN 5 [NOT] BETWEEN 6 Kondisi logika NOT 7 Kondisi logika AND 8 Kondisi logika OR 8

1. SELECT last_name, job_id, salary WHERE job_id = SA_REP OR job_id = AD_PRES AND salary > 15000; 2. SELECT last_name, job_id, salary WHERE (job_id = SA_REP OR job_id = AD_PRES ) AND salary > 15000; Klausa ORDER BY Digunakan untuk mengurutkan data hasil SQL. Terdapat dua macam pengurutan yakni: ASC: urut naik, secara default digunakan DESC: urut turun Perintah ORDER BY dituliskan pada bagian akhir dari pernyataan SELECT. Sintaksnya sebagai berikut. SELECT * {[DISTINCT] kolom/ekspresi [alias], } FROM nama_tabel [WHERE kondisi] [ORDER BY {kolom, ekspresi} [ASC DESC]]; Perintah ini juga dapat digunakan untuk mengurutkan kolom berdasarkan alias kolom maupun untuk mengurutkan lebih dari satu kolom. 1. SELECT last_name, job_id, department_id, hire_date ORDER BY hire_date; 2. SELECT last_name, job_id, department_id, hire_date 9

ORDER BY hire_date DESC; 3. SELECT employee_id, last_name, salary * 12 gajitahunan ORDER BY gajitahunan; 4. SELECT last_name, department_id, salary ORDER BY department_id, salary DESC; 10

Query Banyak Tabel Ada kalanya untuk mendapatkan data tertentu dibutuhkan query yang mengakses lebih dari satu tabel. Ketikkan kedua perintah berikut pada SQL Editor atau pada prompt SQL> DESC employees; DESC departments; Seperti yang telah dijelaskan pada pembahasan sebelumnya, kedua perintah tersebut menunjukkan struktur tabel employees dan departments. Perhatikan struktur kedua tabel tersebut. Kolom employee_id dan department_id terdapat pada tabel employees, dan ternyata kolom department_id juga terdapat pada tabel departments. Agar supaya kedua tabel tersebut dapat menampilkan data dalam satu query, kedua tabel tersebut harus dihubungkan. Cartesian Product Sebuah Cartesian product tercipta ketika kondisi join tidak disebutkan atau invalid. Untuk menghindari terjadinya Cartesian product, selalu masukkan kondisi join yang valid di klausa WHERE. Untuk lebih jelas mengenai Cartesian product, kerjakan praktik nomor 1. SELECT last_name, department_name namadep, departments; Untuk menggabungkan dua tabel pada Oracle digunakan perintah sebagai berikut. SELECT tabel1.kolom, tabel2.kolom FROM tabel1, tabel2 WHERE tabel1.kolom1 = tabel2.kolom2; Sintaks di atas disebut juga dengan nama equijoin. Kerjakan dan perhatikan contoh berikut. 11

SELECT employees.employee_id, employees.last_name, employees.department_id, departments.department_id, departments.location_id, departments WHERE employees.department_id = departments.department_id; SELECT last_name, employees.department_id, department_name, departments WHERE employees.department_id = departments.department_id AND last_name= Matos ; Penyebutan nama tabel dapat dijadikan alias untuk mempermudah pengetikan query. Kerjakan dan perhatikan contoh berikut. SELECT e.employee_id, e.last_name, e.department_id, d.department_id, d.location_id e, departments d WHERE e.department_id = d.department_id; Untuk menggabungkan lebih dari dua tabel dibutuhkan kondisi sebanyak (n-1) dimana n adalah banyaknya tabel yang akan dihubungkan. Jadi, untuk menghubungkan 3 buah tabel dibutuhkan 2 kondisi join, untuk menggabungkan 4 tabel dibutuhkan 3 kondisi join, dst. SELECT e.last_name, d.department_name, L.city e, departments d, location L WHERE e.department_id = d.department_id AND d.location_id = L.location_id; Selain equijoin, Oracle juga memiliki non-equijoin. Kondisi non-equijoin mengandung sesuatu selain operator sama dengan (=) seperti operator <, >, atau juga BETWEEN. SELECT e.last_name, e.department_id, d.department_name e, departments d WHERE e.employee_id = d.department_id; 12

Bentuk join yang lain adalah Outer Join. Outer join pada umumnya digunakan untuk menampilkan yang tidak memiliki hubungan induk-anak pada tabel-tabel yang berhubungan. Sintaksnya sebagai berikut. SELECT tabel1.kolom, tabel2.kolom FROM tabel1, tabel2 WHERE tabel1.kolom(+) = tabel2.kolom; SELECT tabel1.kolom, tabel2.kolom FROM tabel1, tabel2 WHERE tabel1.kolom = tabel2.kolom(+); Sintak tabel1.kolom=tabel2.kolom(+) merupakan sintak outer join yang ditempatkan di salah satu sisi (bukan keduanya) pada klausa WHERE. Tanda (+) diletakkan pada sisi yang tidak sempurna (misalnya, terdapat nilai null di dalamnya). Selain itu, outer join tidak boleh menggunakan operator IN dan OR. SELECT e.last_name, d.department_id, d.department_name e, departments d WHERE e.department_id(+) = d.department_id; SELECT e.last_name, e.department_id, d.department_name e LEFT OUTER JOIN departments d ON (e.department_id = d.department_id); Sedikit tambahan tentang outerjoin, selain dua macam sintaks tersebut, terdapat tiga macam outer join yaitu: LEFT OUTER JOIN, RIGHT OUTER JOIN, dan FULL OUTER JOIN. FULL OUTER JOIN tidak akan dibahas disini. SELECT e.last_name, e.department_id, d.department_name e RIGHT OUTER JOIN departments d ON (e.department_id = d.department_id); SELECT e.last_name, e.department_id, d.department_name 13

e FULL OUTER JOIN departments d ON (e.department_id = d.department_id); Join juga dapat dilakukan pada satu tabel yang sama. SELECT pekerja.last_name bekerja pada manager.last_name pekerja, employees manager WHERE pekerja.manager_id = manager.employee_id; Untuk mempermudah penulisan pada equijoin, dapat digunakan klausa USING. Klausa USING digunakan untuk mencocokkan satu kolom ketika terdapat lebih dari satu kolom yang sama. SELECT employee_id, e.last_name, d.location_id e JOIN departments d USING (department_id); SELECT l.city, d.department_name FROM locations l JOIN departments d USING (location_id) WHERE location_id = 1400; SELECT l.city, d.department_name FROM locations l JOIN departments d USING (location_id) WHERE d.location_id = 1400; 14