Skip to main content

Mengevaluasi pengamanan sistem basis data pada RDBMS

Mengevaluasi pengamanan sistem basis data pada RDBMS


Kompetensi :

a. Password akses basis data.
b. Enkripsi password.
c. Priviladge.
d. Pembatasan kewenangan hak akses pengguna basis data RDBMS.
e. Penambahan dan penghapusan pengguna basis data.

A. Password akses basis data.


Keamanan database adalah suatu cara untuk melindungi database dari ancaman, baikdalam bentuk kesengajaan atau pun bukan. Ancaman adalah segala situasi atau kejadian baik secara sengaja maupun tidak yang bersifat merugikan dan mempengaruhi system serta secara konsekuensi terhadap perusahaan/organisasi yang memiliki system database.Keamanan database tidak hanya berkenaan dengan data yang ada pada database saja, tetapi juga meliputi bagian lain dari system database, yang tentunya dapat mempengaruhi database tersebut. Hal ini berarti keamanan database mencakup perangkat keras, perangkat lunak, orang dan data.
Agar memiliki suatu keamanan yang efektif dibutuhkan kontrol yang tepat. Seseorang yang mempunyai hak untuk mengontrol dan mengatur database biasanya disebut Administrator database. Seorang administratorlah yang memegang peranan penting pada suatu system database, oleh karena itu administrator harus mempunyai kemampuan dan pengetahuan yang cukup agar dapat mengatur suatu system database Keamanan merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh pemakai yang tidak punya kewenangan.
ystem yang aman memastikan kerahasian data yang terdapat didalamnya. Beberapa aspek keamanan yaitu :
 •Mambatasi akses ke data dan servis
 Melakukan autentifikasi pada user
 Memonitor aktivitas-aktivitas yang mencurigakan
Keamanan database dapat dikelompokan sebagai berikut :
 Pencurian dan penipuan.
Pencurian dan penipuan database tidak hanya mempengaruhi lingkungan database
tetapi juga seluruh perusahaan/organisasi. Keadaan ini dilakukan oleh orang, dimana seseorang ingin melakukan pencurian data atau manipulasi data, seperti saldo rekening,transaksi,transfer dan lain-lain. Untuk itu fokus harus dilakukan pada kekuatan system agar menghindari akses oleh orang yang tidak memiliki kewenangan.
 Hilangnya kerahasiaan dan privasi
Suatu data dapat memiliki nilai kerahasiaan, karena data tersebut merupakan
sumber daya yang strategis pada perusahaan, maka pada kasus ini data tersebut
harus diamankan dengan memberikan hak akses pada orang tertentu saja.
 Hilangnya integritas
Integritas ini berkaitan dengan akurasi dan kebenaran data dalam database, seperti
data korup.Hal ini akan secara serius mempengaruhi perusahaan/organisasi.
 Hilangnya ketersediaan
Hilangnya ketersediaan berarti data, system, keduanya tidak dapat diakses,servis
mati, yang tentunya secara serius sangat mempengaruhi perusahaan/organisasi.
Saat ini banyak perusahaan yang membutuhkan kemampuan system yang aktif 7
x 24 , 7 hari 1 minggu.
Berdasarkan pengelompokan tersebut, tentunya banyak aspek yang harus kitaperhatikan demi terciptanya keamanan database. Bisa saja seseorang mencuri computer kita yang berisi data penting, mungkin juga karyawan yang diberi hak untuk mengakses data melakukan kejahatan dengan menjual informasi tersebut pada pihak lain demi kepentingan pribadi. Hal-hal tersebut memang termasuk kendala keamanan database yang harus mendapat perhatian, tetapi seorang administrator tidak dapat mengawasi kelemahan tersebut. Seorang administrator hanya fokus pada sistem database itu sendiri, dan hal inilah yang akan kita bicarakan. Tentunya perkembangan teknologi mengharuskan suatu perusahaan untuk mengimplementasikan system database yang bukan hanya aman tetapi juga mudah diakses dan handal, menyala 7×24 jam, 7 hari 1 minggu tanpaoff.
Penyebaran informasi secara global sangat menguntungkan semua pihak. Dengan adanya internet, komunikasi antar cabang, perusahaan, konsumen dan sebagainya semakin mudah. Pemberian informasi mengenai perusahaan kepada masyarakat melalui internet merupakan salah satu strategi komunikasi, marketing, public relation perusahaan tersebut,adanya transaksi on line yang meningkatkan gaya hidup masyarakat dan lainlain. Semua itu tidak terlepas dari suatu perkembangan system database dan tentunya membuat keamanan menjadi rentan. Sangatlah mudah dalam suatu lingkungan database diciptakan suasana yang menakutkan, tanpa kepastian dan keraguan. Sebagai seorang administrator sangat perlu memperhatikan kondisi tersebut. Tentukan resiko yang sebenarnya dan selidiki apa yang dapat dilakukan terhadap kondisi itu. Sebenarnya kebanyakan database terkonfigurasi dalam keadaan yang mudah ditembus, akan tetapi hal ini bukan berarti database tidak dapat dibuat aman sebagaimana mestinya.

