Wednesday, October 10, 2012

BAB V



RDBMS

RDBMS Overview, DB2, ORACLE, MY SQL, SQL Server

Relational Database Management System (RDBMS)
RDBMS adalah Relational Database Management System (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Dimana setiap orang bebas untuk menggunakan RDBMS, namun tidak boleh dijadikan produk turunan yang bersifat komersial. GDBMS sebenarnya merupakan turunan salah satu konsep utama dalam database sejak lama, yaitu SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian database, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis. Keandalan suatu sistem database (DBMS) dapat diketahui dari cara kerja optimizer-nya dalam melakukan proses perintah-perintah SQL, yang dibuat oleh user maupun program-program aplikasinya. Sebagai database server, MySQL dapat dikatakan lebih unggul dibandingkan database server lainnya dalam query data. Hal ini terbukti untuk query yang dilakukan oleh single user, kecepatan query MySQL bisa sepuluh kali lebih cepat dari PostgreSQL dan lima kali lebih cepat dibandingkan Interbase.
DB2 adalah produk Sistem Manajemen Hubungan Database dari IBM atau sekarang yang populer disebut Data Server yang dimana merupakan Perangkat Lunak Manajemen Informasi. Kebanyakan DB2 disebut juga sebagai DB2 Enterprise Server Edition atau top of the line DB2 DAta Warehouse Edition (DB2 DWE) yang berjalan pada Unix, Windows dan Linux Server.

Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS.

5.1 Pengenalan DB2
a. Pengertian DB2
DB2 adalah produk Sistem Manajemen Hubungan Database dari IBM atau sekarang yang populer disebut Data Server yang dimana merupakan Perangkat Lunak Manajemen Informasi. Kebanyakan DB2 disebut juga sebagai DB2 Enterprise Server Edition atau top of the line DB2 DAta Warehouse Edition (DB2 DWE) yang berjalan pada Unix, Windows dan Linux Server.
Sering disebut sebagai DB2 Universal Database. DB2 dari IBM juga telah komitmen untuk mendukung Linux dan telah mengembangkan beberapa tools demi kemudahan penggunanya. DB2 tersedia dalam berbagai platform dan tergolong VLDB (Very Large Database). Dukungannya terhadap Java secara penuh (Control Center - adminitration tool - tersedia dalam versi Java) membuatnya makin diterima oleh berbagai kalangan serta telah meraih sejumlah besar penghargaan (seperti yang telah dikeluarkan VARBusiness dan ComputerWorld). Meski cukup ``raksasa'', DB2 belum open-source dan sering dibandingkan dengan database komersial lainnya.

DB2 merupakan relational database management system (RDBMS) yang memungkinkan pemakai melakukan CREATE, UPDATE dan CONTROL terhadap basis data relasional dengan menggunakan Structured Query Language (SQL). DB2 didisain untuk memperoleh informasi yang dibutuhkan dalam bisnis berskala kecil maupun besar.

DB2 dapat dijalankan pada bermacam-macam platform termasuk sistem mainframe seperti MVS/ESA, VM, dan VSE; sistem midrange seperti OS/400, AIX, dan sistem yang berbasiskan UNIX lainnya; dan sistem tunggal atau yang berbasiskan LAN seperti OS/2, Windows, dan Linux Data diatur oleh DB2 database server yang dapat diakses dan dimanipulasi oleh aplikasi pada PC workstations yang berjalan dalam sistem operasi terkenal seperti OS/2, DOS, Windows, Linux dan dengan aplikasi yang dikembangkan untuk UNIX workstations dari IBM, HP, dan SUN. Aplikasi tersebut untuk menunjang client dan server platform yang akan ditambahkan di masa yang akan datang.

DB2 merupakan suatu sistem terbuka. Selain untuk client platform yang disediakan oleh IBM, semua basis data yang ada dalam DB2 server dapat diakses dari beberapa produk yang menunjang protokol Distributed Relational Architecture (DRDA). Hal tersebut dimaksudkan untuk mengurangi kebutuhan komponen tambahan dan gateway yang mahal.
Perkembangan DB2.
DB2 adalah software yang mempunyai sejarah yang cukup lama, dan merupakan
database pertama yang menggunakan SQL. Nama DB2 diberikan diberikan pada
Database Mangement System (DBMS) ketika IBM melepaskan SQL/DS. Software
database ini juga telah mengadopsi relational mode yang merupakan ide DrF.Codd
yang merupakan pegawai IBM. Untuk mendukung gagasan relational database ini
IBM membuat sebuah bahasa khusus dalam melakukan query database yaitu
SQL(Structure Query Language).
Untuk beberapa tahun, DB2 khusus dibuat untuk IBM mainframe. Namun kemudian,
IBM membawa DW2 ke platform lain seperti UNIX , Windows, dan Linux. Sekarang
ini DB2 telah mengalami kemajuan yang pesat, dan telah tersedia di Platform 64 bit.
IBM mengklaim bahwa DB2 telah mempunyai feature selft tunning, self managing,
dan mendukung penyimpan XML secara native.
DB2 mempunyai beberapa edisi software, hal ini untuk menghindarkan user
membayar feature yang tidak mereka pakai. Edisi-edisi yang ada di DB2 antara lain
seperti Sample Edition termasuk Workgroup, Workgroup Unlimited, Enterprise
Database, dan Edisi High end nya bernama DB2 UDB Data Warehouse Enterprise
Edition. Untuk Menghadapi Oracle dan Microsoft yang telah mengeluarkan versi
gratis software nya, IBM mengeluarkan DB2 Universal Database Express C , dengan
license free.
Akhir th. 70-an     : Riset penyusunan teknologi relasional
Th. 80-an     : Produk DB2 untuk VM, VSE, MVS, AS/400, OS/2
Th. 90-an     : Produk DB2 untukAIX, HP-UX, SOLARIS, NT, SINIX
Kelebihan-kelebihan DB2.
Mengapa DB2 banyak digunakan :

• Memenuhi kebutuhan bisnis untuk aplikasi-aplikasi baru
• Scalable across
• Menawarkan Open hardware dan system integration
• Integrated Tools dan Usability enhancements

DB2 Product Family.

IBM DB2 Family dari database management systems menangani ruang lingkup hardware platform yang besar mulai dari mainframe sampai dengan mesin-mesin yang berbasiskan Intel, server IBM dan non IBM RISC serta workstation, massively parallel processors, Sistem mid range AS/400, dan sistem mainframe yang dijalankan dengan sistem operasi VM, VSE dan MVS. Dengan tambahan database engines yang dijalankan pada setiap platform tersebut. DB2 family termasuk solusi “middleware” untuk pengaksesan basis data yang heterogen, replikasi data dan database systems management yang berjalan di seluruh platform.
Produk-produk DB2 yang dijalankan pada OS/2 dan platform yang berhubungan dengan produk tersebut dikenal sebagai versi DB2 Common Server. Hal ini untuk membedakan bahwa produk-produk tersebut dapat dijalankan pada platform yang sejenis, yang berisikan fungsi produk yang serupa dan menggunakan bersama source code yang sama.
Produk-produk DB2 Common Server merupakan client/server RDBMS untuk server IBM dan server non IBM, dan workstation yang berisikan fungsi-fungsi dimana aplikasi dapat dijalankan pada lingkungan client yang luas, fungsi-fungsi untuk menyimpan dan mengelola data, dan gateway yang mengizinkan pengaksesan data dengan SQL pada lingkungan yang heterogen.
DB2 UTILITY
Digunakan untuk menjalankan fungsi-fungsi system administrasi yang berbeda-beda, seperti loading tables, recover, repairing data, serta monitoring dan tuning sistem DB2.
Utilitas terbagi dalam 3 kategori:
1. Utilitas Setup atau Move
2. Utilitas Maintenance
3. Utilitas Recovery

Utilitas Setup atau Move
Berfungsi untuk memuat (loading) data ke dalam table dan sebaliknya. Tabel yang dimuat dapat berupa table kosong atau yang sudah ada isinya. Terdiri dari 2 fungsi, yaitu: Load dan Unload.
Utilitas Maintenance
Berfungsi mengatur kembali table space atau index, memperoleh kembali ruang yang hilang pada fragmentasi table atau table yang telah dihapus, memperbaiki statistik yang disimpan pada DB2 Catalog. Terdiri dari 2 fungsi, yaitu: Reorganize dan Update Statistics.
Utilitas Recovery
Berfungsi untuk menempatkan kembali (restore) basis data pada keadaan yang sekarang. Terdiri dari 2 fungsi, yaitu: Backup dan Recover. 

DB2 OBJECT
Kunci elemen pada Sistem Administrator DB2 adalah pengaturan obyek-obyek DB2 yang dibuat oleh software DB2. Obyek-obyek yang terdapat pada DB2 di antaranya : Tabel dan View yang digunakan oleh application programmer dan end user yang merupakan bagian dari pemrosesan aplikasi. Juga termasuk obyek-obyek yang biasanya tidak terlihat pada tingkatan aplikasi seperti table space, index, database, dan storage group


Pengenalan Oracle.
Oracle

Basis data Oracle adalah basis data relasional yang terdiri dari kumpulan data dalam suatu sistem manajemen basis data RDBMS. Perusahaan perangkat lunak Oracle memasarkan jenis basis data ini untuk bermacam-macam aplikasi yang bisa berjalan pada banyak jenis dan merk perangkat keras komputer (platform). Oracle adalah perusahaan piranti lunak pertama yang mengembangkan dan 100 persen menggunakan piranti lunak enterprise diatas Internet diseluruh lini produknya. Sejak diluncurkannya database relational pertama di dunia pada tahun 1977, Oracle telah menjadi bagian penting dalam revolusi teknologi yang secara nyata mengubah bisnis modern.

Basis data Oracle ini pertama kali dikembangkan oleh Larry Ellison, Bob Miner dan Ed Oates lewat perusahaan konsultasinya bernama Software Development Laboratories (SDL) pada tahun 1977. Pada tahun 1983, perusahaan ini berubah nama menjadi Oracle Corporation sampai sekarang.

Oracle menyediakan produk-produk database, application server, collaboration selain enterprise business applications dan perangkat application development. Oracle adalah perusahaan piranti lunak pertama yang mengembangkan dan 100 persen menggunakan piranti lunak enterprise diatas Internet diseluruh lini produknya. Sejak diluncurkannya database relational pertama di dunia pada tahun 1977, Oracle telah menjadi bagian penting dalam revolusi teknologi yang secara nyata mengubah bisnis modern. PT Oracle Indonesia adalah anak perusahaan dari Oracle Corporation, yang didirikan pada tahun 1995.
Mayoritas para pengambil keputusan di bidang IT telah memahami bahwa produk ini cukup besar dan powerfull. Tergolong VLDB dan memiliki sejumlah besar tools yang sangat memudahkan para pengembang dalam membangun aplikasi bisnis. Di Linux, Oracle memiliki WebDB yang terintegrasi dengan Web Server Apache (www.apache.org). WebDB memudahkan programmer memanipulasi objek database seperti membuat database, user, sampai mencetak laporan. Semuanya dapat dilakukan dengan menggunakan browser.
Perkembangan Oracle

Oracle adalah DBMS hasil produksi dari Oracle Corporation yang berpusat di USA, yang sekaligus berperan sebagai vendor yang mengkhususkan diri pada produk-produk DBMS untuk berbagai jenis komputer dan mendukung system operasi dari berbagai vendor. Mulai dari PC yang berbasis Windows atau Linux sampai dengan komputer mainframe baik yang IBM compatible maupun yang berasal dari vendor lain seperti SUN Microsystems, Hewlett Packard, dan lain-lain. Sifat kompatibilitas dengan berbagai platform itulah yang membuat Oracle menjadi salah satu DBMS yang banyak digunakan dewasa ini.Oracle pertama kali diproduksi sekitar tahun 1984 dan terus mengalami perkembangan sampai sekarang ini. Oracle yang kita pelajari saat ini adalah versi9i dan kita hanya belajar Oracle yang berbasis Microsoft Windows.

1. Installasi Oracle Database.

Pada saat kita melakukan installasi, kita akan diminta untuk memilih jenis basis data awal yang akan kita buat pada saat installasi, pilihannya adalah General Purpose, Transaction Processing, dan Data Warehousing. Jika tidak ingin membuat basis data pada saat installasi, kita bisa memilih Software Only, dimana hanya akan diinstall Oracle Database-nya tanpa ada basis data satu pun di dalamnya. Pembuatan basis data bisa dilakukan setelah proses installasi selesai menggunakan DatabaseConfigurationWizard.

Setelah proses installasi selesai, kita harus mengkonfigurasi suatu servis yang disebut dengan listener menggunakan tool Net Configuration Asistant. Listener digunakan untuk mendeteksi koneksi Oracle Client pada server database tersebut. Konfigurasi yang dilakukan meliputi 2 hal, yaitu : protocol apa yang digunakan dalam jaringan yang kita pakai dan port mana yang akan digunakan untuk koneksi client-server (defaultnya adalah 1521). Jika dalam jaringan kita menggunakan lebih dari satu protokol, maka akan terdapat 1 listener untuk 1 protokol. Jika ada beberapa listener dalam suatu Oracle Database maka kita akan diminta untuk mengaktifkan salah satu listener yang sesuai.

2. Installasi Oracle Client.

Pada installasi Oracle Client akan ditanya tool-tool apa saja yang akan ikutkan dalam installasi tersebut selain tools miliknya client. Tool-tool tersebut bisa kita gunakan untuk melalukan hal-hal yang berbau administratif walaupun kita jalankan dari client.
Setelah installasi selesai, kita harus mengkonfigurasi suatu servis yang akan digunakan untuk koneksi ke Oracle Database menggunakan Net Service Name, servis tersebut adalah Net Service Name. KonfigurasiNetServiceName meliputi:
- Identitas komputer yang sudah terinstall Oracle Database di mana database yang akan diakses berada berikut dengan port yang digunakan oleh listener aktif. Identitas komputer bisa diketahui dari IP address-nya (jika kita menggunakan protocol TCP/IP) atau dari Computer Name-nya.- Database yang akan kita akses, diketahui dari nama database-nya (dalam Net Configuration Assistant dinamakan Sevice Name).Dalam melakukan koneksi ke database, user Oracle menggunakan SQL Plus. User akan ditanya username, password, dan host string. Host string diisi dengan Net Service Name yang sudah dikonfigurasi sehingga bisa terkoneksi dengan database yang diinginkan.

• Tipe-tipe user dalam Oracle membagi user menurut jenis dan tanggung jawab yang harus diembannya dalam menangani suatu database. Tipe-tipe user Oracle adalah sebagai berikut :1. Database AdministratorSuatu database butuh paling tidak satu DBA (Database Admnistrator) untuk melakukan administrasi pada database yang bersangkutan. Karena database Oracle bisa menangani data yang besar dan bisa mempunyai banyak user, sering kali administrator databasenya lebih dari satu orang, dan mereka bisa berbagi tanggung jawab. Tanggung jawab administratorantaralain:
- Install dan upgrade server database dan aplikasinya.- Meng-alokasikan sistem penyimpanan dan merencanakan kebutuhan akan media penyimpan untuk masa mendatang.- Modifikasi struktur database jika perlu, berdasarkan informasi yang diberikan oleh application developer.- Mendefinisikan user sesuai dengan kebutuhannya.- Mengontrol dan memonitor akses user ke database.- Memonitor dan meng-optimisasi performance dari database.- Merencanakan dam melakukan backup dan recovery.

2. Security OfficersSeorang Security Officer mempunyai tugas untuk mengontrol dan memonitor akses user ke database ditinjau dari sisi keamanan baik dari databasenya ataupun dari systemnya.

3. Network AdministratorNetwork Administrator melakukan administrasi tool-tool Oracle yang berhubungan dengan networking.

4. Application DeveloperTugas Application Developer adalah mendesain dan mengimplementasikan suatu aplikasi database. Tanggung jawabnya meliputi :- Mendesain dan dan membangun aplikasi database.- Mendesain struktur database untuk aplikasi yang akan dibangun.- Memberikan informasi kepada Administrator tentang besarnya ruang penyimpan yang digunakan dan modifikasi struktur database jika diperlukan.- Menyediakan fasilitas keamanan dalam aplikasi yang dibangun.

5. Application AdministratorTugasnya adalah melakukan hal-hal yang berhubungan dengan administrasi pada aplikasi yang dibuat.

6. Database UserTugasnya melakukan interaksi dengan database melalui applikasi yang sudah dibuat sesuai dengan hak-nya dan membuat report dari hasil interaksi yang sudah dia lakukan.
Oracle merupakan salah satu perusahaan TI terkemuka di dunia. Anda mungkin sudah pernah mengenal Oracle melalui produk RDBMS (Relational Database Management System) mereka yaitu Oracle Database. Tulisan kali ini kana membahas secara global mengenai apa itu Oracle Database. Cocok bagi pemula yang mungkin belum mengenal Oracle Database. Sampai tulisan ini diturunkan, versi Oracle Database terakhir adalah versi 10g.
Pesaing dari perangkat lunak Oracle adalah:

  • IBM: DB2, Informix, UDB
  • Microsoft SQL Server
  • Teradata (data warehousing dan business intelligence)
  • Software AG: Adabas
  • Sybase.
Oracle dan IBM menekankan pada platform menengah seperti UNIX dan Linux, sementara Microsoft cenderung meraih pasar untuk kelas rendah (Microsoft Windows platforms).
Basis data Oracle juga bersaing dengan basis data sumber-terbuka (open-source relational databases), seperti PostgreSQL, Firebird, dan MySQL. Perangkat lunak EnterpriseDB yang berbasis PostgreSQL, belum lama ini mengumumkan fitur yang kompatibel dengan Oracle dengan harga yang sangat wajar dan murah.
Oracle Workforce Development Program
Deskripsi
Program Oracle WDP merupakan program yang ditujukan untuk 'individual learner' yang ingin belajar tentang teknologi Oracle untuk

  • Mengembangkan diri ke level yang lebih tinggi dengan standard kualifikasi professional
  • Memperoleh skill untuk meningkatkan karier mereka di masa yang akan datang
  • Mendapatkan nilai lebih dalam memasuki pasar tenaga kerja IT yang sangat kompetitif
  • Memperoleh pengakuan dari standard industry IT
Tujuan akhir program ini adalah menyiapkan peserta untuk memperoleh sertifikasi Oracle OCA (Oracle Certified Associate) dan OCP (Oracle Certified Professional) yang diakui secara international, tidak hanya di Indonesia tetapi juga di seluruh dunia.

Istilah lain yang mungkin terkait


  • Computer Oracle and Password System
  • Yet Another Hierarchical Officious Oracle
  • XML based languages
  • Metrodata
  • Software Open Source


Terdapat 2 pilihan jalur/track yaitu
Oracle 10g Database Administration (DBA) Track:
No Module Name Oracle Certification
1 Oracle Database 10g: Introduction to SQL OCA
2 Oracle Database 10g: Administration Workshop I OCA
3 Oracle Database 10g: Administration Workshop II OCP

Oracle 10g internet Developer Suite (iDS) Track:
No Module Name Oracle Certification
1 Oracle Database 10g: Introduction to SQL OCA
2 Oracle Database 10g: Program with PL/SQL OCA
3 Oracle Forms Developer 10g: Build Internet Applications OCP


Manfaat

  • Belajar Oracle modules sesuai standard kurikulum Oracle University
  • Memperoleh Students Kit Original dari Oracle
  • Memperoleh Certificate of attendant dari Oracle
  • Memperoleh 25% discount untuk mengikuti OCA/OCP examination
  • Jika lulus ujian, langsung mendapat sertifikat Oracle (OCA/OCP)
  • Mendapatkan nilai lebih untuk memasuki pasar tenaga kerja yang kompetitif
Oracle9i menawarkan sebuah infrastruktur kinerja yang tinggi untuk e-bisnis. Pada Oracle9i terdapat semua yang diperlukan untuk mengembangkan dan mengatur aplikasi-aplikasi internet.
Ada 2 produk Oracle9i : Oracle9i Applications Server dan Oracle9i Database, yang menyediakan infrastruktur yang lengkap dan mudah untuk aplikasi-aplikasi internet.
Oracle9i Application Server
Oracle9i Appplication Server (Oracle 9iAS) menjalankan seluruh aplikasi. Oracle Database menyimpan seluruh data. Oracle9i Application Server merupakan satu-satunya application server yang memasukkan layanan untuk seluruh aplikasi-aplikasi server yang ingin anda gunakan Oracle 9iAS dapat menjalankan:
• Portal atau situs web
• Aplikasi transaksi Java
• Aplikasi intelijen bisnis

Oracle 9iAS juga menyediakan integrasi antar pemakai, aplikasi, dan data melalui organisasi anda.
Oracle9i Database
Oracle9i Database mengatur seluruh data. Oracle9i database tidak hanya mengatur object relational data, tetapi juga data yang tidak terstruktur seperti :
• Spreadsheets
• Dokumen word
• Presentasi PowerPoint
• XML
• Tipe data multimedia seperti MP3, grafik, video, dll

Data tidak harus disimpan di dalam database. Oracle9i Database mempunyai layanan dimana anda dapat menyimpan metadata mengenai informasi yang disimpan di dalam sistem file. Anda dapat menggunakan database server untuk mengatur dan melayani informasi dimana informasi itu berada.
COMPUTING MODEL ORACLE 10g
Oracle Corporation mengeluarkan produk Oracle 10g berbasis grid computing. Grid computing adalah arsitektur TI baru yang menghasilkan sistem informasi perusahaan yang berbiaya rendah dan lebih adaptif terhadap dinamika bisnis. Dengan grid computing, sejumlah komponen hardware dan software yang modular dan independen akan dapat dikoneksikan dan disatukan untuk memenuhi tuntutan kebutuhan bisnis. Lebih jauh, dari sisi ekonomi, implementasi grid computing berarti membangun pusat komputasi data yang tangguh dengan struktur biaya variatif yang bisa disesuaikan dengan kebutuhan. Grid computing adalah solusi dari masalah-masalah umum yang dihadapi perusahaan IT, permasalahan pada aplikasi yang menyebabkan hardware tidak berfungsi maksimal contohnya kasus monolitik, yaitu sistem sulit digunakan karena mahalnya ongkos pengelolaan dan sulitnya dilakukan perubahan terhadap system juga masalah informasi yang terpisah pisah dan tidak bisa dimanfaatkan secara maksimal. Dalam mengadopsi grid computing, perusahaan tidak perlu mengambil langkah secara revolusioner, karena aplikasi yang sebelumnya telah dijalankan akan tetap bekerja seperti sebelumnya. Dan dimungkinkan pula untuk mengadopsi teknologi grid computing pada aplikasi yang telah dijalankan, bahkan tanpa memerlukan banyak penulisan ulang konfigurasi sistem.

OVERVIEW PERINTAH PERINTAH SQL
Perintah Dasar SQL
Perintah Select
Perintah Select digunakan untuk :
Selection : memilih baris/record
Projection : memilih kolom/field
Join : mengambil data dari beberapa tabel yang berbeda
Syntax Select
SELECT [DISTINCT] {*,column[alias],..}
FROM table;
Contoh:
SELECT loc,deptno
FROM emp
OPERATOR ARITMATIKA
Derajat Operator :
- Perkalian dan Pembagian
- Penjumlahan dan Pengurangan
- Bila ada ( ) maka ekspresi didalamnya dilaksanakan terlebih dahulu
Contoh :
SELECT ename,sal,12*sal+100 FROM emp;
NILAI NULL
Adalah nilai yang tidak ada, tidak didefinisikan, tidak diterapkan dan tidak diketahui.
Nilai null ¹ 0 { zero}, null ¹ spasi {blank}
Contoh:
SELECT ename,job,sal,comm. FROM emp;
KOLOM ALIAS
Digunakan untuk merubah tampilan judul kolom.
Menggunakan AS atau “ “ {Double Qoute}
Contoh:
SELECT ename AS name, sal “salary” FROM emp;
OPERATOR GABUNGAN
Digunakan untuk menghubungkan kolom satu dengan kolom yang lain.
Menggunakan opertor gabungan { || }
Contoh:
SELECT ename || job AS employees
FROM emp;
KOLOM ALIAS DAN GABUNGAN
Digunakan untuk merubah tampilan judul kolom.
Menggunakan AS atau “ “ {Double Qoute}
Contoh:
1. SELECT ename AS name, sal salary FROM emp;
2. SELECT ename ||”is a”|| job AS “employee details”
FROM emp;
BARIS DUPLIKAT / GANDA
Syntax Select
SELECT [DISTINCT] {*,column[alias],..}
FROM table;
Contoh:
SELECT loc,deptno
FROM emp
SQL dan SQL*PLUS
Keistimewaan SQL :
Dapat digunakan oleh user baik yang berpengalaman atau tidak dalam pembuatan program
Merupakan bahasa non prosedural
Mengurangi sejumlah waktu untuk membuat dan memelihara sistem
Sintaksnya dalam bahasa Inggris
SQL dan SQL*PLUS
SQL *PLUS adalah lingkungan untuk melakukan hal berikut ini :
- Menjalankan perintah SQL untuk mengambil, mengubah, menambah dan memindahkan data dari database.
- Bentuk, kalkulasi, simpan & mencetak hasil QUERY dalam bentuk report
- Membuat file script untuk menyimpan perintah SQL sehingga digunakan kembali dimasa datang
SQL *PLUS EDITING COMMANDS
* APPEND TEXT.
* CHANGE / OLD / NEW.
* CHANGE / TEXT /.
* CLEAR BUFFER.
* DEL.
* DEL N.
* DEL M N
* INPUT
* INPUT TEXT
* LIST
* LIST N
* LIST M N
* RUN N
* N TEXT
* 0 TEXT
BATASAN dan PENGURUTAN DATA
Membatasi Baris Menggunakan Pilihan
Syntax :
SELECT [ DISTINCT ] { * / column [alias], … }
FROM table
[ WHERE condition(s) ]
WHERE adalah batasan baris yang memenuhi kondisi
condition adalah susunan nama – nama kolom, ekspresi, konstanta dan operator perbandingan
Character String & Date
Syntax:
WHERE expr operator value
Contoh :
… WHERE hiredate = ‘01-JAN-95’
… WHERE sal >= 1500
… WHERE ename = ‘SMITH’
Character string dan date dalam WHERE clause harus dibatasi dengan tanda kutip tunggal (‘ ‘). Sedangkan number tidak perlu. Oracle menyimpan tanggal dalam bentuk numerik, yang menampilkan abad, tahun, bulan, tanggal, jam, menit, dan detik. Tanggal default dalam bentuk DD-MON-YY.
Operator perbandingan digunakan dalam kondisi yang membandingkan satu ekspresi dengan ekspresi yang lain.
* OPERATOR PEMBANDING
* OPERATOR BETWEEN
Digunakan untuk membandingkan diantara 2 nilai.
Syntax :
BETWEEN … AND …
Contoh :
SELECT ename,sal FROM emp
WHERE sal BETWEEN 1000 AND 1500;
Anda dapat menampilkan baris berdasarkan range nilai tertentu menggunakan operator BETWEEN. Untuk menetapkan range harus disebutkan batas bawah dan batas atasnya.
OPERATOR IN
Digunakan untuk mencari nilai yang sama dengan nilai yang didalam kurung.
Syntax :
…… IN( List )
Contoh :
SELECT empno,ename,sal,mgr FROM emp
WHERE mgr IN(7902,7566,7788);
Operator IN dapat digunakan untuk data tipe apa saja. Jika yang didalam kurung ( ) bertipe karakter atau date gunakan kutip tunggal di tiap data.
OPERATOR LIKE
Digunakan untuk membandingkan nilai yang sesuai dengan susunan karakter yang ada.
Syntax :
…. LIKE ….
Contoh :
SELECT ename FROM emp
WHERE ename LIKE “S%”;
Anda dapat memilih baris yang sesuai dengan suatu pola karakter dengan menggunakan operator LIKE. Dua simbol dapat digunakan untuk membentuk string pencarian.
OPERATOR NULL
Digunakan membandingkan nilai apakah sama dengan NULL.
Syntax : … IS NULL
Contoh :
SELECT ename,mgr FROM emp
WHERE mgr IS NULL;
Operator NULL menguji nilai apakah null atau tidak.
Nilai null adalah sebuah nilai yang tidak ada, tidak didefinisikan, atau tidak diketahui.
Oleh karena itu, tidak dapat diuji dengan = karena sebuah nilai null tidak dapat disamakan dengan nilai apapun.
Urutan Operator LOGIKA :
* Semua operator pembanding

* NOT
* AND
* OR
Contoh :
SELECT ename,job FROM emp
WHERE job NOT IN(“CLERK”,”MANAGER”,”ANALYST”);
ORDER BY Clause
Syntax:
SELECT expr FROM table
[ WHERE condition(s)]
[ ORDER BY {column,expr} [ASC/DESC]];
Contoh:
SELECT ename, job, deptno, hiredate
FROM emp
ORDER BY hiredate DESC;
ORDER BY clause dapat digunakan untuk menentukan urutan tampilan dari record yang terpilih.
ASC : urutan baris / record dari kecil ke besar ( sebagai default pengurutan )
< optional >
FUNGSI BARIS TUNGGAL
SQL FUNCTIONS
Dua macam SQL Functions :
Single row functions
-Memanipulasi data item
-Dapat memodifikasi tipe data
-Dapat berbentuk tersarang.
Multiple row functions
Syntax :
Function_name (column | ekpresi, [arg1, arg2, …])
Fungsi Karakter
Single-row character functions menerima data karakter sebagai masukan dan dapat menghasilkan nilai karakter dan bilangan.
Fungsi karakter dapat dibagi menjadi :
Case conversion functions
Character manipulation functions
Fungsi Mengubah Bentuk Huruf
LOWER : digunakan untuk mengubah untai karakter huruf menjadi huruf kecil.
INITCAP : digunakan untuk merubah huruf pertama dari setiap kata menjadi huruf besar dan sisanya huruf kecil.
UPPER : digunakan untuk mengubah untai karakter huruf menjadi huruf besar.
Fungsi Manipulasi Karakter
CONCAT : digunakan untuk menggabungkan nilai.
SUBSTR : digunakan untuk mengambil string yang panjangnya ditentukan.
LENGTH : digunakan untuk menunjukkan panjang dari string dengan angka
Fungsi Manipulasi Karakter
INSTR : digunakan untuk menemukan posisi numerik dari karakter yang disebutkan.
LPAD : digunakan untuk mengisi nilai karakter rata kiri.
TRIM : digunakan untuk memotong bagian atas atau menarik karakter dari untai
karakter.
Fungsi Number
ROUND : untuk menerima masukkan numerik dan menghasilkan nilai numerik.
TRUNC : untuk membulatkan kolom, ekspresi atau nilai ke n desimal.
MOD : untuk menemukan sisa nilai1 dibagi nilai2.
Bekerja Dengan Date
SYSDATE : fungsi tanggal yang menghasilkan tanggal dan waktu sekarang.
DUAL : tabel dummy yang digunakan untuk melihat sysdate.
Fungsi Date
MONTHS_BETWEEN(date1, date2)
ADD_MONTHS (date, n)
NEXT_DAY (date, ‘char’)
LAST_DAY (date)
ROUND (date[,’fmt’])
TRUNC (date[,’fmt’])
MENAMPILKAN DATA DARI BEBERAPA TABEL JOIN
Macam – macam join :
* Equijoin
* Non – Equijoin
* Outer Join
* Self Join
Syntax :
SELECT table1.kolom, table2.kolom
FROM table1,table2
WHERE table1.kolom1 = table2.kolom2
EQUIJOIN
Adalah hubungan antara tabel yang meliputi komplemen primary dan foreign key
NON – EQUIJOIN
Adalah ketidak terhubungannya antara field-field dari tabel-tabel yang telah dijoin.
OUTER JOIN
Digunakan untuk melihat baris yang biasanya tidak ketemu dari kondisi JOIN.
Operator yang digunakan adalah tanda plus ( + )
SELF JOIN
Digunakan untuk mencari isi dari suatu field
SUBQUERY
Pengertian Subquery dan Sintaksnya
Subquery adalah sebuah statement SELECT yang digunakan didalam statement SELECT lainnya
Sintaks :
SELECT select_list
FROM table
WHERE expr_operator
( SELECT select_list FROM table);
Subquery sangat berguna apabila sebuh query tidak diketahui nilainya
Multiple-Row Subquery
Mengembalikan nilai lebih dari satu baris
Gunakan operator pembanding multiple-row
Statement DEFINE & ACCEPT
Untuk mendefinisikan variabel dapat digunakan salah satu dari kedua statement input pada SQL*PLUS dibawah ini :
DEFINE : membuat variabel bertipe CHAR
ACCEPT : membaca inputan user dan menyimpannya dalam variable
MEMANIPULASI DATA
MENAMBAHKAN BARIS BARU KE DALAM TABEL
Dengan memberikan perintah INSERT
Sintaks :
INSERT INTO table [( coloumn [,coloumn…] ) ]
VALUES (VALUE [ ,VALUE….]);
Dengan :
Table : nama tabel
Coloumn : nama kolom pada tabel yang akan dimasukkan nilainya
Value : nilai yang diberikan untuk kolom yang bersangkutan
MENAMBAHKAN BARIS BARU
Nilai yang dimasukkan harus sesuai dengan urutan kolom yang
ada pada tabel.
Bersifat optional untuk menuliskan nama-nama kolom pada
klausa INSERT.
PERINTAH UPDATE
Anda dapat memodifikasi baris yang ada menggunakan perintah UPDATE .
Sintaks :
UPDATE table
SET column = value [ value, column = value, ….]
[where condition];
Dengan :
Value = nilai atau hasil subquery untuk kolom yang dimaksud.
Condition = Mengidentifikasi baris tertentu yang akan di update.
MENGUPDATE BARIS DI TABEL
• Sebuah baris / beberapa baris spesifik dimodifikasi ketika anda menspesifikasikan klausa WHERE.
SQL > UPDATE emp
2 SET deptno = 20
3 WHERE empno = 7782;
1 row updated.
• Semua baris akan dimodifikasi jika anda tidak memakai WHERE
SQL > UPDATE emp
2 SET deptno = 20
14 row updated.
MENGUPDATE DENGAN MULTIPLE-COLUMN SUBQUERY
Sintaks :
UPDATE table
SET (column, column…..) =
(SELECT column, column,…..
FROM table
WHERE condition)
WHERE condition;
UPDATE emp
SET (job,deptno) =
(SELECT job,deptno FROM emp
WHERE empno = 7499)
WHERE empno = 7698;
1 row created
MEMODIFIKASI BARIS BERDASARKAN TABEL LAIN
Gunakan subquery pada perintah UPDATE untuk memodifikasi baris disuatu tabel.
SQL > UPDATE employee
2 SET deptno = (SELECT deptno From emp
3 WHERE empno = 7788)
4 WHERE job = (SELECT job FROM emp
5 WHERE empno = 7934);
2 row updated.
INTEGRITY CONSTRAINT ERROR
SQL > UPDATE emp
2 SET deptno = 55
3 WHERE DEPTNO = 10;
UPDATE emp
*
ERROR at line 1 :
ORA-02291 : integrity constraint (USR.EMP_DEPTNO_FK)
Violated – parent key not found
PERINTAH DELETE
Anda dapat menghapus baris yang telah ada dari tabel dengan menggunakan perintah DELETE.
DELETE [From] table
[WHERE condition] ;
MENGAPUS BARIS DARI TABEL
• Baris spesifik akan dihapus jika anda menspesifikasikan klausa WHERE.
SQL > DELETE FROM department
2 WHERE dname = ‘DEVELOPOMENT’ ;
1 row deleted.
• Semua baris ditabel akan dihapus jika anda tidak menggunakan klausa WHERE.
SQL > DELETE FROM department;
4 row deleted.


Interaksi antara SQL*Plus dengan SQL
Contoh Cursor Variable: Master Table dan Details Table
Mari kita perhatikan stored procedure di bawah ini, yang mencari database dari perpustakaan utama untuk buku, majalah, dan tape. Tabel master menyimpan judul dan kode kategori (dimana 1=buku, 2=majalah, 3=tape) untuk setiap item. Tiga tabel detail menyimpan informasi spesifik dari setiap kategori. Ketika tipanggil, procedure tesrebut mencari tabel master berdasarkan judul, menggunakan kode kategori terkait untuk membuka perintah OPEN-FOR, lalu membuka cursor variable untuk query dari tabel detail yang tepat.
========================================================================
CREATE PACKAGE cv_types AS
TYPE LibCurTyp IS REF CURSOR;
...
END cv_types;
CREATE PROCEDURE find_item (
title VARCHAR2(100),
lib_cv IN OUT
cv_types.LibCurTyp)
AS
code BINARY_INTEGER;
BEGIN
SELECT item_code
FROM titles INTO code
WHERE item_title = title;
IF code = 1 THEN
OPEN lib_cv FOR SELECT * FROM books
WHERE book_title = title;
ELSIF code = 2 THEN
OPEN lib_cv FOR SELECT * FROM periodicals
WHERE periodical_title = title;
ELSIF code = 3 THEN
OPEN lib_cv FOR SELECT * FROM tapes
WHERE tape_title = title;
END IF;
END find_item;
========================================================================
Contoh Cursor Variable: Pro*C Program
Program Pro*C berikut ini menanyakan kepada user untuk memilih database table, membuka cursor variable untuk query dari table tersebut, lalu melakukan fetch baris-baris data yang dihasilkan oleh query tersebut:
========================================================================
#include
#include
void sql_error();
main()
{
char temp[32];
EXEC SQL BEGIN DECLARE SECTION;
char * uid = "scott/tiger";
SQL_CURSOR generic_cv; /* cursor variable */
int table_num; /* selector */
struct /* EMP record */
DEPT record */
{
int dept_num;
char dept_name[15];
char location[14];
} dept_rec;
struct /* BONUS record */
{
char emp_name[11];
char job_title[10];
float salary;
} bonus_rec;
EXEC SQL END DECLARE SECTION;
/* Handle Oracle errors. */
EXEC SQL WHENEVER SQLERROR DO sql_error();
/* Connect to Oracle. */
EXEC SQL CONNECT :uid;
/* Initialize cursor variable. */
EXEC SQL ALLOCATE :generic_cv;
/* Exit loop when done fetching. */
EXEC SQL WHENEVER NOT FOUND DO break;
for (;;)
{
printf("\n1 = EMP, 2 = DEPT, 3 = BONUS");
printf("\nEnter table number (0 to quit): ");
gets(temp);
table_num = atoi(temp);
if (table_num <= 0) break;
/* Open cursor variable. */
EXEC SQL EXECUTE
BEGIN
IF :table_num = 1 THEN
OPEN :generic_cv FOR SELECT * FROM emp;
ELSIF :table_num = 2 THEN
OPEN :generic_cv FOR SELECT * FROM dept;
ELSIF :table_num = 3 THEN
OPEN :generic_cv FOR SELECT * FROM bonus;
END IF;
END;
END-EXEC;
for (;;)
{
switch (table_num)
{
case 1: /* Fetch row into EMP record. */
EXEC SQL FETCH :generic_cv INTO :emp_rec;
break;
case 2: /* Fetch row into DEPT record. */
EXEC SQL FETCH :generic_cv INTO :dept_rec;
break;
case 3: /* Fetch row into BONUS record. */
EXEC SQL FETCH :generic_cv INTO :bonus_rec;
break;
}
/* Process data record here. */
}
/* Close cursor variable. */
EXEC SQL CLOSE :generic_cv;
}
exit(0);
}
void sql_error()
{
/* Handle SQL error here. */
}
========================================================================
Contoh Cursor Variable: Memanipulasi Host Variables di dalam SQL*Plus
Host variable adalah variable untuk mendeklarasikan di dalam host environment, lalu melewatkannya ke satu atau lebih program-program PL/SQL, yang mana kita dapat menggunakannya seperti variable lainnya. Dalam lingkungan SQL*Plus, untuk mendeklarasikan host variable, kita menggunakan perintah VARIABLE. Sebagai contoh, kita mendeklarasikan variable dengan tipe NUMBER seperti di bawah ini:
VARIABLE return_code NUMBER
Baik SQL*Plus maupun PL/SQL dapat mereferensi host variable, dan SQL*Plus dapat menampilkan nilainya. Namun, untuk mereferensi host variable di dalam PL/SQL, kita harus mengawali namanya dengan tanda titik dua (:), seperti ditunjukkan oleh contoh berikut ini:
========================================================================
DECLARE
...
BEGIN
:return_code := 0;
IF credit_check_ok(acct_no) THEN
:return_code := 1;
END IF;
...
END;
Untuk menampilkan nilai dari host variable di dalam SQL*Plus, kita menggunakan perintah PRINT, seperti berikut ini:
SQL> PRINT return_code
RETURN_CODE
-----------
1
Tipe data SQL*Plus yaitu REFCURSOR mengijinkan kita untuk mendeklarasikan host variables, yang mana kita dapat menggunakannya untuk mengembalikan hasil-hasil query dari stored subprograms. Dalam script di bawah ini, kita mendeklarasikan host variable dari REFCURSOR. Kita menggunakan perintah SET AUTOPRINT dari SQL*Plus untuk menampilkan hasil-hasil query secara otomatis.
CREATE PACKAGE emp_data AS
TYPE EmpRecTyp IS RECORD (
emp_id NUMBER(4),
emp_name VARCHAR2(10),
job_title VARCHAR2(9),
dept_name VARCHAR2(14),
dept_loc VARCHAR2(13));
TYPE EmpCurTyp IS REF CURSOR RETURN EmpRecTyp;
PROCEDURE get_staff (dept_no IN NUMBER, emp_cv IN OUT EmpCurTyp);
END;
/
CREATE PACKAGE BODY emp_data AS
PROCEDURE get_staff (dept_no IN NUMBER, emp_cv IN OUT EmpCurTyp) IS
BEGIN
OPEN emp_cv FOR
SELECT empno, ename, job, dname, loc FROM emp, dept
WHERE emp.deptno = dept_no AND emp.deptno = dept.deptno
ORDER BY empno;
END;
END;
/
COLUMN EMPNO HEADING Number
COLUMN ENAME HEADING Name
COLUMN JOB HEADING JobTitle
COLUMN DNAME HEADING Department
COLUMN LOC HEADING Location
SET AUTOPRINT ON
VARIABLE cv REFCURSOR
EXECUTE emp_data.get_staff(20, :cv)
========================================================================

SQL statement VS SQL* PLUS Statement
-          SQL sebuah bahasa, standard ANSI, keyword tidak dapat disingkat, Perintah-perintah memanipulasi data dan mendefinisikannya dalam database.
-          SQL* PLUS sebuah lingkungan, milik oracle, keyword dapat disingkat, Perintah-perintah tidak dapat memanipulasi data dan mendefinisikannya dalam database.
PL/SQL
a.    Lingkungan SQL
PL/SQL engine. Oracle Database Server. SQL Statement. Executor

b.    Keuntungan PL/SQL
  • PL/SQL dapat digunakan di server sehingga client hanya dapat mengakses didalam server.
  • Penggunaan PL/SQL mudah dimengerti oleh setiap pengguna.
  • PL/SQL dapat didesain khusus untuk database Oracle dalam menggunakan program aplikasi.
  •   Memungkinkan Aplikasi dan Oracle Server menggunakan Library yang dapat digunakan bersama-sama dalam bentuk stored procedure
  • Peningkatan Kinerja
  • Penggunaan PL/SQL, memungkinkan pengiriman perintah secara blok dalam satu perintah yang secara drastis dapat menurunkan trafik jaringan
  • Modular. Bentuk modular memungkinkan banyak kemudahan yang dapat diperoleh
  • Portable. PL/SQL adalah sarana yang asli dimiliki oleh Oracle Server, artinya, program PL/SQL dapat dengan mudah dipindahkan dari satu Oracle Server ke Oracle Server lainnya, meskipun dengan OS atau platform yang berbeda.
  • Dapat mendeklarasikan Variable

a.    Contoh perintah SQL didalam PL/SQL

Bentuk Umum Struktur PL/SQL
DECLARE
variabel tipe_data;
konstanta CONSTANT tipe_data := nilai;

BEGIN
statement_1;
statement_2;

EXCEPTION
WHEN nama_eksepsi THEN statement_untuk_mengatasi_error;

END;



Sumber: 
www.stafsite.gunadarma.ac.id
materi sidang comprehensi Wisnu Ajie Supardi S.Kom
http://wartawarga.gunadarma.ac.id/2009/11/oracle-14/


                              www.gunadarma.ac.id

 


No comments:

Post a Comment