Anda di halaman 1dari 20

SISTEM BASIS DATA

Oleh : Bambang Pramono

Pendahuluan Perancangan perangkat lunak merupakan suatu proses interaktif yang menggambarkan suatu pandangan menyeluruh dalam membangun perangkat lunak, dimulai dari merancang pada tingkat abstraksi yang paling tinggi, sampai menelusuri secara langsung lebih mendetail seperti Perancangan Basis Data. Setiap elemen dari model analisis memberikan suatu informasi dari referensi yang diperlukan untuk menciptakan suatu model dalam perancangan. Dimana setiap persyaratan pengembangan perangkat lunak merupakan suatu manifestasi model perancangan akan dilakukan pada setiap tahap metode desain. Langkah desain yang akan dikerjakan adalah desain data, desain arsitektur, desain interface. Pengolahan data yang menggunakan suatu sistem pemrosesan berkas atau file processing system yaitu suatu sistem yang mengandalkan pada keberadaan dari beberapa file yang saling terpisah untuk suatu kebutuhan tertentu, dimana memiliki kelemahan dari sistem tersebut : 1. Data redundansi dan tidak konsisten, yakni Data ganda pada dua file permanen. Perubahan pada satu file karena adanya program aplikasi baru, mengakibatkan data pada file yang lain tidak konsisten. 2. Kesulitan pengaksesan data yang tersimpan dalam file terpisah dengan format yang berbeda 3. Multi User Beberapa sistem mengizinkan adanya proses update terhadap suatu file oleh beberapa pemakai secara bersamaan. Yang akan mengakibatkan keadaan yang tidak konsisten akibat waktu tanggap pemrosesan yang kurang cepat. 4. Keamanan Data Perubahan struktur file akibat pembuatan program-program aplikasi baru, mengakibatkan data dalam file tersebut tidak aman. 5. Integritas data Jika ketentuan telah diberlakukan, maka penambahan ketentuan baru akan sulit mengingat keadan file yang terpisah.

Untuk menangani masalah diatas dikenal suatu sistem yang disebut Sistem Manajemen Basis Data (Database Management System/DBMS), yaitu suatu sistem yang berisi kumpulan data yang berhubungan dengan kumpulan program untuk mengakses atau mengatur data tersebut. Kumpulan data tersebut yang biasa dikenal dengan nama Basis Data (Database). Abstraksi Data Abstraksi data merupakan tingkatan/level dalam bagaimana melihat data dalam sebuah sistem basis data, yaitu : 1. Physical level : Merupakan tingkat paling rendah dalam abstraksi data, yang menggambarkan bagaimana data tersimpan, menunjukan struktur penyimpanan data secara fisik yang sangat kompleks. 2. Conceptual level : Tingkat ini menggambarkan data apa yang tersimpan dalam database, dan bagaimana hubungan antar data tersebut. 3. View level : Tingkat yang menggambarkan bagian dari database berdasarkan kebutuhan dari pengguna. Model Data Untuk menggambarkan struktur suatu database maka diperlukan suatu konsep model data, Model data adalah kumpulan cara secara konseptual menggambarkan tentang data, hubungan data, semantik data, serta kendala yang paling umum digunakan yaitu : 1. Object Based Logical Model Model ini dipakai untuk menggambarkan data pada tingkat abstraksi conceptual dan view level. Karakteristik dari model ini secara jelas memberikan kemampuan yang terstruktur dan fleksibel untuk menggambarkan logika suatu objek atau kejadian, serta memberikan kemudahan untuk menentukan kendala data secara eksplisit. Salah satu jenis dari object based logical model adalah Entity Relationship Diagram (ERD). 2. Record Based Logical Model Model ini digunakan untuk menggambarkan data pada tingkat conceptual dan view level, yang berbeda dengan object based logical model yaitu pada model ini selain menunjukan struktur logika database juga menunjukan deskripsi data pada implementasi. Salah satu jenis dari

model ini adalah relational model yaitu data dan hubungan antar data ditunjukan dengan tabeltabel yang mempunyai sejumlah kolom dengan nama yang unik.

