Rabu, 05 November 2014

Lingkungan Basis Data

Aji Prabowo (40213532)
Gita Aulisari (43213748)
Indah Ramdhayani (44213368)
Meianawati Fitri (45213403)
Paranita Octavani Freedy (46213827)
Steven Wu (48213647)


A.     Latar Belakang

Basis data adalah kumpulan informasi yang disimpan didalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi dari database tersebut. Perangkat lunak yang digunakan untuk mengolah dan mengambil kueri (query) basis data disebut sistem manajemen basis data. Pemrosesan basis data sebagai perangkat andalan sangat diperlukan oleh berbagai institusi dan perusahaan. Dalam pengembangan sistem informasi diperlukan basis data sebagai media penyimpanan data. Kehadiran basis data dapat meningkatkan Daya saing perusahaan tersebut. Basis data dapat mempercepat upaya pelayanan kepada pelanggan, menghasilkan informasi dengan cepat dan tepat sehingga membantu pengambilan keputusan untuk segera memutuskan suatu masalah berdasarkan informasi yang ada. Banyak aplikasi yang dibuat dengan berlandaskan pada basis data antara lain semua transaksi perbankan, aplikasi pemesanan dan penjadwalan penerbangan, proses regristasi dan pencatatan data mahasiswa pada perguruan tinggi, aplikasi pemrosesan penjualan, pembelian dan pencatatan data barang pada perusahaan dagang, pencatatan data pegawai beerta akrifitasnya termasuk operasi penggajian pada suatu perusahaan, dan sebagainya. Beberapa informasi pada perusahaan retail seperti jumlah penjualan, mencari jumlah stok penjualan, mencari jumlah stok yang tersedia, barang apa yang paling lakudijual pada bulan ini, dan berapa laba bersih perusahaan dapat diketahui dengan mudah dengan basis data. Pada perpustakaan, adanya aplikasi pencarian data buku berdasarkan judul, pengarang atau kriteria lain dapat mudah dilakukan dengan basis data. Pencarian data peminjam yang terlambat mengembalikan juga mudah dilakukan sehingga bisa dibuat aplikasi pembuatan surat berdasarkan informasi yang tersedia.

Tiga Tingkatan Arsitektur Basis data ANSI-SPARC

Ada  3  tingkat  dalam arsitektur database yang bertujuan membedakan cara pandang pemakai terhadap database dan cara pembuatan databasesecara fisik.
3 tingkatan arsitektur database:

1. Tingkat Eksternal (External Level)

Tingkat eksternal merupakan cara pandang pemakai terhadap database. Pada tingkat ini menggambarkan bagian databaseyang relevan bagi seorang pemakai tertentu. Tingkat eksternal  terdiri  dari  sejumlah  cara  pandang  yang  berbeda  dari  sebuah  database. Masing-masing pemakai merepresentasikan dalam bentuk yang sudah dikenalnya. Cara pandang  secara  eksternal  hanya  terbatas  pada  entitas,  atribut  dan  hubungan  antar entitas (relationship) yang diperlukan saja.
Contoh : view dari mahasiswa, view dari mata kuliah

2. Tingkat Konseptual (Conseptual Level)

Tingkat konseptual merupakan kumpulan cara pandang terhadap database. Pada tingkat ini menggambarkan data yang disimpan dalam databasedan hubungan antara datanya.  Hal-hal yang digambarkan dalam tingkat konseptual adalah :

- semua entitas beserta atribut dan hubungannya
- batasan data
- informasi semantik tentang data
- keamanan dan integritas informasi

Semua cara pandang pada tingkat eksternal berupa data yang dibutuhkan oleh pemakai harus sudah tercakup di dalam tingkat konseptual atau dapat diturunkan dari data yang ada. Deskripsi data dari entitas pada tingkat ini hanya terdiri dari jenis data dan besarnya atribut tanpa memperhatikan besarnya penyimpanan dalam ukuran byte.
Contoh : entity, relationship, tipe data dan constraint.

3 Tingkat Internal (Internal Level)

