Recommended Post Slide Out For Blogger

Transaction Basisdata

Transaction adalah sebuah unit kerja yang terdiri dari beberapa aktifitas query untuk melakukan
modifikasi data
Transactions dapat didefinisikan secara implisit ataupun eksplisit
Secara explisit, transaction didefinisikan sebagai berikut :

BEGIN TRAN : untuk memulai transaction
COMMIT TRAN : untuk mengakhiri transaction
ROLLBACK TRAN : untuk membatalkan transaction
Mendefinisikan transaction secara explisit dengan 2 statemen INSERT
Transaction Basisdata | http://aina-tunk.blogspot.com/
Jika anda tidak mendefinisikan transaksi secara explisit seperti diatas, maka SQL Server akan
menganggap tiap statemen diatas sebagai transaction dan langsung melakukan commit.

Transaction Property
ACID (Atomicity, Consistency, Isolation, Durability)

Atomicity
Transaction adalah sebuah unit kerja atomic, artinya semua statemen harus berhasil dieksekusi atau
tidak sama sekali jika satu atau lebih dari statemen itu gagal

Consistency
Transaction menjaga konsistensi data, sesuai dengan integrity rule yang diterapkan (primary keys, 
unique constraints dan foreign keys)

Isolation
Mekanisme untuk mengontrol akses data untuk memastikan bahwa sebuah transaction hanya dapat 
mengakses data pada level konsistensi yang dibutuhkan.

Durability
Perubahan data selalu disimpan dalam log sebelum benar-benar diterapkan pada database. Sehingga 
apabila sebuah transaksi gagal karena system failure atau sebab apapun, pada saat server di-restart 
maka server akan mengecek log yang ada dan melakukan undo ataupun redo

Berikut merupakan contoh transaction SQL Server pada sistem informasi rumah sakit 

1. Rawat Inap
Adalah transaksi yang digunakan untuk manipulasi data pasien rawat inap di rumah sakit yang
melibatkan beberapa tabel yaitu tabel pasien, tabel ruangan dan tabel rawat_inap. Transaksi rawat 
inap dibuat dengan tujuan untuk menyimpan data pasien dan di ruang mana pasien dirawat dimana 
tabel rawat_inap  berelasi dengan tabel pasien dan tabel ruangan.

BEGIN TRANSACTION ;
BEGIN TRY
INSERT INTO
pasien(nama_pasien, jenis_kelamin,umur,alamat_pasien, no_telp_pasien, id_perawat, id_dokter, id_resep)
values('Abidin','Laki-laki',24,'Jalan Kenanga 12 Malang', '089789765678',1,1,1)
INSERT INTO rawat_inap(id_pasien,id_ruangan,tgl_masuk) values (16,8,getdate())
END TRY
BEGIN CATCH
IF @@trancount>0
PRINT 'GAGAL INSERT'
ROLLBACK TRANSACTION;
END CATCH;
IF @@trancount>0
COMMIT TRANSACTION

Hasil Eksekusi :
Tabel Pasien 
Transaction Basisdata | http://aina-tunk.blogspot.com/
Tabel Rawat Inap
Transaction Basisdata | http://aina-tunk.blogspot.com/

2. Kunjungan Poli
Adalah transaksi yang digunakan untuk manipulasi data pasien yang berkunjung ke poli yang 
melibatkan beberapa tabel yaitu tabel poli, tabel pasien dan tabel poli_visit. Transaksi kunjungan 
poli dibuat dengan tujuan untuk menyimpan data pasien yang berkunjung ke poli dimana tabel 
poli_visit berelasi dengan tabel pasien dan tabel poli.

BEGIN TRANSACTION ;
BEGIN TRY
INSERT INTO
pasien(nama_pasien, jenis_kelamin,umur,
alamat_pasien, no_telp_pasien, id_perawat,
id_dokter, id_resep)
values
('Arini','Perempuan',24,'Jalan Kenanga 12 Malang', '089789765909',1,2,1)
INSERT INTO poli_visit
(id_pasien, id_poli, tanggal_berkunjung)
values (12, 6, '2013-12-27')
END TRY
BEGIN CATCH
IF @@trancount>0
PRINT 'GAGAL INSERT'
ROLLBACK TRANSACTION;
END CATCH;
IF @@trancount>0
COMMIT TRANSACTION