B.  Enkripsi password
Enkripsi Untuk Keamanan Database
Salah satu hal yang penting dalam komunikasi menggunakan computer untuk menjamin kerahasian data adalah enkripsi. Enkripsi dalah sebuah proses yang melakukan perubahan sebuah kode dari yang bisa dimengerti menjadi sebuah kode yang tidak bisa dimengerti (tidak terbaca). Enkripsi dapat diartikan sebagai kode atau chiper. Sebuah sistem pengkodean menggunakan suatu table atau kamus yang telah didefinisikan untuk mengganti kata dari informasi atau yang merupakan bagian dari informasi yang dikirim.
Sebuah chiper menggunakan suatu algoritma yang dapat mengkodekan semua aliran data (stream) bit dari sebuah pesan menjadi cryptogram yang tidak dimengerti (unitelligible). Karena teknik cipher merupakan suatu sistem yang telah siap untuk di automasi, maka teknik ini digunakan dalam sistem keamanan komputer dan network. Pada bagian selanjutnya kita akan membahas berbagai macam teknik enkripsi yang biasa digunakan dalam sistem security dari sistem komputer dan network.
A. Enkripsi Konvensional.
Informasi asal yang dapat di mengerti di simbolkan oleh Plain teks, yang kemudian oleh algoritma Enkripsi diterjemahkan menjadi informasi yang tidak dapat untuk dimengerti yang disimbolkan dengan cipher teks. Proses enkripsi terdiri dari dua yaitu algoritma dan kunci. Kunci biasanya merupakan suatu string bit yang pendek yang mengontrol algoritma. Algoritma enkripsi akan menghasilkan hasil yang berbeda tergantung pada kunci yang digunakan. Mengubah kunci dari enkripsi akan mengubah output dari algortima enkripsi. Sekali cipher teks telah dihasilkan, kemudian ditransmisikan. Pada bagian penerima selanjutnya cipher teks yang diterima diubah kembali ke plain teks dengan algoritma dan dan kunci yang sama. Keamanan dari enkripsi konvensional bergantung pada beberapa factor. Pertama algoritma enkripsi harus cukup kuat sehingga menjadikan sangat sulit untuk mendekripsi cipher teks dengan dasar cipher teks tersebut. Lebih jauh dari itu keamanan dari algoritma enkripsi konvensional bergantung pada kerahasian dari kuncinya bukan algoritmanya. Yaitu dengan asumsi bahwa adalah sangat tidak praktis untuk mendekripsikan informasi dengan dasar cipher teks dan pengetahuan tentang algoritma diskripsi / enkripsi. Atau dengan kata lain, kita tidak perlu menjaga kerahasiaan dari algoritma tetapi cukup dengan kerahasiaan kuncinya.
Manfaat dari konvensional enkripsi algoritma adalah kemudahan dalam penggunaan secara luas. Dengan kenyataan bahwa algoritma ini tidak perlu dijaga kerahasiaannya dengan maksud bahwa pembuat dapat dan mampu membuat suatu implementasi dalam bentuk chip dengan harga yang murah. Chips ini dapat tersedia secara luas dan disediakan pula untuk beberapa jenis produk. Dengan penggunaan dari enkripsi konvensional, prinsip keamanan adalah menjadi menjaga keamanan dari kunci.
Model enkripsi yang digunakan secara luas adalah model yang didasarkan pada data encrytion standard (DES), yang diambil oleh Biro standart nasional US pada tahun 1977. Untuk DES data di enkripsi dalam 64 bit block dengan menggunakan 56 bit kunci. Dengan menggunakan kunci ini, 64 data input diubah dengan suatu urutan dari metode menjadi 64 bit output. Proses yang yang sama dengan kunci yang sama digunakan untuk mengubah kembali enkripsi.
B. Enkripsi Public-Key
Salah satu yang menjadi kesulitan utama dari enkripsi konvensional adalah perlunya untuk mendistribusikan kunci yang digunakan dalam keadaan aman. Sebuah cara yang tepat telah diketemukan untuk mengatasi kelemahan ini dengan suatu model enkripsi yang secara mengejutkan tidak memerlukan sebuah kunci untuk didistribusikan. Metode ini dikenal dengan nama enkripsi public-key dan pertama kali diperkenalkan pada tahun 1976. Algoritma tersebut seperti yang digambarkan pada gambar diatas. Untuk enkripsi konvensional, kunci yang digunakan pada prosen enkripsi dan dekripsi adalah sama. Tetapi ini bukanlah kondisi sesungguhnya yang diperlukan. Namun adalah dimungkinkan untuk membangun suatu algoritma yang menggunakan satu kunci untuk enkripsi dan pasangannya, kunci yang berbeda, untuk dekripsi. Lebih jauh lagi adalah mungkin untuk menciptakan suatu algoritma yang mana pengetahuan tentang algoritma enkripsi ditambah kunci enkripsi tidak cukup untuk menentukan kunci dekrispi. Sehingga teknik berikut ini akan dapat dilakukan :
1. Masing – masing dari sistem dalam network akan menciptakan sepasang kunci yang digunakan untuk enkripsi dan dekripsi dari informasi yang diterima.
2. Masing – masing dari sistem akan menerbitkan kunci enkripsinya ( public key ) dengan memasang dalam register umum atau file, sedang pasangannya tetap dijaga sebagai kunci pribadi ( private key ).
3. Jika A ingin mengisim pesan kepada B, maka A akan mengenkripsi pesannya dengan kunci publik dari B.
4. Ketika B menerima pesan dari A maka B akan menggunakan kunci privatenya untuk mendeskripsi pesan dari A.
Seperti yang kita lihat, public-key memecahkan masalah pendistribusian karena tidak diperlukan suatu kunci untuk didistribusikan. Semua partisipan mempunyai akses ke kunci publik ( public key ) dan kunci pribadi dihasilkan secara lokal oleh setiap partisipan sehingga tidak perlu untuk didistribusikan. Selama sistem mengontrol masing – masing private key dengan baik maka komunikasi menjadi komunikasi yang aman. Setiap sistem mengubah private key pasangannya public key akan menggantikan public key yang lama. Yang menjadi kelemahan dari metode enkripsi publik key adalah jika dibandingkan dengan metode enkripsi konvensional algoritma enkripsi ini mempunyai algoritma yang lebih komplek. Sehingga untuk perbandingan ukuran dan harga dari hardware, metode publik key akan menghasilkan performance yang lebih rendah. Tabel berikut ini akan memperlihatkan berbagai aspek penting dari enkripsi konvensional dan public key.
•Enkripsi Konvensional
Yang dibutuhkan untuk bekerja :
1. Algoritma yang sama dengan kunci yang sama dapat digunakan untuk proses dekripsi–enkripsi. Pengirim dan penerima harus membagi algoritma dan kunci yang sama.
Yang dibutuhkan untuk keamanan :
1. Kunci harus dirahasiakan.
2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunc.
•Enkripsi Public Key
Yang dibutuhkan untuk bekerja :
1. Algoritma yang digunakan untuk enkripsi dan dekripsi dengan sepasang kunci, satu untuk enkripsi satu untuk dekripsi.
2. Pengirim dan penerima harus mempunyai sepasang kunci yang cocok.
Yang dibutuhkan untuk keamanan :
1. Salah satu dari kunci harus dirahasiakan.
2. Adalah tidak mungkin atau sangat tidak praktis untuk menerjemahkan informasi yang telah dienkripsi.
3. Pengetahuan tentang algoritma dan sample dari kata yang terenkripsi tidak mencukupi untu menentukan kunci.
C. Priviladge

