• Tidak ada hasil yang ditemukan

DBMS dan Struktur Tabel

Dalam dokumen KONSEP DAN PERANCANGAN BASIS DATA (Halaman 36-0)

BAB 5 IMPLEMENTASI BASIS DATA

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 Yogaswara TI-3000 Bati TI-5000 B

Respati TI-4000 Totti TI-7000 A

Rusi TI-5000 Nesta TI-3000 C

Pitaloka TI-6000 Kana TI-4000 A

Swaraspati TI-7000 Maldini TI-7000 D

Misal : Dosen × Ambil_Kuliah Hasil : (t)

nama_dosen nama_mhs kode_mtkul indeks_nilai

Rusi Bati TI-5000 B

Swaraspati Totti TI-7000 A Yogaswara Nesta TI-3000 C

Respati Kana TI-4000 A

Swaraspati Maldini TI-7000 D

Dalam query terhadap basis data operator-operator aljabar relasional dapat diekspresikan dengan gabungan, misalnya :

πnama_mhs(γnama_dosen = “Swaraspati”(Dosen × Ambil_Kuliah))

d. Union (∪ = gabungan) adalah menghasilkan semua tupel yang berada di kedua relasi. Contoh :

Relasi Mtkul_diinginkan Relasi Mtkul_tersedia

kode_mtkul nama_mhs nama_mhs kode_mtkul

TI-3000 Bati Bati TI-3000

TI-4000 Bati Totti TI-5000

TI-5000 Totti Nesta TI-4000 TI-3000 Totti Nesta TI-6000 TI-4000 Nesta

Misal : Mtkul_diinginkan ∪ Mtkul_tersedia Hasil :

e. Intersection (∩ = irisan) adalah menghasilkan relasi dengan tupel-tupel yang berada pada kedua relasi.

Misal : Mtkul_diinginkan ∪ Mtkul_tersedia Hasil :

nama_mhs kode_mtkul

Bati TI-3000 Totti TI-5000 Nesta TI-4000

f. Set different (− = minus) adalah menghasilkan relasi dengan tupel-tupel yang berada pada relasi kesatu, tetapi tidak ada pada relasi yang kedua.

Misal : Mtkul_diinginkan − Mtkul_tersedia Hasil :

nama_mhs kode_mtkul

Bati TI-4000 Totti TI-3000

Misal : Mtkul_ tersedia − Mtkul_ diinginkan Hasil :

nama_mhs kode_mtkul

Nesta TI-6000

7 STRUCTURED QUERY LANGUAGE (SQL)

7.1 Definisi

SQL adalah sebuah bahasa yang dijadikan bahasa standar untuk bahasa basis data.

Sebagai sebuah bahasa standar, sejalan dengan perkembangan teknologi basis data dan teknologi komputer pada umumnya, SQL sendiri mengalami beberapa perubahan (penyempurnaan). SQL mula-mula dibuat pada tahun 1970 dengan “Sequel”.

Standarisasi yang pertama dibuat pada tahun 1986 oleh ANSI (American National Standards Institute) dan ISO (International Standards Organization), yang disebut sebagai SQL-86. SQL-86 ini diperbaharui pada tahun 1986 menjadi SQL-89. Standar terakhir yang dibuat dan digunakan hingga saat ini adalah SQL-92 yang dikeluarkan pada tahun 1992. Bahasa basis data terdiri dari atas :

• DDL (Data Definition Language)

• DML (Data Manipulation Language)

7.2 Struktur Dasar

Sebuah ekspresi SQL dasar terdiri dari atas 3 klausa :

• Select : Bersesuaian dengan operasi proyeksi pada aljabar relasi/ memilih atribut (field) yang diinginkan.

• From : Relasi yang dipilih atau terkena operasi proyeksi/ table atau gabungan table.

• Where : Bersesuaian dengan pilihan predikat pada aljabar relasi/ yang sifatnya opsional/ sebuah keadaan.

Sintaks dari ekspresi SQL dasar : Select F1,F2…Fn

Form T1,T2…Tn Where P

Keterangan : A : daftar atribut (field) T : daftar relasi (tabel) P : merupakan predikat query Contoh :

Tabel nasabah Tabel simpanan

no_rek nama alamat cabang no_rek jumlah 10924 Angie Jl. Mawar CBCihideung 10606 700.000 10606 Ari Jl. Dahlia CBIndihiang 12476 1.500.000 12476 Armand Jl.Ros CBCilembang 10924 2.000.000 10678 Alanis Jl.Melati CBTawang 10678 500.000 18987 Aras Jl.Awan CBEmpang 10924 700.000

CBMerdeka 12476 1.000.000

