Akuntansi 2B
Definisi
Relasi
Codd (1970) menyatakan bahwa relasi merupakan kasus khusus dari
sebuah tabel. Semua relasi adalah tabel, namun tidak semua tabel adalah
relasi. Kolom relasi disebut atribut dan baris relasi disebut tupel. Di
kalangan sebagian pemrogram, istilah file, record, dan field lebih disukai
sebagai pengganti istilah relasi, tuple, dan atribut. Istilah file digunakan
karena pada awalnya satu relasi basis data disimpan dalam sebuah file.
Kini satu file boleh jadi menyimpan banyak relasi. Beberapa DBMS,
misalnya Microsoft Access dan Microsoft SQL Server, menyimpan satu
basis data utuh ke dalam sebuah file. Penggunaan file sebagai alternatif
istilah relasi sudah tidak tepat lagi
Karakteristik Relasi
Codd (1970) meletakkan dasar model relasional dengan mendefinisikan
karakteristik relasi. Menurut Connolly dan Begg (2015), sebagaimana
terlihat dalam Tabel 3, ada tujuh karakteristik relasi. Diantaranya sebagai
berikut :
1) Semua entry/elemen data pada suatu baris dan kolom tertentu
harus mempunyai nilai Tunggal (single value), atau suatu nilai
yang tidak dapat dibagi lagi (atomic value), bukan suatu kelompok
pengulangan.
2) Semua entry/elemen data pada suatu kolom tertentu dalam relasi
yang sama harus mempunyai jenis yang sama.
3) Masing-masing kolom dalam suatu relasi yang mempunyai nama
yang unik.
4) Pada suatu relasi/tabel yang sama tidak ada dua baris yang identic.
Ada beberapa faktor yang perlu diperhatikan saat menjalin relasi,
khususnya:
Dalam suatu hubungan, semua atribut harus mempunyai nilai penuh.
Kolom harus memiliki tipe data yang sama
Setiap kolom harus memiliki nama unik.
Tidak ada dua baris yang memiliki konten yang sama.
Garis-garis suatu hubungan tidak mempunyai urutan tertentu
Atribut
Atribut adalah kolom dalam suatu hubungan. Atribut relasi tidak perlu
disusun dalam urutan tertentu. Dalam model relasional, relasi digunakan
untuk menyimpan informasi tentang objek yang akan direpresentasikan
dalam database. Hubungan tersebut direpresentasikan sebagai tabel dua
dimensi dimana baris tabel berhubungan dengan record individual dan
kolom tabel berhubungan dengan atribut. Atribut dapat muncul dalam
urutan apa pun dan hubungannya akan tetap sama sehingga memiliki arti
yang sama. Misalnya, informasi tentang cabang diwakili oleh hubungan
Cabang, dengan kolom untuk atribut BranchNo (nomor cabang), jalan,
kota, dan kode pos. Demikian pula, informasi karyawan diwakili oleh
hubungan karyawan, dengan kolom untuk atribut StaffNo (nomor
karyawan), fName, IName, posisi, jenis kelamin, DOB (tanggal lahir), gaji
dan BranchNo(nomor cabang tempat anggota staf bekerja).
Domain
Domain dalam matematika adalah sekumpulan nilai yang mungkin yang
dapat Anda masukkan dengan cara yang sama dalam database relasional
domain adalah sekumpulan nilai yang diizinkan untuk suatu atribut dan
nilai-nilai ini harus bersifat atomik, misalnya setiap nilai- nilai dalam
domain tidak dapat dibagi lagi, misalnya nilai yang ditetapkan untuk
nama atribut harus berupa string yang mewakili nama seseorang dan di
sini nilainya harus atomik. Contoh lainnya adalah domain untuk atribut
umur karyawan. diberi nilai atom, kemungkinan usia seorang karyawan
suatu perusahaan bisa dari 20 hingga 70 tahun jadi, domain tidak hanya
memberikan sekumpulan nilai yang diizinkan untuk suatu atribut, tetapi
juga menentukan tipe data yang diperbolehkan, misalnya umur harus
berupa bilangan bulat positif.
1) Buat nama domain berdasarkan nilai yang akan dimasukkan pada nilainya
2) Identifikasi tipe data dan nilai yang akan membentuk domain
3) Tentukan format dan domain
Contoh :
Tuple adalah baris dalam suatu relasi. Dapat juga diartikan sebagai
sekumpulan elemen yang saling berhubungan satu sama lain dan dapat
memberikan informasi yang lengkap tentang suatu elemen.
Elemen suatu relasi adalah baris atau tupel dalam sebuah tabel. Dalam
hubungan Cabang, setiap baris berisi empat nilai, satu nilai untuk setiap
atribut. Tupel dapat muncul dalam urutan apa pun dan oleh karena itu
hubungannya akan selalu sama
Struktur suatu hubungan, beserta spesifikasi domainnya dan batasan lain
pada nilai yang mungkin, terkadang disebut maksud, biasanya tetap sama
kecuali makna relasi tersebut diubah untuk menyertakan atribut tambahan.
Tupel disebut ekstensi (atau keadaan) dari relasi, yang berubah seiring
waktu
Derajat
Derajat adalah jumlah semua atribut dalam relasi. relasi cabang
mempunyai empat atribut atau derajat empat. Artinya setiap baris tabel
adalah kumpulan empat yang berisi empat nilai. Suatu relasi dengan
atribut tunggal akan mempunyai derajat satu dan disebut relasi unary atau
tuple. Relasi dengan dua atribut disebut biner, relasi dengan tiga atribut
disebut tri-atribut, dan sering digunakan istilah n-ary. Intensitas suatu
hubungan merupakan atribut dari tujuan hubungan tersebut.
Kardinalitas
Kardinalitas adalah konsep yang sangat penting dalam desain database,
dapat digunakan saat membuat diagram E/R. Kuantitas mewakili jumlah
kejadian terbesar yang diperbolehkan dalam suatu hubungan, bukan
jumlah terkecil. Hal ini biasanya dinyatakan dalam bentuk satu ke banyak.
Sederhananya, kardinalitas mengacu pada hubungan antara baris dalam
satu tabel dan baris di tabel lain. Pilihan kuantitasnya hanya ada dua yaitu
satu atau lebih. Kardinalitas itu jumlah baris dalam relasi.
Contoh :
1) Sederhana
Database ini cukup sederhana dan tidak memerlukan hierarki data yang
sangat rumit untuk membuatnya. Faktanya, data yang ada dapat
dengan mudah diproses menggunakan query SQL.
2) Akses mudah
Tidak ada aturan khusus yang disediakan agar semua data yang dibuat
dalam bentuk tabel dapat diakses. Dalam database relasional, siapapun
dapat mengaksesnya dengan mudah dan cepat. Bahkan, mereka bisa
melakukan perubahan seperti menggabungkan tabel atau data terkait
dengan lebih cepat.
4) Fleksibilitas
Tidak semua database memiliki fitur relasional. Ada pun jenis database yang
memiliki fitur relasional, diantaranya :
1) MySQL
Salah satu aplikasi database relasional open source terbaik yang tersedia
saat ini. Selain itu, aplikasi ini juga memiliki beberapa lisensi tambahan
yang bisa didapatkan sesuai kebutuhan Anda. MySQL membuat entri data
menjadi mudah dan sangat produktif. Dikutip dari Phoenix Nap, aplikasi
ini cocok untuk kebutuhan pengembangan website dan aplikasi.
2) MariaDB
Sebenarnya aplikasi ini dibuat menggunakan basis MySQL dengan
beberapa tambahan. MariaDB menambah ruang alat dan mengatasi
keterbatasan. Dengan kemampuan ini, database menjadi lebih cepat. Salah
satu hasil database relasional yang dibuat dengan MariaDB adalah Google,
Mozilla, dan Wikimedia.
3) PostgreSQL
Mirip dengan MariaDB, aplikasi ini juga sedang dalam pengembangan
meski masih open source. Keunggulan database ini adalah peningkatan
performa dan fleksibilitas dalam pengelolaan database. PostgreSQL juga
dapat melakukan pembacaan data dengan cepat untuk tujuan analitis.
Produk dalam database ini adalah Skype dan Instagram.
Hubungan Matematika
Pertama-tama perlu untuk memeriksa ide-ide matematika dasar untuk
memahami konsep istilah yang terkait. Katakanlah ada dua set dengan D1
= 2,4 dan D2 = 1,3,5 di dalamnya. Himpunan semua pasangan diurutkan
sedemikian rupa sehingga elemen pertama adalah anggota D1 dan elemen
kedua adalah anggota D2 dikenal sebagai Hasil Kali Kartesius dari dua
himpunan ini, dilambangkan sebagai D1 x D2. Jadi:
D1 x D2= {(2,1), (2,3), (2,5), (4,1), (4,3), (4,5)}
Setiap bagian dari hasil kali Kartesius ini adalah sebuah relasi. Sebagai
contoh, dapat dihasilkan sebuah relasi R sedemikian rupa :
R = {(2,1), (4,1)}
Dapat ditentukan pasagan terurut mana yang aka nada di dalam relasi
dengan memberikan beberapa kondisi untuk pemilihannya. Sebagai
contoh, jika akan mengamati bahwa R mencakup semua pasangan terurut
yang elemen keduanya adalah 1, maka dapat ditulis R sebagai :
R = {(x,y) │ x € D1, y € D2, dan y =1}
Dengan menggunakan himpunan – himpunan yang sama, dapat
dibentuk relasi lain S dimana elemen pertama selalu dua kali elemen
kedua. Dengan demikian, dapat ditulis S sebagai :
S = {(x,y) │ x € D1, y € D2, dan x =2y} atau, dalam contoh ini, S =
{(2,1) }
Hubungan Basis Data
A. Skema Relasi
Skema relasi adalah relasi Bernama diikuti dengan satu set
pasangan atribut dan domainnya.
Misalkan A1, A2,…, An adalah Atribut dengan domain D1, D2, ..,
Dn maka skema relasinya {A1:D1, A2:D2, …, An:Dn}.
Contoh:
D1 D2 D3 D4
Basis data merupakan kumpulan file atau struktur data yang saling berkaitan.
Hal ini dirancang untuk memenuhi berbagai kebutuhan informasi organisasi.
Maka dari itu, kema basis data relasional adalah pengaturan status relasi
sedemikian rupa sehingga setiap status basis data relasional memenuhi batasan
integritas yang ditetapkan pada skema basis data relasional. Skema basis data
relasional mencakup struktur dan hubungan antara tabel dalam database. Jadi,
dalam konteks skema database relasional, ada beberapa poin yang patut
mendapat pertimbangan khusus, diantaranya yakni :
a. Karakteristik spesifik, yang memiliki konsep dunia nyata yang sama, dapat
muncul di lebih dari satu hubungan dengan nama yang sama atau berbeda.
Misalnya, dalam relasi Karyawan, Id Karyawan (EmpId) direpresentasikan
dalam Voucher sebagai AuthBy dan PrepBy.
Ada sejumlah hal yang perlu diperhatikan pada jendela Edit Relationship,
diantaranya :
● Cascade Update Related Fields: pilihan ini digunakan untuk mengupdate secara
otomatis foreign key pada tabel anak jika nilai primary key pada tabel induk
berubah.
● Cascade Delete Related Record: pilihan ini digunakan untuk menghapus foreign
key pada tabel anak jika primary key pada tabel induk dihapus. b. Konsep spesifik
dunia nyata yang muncul lebih dari satu kali dalam suatu hubungan harus diwakili
dengan nama yang berbeda. Misalnya, seorang karyawan direpresentasikan
sebagai bawahan atau junior dengan menggunakan EmpId dan sebagai atasan atau
senior dengan menggunakan SuperId, dalam relasi karyawan. c. Batasan integritas
yang ditentukan pada skema database akan berlaku untuk setiap status database
skema tersebut. Contoh sederhananya adalah jika R¹, R²,..., Rn adalah sekumpulan
skema relasi. maka, kita dapat menulis skema basis data relasional atau secara
sederhana skema relasional R, sebagai berikut :
R = {R¹, R²,..,Rn
relasi mempunyai nama yang berbeda dari semua nama relasi lainnya
dalam skema relasi;
•setiap sel relasi berisi tepat satu nilai atom (unik);
Setiap atribut memiliki nama yang berbeda
nilai suatu atribut semuanya berasal dari domain yang sama; Setiap
kumpulan data berbeda;
tidak ada kumpulan data duplikat,
Urutan atribut tidak ada artinya
Secara teoritis, urutan tupel tidak ada artinya (namun, dalam
praktiknya, urutan tersebut dapat mempengaruhi efisiensi pengaksesan
tupel).
Kunci Relasional
Key (kunci) adalah salah satu persyaratan dasar dari model basis data
relasional. Kunci digunakan secara luas untuk mengidentifikasi tupel (baris)
secara unik di dalam tabel.
candidate key.
2) Primary Key (Kunci Utama)
Digunakan untuk mengidentifikasi nilai catatan data dalam
database. Database yang menggunakan kunci utama ini dapat
mengurutkan dan membandingkan tabel secara mandiri atau
otomatis.
Eksistensi primary key adalah salah satu yang paling signifikan
dalam database, terutama kegunaannya untuk pengolahan dan
pencarian data.
NULL yaitu nilai logika yang “tidak diketahui”. Hal ini dapat berarti
bahwa suatu nilai tidak dapat diterapkan pada tupel (baris) tertentu,
atau dapat juga berarti bahwa belum ada nilai yang diberikan.
A. View (Tampilan)
View adalah salah satu komponen penting dalam sistem basis data
relasional. Dalam model relasional, view adalah representasi virtual dari data
yang berasal dari satu atau lebih tabel dalam basis data. View tidak
mengandung data fisik itu sendiri, tetapi view memungkinkan pengguna atau
aplikasi untuk melihat data yang diambil dari tabel-tabel yang mendasarinya.
View dapat digunakan untuk menyederhanakan akses data, mengizinkan akses
terbatas ke data, atau menyediakan pandangan yang disesuaikan atas data yang
ada. View ini sering digunakan untuk tujuan pengambilan data yang khusus
tanpa harus mengubah struktur tabel asli.
Singkatnya, view bisa diartikan sebagai tabel maya (virtual) atau turunan
relasi dasar yang terdiri atas himpunan hasil query. Lain hal seperti
kebanyakan tabel di dalam basis data relasional, view tidak termasuk ke dalam
skema fisik. View bersifat dinamis dan berisi data dari tabel yang
direpresentasikannya. Dengan kata lain, view adalah suatu cara untuk melihat
atau memproyeksikan data dari tabel yang ada tanpa perlu membuat salinan
fisik dari data tersebut. Ini memungkinkan pengguna untuk mengakses data
dengan lebih fleksibel dan memudahkan penyaringan atau pemberian izin
akses terhadap data.
Relasi yang telah kita bahas pada awal bab biasa dikenal sebagai relasi
dasar (Base Relation). Lalu, apa yang dimaksud dengan relasi dasar (Base
Relation) itu sendiri? Jadi, relasi dasar (Base Relation) adalah relasi
bernama yang sesuai dengan entitas dalam skema konseptual, yang
tuplenya secara fisik disimpan dalam database.
Lalu, kita dapat mendefinisikan view (tampilan) dalam konteks relasi dasar
(Base Relation). View merupakan hasil dinamis dari sebuah atau banyak
operasi relasional yang beroperasi pada relasi dasar untuk menghasilkan
relasi lain. View adalah relasi virtual yang tidak harus ada dalam database
tetapi dapat dihasilkan berdasarkan permintaan oleh pengguna tertentu.
Dalam konteks relasi dasar, view mengacu pada cara untuk melihat data
dari tabel atau relasi yang ada. Ini adalah tampilan virtual dari data yang
ada dalam tabel yang dapat dibuat dengan mengubah cara data ditampilkan
tanpa mengubah data asli. Dengan menggunakan view kita dapat
mengakses atau mempresentasikan data dengan cara yang berbeda tanpa
memodifikasi struktur data dasarnya. Hal ini berguna untuk
memproyeksikan data yang relevan atau mengatur data dengan cara
tertentu tanpa merusak integritas data asli.
Semua pembaruan pada relasi dasar harus tercermin di semua view yang
merujuk pada relasi dasar itu sendiri. Demikian pula, jika sebuah view
diperbarui, maka relasi dasar yang mendasarinya harus mencerminkan
perubahan tersebut. Akan tetapi, ada batasan-batasan pada jenis modifikasi
yang dapat dilakukan melalui view. Berikut ini rangkuman kondisi-kondisi
yang digunakan oleh sebagian besar sistem untuk menentukan apakah
suatu pembaruan diperbolehkan melalui view atau tidak :