PRIVILEGES


Salah satu model keamanan dalam penggunaan DBMS kita adalah adanya privilege(hak). Model keamanan ini biasa diapakai di OS(operating system) maupun server lainnya.

Operasi-operasi

Operasi-operasi untuk privilege terbatas pada GRANT dan REVOKE. Operasi GRANT memberikan hak akses kepada satu atau lebih pemakai, sebaliknya operasi REVOKE membuang hak akses dari satu atau lebih pemakai.
Apa saja hak-hak yang diperoleh seorang pemakai/user apabila DBA memberi grant role connect dan resource, kita bisa memberikan jawabannya dengan melihat metadata view berikut.
1. connectlah sebagai DBA
2. jalankan perintah
DESCRIBE DBA_sys_privs;
SQL> set line 10;
SQL> desc dba_sys_privs; Name                       Null?             Type
 -----------------            --------              ------------
 GRANTEE                      NOT NULL   VARCHAR2(30)
 PRIVILEGE                   NOT NULL   VARCHAR2(40)
 ADMIN_OPTION                            VARCHAR2(3)



SQLSELECT * FROM DBA_SYS_PRIVS
WHERE grantee in (‘CONNECT’,’RESOURCE’)
ORDER BY grantee;

GRANTEE                        PRIVILEGE                                     ADM
------------------------------ ----------------------------------------  ---
CONNECT                        ALTER SESSION                                         NO
CONNECT                        CREATE CLUSTER                                    NO
CONNECT                        CREATE DATABASE LINK                        NO
CONNECT                        CREATE SEQUENCE                                 NO
CONNECT                        CREATE SESSION                                      NO
CONNECT                        CREATE SYNONYM                                  NO
CONNECT                        CREATE TABLE                                          NO
CONNECT                        CREATE VIEW                                           NO
RESOURCE                       CREATE CLUSTER                                     NO
RESOURCE                       CREATE INDEXTYPE                                 NO
RESOURCE                       CREATE OPERATOR                                 NO
RESOURCE                       CREATE PROCEDURE                               NO
RESOURCE                       CREATE SEQUENCE                                 NO
RESOURCE                       CREATE TABLE                                          NO
RESOURCE                       CREATE TRIGGER                                      NO
RESOURCE                       CREATE TYPE                             NO

           
Scott berhak merubah session, membuat cluster, database link, type, sequence, session, synonym, view, cluster, indextype, operator, procedure, sequence, table, dan trigger.
Privilage terbagi menjadi dua jenis yaitu system-level dan object-level. Kita akan pelajari keduanya. Sebelum itu mari kita buat seorang user lagi.
CREATE USER scotti
IDENTIFIED BY tiger
DEFAULT TABLESPACE mahasiswa
TEMPORARY TABLESPACE temp_ mahasiswa;

