Makalah UAS Sistem Basis Data

MAKALAH

SISTEM BASIS DATA

Diajukan untuk memenuhi Ujian Akhir Semester

Mata kuliah Basis Data

 

 

 

Disusun oleh :

Jajang Arif Nurjaman (1104801)

PROGRAM STUDI ILMU KOMPUTER

FAKULTAS PENDIDIKAN MATEMATIKA DAN IPA

UNIVERSITAS PENDIDIKAN INDONESIA

2013


KATA PENGANTAR

 

            Bismillahirrahmaanirrahiim.

Puji dan syukur penulis panjatkan ke hadirat Allah SWT karena atas berkat, rahmat dan hidayat-Nya penulis dapat menyelesaikan makalah dengan judul “Makalah Basis Data”. Makalah ini diajukan untuk memenuhi salah satu tugas mata kuliah Basis Data.

Makalah ini berisi materi mengenai konsep dasar dari basis data.

Tiada gading yang tak retak, penulis pun menyadari bahwa dalam makalah ini masih banyak sekali kekurangan baik dalam segi teknis penulisan maupun dalam segi konten. Maka dari itu, penulis sangat berharap semua pembaca bisa memberikan kritik dan sarannya demi kesempurnaan makalah ini untuk kedepannya. Akhir kata, penulis berharap semoga makalah ini bisa bermanfaat khususnya bagi penulis umumnya bagi pembaca sekalian. Aamiin.

Bandung, Juni 2013

Penulis


 

 

BAB I

PENDAHULUAN

 

1.1  Latar Belakang

Data merupakan representasi dari dunia nyata, database secara sederhana, dapat kita sebut sebagai gudang data. Secara teori, database adalah kumpulan data atau informasi yang kompleks, data-data tersebut disusun menjadi beberapa kelompok dengan tipe data yang sejenis, dimana setiap datanya dapat saling berhubungan satu sama lain atau dapat berdiri sendiri sehingga mudah diakses. Pada saat ini, data merupakan asset yang sangat penting untuk dijaga, oleh karena itu, dibutuhkan sebuah sistem database yang tidak hanya dapat menyimpan namun juga dapat memberikan kemudahan dan keamanan dalam pengelolaannya.

Atas dasar tersebut, dalam makalah yang berjudul “Sistem Basis Data” ini penulis akan memaparkan konsep-konsep dan materi dasar mengenai sistem basis data yang tujuannya adalah untuk memperkenalkan Sistem basis data secara sederhana. Di dalam makalah ini akan dibahas mengenai integritas data, transaksi, concurrency, trigger,  fungsi, procedure dan XML.

 

1.2  Rumusan Masalah

 

1.2.1        Apa yang dimaksud dengan integritas data?

1.2.2        Apa yang dimaksud dengan transaksi?

1.2.3        Apa yang dimaksud dengan concurrency?

1.2.4        Apa yang dimaksud dengan trigger dan function?

1.2.5        Apa yang dimaksud dengan XML dalam database ?

1.2.6        Bagaimana contoh studi kasus Keamanan sistem basis data ?

 

 

 

 

 

 

1.3  Tujuan

 

1.3.1        Mengetahui apa yang dimaksud dengan integritas data.

1.3.2        Mengetahui apa yang dimaksud dengan transaksi.

1.3.3        Mengetahui apa yang dimaksud dengan concurrency.

1.3.4        Apa yang dimaksud dengan trigger dan function.

1.3.5        Apa yang dimaksud dengan XML dalam database.

1.3.6        Mengetahui contoh studi kasus dalam keamanan sistem basis data.


 

BAB II

PEMBAHASAN

2.1  Pengertian Integritas Data

Secara singkat Integritas data adalah akurasi dan kebenaran data yang disimpan. Contoh : NIM tidak boleh kosong, Jenis kelamin harus diisi L atau P dan sebagainya.

Jenis-Jenis Integritas Data dapat dikelompokkan sebagai berikut :

a.       Entity Integritas