Perancangan Data (Data Design) Perancangan data / desain data merupakan suatu proses tranformasi model domain informasi yang dibuat selama proses analisis ke dalam suatu struktur data yang diperlukan untuk diimplementasikan pada perangkat lunak. Objek dan hubungan data akan diterapkan pada diagram hubungan entitas atau entity relation diagram (ERD), yang mana data secara rinci telah digambar dalam kamus data menjadi dasar bagi aktifitas desain data. Aktifitas utama selama desain data adalah memilih suatu representasi logik dari objek data (struktur data) yang telah diidentifikasi selama tahap definisi dan spesifikasi. Proses pemilihan melibatkan analisis algoritmik terhadap struktur untuk menentukan desain yang paling efisien atau hanya melibatkan penggunaan serangkaian modul yang memberikan operasi yang diperlukan pada beberapa representasi objek. Aktifitas penting lainnya yang berkaitan selama proses desain adalah mengidentifikasi modul-modul program yang akan beroperasi secara langsung pada struktur data logik, dengan cara tersebut ruang lingkup desain data secara individual dapat dibatasi. Untuk menggambarkan hubungan antar objek data digunakan metode pemodelan data dengan ERD, dimana akan digambarkan secara lengkap proses perekayasaan perangkat lunak dengan mengidentifikasi objek data beserta hubungannya dengan menggunakan notasi grafis. Pada konteks analisis terstruktur ERD menetapkan semua data yang dimasukan, disimpan, ditransformasi dan diproduksi pada suatu aplikasi.

Entity Relationship Diagram (ERD) Object based logical model yaitu model yang dipakai untuk menggambarkan data pada tingkat abstraksi conceptual dan view level. Karakteristik dari model ini secara jelas memberikan kemampuan terstruktur dan fleksibel untuk menggambarkan logika suatu objek atau kejadian, serta kemudahan untuk menentukan kendala data secara eksplisit. Entity Relationship Diagram hanya difokuskan pada pengelolaan data yang menunjukan suatu jaringan data yang terdapat pada suatu sistem. ERD sangat berguna bagi aplikasi dimana objek data dan relationship akan digambarkan melalui suatu model terutama untuk mengelola data yang kompleks. Model data ERD memiliki tiga informasi yang saling kebergantungan yaitu, objek data (entitas), atribut (attribute) yang menggambarkan karakteristik dari objek data tersebut, serta relationship yang menghubungkan objek data yang satu dengan yang lainnya.

Objek data berupa entitas (entity) yang merepresentasikan semua informasi gabungan yang terdapat pada sistem serta akan diimplementasikan pada perangkat lunak. Dengan informasi tersebut berarti masing-masing objek memiliki sejumlah sifat atau atribut yang berbeda. Atribut menggambarkan properti atau karakteristik yang dimiliki dari sebuah objek entitas ataupun relationship, dimana masing-masing atribut yang dimiliki oleh objek tersebut akan diidentikasi salah satunya untuk dipilih menjadi key (kunci), dimana nilainya merepresentasikan sesuatu yang unik. Relationship menggmbarkan objek entitas yang satu dihubungkan dengan objek entitas yang lain. Hubungan antar entitas akan diidentifikasi melalui suatu kardinalitas, dimana kardinalitas merupakan suatu spesifikasi dari sejumlah peristiwa yang terjadi pada satu objek kemudian dihubungkan ke sejumlah peristiwa pada objek yang lainnya. Contoh penggambaran dunia nyata menjadi bentuk ERD.
KENDARAAN ORANG PUNYA

Konversi ke ERD

Instance dan Schemes Database akan berubah setiap saat sesuai dengan informasi yang masuk dan keluar dari sistem. Kumpulan informasi yang tersimpan dalam database pada suatu waktu tertentu disebut dengan instance dari database tersebut. Rancangan keseluruhan dari database tersebut disebut dengan database scheme. Kemampuan untuk merubah definisi scheme pada suatu tingkat tertentu tanpa mempengaruhi definisi scheme di tingkat yang lebih tinggi, disebut : data independence. Terdapat 2 tingkat data independence, yaitu. Physical data independence, yaitu : kemampuan untuk merubah physical scheme tanpa menyebabkan perubahan pada program aplikasi Logical data independence, yaitu : kemampuan untuk merubah conceptual scheme tanpa menyebabkan perubahan pada program aplikasi. Logical data independence lebih sulit diterapkan dari pada physical data independence, sebab program aplikasi terpisah dan tidak tergantung pada struktur logika dari data yang diakses. Bahasa Database Terdapat 2 jenis bahasa yang digunakan dalam mengelola suatu sistem database, yaitu : 1. Data Definition Language (DDL), yaitu : Bahasa yang khusus untuk menspesifikasikan database scheme dengan sekumpulan definisidefinisi tertentu. Hasil kompilasi dari perintah-perintah DDL akan tersimpan dalam file khusus yang disebut dengan data dictionary (directory), yang berisi metadata. Metadata adalah data tentang data. 2. Data manipulation language (DML), yaitu : Bahasa yang digunakan untuk memanipulasi dan mengakses data yang telah disusun berdasarkan suatu model data tertentu. Manipulasi atau pengaksesan tersebut adalah : Mengambil informasi dari database (retrieval) Menambah informasi ke dalam database (insertion) Mengurangi informasi dari database (deletion) Merubah informasi dari database (updating)