GRANT conncet, resource to scotti;

System-level privileges

System level privilege tidak terkait dengan object tertentu secara spesifik. Semua (15) privilege yang kita lihat diatas adalah system level, tak terkait dengan suatu object tertntu secara spesifik. Ada lebih dari 80 system level privilege dalam oracle RDBMS. DBA berhak untuk men-drop user dan backup tables.

Object-level privileges

Privilege ini terkait dengan object tertentu secara spesifik. Misal user bernama scott9 memiliki dua object (bertipe sama maupun bukan). Jika scott9 hanya memberi object level privilege kepada scotti, maka scotti tak otomatis memiliki object level privilege terhadap object yang satu lagi.
Mari kita lihat contoh dibawah
SQL> connect scott9
Enter password: *****
Connected.

SQL> create table satu(
    a number,
    b varchar(9));

Table created.

SQL> insert into satu values(1,'x');

1 row created.

SQL> create table dua(
    c number,
    d varchar(9));

Table created.

SQL> insert into dua values(1,'x');

1 row created.

SQL> GRANT SELECT ON satu TO scotti;

Grant succeeded.

SQL> connect scotti@basdat/tiger;

Connected.

SQL> select * from scott9.satu;
        A B
--------- ---------
        1 x
        2 y
SQL> select * from scott9.dua;
select * from scott9.dua
                     *