Entity Integritas mendefinisikan sebuah baris sebagai sebuah entitas yang unik untuk suatu tabel. Entity integritas memaksa integritas dari column atau primary key dari suatu tabel (melalui index, unique, constraints, primary key). Primary key tidak boleh null.

b.      Domain Integritas

Domain Integritas merupakan validasi dari masukan untuk sebuah kolom. Anda dapat memaksa domain integritas dengan membatasi tipe (melalui data types), format atau range nilai-nilai yang ada.

c.       Refrential Integritas

Refrential Integritas memastikan bahwa seluruh nilai dari foreign key cocok dengan nilai primary key yang dihubungkan.

d.      User Defined Integritas

User–defined integritas mengizinkan Anda untuk menentukan spesific business rules sendiri yang tidak sama pada kategori integrity yang lain.

2.2  Pengertian Transaksi

Transaksi adalah proses yang dilakukan oleh program yang bertujuan untuk mengakses atau mengubah data yang terdapat di database.

Tujuan transaksi adalah untuk mencegah database dari kehilangan atau kerusakan data.

Transaksi memiliki 4 elemen diantaranya yaitu :

1)      Atomicity dimana transaksi harus berhasil secara keseluruhan atau gagal

2)      Consistency yaitu menjaga konsistensi data di database

3)      Isolation yaitu transaksi yang dilakukan bersamaan harus bisa dimulai dan diakhiri

4)      Durability artinya setelah transaksi berhasil, data tidak boleh kembali ke data awal

Terdapat 2 operasi dalam sebuah transaksi. Yaitu commit dan rollback. Commit berarti menandakan proses transaksi telah selesai dan fiks. Sedangkan rollback berarti membatalkan transaksi ke dalam state save point terakhir. Save point ini adalah sebuah titik aman dimana kita telah menyelesaikan satu atau beberapa transaksi.

Terdapat masalah yang harus dicegah dalam proses transaksi. Diantarnya adalah:

  1.  Dirty Read

Transaksi membaca data dari hasil transaksi lainnya yang belum di Commit. Kedua transaksi tersebut berjalan bersamaan.

  1. Nonrepeatable Read

Transaksi membaca ulang data yang telah di baca sebelumnya karena data tersebut telah di modifikasi oleh transaksi lainnya. Misalnya ada sebuah data yang saat itu dibaca A dan waktu itu ada yang merubahnya menjadi B.

  1. Phantom Read

Transaksi membaca sebuah data yang telah hilang akibat dari transaksi yang lainnya.

2.3  Pengertian Concurrency

Concurrency adalah suatu persetujuan dimana DBMS mengijinkan banyak transaksi pada saat bersamaan untuk mengakses data yang sama. Karena kebutuhan data yang sama menyebabkan transaksi dilakukan bersamaan. Hal itu menyebabkan beberapa masalah yang terjadi diantaranya yaitu :

  • Lost update problem
  • Uncommited dependency problem
  • Incosistent analysis problem
  • Deadlock

Penanganan untuk masalah – masalah diatas yaitu dengan Locking, Commit dan release keduanya yang sedang melakukan transaksi bersamaan.

2.4  Pengertian Trigger Function dan Procedure

 

2.4.1  Trigger

Trigger adalah prosedur tersimpan pada Microsoft SQL Server yang secara otomatis dijalankan apabila data di dalam tabel berubah karena eksekusi perintah  SQL (INSERT, UPDATE atau DELETE) tanpa mempertimbangkan pengguna mana atau aplikasi mana yang meminta pernyataan pengaktifan. Pengguna bahkan mungkin tidak sadar bahwa trigger telah dieksekusi sebagai efek samping dari program mereka

Salah satu penggunaannya yang paling umum adalah untuk menerapkan pembatasan yang lebih kompleks dari yang telah diizinkan melalui pembatasan CHECK, yang berfungsi membatasi informasi yang disisipkan ke dalam kolom. Trigger bisa dibuat bersama dengan perintah INSERT, yang akan melakukan query ke tabel lain dan mengembalikan nilai logik yang membantu membatasi data yang diberikan kepada kolom tertentu.