Struktur Sistem Suatu sistem database berisi sejumlah komponen-komponen fungsional, seperti : 1. File Manager : berfungsi untuk mengatur alokasi ruang dalam storage disk dan struktur data yang digunakan untuk menunjukan informasi yang tersimpan. 2. Database Manager : menjadi penghubung antara database yang tersimpan dengan programprogram aplikasi serta query yang diberikan oleh sistem. 3. Query Processor : menerjemahkan perintah-perintah dalam bahasa query ke dalam perintahperintah yang dimengerti oleh database manager. 4. DML Precompiler : merubah perintah DML yang terdapat dalam program aplikasi ke dalam bentuk blok-blok prosedur dalam bahasa utama (host language). 5. DDL Compiler : merubah perintah DDL ke dalam bentuk kumpulan table yang berisi meta data. 6. Data File : menyimpan database tersebut. 7. Data Dictionary : menyimpan informasi tentang struktur database. 8. Indices : memberikan pengaksesan yang sangat cepat pada item data yang berisi nilai tertentu.

Pengelola dan Pemakai database Pengelola dan pemakai database dapat dibedakan atas : 1. Database Administrator Pengelola database secara keseluruhan dengan fungsi-fungsi sebagai berikut : Mendefinisikan database scheme. Mendefinisikan storage dan metode pengaksesan. Modifikasi organisasi fisik dan database scheme. Menjamin otorisasi pengaksesan data. Menentukan kendala data secara lengkap. 2. Application Programmer Orang yang berinteraksi dengan sistem melalui DML yang terkandung dalam program yang ditulis dalam bahasa utama (host language), seperti pascal, c++, basic,java. 3. Casual User Orang yang berinteraksi dengan sistem melalui query language. 4. Nave User

Orang yang berinteraksi dengan sistem dengan menggunakan kemampuan dari program aplikasi yang telah dibuat sebelumnya oleh application programmer. 5. Specialized Users Orang yang berinteraksi dengan sistem database dari aplikasi tertentu, misalkan CAD, GIS, Expert System dan lain-lain.

Entity dan Entity Set Suatu entity adalah suatu objek yang berbeda dengan objek lainnya. Seseorang dengan nomor dari kartu tanda penduduk menunjukan suatu objek yang keberadaannya (orang tersebut) berbeda dengan orang lain, suatu entity bisa berbentuk konkret, seperti orang, buku. Dan bisa juga berbentuk abstrak, seperti mata kuliah, kota. Entity set dalah kumpulan entity dengan tipe yang sama, contoh kumpulan banyak orang yang menyimpan uang di Bank, dapat didefinisikan sebagai suatu entity set yaitu nasabah (customer). Suatu entity direpresentasikan oleh sekumpulan atribut, contoh customer memiliki atribut seperti no_account, nama, alamat, kota_tinggal dan sebagainya. Tiap atribut berisi nilai-nilai yang disebut dengan domain. Suatu domain bisa merupakan kumpulan huruf huruf (alfabet), angka (numeric), atau gabungan keduanya. Dengan demikian suatu atribut adalah suatu fungsi yang memetakan suatu kumpulan entity (entity set) kepada suatu domain. Contoh : dari entity mahasiswa {(Nim,123456) , (Nama,Mamat) , (Alamat,Jalan Rajawali 34 Bandung) } berarti seorang mahasiswa bernama Mamat yang memiliki nim 123456 dan bertempat tinggal di Jalan Rajawali 34 Bandung. Konsep entity set dapat dianalogikan dengan pendefinisian type notasi dalam bahasa pemrograman. Suatu variabel dengan type tertentu akan mempunyai nilai pada suatu saat. Dengan demikian suatu variabel tingkat korenspondensinya sama dengan entity dalam model E-R.