Tingkat  internal  merupakan  perwujudan  database dalam  komputer.  Pada  tingkat  ini menggambarkan bagaimana databasedisimpan secara fisik di dalam peralatan storage yang berkaitan erat dengan tempat penyimpanan/physical storage. Tingkat internal memperhatikan hal-hal berikut ini :

- alokasi ruang penyimpanan data dan indeks
- deskripsi record untuk penyimpanan
  Contoh : organisasi file secaa sequential, raltive atau index sequential
- penempatan record
- pemampatan data dan teknik encryption

Data Independence

Tujuan  utama  dari  3  tingkat  arsitektur  adalah  memelihara  kemandirian  data  (data independence) yang berarti perubahan yang terjadi pada tingkat yang lebih rendah tidak mempengaruhi tingkat yang lebih tinggi.
Ada 2 jenis data independence, yaitu :

1. Physical Data Independence

bahwa  internal schemadapat diubah oleh DBA tanpa menggangu  conceptual schema. Dengan  kata  lain  physical  data  independence menunjukkan  kekebalan  conceptual schematerhadap perubahan internal schema.
Contoh : 

- Menambah indeks tambahan
- Merubah penyimpanan data
- Merubah organisasi file dari sequential ke index sequential

2. Logical Data Independence

bahwa conceptual schemadapat diubah oleh DBA tanpa menggangu external schema. Dengan kata lain logical data independencemenunjukkan kekebalan   external schema terhadap perubahan conceptual schema.
Contoh : 

- Menambah dan menghapus suatu tipe record
- Merubah format data

Prinsip  data  independence adalah  salah  satu  hal  yang  harus  diterapkan  di  dalam
pengelolaan sistem basis data dengan alasan-alasan sebagai berikut :
  1. DBA  dapat  mengubah  isi,  lokasi,  perwujudan  dalam  organisasi  basis  data  tanpa mengganggu program-program aplikasi yang sudah ada.
  2. Pabrik/agen peralatan/softwarepengolahan data dapat memperkenalkan produk-produk baru tanpa mengganggu program-program aplikasi yang sudah ada.
  3. Untuk memindahkan perkembangan program-program aplikasi
  4. Memberikan fasilitas pengontrolan terpusat oleh DBA demi keamanan dan integritas data dengan memperhatikan perubahan-perubahan kebutuhan pengguna


Bahasa Dalam DBMS

DBMS  (Database  Management  systems)  adalah  kumpulan  program  yang mengkoordinasikan semua kegiatan yang berhubungan dengan database. Dengan adanya berbagai  tingkatan  pandangan  dalam  suatu  database maka  untuk  mengakomodasikan masing-masing  pengguna  dalam  piranti  lunak  manajemen  database biasanya  terdapat bahasa-bahasa tertentu yang disebut Data Sub language.  Data sub language adalah subset bahasa yang dipakai untuk operasi manajemen database. Dalam penggunaan biasanya dapat ditempelkan (embedded) pada bahasa tuan rumah (Cobol,  PL/1, dsb). Secara umum maka setiap pengguna  database  memerlukan bahasa yang dipakai sesuai tugas dan fungsinya.

Dalam basis data secara umum dikenal 2 data sub language :

1. Data Definition Language (DDL)

Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari database, di dalamnya termasuk record, elemen data, kunci elemen, dan relasinya

2.  Data Manipulation Language (DML)

Bahasa  yang  digunakan  untuk  menjabarkan  pemrosesan  dari  database,  fasilitas  ini diperlukan untuk memasukkan, mengambil, mengubah data. DML dipakai untuk operasi terhadap isi database
Ada 2 jenis DML :

a.  Procedural DML

Digunakan  untuk  mendefinisikan  data  yang  diolah  dan  perintah  yang  akan dilaksanakan.

b.  Non Procedural