Condition pada trigger dapat merupakan pernyataan true/false atau sebuah query. Query diinterpretasikan sebagai true jika set jawaban tidak kosong dan false jika query tidak memiliki jawaban. Jika bagian persyaratan  mengevaluasi true, maka tindakan yang berhubungan dengan trigger dieksekusi.

Sintaks dasar untuk pembuatan Trigger :

CREATE TRIGGER nama_triggerON table | view FOR INSERT | UPDATE | DELETE

AS

statement_sql [ …n ]

Deskripsi :

Nama_trigger adalah nama trigger. Nama triger harus mengikuti aturan identifier dan harus  nik harus unik di dalam satu database.

Tabel adalah tempat dimana trigger tersebut berapa dan dieksekusi.  AS Adalah aksi yang dilakikan oleh trigger tersebut.  Statement_sql adalah kondisi dan aksi perintah SQL yang ada saat Trigger itu dijalankan.  n Variabel yang menyatakan bahwa anda bisa menyertakan banyak pernyataan Transact-SQL.

Statement atau perintah dalam trigger dapat berupa satu perintah saja, dan dapat juga beberapa perintah sekaligus. jika terdapat beberapa perintah dalam trigger, maka gunakan perintah begin dan end untuk mengawali dan mengakhiri perintah.

di dalam statement trigger, kita dapat mengakses record tabel sebelum atau sesudah proses dengan menggunakan new dan old. new digunakan untuk mengambil record yang akan diproses (insert atau update), sedangkan old digunakan untuk mengakses record yang sudah diproses (update atau delete).

Dalam membuat trigger harus diperhitungkan beberapa hal berikut:

  1. Pembuatan trigger sama dengan constraint, primary key dan foreign key yang ada alam sebuah tabel.
  2. Pembuatan trigger harus sama dengan referential integrity dan relasi antar tabel.
  3. Pembuatan trigger juga diperhitungkan dari sisi kompleksitas agar tidak memperlambat proses manipulasi data khususnya jika dalam sebuah yang diperkirakan akan diakses oleh banyak user dalam satu waktu.
  4. Jika dalam suatu trigger terdapat kesalahan yang menyebabkan eksekusi suatu manipulasi data berhenti atau dibatalkan, dianjurkan untuk memberikan pesan kesalahan pada pengguna agar mengetahui bahwa proses yang dilakukan telah dibatalkan.

 

2.4.2 Function

Function merupakan sekumpulan perintah PL/SQL (PL/SQL adalah bahasa pemrograman yang merupakan perluasan dari Structured Query Language.PLmerupakan singkatan dari Prosedural Language.) untuk menjalankan suatu tugas tertentu dan mengembalikan suatu nilai.
Terdapat pada sebuah program unit yang disimpan dalam database untuk mengerjakan suatu tugas dengan mengembalikan suatu nilai tertentu.
sintak Function:
CREATE [OR REPLACE] FUNCTION name [(parameter[, parameter,…])]
RETURN datatype IS
[local declaration;]
BEGIN
executable statements;
[EXCEPTION
Exception handlers]
END [name];

Pembuatan function sangat berguna dalam proses pengolahan database, dengan sekali membuat function, anda dapat menggunakannya untuk keperluan yang sama pada blok-blok PL/SQL lainnya. Dua buah function dapat memiliki nama yang sama tapi dengan prameter yang berbeda baik pada tipe data maupun jumlahnya.

Beberapa contoh function (built-in) dalam Posgres, dapat dilihat dengan mengetikkan perintah \df pada console posgres.

Contoh:

SELECT UPPER (‘otomatis menjadi capital’);

Tujuan penggunaan function adalah:

– Memudahkan dalam mengembangkan program

– Menghemat ukuran program

2.5  XML dalam Database

XML (eXtensible Markup Language) merupakan bahasa web turunan dari SGML (Standart Generalized Markup Language). XML hampir sama dengan HTML, dimana keduanya sama-sama turunan dari SGML. Namun disinni terdapat perbedaan antara XML dan HTML yaitu :