Relationship Relationship adalah suatu hubungan antar banyak entity. Relationship set adalah kumpulan relationship dengan type yang sama. Suatu relationship dapat memiliki suatu atribut yang disebut dengan descriptive attribute, yaitu atribut ini bukan atribut yang berasal dari atribut entity-entity yang merelasikannya,

melainkan atribut yang dimiliki sendiri.Contoh pada gambar dibawah bahwa atribut tgl_pinjam dan tgl_kembali merupakan descriptive attribute.
Nama Kode_Buku Judul Pengarang

No_Anggota

Alamat

Anggota

Pinjam

Buku

Tgl_Pinjam

Tgl_Kembali

Mapping Cardinality Sejumlah entity set dapat berasosiasi dengan entity set yang lain melalui suatu relationship ditunjukan dengan mapping cardinalities. Cardinality yaitu sebuah pemetaan (mapping) yang mengacu pada sejumlah objek pada entity set S1 yang dapat direlasikan ke objek pada entity set S2, demikian juga dengan sebaliknya. Sejumlah kemungkinan banyaknya hubungan antar entitas tersebut, merujuk kepada hubungan maksimum yang terjadi dari himpunan entitas yang satu ke himpunan entitas yang lain dan begitu sebaliknya. Mapping Cardinality berdasarkan dua entity set (binary relationship set), dapat berupa : 1. Satu ke Satu (One to One) Ini berarti setiap entitas pada himpunan entitas A berhubungan dengan paling banyak satu entitas di himpunan entitas B, begitu pula sebaliknya setiap entitas pada himpunan B berhubungan paling banyak satu entitas yang ada di himpunan entitas A.

A
A1 A2 A3 A4

B
B1 B2 B3 B4

NIK

Nama

Alamat

Kode_Bagian

Nama_Bagian

KARYAWAN

mengepalai

BAGIAN

NIK

Kode_Bagian

2. Satu ke Banyak (One to Many) atau Banyak ke Satu Ini berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B, tetapi tidak sebaliknya, dimana setiap entitas pada himpunan entitas B berhubungan dengan paling banyak yaitu satu entitas pada himpunan entitas A. Kardinalitas relasi satu ke banyak dan Banyak ke satu dapat dianggap sama, karena tinjauan kardinalitas relasi selalu dapat dilihat dari dua sisi (dari himpunan entitas A ke himpunan entitas B dan dari himpunan entitas B ke himpunan entitas A).

A
A1 A2 A3

B
B1 B2 B3 B4 B5

Kode_jur

Nama_jur

Jenjang

NIM

Nama_MHS

Alamat

Jurusan

Mengambil

Mahasiswa

Kode_jur

NIM

3. Banyak ke Banyak (Many to Many) Ini berarti setiap entitas pada himpunan entitas A dapat berhubungan dengan banyak entitas pada himpunan entitas B dan demikian juga sebaliknya, dimana setiap entitas pada himpunan entitas B dapat berhubungan dengan banyak entitas pada himpunan entitas A.

A
A1 A2

B
B1 B2 B3

A3

B4

Kode_Cust

Nama

Alamat

Tgl_Beli

Qty

Kode_Brg Nama_Brg

Harga

Customer

Beli

Barang

Kode_Cust

Kode_Brg

KEY (KUNCI) Secara Konseptual, entity dan relationship secara individu berbeda, tetapi dari pandangan database perbedaan diantara keduanya, dapat dilihat berdasarkan atributnya. Hal ini digunakan Superkey yaitu kumpulan satu atau beberapa atribut, yang diambil secara kolektif yang dapat mengidentifikasikan secara unik suatu entity di dalam entity set. Tetapi hal itu akan memberikan kesukaran, karena superkey mungkin bisa berisi beberapa atribut yang sangat banyak. Yang diperlukan dari superkey adalah super set sekecil mungkin, oleh karena itu minimal superkey disebut Candidate Key. Kemungkinan bisa terjadi bahwa beberapa kumpulan atribut yang berbeda dapat berperan sebagai candidate key. Maka digunakan istilah Primary Key untuk menyatakan suatu candidate key yang dipilih dalam mengidentifikasi entity dalam entity set. Maka Primary Key dapat merupakan satu atribut atau satu set minimal atribut yang tidak hanya mengidentifikasikan secara unik suatu kejadian atau objek secara spesifik tapi juga dapat mewakili setiap kejadian dari suatu entity. Foreign Key adalah satu atribut (atau satu set atribut) yang melengkapi suatu hubungan (relationship) yang menunjukan ke induknya (primary key). Kunci tamu (foreign key) ditempatkan di entitas anak, juga sama dengan kunci primary induk yang merelasikannya. Jika suatu entity set tidak mempunyai primary key, maka entity set tersebut disebut weak weak entity, dan sebaliknya entitys set yang memiliki primary key disebut strong entity. Konsep