Hasil Eksekusi
Tabel Pasien : 
Transaction Basisdata | http://aina-tunk.blogspot.com/

Tabel Poli Visit :
Transaction Basisdata | http://aina-tunk.blogspot.com/

3. Pembayaran
Adalah transaksi yang digunakan untuk manipulasi data pembayaran pasien rawat inap di rumah 
sakit yang melibatkan beberapa tabel yaitu tabel pasien, tabel kasir dan tabel biaya. Transaksi 
pembayaran  dibuat dengan tujuan untuk menyimpan data pembayaran pasien rawat inap dimana 
tabel biaya berelasi dengan tabel pasien dan tabel kasir.

BEGIN TRANSACTION ;
BEGIN TRY
INSERT INTO biaya(tgl_bayar, id_pasien, id_kasir)
values ('2013-12-29', 13, 2)
END TRY
BEGIN CATCH
IF @@trancount>0
PRINT 'GAGAL INSERT'
ROLLBACK TRANSACTION;
END CATCH;
IF @@trancount>0
                   COMMIT TRANSACTION
Hasil Eksekusi : 
Tabel Biaya 

Transaction Basisdata | http://aina-tunk.blogspot.com/
4. Item Obat
Transaksi ini digunakan untuk manipulasi data resep pasien melibatkan beberapa tabel yaitu tabel 
pasien, tabel resep_obat, tabel obat dan tabel item_obat. Transaksi item obat dibuat dengan tujuan 
untuk melihat resep pasien beserta obatnya yang terdapat pada resep obat dimana tabel pasien 
berelasi dengan tabel resep_obat; tabel item_obat berelasi dengan tabel obat, dan tabel resep_obat.

BEGIN TRANSACTION ;
BEGIN TRY
INSERT INTO pasien
(nama_pasien, jenis_kelamin,umur,
alamat_pasien, no_telp_pasien, id_perawat,
 id_dokter, id_resep)
values('Agustin','Perempuan',29,
'Jalan Kenanga 12 Malang', '089789765909',3,2,11)
INSERT INTO resep_obat
(nama_resep) VALUES ('resep_baru')
INSERT INTO item_obat (id_obat, id_resep)
VALUES (1, 11)
INSERT INTO item_obat (id_obat, id_resep)
VALUES (2, 11)
INSERT INTO item_obat (id_obat, id_resep)
VALUES (3, 11)
END TRY
BEGIN CATCH
IF @@trancount>0
PRINT 'GAGAL INSERT'
ROLLBACK TRANSACTION;
END CATCH;
IF @@trancount>0
COMMIT TRANSACTION


Hasil Eksekusi :
Tabel Pasien 
Transaction Basisdata | http://aina-tunk.blogspot.com/


Tabel Resep 
Transaction Basisdata | http://aina-tunk.blogspot.com/

5. Rekam Medis Pasien
Transaksi ini digunakan untuk manipulasi data rekam medis pasien yang melibatkan beberapa tabel
yaitu tabel pasien, dan tabel rekam_medis. Transaksi rekam medis dengan tujuan untuk data rekam
medis pasien dimana tabel pasien berelasi dengan tabel rekam_medis.

BEGIN TRANSACTION ;
BEGIN TRY
INSERT INTO pasien
(nama_pasien, jenis_kelamin,umur,alamat_pasien,
 no_telp_pasien, id_perawat, id_dokter, id_resep)
values('Ayu','Perempuan',29,'Jalan Mawar 12 Malang',
 '089789765909',1,2,1)
INSERT INTO rekam_medis
(id_pasien, cek_fisik, diagnosa, keluhan) VALUES
(15, 'cek gigi', 'iritasi akar gigi','gigi sakit')
END TRY
BEGIN CATCH
IF @@trancount>0
PRINT 'GAGAL INSERT'
ROLLBACK TRANSACTION;
END CATCH;
IF @@trancount>0
COMMIT TRANSACTION


Transaction Basisdata
Transaction Basisdata | http://aina-tunk.blogspot.com/




Anda baru saja membaca artikel yang berkategori Basis Data dengan judul Transaction Basisdata. Anda bisa bookmark halaman ini dengan URL http://aina-tunk.blogspot.com/2015/04/transaction-basisdata.html. Terima kasih!
Ditulis oleh: Tunk-Tunk - Rabu, 01 April 2015

Belum ada komentar untuk "Transaction Basisdata"

Posting Komentar