Digunakan untuk menjabarkan data yang diinginkan tanpa menyebutkan bagaimana cara pengambilannya. Secara khusus pengguna menggunakan berbagai bahasa :
Programmer  aplikasi  menggunakan  bahasa-bahasa  seperti  Cobol,  Informix,  dll  (host language) yang ditempelkan dengan bahasa yang dipakai dalam DBMS. Pemakai terminal menggunakan  bahasa  Query  (misal  SQL)  atau  menggunakan  program  aplikasi  (yang dirancang oleh programmer). Sedangkan DBA lebih banyak menggunakan bahasa DDL dan DML yang tersedia dalam DBMS.
DBMS mempunyai tugas untuk menangani semua bentuk akses kepada  database, secara konsep :

1. Pengguna menyatakan permintaan akses menggunakan DBMS
2. DBMS menangkap dan menginterpretasikan
3. DBMS mencari :
     - eksternal / conceptual mapping
     - conceptual schema
     - konseptual / internal mapping
     - internal schema
4. DBMS melaksanakan operasi yang diminta terhadap databasetersimpan.

Proses 1 s/d 4 dapat dilakukan secara interactive atau dicompile dulu.

Fungsi DBMS

Layanan - layanan yang sebaiknya disediakan oleh database management systemadalah :
  1. Penyimpanan, pengambilan dan perubahan data Sebuah DBMS harus menyediakan kemampuan menyimpan, mengambil dan merubah data dalam database.
  2. Katalog yang dapat diakses, pemakai menyediakan sebuah katalog yang berisi deskripsi item data yang disimpan dan diakses oleh pemakai.
  3. Mendukung Transaksi, Menyediakan mekanisme yang akan menjamin semua perubahan yang berhubungan Dengan transaksi yang sudah ada atau yang akan dibuat.
  4. Melayani kontrol concurrency, Sebuah  DBMS  harus  menyediakan  mekanisme  yang  menjamin  database ter-update secara benar pada saat beberapa pemakai melakukan perubahan terhadap  database yang sama secara bersamaan.
  5. Melayani recovery, Menyediakan  mekanisme  untuk  mengembalikan  database ke  keadaan  sebelum terjadinya kerusakan pada databasetersebut.
  6. Melayani autorisasi, Sebuah DBMS harus menyediakan mekanisme untuk menjamin bahwa hanya pemakai yang berwenang saja yang dapat mengakses database.
  7. Mendukung komunikasi data, Sebuah DBMS harus mampu terintegrasi dengan software komunikasi.
  8. Melayani integrity


Model Data

Model  data  adalah  kumpulan  konsep  yang  terintegrasi  yang  menggambarkan  data, hubungan antara data dan batasan-batasan data dala suatu organisasi. Fungsi dari sebuah model data untuk merepresentasikan data sehingga data tersebut mudah dipahami. Perkembangan model data merupakan representasi dari suatu reaksi terhadap model-model yang  mendahuluinya.  Sistem  hierarkhi  suatu  basis  data  merupakan  bagian  dari perkembangan  yang  diciptakan  untuk  mengatasi  kekurangan  yang  ada  pada  sistem berorientasikan  file  (file-oriented).  Basis  data  jaringan  dikembangkan  untuk  mengatasi keterbatasan dari desain hierarkhi. Basis data relasional muncul sebagai solusi baru untuk masalah-masalah yang muncul pada desain hierarkhi dan desain network dan seterusnya.

1. Model Data Berbasis Objek

Model data berbasis objek menggunakan konsep entitas, atribut dan hubungan antar entitas. Beberapa jenis model data berbasis objek yang umum adalah :
- entity-relationship
- semantic
- functional
- object-oriented

2. Model Data Berbasis Record

Pada model data berbasis  record,  database terdiri dari sejumlah  record dalam bentuk yang  tetap  yang  dapat  dibedakan  dari  bentuknya.  Ada  3  macam  jenis  model  data berbasis record yaitu :

a. Model data relasional

Model data ini berdasarkan konsep relasi matematika, data dan relasi yang digambarkan pada sebuah  tabel  yang  mempunyai  kolom  dan  baris  dimana kolom-kolom  tersebut mempunyai nama yang unik.
Contoh :

b. Model data hierarkhi