10

ini berhubungan dengan konsep existence dependency yaitu suatu strong entity secara definisi adalah dominant entity, sementara weak entity adalah subordinate entity.

Varian ERD Sejumlah varian dari pemodelan menggunakan Entity Relationship: 1. Generalization and Specialization Hasil pemecahan suatu entity set yang lebih tinggi ke tingkat lebih rendah disebut specialization, sebaliknya hasil gabungan dua atau lebih entity set yang tingkatnya rendah, untuk menghasilkan entity set yang tingkatnya lebih tinggi disebut generalization.
NIK Nama Alamat

Karyawan

ISA

Upah_Harian

Harian

Kontrak

Lama_kontrak

Table Karyawan
NIK Nama Alamat

Table Harian
NIK Upah_Harian

Table Kontrak
NIK Lama_Kontrak

2. Aggregation Satu keterbatasan dari model ERD adalah tidak mungkin mengekpresikan suatu relationship diantara relationship. Untuk mencegah hal itu, digunakan aggregation yaitu suatu abstraksi yang menunjukan bahwa suatu relationship dianggap sebagai sebagai suatu entity set yang tingkatnya lebih tinggi.

11

Id_Pegawai

Nama

Id_Kerja

durasi

Id_Proyek

Nama_Proyek

Pegawai

Kerja

Proyek

Id_Pegawai M

Id_Proyek

Id_Kerja Menggunakan

Kode_Mesin M Kode_Mesin Mesin Nama_Mesin

Table Pegawai
Id_Pegawai Nama

Table Proyek
Id_Proyek Nama_Proyek

Table Kerja
Id_Pegawai Id_Proyek Id_Kerja Durasi

Table Mesin
Kode_Mesin Nama_Mesin

Table Menggunakan
Id_Kerja Kode_Mesin

3. Relasi Tunggal (Unary Relation) Implementasi relasi tunggal (unary relation) dari/ke himpunan yang yang sama dalam ERDiagram tergantung pada derajat relasi. Untuk relasi satu ke banyak akan diimplementasikan table baru yang merepresentasikan relasi tersebut. Table baru ini mendapatkan field dari semua atribut relasi yang ditambahkan dengan atribut key dari himpunan entitas.
Kode_Ang Nama M Kode_Ang

ANGGOTA

Anak

Alamat

Tgl_Lahir

Kode_Anak

12

Table Anggota
Kode_Ang Nama Alamat Tgl_Lahir

Table Anak
Kode_Ang Kode_Anak

4. Relasi Multi Entitas (N-ary relation) Relasi multi entitas yang menghubungkan lebih dari dua himpunan entitas (N entitas, dimana N>2) akan diimplementasikan pada sebuah table khusus.
Kode_Cust Nama Alamat Kode_Cust Plat_No Plat_No Kelas Kapasitas

Customer

Reservasi

Bis

Kode_Petugas M Petugas

Tgl_Berangkat

Kode_Petugas

Nama Petugas

Table Customer
Kode_Cust Nama Alamat

Table Bis
Plat_No Kelas Kapasitas

Table Petugas
Kode_Petugas Nama_Petugas

Table Reservasi
Kode_Cust Plat_No Kode_Petugas Tgl_Berangkat

13

Normalisasi Normalisasi berasal dari E.F. Codd salah satu perintis teknologi basis data, dimana metodologi ini digunakan untuk menciptakan struktur table (relasi) dalam basis data dengan tujuan mengurangi redundansi data. Normalisasi terkadang hanya dipakai sebagai perangkat verifikasi terhadap tabel-tabel yang dihasilkan oleh metodologi seperti ERD. Normalisasi memberikan acuan yang sangat membantu untuk mencegah membuat struktur table yang kurang fleksible atau mengurangi ketidakefisienan. Anomali adalah proses pada basis data yang memberikan efek samping yang tidak diharapkan, misalnya menyebabkan ketidak konsistenan data atau membuat sesuatu data menjadi hilang ketika data lain dihapus. Dependensi (ketergantungan) merupakan konsep yang mendasari normalisasi.