Klausa Select dan Form Misal : Select nama

From nasabah

Hasil : nama

Angie

Ari

Armand

Alanis

Aras

Misal : Select nama, no_rek

From simpanan

Hasil : Menampilkan seluruh isi atribut nama dan no_rek dari tabel simpanan

Misal : Select no_rek as Rekening

From simpanan

Hasil : klausa as untuk mengganti tampilan header no_rek menjadi Rekening tanpa menggangu prosesnya.

Misal : Select * From nasabah

Hasil : notasi * menampilkan semua atribut yang ada pada tabel nasabah

Klausa Where

Klausa ini boleh tidak digunakan, klausa untuk predikat ini dapat menerapkan operator relasi (<, >, <=, >=, =, <>) dan operator logika (and, or dan not). Untuk nilai predikat yang bertipe string harus diapit dengan tanda kutip tunggal (‘ ’).

Misal : Select nama Hasil : Angie

From nasabah

Where no_rek = ‘10924’

Misal : Select * Misal : Select no_rek,cabang

From nasabah From simpanan

Where no_rek = ‘10924’ Where jumlah <= 700.000 Hasil : 10924 Angie Jl.Mawar Hasil : 10606 CBCihideung

10678 CBTawang

10924 CBEmpang

Misal : Select no_rek

From simpanan

Where jumlah between 450.000 and 800.000

Hasil : Kalusa between kriteria yang berbentuk range nilai tertentu.

10606

10678

10924

Misal : Jika dalam query tabel yang dilibatkan lebih dari satu tabel maka table-tabel tersebut harus memiliki relasi.

Select nasabah.nama, nasabah.alamat, simpanan.cabang From nasabah, simpanan

Where nasabah.no_rek = simpanan.no_rek

Hasil : Menampilkan nama, alamat dan cabang dari kedua table dimana no_rek nasabah pada table nasabah sama dengan no_rek pada table simpanan.

Latihan :

1. Buat contoh lain untuk penggunaan klausa select, from dan where seperti pada contoh diatas.

2. Pada kedua tabel nasabah dan simpanan, cari isi record data no_rek 10924 dengan jumlah simpanannya lebih dari 800.000

3. Pada kedua tabel nasabah dan simpanan, cari semua nasabah dan cabangnya yang mempunyai jumlah simpanan sebesar 700.000

4. Pada kedua tabel nasabah dan simpanan, cari semua nama, alamat dan cabangnya yang mempunyai simpanan dibawah 1000.000

5. Pada kedua tabel nasabah dan simpanan, cari no_rek, nama dan alamat nasabah yang memiliki simpanan dicabang CBIndihiang dan CBMerdeka.

6. Pada kedua tabel nasabah dan simpanan, cari semua nasabah yang memiliki simpanan di cabang CBTawang.

Karakter Khusus

Khusus untuk atribut yang bertipe string, dapat dilakukan pencarian dengan pola tertentu, memanfaatkan karakter :

• % (percent) : berarti cocok untuk semua substring.

• _ (underscore) : berarti cocok untuk semua karakter pada posisi yang sesuai.

• Ditambah klausa like Misal : Select *

From nasabah Where nama like ‘A%’

Hasil : menampilkan record-record nasabah yang namanya diawali dengan huruf A

Misal : Select * From nasabah

Where nama like ‘_a%’

Hasil : menampilkan nasabah yang huruf/karakter kedua dan namanya adalah a.

Pengurutan Hasil Query

Dengan SQL hasil ditampilkan dengan urutan sesuai dengan struktur penyimpanan, jika ingin menampilkan dengan urutan tertentu dengan menambahkan klausa order by.

Misal : Select * From nasabah Order by nama

Hasil : menampilkan nama nasabah dari abjad terkecil hingga terbesar (ascending).

Misal : Select * From nasabah Order by tgl_lahir desc

Hasil : menampilkan nasabah termuda hingga tertua (descending).

7.3 Anomali Basis Data

SQL juga dilengkapi dengan sejumlah perintah untuk melakukan manipulasi data seperti penambahan record baru, pengubahan nilai atribut dan penghapusan record.

Ada tiga Anomali :

• Insert Anomali

• Delete Anomali

• Update Anomali a. Insert Anomali

Sintaks SQL : Insert Into NamaTabel(field1, field2,…) values (ekspresi1, ekspresi2,…)

Misal : insert into nasabah (no_rek, nama, alamat) values (‘12085’,’Roma’,’Jl.Edelwis’)

Hasil : Fields no_rek, nama, alamat pada table nasabah akan di isi dengan nilai 12085, Roma, Jl.Edelwis.

b. Delete Anomali