Model data ini dikenal sebagai  model struktur pohon, di mana data direpresentasikan dalam bentuk pohon. Sebuah database hierarkhi terdiri dari kumpulan record-record dimana record yang satu dengan yang lainnya dihubungkan dengan link. Model  hierarki  mempunyai  dua  konsep  struktur  data  yaitu  record dan  parent-child relationship (PCR).


 c. Model data jaringan

Model  data  jaringan  dikenal  sebagai  STRUKTUR  PLEX.  Pada  dasarnya  struktur jaringan ini merupakan perluasan dari struktur hirarki. Kalau pada struktur hirarki, setiap child hanya mempunyai satu parent. Sedangkan pada struktur jaringan, setiap child dapat mempunyai lebih dari satu parent. Struktur  jaringan  ini  merupakan suatu  graph,  terdiri dari  suatu  node (simpul),  yang dihubungkan dengan edge. 
Ada dua struktur data Model jaringan, Yaitu RECORD dan SET. Contoh dari model data jaringan adalah perangkat lunak IDMS (Integrated Database Management System) yang merupakan produk dari perusahaan perangkat lunak CULLINET yang bekerja pada mainframe IBM dengan sistem kerja DOS atau MVS.
IDMS menggunakan sistem CODASYL atau DBTG. IDMS yang dikemukakan oleh DBTG terdiri atas tiga bahasa basis data yaitu skema DDL, sub skema DDL dan DML.


Arsitektur DBMS Multi User

Teleprocessing

Arsitektur tradisional untuk sistem multi user adalah teleprocessing, dimana satu komputer dengan sebuah CPU dan sejumlah terminal seperti pada gambar di bawah ini. Semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk  pemakai  berjenis  'dumb',  yang  tidak  dapat  berfungsi  sendiri  dan  masing-masing dihubungkan  ke  komputer  pusat.  Terminal-terminal  tersebut  mengirimkan  pesan  melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS.

Dengan  cara  yang  sama,  pesan  dikembalikan  ke  terminal  pemakai.   Arsitektur  ini menempatkan  beban  yang  besar  pada  komputer  pusat  yang  tidak  hanya  menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.
• contoh : ATM mesin di bank-bank.

Dengan  cara  yang  sama,  pesan  dikembalikan  ke  terminal  pemakai.   Arsitektur  ini menempatkan  beban  yang  besar  pada  komputer  pusat  yang  tidak  hanya  menjalankan program aplikasi tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.
• contoh : ATM mesin di bank-bank.

Client Server

Untuk  mengatasi  kelemahan  arsitektur-arsitektur  di  atas  maka  dikembangkan  arsitektur client-server. Client-servermenunjukkan cara komponen softwareberinteraksi dalam bentuk sistem. Sesuai dengan namanya, ada sebuah pemroses  client yang membutuhkan sumber dan sebuah serveryang menyediakan sumbernya. Tidak ada kebutuhan clientdan server yang harus diletakkan pada mesin yang sama. Secara ringkas, umumnya serverdiletakkan pada satu sisi dalam LAN dan client pada sisi yang lain. 


Dalam konteks database,  client mengatur  interface berfungsi sebagai  workstation tempat menjalankan aplikasi  database.  Client menerima permintaan pemakai, memeriksa sintaks dan  generate kebutuhan  database  dalam  SQL  atau  bahasa  yang  lain.  Kemudian meneruskan pesan ke  server, menunggu  response dan bentuk  response untuk pemakai akhir.  Server menerima dan memproses permintaan database kemudian mengembalikan hasil ke client. Proses-proses  ini  melibatkan  pemeriksaan  autorisasi,  jaminan  integritas, pemeliharaan  data dictionary dan mengerjakan  query serta proses  update. Selain itu juga menyediakan kontrol terhadap concurrencydan recovery.

