BAB I. PENDAHULUAN
E. Operasi Dasar Basis Data
Berikut beberapa operasi dasar basis data :
Create database : Perintah yang digunakan untuk membuat basis data dengan nama yang diberikan
Drop database : Perintah yang digunakan untuk
menghapus basis data dengan nama yang diberikan
Create table : Perintah yang digunakan untuk menciptakan suatu tabel dalam basis data memperbaharui data (record) pada table
Delete : Perintah yang digunakan untuk menghapus data (record) pada table F. Pemanfaatan Basis Data
Pemanfaatan basis data yaitu :
Salah satu komponen penting dalam sistem informasi, karena merupakan dasar dalam menyediakan informasi
Menentukan kualitas informasi : akurat, tepat waktu dan relevan.
Mengurangi duplikasi data (data redundancy)
Hubungan data dapat ditingkatkan
Manipulasi terhadap data dengan cepat dan mudah
Efisiensi penggunaan ruang penyimpanan G. Penerapan Basis Data
Tidak ada sistem informasi yang bisa dibangun tanpa adanya basis data, sehingga bisa dikatakan posisi basis data
pada sebuah sistem informasi adalah sangat penting.
H. Kriteria Basis Data
Berorientasi pada data dan bukan berorientasi pada program
Dapat digunakan oleh beberapa program aplikasi tanpa mengubah basis datanya
Dapat berkembang dengan mudah, baik volume maupun strukturnya
Dapat digunakan dengan cara berbeda-beda
Kerangkapan data minimal
I. Sistem Manajemen Basis Data (DBMS)
Merupakan perangkat lunak yang didesain untuk melakukan penyimpanan dan pengaturan basis data
Sistem Manajemen Basis Data (DBMS) juga menerapkan mekanisme pengamanan data, pemakaian data secara bersama, pemaksaan keakuratan data, dll.
J. Peranan Basis Data dalam Pengembangan Sistem Informasi
Sistem Informasi berperan sebagai sistem karena mempunyai ruang lingkup yang relatif lebih luas dan lebih kompleks. Sedangkan sistem basis data merupakan subsistem karena menjadi bagian dan berada di dalam Sistem Informasi
Sistem basis data adalah sistem informasi yang mengintegrasikan kumpulan dari data yang saling berhubungan satu dengan yang lain dan membuatnya tersedia untuk beberapa aplikasi yang bermacam-macam di dalam suatu organisasi.
Keberadaan sistem basis data di dalam Sistem Informasi adalah mutlak. Sistem Informasi tidak akan terwujud tanpa melibatkan basis data
BAB II
SISTEM BASIS DATA
A. Pengertian Sistem Basis Data
Sistem Basis Data merupakan sekumpulan basis data dengan para pemakai yang menggunakan basis data secara bersama-sama, personil yang merancang dan mengelola basis data, teknik-teknik untuk merancang dan mengelola basis data, serta sistem komputer yang mendukungnya.
B. Komponen Sistem Basis Data
Komponen-komponen utama penyusun sistem basis data adalah :
Perangkat keras
Sistem operasi
Basis data
Sistem pengelola basis data (DBMS)
Pemakai (Programmer, User mahir, user umum, user khusus)
C. Penyusun Sistem Basis Data
Sistem basis data merupakan lingkup terbesar dalam organisasi data. Sistem basis data mencakup semua bentuk komponen data yang ada dalam suatu sistem. Sedangkan basis data merupakan komponen utama yang menyusun sistem basis data
D. Bahasa Basis Data
Bahasa basis data merupakan perantara bagi pemakai dengan basis data dalam berinteraksi, yang telah ditetapkan oleh pembuat DBMS. Bahasa basis data dapat dibedakan menjadi 2, yaitu:
1) Data Definition Language (DDL)
DDL merupakan kumpulan perintah SQL yang digunakan untuk membuat (create), mengubah (alter) dan menghapus (drop) struktur dan definisi tipe data dari objek-objek database. Dengan bahasa ini dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur tabel, dll. Hasil dari kompilasi perintah DDL menjadi Kamus Data, yaitu data yang menjelaskan data sesungguhnya
2) Data Manipulation Language (DML)
Data Manipulation Language merupakan kumpulan perintah query yang digunakan untuk memanipulasi data pada database. DML Berguna untuk melakukan manipulasi dan pengambilan data pada suatu basis data, yang berupa insert, update, delete, dll. Ada 2 jenis, yaitu prosedural (ditentukan data yang diinginkan dan cara mendapatkannya) dan non-prosedural (tanpa menyebutkan cara mendapatkannya)
E. Pengguna Basis Data
Secara umum pengguna basis data dapat dikelompokkan menjadi 2, yaitu :
1) Database Administrator
Database administrator (DBA) merupakan pengguna
yang memiliki kewenangan untuk melakukan pengawasan baik data maupun program.
Fungsi DBA adalah
Mendefinisikan struktur basis data
Mendefinisikan struktur penyimpanan dan metode akses
Memodifikasi organisasi fisik
Memberikan kewenangan pada user untuk mengakses data
Menspesifikasikan keharusan integritas data 2) Database User
Ada 4 pemakai basis data, yaitu :
Programmer aplikasi Merupakan pembuat program aplikasi
Casual user / Naïve User Pemakai yang sudah mahir, berinteraksi dengan sistem tanpa menulis program, tapi menggunakan query
End user Pemakai yang belum mahir, hanya menjalankan aplikasi yang sudah dibuat oleh programmer aplikasi
Specialized user Pemakai khusus yang menuliskan aplikasi database tidak dalam kerangka pemrosesan data, namun untuk keperluan khusus seperti CAD, AI, ES, dll
BAB III
LINGKUNGAN BASIS DATA
A. Kekangan Dalam Basis Data
Penyusunan basis data digunakan untuk mengatasi masalah-masalah pada penyusunan data, yaitu :
1) Redundansi Data
Redudansi data merupakan munculnya data-data yang sama secara berulang-ulang pada beberapa file basis data yang semestinya tidak diperlukan Akan mengakibatkan proses updating lebih lama dan memungkinkan terjadinya inconsistency data.
2) Inkonsistensi Data
Inkonsistensi data merupakan munculnya data yang tidak konsisten pada field yang sama untuk beberapa file dengan kunci yang sama Terjadi akibat kesalahan dalam pemasukan data atau update data. Akan mengakibatkan kesalahan pada hasil pengolahan basis data yang tidak sesuai dengan fakta
3) Isolasi Data untuk Standarisasi
Disebabkan oleh pemakaian beberapa file basis data yang tersebar dalam beberapa file, hal ini menyulitkan program-mer untuk mengambil dan menyimpan data.
4) Banyak Pemakai (Multi User)
Basis data dapat diakses oleh beberapa pemakai secara simultan, karena data yang diolah tidak bergantung
dan menyatu dalam program tapi terlepas dalam satu kelompok data.
5) Masalah Keamanan (Security)
Pada prinsipnya file basis data hanya boleh diakses oleh pemakai tertentu yang mempunyai wewenang.
Pembatasan dapat dilakukan melalui DBMS atau program aplikasi.
6) Masalah Integritas (Integrity)
Untuk menjaga agar unjuk kerja sistem tetap dalam pengendalian penuh. Secara teknis maka ada kunci primer yang menghubungkan beberapa file yang saling berkaitan.
7) Masalah Kebebasan Data (Independence)
Basis data yang dirancang hendaknya tidak bergantung pada program aplikasi yang dibangun Sehingga apabila ada perubahan terhadap field, tidak perlu merubah struktur programnya
B. Organisasi File Basis Data
Tujuan organisasi file dalam sistem basis data :
Menyediakan sarana pencarian record bagi pengolahan, seleksi, atau penyaringan
Memudahkan pembuatan atau pemeliharaan file Ada 2 jenis media penyimpan file :
SASD (Sequential Access Storage Device)
Proses pembacaan record harus berurutan
Tidak ada pengalamatan
Data disimpan dalam bentuk blok
Proses penulisan hanya bisa dilakukan sekali
Contoh : magnetic tape
DASD (Direct Access Storage Device)
Pembacaan record tidak harus urut
Mempunyai alamat
Data dapat disimpan dalam karakter atau blok
Proses penulisan dapat dilakukan beberapa kali
Contoh : harddisk, floppy disk Metode susunan file :
Sequential (urut)
Record disimpan berdasarkan suatu kunci
Pencarian record tertentu dilakukan record demi record berdasarkan kuncinya
Random (Acak)
Kunci record ditransformasikan ke alamat penyimpanan dalam media fisik secara acak
Indexed Sequential
Merupakan gabungan antara metode urut dan acak
Record disimpan secara berurutan dengan menggunakan kunci
Masing-masing record memiliki indeks
Pengalamatan dilakukan secara acak
Indexed Random
Record disimpan secara acak
Masing-masing record memiliki indeks C. Arsitektur sistem basis data
Pertimbangan dalam memilih arsitektur sistem basis data :
Keunggulan teknologi
Biaya pengembangan
Sesuai dengan kebutuhan pengguna
Jenis arsitektur sistem basis data :
Sistem tunggal (Standalone)
DBMS, basis data, dan aplikasi basis data ditempatkan pada komputer yang sama.
Hanya bisa dipakai oleh satu pemakai pada saat yang bersamaan
Sistem Terpusat (Centralized system)
Terdiri dari sebuah server dan sejumlah terminal
Bagian yang terpusat adalah basis data, DBMS, dan aplikasi basis data
Sistem Client-server
Ditujukan untuk mengatasi kelemahan yang terdapat pada sistem terpusat
Terdiri dari 2 komponen utama yaitu client dan server. Client berisi aplikasi basis data; server berisi DBMS dan basis data
D. Konsep DBMS
DBMS (Data Base Management System) merupakan perangkat lunak yang memberikan fasilitas untuk melakukan fungsi pengaturan, pengawasan, pengendalian, pengolahan, dan koordinasi terhadap semua proses yang terjadi pada sistem basis data.
Komponen-komponen utama DBMS :
Query language
Digunakan oleh bagian lain dengan sedikit perintah sederhana
Contoh : SQL (Structure Query Language), QBE (Query By Example)
Report generator
Dirancang untuk membuat cetakan, yang memiliki
perintah- perintah untuk membuat header, judul, kolom, summary, dll.
DML (Data Manipulation Language)
Terdiri dari perintah-perintah yang disediakan dalam program aplikasi untuk melakukan manipulasi data seperti append, list, atau update
DDL (Data Definition Language)
Dengan bahasa ini dapat membuat tabel baru, membuat indeks, mengubah tabel, menentukan struktur tabel, dll.
Hasil dari kompilasi perintah DDL menjadi Kamus Data, yaitu data yang menjelaskan data sesungguhnya
Contoh : Create, Modify report, Modify structure
Recovery
Merupakan kemampuan untuk mengembalikan data yang rusak atau hilang akibat operasi basis data (insert, update, delete, dll.)
Data dictionary
Digunakan untuk memelihara definisi-definisi standar seluruh rinci data dalam lingkup kecil pada sistem basis data
Database
Merupakan bagian dari DBMS yang menyediakan data dalam berbagai tipe dan format untuk memenuhi kebutuhan pemakai
Access routine
Suatu rutin yang dapat dipanggil dan dipergunakan oleh program lain untuk mengakses basis data E. Kamus Data
DBMS memberikan fasilitas data dictionary (kamus
data) untuk mendefinisikan nama-nama rinci data dan format penyimpanannya
Kamus data digunakan untuk :
Pada tahap analisis, sebagai alat komunikasi antara analis sistem dengan pemakai sistem tentang data yang mengalir di sistem, yaitu tentang data yang masuk ke sistem dan tentang informasi yang dibutuhkan oleh pemakai sistem
Pada tahap perancangan sistem, digunakan untuk merancang input, laporan-laporan dan database
Kamus data berisi : Nama arus data, alias, bentuk data, arus data, penjelasan atau keterangan-keterangan, periode terjadinya transaksi, volume arus data yang mengalir dalam periode tertentu, struktur data
BAB IV
RELATIONAL DATABASE MODEL
A. Terminologi Relational Database Model
Model ini menjelaskan tentang hubungan logik antar data dalam basis data dengan cara memvisualisasikan ke dalam bentuk tabel dua dimensi yang terdiri dari sejumlah baris dan kolom yang menunjukan atribut-atribut
Istilah-istilah dalam model basis data relasional :
Record : Sebuah baris dalam suatu relasi.
Disebut juga tuple
Cardinality : Banyaknya record dalam sebuah relasi
Atribut : Suatu kolom dalam sebuah relasi Domain : Batasan nilai dalam atribut dan tipe dipilih dan dipakai untuk membedakan suatu record
kolom
B. Karakteristik Model Basis Data Relasional
Relasi dalam model basis data relasional memiliki karakteristik :
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
Semua entry / elemen data pada suatu kolom tertentu dalam relasi yang sama harus mempunyai jenis yang
C. Komponen Relasi
Tabel relasional mempunyai 2 komponen :
Intention
Terdiri dari dua bagian yaitu struktur penamaan (naming structure) dan batasan integritas (integrity constraint)
Struktur penamaan menunjukkan nama tabel dan nama atribut yang ada lengkap dengan dengan batasan nilai dan tipe datanya
Batasan integritas dipengaruhi oleh integritas referential yang meliputi key constraint dan referensial constraint.
Key constraint tidak mengijinkan adanya nilai null pada atribut yang digunakan sebagai primary key
Referentil constraint memberikan aturan bahwa
nilai- nilai dalam atribut kunci yang digunakan untuk menghubungkan ke basis data lain tidak diijinkan memiliki nilai null
Extention
Menunjukkan isi dari tabel-tabel pada suatu waktu, cenderung berubah sewaktu-waktu
D. Kunci Relasi
Dasar penentuan primary key adalah bahwa nilai-nilai rinci data dari atribut yang digunakan sebagai primary key harus unik, tidak boleh ada nilai data yang sama pada semua record dalam basis data
Aturan-aturan lainnya :
Integritas entity
Nilai atribut yang dipilih sebagai primary key tidak boleh null untuk setiap record yang ada dalam relasi
Aturan ini menjamin bahwa semua record yang ada dalam basis data akan dapat diakses karena semua record dapat diidentifikasi berdasarkan kunci yang unik
Integritas referensial
Jika dua buah tabel direlasikan maka primary key harus menjamin bahwa untuk setiap nilai primary key tertentu dalam tabel A, harus ada pula record
dengan nilai primary key yang sama pada tabel B
Contoh :
Tabel Mahasiswa Tabel Hobi
nim nama
B12110 Andri Suryanto C12007 Tiara Putri B12112 Andi Nur Cahyo
nim hobi
B12110 Memancing C12007 Berkebun B12112 Olahraga B12112 Membaca
E. Relasi Antar Entity Ada dua jenis:
Relasi antar entity dalam satu tabel
Berupa relasi antar entity yang berupa record untuk menyediakan data atau informasi dari atribut-atribut dalam satu tabel
Contoh: dalam tabel mahasiswa dapat diperoleh informasi bahwa nim B12110 bernama Andri Suryanto dengan jenis kelamin laki-laki
Relasi antar entity dalam banyak tabel
Tipe ini mempunyai kerelasian yang lebih rumit
Ada 3 jenis : Tree, Simple network, Complex network
Hal yang harus diperhatikan adalah bagaimana agar relasi-relasi yang ada dalam sistem basis data dapat dihubungkan satu sama lain.
F. Basis Data Yang Baik
Pembentukan basis data yang baik akan memberikan sejumlah keuntungan :
Tabel-tabel dan relasi lebih kompak
Struktur masing-masing tabel lebih efisien dan sistematik
Kebutuhan ruang penyimpanan data lebih efisien
Redundansi data yang optimal akan meningkatkan integritas data
Tidak ada ambiguitas data di semua tabel
BAB V NORMALISASI
A. Pengertian
Normalisasi adalah suatu teknik yang membuat tabel dengan struktur yang baik dengan cara-cara tertentu untuk membantu mengurangi atau mencegah timbulnya masalah yang berhubungan dengan pengolahan data dalam basis data. Kriteria yang mendefinisikan level-level pada normalisasi adalah bentuk normal. Melalui normalisasi dapat membentuk struktur basis data sehingga sebagian besar ambiguity bisa dihilangkan.
B. Tujuan Normalisasi
Normalisasi perlu dilakukan agar hubungan dalam basis data menjadi mudah dimengerti, mudah dipelihara, mudah memprosesnya, dan mudah untuk dikembangkan sesuai kebutuhan baru. Selain itu, tujuan normalisasi adalah menghilangkan kerangkapan data, mengurangi kompleksitas, mempermudah pemodifikasian data.
C. Anomali
Masalah-masalah yang timbul dalam pembuatan tabel yang disebut dengan anomali. Anomali adalah proses pada basis data yang mempunyai efek samping yang tidak diharapkan. Misal : data tidak konsisten, suatu data hilang pada saat dihapus, dll.
Anomali ada 3 jenis yaitu : 1) Anomali peremajaan
Anomali ini terjadi bila ada perubahan pada sejumlah data yang mubazir, tetapi tidak seluruhnya diubah. Contoh:
Tabel Mahasiswa
nama_mahasiswa program_studi jumlah_sks Kartika Putri Manajemen Informatika 5
Claudia Citra Manajemen Informatika 2 Yudi Permadi Manajemen Informatika 2 Claudia Citra Manajemen Informatika 1
Seandainya Claudia Citra dengan program_studi manajemen Informatika pindah ke Komunikasi Massa maka pengubahan data hanya dilakukan pada data pertama menjadi:
Tabel Mahasiswa
nama_mahasiswa program_studi jumlah_sks Kartika Putri Manajemen Informatika 5
Claudia Citra Komunikasi Massa 2 Yudi Permadi Manajemen Informatika 2 Claudia Citra Manajemen Informatika 1
Pada tabel tersebut terlihat bahwa data tentang nama_mahasiswa Claudia Citra tidak sama yang menyebabkan data tidak konsisten.
2) Anomali Penyisipan
Anomali ini terjadi pada saat penambahan data ternyata ada elemen yang kosong dan elemen tersebut justru menjadi key.
Contoh : Tabel Ekstrakurikuler nim ekstrakurikuler biaya B12110 Karate 30.000
B12112 Tenis 35.000
B12110 Tenis 35.000
B12111 Paduan Suara 20.000 B12110 Bulu Tangkis 20.000
Misalnya akan tambah ekstrakurikuler baru yaitu Pemrograman Android dengan biaya 50.000 akan tetapi belum ada seorangpun yang ikut ekstrakurikuler pemrograman android ini, sehingga data menjadi:
Tabel Ekstrakurikuler
nim ekstrakurikuler biaya B12110 Karate 30.000
B12112 Tenis 35.000
B12110 Tenis 35.000
B12111 Paduan Suara 20.000 B12110 Bulu Tangkis 20.000
Pemrograman Android
50.000
3) Anomali penghapusan
Anomali ini terjadi apabila dalam satu baris/ tuple ada data yang akan dihapus sehingga akibatnya terdapat data lain yang hilang. Contoh pada tabel ekstrakurikuler data nim B12112 akan dihapus karena sudah tidak ikut ekstrakurikuler lagi sehingga akibatnya data ekstrakurikuler tenis dan biaya 35.0000 akan ikut terhapus.
D. Dependensi (Ketergantungan)
Konsep dasar pada tahap normalisasi yang menjelaskan hubungan atribut atau secara lebih khusus menjelaskan nilai suatu atribut yang menentukan atribut lainnya.
Macam-macam dependensi, yaitu : 1) Dependensi Fungsional
Definisi : Suatu atribut Y mempunyai dependensi fungsional terhadap atribut X jika dan hanya jika setiap nilai X berhubungan dengan sebuah nilai Y.
Notasi : X Y (X secara fungsional menentukan Y bisa dikatakan juga Y bergantung pada X)
Contoh: Tabel Nilai
nim nama mata_kuliah nilai
B12110 Andri Suryanto Basis Data A
C12007 Tiara Putri Basis Data A
B12112 Andi Nur Cahyo Basis Data B
B12110 Andri Suryanto Algoritma Pemrograman A B12111 Ilham Aris Prasetyo Basis Data C B12110 Andri Suryanto Struktur Data B A12007 Tiara Putri Algoritma Pemrograman B
Dengan demikian : nim nama
nim secara fungsional menentukan nama, sebab setiap nim yang sama mempunyai nama yang sama.
{nim, mata_kuliah} nilai
nim dan mata_kuliah secara fungsional menentukan nilai, sebab setiap nim dan mata_kuliah yang sama mempunyai
nilai yang sama.
Keterangan:
Bagian yang terletak di sebelah kiri tanda panah biasa disebut determinan / penentu dan bagian yang terletak di sebelah kanan panah disebut dependensi / yang tergantung.
Tanda {} digunakan untuk menentukan lebih dari satu atribut sebagai penentu atau sebagai yang tergantung.
2) Dependensi Penuh
Definisi : Suatu atribut Y mempunyai dependensi fungsional penuh terhadap X jika
Y mempunyai dependensi fungsional terhadap X dan/atau
Y tidak memiliki dependensi terhadap bagian (subset) dari X
Contoh : {nim, mata_kuliah) nilai
(Bukan depedensi penuh. Tapi jika mata_kuliah dihilangkan akan menjadi dependensi penuh)
mata_kuliah nilai 3) Dependensi Parsial
Definisi : Dependensi Parsial merupakan ketergantungan fungsional dimana beberapa atribut dapat dihilangkan dari X dengan ketergantungan tetap dipertahankan
Contoh : {nim, nama, mata_kuliah) nilai
(dimana jika nama dihapus maka ketergantungan tetap ada)
4) Dependensi Transitif
Definisi : Dependensi transitif adalah kondisi dimana X,Y, Z merupakan atribut suatu relasi, dimana X Y dan Y Z. Maka dikatakan Z dependensi transitif terhadap X melalui Y Contoh : Tabel mahasiswa
Nim nama mata_kuliah dosen
B12110 Andri Suryanto Basis Data Marwoto C12007 Tiara Putri Basis Data Marwoto B12112 Andi Nur Cahyo Basis Data Marwoto B12111 Ilham Aris Prasetyo Basis Data Marwoto
nim mata_kuliah matakuliah nim
E. Dekomposisi
Pada tahap normalisasi sering kali terjadi pemecahan tabel kedalam bentuk dua atau lebih relasi. Proses pemecahaan ini disebut dengan dekomposisi. Syarat dekomposisi adalah : Tidak ada informasi yang hilang ketika suatu relasi dipecah menjadi relasi-relasi lain.
Contoh : Terdapat suatu relasi awal sebagai berikut:
nim Nama hobi
B12110 Andri Suryanto Memancing C12007 Tiara Putri Berkebun B12112 Andi Nur Cahyo Olahraga B12112 Andi Nur Cahyo Membaca
Akan dilakukan dekomposisi, dengan tidak menghilangkan informasi. Hasil dekomposisi sebagai berikut:
Nim nama B12110 Andri Suryanto C12007 Tiara Putri B12112 Andi Nur Cahyo
nim hobi
B12110 Memancing C12007 Berkebun B12112 Olahraga B12112 Membaca
F. Bentuk Normalisasi
Berikut langkah-langkah normalisasi
1) Bentuk normalisasi pertama (1NF)
Suatu relasi disebut memenuhi bentuk normal pertama (1NF) jika dan hanya jika setiap atribut dari relasi tersebut hanya memiliki nilai tunggal dan tidak ada pengulangan grup atribut dalam baris. Bentuk 1NF tidak boleh mengandung grup atribut yang berulang.
Dikenakan pada tabel yang sama sekali belum ternomalisasi. Tabel yang belum ternomalisasi adalah tabel yang mempunyai atribut berulang. Contoh : terdapat suatu data sebagai berikut :
Nim Nama hobi
B12110 Andri Suryanto Memancing C12007 Tiara Putri Berkebun
B12112 Andi Nur Cahyo Olahraga, Membaca
Pada contoh di atas, hobi mempunyai atribut yang berulang. Untuk itu akan dibentuk ke normal 1NF. Syarat Normal 1NF adalah suatu relasi dikatakan dalam bentuk normal pertama jika dan hanya jika setiap atribut bernilai tunggal dalam satu baris.
Tabel Mahasiswa Tabel Hobi
nim nama Nim hobi
B12110 Andri Suryanto B12110 Memancing C12007 Tiara Putri C12007 Berkebun B12112 Andi Nur Cahyo B12112 Olahraga B12112 Membaca
Tabel di atas sudah memenuhi bentuk normal 1NF, karena tidak ada atribut bernilai ganda dalam satu baris.
2) Bentuk Normal 2NF
Suatu relasi disebut memenuhi bentuk normal kedua (2NF) jika dan hanya jika :
Memenuhi 1NF
Setiap atribut yang bukan kunci utama tergantung secara fungsional terhadap semua atribut kunci dan bukan hanya sebagian atribut kunci (fully functionally dependent).
Aturan :
Sudah memenuhi dalam bentuk normal kesatu (1NF)
Semua atribut bukan kunci hanya boleh tergantung (functional dependency) pada atribut kunci
Jika ada ketergantungan parsial maka atribut tersebut harus dipisah pada tabel yang lain
Perlu ada tabel penghubung ataupun kehadiran foreign key bagi atribut-atribut yang telah dipisah tadi
Untuk normalisasi ke bentuk 2NF, maka tabel 1NF didekomposisi menjadi beberapa tabel yang masing- masing memenuhi 2NF. Bila terdapat ketergantungan parsial maka : eliminate.
Tujuan membentuk 2NF :
semantik tabel 2NF menjadi lebih eksplisit (fully FD)
mengurangi update anomali yang masih mungkin terjadi pada 1NF
Contoh :
Tabel berikut memenuhi 1NF tapi tidak termasuk 2NF:
nim nama_ mahasiswa program_ studi kode_ makul sks nama_ makul nilai
Primary key : nim, kode_makul
Tidak memenuhi 2NF, karena {nim, kode_makul} yang dijadikan sebagai primary key sedangkan :
{nim, kode_makul} nama_mahasiwa (dependensi parsial) {nim, kode_makul} program_studi (dependensi
parsial) {nim, kode_makul} nama_makul (dependensi
parsial)
{nim, kode_makul} sks (dependensi
parsial)
{nim, kode_makul} nilai (dependensi
{nim, kode_makul} nilai (dependensi