Dependensi menjelaskan hubungan antar atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan nilai atribut lainnya. Dependensi ini akan menjadi acuan bagi pendekomposisian data ke dalam bentuk yang paling efisien. Bentuk Normalisasi Aturan normalisasi merupakan suatu aturan yang dikenakan pada relasi-relasi dalam basis data serta harus dipenuhi oleh relasi pada setiap level normalisasi. Beberapa level yang digunakan pada normalisasi yaitu. 1. Bentuk Normal Pertama (First Normal Form Relation) Bentuk normal pertama biasanya pada sebuah table yang belum normal. Syarat yang harus dipenuhi pada normal pertama jika nilai dari suatu atribut dibuat dalam bentuk table yang sederhana dan setiap atribut bernilai tunggal. Contoh Bentuk tidak normal menjadi normal.
Orders
Order_No T21 Order_Date 6 July 1987 Order_Content Item_No PC6 BW3 TY6 Item_No PC6 BW3 HJ6 Item_No PC6 BW3 TY6 PC6 BW3 HJ6 Quantity_Ordered 24 83 37 Quantity_Ordered 89 15 33 Quantity_Ordered 24 83 37 89 15 33

T33

20 May1987

Orders
Order_No T21 T21 T21 T33 T33 T33 Order_Date 6 July 1987 6 July 1987 6 July 1987 20 May1987 20 May1987 20 May1987

14

2. Bentuk Normal Kedua (Second Normal Form Relation) Bentuk Normal kedua didefinisikan berdasarkan berdasarkan dependensi fungsional. Dengan tujuan menghilangkan redundansi data. Syarat yang harus dipenuhi dalam normalisasi kedua adalah Harus memenuhi syarat bentuk normal pertama. Seluruh atribut yang bukan kunci primer, memiliki dependensi sepenuhnya terhadap kunci primer. Contoh proses dekomposisi pada normal kedua
Project_Data Person_Id P1 P3 P2 P2 P3 P2 P4 Relation key

Project_No Proj-1 Proj-1 Proj-2 Proj-3 Proj-2 Proj-1 Proj-3 Proj-4

Project_Budget 20 20 17 84 17 20 84 90

Total_Time_Spent_By_Person_On_Project 20 17 35 42 17 83 41 -

Bentuk normal kedua mensyaratkan setiap atribut tergantung pada kunci primer, hal pertama yang harus dilakukan adalah mencari kunci pada table tersebut. Berikutnya cari atribut yang bukan kunci dan tergantung penuh kepada kunci utama, seperti pada skema berikut. Person_Id Person_Id Project_No Project_No

Project_Budget Total_Time Project_Budget Total_Time

Setelah menentukan atribut yang bukan kunci tergantung penuh kepada kunci, contoh pada skema diatas menunjukan bahwa Project_Budget tergantung secara penuh pada Project_No maka lakukan dekomposisi seperti pada contoh dibawah ini.
Projects Project_No Proj-1 Proj-2 Proj-3 Proj-4
Relation key

Work Project_Budget 20 17 84 90 Person_Id P1 P3 P2 P2 P3 P2 P4 Project_No Proj-1 Proj-1 Proj-2 Proj-3 Proj-2 Proj-1 Proj-3 Total_Time_Spent_By_Person_On_Project 20 17 35 42 17 83 41

Relation key

15

3. Bentuk Normal Ketiga (Third Normal Form Relation) Suatu relasi memenuhi normal ketiga, jika memenuhi syarat sebagai berikut. Harus memenuhi syarat bentuk normal kedua. Tidak ada ketergantungan fungsi diantara atribut yang bukan kunci primer. Atau setiap atribut yang bukan kunci tidak memiliki dependensi secara transitif terhadap kunci primer. Contoh pada relasi sebagai berikut.
Projects Project_No P1 P3 P2 P4
Relation key

Manager Joe Vicki Joe Marilyn

Date_of_birth 3-jan-1963 5-March-1957 3-Jan-1963 16-July-1957

