Praktikum Basis Data

Untuk mencapai kompetensi yang diinginkan, siswa (orang yang mempelajari basisdata) diharapkan bisa menyelesaikan beberapa materi praktikum yang disajikan pada tabel dibawah ini :
No.MateriDownload
1.Hirarki Basi DataFile01
2.Entity Relationship DiagramFile02
3.NormalisasiFile03
4.Memahami Structure Query Language (SQL)File04
5.Pengenalan Tipe DataFile04
6.Membuat TabelFile04
7.Pengelolaan tabel dan databaseFile04
Share:

Quiz Basis Data 1

Share:

Basis Data Relasional

Pada model relasional, basis data akan “disebar” (dipilah-pilah) kedalam berbagai tabel 2 dimensi. Setiap tabel terdiri atas lajur mendatar yang disebut dengan baris data (row / record), dan lajur vertical yang biasa disebut dengan kolom (columm / field). Di setiap pertemuan baris data dan kolom itulah item-item data (satuan data terkecil) ditempatkan.

Ilustrasi Model Data Relasional Sebelum penerapan basis data dilakukan, lebih dahulu kita harus mengetahui contoh data yang akan digunakan. Contoh data ini harus dianalisis untuk mengetahui karakteristik mengenai masing-masing tabel data. Pengetahuan karakteristik dijadikan dasar untuk penetapan struktur dari masing-masing tabel. Didalam penerapan basis data, penetapan struktur table dilakukan sebelum penyimpanan data. Berikut contoh data yang akan digunakan (data yang ada tidak menggambarkan kenyataan yang sesungguhnya ).

Data pegawai, dengan isi data sebagai berikut:

Karakreristik data pegawai :
  • Memiliki 5 buah kolom data.
  • Kolom pertama berisi data karakter / string dengan lebar (banyaknya karakter) tetap, 8 karakter / digit.
  • Kolom kedua berisi data karakter / string dengan lebar maksimum 25 karakter.
  • Kolom ketiga berisi data tanggal / date.
  • Kolom keempat berisi data karakter / string dengan lebar (banyaknya karakter) tetap, 8 karakter / digit.
  • Kolom kelima berisi data angka dengan lebar tetap 11 digit.
Contoh diatas adalah karakteristik data untuk data pegawai,. Atas dasar karakteristik data tersebut selanjutnya kita bisa membentuk database physical (dengan catatan table – table yang telah terbentuk telah dilakukan normalisasi data).

Berangkat dari mendefinisikan karakteristik tersebut di atas, maka kita dapat menetapkan struktur dari masing-masing table. Secara minimal yang harus ditentukan dalam struktur table adalah :
1). Nama kolom (field / atribut).
2). Tipe data (data type)
3). Lebar (banyaknya karakter / dijit maksimum yang dapat ditampung.
4). Pendefinisian kolom (apakah null atau not null)

Berangkat dari karakteristik yang dapat kita simpulkan dari fakta yang ada dari masing-masing data, struktur dari table barang pada basis data counterhp, yang dapat ditentukan adalah sebagai berikut (struktur dengan MySql) :

Gambar Skema Basis Data Relasional (Basis data Project)


Struktur Table pada Basis data Project :
[1] Struktur Table Divisi

[2] Struktur Table Lokasipro

[3] Struktur Table Pegawai

[4] Struktur Table Pekerjaan

[5] Struktur Table Proyek

[6] Struktur Table Tanggungan

Share:

Bahasa Basis Data

DBMS merupakan perantara bagi pemakai dengan basis data dalam Disk. Cara berkomunkasi / berinteraksi antara pemakai dengan basis data diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa ini disebut sebagai bahasa basis data yang meliputi sejumlah perintah (statement) yang diformulasikan dan dapat diberikan user dan dikenali / diproses DBMS untuk melakukan suatu aksi / pekerjaan tertentu.

Standarisasi SQL
SQL muncul pertama kali diawal tahun 1970-an sebagai sebuah hasil penelitian pada lab IBM,San Joe, California yang dilakukan oleh Donald C Meserly dan Raymond F Boyce. Versi pertama ini diberikan nama SEQUEL (Structure English Query Language). Rencana awalnya SEQUEL ini akan digunakan dalam DB2 sebagai sebuah produk RDBMS dari IBM. Dikemudian hari IBM memberikan nama lain pada SEQUEL ini dengan nama SQL Hasil penelitian tersebut menarik banyak perhatian, banyak perusahaan yang tertarik untuk membangun RDBMS berdasarkan pada SQL ini. Salah satunya adalah Oracle. Dan Oracle ini dinyatakan sebagai sebuah produk SQL komersial pertama.

Berdasarkan perkembangan hal diatas AmericanNationalStandardInstitute (ANSI) dan InternationalStandardOrganization (ISO) membentuk standar SQL yang dimulai tahun 1986. Standar SQL ini lebih dikenal dengan SQL86. Kemudian SQL86 ini diperbaharui lagi tahun 1992 yang diberi nama SQL92 dan standar berikutnya dikeluarkan tahun 1999 yang dikenal dengan SQL99.

Perkembangan saat ini server-server basisdata tidak mengacu sepenuhnya pada standar SQL tersebut. Masing-masing server basisdata mengembangkan dialek masing-masing. Beberapa dialek SQL ini diantaranya:

[1] PL/SQL
Dibuat oleh Oracle sebagai bahasa procedural berbasis pada SQL yang mengacu pada bahasa pemrograman ADA. PL/SQL ini menjadi bagian utama dalam perkembangan Oracle saat ini.
[2] Transact SQL
Dialek yang dikembangkan oleh Microsoft yang membuat sebuah produk DBMS yang diberi nama Microsoft SQL Server. Transact SQL ini merupakan hasil kerjasama dengan Sybase Adaptive Server.
[3] PL/PgSQL
Seperti juga pada Oracle, PostgreSQL mengembangkan bahasa procedural tersendiri yang lebih jauh berkembang sehingga memungkinkan untuk mengakomodasi ObjectOrientedDatabase Management System

SQL92 membagi secara nyata perintah-perintah SQL ini dalam tiga kategori besar yang diberi nama kelompok : DataManipulationlanguage (DML), DataDefinitionLanguage (DDL) dan DataControlLanguage (DCL).

Pada SQL99 pembagian kategori perintah didasarkan class-class (object) yang terkait satu dengan yang lainnya. Terdapat tujuh kelas dalam SQL99 yaitu: SQLConnection, SQLControl, SQLData, SQLDiagnostic, SQLSchema, SQLSession, SQLTransaction.

Standarisasi SQL berikutnya SQL:2003 yang memperkenalkan ExtendedMarkupLanguange (XML) dan auto-genertorcolumnvalues. Tahun 2006 muncul lagi SQL:2006 yang ditambahkan kemampuan untuk lebih pleksibel dalam pemrograman dasidata didalam web dengan membuat XQuery yang mengabungkan antara SQL dan XML. Terkahir tahun 2008 terdapat standar baru SQL:2008

Deskripsi Bahasa Basisdata
Bahasa basis data umumnya dapat ditempelkan (embbeded) ke bahasa pemrogarman lain, misalkan ditempelkan kedalam bahasa Java,C/C++, Pascal, Basic, Fortran, Ada dan lainnya. Bahasa tempat ditempelkannya instruksi bahasa basisdata disebut sebagai inang (host language). Pada program bahasa inag yang ditempeli kode-kode bahasa basisdata mka saat source program dikompilasi maka source program terlebih dahulu dilewatkan ke pre-kompilator (pre-compiler) yang menterjemahkan instruksi bahasa basisdata menjadi instruksi asli bahasa pemrograman inang.

Setelah itu, kode-kode yang telah dalam bahasa inang dikompilaasi menggunakan kompilator bahasa inang sehingga menghasilkan kode biner yang mengaitkan (link) instruksi – instruksi bahasa basisdata ke pustaka (library) yang berfungsi menghubung DBMS. Hasil – hasil instruksi bahasa basisdata segera ditangkap program bahasa inang dan diolah sesuai keperluan aplikasi.

Selain itu vendor DBMS juga selalu menyertakan fasilitas inteaktif memberi perintah ke DBMS secara langsung. Cara ini umumnya dipergunakan administrator untuk menjalankan tugasnya mengolah seluruh basisdata organisasi.

Komponen Bahasa Basisdata
Berdasarkan fungsinya, bahasa basis data dapat dipilah ke dalam 3 (tiga) bentuk yaitu :
  1. Data Definition Language (DDL)
  2. Data Manipulation Language (DML)
  3. Data Control Language (DCL)

Gambar. SQL Statement

DATA DEFINITION LANGUAGE (DDL) berfungsi menspesifikasikan skema atau struktur basisdata, hasil pernyataan DDL adalah himpunan definisi data yang disimpan secara khusus pada data dictionary (data directory). Termasuk diantaranya : CREATE, DROP, ALTER, dan RENAME.

DATA MANIPULATION LANGUAGE (DML) adalah jenis instruksi SQL yang berkaitan dengan data yang ada dalam tabel, tentang bagaimana menginput, menghapus, memperbaharui serta membaca data yang tersimpan di dalam database. Contoh perintah SQL untuk DML : SELECT, INSERT, DELETE, dan UPDATE. DML berisi sekumpulan operasi manipulasi data pada basisdata, DML biasa disebut bahasa query yaitu bahasa untuk meminta informasi dari basisdata karena komponen paling kompleks di DML adalah operasi query. Sebenarnya DML tidak hanya berisi operasi utnuk query, namun juga meliputi operasi penghapusan, pembaruan dan penyisipan.

DATA CONTROL LANGUAGE (DCL) adalah jenis instruksi SQL yang berkaitan dengan manajemen hak akses dan pengguna (user) yang dapat mengakses database maupun tabel. Termasuk diantaranya : GRANT dan REVOKE.DCL merupakan sub bahasa untuk mengendalikan struktur internal basisdata, DCL untuk menyesuaikan sistem agar supaya lebih efisian dan DCL sangat bergantung pada vendor.

TRANSACTION CONTROL LANGUAGE (TCL) adalah perintah SQL untuk proses transaksi. Proses transaksi ini digunakan untuk perintah yang lebih dari 1, namun harus berjalan semua, atau tidak sama sekali. Misalnya untuk aplikasi critical seperti transfer uang dalam sistem database perbankan. Setidaknya akan ada 2 perintah, yaitu mengurangi uang nasabah A, dan menambah uang nasabah B. Namun jika terjadi kesalahan sistem, kedua transaksi ini harus dibatalkan. Tidak bisa hanya satu perintah saja. Termasuk ke dalam TCL adalah perintah : COMMIT, ROLLCABK, dan SET TRANSACTION

