BAB 4 PERANCANGAN BASIS DATA
4.2 Normalisasi
Normalisasi merupakan proses pengelompokan data elemen menjadi tabel-tabel yang menunjukan entity dan relasinya atau lebih difokuskan pada tinjauan komprehensif terhadap setiap kelompok dan (tabel) secara individual.
Sebelum mengenal lebih jauh mengenai normalisasi ada beberapa konsep yang harus diketahui terlebih dahulu :
• Field/ Atribut kunci (Key)
• Ketergantungan Fungsional (Functional Depedency)
Field/ Atribut kunci (Key)
Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan semua baris data (row) dalam tabel secara unik. Terdapat beberapa macam key yang dapat diterapkan pada suatu tabel, yaitu:
1. Super Key
Satu atau lebih atribut (kunmpulan atribut) yang dapat membedakan setiap baris data dalam sebuah table secara unik. Bisa terjadi ada lebih dari satu kumpulan atribut yang bersifat seperti itu dalam sebuah tabel, misalnya:
Pada tabel nasabah terdapat atribut-atribut sebagai berikut : no_rek, nama, no_ktp, tempat_lahir, tgl_lahir, alamat Super Key : no_rek : karena unik tidak mungkin ganda
no_ktp : karena unik tidak mungkin ganda
nama : jika bisa menjamin tidak ada nilai yang sama utk atribut ini.
2. Candidate Key
Merupakan kumpulan atribut minimal yang dapat membedakan setiap baris data dalam sebuah tabel secara unik. Jika satu kunci kandidat berisi lebih dari satu atribut, maka biasanya disebut sebagai composite key (kunci campuran/
gabungan). Pada tabel nasabah misalnya : Candidate Key :
no_rek : karena unik tidak mungkin ganda
nama : jika bisa menjamin tidak ada nilai yang sama utk atribut ini.
nama + tgl_lahir : mungkin dapat dipakai sebagai kunci karena kemungkinan sangat kecil seseorang punya nama sama yang lahir pada hari yang sama. (composite key)
3. Primary Key
Pada sebuah tabel dimungkinkan adanya lebih dari satu candidate key, salah satu dari candidate key (jika memang ada lebih dari satu) dapat dijadikan sebagai primary key. Pemilihan primary key dari sejumlah candidate key tersebut didasari oleh :
• Dapat mengidentifikasi secara unik suatu kejadian dan dapat mewakili setiap kejadian dari suatu entity (bersifat unik).
• Lebih sering (lebih natural) untuk dijadikan sebagai acuan.
• Lebih ringkas dan jaminan keunikan key tersebut lebih baik.
• Tidak boleh “null” (tidak ada datanya)
• Harus bisa menjamin setiap nilai primary key pada sebuah table, harus dimiliki pula oleh table lainnya.
Dengan pertimbangan-pertimbangan tersebut, maka yang paling cocok digunakan sebagai primary key pada tabel nasabah adalah “no_rek”.
4. Alternate Key
Adalah candidate key yang tidak menjadi/ tidak dipakai sebagai primary key.
Terkadang alternate key ini dipakai sebagai kunci pengurutan dalam laporan misalnya.
5. Foreign Key
Foreign key (kunci tamu) adalah satu atribut yang melengkapi satu relationship yang menunjukan ke induknya. Kunci tamu ditempatkan pada entity anak dan sama dengan kunci utama (primary key) induk relasinya. Contoh :
Tabel Dosen :
sandi_dosen nama no_ktp alamat gender 24001 Yogaswara, MT 117624 Jl. Kaliurang no.24 Laki-laki
24005 Respati, ST 110282 Jl. Pasanggrahan no.6 Laki-laki 24077 Rusi, Ir 110707 Jl. Edelwis no.7 Perempuan
sandi_dosen = primary key Tabel Mata kuliah
kode_mtkul mata_kuliah semester sks sandi_dosen
IF-2424 Basis Data 4 3 24001
IF-0707 Analisis Sistem Informasi 5 2 24077 IF-0583 Organisasi Komputer 3 2 24005 IF-7683 Arsitektur Komputer 4 3 24001
kode_mtkul = primary key sandi_dosen = foreign key
Field sandi_dosen pada tabel dosen sebagai primary keysedangkan field sandi_dosen pada tabel mata kuliah sebagai foreign key, karena tabel mata kuliah ini berhubungan dengan tabel dosen sebgai induknya.
Ketergantungan Fungsional (Functional Depedency) Definisi dari functional depedence adalah :
“ Diberikan sebuah relasi R, atribut Y dari R adalah bergantung fungsi pada atribut X dari R jika dab hanya jika setiap nilai X dalam R punya hubungan dengan tetap satu nilai Y dalam R (dalam setiap satu waktu)”.
Pada tabel dosen berisi atribut :
sandi_dosen nama no_ktp alamat gender 24001 Yogaswara, MT 117624 Jl. Kaliurang no.24 Laki-laki
24005 Respati, ST 110282 Jl. Pasanggrahan no.6 Laki-laki 24077 Rusi, Ir 110707 Jl. Edelwis no.7 Perempuan
Isi dari atribut nama bergantung pada sandi_dosen. Jadi dapat dikatakan bahwa atribut nama bergantung secara fungsi pada sandi_dosen dan sandi_dosen menunjukan secara fungsi nama. Jika ingin mengetahui sandi_dosen seorang dosen, maka dapat menentukan nama dosen tersebut. Notasi untuk ketergantungan fungsi ini adalah :
sandi_dosen nama atau
nama = f (sandi_dosen)
4.3 Bentuk Bentuk Normalisai
Pada proses normalisasi terdapat tahapan-tahapan (bentuk) normalisasi, yaitu :
• Bentuk Tidak Normal (Un normalized Form)
Merupakan bentuk kumpulan data yang akan direkam, tidak ada keharusan mengikuti suatu format tertentu, dapat saja data tidak lengkap atau terduplikasi.
Data dikumpulkan apa adanya sesuai kedatangannya.
• Bentuk Normal Pertama (1NF/ First Normal Form)
Jika semua atribut mempunyai nilai data yang atomic (tidak dapat dipecah lagi), tetapi masih terdapat beberapa atribut yang muncul secara berulang.
• Bentuk Normal Kedua (2NF/ Second Normal Form)
Relasi telah berada/ memenuhi bentuk normal pertama dan semua atribut yang bukan kunci hanya bergantung secara fungsi pada kunci utama/ primary key.
Pada bentuk normal kedua haruslah sudah ditentukan kunci kunci field.
• Bentuk Normal Ketiga (3NF/Third Normal Form)
Relasi telah berada/ memenuhi bentuk normal kedua dan semua atribut yang bukan kunci adalah non transitive dependency (ketergantungan transitif = bila menjadi atribut biasa pada suatu relasi, tetapi menjadi kunci pada relasi lainnya)
• Boyce-Codd Normal Form (BCNF)
Relasi harus sudah dalam bentuk ketiga dan setiap atribut harus bergantung fungsi pada atribut super key/ semua determinannya merupakan candidate key.
Contoh Kasus :
Sebuah Relasi “ Rawat Pasien “
• Bentuk Tidak Normal (Un normalized Form)
no_pasien nama jenis_perawatan jenis_kamar Biaya_kamar P0001 Bati Gawat Darurat KM001 Rp.100.000 P0002 Totti Rawat Inap KM002 Rp.75.000 P0003 Nesta Rawat Inap Sehari KM003 Rp.50.000 P0004 Maldini Rawat Jalan KM004 Rp.25.000 P0005 Cana Rawat Inap
P0006 Ihlam Rawat Inap Sehari P0007 Nuno Gawat Darurat P0008 Gomes Rawat Jalan
• Bentuk Normal Pertama (1NF/ First Normal Form)
no_pasien nama jenis_perawatan jenis_kamar biaya_kamar P0001 Bati Gawat Darurat KM001 Rp.100.000 P0002 Totti Rawat Inap KM002 Rp.75.000 P0003 Nesta Rawat Inap Sehari KM003 Rp.50.000 P0004 Maldini Rawat Jalan KM004 Rp.25.000 P0005 Cana Rawat Inap KM002 Rp.75.000 P0006 Ihlam Rawat Inap Sehari KM003 Rp.50.000 P0007 Nuno Gawat Darurat KM001 Rp.100.000 P0008 Gomes Rawat Jalan KM004 Rp.25.000
• Bentuk Normal Kedua (2NF/ Second Normal Form) Menjadi : Relasi “Pasien” dan “Biaya_Rawat”
Relasi “Pasien”
no_pasien nama jenis_perawatan P0001 Bati Gawat Darurat P0002 Totti Rawat Inap P0003 Nesta Rawat Inap Sehari P0004 Maldini Rawat Jalan P0005 Cana Rawat Inap P0006 Ihlam Rawat Inap Sehari P0007 Nuno Gawat Darurat P0008 Gomes Rawat Jalan
Relasi “Biaya_Rawat”
jenis_perawatan jenis_kamar biaya_kamar Gawat Darurat KM001 Rp.100.000
Rawat Inap KM002 Rp.75.000 Rawat Inap Sehari KM003 Rp.50.000 Rawat Jalan KM004 Rp.25.000
• Bentuk Normal Ketiga (3NF/Third Normal Form)
Menjadi : Relasi “Pasien”, “Kamar_Rawat” dan “Biaya_Rawat”
Relasi “Pasien”
no_pasien nama jenis_perawatan P0001 Bati Gawat Darurat P0002 Totti Rawat Inap P0003 Nesta Rawat Inap Sehari P0004 Maldini Rawat Jalan P0005 Cana Rawat Inap P0006 Ihlam Rawat Inap Sehari P0007 Nuno Gawat Darurat P0008 Gomes Rawat Jalan
Relasi “Kamar_Rawat”
jenis_perawatan jenis_kamar Gawat Darurat KM001
Rawat Inap KM002 Rawat Inap Sehari KM003 Rawat Jalan KM004
Relasi “Biaya_Rawat”
• Boyce-Codd Normal Form (BCNF) Misalnya : Relasi “Seminar”
no_peserta seminar Instruktur 240100 7783 Rusi, Ir 240101 7783 Respati, ST 240102 7776 Pita, Ir
240101 7776 Yogaswara, MT 240109 7776 Yogaswara, MT
Menjadi : Relasi “Pengajar” dan “Peserta-Instruktur”
Relasi “Pengajar”
Seminar Instruktur 7783 Rusi, Ir
7783 Respati, ST 7776 Pita, Ir
7776 Yogaswara, MT
Relasi “Peserta-Instruktur”
no_peserta Instruktur 240100 Rusi, Ir
240101 Respati, ST 240102 Pita, Ir
240101 Yogaswara, MT 240109 Yogaswara, MT
4.4 Soal-Soal Latihan :
Latihan I :Misalnya diketahui relasi “Karyawan” sebagai berikut :
Nip Nama tgl_lahir alamat tgl_sk no_sk gol gaji tunj status 1230 Rusi 1/2/70 Jl.Edelwis 1/3/84 3/sk/84 2A 50 25 Aktif 1230 Rusi 1/2/70 Jl.Edelwis 5/6/87 6/sk/87 2B 65 40 Aktif 1231 Resa 8/1/68 Jl.Elang 15/7/75 7/sk/75 3A 80 35 Aktif 1231 Resa 8/1/68 Jl.Elang 7/2/78 2/sk/78 3B 100 65 Aktif 1231 Resa 8/1/68 Jl.Elang 21/12/81 12/sk/81 3C 120 75 Aktif 1231 Resa 8/1/68 Jl.Elang 1/2/82 1/sk/82 3C 120 75 Keluar 1232 Pita 4/3/72 Jl.Dahlia 5/4/89 4/sk/89 2A 50 35 Aktif
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?
Latihan II :
Misalnya diketahui relasi “Pemesanan Tiket Kereta” sebagai berikut :
no nama almt Kd_krta Nm_krta tujuan tarif tgl_psn jam jml Jml_byr 1 Resa Jl.Edelwis A Parahiyangan Bdg 50 1/9/03 08:00 2 100 1 Resa Jl.Edelwis B Sawunggalih Pwkt 100 2/9/03 10:00 2 200 2 Yoga Jl.Xurg C SenjaExpres Yogya 150 3/9/03 12:00 2 300 2 Yoga Jl.Xurg D ArgoBromo Sby 200 4/9/03 14:00 2 400
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?
Latihan III :
Misalnya diketahui relasi “Pembelian Barang” sebagai berikut :
No
Fac kode
supp nama
supp kode
brg nama
barang tgl jatuh
tempo qty harga jml total 799 S02 Swa R02 Plooter 2/2/04 9/3/04 10 150 1500 1500 998 G01 Ara A01 Hd Segeat 7/2/04 9/3/04 10 1350 13500 33500 998 G01 Ara A02 Hd Quntm 7/2/04 9/3/04 10 2000 20000 33500
Kapan tabel/ relasi tersebut dikatakan dalam bentuk 1NF, 2NF dan 3NF ?
5 IMPLEMENTASI BASIS DATA
5.1 Definisi
Implementasi basis data merupkan upaya untuk membangun basis data fisik yang ditempatkan dalam memori sekunder (disk) dengan bantuan DBMS, tahap implementasi basis data diawali dengan melakukan transformasi dari model data yang telah selesai dibuat skema/ struktur basis data sesuai dengan DBMS yang dipilih.
Secara umum sebuah Diagram ER akan direpresentasikan menjadi sebuah basis data fisik, sedangkan komponennya berupa himpunan entitas dan himpunan relasi akan ditransformasikan menjadi table-tabel (file-file data) dan atribut akan dinyatakan sebagai field-field dari tabel-tabel yang sesuai.
Faktor-faktor yang mempengaruhi performansi sistem basis data :
• Kualitas dan bentuk perancangan basis data yaitu struktur basis data dan cara akses (algoritma aplikasi)
• Kualitas mesin
• Sistem Operasi
• DBMS (Data Base Management System)
5.2 Transformasi Model Data ke Basis Data Fisik
Aturan umum dalam pemetaan model data yang digambarkan dengan Diagram ER menjadi Basis Data Fisik adalah sebagai berikut :
1. Setiap himpunan entitas akan diimplementasikan sebagai sebuah tabel (file data).
Mahasiswa
nim nama_mhs
alamat_mhs tgl_lahir
Tabel Mahasiswa :
nim nama_mhs alamat_mhs tgl_lahir
2. Relasi dengan derajat relasi 1 – 1 (satu ke satu)
Dosen 1 Mengepalai
Jurusan 1
kode dosen nama alamat kode dosen kode jurusan kode jurusan nama_jurusan
Direperesentasikan dalam bentuk penambahan/ penyertaan atribut-atribut relasi ke table yang mewakili salah satu dari kedua himpunan entitas.
Tabel Dosen : Tabel Jurusan :
kode_dosen Nama Alamat kode_jurusan nama_jurusan kode_dosen
3. Relasi dengan derajat relasi 1 – N (satu ke banyak)
Dosen 1 Mengajar
Kuliah N
nama alamat kode kuliah kode kuliah nama_kuliah
waktu tempat sks semester
kode dosen
kode dosen
Juga direpresentasikan dalam bentuk pemberian/ pencantuman atribut key dari himpunan entitas pertama (yang berderajat 1) ke tabel yang mewakili himpunan entitas ke dua (yang berderajat N).
Tabel Dosen :
kode_dosen nama alamat
Tabel Kuliah :
kode_kuliah nama_kuliah sks semester kode_dosen tempat waktu
Dari hasil transformasi diatas jika kemudian ternyata bahwa atribut waktu pada table kuliah merupakan atribut bernilai banyak, maka table tersebut tidak memenuhi bentuk normal tahap pertama (1 NF). Maka table ini dapat didekomposisikan lagi menjadi sebagai berikut.
Tabel Kuliah :
Kode_kuliah nama_kuliah sks semester Kode_dosen
Tabel Jadwal :
Kode_kuliah tempat waktu
4. Relasi dengan derajat relasi N – N (banyak ke banyak)
Mahasiswa N Mempelajari
Kuliah N
nim nama_mhs nim kode kuliah kode kuliah nama_kuliah
indeks_nilai sks semester
alamat_mhs tgl_lahir
Direpresentasikan dalam bentuk tabel (file data) khusus yang memiliki field (foreign key) yang berasal dari key-key dari himpunan entitas yang menghubungkannya.
Tabel Mahasiswa :
nim Nama_mhs alamat_mhs tgl_lahir
Tabel Memepelajari/ Nilai (Tabel Khusus) :
nim kode_kuliah indeks_nilai
Tabel Kuliah :
kode_kuliah nama_kuliah sks Semester
5.3 Model Data Lanjutan
Pada bab sebelumnya sudah dikenalkan komponen-komponen model data dasar dalam kegiatan perancangan serta langkah-langkah teknis dalam mentransformasikan fakta dilapangan ke sebuah model data, berikut dibahas sejumlah varian komponen-komponen perancangan basis data serta proses-proses lanjutannya.
1. Himpunan Entitas Lemah (Weak Entity Sets)
Himpunan entitas lemah berisi entitas-entitas yang kemunculannya tergantung pada eksistensinya dalam sebuah relasi terhadap entitas lain (Strong Entity = sebaliknya dari entitas lemah), himpunan entitas lemah biasanya tidak memiliki key yang dapat menjamin keunikan entitas didalamnya.
Mahasiswa
Data orang tua dan hobbi dapat digolongkan sebagai entitas lemah (dalam ER-D dinyatakan dengan kotak garis ganda), karena kemunculannya sangat tergantung pada adanya relasi dengan entitas yang ada pada himpunan entitas mahasiswa.
Atribut nama_ortu dan hobbi diberi garis bawah putus-putus untuk menunjukan atribut key yang tidak meyakinkan.
Entitas lemah dapat ditransformasikan menjadi sebuah table dengan menyertakan key yang ada pada entitas kuat, sebagai berikut :
Tabel Mahasiswa :
nim nama_mhs alamat_mhs tgl_lahir
Tabel Orang Tua : Tabel Hobbi :
nim nama_ortu alamat_ortu nim hobbi
2. Spesialisasi dan Generalisasi
Himpunan entitas dimungkinkan adanya pengelompokan entitas-entitas yang menjadi anggotanya, dan terkadang ditemui atribut yang tidak sepenuhnya sama.
Jika dimulai dari sebuah himpunan entitas lalu kemudian melakukan pengelompokan yang melahirkan entitas baru (top-down) dan adanya pembedaan atribut menyebabkan entitas-entitas tersebut tidak mungkin disatukan dalam sebuah himpunan entitas saja, maka ini adalah Spesialisasi. Adanya spesialisasi dan generalisasi diwujudkan dalam notasi relasi yang khusus, yang disebut ‘ISA’ (yang berasal dari ‘Is A’) sebagai berikut : top-down
Dosen kode_dos nama_dos
ISA
Dosen Tetap Dosen Tidak Tetap nik
pangkat tgl_masuk
nama_kantor
alamat_kantor alamat_dos
Sub Entitas hasil Spesialisasi diimplementasikan sebagai berikut : Tabel Dosen :
kode_dos nama_dos alamat_dos
Tabel Dosen Tetap : Tabel Dosen Tidak Tetap :
kode_dos nik pangkat tgl_masuk kode_dos nama_kantor alamat_kantor
Jika yang dilakukan adalah sebaliknya, sebuah himpunan entitas yang sebenarnya dibagi menjadi dalam kelompok tertentu dan pengelompokan ini tidak dipertegas dengan adanya perbedaan atribut, malah kelompok-kelompok tersebut disatukan dalam sebuah himpunan dengan atribut yang sama. Jadi pendekatannya bersifat bottom-up mula-mula terpisah kemudian menjadi satu, proses yang demikian disebut Generalisasi. Sebagai berikut :
bottom-up
Mahasiswa
nim nama_mhs
ISA
Mahasiswa D3 Mahasiswa S1 alamat_mhs
Spesialisasi dan generalisasi merupakan dua proses yang berlawanan, yang ditekankan dalam spesialisasi adalah perbedaan antar kelompok entitas, sedangkan dalam generalisasi yang ditekankan adalah persamaannya. Implementasi pada generalisasi berlawanan dengan spesialisasi yaitu akan menyusutkan jumlah himpunan entitas menjadi hanya sebuah tabel, pada table tersebut ditambahkan sebuah atribut yang nantinya akan diisi dengan kode khusus yang menyatakan perbedaan tersebut, sebagai berikut :
Tabel Mahasiswa :
nim nama_mhs alamat_mhs prog_studi
prog_studi = atribut tambahan untuk mengakomodasi perbedaan kelompok entitas.
Adanya spesialisasi dalam perancangan basis data, umumnya akan terlihat secara eksplisit pada akhir Diagram-ER, sedangkan proses generalisasi seringkali ditiadakan. Peniadaan generalisasi ini direperesentasikan dengan adanya atribut baru pada himpunan entitas akhir.
3. Agregasi
Menggambar sebuah himpunan relasi yang secara langsung menghubungkan sebuah himpunan entitas dengan sebuah himpunan relasi dalam Diagram-ER/
sebuah relasi terbentuk tidak hanya dari himpunan entitas tapi juga mengandung unsur dari relasi lain. Sebenarnya kondisi ini tidak tepat bahkan ada yang dengan
tegas tidak memperbolehkan, sebagai jalan tengah digunakan notasi khusus untuk menunjukan adanya agregasi semacam itu. Berikut contoh dari agregasi :
Mahasiswa Mempelajari Matakuliah
N N
Mengikuti
Praktikum nim
kode_pra
kode_kul
nilai
kode_pra nama_pra jumlah_pra N
N
Pengimplementasian harus dilakukan setelah relasi prasyarat tersebut terimplementasikan, selanjutnya tinggal meninjau derajat relasi dari agregasinya.
Relasi mengikuti merupakan bentuk agregasi relasi mempelajari dan entitas praktikum. Karena semua derajat relasi yang ada pada Diagram-ER diatas adalah N-N, maka baik relasi mempelajari maupun mengikuti masing-masing direpresentasikan dalam table khusus/terpisah, sebagai berikut :
Tabel Mempelajari : Tabel Praktikum :
nim kode_kul indeks_nilai kode_pra nama_pra jumlah_pra
Tabel Mengikuti:
nim kode_kul kode_pra nilai
5.4 Pengkodean Internal
Cara yang digunakan untuk menyatakan suatu data (atribut) dalam bentuk lain adalah untuk efisiensi ruang penyimpanan disebut dengan pengkodean (data coding). Dari pemakaiannya bias dibedakan adanya pengkodean :
• Pengkodean eksternal (user define coding) : mewakili pengkodean yang telah digunakan secara terbuka dan dikenal oleh orang awam (ada pada fakta/ dunia nyata), contohnya : npm, kode_mtkul.
• Pengkodean internal (system coding) : kondisi sebaliknya dari pengkodean eksternal, contohnya : kode_dosen sebagai key alternatif. Pengkodean internal tidak hanya diterapkan pada pembuatan key alternatif, tapi juga dapat diterapkan pada atribut data lain (non key) yang memang kita kelola.
Ada tiga bentuk pengkodean yang dapat dipilih : 1. Sekuensial
Mengasosiasikan data dengan kode terurut, misalnya : (Sempurna, Baik, Cukup, Kurang, Buruk) dikodekan dengan : “A, B, C, D dan E“.
2. Mnemonic
Membentuk suatu singkatan dari data yang ingin dikodekan, misalnya : jenis kelamin (Laki-Laki dan Perempuan) dikodekan dengan “L dan P “.
3. Blok
Pengkodean dinyatakan dalam format tertentu, misalnya No.Induk Mahasiswa dengan format XXYYYY
XX = dua digit terakhir angka tahun masuk YYYY = nomor urut mahasiswa
Format ini harus dibentuk dengan pemilihan domain atribut yang lebih luas, tetapi harus dipertimbangkan juga dari sisi efisiensi ruang penyimpanan.
5.5 DBMS dan Struktur Tabel
Pembuatan berbagai tabel basis data adalah sebagai pekerjaan utama dalam tahap implementasi juga penetuan struktur dari tabel-tabel tersebut. Penentuan pilihan tipe data dan featur-featur tambahan untuk struktur table sangat bergantung pada DBMS yang dipilih. Namun dalam penentuan struktur table khususnya penetapan tipe data dan featur tambahan untuk setiap field akan sering dihadapkan pada pilihan-pilihan seperti :
1. Data Angka
a. Numerik : nilai angka dari tipe data ini menunjukan suatu jumlah misalnya : field sks, field semester, dll. Data numerik berupa :
• Bilangan bulat (integer) terdiri dari Byte (1 byte), Small Integer (2 byte) dan Long Integer (4 byte).
• Bilangan Nyata (real) terdiri dari Single (4 byte) bisa menampung hingga 7 digit pecahan dan Double (8 byte) hingga 15 digit pecahan.
Dalam penetuan tipe data numerik ukuran data disesuaikan dengan kebutuhan data masukan.
b. Alfanumerik : nilai angka dari tipe data ini tidak menunjukan suatu jumlah misalnya : field npm berisi data angka tapi tidak menunjukan suatu jumlah (bertipe teks).
2. Data Teks (Character)
Data teks ini dapat berupa abjad/ huruf, angka, karakter khusus atau gabungan dari ketiganya. Tipe ini tidak dapat melakukan operasi matematika.berupa :
a. Ukuran tetap (fixed character) : data teks yang ukurannya pasti dan pendek, misalnya untuk field npm ukuran datanya selalu tetap.
b. Ukuran dinamis (variable character) : data teks yang ukuran panjang pendeknya sangat bervariasi, misalnya untuk field nama_mhs dan alamat.
3. Data Uang
Jika DBMS yang digunakan menyediakan tipe data khusus untuk menyimpan data uang, misalnya bertipe money atau currency (8 byte). Tipe data ini cocok untuk diterapkan dan akan sangat membantu terutama dalam mengatur tampilan datanya, yang dinyatakan dengan pemisahan ribuan/jutaan/milyaran dan pemakaian tanda mata uang.
4. Date/Tanggal
Berupa gabungan angka dengan format tanggal tertentu (8 byte). Formatnya terdapat dua pilihan, diantaranya:
day/month/year atau Hari/Bulan/Tahun month/day/year atau Bulan/Hari/Tahun 5. Feature tambahan pada DBMS
Sejumlah DBMS menyediakan feature tambahan seperti : mandatory (harus diisi atau boleh kosong), default, variant (dalam VB) bila data yang akan dimasukan
belum tahu tipenya maka secara otomatis mendeteksi, variant ada dua jenis yaitu untuk number (16 byte) dan character (22 byte).
Menetukan tipe data bagi setiap field, pertimbangan pertama DBMS yang dipilih, kecukupan domain, efisiensi ruang penyimpanan, kecepatan pengolahan data dan harus dapat menjamin bahwa tipe data yang dipilih pada setiap field akan dapat mengakomodasi semua nilai yang akan diisikan ke dalam field tersebut.
Penetuan struktur dari tabel-tabel basis data dapat disajikan sebagai berikut : Misalnya :
Nama Tabel : Mahasiswa Primary Key : npm
No Nama Field Tipe Ukuran Kunci Keterangan 1 npm C 8 * nomor pokok mahasiswa
2 nama_mhs C 30 nama setiap mahasiswa 3 alamat_mhs C 50 alamat setiap mahasiswa 4 tgl_lahir D 8 tanggal lahir setiap mahasiswa 5 photo G - photo mahasiswa
Nama Tabel : Matakuliah Primary Key : kd_mtkul
No Nama Field Tipe Ukuran Kunci Keterangan 1 kd_mtkul C 5 * kode matakuliah
2 nama_mtkul C 30 nama matakuliah
3 sks N 1 jumlah bobot satuan kredit semester 4 semester N 1 semester diselenggarakan perkuliahan
Nama Tabel : Nilai
Foreign Key : npm + kd_mtkul
No Nama Field Tipe Ukuran Kunci Keterangan 1 npm C 8 ** nomor pokok mahasiswa
2 kd_mtkul C 5 ** kode matakuliah
3 Indeks_nilai C 1 indeks nilai matakuliah mahasiswa
Keterangan : C : Character N : Numeric D : Date
G : Graphic (untuk menyimpan data berupa gambar atau grafik /feature DBMS)
6 ALJABAR RELASIONAL
6.1 Definisi
Basis data dipahami oleh pengguna sebagai kumpulan tabel-tabel yang saling ber relasi, konsep untuk akses pada basis data model relasi dapat diterapkan berdasarkan matematika aljabar relasional. Operasi pada aljabar relasional operator-operatornya antara lain adalah sebagai berikut :
• Selection (γ = sigma)
• Projection (π = phi)
• Joint (× = cross)
• Union (∪ = gabungan)
• Intersection (∩ = irisan)
• Set different (− = minus)
• Dan lain-lain
6.2 Operator Aljabar Relasional
a. Selection (γ = sigma) adalah memilih tupel (baris) dalam relasi yang memenuhi predikat yang diberikan.
Contoh : Relasi Nasabah
nama alamat no_rek Respati Jl. RE Marthadinata 111.111
Yoga Jl. Merdeka 222.222
Rusi Jl. Pataruman 444.444
Swaraspati Jl. Tentara Pelajar 555.555
Misal : γnama = “Yoga” (Nasabah)
Hasil : Yoga Jl.Merdeka 111.111
b. Projection (π = phi) adalah operasi semacam selection tetapi mengambil atau memilih beberapa atribut (kolom) dalam relasi.
Misal : πno_rek (Nasabah) Hasil : no_rek
111.111 222.222 444.444 555.555
Misal : πnama,no_rek (Nasabah)
c. Joint (× = cross) adalah tupel t adalah hasil operasi joint antara r dan s jika t memenuhi beberapa tupel di r dalam skema r dan beberapa tupel dalam skema s.
Contoh:
Relasi Dosen (s) Relasi Ambil_Kuliah (r)
nama_dosen kode_mtkul nama_mhs kode_mtkul indeks_nilai
nama_dosen kode_mtkul nama_mhs kode_mtkul indeks_nilai