Bentuk normal ketiga mensyaratkan bahwa kunci primer dapat kita tentukan pada relasi diatas yaitu atribut Project_No, berikutnya perhatikan atribut yang bukan kunci yaitu Manager dan Date_of_birth. Terdapat ketergantungan fungsi dari atribut Date_of_birth terhadap atribut Manager, atau Manager dekomposisi seperti pada table dibawah ini.
Projects Project_No P1 P3 P2 P4
Relation key

Date_of_birth, oleh karena itu lakukan

Managers Manager Joe Vicki Joe Marilyn Manager Joe Vicki Marilyn
Relation key

Date_of_birth 3-jan-1963 5-March-1957 16-July-1957

16

Model Database Relational Basis data (database) pada hakekatnya merupakan kumpulan table yang saling berelasi, salah satu model basis data adalah model basis data relational (relational database). Pada model basis data relational, sebuah table dinyatakan satu relasi. Setiap kolom pada table disebut atribut. Setiap table pada basis data diimplementasikan secara fisik sebagai sebuah file. Satu baris data table menyatakan sebuah record, dan setiap atribut menyatakan sebuah field. Dengan kata lain secara fisik basis data adalah kumpulan file, sedangkan file adalah kumpulan record, setiap record terdiri atas sejumlah field.

S#

NAME

STATUS

CITY
London Paris etc.

Domains

primary key

S# S1 S2

SNAME Smith Jones Blake Clark Adams

STATUS 20 10 30 20 30

CITY London Paris Paris London Athens Tuples


C a r d i n a l i t y

Relation

S3 S4 S5

Attributes Degree

Formal relational term Relation Tuple Cardinality Attributes Degree Primary key Domain

Informal equivalents Table Row or record Number of rows Column or field Number of columns Unique identifier Pool of legal values

Relational data objects : terminology

17

Relational Algebra Bahasa basis data relational menggunakan bahasa query yaitu sejumlah operasi yang dilakukan terhadap basis data, berkaitan dengan perintah pertanyaan yang diajukan untuk mengambil informasi. Pada hakekatnya query terhadap basis data relational dapat dinyatakan secara abstrak dengan operasi pada relasi n-ary. Ada beberapa operasi yang dapat digunakan select, project, cartesian product, union. Seluruh operasi akan melibatkan Operand : konstanta / bilangan : (and), (or), (not) Operator Aritmatika : <, =, >, , , Operator Logika

1. Operator Select () Operasi seleksi memilih baris tertentu dari suatu table yang memenuhi persyaratan tertentu Ilustrasi

Tuple-tuple hasil select

Contoh Query : Skema relasi Karyawan (NIK, Nama, Alamat, Jabatan, Gaji) Dapatkan informasi mengenai karyawan yang memegang jabatan kepala bagian
(Karyawan)

Jabatan = Kepala Bagian


2. Operator Project ( )

Operasi project memilih kolom tertentu dalam suatu table

Atribut hasil project Contoh Query Dapat data nama dan alamat Karyawan

nama, alamat

(Karyawan)

18

3. Cartesian Product () Membentuk sebuah relasi, yang diperoleh dari dua relasi atau lebih, yang terdiri dari kombinasi tuple-tuple yang mungkin. Product
A B C X Y A A B B C C x y x y x y

Contoh query Skema relasi Karyawan (NIK, Nama, Alamat, Kode_Jabatan) Skema relasi Jabatan (Kode_Jabatan, Nama_Jabatan,Uang_Jabatan) Dapatkan informasi kombinasi data dari relasi Jabatan dan Karyawan (Karyawan Jabatan) Dapat informasi nama karyawan beserta jabatannya
(Karyawan Jabatan)

nama,alamat (Karyawan.Kode_Jabatan=Jabatan.Kode_Jabatan)
4. Union ()

Membentuk suatu relasi yang terdiri dari tuple-tuple yang tergabung dari dua relasi atau lebih, dengan syarat yang digabungkan hanya yang memiliki atribut yang sama. R S RS

Contoh Query Skema relasi mahasiswa (NIM, NAMA, ALAMAT, JURUSAN) Skema relasi Dosen (NIK, NAMA, ALAMAT, JABATAN) Gabungkan data relasi mahasiswa dan data relasi dosen

nama, alamat

(Mahasiswa)

nama, alamat

(Dosen)

19

20

Anda mungkin juga menyukai