Data Manipulation Language (DML)
Bentuk bahasa basis data untuk melakukan menipulasi dan pengambilan data pada suatu basis data. Manipulasi data pada dabase dapat berupa :
1). Penyisipan / penambahan data pada file / table dalam suatu basis data.
2). Penghapusan data pada file / table dalam suatu basis data.
3). Pengubahan data pada file / table dalam suatu basis data.
4). Penelusuran data pada file / table dalam suatu basis data.

Pada level phisik kita harus mendefinisikan alghoritma yang memungkinkan pengaksesan yang efisien terhadap data. Pada level yang lebih tinggi yang dipentingkan bukan efisien akses, tapi juga efisiensi interaksi pemakai dengan sistem.

DML merupakan bahasa yang bertujuan memudahkan pemakai untuk mengakses data sebagaimana direpresentasikan oleh model data. Ada 2 (dua) jenis DML adalah sebagai berikuit :
1). Prosedural, yang mensyaratkan pemakai menentukan, data apa yang diinginkan serta bagaimana cara mendapatkannya.
2). Nonprosedural, yang membuat pemakai dapat menentukan data apa yang diinginkan tanpa menyebutkan bagaimana cara mendapatkannya.

Contoh paket bahasa prosedural DML : dBase, FoxBase, sedang untuk Nonprosedural DML : SQL (Structure Query Language), QBE (Query By Example). Query adalah pernyataan yang diajukan untuk mengambil informasi di dalam suatu basis data. Query merupakan bagian dari DML yang untuk pengambilan informasi disebut Query Language.

Berikut ini adalah contoh penggunakan perintah query dengan menggunakan database MySql, dapat dilihat pada gambar berikut ini :

Perintah Query (SQL) :
Hasil Query

Gambar Hasil Perintah Query dengan DBMS MySql


Pengguna Database
Basis data yang telah diciptakan yang terdiri dari beberapa table yang saling berkaitan, tentunya harus dimanfaatkan oleh para pengguna. Di dalam suatu basis data terdapat beberapa pengguna, antara lain adalah:
1. Database Manager
Database manager adalah satu modul program yang menyediakan interface antara penyimpanan data low-level dalam database dengan satu aplikasi program dan query yang diajukan ke sistem.
Tugas dan tanggungjawab database manager: a.Interaksi dengan manager file b.Integritas c.Keamanan d.Bakcup dan recovery
2. Database Administrator
Orang yang mempunyai kekuasaan sebagai pusat pengontrolan terhadap seluruh sistem baik data maupun program yang mengakses data disebut sebagai database administrator.
Fungsi database administrator: a.Mendefinisikan pola struktur database. b.Mendefinisikan struktur penyimpanan dan metode akses. c.Mampu memodifikasi pola dan organisasi phisik. d.Memberikan kekuasaan pada user untuk mengakses data. e.Menspesifikasikan keharusan integritas data
3. Database User
Ada 4 macam pemakai database yang berbeda keperluan dan cara aksesnya, yaitu : 1. Programmer Aplikasi, 2. Casual User (user mahir), 3. User Umum (end user), dan 4. User khusus (specialized user).


Interaksi User Pada Sistem Basisdata


PROGRAMMER APLIKASI
Pemakai yang berinteraksi dengan basis data melalui Data Manipulation Language (DML), yang disertakan (embedded) dalam program yang ditulis pada bahasa pemrograman induk (seperti C, pascal, cobol, dan lain-lain).
PEMAKAI MAHIR (CASUAL USER)
Pemakai yang berinteraksi dengan sistem tanpa menulis modul program. Mereka menyatakan query (untuk akses data) dengan bahasa query yang telah disediakan oleh suatu DBMS.
PEMAKAI UMUM (END USER / NAÏVE USER)
Pemakai yang berinteraksi dengan sistem basis data melalui pemanggilan satu program aplikasi permanen (executable program) yang telah ditulis (disediakan) sebelumnya (yang telah dibuat oleh programmer).
PEMAKAI KHUSUS (SPECIALIZED / SOPHISTICATED USER)
Pemakai yang menulis aplikasi basis data non konvensional, tetapi untuk keperluan-keperluan khusus seperti aplikasi AI, Sistem Pakar, Pengolahan Citra, dan lain-lain, yang bisa saja mengakses basis data dengan atau tanpa DBMS yang bersangkutan.
Share:

Database Management System (DBMS)

Database Management System (DBMS) dan Aplikasi Basis Data
DBMS merupakan perangkat lunak utama dalam pengelolaan dan pengolahan basis data. DBMS-lah yang menetukan bagaimana basis data dikelola dan diorganisasi secara fisik dalam media penyimpan perangkat komputer. Jika dimanfaatkan dalam jaringan komputer, maka DBMS pula berperan dalam menerapkan mekanisme keamanan (security) dan mengontol penggunaan pada waktu yang sama.