ERROR at line 1:
ORA-00942: table or view does not exist



Scotti dapat mengakses table satu milik scott9 tetapi tidak bisa mengakses table dua milik scott9, karena scotti tidak diberi akses oleh scott9 untuk mengakses table dua.

REVOKE PRIVILEGES

Sekarang kita akan mencoba mnghapus hak akses scotti terhadap table satu. Ikuti langkah berikut :
1.     masuk sebagai user scott9
2.     jalankan perintah berikut

SQL> revoke select on satu from scotti;
Revoke succeeded.

3.     masuk sebagai user scotti
4.     jalankan selection terhadap table satu milik scott9

SQL> select * from scott9.satu;
select * from scott9.satu
                     *
ERROR at line 1:
ORA-00942: table or view does not exist

Terlihat bahwa revoke telah menghilangkan hak akses terhadap suatu object.
Revoke hanya dapat dilakukan oleh pemberi hak akses.


Keamanan Privilege dan Roles

Sekarang kita akan melihat model keamanan yang melibatkan privilege dan role. Untuk memudahkan pemahaman mari kita lihat gambar berikut.

D.  Pembatasankewenangan hak akses pengguna basis data RDBMS.


1. Hak Akses Global (*.*)

Hak akses ini berarti user dapat memiliki hak akses untuk seluruh database yang terdapat di dalam MySQL. Contoh penulisan query GRANT untuk level ini adalah:
GRANT SELECT ON *.* TO 'user'@'localhost';
Perhatikan cara penulisan nama_database.nama_tabel, dimana kita menulisnya dengan *.*, sehingga user tersebut dapat mengakses seluruh tabel pada seluruh database.

2. Hak Akses Level Database (nama_database.*)

Hak akses ini berarti user memiliki hak akses penuh untuk sebuah database. Contoh penulisan query GRANT untuk level database ini adalah:
GRANT SELECT ON universitas.* TO 'user'@'localhost';
Untuk penulisan nama_database.nama_tabel, kita membatasi nama database, namun memberikan hak akses untuk seluruh tabel, penulisannya adalah nama_database.*

3. Hak Akses Level Tabel (nama_database.nama_tabel)

Hak akses ini berarti user memiliki hak akses untuk sebuah tabel yang berada pada sebuah database. Contoh penulisan query GRANT untuk level ini adalah:
GRANT SELECT ON universitas.mahasiswa_ilkom TO 'user'@'localhost';
Hak akses yang dimiliki user hanya terbatas pada level sebuah tabel saja.

4. Hak Akses Level Kolom (nama_kolom)

Hak akses ini adalah hak akses paling kecil yang dapat diberikan kepada sebuah user. Dengan hak akses level kolom, user hanya memiliki hak akses untuk beberapa kolom pada sebuah tabel. Contoh penulisan query GRANT untuk level kolom ini adalah:
GRANT SELECT (nama,umur) ON universitas.mahasiswa_ilkom TO 'user'@'localhost';
Level paling akhir ini kita membatasi hak akses user hanya untuk kolom tertentu saja. Penulisan kolom yang diperbolehkan diletakkan di dalam tanda kurung.

