Monday 10 August 2015

SI-202 LINGKUNGAN BASIS DATA – 2



2.4 Data Dictionary
       Data dictionary adalah tempat penyimpanan informasi yang menggambarkan data dalam
                database. Data dictionary biasa disebut juga       dengan metadata atau data mengenai data.
       Modul pengontrol autorisasi menggunakan data dictionary untuk memeriksa apakah seorang pemakai perlu mempunyai wewenang.

Untuk mengerjakan pemeriksaan tersebut data dictionary menyimpan :
       • nama-nama pemakai yang mempunyai wewenang untuk menggunakan DBMS
       • nama-nama data item yang ada dalam database
       data item yang dapat diakses oleh pemakai dan jenis akses yang diijinkan,
misalnya: insert, update, delete atau read
       Sedangkan untuk memeriksa integritas data, data dictionary menyimpan :
       • nama-nama data item dalam database
       • jenis dan ukuran data item
       • batasan untuk masing-masing data item

Sistem data dictionary dapat dibedakan atas sistem aktif dan pasif.
       Sistem aktif selalu konsisten dengan struktur database karena secara otomatis dikerjakan oleh sistem.
       Sebaliknya, sistem pasif tidak konsisten terhadap perubahan database yang dilakukan oleh pemakai.

2.5 Model Data
       Model merupakan media penyimpan dari sebuah perancangan, seorang perancang sistem akan mengembangkan suatu model untuk mewujudkan ide yang ada serta untuk mempelajari semua aspek dalam sebuah perancangan basis data.
       Model bisa dipergunakan untuk mengkomunikasikan konsep dalam pikiran manusia sehingga orang lain bisa: berkomunikasi, mengategorikan, menerangkan, menentukan, menyelidiki, melibatkan, menganalisa dan meniru
               
       Model data adalah kumpulan konsep yang terintegrasi yang menggambarkan data, hubungan antara data dan batasan-batasan data dalam 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.





       Untuk menggambarkan data pada tingkat eksternal dan konseptual digunakan model data berbasis objek atau model data berbasis record.

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 (Relational)
                b. Model data hierarkhi (Hierarchy)
                c. Model data jaringan (Network)

Model Relasional
       Suatu database yang di dalamnya terdapat tabel-tabel yang saling berelasi satu sama lain (relationship), ada 3 macam relationship yaitu:
                - Relasi 1 ke-1 (relasi satu ke satu) atau one to one
                - Relasi 1 ke-n atau n ke-1 (relasi satu ke banyak atau
                  banyak ke satu) atau one to many
                - Relasi n ke-m (relasi banyak ke banyak) atau many to    
                  many
       Dihubungakan oleh sebuah key yaitu  kunci utama (primary key) dan kunci tamu (foreign key)

Kunci(key)
       Kunci merupakan elemen record yang dipakai untuk menemukan record tersebut pada waktu akses atau bisa digunakan untuk identifikasi tiap record.
      Primary key :Suatu atribut dimana nilai unik digunakan untuk mengidentifikasi setiap baris di dalam tabel, kunci utama yang baik memiliki karakteristik sbb:
       Mandatory; bahwa dia harus menyimpan nilai not-null, jika kolom kiri kosong maka duplikasi baris bisa terjadi
       Unique; bisa mengidentifikasi setiap isi atribut
       Stable; tidak mungkin berubah
       Short; memiliki sedikit karakter, kolom yang lebih kecil menyebabkan ruang penyimpanan menjadi lebih sedikit, pencarian basis data akan lebih cepat.
      Foreign key : merupakan sembarang atribut yang menunjuk kepada primary key pada tabel lain.
      Jika nilai kunci asing tidak nul, maka nilai kunci utama pada tabel yang saling diacu harus ada
       Akan terjadi pada suatu relasi yang memiliki kardinalitas one to many atau many to many


Model Hierarchy

       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).


Model Network

       Model data jaringan dikenal sebagai STRUKTUR PLEX. Pada dasarnya struktur jaringan
                ini merupakan perluasan dari struktur hirarki.
       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 suatu edge.
       Ada dua struktur data pada basis 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 (conference on Data System and Language) atau DBTG (Data Base Task Goup / Gugus Tugas Basis Data)
       IDMS yang dikemukakan oleh DBTG terdiri atas 3 bahasa basis data yaitu skema DDL, sub skema DDL dan DML.





2.6 Arsitektur DBMS Multi User
a. Arsitektur Mainframe/Teleprocessing


       Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan.
       Melalui komputer terminal, pengguna mengakses sumber daya tersebut. Komputer terminal hanya memiliki monitor/keyboard dan tidak memiliki CPU.
       Semua sumber daya yang diperlukan terminal dilayani oleh komputer host.
       Model ini berkembang pada akhir tahun 1980-an.
       contoh : ATM mesin di bank-bank.


Gambar 7. Arsitektur Teleprocessing