Adapun beberapa keuntungan jenis arsitektur ini adalah :

  • Memungkinkan akses databaseyang besar
  • Menaikkan performa
  • Jika clientdan serverdiletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel. Hal ini mempermudah merubah mesin server jika hanya memproses database.
  • Biaya untuk hardware dapat dikurangi
  • Hanya  server yang membutuhkan storage dan kekuatan proses yang cukup untuk menyimpan dan mengatur database
  • Biaya komunikasi berkurang
  • Aplikasi menyelesaikan bagian operasi pada  client dan mengirimkan hanya bagian yang dibutuhkan untuk akses  databasemelewati jaringan, menghasilkan data yang sedikit yang akan dikirim melewati jaringan
  • Meningkatkan kekonsistenan
  • Serverdapat menangani pemeriksaan integrity sehingga batasan perlu didefinisikan dan  validasi  hanya  di  satu  tempat,  aplikasi  program  mengerjakan  pemeriksaan sendiri
  • Map ke arsitektur open-system dengan sangat alami

Berikut ini adalah ringkasan fungsi client-server


Ada beberapa jenis model client – server arsitektur yaitu :

- Two Tier Arsitektur (Arsitektur 2 lapis)

Membagi proses load kedalam dua bagian. Aplikasi utama secara logika dijalankan/ berjalan pada sisi client yang biasanya mengirimkan  request dalam bentuk sintaks SQL kesebuah database server yang berfungsi sebagai media penyimpanan data. Kita bisa juga menyebutnya dengan arsitektur fat clientkarena bagian terbesar atau yang utama dari aplikasi berjalan pada sisi client/ komputer client.

- Three Tier Arsitektur (Arsitektur 3 lapis)

Membagi proses loading antara
  1.  komputer client menjalankan  graphical user interface (GUI) logic,
  2. aplikasi server menjalankan business logic, dan
  3. database dan/ atau legacy application. Karena 3-tier memindahkan application logic ke server sehingga sering juga disebut sebagai arsitektur fat server.


Kesimpulan

Basis data atau juga disebut database artinya berbasiskan pada data, tetapi secara konseptual, database diartikan sebuah koleksi atau kumpulan data-data yang saling berhubungan (relation), disusun menurut aturan tertentu secara logis, sehingga menghasilkan informasi. Untuk mengelola dan memanggil query basis data agar dapat disajikan dalam berbagai bentuk yang diinginkan dibutuhkan perangkat lunak yang disebut Sistem Manajemen Basis Data atau juga disebut Database Management System (DBMS). Penggabungan Database Management System (DBMS) dengan Basis Data akan membentuk satu kesatuan yang disebut Sistem Basis Data. 

Komponen dasar dalam pembuatan basis data dengan adanya data, hardware, software, dan user. Istilah- istilah dalam basis data juga seyogyanya kita tahu, yaitu: enterprise, entitas, atribut, nilai data, kunci elemen data, record data. Menurut ANSI/SPARC, arsitektur basis data terbagi atas tiga level yaitu: Internal/ Physical Level, External/View Level, Conceptual/Logical Level.

Tujuan utama dari arsitektur 3 level tersebut adalah untuk menyediakan data independence yang terbagi dua: Logical Data Independence (kebebasan data secara logika) dan Physical Data Independence (kebebasan data secara fisik). Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record. Bahasa query formal dan komersial adalah bahasa pada model data relasional, yang mana model data relasional merupakan salah satu dari model data berbasis record. Agar terciptanya basis data, maka butuh proses pembuatan.

Langkah-langkah yang dapat diambil dalam perancangan basis data sebagai berikut: mendefinisikan kebutuhan data, rancangan konseptual, rancangan implementasi, rancangan fisik, langkah perbaikan. Suatu teknik untuk mengorganisasikan data ke dalam tabel-tabel untuk memenuhi kebutuhan pemakai di dalam suatu ogranisasi disebut normalisasi. Tujuan normalisasi: untuk menghilang kerangkapan data, untuk mengurangi kompleksitas, untuk mempermudah pemodifikasian data. Sedangkan Tahapan normalisasi: bentuk tidak normal, bentuk normal pertama (1NF), bentuk normal kedua (2NF), bentuk normal ketiga (3NF), bentuk normal boyce-codd (BCNF), bentuk normal keempat (4NF), bentuk normal kelima.