Tipe-Tipe Hak Akses dalam MySQL

Untuk setiap level diatas, kita dapat menerapkan berbagai tipe hak akses yang ingin diberikan, apakah itu hanya untuk melihat saja (query SELECT), menambahkan data (query INSERT), mengupdate data (query UPDATE), bahkan menghapus data (query DELETE).
Pada tabel dibawah ini saya melampirkan seluruh tipe hak akses yang dapat diberikan/dibatasi untuk user. Tabel tersebut diambil langsung dari manual resmi MySQL. Kebanyakan dari hak akses tersebut akan jarang digunakan dan belum kita pelajari, namun tabel dibawah dapat dijadikan referensi terkait hak akses (privileges).
Hak AksesKeterangan
ALL [PRIVILEGES]Memberikan seluruh hak akses, kecuali GRANT OPTION
ALTERHak akses untuk merubah tabel (ALTER TABLE)
ALTER ROUTINEHak akses untuk merubah stored routines
CREATEHak akses untuk membuat tabel dan database
CREATE ROUTINEHak akses untuk membuat dan menghapus stored routine
CREATE TABLESPACEHak akses untuk membuat, mengubah dan menghapus tablespaces dan log file
CREATE TEMPORARYTABLESHak akses untuk membuat tabel sementara CREATE TEMPORARY TABLE
CREATE USERHak akses untuk membuat, menghapus, dan mengubah user (CREATE USER, DROP USER, RENAME USER, dan REVOKE ALL PRIVILEGES)
CREATE VIEWHak akses untuk membuat dan mengubah views
DELETEHak akses untuk menghapus data (DELETE)
DROPHak akses untuk menghapus database, tabel dan view
EVENTHak akses untuk membuat event
EXECUTEHak akses untuk menjalankan stored routines
FILEHak akses untuk membuat server membaca maupun membuat file
GRANT OPTIONHak akses untuk memberikan hak akses kepada user lainnya.
INDEXHak akses untuk membuat dan menghapus index
INSERTHak akses untuk menambahkan data (query INSERT)
LOCK TABLESHak akses untuk mengunci tabel (LOCK TABLES)
PROCESSHak akses untuk melihat seluruh proses (SHOW PROCESSLIST)
PROXYHak akses untuk proses proxy
REFERENCESBelum diimplementasikan
RELOADHak akses untuk operasi FLUSH
REPLICATION CLIENTHak akses untuk mengubah urutan master dan slave server
REPLICATION SLAVEHak akses untuk server replikasi untuk membaca log event biner dari server master
SELECTHak akses untuk melihat data (query SELECT)
SHOW DATABASESHak akses untuk melihat seluruh database (SHOW DATABASES)
SHOW VIEWHak akses untuk melihat pembuatan view (SHOW CREATE VIEW)
SHUTDOWNHak akses untuk mysqladmin shutdown
SUPERHak akses untuk fungsi administrasi server, seperti CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, dan perintah debug mysqladmin
TRIGGERHak akses untuk operasi trigger
UPDATEHak akses untuk memperbaharui data (UPDATE)
USAGESama artinya dengan “tanpa hak akses”

Pengertian Hak Akses GRANT ALL

Pada tutorial Cara Membuat Hak Akses (Privileges) User MySQL dengan query GRANT, kita telah melihat penulisan hak akses GRANT ALL. Namun sebenarnya apa saja hak akses yang bisa dilakukan dengan GRANT ALL? Dan apa saja hak akses lainnya?
GRANT ALL adalah cara penyingkatan memberikan hampir semua hak akses kepada sebuah user tertentu. Hak akses ini mencakup seluruh query dasar:

