Senin, 31 Oktober 2011

Basis Data

PENGANTAR BASIS DATA
Basis data menyediakan fasilitas atau mempermudah dalam menghasilkan informasi yang digunakan oleh pemakai untuk mendukung pengambilan keputusan. Hal inilah yang menjadikan alasan dari penggunaan teknologi basis data pada saat sekarang (dunia bisnis). Berikut ini contoh penggunaan Aplikasi basis data dalam dunia bisnis.

Sistem Pemrosesan File
Sebelumnya, sistem yang digunakan untuk mengatasi semua permasalahan bisnis, menggunakan pengelolaan data secara tradisional dengan cara menyimpan record-record pada file-file yang terpisah, yang disebut juga sistem pemrosesan file. Dimana masing-masing file diperuntukkan hanya untuk satu program aplikasi saja.

Kelemahannya dari sistem pemrosesan file ini antara lain :
1. Timbulnya data rangkap (redundancy data) dan Ketidakkonsistensi data (Inconsistency data)
Karena file-file dan program aplikasi disusun oleh programmer yang berbeda, sejumlah informasi mungkin memiliki duplikasi dalam beberapa file. Sebagai contoh nama mata kuliah dan sks dari mahasiswa dapat muncul pada suatu file memiliki record-record mahasiswa dan juga pada suatu file yang terdiri dari record-record mata kuliah. Kerangkapan data seperti ini dapat menyebabkan pemborosan tempat penyimpanan dan biaya akases yang bertambah. Disamping itu dapat terjadi inkonsistensi data. Misalnya, apabila terjadi perubahan jumlah sks mata kuliah, sedangkan perubahan hanya diperbaiki pada file mata kuliah dan tidak diperbaiki pada file mahasiswa. Hal ini dapat mengakibatkan kesalahan dalam laporan nilai mahasiswa.
2. Kesukaran dalam Mengakses Data
Munculnya permintaan-permintaan baru yang tidak diantisipasikan sewaktu membuat program aplikasi, sehingga tidak memungkinkan untuk pengambilan data.
3. Data terisolir (Isolation Data)
Karena data tersebar dalam berbagai file, dan file-file mungkin dalam format –format yang berbeda, akan sulit menuliskan program aplikasi baru untuk mengambil data yang sesuai.
4. Masalah Pengamanan ( Security Problem )
Tidak semua pemakai diperbolehkan mengakses seluruh data. Bagian Mahasiswa hanya boleh mengakses file mahasiswa. Bagian Mata kuliah hanya boleh mengakses file mata kuliah, tidak boleh mengakses file mahasiswa. Tetapi sejak program-program aplikasi ditambahkan secara ad-hoc maka sulit melaksanakan pengamanan seperti yang diharapkan.
5. Data Dependence
Apabila terjadi perubahan atau kesalahan pada program aplikasi maka pemakai tidak dapat mengakses data.


Sistem Basis data
Seiring dengan berjalannya waktu, lambat laun sistem pemrosesan file mulai ditinggalkan karena masih bersifat manual, yang kemudian dikembangkanlah sistem pemrosesan dengan pendekatan basis data.

Konsep Dasar Basis Data
Data adalah representasi fakta dunia nyata yang mewakili suatu objek seperti manusia (pegawai, mahasiswa, pembeli), barang, hewan, peristiwa, konsep, keadaan, dan sebagainya yang direkam dalam bentu angka, huruf, simbol, teks, gambar, bunyi atau kombinasinya.
Basis Data adalah sekumpulan data yang terintegrasi yang diorganisasikan untuk memenuhi kebutuhan para pemakai di dalam suatu organisasi.

DBMS (Database Management System) adalah Perangkat Lunak yang menangani semua pengaksesan ke basis data
Sistem Basis Data terdiri dari basis data dan DBMS.