b. Arsitektur File Sharing / File-Server
       Proses didistribusikan ke dalam jaringan sejenis LAN (Local Area Network).
       File server mengendalikan file yang diperlukan oleh aplikasi dan DBMS.
       Aplikasi dan DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan.
       Dengan cara ini, file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan.
       Kerugian arsitektur file-server adalah :
                - Terdapat lalulintas jaringan yang besar
                - Masing-masing workstation membutuhkan copy DBMS
                - Kontrol terhadap concurrency, recovery dan integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan




Gambar 8. Arsitektur File Server





c. Arsitektur Client-Server
       Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan arsitektur client-server.
       Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server.
       Dikenalkan pula RDBMS (Relational Database Management System). Dengan arsitektur ini, query data ke server dapat terlayani dengan lebih cepat karena yang ditransfer bukanlah file, tetapi hanyalah hasil dari query tersebut. RPC (Remote Procedure Calls) memegang peranan penting pada arsitektur client/server.
       Secara ringkas, umumnya server diletakkan pada satu sisi dalam LAN dan client pada sisi yang lain.




Gambar 9. Arsitektur Client Server

       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 concurrency dan recovery.


       Memungkinkan akses database yang besar,  Menaikkan performa
       Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU yang berbeda dapat memproses aplikasi secara paralel.
       Mengurangi biaya untuk hardware
       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 database melalui jaringan
       Meningkatkan kekonsistenan
       Server dapat 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


 keuntungan jenis arsitektur ini adalah :






SI-202 LINGKUNGAN BASIS DATA – 1


  Tujuan utama dari sistem database adalah menyediakan pemakai melalui suatu pandangan abstrak mengenai data, dengan menyembunyikan detail dari bagaimana data disimpan dan dimanipulasikan.
  Oleh karena itu, titik awal untuk perancangan sebuah database haruslah abstrak dan merupakan deskripsi umum dari kebutuhan-kebutuhan informasi dari suatu organisasi harus digambarkan di dalam database.


Tiga Tingkatan Arsitektur Database (ANSI/SPARC)
1. Tingkat eksternal (external level)
                Tingkat eksternal merupakan cara pandang pemakai terhadap basis data. Pada tingkat ini menggambarkan bagian basis data yang relevan bagi seorang pemakai tertentu. Tingkat eksternal terdiri dari sejumlah cara pandang yang berbeda dari sebuah basis data. 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, mata kuliah dll