Sebuah Sistem Pengelola Basis Data (Database Management System) terbagi atas modul-modul yang masing-masing memiliki tanggung jawab dalam membentuk Struktur Sistem Basis Data secara keseluruhan. Beberapa fungsi-fungsi dalam sistem pengelola basis data mungkin telah disediakan oleh sistem operasi.
Kelengkapan fungsi/modul antara DBMS yang satu dengan yang lain bisa berbeda, baik dari sisi kualitas maupun kuantitasnya. DBMS sederhana, seperti dBase, Paradox atau MS. Access tidak mengakomodasi pemakaian basis data oleh banyak pemakai. Tetapi dengan DBMS semacam Oracle, Sybase atau MS-SQL-Server, hal tersebut terakomodasi dengan baik.

Sebuah DBMS umumnya memiliki sejumlah modul fundamental yaitu :
  • DML Compiler
  • DML Precompiler
  • DDL Interpreter
  • Query Evaluation Engine
  • File Manager
  • Buffer Manager
Untuk DBMS dengan fasilitas/fitur yang lebih lengkap, tentu saja masih ada sejumlah modul lain, seperti modul untuk mengelola keamanan data (security), menjaga integritas data, serta melakukan penggandaan data (backup). Pemanfaatan basis data melalui DBMS hanya bermanfaat secara langsung bagi para pemakai mahir (casual user) ditandai dengan menerapkan sejumlah operasi pengolahan dan manipulasi basis data (operasi basis data), namun demikian operasi basis data tersebut berbeda di antara jenis pemakai. Pemakai akhir (end user) tidak bersentuhan langsung dengan objek basis data, tetapi lebih banyak bersinggungan dengan aktivitas nyata yang memang terjadi di mana sistem basis data itu diterapkan seperti pemasukan data transaksi penjualan, akuntansi, pencetakan laporan harian/bulanan, penutupan data transaksi bulanan dll.

Pada level implementasi, perbedaan tersebut dijembatani oleh adanya perangkat lunak aplikasi yang khusus untuk dapat digunakan oleh para pemakai akhir (end user). Aplikasi ini akan menyediakan sejumlah operasi (menu) yang sesuai dengan aktivitas nyata yang memang dilakukan oleh end user. Selanjutnya pilihan operasi user ini akan ‘diterjemahkan’ oleh aplikasi tersebut menjadi sejumlah operasi basis data elementer yang memang dapat dikenali/dikerjakan oleh DBMS. DBMS yang besar seperti Oracle, SQL-Server, Informix, IBM-DB2 dirancang sejak awal berdiri sendiri dan terpisah dari aplikasi basis data. Karena berdiri sendiri, banyak sekali fasilitas (feature) yang ditangani oleh DBMS ini, seperti masalah pemeliharaan integritas data, mekanisme backup data secara periodik dan recovery data, pengendalain pemakaian data secara multiuser (concurrency control), mekanisme pengamanan pemakaian (security mechanism) dan lain-lain.


Gambar Aplikasi Basis Data yang Terpisah dari DBMS

Perangkat lunak semacam dBaseIII+, FoxBase, MS-Access dapat saja kita golongkan sebagai DBMS jika ditinjau dari sisi fungsinya secara umum yaitu mengelola basis data, walaupun memang fasilitas tambahan yang tersedia tidak selengkap yang ada pada DBMS besar atau bahkan tidak ada sama sekali. DBMS tersebut juga berfungsi sebagai tool pembangun aplikasi basis data selain berfungsi sebagai pengelola basis data. Aplikasi basis data yang dibuat akan menyatu dengan DBMS pada saat pemakaiannya. DBMS seperti ini hanya cocok untuk sistem stand alone


Gambar Aplikasi Basis Data yang menjadi Sub-Ordinate DBMS

Penyimpanan data dalam bentuk DBMS mempunyai banyak manfaat dan kelebihan dibandingkan dengan penyimpanan dalam bentuk flat file atau spreadsheet, diantaranya :
  1. Performa yang dapat dengan penyimpanan dalam bentuk DBMS cukup besar, sangat jauh berbeda dengan performance data yang disimpan dalam bentuk flat file. Disamping memiliki unjuk kerja yang lebih baik, juga akan didapatkan efisiensi penggunaan media penyimpanan dan memori
  2. Integritas data lebih terjamin dengan penggunaan DBMS. Masalah redudansi sering terjadi dalam flat file. Redudansi adalah kejadian berulangnya data atau kumpulan data yang sama dalam sebuah database yang mengakibatkan pemborosan media penyimpanan.
  3. Independensi. Perubahan struktur database dimungkinkan terjadi tanpa harus mengubah aplikasi yang mengaksesnya sehingga pembuatan antarmuka ke dalam data akan lebih mudah dengan penggunaan DBMS.
  4. Sentralisasi. Data yang terpusat akan mempermudah pengelolaan database. Kekonsistenan data yang diakses secara bersama-sama akan lebiih terjamin dari pada data disimpan dalam bentuk file atau worksheet yang tersebar.
  5. Keamanan. DBMS memiliki sistem keamanan yang lebih fleksibel daripada pengamanan pada file sistem operasi. Keamanan dalam DBMS akan memberikan keluwesan dalam pemberian hak akses kepada pengguna.