ALTER, CREATE, CREATE TEMPORARY TABLES, DELETE, DROP, EXECUTE, FILE, INDEX, INSERT, LOCK TABLES, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SELECT, SHOW DATABASES, SHUTDOWN, SUPER, dan UPDATE.
E.  Penambahandan penghapusan pengguna basis data.
RANGKUMAN PERMASALAHAN DALAM DATABASE
Basis data yang kurang matang atau yang tidak disiapkan dengan baik tentunya akan menghasilkan beberapa masalah, karena dalam berinteraksi dengan basis data kita tidak hanya berhadapan pada masalah perancangan, pengaksesan dan penginputan data saja. Masalah-maslah tersebut diantaranya adalah :
1. Redudansi dan Inkonsistensi Data
Redudansi data berhubungan dengan banyaknya data pada sebuah tabel, sehingga sering meimbulkan duplikasi data, artinya data yang tersedia akan tersaji atau tercetak secara berulang-ulang. Hal ini akan mengakibatkan kesulitan pada saat melakukan manipulasi data yang berupa pengubahan dan penghapusan data, karena akan menimbulkan inkonsistensi data. Redudansi ini bisa disebabkan karena basis data yang ada belum memenuhi aturan-aturan dalam normalisasi basis data. Hal ini dapat dicontohkan pada tabel dengan 3 field, yaitu NIM, nama_mhs, dan alamat, pada tabel tersebut yang menjadi key adalah NIM, jika nama dan alamat merupakan field non key, dan field alamat mempunyai ketergantungan fungsional pada field non key lainnya dalam hal ini adalah nama_mhs, sedangkan nama_mhs mempunyai ketergantungan fungsional terhadap NIM, maka akan mudah dijumpai redudansi pada field alamat dimana pada nama alamat yang sama akan selalu hadir pada record nama_mhs yang sama pula, hal ini sangat berpengaruh ketika kita melakukan manipilasi data pada salah satu record alamat sehingga akan ditemui record alamat yang yang berbeda untuk record nama_mhs yang sama dalam satu tabel.
Redudansi juga umum terjadi untuk menyatakan hubungan (relationship) antar tabel dalam sebuah basis data relasional. Pada basis data relasional redudansi data sering terjadi pada saat terjadi operasi penghapusan data, jika data pada satu tabel yang mempunyai relasi pada tabel lain dihapus sedangkan data data pada tabel lain tetap dibiarkan eksis maka akan terjadi inkonsistensi data.
2. Kesulitan Pengaksesan Data
Pengaksesan data akan sulit dilakukan apabila terjadi permintaan data yang tidak lazim dan di luar yang telah disediakan suatu program aplikasi, atau apabila data yang aka diakses berasal dari basis data yang berbeda. Pengaksesan data ini dapat diatasi dengan penyediaan program aplikasi yang dapat menunjuang sebuah keperluan tersebut.
3. Isolasi Data Untuk Standarisasi
Basis data yang baik adalah basis data yang letak datanya berada pada satu tempat. Isolasi data terjadi biasanya disebabkan oleh data yang ada ditempatkan dalam berbagai file dengan format yang berbeda dan menggunakan DBMS yang berbeda pula. Perbedaan DBMS dalam pengelalaan data menyebabkan terjadinya perbedaan pada setiap pengaksesan data walaupun sangat kecil.
4. Multiple User
Perkembangan dan kebutuhan sebuah informasi yang disajiakan semakin lama maka akan semakin meningkat, untuk itu peningkatan sistem basis data dalam menyajikan sebuah informasi perlu ditingkatkan, hal ini untuk memenuhi kebutuhan banyak pemakai dalam pengaksesan data. Pengaksesan data yang dilakukan oleh banyak pemakai terutama dalam melaukan perubahan data atau updating dapat mengakibatkan inkonsistensi data. Selain itu performasi sebuah sistem juga akan terpengaruh. Sebagai contoh, perubahan data yang dilakuakan oleh pemakai lalu menimpannya kedalam basis data dan pada saat yang bersamaan terjadi pengubahan data yang sama oleh pemakai lain sehingga menjadikan data tersebut tidak konsisten.
5. Masalah Keamanan Data
Keamanan data biasanya dengan cara melakukan penerapan sebuah password pada saat pengaksessan data, karena tidak semua pemakai boleh bersentuhan dengan sebuah sistem basisdata, hanya pemakai yang terdaftar yang dapat memanfaatkan basisdata, namun pemakai tersebut belum tentu dapat melakukan pengubahan data pemakai tersebut hanya dapat melakukan pengaksesan data tanpa melakukan proses manipulasi data, pemakai yang dapat melakukan manipulasi data hanyalah pemakai yang telah terdaftar dan mendapat rekomendasi dari administrator basis data tersebut. Agar terhindar dari campur tangan orang yang tidak bertanggung jawab sehingga mengakibatkan kerusakan basis data.
6. Masalah Integrasi Data
Data yang terdapat dalam basisdata seharusnya memenuhi berbagai batasan yang sesuai dengan aturan nyata yang berlaku dimana basis data tersebut diimplementasikan, lain halnya jika aturan tersebut bersifat situasional dan tidak bersifat tetap sehingga tidak didefinisikan pada DBMS, hal ini akan menimbulkan perbedaan antar data yang ada pada basis data dengan keadaan yang sesungguhnya.
7. Masalah Independence Data
Kebebasan yang sebebas-bebasnya terkadang justru membuat masalah tidak hanya pada dunia nyata namun pada penerapan basis data hal tersebut dapat menjadi sebuah masalah, kebebasan data pada sebuah basis data berakibat pada kesulitan dalam pengelompokan data, dan akan menimbulkan data yang tidak teratur serta tidak konsisten.