–          XML bukan pengganti HTML

–          HTML berfokus dalam hal menampilkan data dan bagaimana data terlihat. Sedangkan XML dirancang untuk menyimpan dan menyampaikan data

Isi XML

•         Tag:   <umur> 17 </umur>

Tag didefinisikan sendiri.

Keuntungan XML

•         Markup language untuk dokumen yang mengandung informasi terstruktur.

•         Ditujukan untuk pertukaran dokumen via web.

•         Berbentuk file teks à Cross platform, indepedenden terhadap software dan hardware.

•         Self Documenting à dengan melihat tag, dapat diketahui isi dokumen.

•         Dapat dibaca software dan manusia.

•         Fleksibel

•         Dapat dikembangkan tanpa melanggar format lama.

–        Contoh: pada <pengarang>, tambah tag <telepon>, maka XML yang lama tetap dapat dibaca.

•         Hirarkis à dapat merepresentasikan data kompleks

•         Independen terhadap bahasa pemrograman, OS

Kerugian XML

•         Pengulangan tag à tidak efisien, ukuran membengkak

Aturan –aturan XML

•         Setiap tag harus ada penutupnya.

•         Penamaan Tag

–        case sensitive. <nama> tidak sama dengan <Nama>.

–        Tidak diawali dengan angka

–        Tidak mengandung spasi

–        Hindari ‘-’ dan ‘.’

•         Urutan hirarki harus benar.

Contoh yang salah:

<mahasiswa> <nama> yudi </mahasiswa></nama>

•         Setiap XML harus mengandung root (akar)

<root>

<child>

<subchild>…..</subchild>

</child>

</root>

•         Setiap atribut harus dalam tanda petik. Contoh:

<surat  tanggal = “12/12/2007”>

<catatan oleh = “ Jum’at ” >

<catatan oleh = ‘  Budi “si cepat” Martami ‘>

•         Komentar dalam XML:

<!– ini komentar lho –!>

Contoh XML

<?xml version=”1.0″ encoding=”ISO-8859-1″?>

<daftar_pengarang>

<pengarang>

<nama>budi martami</nama>

<alamat>sarijadi </alamat>

</pengarang>

<pengarang>

<nama>elfan noviari</nama>

<alamat>gerlong</alamat>

</pengarang>

</daftar_pengarang>

2.6   Studi Kasus Kemanan Sistem Basis Data : Stored Procedure

Stored procedure mencegah terjadinya SQL injection. SQL injenction dalah sebuah aksi hacking yang dilakukan di aplikasi client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.

Statement sql bukanlah bahasa pemrograman seperti pascal,Delphi atau visual basic. Statemen sql biasanya digunakan bersama sama dengan bahasa pemrograman lain pada saat mengakses database. Untuk mencocokan user yang login, maka digunakan statemen sql yang kurang lebih sebagai berikut:

Select * from admin where username = input_username

And password = input_password

Sebagai contoh apabila penulis sebagai administrator dengan username = administrator dan password = admin bermaksud login maka sql statemennya sebagai berikut

Select * from admin where username = ‘administrator’ and

Password = ‘admin’

Dapat dipastikan bahwa apabila field username terdapat record administrator dengan filed password terdapat admin, penulis dapat melewati proteksi dan masuk kehalaman berikutnya ,akan tetapi apabila sebaliknya ,maka akan keluar pesan kesalahan yang kurang lebih isinya kita tidak dapat masuk ke halaman berikutnya.

Statemen SQL jika penulis memasukkan input ‘or”=’ pada username dan pasword:

Select * from admin where username = ‘’ or ‘’ = ‘’ and

Password = ‘’ or ‘’=’’

Logika OR menyebabkan statement membalikan nilai false jadi true sehingga kita dapat masuk sebagai user yang terdapat pada record pertama dalam table admin ( record pertama biasanya administrator) , dan bagaimana kalo kita hanya mengetahui username saja tapi passwordnya tidak , misalkan username = administrator , caranya cukup sederhana , pada text box tempat menginput username isi dengan “administrator’—“ sedangkan pada textbox password boleh diisi sembarang misalkan ‘ or ‘’=’ maka statement sql akan berubah menjadi