Ragam jenis DBMS
Beberapa software atau perangkat lunak DBMS yang sering digunakan dalam membuat aplikasi program basis data dan sangat populer antara lain adalah MySQL, MS SQL Server, Oracle, IBM DB/2, dan PostgreSQL. Sementara di pasaran terdapat sejumlah software DBMS baik yang komersial atau open source antara lain adalah sebagai berikut: :
  1. DBMS yang bersifat komersial: 4th Dimension, Dataphor, Daffodil database, DB2, FileMaker Pro, FrontBase, Informix, InterBase, Matisse [1], Microsoft Access, Microsoft SQL Server, Microsoft Visual FoxPro, Mimer SQL, Netezza, NonStop SQL, Oracle, Progress 4GL, Sand Analytic Server (sebelumnya dikenal sebagai Nucleus), SmallSQL, Sybase Adaptive Server Anywhere (sebelumnya dikenal sebagai Watcom SQL), Sybase Adaptive Server Enterprise, Sybase Adaptive Server IQ, Teradata, ThinkSQL [2], VistaDB, VMDS.
  2. DBMS yang bersifat open source: antara lain : Cloudscape, Derby, Firebird, H2, HSQLDB, Ingres, MaxDB, MonetDB, MySQL, PostgreSQL, SQLite, tdbengine
Share:

Entitas dan Atribut

Entitas memiliki peranan penting dalam sistem basis data. Entitas adalah sesuatu yang dapat digambarkan oleh data. Menurut Mulyanto(2008), Entitas adalah individu yang mewakili sesuatu yang nyata (eksistensinya) dan dapat dibedakan dari sesuatu yang lain. Dapat berupa suatu elemen dari suatu lingkungan, suatu sumber daya atau sebuah transaksi yang memiliki arti penting bagi suatu model yang akan dibangun.

1. Jenis-Jenis Entitas
Terdapat himpunan entitas yang tidak memiliki atribut-atribut pembentuk kunci utama. Himpunan entitas tersebut disebut himpunan entitas lemah (weak entity set). Selain itu juga terdapat himpunan entitas yang mempunyai kunci utama. Himpunan ini disebut himpunan kuat (strong entity set). Entitas dikategorikan ada 2 jenis :
  • Entitas kuat, yaitu entitas yang keberadaanya tdk tergantung entitas lain.
  • Entitas lemah, yaitu entitas yang bergantung oleh keberadaan entitas lain.
Agar himpunan entitas lemah berarti, himpunan entitas lemah harus diasosiasikan dengan entitas yang kuat atau disebut sebagai himpunan entitas pemilik. Setiap himpunan entitas lemah bergantung keberadaannya (existence dependent) pada himpunan entitas yang mengidentifikasi.

Contoh:
  • Entitas Transaksi bergantung adanya entitas Rekening.
  • Entitas Pekerjaan (task) bergantung adanya Proyek.
Entitas yang berdiri sendiri dapat mempunyai satu identifier unik yang mengidentifikasi entitas-entitas itu. Identifier dari entitas yang bergantung selalu berupa identifier majemuk (composite identifier) dimana salah satu bagian identifier adalah identifier induknya.
Kunci utama himpunan entitas lemah dibentuk dari kunci utama himpunan entitas pengidentifikasi ditambah diskriminator (discriminator) himpunan entitas lemah. Diskriminator (discriminator) himpunan entitas lemah adalah himpunan yang memberikan tanda pembedaan terhadap entitas-entitas di himpunan entitas lemah itu. diskriminator (discriminator) himpunan entitas lemah juga disebut kunci parsial himpunan entitas.

2. Jenis-Jenis Atribut Pada Sebuah Entitas
Atribut memberikan informasi lebih rinci mengenai jenis entitas. Atribut memiliki struktur internal, yaitu tipe data. Jenis-jenis atribut dijelaskan sebagai berikut:
Atribut Key Atribut Key adalah satu atau gabungan dari beberapa atribut yang dapat membedakan seluruh baris data ( Row/Record ) dalam table. Atribut ini bersifat unik. Hal ini dikarenakan pada atribut yang dijadikan key tidak boleh ada baris data dengan nilai yang sama
Contoh : Nomor pokok mahasiswa (NPM), NIM dan nomor pokok lainnya
Atribut Simple Atribut yang bernilai atomic dalam artian tidak dapat dipecah/ dipilah lagi
Contoh : Alamat, penerbit, tahun terbit, judul buku.
Atribut Multivalue Nilai dari suatu attribute yang memiliki lebih dari satu nilai (multivalue) dari atrribute terkait.
Contoh : dari sebuah buku, yaitu terdapat beberapa pengarang.
Atribut Composite Atribut composite adalah atribut yang tersusun dari beberapa atribut yang lebih kecil dan mempunyai arti tertentu. Atribut ini dapat dipecah lagi atau memiliki sub attribute.
Contoh : dari entitas nama yaitu nama depan, nama tengah, dan nama belakang
Atribut Derivatif Atribut yang tidak harus disimpan pada basis data atau atribut yang dihasilkan dari atribut lain maupun dari suatu relasi.
Contoh : Total. Atribut ini dilambangkan dengan bentuk oval yang bergaris putus-putus
Atribut Harus Bernilai
(mandatory attribute)
Atribut harus bernilai adalah atribut yang harus memiliki nilai, sehingga dapat dikatakan tidak boleh bernilai kosong.
Contoh : no_identitas dan nama_customer harus ada nilainya dalam tabel customer.
Atribut Nilai Null
( non-mandatory attribute )
Atribut nilai null adalah atribut yang nilainya boleh kosong (tidak memiliki nilai). Dapat digunakan untuk menyatakan/mengisi atribut-atribut yang nilainya memang belum siap atau nilainya tidak ada. Nilai null tidak sama dengan spasi.
Atribut Turunan Atribut turunan adalah atribut-atribut yang nilai-nilainya berasal dari pengolahan atau diturunkan dari atribut tabel lain yang berhubungan. Atribut ini dapat ditiadakan dari sebuah tabel, karena nilainya bergantung pada nilai yang ada di atribut lain.
3. Menentukan Primary Key Pada Entitas
“Primary Key” adalah field kunci / utama dari suatu tabel yang menandai field dimana field tersebut tidak bisa diisi dengan data yang sama, / dengan kata lain Primary key menjadikan tiap record memiliki identitas atau nilai yang unik. Primary Key berfungsi untuk memudahkan menampilkan record hasil pencarian (searching), pengurutan (sorting), dan berbagai operasi query lainnya.
Dengan memilih primary key operasi query berlangsung lebih cepat. Satu tabel tidak boleh memiliki lebih dari satu primary key. Hal ini dikarenakan primary key merupakan variabel data yang menjadi identitas utama dari tabel tersebut. Contoh penerapan primary ditunjukkan pada table berikut :
KodeMp Mp
P02001 Basis Data
P01001 Jaringan Komputer Dasar
P02002 Pemrograman Web dan Perangkat Bergerak
P02003 Pemrograman Berorientasi Objek
P03003 Pemrograman Berorientasi Objek
P02004 Produk Kreatif dan Kewirausahaan
P03004 Produk Kreatif dan Kewirausahaan
Dari gambar tersebut dapat diamati bahwa masing-masing data dibedakan berdasarkan kolom KodeMp (Kode Mata Pelajaran). Ini berarti nilai pada KodeMp harus bersifat unik. Berikut merupakan aturan dalam pembuatan Primary Key adalah:
  1. Tabel hanya memiliki satu primary key
  2. Primary key tidak menggunakan bertipe BLOB
  3. Nilai primary key bersifat unik dan tidak bernilai NULL