Istilah - Istilah Dasar Basis Data
Enterprise
Suatu bentuk organisasi seperti : bank, universitas, rumah sakit, pabrik, dsb.
Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise.
Contoh data operasional : data keuangan, data mahasiswa, data pasien
Entitas
Suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data.
Contoh Entitas dalam lingkungan bank terdiri dari : Nasabah, Simpanan, Hipotik
Contoh Entitas dalam lingkungan universitas terdiri dari : Mahasiswa, mata kuliah
Kumpulan dari entitas disebut Himpunan Entitas
Contoh : semua nasabah, semua mahasiswa
Atribut (Elemen Data)
Karakteristik dari suatu entitas.
Contoh : Entitas Mahasiswa atributnya terdiri dari Npm, Nama, Alamat, Tanggal lahir.
Nilai Data (Data Value)
Isi data / informasi yang tercakup dalam setiap elemen data.
Contoh Atribut Nama Mahasiswa dapat berisi Nilai Data : Diana, Sulaeman, Lina
Kunci Elemen Data (Key Data Element)
Tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas.
Contoh Entitas Mahasiswa yang mempunyai atribut-atribut npm, nama, alamat, tanggal lahir menggunakan Kunci Elemen Data npm.
Record Data
Kumpulan Isi Elemen data yang saling berhubungan.
Contoh : kumpulan atribut npm, nama, alamat, tanggal lahir dari Entitas Mahasiswa berisikan : "10200123", "Sulaeman", "Jl. Sirsak 28 Jakarta", "8 Maret 1983".

Keuntungan Sistem Basis Data
1. Terkontrolnya kerangkapan data
Dalam basis data hanya mencantumkan satu kali saja field yang sama yang dapat dipakai oleh semua aplikasi yang memerlukannya.
2. Terpeliharanya keselarasan (kekonsistenan) data
Apabila ada perubahan data pada aplikasi yang berbeda maka secara otomatis perubahan itu berlaku untuk keseluruhan
3. Data dapat dipakai secara bersama (shared)
Data dapat dipakai secara bersama-sama oleh beberapa program aplikasi (secara batch maupun on-line) pada saat bersamaan.
4. Dapat diterapkan standarisasi
Dengan adanya pengontrolan yang terpusat maka DBA dapat menerapkan standarisasi data yang disimpan sehingga memudahkan pemakaian, pengiriman maupun pertukaran data.
5. Keamanan data terjamin
DBA dapat memberikan batasan-batasan pengaksesan data, misalnya dengan memberikan password dan pemberian hak akses bagi pemakai (misal : modify, delete, insert, retrieve)
6. Terpeliharanya integritas data
Jika kerangkapan data dikontrol dan kekonsistenan data dapat dijaga maka data menjadi akurat
7. Terpeliharanya keseimbangan (keselarasan) antara kebutuhan data yang berbeda dalam setiap aplikasi
Struktur basis data diatur sedemikian rupa sehingga dapat melayani pengaksesan data dengan cepat
8. Data independence (kemandirian data)
Dapat digunakan untuk bermacam-macam program aplikasi tanpa harus merubah format data yang sudah ada


Kelemahan Sistem Basis Data
- Memerlukan tenaga spesialis
- Kompleks
- Memerlukan tempat yang besar
- Mahal
Pengguna Basis Data
1. System Engineer
Tenaga ahli yang bertanggung jawab atas pemasangan Sistem Basis Data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual
2. Database Administrator (DBA)
Tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya.
Tugas DBA :
o Mengontrol DBMS dan software-software
o Memonitor siapa yang mengakses basis data
o Mengatur pemakaian basis data
o Memeriksa security, integrity, recovery dan concurency

Program Utilitas yang digunakan oleh DBA :
o Loading Routines
Membangun versi utama dari basis data 

o Reorganization Routines
Mengatur / mengorganisasikan kembali basis data 
o Journaling Routines
Mencatat semua operasi pemakaian basis data
o Recovery Routines
Menempatkan kembali data, sebelum terjadinya kerusakan
o Statistical Analysis Routines
Membantu memonitor kehandalan sistem
3. End User (Pemakai Akhir)
Ada beberapa jenis (tipe) pemakai terhadap suatu sistem basis data yang dapat dibedakan berdasarkan cara mereka berinteraksi terhadap sistem :
a. Programmer aplikasi
Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan (embedded) dalam program yang ditulis pada bahasa pemrograman induk (seperti C, pascal, cobol, dll)
b. Pemakai Mahir (Casual User)
Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan oleh suatu DBMS
c. Pemakai Umum (End User / NaΓ―ve User)
Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah ditulis (disediakan) sebelumnya
d. Pemakai Khusus (Specialized/Sophisticated User)
Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus seperti aplikasi AI, Sistem Pakar, Pengolahan Citra, dll, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan.

