Just another Telkom University Student Blog site

Category: Basis Data

Query Proccessing [Soal Latihan]

Soal Latihan

 

Employee (person_name, street, city)

Works (­person_name, company_name, salary)

Company (company_name, city)

Manages (person_name, manager_name)

 

I.Expression in the relational algebra to express each of the queries.

  1. Πperson_name (σperson_name = manager_name ᴧ employee.city = manages.person_name.city(employee manages))
  2. Пperson_name (σcompany_name ≠ “First Bank Corporation”(works))
  3. Пperson_name (σsalary > (σmax(salary) ᴧ company_name = “Small Bank Corporation(works))

 

II.Expression in the relational algebra to express each of the queries.

  1. Пperson_name, street, city (σmanager_name = “Jones” (employee x manages))
  2. Пcity (σmanager_name = “Jones” (employee x manages))
  3. Gmanages.manager_name = (Gmanages.person_name = “Jones”(manages))
  4. Пperson_name (σsalary > (σmax(salary) ᴧ city = “Mumbai” (employee works))

 

III.–

  1. Пperson_name (σcompany_name = “Small Bank Corporation”(works))
  2. Пperson_name, city (σcompany_name ≠ “First Bank Corporation”(employee works))
  3. Пperson_name, street, city (σcompany_name = “Small Bank Corporation” ᴧ salary > 45000 (employee works))
  4. Пperson_name (σemployee.city = company.city((employee works)company))
  5. Пcity (σcompany_name = “First Bank Corporation”(company))

 

IV. Query Evaluation Plan

Пperson_name (σcompany_name ≠ “First Bank Corporation”(works))

  • Пperson_name [sort the person name]
  • (σcompany_name ≠ “First Bank Corporation”(works)) [A4, Secondary Index, Equality on nonkey)

 

Пperson_name, city (σcompany_name ≠ “First Bank Corporation”(employee works))

  • Пperson_name, city [sort the person name and group with the city]
  • (σcompany_name ≠ “First Bank Corporation”(employee works)) [joining the employee and works table]

 

V. Example, R1 has 20000 tuples and R2 has 45000 tuples. 25 tuples of R1 fit on one block and 30 tuples of R2 fit on one block. Estimate the number of block transfer and seeks required using each of the following join strategies.

Nested Loop Join

From the example we can know that R1 has 20.000 records and 800 blocks. R2 has 45.000 records and 1.500 blocks.

Formula for R1 = nr1 * br2 + br1 blocks transfer and nr1 + br1 seeks

Formula for R2 = nr2 * br1 + br2 blocks transfer and nr2 + br2 seeks

R1 = 20.000 * 1.500 + 800 = 30.000.800 blocks transfer and 20.000 + 800 = 20.800 seeks.

R2 = 45.000 * 800 + 1.500 = 36.001.500 blocks transfer and 45.000 + 1.500 = 46.500 seeks.

 

Block Nested Loop Join

From the example we can know that R1 has 20.000 records and 800 blocks. R2 has 45.000 records and 1.500 blocks.

Formula for R1 = br1 * br2 + br1 blocks transfer and 2 * br1 seeks

Formula for R2 = br2 * br1 + br2 blocks transfer and 2 * br2 seeks

R1 = 800 * 1500 + 800 = 1.200.800 blocks transfer and 2 * 800 = 1.600 seeks.

R2 = 1500 * 800 + 1500 = 1.201.500 blocks transfer and 2 * 1500 = 3.000 seeks.

Cost Estimates for Selection Operation

  1. Algorithm A1 (Linear Search) – membaca setiap blok-blok file dan membaca setiap record untuk menentukan dimana hasil selection yang diminta sesuai kondisi.

Cara menghitung cost estimatenya yaitu,

Cost estimate = br block transfers + 1 seek; dimana br adalah jumlah blok yang terisi oleh record-record relasi r.

Tapi jika selection menurut kata kunci / primary key-nya, rumus cost menjadi,

Cost = (br/2) block transfers + 1 seek

Linear search ini bisa digunakan untuk kondisi seleksi, pengurutan record-record dalam suatu file dan indeks.

 

  1. A2 (Primary Index, equality on key) – hanya mengambil/membaca 1 record yang memenuhi dengan kondisi yang diinginkan. Rumus perhitungan costnya yaitu,

Cost = (hi + 1) * (tT + tS)

 

  1. A3 (Primary Index, equality on nonkey) – mengambil/membaca multiple record yang sesuai dengan kondisi. Rumus perhitungan costnya menjadi,

Cost = hi * (tT + tS) + tS + tT * b; dimana b adalah jumlah blok dengan data yang sesuai kondisi

 

  1. A4 (Secondary Index, equality on nonkey)mengambil/membaca 1 record yang sesuai kondisi, dimana search-keynya merupakan kunci kandidat. Perhitungan costnya menggunakan rumus:

Cost = (hi + 1) * (tT + tS)

 

Kondisi kedua adalah jika searck-keynya bukan merupakan kunci kandidat, perhitungan costnya, yaitu

each of n matching records may be on a different block

Cost =  (hi + n) * (tT + tS)  ; dimana data n yang sesuai dengan kondisi bisa berada dalam blok yang berbeda

 

  1. A5 (Primary Index, comparison)

sA ³ V(r)  digunakan untuk menemukan tuple pertama ³ v  dan memindai secara berurutan.

sA£V (r) digunakan untuk memindai tuple pertama > v dan tidak menggunakan indeks.

 

  1. A6 (Secondary Index, comparison).

Untuk sA ³ V(r)  menggunakan indeks untuk mencari entri pertama ³ v dan memindai secara berurutan mencari pointer

Untuk sA£V (r) hanya memindai pointer indeks hingga entri pertama > v

 

  1. A7 (Conjunctive Selection using One Index).

Pemilihan kombinasi qi dan algoritma A1 melalui A7 menghasilkan biaya untuk sqi (r).

  1. A8 (Conjunctive Selection using Composite Index).

Menggunakan multiple-key indeks yang tersedia.

  1. A9 (Conjunctive Selection by Intersection of Identifiers).

Menggunakan indeks yang sesuai untuk setiap kondisi dan mengambil irisan semua set yang didapat dari pointer.

  1. A10 (Disjunctive Selection by Union of Identifiers).

Berlaku jika semua kondisi memiliki indeks yang tersedia, untuk mencari setiap kondisi dan mengambil gabungan dari semua set yang diperoleh dari pointer.

File Organization in Database Management System

Dalam basis data terdapat beberapa tipe file organization, yaitu.

·       Heap File Organization

Pada sistem ini, saat memasukan record baru, record tersebut akan mengisi 1 blok baru memori. Record data ini diletakan pada alamat memori yang bersifat random. Tipe sistem ini tidak disarankan untuk digunakan pada basis data yang besar, karena saat ingin mencari data yang ada dalam basis data, akan di cek satu persatu mulai dari data pertama sampai data yang dicari ditemukan. Maka jika basis data tersebut bersifat besar, kemungkinan akan membuang-buang waktu.

 

·       Sequential File Organization

Pada sistem ini, kita dapat mengurutkan ataupun tidak mengurutkan data yang dimasukkan. Jika data tidak diurutkan, maka data akan diisi setelah data terakhir dimasukkan. Pada sistem pengurutan, record yang masuk pada blok memori tersebut dapat terurut (sequential) berdasar indeks ataupun kata kunci yang sudah diatur. Pada saat data dimasukkan, data akan melanjutkan data terakhir dalam file tersebut, kemudia di periksa dan diurutkan berdasar indeks.

 

·       Cluster File Organization

Sistem ini dibedakan pada cara mengambil atau melihat data yang ada dalam basis data. Sistem ini menggabungkan dua tabel untuk mendapat hasil yang sama. Metode ini mempercepat cara kerja mencari data karena penggabungan kata kunci pada tabel yang berbeda dapat mempercepat cara kerja pencarian data.

 

·       Hash File Organization

Metode hash dikenal juga dengan metode random. Karena, setiap data yang dimasukkan ditempatkan secara random pada blok-blok memori, tidak berurutan melainkan sesuai dengan alamat yang dihasilkan oleh formula hash. Pada sistem ini dikenal dengan adanya formula hash yang berfungsi untuk menghitung alamat-alamat blok-blok memori yang ditempatkan.

 

Perbedaan Setiap Jenis File Organization

  • Dari segi penyimpanan

Sequential menyimpan data berdasar data terakhir yang dimasukkan (terurut berdasar antrian inputan data atau berdasar indeks). Hal ini mirip dengan Heap, tapi dibedakan dengan pada heap, alamat dari memorinya bersifat random. Sistem hash menyimpan pada alamat memori yang dihasilkan melalui perhitungan formula hash. Dan sistem cluster menggabungkan tabel-tabel berdasar kata kuncinya.

 

  • Dari segi desain

Menurut sumber yang saya baca, model sistem sequential termasuk yang sederhana bersama dengan cluster. Hash termasuk sedang dan heap yang paling sederhana. Desain ini berdasarkan cara kerja dan segi pengoperasiannya.

  • Keuntungan
    • Sequential : termasuk sistem yang cepat dan efisien jika digunakan dalam basis data yang besar
    • Heap : cocok digunakan dalam penyimpanan dengan file kecil dan pemasukkan data secara bersamaan (massal/bulk)
    • Hash : cepat diakses dan tidak perlu di urutkan berdasar indeks, dan cocok digunakan untuk transaksi online (online shopping)
    • Cluster : sangat cocok digunakan dalam penggunaan tabel yang di-join-kan

 

  • Kerugian
    • Sequential : pengurutan data setiap kali menambah, menghapus atau menupdate data akan membutuhkan waktu dan mungkin membuat sistem menjadi sedikit melambat
    • Heap : memori penyimpanan bisa jadi lebih besar karena alamat atau catatan tersebar di memori
    • Hash : penggunaan memori yang tidak efisien atau boros dan mencari range dari data dan data parsial
    • Cluster : tidak cocok untuk basis data yang besar dan hanya cocok dalam pengelompokan data-data

Jadi dalam pemilihan tipe organisasi file pada basis data, terdapat beberapa aspek yang dilihat agar tipe pengorganisasian file tersebut sesuai dengan basis data yang kita buat sehingga dapat mengurangi kerugian-kerugian atau kekurangan yang mungkin terjadi.

 

disusun oleh.

I Putu Indra Aristya – 1301154219 – IF3909 – Telkom University, Bandung

References.

https://www.tutorialcup.com/dbms/file-organization.htm

Silberschatz, Korth, and Sudarshan. 2010. Database System Concepts – Sixth Edition. McGraw-Hill.

Sistem Basis Data

 I.             Pengertian Basis Data

Basis data atau yang dalam bahasa inggris ditranslate menjadi database menurut Wikipedia adalah sekumpulan informasi yang tersimpan di dalam komputer secara sistematis sehingga dapat dilihat, ditambah, diganti ataupun dikurangi dengan suatu program komputer untuk memperoleh informasi yang ada di basis data tersebut. Sebelum basis data dibuat untuk menyimpan beberapa informasi, tentu adanya tahap-tahap yang dilakukan untuk membuat informasi yang tersimpan menjadi terstruktur dan sistematis. Tahap-tahap tersebut seperti,

  • Merancang/menyusun rencana dan tujuan pengembangan basis data
  • Identifikasi kebutuhan/penggunaan dari basis data
  • Mengumpulkan dan membuat komponen yang akan berisi informasi-informasi
  • Mendesain basis data sesuai kebutuhan

Basis data dibuat dengan tujuan untuk meningkatkan efisiensi penyimpanan informasi, informasi yang tersimpan menjadi terstruktur dan dipilah berdasar fungsi dan jenisnya dan menjaga konsistensi data.

 

Contoh penggambaran penyimpanan pada satu database oleh beberapa komputer.

Contoh penggambaran penyimpanan pada satu database oleh beberapa komputer.

II.               Desain Basis Data

Sebelum membuat basis data yang akan diisi dengan beberapa informasi sesuai dengan kebutuhan, kita harus memodelkan terlebih dahulu seperti apa basis data yang akan kita buat. Dalam memodelkan basis data tersebut saya menggunakan ER Diagram, yaitu membuat tabel-tabel yang menjadi komponen utama berisi dengan komponen isi. Tabel-tabel berisi field untuk menyimpan data yang akan diisi dan setiap tabel tersebut bisa saling berhubungan. Contohnya pemodelan basis data perbankan, terdapat tabel data nasabah dan transaksi. Setiap transaksi yang dilakukan akan masuk di tabel transaksi, dan informasi tentang nasabahnya akan dicari di tabel nasabah. Transaksi yang dilakukan adalah penarikan tunai, maka pada tabel transaksi akan tercatat transaksi penarikan yang dilakukan dan pada tabel nasabah jumlah uang yang disimpan akan langsung dikurangi. Itu yang dikatakan tabel yang berhubungan.

 

III.           Penggunaan Basis Data

Penggunaan basis data harus disesuaikan dengan kebutuhannya. Pada saat memodelkan basis data (biasanya membuat ER Diagram) akan terlihat apa saja komponen dari basis data yang akan dibuat dan saling berhubungan atau tidak dengan komponen-komponen yang lain. Basis data sudah banyak digunakan dalam kehidupan manusia sehari-hari, seperti di rumah sakit menggunakan system basis data untuk menyimpan informasi-informasi pasien. Di bidang perbankan menggunakan system basis data untuk menyimpan dan mengolah setiap transaksi yang pasti berhubungan dengan setiap komponennya.

 

IV.           Komponen Basis Data

Komponen utama dari basis data adalah, terdapat hardware (komputer/PC/Laptop), software (berupa Database Management System), data (data/informasi yang akan disimpan atau diolah) dan pengguna. Pengguna dalam basis data dibagi menjadi 4 jenis, yaitu:

  1. Database Manager, yaitu program yang dapat menampilkan dan menerima perintah seputar basis data yang tersimpan
  2. Database Administrator (DBA), yaitu seseorang yang bertanggung jawab untuk mendesain, merawat dan memperbaiki basis data yang ada
  3. Database User, dibagi menjadi 4 jenis yaitu:
  4. Aplikasi Programer adalah pengembang aplikasi yang dibuat untuk memproses basis data
  5. Casual User adalah pengguna yang menggunakan query yang disediakan oleh DBMS
  6. Specialized User adalah pengguna yang menulis program yang kompleks untuk kebutuhan tertentu
  7. Native User adalah pengguna yang menggunakan aplikasi untuk berinteraksi dengan basis data

 

V.               Database Management System

Database Management System atau yang disingkat menjadi DBMS adalah aplikasi yang dapat membuat basis data agar informasi berupa data menjadi terstruktur. DBMS menghubungkan pengguna dengan basis data sehingga dapat memasukkan atau memproses informasi yang ada di dalam basis data. Terdapat 2 intruksi yang dikenali oleh DBMS, yaitu DDL dan DML. DDL adalah Data Definition Language yang berisi instruksi-instruksi untuk membuat pemodelan atau desain dari basis data (seperti membuat tabel, menghapus tabel, membuat relasi antar tabel). Instruksi kedua yaitu DML. DML adalah Data Manipulation Language yang berisi instruksi-instruksi untuk menambah, mengurangi, mengganti informasi-informasi ke dalam atau dari tabel yang dibuat dengan DDL.

DBMS terdiri atas File Manager selaku pengelola struktur data yang tersimpan di dalam disk, Database Manager sebagai aplikasi yang menghubungkan pengguna dengan basis data, Query Processor sebagai penerjemah perintah query yang dilakukan pengguna, dan DDL & DML Compiler sebagai penerjemah atau menkompiler instruksi DDL & DML yang dapat dipahami oleh aplikasi basis data.

 

VI.           Arsitektur Sistem Basis Data

Terdapat 5 jenis sistem yang saya ketahui menurut beberapa sumber, yaitu:

  • Centralized System (Sistem Terpusat)

Sistem terpusat diartikan sistem pada satu komputer tunggal yang tidak terhubung atau berinteraksi dengan komputer yang lainnya. Dapat dikatakan juga, sistem terpusat menyimpan data atau informasi di komputer server (utama) saja.

  • Client-Server System

Sistem client-server ini maksudnya terdapat satu komputer utama yang menjadi server/pusat dari komputer-komputer yang terhubung atau dinamakan dengan client. Sistem ini menyimpan informasi di komputer server yang dapat diakses oleh komputer client.

  • Parallel System

Sistem ini terdiri atas beberapa komputer yang saling terhubung. Sistem ini menurut yang dapat saya mengerti adalah sistem dengan cara kerja kolaborasi. Komputer dapat membagi memori atau disk dengan komputer lain. Sistem ini juga dapat mengatur untuk setiap komputer memiliki atau bergantung pada memori atau disknya sendiri atau biasa disebut dengan shared nothing.

  • Distributed System

Sistem ini menghubungkan beberapa komputer dengan jaringan dan membagi informasi-informasi yang tersimpan ke komputer yang ada melalui jaringan tersebut.

  • Networks Type

Seperti yang sudah diketahui sebagian banyak orang, networks dapat dibagi berdasar cakupan jaringan yang terhubung. Yang pertama terdapat LAN (Local Area Network) yaitu menghubungkan komputer-komputer pada suatu area kecil seperti, kumpulan komputer di laboratorium praktikum Fakultas Informatika Universitas Telkom. Dan ada juga WAN (Wide Area Network), yaitu hubungan komputer-komputer yang lebih luas (biasanya berdasar geografis) seperti jaringan komputer di Kota Bandung.

WAN sangat berguna untuk implementasi Sistem Terdistribusi. Penggunaan WAN dapat mereplika informasi, salinan informasi dapat dibagi ke komputer yang terhubung dan informasi juga dapat diperbarui.

 

I Putu Indra Aristya – 1301154219 – IF39-09

References

Silberschatz, Korth, and Sudarshan. (2010). Database System Concept – Sixth Edition. Mc-Graw Hill Education.

Database User. (n.d.). Retrieved from Tutorial Cup: https://www.tutorialcup.com/dbms/database-users-administrators.htm (diakses tanggal 18 Januari 2017)

Pengertian dan Fungsi DBMS. (n.d.). Retrieved from Teori Komputer: http://www.teorikomputer.com/2015/10/pengertian-dan-fungsi-dbms-database.html (diakses tanggal 17 Januari 2017)

Wikipedia. (n.d.). Pangkalan Data. Retrieved from Wikipedia: https://id.wikipedia.org/wiki/Pangkalan_data (diakses tanggal 17 Januari 2017)

 

I Putu Indra Aristya – 1301154219 – IF39-09

© 2024 indraaristya's blog

Theme by Anders NorenUp ↑