Setiap tabel dapat memiliki satu atau lebih field yang bernilai unik. Field – field tersebut memiliki kemungkinan menjadi Primary Key dan disebut sebagai Candidate Key. Key yang diperoleh dari beberapa field key disebut Composite Key.

Contoh penerapan Primary Key pada tabel Pegawai yang memiliki field :
  • no induk
  • No ktp
  • Nama
  • Tempat lahir
  • Tanggal lahir
  • Alamat
  • Kota
No induk dan no ktp adalah Candidate Key dan untuk kunci utama (primary key) adalah salah satu yang dipilih dari candidat key. Misalnya salah satu yang dipilih menjadi primary key adalah No. Induk, maka primary key nya adalah no induk.

Sumber :
Mulyanto. 2008. Rekayasa Perangkat Lunak. Kemdikbud
Share:

Normalisasi Basis Data

1. Normalisasi Basis Data
Normalisasi adalah suatu teknik untuk mengorganisasi data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu organisasi. Tujuan dari normalisasi itu sendiri antara lain untuk menghilangkan kerangkapan data, untuk mengurangi kompleksitas, dan untuk mempermudah pemodifikasian data. Normalisasi merupakan teknik analisis data yang mengorganisasikan atribut-atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, dan fleksible. Normalisasi dilakukan sebagai uji coba pada suatu relasi secara berkelanjutan untuk menentukan apakah relasi itu sudah baik, yaitu dapat dilakukan proses insert, update, delete, dan modifikasi pada satu atau beberapa atribut tanpa mempengaruhi integritas data dalam relasi tersebut.

Setiawan (2015) mengungkapkan bahwa normalisasi adalah proses mendesain struktur Database dan teknik analisis data yang mengorganisasikan atribut data dengan cara mengelompokkan sehingga terbentuk entitas yang non-redundant, stabil, serta fleksibel sehingga menghasilkan sebuah table yang normal. Ada juga yang berpendapat normalisasi adalah proses penyusunan tabel – tabel yang tidak redundan (dobel), yang dapat menyebabkan anomali yaitu proses basis data yang memberikan efek samping yang tidak diharapkan (misalnya menyebabkan data tidak konsisten atau membuat data hilang ketika data yang lain dihapus).

Normalisasi database biasanya difungsikan untuk memastikan bahwa database yang dibuat berkualitas sangat baik. Tahap Normalisasi dimulai dari tahap paling ringan (1NF) hingga yang paling ketat (5NF). Biasanya hanya sampai pada tingkat 3-NF (Bentuk Normal Ketiga) , karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Selanjutnya merancang DAD dengan Program EasyCase yang disebut juga Diagram Alir Data (DAD) yang terdiri dari: Diagram Context (DAD Konteks Sistem), terkadang ada yang menyebut diagram konteks sebagai diagram level 0 sampai Diagram Level (level 0,1, 2, 3, dst), dapat digambarkan dengan program case tool disertai Kamus Aliran Data yang mendeskripsikan data yang mengalir dalam aliran data.

Jika data dalam database tersebut belum di normalisasi maka akan terjadi 3 kemungkinan yang akan merugikan sistem secara keseluruhan:
  1. INSERT Anomali : Situasi dimana tidak memungkinkan memasukkan beberapa jenis data secara langsung di database.
  2. DELETE Anomali: Penghapusan data yang tidak sesuai dengan yang diharapkan, artinya data yang harusnya tidak terhapus mungkin ikut terhapus.
  3. UPDATE Anomali: Situasi dimana nilai yang diubah menyebabkan inkonsistensi database, dalam artian data yang diubah tidak sesuai dengan yang diperintahkan atau yang diinginkan.