LINGKUNGAN BASIS DATA
Tiga Tingkatan Arsitektur Basis data ANSI-SPARC
Ada 3 tingkat dalam arsitektur basis data yang bertujuan membedakan cara pandang pemakai terhadap basis data dan cara pembuatan basis data secara fisik.
3 tingkatan arsitektur basis data :
1. Tingkat Eksternal (External Level)
Tingkat eksternal merupakan cara pandang pemakai terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang secara eksternal hanya terbatas pada entitas, atribut dan hubungan antar entitas (relationship) yang diperlukan saja.
2. Tingkat Konseptual (Conseptual Level)
Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya.
Hal-hal yang digambarkan dalam tingkat konseptual adalah :
- semua entitas beserta atribut dan hubungannya
- batasan data
- informasi semantik tentang data
- keamanan dan integritas informasi
Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte.
3. Tingkat Internal (Internal Level)
Tingkat internal merupakan perwujudan basis data dalam komputer. Pada tingkat ini menggambarkan bagaimana basis data disimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan / physical storage.
Tingkat internal memperhatikan hal-hal berikut ini :
- alokasi ruang penyimpanan data dan indeks
- deskripsi record untuk penyimpanan (dengan ukuran penyimpanan untuk data elemen
- penempatan record
- pemampatan data dan teknik encryption

Data Independence
Tujuan utama dari 3 tingkat arsitektur adalah memelihara kemandirian data (data independence) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi.
Ada 2 jenis data independence, yaitu
1. Physical Data Independence
bahwa internal schema dapat diubah oleh DBA tanpa menggangu conceptual schema. Dengan kata lain physical data independence menunjukkan kekebalan conceptual schema terhadap perubahan internal schema.
2. Logical Data Independence
bahwa conceptual schema dapat diubah oleh DBA tanpa menggangu external schema. Dengan kata lain logical data independence menunjukkan kekebalan external schema terhadap perubahan conceptual schema.
Prinsip data independence adalah salah satu hal yang harus diterapkan di dalam pengelolaan sistem basis data dengan alasan-alasan sbb :
1. DBA dapat mengubah isi, lokasi, perwujudan dalam organisasi basis data tanpa mengganggu program-program aplikasi yang sudah ada.
2. Pabrik / agen peralatan / software pengolahan data dapat memperkenalkan produk-produk baru tanpa mengganggu program-program aplikasi yang sudah ada.
3. Untuk memindahkan perkembangan program-program aplikasi
4. Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data dengan memperhatikan perubahan-perubahan kebutuhan pengguna.

Bahasa Dalam DBMS
DBMS (Database Management systems) adalah kumpulan program yang mengkoordinasikan semua kegiatan yang berhubungan dengan basis data. Dengan adanya berbagai tingkatan pandangan dalam suatu basis data maka untuk mengakomodasikan masing-masing pengguna dalam piranti lunak manajemen basis data biasanya terdapat bahasa-bahasa tertentu yang disebut Data Sub language.
Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen basis data. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol, PL/1, dsb). Secara umum maka setiap pengguna basis data memerlukan bahasa yang dipakai sesuai tugas dan fungsinya.