2. Tingkat konseptual (conceptual level)
                Tingkat konseptual merupakan kumpulan cara pandang terhadap basis data. Pada tingkat ini menggambarkan data yang disimpan dalam basis data dan hubungan antara datanya. Hal-hal yang digambarkan dalam tingkat konseptual adalah:
  •  semua entitas beserta atribut dan hubungannya
  •  batasan data
  •  informasi semantic 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 inimenggambarkan bagaimana database disimpan 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 (dengan ukuran penyimpanan untuk dataelemen
Contoh : organisasi file secaa sequential, raltive atau index sequential
                - penempatan record
                - pemampatan data dan teknik encryption



Gambar  Contoh penggambaran tingkatan arsitektur database


2.2 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 schema dapat 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 schema dapat diubah oleh DBA tanpa menggangu external schema.
                Dengan kata lain logical data independence menunjukkan 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 sbb :
1. DBA dapat mengubah isi, lokasi, perwujutan dalam organisasi basis data tanpa mengganggu program-program aplikasi yang sudah ada.
2. Pabrik/agen peralatan/software pengolahan 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.



 2.3 Konsep DBMS

Sistem manajemen basisdata atau DBMS (database management System) adalah perangkat lunak untuk mendefinisikan, menciptakan, mengelola, dan mengendalikan pengaksesan basisdata.
Fungsi sistem manajemen basisdata yang paling penting adalah menyediakan basis untuk sistem informasi manajemen
       DBMS mengatur permintaan dan penyimpanan data ke dan dari disk. DBMS menyediakan keamanan (security), privacy (privacy), integritas (integrity), dan kontrol konkurensi (concurrency controls)
       Contoh produk DBMS
                - Microsoft  Access
                - Oracle
                - Microsoft SQL Server
                - Sybase
                - DB2
                - INGRES
                - MySQL




  1. Data definition, penjelasan struktur data baru untuk suatu basis data, pemindahan struktur data dari basis data, serta pemodifikasian struktur dari data yang ada
  2. Data maintenance, memasukan data baru ke dalam struktur data yang ada, memperbarui data di dalam struktur data yang ada, dan menghapus data dari struktur data yang ada
  3. Data retrieval, peng-query-an data yang ada oleh pengguna akhir dan pengekstrakan data sebagai penggunaan oleh program aplikasi
  4. Data control, menciptakan dan mengawasi pengguna basis data, pembatasan akses untuk data di dalam basis data, dan pengawasan kinerja basis data


Layanan - layanan yang sebaiknya disediakan oleh database management system adalah :
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-updatesecara 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 database tersebut.
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
                Sebuah DBMS bertujuan untuk menjamin semua data dalam database dan setiap terjadi perubahan data harus sesuai dengan aturan yang berlaku.
9. Melayani data independence
                Sebuah DBMS harus mencakup fasilitas untuk mendukung kemandirian program daristruktur database yang sesungguhnya.
10. Melayani utility
                Sebuah DBMS sebaiknya menyediakan kumpulan layanan utility.

       DBMS merupakan perantara antara user dengan basis data yang tersimpan dalam disk. Cara berkomunikasi keduanya diatur dalam suatu bahasa khusus yang ditetapkan oleh perusahaan pembuat DBMS. Bahasa itu disebut Bahasa Basis Data. Contoh; SQL, dBase, QUEL.
       Dalam database secara umum dikenal 2 data sub language :

1. Data Definition Language (DDL)
Bahasa yang digunakan dalam mendefinisikan struktur atau kerangka dari database, didalamnya 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 :
1. Procedural DML
                Digunakan untuk mendefinisikan data yang diolah dan perintah yang akan dilaksanakan.
2. 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 database tersimpan.
Proses 1 s/d 4 dapat dilakukan secara interactive atau dicompile dulu.

KOMPONEN DBMS
Komponen Lingkungan DBMS
       Data
       terintegrasi (integrated)
       dapat dipakai bersama-sama (shared)
       Perangkat keras (hardware)
       Perangkat Lunak (software)
       Brainware
       Prosedur




  1. Definisi skema dan statement modifikasi ditulis di dalam DDL (data definition language) yang  di-compile dalam pemyimpan diskripsi pada kamus data (data dictionary). Kamus data diatur dengan cara yang sama seperti data yang lain sehingga permintaan untuk modifikasi skema diterjemahkan ke dalam update basis data (dengan kata lain kamus data)
  2. Statement DML (data manipulation language) di dalam program aplikasi diterjemahkan ke dalam kode objek (cara melakukanya tergantung pada jenis dari aplication programming interface (API). Pada waktu pelaksanaan, kode objek akan menghasilkan suatu panggilan untuk Runtime Database Processor
  3. Query Interaktif (ad hoc) harus diterjemahkan dan dioptimisasi untuk permorma yang cepat. Tugas ini adalah tugas dari Query Processor. Optimisasi di dalam basis data sangat penting, hasilnya adalah suatu query plan yang saat dieksekusi mengakibatkan panggilan padaRuntime Database Processor
  4. Run-time Database Processor menerima permintaan atau meng-update operasi dan melewatkan urutan tersebut sebagai permintaan terhadap storage manager dimana transaction manager harus saling berhubungan dengan runtime database processor untuk mengendalikan konkurensi (transaction manager memonitor apa yang membaca data dan mengupdate runtime processor adalah permintaan dan kekuatan transaksi untuk menunggu jika terdapat dua konflik transaksi dalam permintaan mereka
  5. Transaction Manager juga saling berhubungan dengan storage manager karena biasanya manager tersebut memelihara logs pembuatan, perubahan basis data dengan tujuan kontrol integritas, backup, dan recovery
  6. Storage Manager meliputi file manager dan buffer manager. Saat menerima suatu permintaan dari runtime processor untuk halaman tertentu, harus memastikan apakah halaman yang diminta sudah berada dalam memori buffer. Jika berupa pesan, maka pesan tsb bisa dikirim ke halaman yg terisi dalam memori. Jika bukan, maka halaman diminta dari file manager.
  1. Buffer Manager menangani memori utama.
       Buffer manager menerima blok-blok (atau halaman) data dari file manager,
       mengalokasikannya pada buffer di dalam memori utama, dan memutuskan halaman yang mana yang kembali ke disk saat memory buffers penuh.
       Buffer manager memelihara tabel terjemahan yang memetakan alamat basis data pada memori

Data dictionary
       Data  dictionary / directory (DD) menyimpan definisi- definisi semua item data di basisdata
       Kamus data ini berisi definisi item-item data elementer (field), kelompok, struktur data level rekord, file-file dan tabel-tabel relasional.
       Kamus data mengelola informasi, termasuk informasi hubungan antar struktur data.
       Serta mengelola indeks untuk mengakses data secara cepat
       Informasi dalam kamus data disebut metadata yaitu “data mengenai data”
                           




Utiliti – Utiliti DBMS

       Loading
                Memasukkan suatu file data ke dalam database
       Backup
                Membuat salinan database yang dapat digunakan untuk menempatkan database pada saat terjadi kegagalan
       File Reorganization
                Mereorganisasikan file databse ke jenis database lain untuk meningkatkan performasi
       Report Generation
                Membuat format laporan-laporan dengan mengontrol spasi, header, footer, total, summary dsb.
       Performance Monitoring
                Memonitor penggunaan database dan menyediakan statistic untuk DBA