Adapun tujuan kita melakukan proses normalisasi database :
  1. Untuk menghilangkan dan mengurangi redudansi data.
  2. Memastikan dependensi data (Data berada pada tabel yang tepat).
  3. Mengeliminasi adanya duplikasi informasi.
  4. Memudahkan pengubahan struktur tabel.
  5. Memperkecil pengaruh perubahan struktur database.
2.Penerapan Normalisasi Basis Data
Proses Normalisasi antara lain:
  • Data diuraikan dalam bentuk tabel, selanjutnya dianalisis berdasarkan persyaratan
  • tertentu ke beberapa tingkat.
  • Apabila tabel yang diuji belum memenuhi persyaratan tertentu, maka tabel tersebut perlu dipecah menjadi beberapa tabel yang lebih sederhana sampai memenuhi bentuk yang optimal.
Tahapan Normalisasi menurut Setiawan (2015) antara lain:
1) Bentuk Tidak Normal
Bentuk ini iyalah kumpulan data yang akan direkam, tidak ada keharusan mengikukti format tertentu, bisa saja data tidak lengkap atau terduplikasi (rangkap). Contoh pada Tabel Pelanggan Biaya sebagai berikut:

Tabel. Pelanggan Biaya
No_pelanggan Nama No_property Almt_property Tgl_pinjam Tgl_selesai Biaya No_pemilik Nama_pemilik
CR76 Badi PG4 Jl.Aai/07, Jakarta 1-Jul-93 31-Aug-95 350 CO40 Ewin
PG16 Jl. Huzai/12, Jakarta 1-Sep-96 1-Sep-96 450 CO93 Durki
CR56 Sirajuddin PG4 Jl.Aai/07, Jakarta 1-Sep-92 10-Jun-93 350 CO40 Ewin
PG36 Jl. Azhar /49, Jakarta 10-Oct-93 1-Dec-94 375 CO93 Durki
PG16 Jl. Huzai/12, Jakarta 1-jan-95 10-Aug-95 450 CO93 Durki
Untuk mentransformasikan tabel yang belum ternomalisasi di atas menjadi table yang memenuhi kriteria 1NF adalah kita harus merubah seluruh atribut yang multivalue menjadi atribut single value, dengan cara menghilangkan repeating group pada tabel diatas. Repeating Group (elemen data berulang) adalah (No_Property, Alamat_Property,Tgl_Pinjam, Tgl_Selesai, Biaya, No_Pemilik, Nama_Pemilik).

2) Bentuk Normal Pertama (1NF)
Ciri-cirinya adalah Setiap data di bentuk dalam flat file dan Tidak ada set atribut yang berulang –ulang. Membentuk sebuah tabel menjadi Un-Normalized, dengan mencantumkan data yang ada pada semua field. Membentuk Normal Pertama (1 Normal First) dengan flat table yang memisahkan data pada field-field yang tepat bernilai atomik, dan yang melengkapi atribut/ field yg ada.
Syarat normal ke satu (1-NF) antara lain:
  • Pada setiap data dibentuk dalam sebuah flat file, data dibentuk dalam satu demi satu record, nilai dari field itu berupa “atomic value”.
  • Tidak ada set atribute yang berulang(duplikat).
  • Ditentukannya primary key untuk tabel / relasi.
  • Tiap atribut hanya memiliki satu pengertian.
Langkah pertama yang dilakukan pada Tabel Pelanggan Biaya (pada Tabel 1) tersebut adalah menghilangkan elemen data yang berulang dengan data-data Pelanggan yang sesuai pada setiap baris. Hasil dari tabel yang telah memenuhi bentuk normal pertama dapat dilihat pada Tabel 2. kita dapat mengidentifikasi primary key untuk relasi Pelanggan_Biaya yang masih memiliki composite key (No_Pelanggan, No_Property).

Pada kasus ini kita akan memperoleh primary key yang bersifat composite key. Relasi Pelanggan_Biaya dapat didefinisikan sebagai berikut. Pelanggan_Biaya =(No_Pelanggan, No_Property, Nama, Alamat_Property, Tgl_Pinjam, Tgl_Selesai, Biaya,No_Pemilik, Nama_Pemilik). Berikut ditunjukkan pada Tabel berikut :
Tabel. Pelanggan Biaya
No_pelanggan Nama No_property Almt_property Tgl_pinjam Tgl_selesai Biaya No_pemilik Nama_pemilik
CR76 Badi PG4 Jl.Aai/07, Jakarta 1-Jul-93 31-Aug-95 350 CO40 Ewin
CR76 Badi PG16 Jl. Huzai/12, Jakarta 1-Sep-96 1-Sep-96 450 CO93 Durki
CR56 Sirajuddin PG4 Jl.Aai/07, Jakarta 1-Sep-92 10-Jun-93 350 CO40 Ewin
CR56 Sirajuddin PG36 Jl. Azhar /49, Jakarta 10-Oct-93 1-Dec-94 375 CO93 Durki
CR56 Sirajuddin PG16 Jl. Huzai/12, Jakarta 1-jan-95 10-Aug-95 450 CO93 Durki
3) Bentuk Normal Kedua (2NF)
Bentuk normal kedua ini iyalah didasarinya atas konsep full functional dependency (ketergantungan fungsional sepenuhnya) yang dapat didefinisikan.
Syarat normal kedua (2-NF) sebagai berikut.
  • Bentuk data ini telah dapat memenuhi kriteria bentuk normal yang pertama.
  • Atribute bukan Primary key (bukan kunci utama) haruslah memiliki ketergantungan fully functional dependency (fungsional sepenuhnya) pada primary key.