Dalam basis data secara umum dikenal 2 data sub language :
1. Data Definition Language (DDL)

Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari basis data, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya
2. Data Manipulation Language (DML)
Bahasa yang digunakan untuk menjabarkan pemrosesan dari basis data, fasilitas ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi basis data
Ada 2 jenis DML :
1. Procedural DML
Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan.
2. Non Procedural
Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya.
Secara khusus pengguna menggunakan berbagai bahasa :
Programmer aplikasi menggunakan bahasa-bahasa seperti Cobol, Informix, dll (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS. Pemakai terminal menggunakan bahasa Query (misal SQL) atau menggunakan program aplikasi (yang dirancang oleh programmer). Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS.
DBMS mempunyai tugas untuk menangani semua bentuk akses kepada basis data, secara konsep :
1. Pengguna menyatakan permintaan akses menggunakan DBMS
2. DBMS menangkap dan menginterpretasikan
3. DBMS mencari :
- eksternal / conceptual mapping
- conceptual schema
- konseptual / internal mapping
- internal schema
4. DBMS melaksanakan operasi yang diminta terhadap basis data tersimpan.
Proses 1 s/d 4 dapat dilakukan secara interactive atau dicompile dulu.

Fungsi DBMS
Layanan-layanan yang sebaiknya disediakan oleh database management system adalah :
1. Penyimpanan, pengambilan dan perubahan data
Sebuah DBMS harus menyediakan kemampuan menyimpan, mengambil dan merubah data dalam basis data.
2. Katalog yang dapat diakses pemakai
menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai.
3. Mendukung Transaksi
Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan dengan transaksi yang sudah ada atau yang akan dibuat.
4. Melayani kontrol concurrency
Sebuah DBMS harus menyediakan mekanisme yang menjamin basis data ter-update secara benar pada saat beberapa pemakai melakukan perubahan terhadap basis data yang sama secara bersamaan.
5. Melayani recovery
Menyediakan mekanisme untuk mengembalikan basis data ke keadaan sebelum terjadinya kerusakan pada basis data tersebut.
6. Melayani autorisasi
Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai yang berwenang saja yang dapat mengakses basis data.
7. Mendukung komunikasi data
Sebuah DBMS harus mampu terintegrasi dengan software komunikasi.
8. Melayani integrity
Sebuah DBMS bertujuan untuk menjamin semua data dalam basis data dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku.
9. Melayani data independence
Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program dari struktur basis data yang sesungguhnya.
10. Melayani utility
Sebuah DBMS sebaiknya menyediakan kumpulan layanan utility.

Komponen DBMS
1. Query Processsor
Komponen yang merubah bentuk query ke dalam instruksi tingkat rendah ke database manager
2. Database Manager
Database manager menerima query dan menguji skema eksternal dan konseptual untuk menentukan apakah record-record dibutuhkan untuk memenuhi permintaan. Kemudian DM memanggil file manager untuk menyelesaikan permintaan
3. File Manager Lingkungan Basis Data 9
Pengantar Basis Data
Memanipulasi penyimpanan file dan mengatur alokasi ruang penyimpanan pada disk.
4. DML Preprocessor
Modul yang merubah perintah DML embedded ke dalam program aplikasi dalam bentuk fungsi-fungsi yang memanggil dalam host language.
5. DDL Compiler
Merubah perintah DDL menjadi kumpulan tabel yang berisi metadata.
6. Dictionary Manager
Mengatur akses dan memelihara data dictionary. Data dictionary diakses oleh komponen DBMS yang lain.


Komponen software utama database manager adalah
1. Authorization Control
Modul yang memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi
2. Command Processor
Memeriksa apakah pemakai mempunyai wewenang untuk menyelesaikan operasi
3. Integrity Checker
Untuk semua operasi yang merubah basis data, integrity checker memeriksa operasi yang diminta memerlukan batasan integritas.
4. Query Optimizer
Modul ini menentukan strategi yang optimal untuk eksekusi query
5. Transaction Manager
Modul ini mengerjakan proses-proses yang dibutuhkan operasi yang diterima transaksi
6. Scheduler
Modul ini bertanggung jawab untuk menjamin operasi secara bersamaan terhadap basis data sehingga berjalan tanpa ada masalah antara yang satu dengan yang lain.
7. Recovery Manager
Modul ini menjamin basis data tetap konsisten walaupun terjadi kerusakan.
8. Buffer Manager
Modul ini bertanggung jawab terhadap pemindahan data antara main memory dan secondary storage, seperti disk dan tape.

Arsitektur DBMS Multi User
Teleprocessing

Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini.
Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk pemakai berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS.
Dengan cara yang sama, pesan dikembalikan ke terminal pemakai. Arsitektur ini menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.
File-Server
Proses didistribusikan ke dalam jaringan sejenis LAN (Local Area Network). File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS. Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan (perhatikan gambar di halaman berikut ini).
Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan.
Kerugian arsitektur file-server adalah :
- Terdapat lalulintas jaringan yang besar
- Masing-masing workstation membutuhkan copy DBMS
- Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan
Client Server
Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur client-server. Client-server menunjukkan cara komponen software berinteraksi dalam bentuk sistem.
Sesuai dengan namanya, ada sebuah pemroses client yang membutuhkan sumber dan sebuah server yang menyediakan sumbernya. Tidak ada kebutuhan client dan server yang harus diletakkan pada mesin yang sama. Secara ringkas, umumnya server diletakkan pada satu sisi dalam LAN dan client pada sisi yang lain.
Dalam konteks basis data, client mengatur interface berfungsi sebagai workstation tempat menjalankan aplikasi basis data. Client menerima permintaan pemakai, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan basis data kemudian mengembalikan hasil ke client.
Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas, pemeliharaan data dictionary dan mengerjakan query serta proses update. Selain itu juga menyediakan kontrol terhadap concurrency dan recovery.

Ada beberapa keuntungan jenis arsitektur ini adalah :
• Memungkinkan akses basis data yang besar
• Menaikkan kinerja
• Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Hal ini mempermudah merubah mesin server jika hanya memproses basis data.
• Biaya untuk hardware dapat dikurangi
• Hanya server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur basis data
• Biaya komunikasi berkurang
• Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya bagian yang dibutuhkan untuk akses basis data melewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan
• Meningkatkan kekonsistenan
• Server dapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan validasi hanya di satu tempat, aplikasi program mengerjakan pemeriksaan sendiri
• Map ke arsitektur open-system dengan sangat alami

Data Dictionary
Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam basis data. Data dictionary biasa disebut juga dengan metadata atau data mengenai data. Modul pengontrol otorisasi menggunakan data dictionary untuk memeriksa apakah seorang pemakai perlu mempunyai wewenang.
Untuk mengerjakan pemeriksaan tersebut data dictionary menyimpan :
• nama-nama pemakai yang mempunyai wewenang untuk menggunakan DBMS
• nama-nama data item yang ada dalam basis data
• data item yang dapat diakses oleh pemakai dan jenis akses yang diijinkan, misalnya: insert, update, delete atau read
Sedangkan untuk memeriksa integritas data, data dictionary menyimpan :
• nama-nama data item dalam basis data
• jenis dan ukuran data item
• batasan untuk masing-masing data item
Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif. Sistem aktif selalu konsisten dengan struktur basis data karena secara otomatis dikerjakan oleh sistem. Sebaliknya, sistem pasif tidak konsisten terhadap perubahan basis data yang dilakukan oleh pemakai.

Berikut ini adalah ringkasan fungsi client-server
Client
Mengatur user interface
Menerima dan memeriksa sintaks input dari pemakai
Memproses aplikasi
Generate permintaan basis data dan memindahkannya ke server
Memeriksa autorisasi
Memberikan response balik kepada pemakai
Server
Menjamin tidak terjadi pelanggaran terhadap integrity constraint
Menerima dan memproses basis data yang diminta dari client
Melakukan query/pemrosesan update dan memindahkan response ke client
Memelihara data dictionary
Menyediakan akses basis data secara bersamaan
Menyediakan kontrol recovery

MODEL DATA RELASIONAL

• Pengertian Basis Data Relasional
Pada model relasional, basis data akan “disebar” atau dipilah-pilah ke dalam
berbagai tabel dua dimensi. Setiap tabel selalu terdiri atas lajur mendatar yang
disebut baris data (row / record) dan lajur vertikal yang biasa disebut dengan
kolom (column / field).
• Keuntungan Basis Data Relasional
1. Bentuknya sederhana
2. Mudah melakukan berbagai operasi data
• Istilah dalam Basis Data Relasional :
Relasi
Relasi merupakan sebuah tabel yang terdiri dari beberapa kolom dan beberapa baris. Relasi menunjukkan adanya hubungan diantara sejumlah entitas yang berasal dari himpunan entitas yang berbeda. Entitas merupakan individu yang mewakili sesuatu yang nyata dan dapat dibedakan dengan yang lainnya.
Atribut
Atribut merupakan kolom pada sebuah relasi. Setiap entitas pasti memiliki aribut yang mendeskripsikan karakter dari entitas tersebut. Penentuan atau pemilihan atribut-atribut yang relevan bagi sebuah entitas merupakan hal penting dalam pembentukan model data.
Tuple
Tuple merupakan baris pada sebuah relasi atau kumpulan elemen-elemen yang saling berkaitan menginformasikan tentang suatu entitas secara lengkap. Satu record mewakili satu data atau informasi tentang seseorang, misalnya : NPM, nama mahasiswa, alamat, kota, dll.
Domain :
Kumpulan nilai yang valid untuk satu atau lebih atribut
Derajat (degree) :
Jumlah atribut dalam sebuah relasi
Cardinality :
Jumlah tupel dalam sebuah relasi

• Relational Key
Super key
Satu atribut / kumpulan atribut yang secara unik mengidentifikasi sebuah tuple di dalam relasi
Candidate key
Suatu atribut atau satu set minimal atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entitas. Atribut di dalam relasi yang biasanya mempunyai nilai unik. Satu set minimal dari atribut menyatakan secara tak langsung dimana kita tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik.
Primary key
Merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian spesifik, tapi juga dapat mewakili setiap kejadian dari suatu entitas. Candidate key yang dipilih untuk mengidentifikasikan tuple secara unik dalam relasi. Setiap kunci candidate key punya peluang menjadi primary key, tetapi sebaiknya dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entitas yang ada.
Alternate key
Merupakan candidate key yang tidak dipakai sebagai primary key atau Candidate key yang tidak dipilih sebagai primary key.
Foreign key (Kunci Tamu)
Atribut dengan domain yang sama yang menjadi kunci utama pada sebuah relasi tetapi pada relasi lain atribut tersebut hanya sebagai atribut biasa. Kunci tamu ditempatkan pada entitas anak dan sama dengan primary key induk direlasikan. Model Relasional

• Relational Integrity Rules
1. Null
Nilai suatu atribut yang tidak diketahui dan tidak cocok untuk baris (tuple) tersebut.
Nilai (konstanta) Null digunakan untuk menyatakan / mengisi atribut-atribut yang nilainya memang belum siap/tidak ada.
2. Entity Integrity
Tidak ada satu komponen primary key yang bernilai null.
3. Referential Integrity
Suatu domain dapat dipakai sebagai kunci primer bila merupakan atribut tunggal pada domain yang bersangkutan.

• Bahasa Pada Basis data Relational
Menggunakan bahasa query 􀃆 pernyataan yang diajukan untuk mengambil informasi. Bahasa Query (Query Language) lebih ditekankan pada aspek pencarian data dari dalam tabel. Aspek pencarian ini sedemikian penting karena merupakan inti dari upaya untuk pengelolaan data.

Bahasa query terbagi 2 :
1. Bahasa Formal

Bahasa query yang diterjemahkan dengan menggunakan simbol-simbol matematis.
Contoh :
• Aljabar Relasional
Bahasa query prosedural 􀃆 pemakai menspesifikasikan data apa yang dibutuhkan dan bagaimana untuk mendapatkannya.
• Kalkulus Relasional
Bahasa query non-prosedural 􀃆 pemakai menspesifikasikan data apa yang dibutuhkan tanpa menspesifikasikan bagaimana untuk mendapatkannya.
Terbagi 2 :
1. Kalkulus Relasional Tupel
2. Kalkulus Relasional Domain

2. Bahasa Komersial
Bahasa Query yang dirancang sendiri oleh programmer menjadi suatu program aplikasi agar pemakai lebih mudah menggunakannya (user friendly).
Contoh :
• QUEL
Berbasis pada bahasa kalkulus relasional
• QBE
Berbasis pada bahasa kalkulus relasional
• SQL
Berbasis pada bahasa kalkulus relasional dan aljabar relasional
• Contoh-contoh Basis Data Relasional :
- DB2 >> IBM
- ORACLE >> Oracle
- SYBASE >> Powersoft
- INFORMIX >> Informix
- Microsoft Access >> Microsoft