Basis Data - Database Klinik
A. Disain Database dengan 5 Tabel
1. Aturan Bisnis
Ø Terdapat 5 dokter yang bekerja di klinik dan hanya menangani 5 jenis penyakit saja
Ø setiap pasien yang tiba berobat keklinik terlebih dahulu mendaftar dan menuliskan keluhan penyakit
2. Relasi Tabel
- Tabel no_pendaftaran dan pasien : 1 to many
- Tabel dokter dan penyakit : many to many
- Tabel pasien dan penyakit : many to many
3. Daftar Tabel
Nama Tabel : pasien
Jenis Tabel : Data
Atribut :kd_pasien (PRIMARY KEY), nama_pasien,umur,jenis_kelamin,alamat
Nama Tabel : dokter
Jenis Tabel : referensi
Atribut :kd_dokter (PRIMARY KEY), nama,jenis_kelamin,alamat,no_telp
Nama Tabel : penyakit
Jenis Tabel : referensi
Atribut :kd_penyakit (PRIMARY KEY), jenis_penyakit,nm_penyakit
Nama Tabel : no_pendaftaran
Jenis Tabel : referensi
Atribut :kd_pendaftaran (PRIMARY KEY), nomor_urut
Nama Tabel : docspesialis
Jenis Tabel : link
Atribut :kd_docspesialis (PRIMARY KEY), kd_docspesialis,kd_dokter,kd_penyakit
Nama Tabel : daftar
Jenis Tabel : link
Atribut :kd_daftar (PRIMARY KEY), kd_pasien,kd_penyakit
Nama Tabel : riwayat_pasien
Jenis Tabel :Data
Atribut :kd_riw_pas(PRIMARY KEY),kd_docspesialis,kd_daftar
B. Query
/* menampilkan nama dokter ,jenis_kelamin, alamat, no_telp dari tabel dokter, penyakit, docspesialis */
SELECT nama, jenis_kelamin, alamat, no_telp, jenis_penyakit, nm_penyakit
FROM dokter, penyakit, docspesialis
WHERE dokter.kd_dokter = docspesialis.kd_dokter
AND docspesialis.kd_penyakit = penyakit.kd_penyakit
/* menampilkan data registrasi pasien : nama_pasien umur jenis_kelamin ,alamat_pasien ,jenis_penyakit, nm_penyakit */
SELECT nama_pasien, umur, jenis_kelamin ,alamat_pasien ,jenis_penyakit, nm_penyakit ,no_pendaftaran
FROM pasien,penyakit,daftar
WHERE pasien.kd_pasien=daftar.kd_pasien and daftar.kd_penyakit=penyakit.kd_penyakit
/*String Operation : mengurutkan dan menampilkan data data pasien */
berdasarkan nama
SELECT * FROM `pasien`
ORDER BY nama_pasien
berdasarkan kd_pasien
SELECT * FROM `pasien`
ORDER BY kd_pasien
berdasarkan umur
SELECT * FROM `pasien`
ORDER BY umur
/*INNER JOIN tabel dokter ,penyakit, docspesialis */
SELECT dokter.nama ,dokter.jenis_kelamin , dokter.alamat ,dokter.no_telp ,penyakit.jenis_penyakit ,penyakit.nm_penyakit,
FROM dokter, penyakit ,docspesialis
WHERE dokter.kd_dokter = docspesialis.kd_dokter
AND docspesialis.kd_penyakit = penyakit.kd_penyakit
/*INNER JOIN dengan klausa INNER JOIN*/
SELECT dokter.nama, dokter.jenis_kelamin, dokter.alamat, dokter.no_telp,penyakit.nm_penyakit,penyakit.jenis_penyakit
FROM dokter INNER JOIN (penyakit INNER JOIN docspesialis ON penyakit.kd_penyakit =docspesialis.kd_penyakit) ON dokter.kd_dokter = docspesialis.kd_dokter
/*LEFT JOIN*/
SELECT dokter.nama, dokter.jenis_kelamin, dokter.alamat, dokter.no_telp
FROM dokter LEFT JOIN docspesialis
ON dokter.kd_dokter = docspesialis.kd_dokter
/* RIGHT JOIN*/
SELECT dokter.nama, dokter.jenis_kelamin, dokter.alamat, dokter.no_telp
FROM dokter RIGHT JOIN docspesialis
ON dokter.kd_dokter = docspesialis.kd_dokter
/*INNER JOIN tabel pasien ,penyakit ,daftar*/
/*JOIN dengan where*/
SELECT pasien.nama_pasien, pasien.umur, pasien.jenis_kelamin ,pasien.alamat_pasien , penyakit.jenis_penyakit, penyakit.nm_penyakit ,daftar.no_pendaftaran
FROM pasien,penyakit,daftar
WHERE pasien.kd_pasien=daftar.kd_pasien and daftar.kd_penyakit=penyakit.kd_penyakit
/*JOIN dengan kalusa INNER JOIN*/
SELECT pasien.nama_pasien, pasien.umur, pasien.jenis_kelamin ,pasien.alamat_pasien , penyakit.jenis_penyakit, penyakit.nm_penyakit ,daftar.no_pendaftaran
FROM pasien INNER JOIN (penyakit INNER JOIN daftar ON penyakit.kd_penyakit = daftar.kd_penyakit) ON pasien.kd_pasien = daftar.kd_pasien
/*JOIN LEFT*/
SELECT pasien.nama_pasien, pasien.umur, pasien.jenis_kelamin ,pasien.alamat_pasien ,daftar.no_pendaftaran
FROM pasien LEFT JOIN daftar
ON pasien.kd_pasien = daftar.kd_pasien
/*JOIN RIGHT*/
SELECT pasien.nama_pasien, pasien.umur, pasien.jenis_kelamin ,pasien.alamat_pasien ,daftar.no_pendaftaran
FROM pasien RIGHT JOIN daftar
ON pasien.kd_pasien = daftar.kd_pasien
/*JOIN TABEL no_pendaftaran , pasien*/
SELECT no_pendaftaran.nomor_urut, pasien.nama_pasien, pasien.umur, pasien.jenis_kelamin, pasien.alamat_pasien
FROM no_pendaftaran
INNER JOIN pasien ON no_pendaftaran.kd_pendaftaran = pasien.kd_pendaftaran
FROM no_pendaftaran
INNER JOIN pasien ON no_pendaftaran.kd_pendaftaran = pasien.kd_pendaftaran
/* VIEW DOKTER SPESIALIS*/
CREATE VIEW VIEW_dokter_spesialis as
SELECT dokter.nama, dokter.jenis_kelamin, dokter.alamat, dokter.no_telp,penyakit.nm_penyakit,penyakit.jenis_penyakit
FROM dokter INNER JOIN (penyakit INNER JOIN docspesialis ON penyakit.kd_penyakit =docspesialis.kd_penyakit)
ON dokter.kd_dokter = docspesialis.kd_dokter
/* VIEW DAFTAR PASIEN*/
CREATE VIEW view_daftar_pasien as
SELECT pasien.nama_pasien, pasien.umur, pasien.jenis_kelamin ,pasien.alamat_pasien , penyakit.jenis_penyakit, penyakit.nm_penyakit
FROM pasien INNER JOIN (penyakit INNER JOIN daftar ON penyakit.kd_penyakit = daftar.kd_penyakit)
ON pasien.kd_pasien = daftar.kd_pasien
/*VIEW Pendaftaran*/
CREATE VIEW view_pendaftaran as
SELECT no_pendaftaran.nomor_urut, pasien.nama_pasien, pasien.umur, pasien.jenis_kelamin, pasien.alamat_pasien
FROM no_pendaftaran
INNER JOIN pasien ON no_pendaftaran.kd_pendaftaran = pasien.kd_pendaftaran
FROM no_pendaftaran
INNER JOIN pasien ON no_pendaftaran.kd_pendaftaran = pasien.kd_pendaftaran