Adapun kita bisa melakukan Bentuk normal kedua (2NF) jika :
  • Harus telah berbentuk normal pertama (1NF).
  • Pada sebuah tabel semua atribut yang tidak termasuk dalam primary key memiliki ketergantungan fungsional pada primary key secara utuh. Suatu atribut dikatakan ketergantungan fungsional jika harga pada atribut tersebut menentukan harga dari atribut yang lain.
Tabel contoh bentuk tabel N2
No_pelanggan Nomor property Tgl_pinjam Tgl_selesai
CR76 PG4 1-Jul-93 31-Aug-95
CR76 PG16 1-Sep-95 1-Sep-96
CR56 PG416 1-Jan-95 10-Aug-95
CR56 PG36 10-Oct-93 1-Dec-94
CR56 PG4 1sEP-95 10-Jun-93
No_pelanggan Nama No_property Almt_property Biaya No_pemilik Nama_pemilik
CR76 Badi PG4 Jl.Aai/07, Jakarta 350 CO40 Ewin
CR76 Badi PG16 Jl. Huzai/12, Jakarta 450 CO93 Durki
CR56 Sirajuddin PG4 Jl.Aai/07, Jakarta 350 CO40 Ewin
CR56 Sirajuddin PG36 Jl. Azhar /49, Jakarta 375 CO93 Durki
CR56 Sirajuddin PG16 Jl. Huzai/12, Jakarta 450 CO93 Durki
4) Bentuk Normal Ketiga (3NF)
Walaupun relasi 2-NF memiliki redudansi yang lebih sedikit dari relasi 1-NF, namun relasi tersebut masih mendapat kemungkinan mengalami kendala bila terjadi anomaly peremajaan (update) terhadap relasi tersebut.
Syarat normal ketiga (Third Normal Form / 3 NF) sebagai berikut:
  • Bentuk data ini telah dapat memenuhi kriteria bentuk normal yang kedua.
  • Atribute bukan primary key harus tidak memiliki ketergantungan pada transitif, artinya suatu atribut bukan primary key itu tidak boleh memiliki ketergantungan fungsional (functional dependency) pada atribut yang bukan Primary key lain, seluruh atribut bukan primary key pada suatu relasi hanya memiliki ketergantungan fungsional terhadap primary key yang di relasikan saja.
Berikut contoh penerapan 3NF :
Tabel Contoh bentuk tabel N3
No_pelanggan Nama No_property Almt_property Biaya No_pemilik Nama_pemilik
CR76 Badi PG4 Jl.Aai/07, Jakarta 350 CO40 Ewin
CR76 Badi PG16 Jl. Huzai/12, Jakarta 450 CO93 Durki
CR56 Sirajuddin PG4 Jl.Aai/07, Jakarta 350 CO40 Ewin
CR56 Sirajuddin PG36 Jl. Azhar /49, Jakarta 375 CO93 Durki
CR56 Sirajuddin PG16 Jl. Huzai/12, Jakarta 450 CO93 Durki
No_pemilik Nama_pemilik
CO40 Ewin
CO93 Durki
CO40 Ewin
CO93 Durki
CO93 Durki
5) Bentuk Normal Boyce-Codd (BCNF)
Menghilangkan Ketergantungan Multivalue

6) Bentuk Normal Keempat (4NF)
Syarat 4-NF iyalah:
  • Bila dan hanya bila telah berada dalam bentuk BCNF dan tidak ada multivalued dependency nontrivial.
  • Multivalued dependency (MVD) dipakai dalam bentuk normal keempat ( 4NF ).
  • Dependensi ini dipakai untuk menyatakan hubungan satu ke bantak (one to many).

7) Bentuk Normal Kelima (5NF)
Dependensi gabungan mendasari bentuk pada normal kelima. Suatu relasi R (X,W,Z)dapat memenuhi dependensi gabungan dan jika gabungan dari proyeksi A, B, C dengan A, B, C merupakan sub sub himpunan dari atribut – atribut R. Dependensi gabungan di atas sesuai dengan notasi beikut :
  • (A, B, C )
  • dengan A = XY, B = YZ, C = ZX

Belajar Normalisasi Database 1NF, 2NF dan 3NF Bagian 1

Belajar Normalisasi Database 1NF, 2NF dan 3NF Bagian 2

Sumber:
http://www.gurupendidikan.com/pengertian-basis-data-dan-normalisasi-lengkap: Pengertian Basis Data dan Normalisasi Lengkap. Diakses pada 13 Juli 2016. Oleh: Setiawan Parta.
Share:

Popular Posts

Featured Post

Praktikum Basis Data

Untuk mencapai kompetensi yang diinginkan, siswa (orang yang mempelajari basisdata) diharapkan bisa menyelesaikan beberapa materi praktikum ...

Blog Archive

Mengenai Saya

Foto saya
Cimahi, Jawa Barat, Indonesia

Recent Posts