Select * from admin where username = ‘ administrator ‘—“

And password = ‘’ or ‘’=’’

Cara untuk mencegah dari SQL injection adalah menggunakan srored procedure yang mempunyai parameter. Penggunaan parameter tersebut untuk memastikan nilai input sudah dicek tipe dan panjangnya. Parameter juga diberlakukan untuk menjamin sebagai nilai yang aman dan bukan kode yang dapat dieksekusi dalam database. Jika tidak dapat menggunakan stored procedures, sebaiknya menggunakan SQL statement dengan parameter. Jangan pernah membangun SQL statement dengan langsung memasukkan nilai input dalam SQL command. Pastikan aplikasi memberikan hak akses ke database seperlunya saja.

Hak akses stored procedure terhadap data di database bergantung pada hak akses pembuatnya bukan bergantung pada hak akses pengguna stored procedure. Hal ini memungkinkan user applikasi untuk tidak diberi hak akses terhadap semua tabel yang ada namun diberi hak akses untuk menjalankan stored procedure. Akibat penggunaan mekanisme ini adalah enforcement terhadap aktifitas user (select, inser, update, delete) tersentralisasi bahkan untuk applikasi seperti query analyzer tidak akan dapat digunakan untuk mengakses data secara tidak sah.

Penggunaan stored procedure mendukung penggunaan application role.  Application role adalah sebuah role di SQL server 2k dimana role ini tidak memiliki pengguna. Mekanisme ini merupakan mekanisme standard yang disarankan oleh Microsoft untuk membuat applikasi database berbasis SQL server 2k. Keunggulan penggunaan application role ini adalah dengan menggunakannya maka hanya app kita yang dapat mengakses database applikasi lain tidak dapat kecuali user memakai login yang berrole sysadmin.

Perlindungan hak cipta. stored procedure dapat dienkript sehingga proses tidak dapat dibajak orang dengan mudah. Memungkinkan manual audit yang sangat baik. Manual audit didefinisikan sebagai audit dimana mekanisme pencatatan log dilakukan oleh applikasi bukan dbms. Memang manual audit dapat dilakukan tanpa penggunaan stored procedure namun manual audit dapat dibypass misalkan dengan menggunakan query analyzer. Dengan stored procedure dan fasilitas application role maka mekanisme manual audit dapat dienforce setiap saat.

  • Fleksibilitas terhadap perubahan proses bisnis

Stored procedure tersimpan di server. Modifikasi mudah dilakukan dan dengan cepat.

  • Ekonomi

Stored procedure menyediakan 1 pintu masuk untuk proses data entri. Applikasi client tinggal mengaksesnnya. Stored procedure dibuat 1 kali dan dapat diakses oleh applikasi client yang berbeda-beda. Efesien dan murah

 

BAB III

PENUTUP

 

3.1  Kesimpulan

Dari hasil pemaparan materi mengenai Sistem basis data diatas, dapat ditarik kesimpulan bahwa data dan sistem basis data adalah dua hal yang tidak dapat dipisahkan satu sama lain. Dengan menggunakan fungsi-fungsi yang dimiliki oleh sistem basis data dan mengikuti aturan-aturannya secara benar, pengolahan data kita akan menjadi lebih mudah dan lebih aman.


REFERENSI

 

Laksono Putro, Budi. (2013). Sistem Basis Data [Powerpoint Slides] . Universitas pendidikan Indonesia, Bandung, Indonesia.

Wibisono, Yudi. (2013). Sistem Basis Data [Powerpoint Slides] . Universitas pendidikan Indonesia, Bandung, Indonesia.

Nugroho, Bunafit. 2008. Panduan Lengkap Menguasai Perintah SQL. Yogyakarta:Media Kita.

Webmaster. 2011. http://girlycious09.wordpress.com/2011/12/25/studi-kasus-keamanan-pada-database/

cs.upi.edu

elearning.cs.upi.edu