Comments

Popular posts from this blog

Menerapkan penggunaan SQL untuk mengakses multi table

Select multitable SQL adalah bahasa query baku untuk DBMS.SQL diambil sebagai bagian sejak tahun 1992 awalnya diterapkan pada DBMS besar seperti Oracle dan Informix. Tabel-tabel yang dibuat pada studi kasus ini cukup sederhana saja untuk memudahkan pemahaman. Adapun tabel-tabel tersebut adalah: view source print ? 1. mhs ( 2. nim varchar(3), 3. namaMhs varchar(30), 4. primary key(nim) 5. ) view source print ? 1. mk ( 2. kodeMK varchar(3), 3. namaMK varchar(30), 4. sks integer, 5. primary key(kodeMK) 6. ) view source print ? 1. ambilMK ( 2. nim varchar(3), 3. kodeMK varchar(3), 4. nilai integer, 5. primary key(nim, kodeMK) 6. ) Dalam hal ini, field nim dan kodeMK pada tabel ambilMK merupakan foreign key. Apabila diperhatikan, tabel mhs dengan tabel ambilMK saling berelasi karena nim dalam tabel ambilMK berasal dari nim dalam tabel mhs (master tabel). Demikian pula antara tabel mk dengan ambilMK. Kedua tabel ini juga ber

Merancang SQL bertingkat dalam memanipulasi basis data

Perintah select bertingkat Cara Menampilkan Data Dengan Perintah Select Apa sih Select dalam database? Select adalah perintah yang digunakan untuk menampilkan data dari tabel yang ada didatabase dan dapat juga berupa sebuah ekspesi. Seperti awal dibahas bahwa ada beberapa metode yang bisa digunakan namun kembali lagi sesuai kebutuhan, dalam tutorial ini semua akan dibahas masing-masing metode karna kerap kali kebutuhan tersebut ternyata memang paling sering digunakan. Dalam kasus yang sering terjadi adalah jika seorang programmer hanya ingin menampilkan data yang spesifik, caranya adalah dengan menggunakan logika ekspesi, umumnya diawali dengan WHERE lalu kondisi seperti AND, OR, LIKE, BETWEEN, IN, NOT IN, dan lain sebagainya. Berikut ini adalah pseudo-code perintah Select… SELECT field / * FROM nama_tabel WHERE kondisi Perintah diatas hanyalah sebuah pseudo-code dan tidak bisa digunakan, penulis hanya mengasumsikan perintah tersebut agar sampai sini sudah dapat dibayangkan