Sintaks SQL : delete from NamaTabel where Kondisi

Misal : delete from nasabah where no_rek = ‘12085’

Hasil : Record dengan no_rek 12085 akan dihapus Misal : delete from nasabah

Hasil : Akan menghapus semua record dari table nasabah c. Update Anomali

Sintaks SQL : update NamaTabel set Ekspresi

where Kondisi Misal : update nasabah

set alamat = ‘Jl.Edelwis’

where no_rek = ‘10606’

Hasil : Record alamat untuk no_rek 10606 akan di update dengan Jl.Edelwis Misal : update simpanan

set jumlah = jumlah + 500.000 where no_rek = ‘12476’

Hasil : Field jumlah pada table simpanan akan ditambah 500.000 untuk no_rek

= 12476

Misal : update nasabah

set nama = ‘ Prof. ’ + nama where no_rek = ‘12476’

Hasil : Nama dengan no_rek 12476 akan ditambahakan gelar Prof.

Misal : update simpanan set jumlah = null

Hasil : Pengosongan untuk semua field jumlah. (Jika tanpa klausa where maka berlaku untuk semua record).

7.4 Pendefinisian Objek Basis Data

Data Definitif Language (DDL) berkaitan dengan perintah - perintah untuk pendefinisian objek-objek basis data.

Misalnya pembuatan tabel, sintaks SQL : create table t (A1 D1, A2 D2,…)

t = nama table yang akan dibuat

A = nama-nama atribut yang akan terdapat dalam table t.

D = domain nilai masing-masing atribut yang ditentukan berdasarkan tipe data.

Misal : create table mahasiswa (npm char(6), nama_mhs varchar(30), alamat_mhs Varchar(60), tgl_lahir date)

Misalnya penghapusan tabel, sintaks SQL : drop table t

Misal : drop table mahasiswa

Misalnya pembuatan table mahasiswa sekaligus pendefinisian Indeks Primer berdasarkan npm :

Misal : create table mahasiswa (npm char(6), nama_mhs varchar(30), alamat_mhs Varchar(60), tgl_lahir date, primary key (npm))

Sintaks SQL untuk perubahan struktur tabel dapat berupa penambahan atribut atau pengurangan/ penghapusan atribut tertentu.

Penambahan atribut ke tabel t : alter table t add A D t = nama table

A = nama atribut

D = tipe data untuk atribut A Penghapusan atribut dari tabel t : alter table t drop A

Penambahan atribut baru bernama ip di tabel mahasiswa : alter table mahasiswa add ip numeric (5, 2)

Jika atribut ip dihapus dari tabel mahasiswa : alter table mahasiswa drop ip

7.5 Fungsi Agregasi

Untuk menampilkan data-data agregasi seperti banyak record, total nilai suatu atribut, rata-rata nilai suatu atribut, nilai atribut terbesar ataupun terkecil dapat diperoleh dengan fungsi-fungsi berikut :

• count : menghitung jumlah baris suatu field.

• sum : menjumlahkan data-data numerik pada suatu field.

• avg : menghitung nilai rata-rata suatu atribut numerik.

• max : mengambil nilai maksimum

• min : mangambil nilai minimum Contoh : Tabel karyawan

nama umur golongan gaji Arti 27 A Rp. 500.000 Bunda 32 A Rp. 750.000 Citra 29 B Rp. 474.000 Diva 24 A Rp. 575.000 Elsa 25 B Rp. 800.000

Misal : select count (*) from karyawan Hasil : 5

Misal : select count (*) from karyawan where golongan = ‘A’

Hasil : 3

Misal : select sum (gaji) from karyawan Hasil : 3.100.000

Misal : select avg (umur) from karyawan Hasil : 27,4

Misal : select max (gaji) from karyawan Hasil : 800.000

Misal : select min (umur) from karyawan Hasil : 24

Misal : select max (gaji) from karyawan where golongan = ‘A’

Hasil : 750.000

Misal : select min (gaji) from karyawan where golongan = ‘B’

Hasil : 475.000

DAFTAR PUSTAKA

Abraham Silberschatz, Henry F.Korth, S.Sudarshan, ”Database System Concept : Third Edition, International Edition”, The Mc Graw-Hill Companies, Inc, 2000.

CJ Date HM, ”An Introduction to Database System”, Addison Wesley, 6th editions, 2001.

Fatansyah, “Basis Data”, CV. Informatika, Bandung, 2002.

Harianto Kristanto, “Konsep dan Perancangan Database”, Andi Offset, Yogyakarta, 2000.

Dalam dokumen KONSEP DAN PERANCANGAN BASIS DATA (Halaman 36-0)

Dokumen terkait