Anda di halaman 1dari 20

BASIS DATA TERDISTRIBUSI DAN DATA MINING

“ORACEL TUTORIAL“

Dosen Pengampu :

Niyatul Muna, S.Kom, MT

Oleh :

Bunga Adina Pramesti G1171752

Luluk Aisyah G41171840

Desnia Sindi Damayanti G41171968

Sri Mahahayu Bimantari N. G41172179

PROGRAM STUDI DIV REKAM MEDIK

JURUSAN KESEHATAN

POLITEKNIK NEGERI JEMBER

2019
SECTION 3. FILTERING DATA

IS NULL & IS NOT NULL


a. IS NULL
Dalam dunia basis data, null adalah spesial. Ini adalah penanda untuk informasi yang
hilang atau informasi tersebut tidak berlaku. Null dalam arti khusus bukan nilai seperti
angka, string karakter, atau datetime. Oleh karena itu, tidak dapat membandingkannya
dengan nilai lain seperti nol (0) atau string kosong ("). Secara umum, null bahkan tidak
sama dengan NULL. Orders tabel dari database sampel:

ORDERS
*ORDER_ID
CUSTOMER_ID
STATUS
SALESMEN_ID
ORDER_DATE
Salesmen_id kolom menyimpan id salesman dari salesman yang bertanggung
jawab dari pesanan penjualan.Pernyataan SELECT berikut mengembalikan
semua pesanan penjualan yang tidak memiliki salesman yang bertanggung jawab:

- Ini mengembalikan baris ke kosong


- Permintaan menggunakan operator perbandingan (=) untuk membandingkan
nilai dari salesmen_id kolom dengan null, yang tidak benar.

Untuk memeriksa apakah nilainya null atau tidak, maka menggunakan operator
is_null sebagai berikut:

Operator is_null mengembalikan true jika ekspresi atau kolom null. Jika tidak,
maka mengembalikan false.

Permintaan berikut mengembalikan semua pesanan penjualan yang tidak memiliki


salesman yang bertanggung jawab:
Output dari query:

b. IS NOT NULL

Untuk meniadakan operator is_null, maka menggunakan operator is_not null


sebagai berikut:

Contoh berikut mengembalikan semua pesanan penjualan yang memiliki s


alesman yang bertanggung jawab:

Output Parsial:
SECTION 4. JOINING TABLES

JOINS

Oracle join digunakan untuk menggabungkan kolom dari dua tabel atau lebih, berdasarkan nilai
kolom yang terkait. Kolom terkait adalah primary key column(s) dari tabel pertama dan foreign
key column(s) dari tabel kedua. Oracle mendukung inner join, left join, right join, full outer join
dan cross join. User dapat bergabung dengan tabel untuk dirinya sendiri untuk meminta data
hierarkis menggunakan gabungan dalam, gabungan kiri, atau gabungan kanan. Jenis bergabung
ini dikenal sebagai bergabung sendiri.

Menyiapkan Tabel Sampel

Berikut ini membuat dua tabel baru dengan struktur yang sama untuk demonstrasi

Tabel memiliki beberapa warna umum seperti red dan green: palette_a tabel kiri dan palette_b
tabel kanan:
A. INNER JOIN

Dalam database relasional, data didistribusikan di banyak tabel terkait. Dengan inner join,
tabel akan digabungkan dua arah, sehingga tidak ada data yang NULL di satu sisi.
Misalnya, dalam database sampel , data pesanan penjualan terutama disimpan dalam tabel
orders dan order_items tabel.

Meminta data dari dua atau beberapa tabel, maka menggunkan klausa INNER Join.
Pernyataan tersebut digambarkan pada gabungan tabel T1 dan T2.

Pemeriksaan pernyataan diatas secara detail:

1. Tentukan tabel utama dalam klausa FROM, T1


2. Tentukan tabel bergabung di klausa INNER JOIN diikuti oleh join_predicate. Tabel
gabungan adalah T2 dalam pernyataan diatas.
3. Predikat gabungan menentukan kondisi untuk bergabung dengan tabel. Hanya baris
yang memenuhi predikat gabungan yang disertakan dalam rangkaian hasil.

Kueri mengembalikan hasil yang ditetapkan dengan menggabungkan nilai kolom


dari kedua rabel T1 dan T2 berdasarkan predikat gabungan. Membandingkan setiap baris
tabel T1 dengan baris rabel T2 untuk menemukan semua pasangan baris yang memenuhi
predikat gabungan. Kapan saja predikat gabungan dipenuhi dengan mencocokkan nilai-
nilai non-NULL, nilai-nilai kolom untuk setiap pasangan baris pencocokan dari tabel T1
dan T2 digabungkan menjadi satu baris dalam set hasil.

1. Kueri berikut menggunakan INNER JOIN klausa untuk mengambil data


dari orders dan order_items tabel:
2. Menggunakan USING klausa untuk menentukan kolom mana yang akan diuji
untuk kesetaraan saat bergabung dengan tabel.

3. Pernyataan berikut menunjukkan bagaimana untuk bergabung dengan tiga


tabel: orders, order_items, dan customers.

4. Menggambarkan bagaimana untuk bergabung empat tabel: orders,


order_items, customers, dan products.

B. LEFT JOIN
Dalam kueri ini, T1 adalah tabel kiri dan T2 tabel kanan. Kueri membandingkan setiap
baris dalam T1 tabel dengan baris dalam T2 tabel. Jika sepasang baris dari keduanya T1
dan T2 tabel memenuhi predikat gabungan, kueri menggabungkan nilai kolom dari
baris di kedua tabel dan menyertakan baris ini dalam hasil yang ditetapkan.

Jika baris dalam T1 tabel tidak memiliki baris yang cocok di T2 tabel, kueri
menggabungkan nilai kolom dari baris dalam T1 tabel dengan nilai NULL untuk setiap
kolom di tabel kanan yang muncul di SELECT klausa.

Dengan kata lain, gabungan kiri mengembalikan semua baris dari tabel kiri dan baris
yang cocok dari tabel kanan. Contoh :

1. Pernyataan berikut menggunakan LEFT JOINklausa untuk bergabung dengan dua


tabel: orders dan employees :

2. Pernyataan berikut menggunakan LEFT JOINklausa untuk bergabung dengan tiga


tabel: orders, employees dan customers:

3. Pernyataan berikut menunjukkan bagaimana cara menggunakan LEFT JOIN


dengan USING pernyataan:
4. Pernyataan berikut menunjukkan bagaimana cara menggunakan LEFT JOIN
dengan ON vs. WHERE pernyataan

4. Pernyataan berikut menunjukkan bagaimana cara menggunakan memindahkan


kondisi dari WHERE klausa ke ON klausa LEFT JOIN:

C. RIGHT JOIN
Pernyataan ini menunjukkan bagaimana cara menggunakan dua table menggunakan right outer
join do Oracle untuk menggabungkan dua atau lebih table :
Tabel T1 dan table T2 :

Table T1 dan T2 masing – masing adalah table kiri dan kanan.

Berikut cara kerja right outer join :

Setiap baris dari table T1 dibandingkan dengan table T2 :


- Jika sepasang baris memenuhi predikat gabungan, nilai – nilai kolom kedua baris digabungkan
untuk membuat baris hasil yang kemudian dimasukkan dalam hasil yang ditetapkan.
- Jika baris dalam table T2 tidak cocok dengan baris manapun dalam table T1, nilai kolom dari
baris pada table T2 digabungkan dengan nilai NULL untuk setiap kolom baris dari table T1 untuk
membuat baris hasil yang kemudian juga disertakan di set hasil.

Dengan kata lain, right outer join mengembalikan semua baris dari table kanan dan juga
mencocokkan baris dari table kiri.

Contoh right outer join :

Disini menggunakan table orders dan employee sebagai sampel database :

Dalam diagaram ini, seorang penjual (employee) bertanggung jawab atas satu atau lebih
pesanan penjualan (orders). Namun, beberapa pesanan penjualan mungkin tidak bertanggung
jawab atas penjual manampun.

Hasilnya mencakup semua salesman yang memilki jabatan sales Representative dan orders
mereka.
Jika salesman tidak bertanggung jawab atas setiap order penjualan seperti Alice Wells, Charlotte
Webb, maka kolom ORDER_ID dan STATUS diisi dengan nilai – nilai NULL.

Oracle Right Outer Join dengan Using Clause.

Mirip dengan joins yang lain seperti Inner Join, Left Join dapat digunakan untuk menentukan
kolom yang akan diuji kesetaraaanya ketika menggabungkan tabel – tabel. Berikut merupakan
sintaks Right Outer Join dengan Using Clause :

Dalam kueri ini, kolom yang tercantum dalam Using Clause harus ditampilkan dalam kedua tabel
T1 dam T2. Pernyataan berikut setara seperti pernyataan di atas :

Pernyataan berikut menunjukkan bagaimana menggunakan Right Outer Join dengan Using
Clause :
Pada contoh di atas, semua customers termasuk dalam set hasil. Jika customers tidak memiliki
pesanan penjualan, kolom ORDER_ID dan STATUS diisi dengan nilai NULL.

Oracle Right Join : Kondisi dalam On Vs Where clause

Pernyataan berikut mendapatkan data Employee dan Order dari Salesman dengan id 57.

Pernyataan berikut menempatkan kondisi dalam Where Clause sebagai ganti dari On Clause :
Kueri mengembalikan semua employee tetapi hanya employee dengan id 57 yang memiliki data
pesanan terkait. Terkait dengan inner join kondisi yang ditempatkan pada On Clause memiliki
efek yang sama seperti yang ditempatkan pada Where Clause. Right outer join digunakan untuk
meminta data dari beberapa tabel.

D. FULL OUTER JOIN

Pengenalan Oracle Full Outer Join Clause

Misalkan memiliki dua tabel T1 dan T2. Berikut ini menggambarkan full outer join
dari dua tabel :

Untuk setiap baris di tabel T1, full outer join akan membandingkan dengan setiap
baris di tabel T2. Jika baris dikedua tabel memenuhi join_condition full outer join
menyertakan kolom dari kedua baris di set hasil. Dalam kasus ini baris dalam tabel
T1 cocok dengan baris dalam tabel T2. Jika satu baris dari tabel T1 tidak memiliki
baris yang cocok dari tabel T2, full outer join akan menyertakan kolom dari tabel T1
dengan nilai nol untuk semua kolom dari tabel T2. Demikian pula, jika baris dalam
T2 yang tidak memilki baris yang cocok dalam tabel T1, full outer join akan
menyertakan kolom dari tabel T2 dengan nilai nol untuk kolom di tabel T1.
Perhatikan bahwa kata kunci OUTER bersifat opsional, oleh karena itu FULL OUTER
JOIN dan FULL JOIN sama. Diagram Venn berikut menggambarkan full outer join
dari dua tabel :
Contoh Full Outer Join pada Oracle

Pertama, buat dua tabel members dan projects. Misalkan, setiap member dapat
bergabung dengan nol atau satu project dan setiap project dapat memiliki nol atau
lebih member :

Kedua, masukkan beberapa project dan member ke dalam tabel projects dan
members :

Ketiga, gunakan full outer join untuk meminta data dari tabel members dan projects :
Berikut hasilnya :

Jack Daniel tidak bergabung dengan project apapun, Jane Doe dan John Doe
bergabung dengan project ERP dan Project sales CRM tidak memiliki member.
Untuk menentukan project uang tidak memiliki anggota, dapat menggunakan kueri
berikut :

Demikian pula, dapat menemukan member yang tidak berpartisipasi dalam project
apapun menggunakan kueri berikut :

E. CROSS JOIN
Gabung mandiri adalah gabung yang bergabung dengan tabel dengan dirinya sendiri.
Gabung otomatis berguna untuk membandingkan baris dalam tabel atau meminta data
hierarkis.
Berikut ini menggambarkan bagaimana tabel T bergabung dengan dirinya sendiri:

Tidak seperti join lainnya seperti INNER JOIN atau LEFT JOIN, CROSS JOIN tidak
memiliki klausa ON dengan predikat join. Ketika melakukan gabungan silang dari
dua tabel, yang tidak memiliki hubungan, akan mendapatkan produk Cartesian dari
baris dan kolom dari kedua tabel.
Gabung silang berguna ketika ingin menghasilkan banyak baris untuk pengujian.
Misalkan kita memiliki dua tabel yang memiliki baris m dan n, produk Cartesian dari
tabel ini memiliki baris m x n.
Lihat tabel inventaris berikut dalam database sampel.

Setiap baris dalam tabel inventaris memerlukan data untuk product_id, warehouse_id,
dan kuantitas.
Untuk menghasilkan data uji untuk dimasukkan ke dalam tabel inventaris, Anda dapat
menggunakan klausa CROSS JOIN seperti yang ditunjukkan dalam pernyataan
berikut:

Berikut hasilnya:

Contoh ini, join silang membuat Cartesian dari product_id dan warehouse_id dari
tabel produk dan gudang. Tabel produk 288 baris dan tabel gudang memiliki 9 baris,
oleh karena itu, gabungan silang dari tabel ini menghasilkan 2592 baris (288 x 9).
Perhatikan contoh ini menggunakan fungsi dbms_random.value () untuk
mendapatkan angka acak antara 10 dan 100, dan fungsi ROUND () untuk
mendapatkan nilai integer dari angka acakGabung mandiri adalah gabung yang
bergabung dengan tabel dengan dirinya sendiri. Gabung otomatis berguna untuk
membandingkan baris dalam tabel atau meminta data hierarkis.

Berikut ini menggambarkan bagaimana tabel T bergabung dengan dirinya sendiri:

Tidak seperti join lainnya seperti INNER JOIN atau LEFT JOIN, CROSS JOIN tidak
memiliki klausa ON dengan predikat join. Ketika melakukan gabungan silang dari
dua tabel, yang tidak memiliki hubungan, akan mendapatkan produk Cartesian dari
baris dan kolom dari kedua tabel.

Gabung silang berguna ketika ingin menghasilkan banyak baris untuk pengujian.
Misalkan kita memiliki dua tabel yang memiliki baris m dan n, produk Cartesian dari
tabel ini memiliki baris m x n.

Lihat tabel inventaris berikut dalam database sampel.

Setiap baris dalam tabel inventaris memerlukan data untuk product_id,


warehouse_id, dan kuantitas.

Untuk menghasilkan data uji untuk dimasukkan ke dalam tabel inventaris, Anda
dapat menggunakan klausa CROSS JOIN seperti yang ditunjukkan dalam pernyataan
berikut:

Berikut hasilnya:
Contoh ini, join silang membuat Cartesian dari product_id dan warehouse_id dari
tabel produk dan gudang. Tabel produk 288 baris dan tabel gudang memiliki 9 baris,
oleh karena itu, gabungan silang dari tabel ini menghasilkan 2592 baris (288 x 9).

Perhatikan contoh ini menggunakan fungsi dbms_random.value () untuk


mendapatkan angka acak antara 10 dan 100, dan fungsi ROUND () untuk
mendapatkan nilai integer dari angka acak.

F. SELF JOIN

Gabung mandiri adalah gabung yang bergabung dengan tabel dengan dirinya sendiri.
Gabung otomatis berguna untuk membandingkan baris dalam tabel atau meminta
data hierarkis.

Gabung mandiri menggunakan gabung lain seperti gabung dalam dan gabung kiri.
Selain itu, ia menggunakan alias tabel untuk menetapkan nama tabel yang berbeda
dalam kueri yang sama.

Berikut ini menggambarkan bagaimana tabel T bergabung dengan dirinya sendiri:

Perhatikan bahwa selain INNER JOIN, Anda dapat menggunakan LEFT JOIN dalam
pernyataan di atas.

Beberapa contoh penggunaan Oracle self join.

a) Menggunakan Oracle sendiri bergabung untuk query contoh data hierarkis

Lihat tabel karyawan berikut dalam database sampel.


Tabel karyawan menyimpan informasi pribadi seperti id, nama, jabatan. Selain itu,
memiliki kolom manager_id yang menyimpan garis pelaporan antara karyawan.

Presiden perusahaan, yang tidak melaporkan kepada siapa pun, memiliki nilai NULL
di kolom manager_id. Karyawan lain, yang memiliki manajer, memiliki nilai
numerik di kolom manager_id, yang menunjukkan id manajer.

Untuk mengambil data karyawan dan manajer dari tabel karyawan, Anda
menggunakan self join seperti yang ditunjukkan dalam pernyataan berikut:

Permintaan ini merujuk ke tabel karyawan dua kali: satu sebagai e (untuk karyawan)
dan yang lain sebagai m (untuk manajer). Predikat gabungan cocok dengan karyawan
dan manajer menggunakan kolom employee_id dan manager_id.

Gambar berikut menunjukkan hasilnya:


b) Menggunakan Oracle self join untuk membandingkan baris dalam contoh tabel
yang sama

Pernyataan berikut menemukan semua karyawan yang memiliki tanggal perekrutan


yang sama:
E1 dan E2 adalah tabel untuk tabel karyawan yang sama

Anda mungkin juga menyukai