Model Relasional, Skema Database Beserta Contohnya

1.      Pendahuluan

Model relasional merupakan model data yang saat ini banyak digunakan para pengembang sistem. Model ini memudahkan programmer membuat aplikasi atau perangkat lunak, selain bentuknya yang sederhana, model ini juga mudah dipahami jika dibandingkan dengan model data lainnya seperti network model atau hirarki model.

Database relasional terdiri dari beberapa tabel dimana setiap tabel memiliki nama yang unik atau tidak sama satu sama lainnya. Baris dalam tabel merepresentasikan sebuah keterhubungan dari beberapa nilai yang ada.

Contoh model relasional:

Mahasiswa

NPM

Nama

Alamat

Agama

23513084 M. Iqbal Parabi Lampung Islam
23513085 Ozvari Arsalan Baturaja Islam
23513086 Blasius Neri Yogyakarta Kristen
23513087 Ridho Jakarta Islam
23513088 Kanda Januar Palembang Islam
23513089 Andi Bandung Kristen
23513090 Irwan Pontianak Kristen

Mata Kuliah

Kode_MK

Mata_Kuliah

SKS

IF0354 Manajemen Informasi

3

IF0987 Algoritma dan Pemrograman

2

IF0433 Secure SDLC

2

IF0556 Pengenalan Pola

2

Nilai

NPM

Kode_MK

MID

UAS

23513084 IF0354

60

80

23513087 IF0987

70

70

23513088 IF0987

70

70

23513090 IF0556

80

90

Contoh di atas merupakan model relasional akademik sederhana, dimana terdapat 3 tabel: Mahasiswa, Mata Kuliah dan Nilai. Masing-masing tabel memiliki nilai yang berbeda. Keterhubungan antara tabel Mahasiswa dan Mata Kuliah terdapat pada tabel Nilai dimana terdapat NPM yang berasal dari tabel Mahasiswa dan Kode_MK yang berasal dari tabel Mata Kuliah.

2.      Skema Database

Ketika berbicara tentang database, kita harus dapat membedakan antara skema database dan contoh database. Pada bagian pendahuluan bukan merupakan skema database, melainkan contoh database yang berisi snapshot atau cuplikan sebagian data pada database yang diberikan secara instan untuk menggambarkan database tersebut.

Secara umum skema database berisi list dari atribut pada domain tertentu. Sebagai contoh terdapat sebuah tabel Mahasiswa yang digambarkan pada tabel berikut.

Mahasiswa

NPM

Nama

Alamat

Agama

23513084 M. Iqbal Parabi Lampung Islam
23513085 Ozvari Arsalan Baturaja Islam
23513086 Blasius Neri Yogyakarta Kristen
23513087 Ridho Jakarta Islam
23513088 Kanda Januar Palembang Islam
23513089 Andi Bandung Kristen
23513090 Irwan Pontianak Kristen

Skema database untuk relasi Mahasiswa di atas adalah:

Mahasiswa (NPM, Nama, Alamat, Agama)

3.      Keys

Untuk membedakan tiap tuple yang terdapat dalam sebuah relasi tabel tentunya kita harus memiliki sebuah kunci yang membedakan satu tuple dengan tuple yang lain. Keys tersebut harus bersifat unik. Terdapat beberapa istilah pada Keys, yaitu Superkey, Candidate Keys, Primary Key dan Foregin Key.

Superkey adalah adalah sekumpulan atribut yang secara unik mengidentifikasi sebuah tupel dalam tabel relasi. Berdasarkan contoh tabel Mahasiswa sebelumnya, superkey yang mungkin adalah (NPM), (NPM, Nama), (NPM, Alamat), (Nama, Alamat), dan (NPM, Nama, Alamat).

Candidate Keys adalah gabungan dari superkey yang jika dimungkin bergabung dapat membuat sesuatu yang unik. Berdasarkan contoh superkey sebelumnya, candidate key yang mungkin adalah (NPM) dan (Nama, Alamat). Atribut Nama dan Alamat dapat dijadikan candidate key jika kombinasi keduanya bisa menjadi pengidentifikasi yang unik untuk sebuah tabel relasi.

Primary Key adalah candidate key yang dipilih sebagai pengidentifikasi unik sebuah tabel relasi. Berdasarkan contoh candidate key sebelumnya, primary key yang dipilih adalah (NPM), karena nilai NPM sangat unik dan tidak ada 2 mahasiswa yang memiliki NPM yang sama.

Foreign Key adalah atribut yang berada pada sebuah tabel relasi yang merupakan primary key dari tabel relasi lain. Sebagai contoh pada tabel Nilai terdapat NPM atau Kode_MK. Kode_MK dapat dikatakan sebagai foreign key karena Kode_MK merupakan primary key dari tabel relasi Mata Kuliah.

4.      Skema Diagram

Skema database yang memiliki relasi satu sama lain dan di dalamnya terdapat primary key dan foreign key bisa digambarkan dengan Skema Diagram. Salah satu contoh skema diagram dapat dilihat pada gambar berikut.

Skema Diagram Universitas

Skema Diagram Universitas

Contoh skema diagram di atas berisi informasi setiap tabel yang memiliki primary key dan foreign key tertentu yang kemudian saling berhubungan satu sama lain sehingga membentuk sebuah skema basis data yang lengkap.

5.      Bahasa Query

Bahasa query adalah bahasa yang digunakan untuk menerjemahkan informasi yang diminta oleh user dari database. Bahasa query dapat dibedakan menjadi 2 janis: prosedural dan non-prosedural. Pada bahasa query prosedural, user menginstruksikan sistem untuk menjalankan operasi secara sekuensial untuk mendapatkan hasil yang diinginkan. Sedangkan bahasa query non-prosedural, user hanya mendeskripsikan informasi yang diinginkan tanpa memberikan prosedurnya secara spesifik untuk mendapatkan informasi tersebut.

6.      Operasi Relasional

Operasi relasional adalah operasi yang digunakan untuk menampilkan data yang diinginkan oleh user. Operasi ini menggunakan bahasa query. Misalkan user ingin menampilkan mahasiswa yang beragama Islam, maka akan tampil data:

Mahasiswa

NPM

Nama

Alamat

Agama

23513084 M. Iqbal Parabi Lampung Islam
23513085 Ozvari Arsalan Baturaja Islam
23513087 Ridho Jakarta Islam
23513088 Kanda Januar Palembang Islam

Dalam operasi relasional juga terdapat istilah join, yaitu menggabungkan 2 tabel atau lebih ke dalam satu perintah query untuk menghasilkan informasi tertentu. Selain itu, terdapat juga istilah natural join yang berarti gabungan dari 2 tabel atau lebih yang memiliki kesamaan tertentu namun antara kedua tabel tersebut semua atribut diseleksi atau ditampilkan. Contohnya kita akan melakukan seleksi tabel mahasiswa beserta nilainya yang mengambil mata kuliah tertentu.

NPM

Nama

Alamat

Agama

Kode_MK

MID

UAS

23513087 Ridho Jakarta Islam IF0987

70

70

23513088 Kanda Januar Palembang Islam IF0987

70

70



Comments

  1. By Irwan

    Reply

    • Reply

  2. By ayu citra

    Reply

  3. By M.Iqbal

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *