Company Relational Database for Exicese

employee (person_name, street, city)
works(person_name, company_name, salary)
company(company_name, city)
manages(person_name, manager_name)

1.Consider the Company Relational Database, where the primary keys are underlined. Give an expression in the relational algebra to express each the following queries:
•Find the names of all employees who live in the same city and on the same street as do their manager
•Find the names of all employees in this database who do not work for “First Bank Corporation”
•Find the names of all employees who earn more than every employee of “Small Bank Corporation”

2.Consider the Company Relational Database, where the primary keys are underlined. Give an expression in the relational algebra to express each the following queries:
•Find all employees who work directly for “Jones.”
•Find all cities of residence of all employees who work directly for “Jones.”
•Find the name of the manager of the manager of “Jones.”
•Find the employees who earn more than all employees living in the city “Mumbai.”

3.
•Find the names of all employees who work for “Small Bank Corporation”.
•Find the names and cities of residence of all employees who work for “Small Bank Corporation”.
•Find the names, street addresses, and cities of residence of all employees who work for “Small Bank Corporation” and earn more than $5,000.
•Find the names of all employees in this database who live in the same city as the company for which they work.
•Assume the companies maybe located several cities. Find all companies located in every city in which “First Bank Corporation” is located

4.Choose 2 relational algebra (RA) expressions (from the answer of previous exercise). For each RA, create a Query Evaluation Plan (QEP) by selecting the appropriate algorithm.

5.Let relations r1(A,B,C) and r2(C,D,E) have the following properties :
r1 has 20,000 tuples, r2 has 45,000 tuples, 25 tuples of r1 fit on one block, and 30 tuples of r2 fit on one block.
Estimate the number of block transfers and seeks require, using each of the following join strategies for r1 |x| r2:
•Nested-loop join.
•Block nested-loop join

Jawab

1) a.Πperson_name (σcity,street = manager (works))
b.Πperson_name (σcompany_name ≠ ‘First Bank Corporation’(works))
c.Πperson_name (σ salary >‘ Small Bank Corporation ‘(works))

2) a.Πperson_name, street, city (σemployee.person_name = manager.person_name ^ manager_name = ‘Jones’ (employee x manages))
b.Πcity (σemployee.person_name = manager.person_name ^ manager_name = ‘Jones’(employee x manages))
c.Π manager.person_name ∩ Π manager.person_name = ‘jones’(employee x manages))
d.Πperson_name (σ salary > employee.person_name^Mumbai (employee x manages))

3) a.Πperson_name (σcompany_name = ‘Small Bank Corporation’ (works |x| employee))
b.Πperson_name, city (σcompany_name = ‘Small Bank Corporation’ (works |x| employee))
c. Πperson_name, street, city (σcompany_name = ‘Small Bank Corporation’ ^ salary > 5000(works |x| employee))
d. Πperson_name (σemployee.city = company.city((employee|x|works)|x|company))

Sorting , Join dan Selection

Sorting merupakan suatu proses untuk menyusun kembali humpunan obyek menggunakan aturan tertentu. Sorting disebut juga sebagai suatu algoritma untuk meletakkan kumpulan elemen data kedalam urutan tertentu berdasarkan satu atau beberapa kunci dalam tiap-tiap elemen. Pada dasarnya ada dua macam urutan yang biasa digunakan dalam suatu proses sorting:
1. Urut naik (ascending)
Mengurutkan dari data yang mempunyai nilai paling kecil sampai paling besar

2. Urut turun (descending)
Mengurutkan dari data yang mempunyai nilai paling besar sampai paling kecil.

Mengapa harus melakukan sorting data? Ada banyak alasan dan keuntungan dengan mengurutkan data. Data yang terurut mudah untuk dicari, mudah untuk diperiksa, dan mudah untuk dibetulkan jika terdapat kesalahan. Data yang terurut dengan baik juga mudah untuk dihapus jika sewaktu-waktu data tersebut tidak diperlukan lagi. Selain itu, dengan mengurutkan data maka kita semakin mudah untuk menyisipkan data atapun melakukan penggabungan data.
Metode-metode sorting meliputi:

1. Insertion Sort (Metode Penyisipan)
2. Selection Sort (Metode Seleksi)
3. Bubble sort(Metode Gelembung)
4. Shell Sort (Metode Shell)
5. Quick Sort (Metode Quick)
6. Merge Sort (Metode Penggabungan)

JOIN
Algoritma query melakukan join ada beberapa algoritma yang sering digunakan yaitu Algoritma Hash Join, Algoritma Nested Join. Masing-masing algoritma memilik kegunaan yang sama dalam menggabungkan beberapa tabel atau relasi tabel pada database manajemen sistem.
Proses Join Query dalam pencarian data di database adalah salah satu sangat penting dan sulit untuk membuatnya, proses pencarian data menggunakan join query mempunyai banyak metode-metode atau algoritma yang digunakan dan memiliki formula query yang berbeda menghasilkan Output yang sama

Algoritma Join Query yang banyak digunakan dikalangan user adalah Algoritma Nested Join dan Hash Join, kedua algoritma tersebut memiliki keunggulan dan kelemahan sehingga perlu diteliti bagaimana kerja/performance algoritma ini dalam pencarian data atau pengaksesan data dari segi kecepatan waktunya untuk merespon data.

Algoritma Hash Join adalah sebuah algoritma join untuk menggabungkan data yang berjumlah besar. Cara kerja Hash Joins adalah Optimizer membuat sebuah Hash Table berdasarkan predikat Join. Setiap tabel di Inner maupun Outer masing-masing dijadikan sebuah kode dengan Hash Function kemudian setiap kode Hash dari Inner akan dibandingkan dengan Hash Kode dari Outer. Apabila kode hash dari Inner dan Outer sama maka akan dilakukan proses pengecekan nilai dari kolom yang pada akhirnya akan dimasukkan ke dalam hasil jika nilai kolomnya sama.

Algoritma Nested Join adalah sebuah Join yang efektif jika subset yang digabungkan berjumlah sedikit dan jika kondisi dalam perintah join efisien untuk menggabungkan 2(dua) tabel tersebut.

Aljabar Relasional
aljabar relasional merupakan kumpulan operasi terhadap relasi dimana setiap operasi menggunakan satu atau lebih relasi untuk menghasilkan satu relasi yang baru dan termasuk kategori prosedural dan juga menyediakan seperangkat operator untuk memanipulasi data.
Operasi Dalam Aljabar Relasional
Operasi-operasi dasar dalam aljabar relasional adalah sebagai berikut :
1.Operasi selection Operasi select berfungsi untuk menyeleksi tuple-tuple yang memenuhi predikat yang diberikan dari sebuah tabel relasi. Operasi select menyeleksi tuple-tuple yang memenuhi predikat yang diberikan. Digunakan symbol sigma untuk menunjukkan operasi select. Predikat muncul sebagai subcript dari . Argumen relasi diberikan dalam kurung yang mengikuti .
2.Operasi projection (π) Operasi project berfungsi untuk memilih nilai atribut-atribut tertentu saja dari sebuah tabel relasi. Operasi project disimbolkan dengan symbol phi (π). Nama-nama atribut yang diinginkan tampil ditulis sebagai subcript π.
3.Operasi cartesian (x) Operasi cartesian product berfungsi untuk mengkombinasikan informasi yang ada dalam

Selection(σ) adalah operasi untuk menyeleksi tuperl-tupel yang memenuhi suatu predikat , kita dapet menggunakan operator perbandingan pada predikat.
Beberapa predikat dapat di kombinasikan menjadi predikat manjemuk menggunakan penghubung AND (^) dan OR(V)

Daftar Pustaka:
http://sisinform-aaf1231072.blogspot.co.id/2013/02/pengertian-sorting.html
http://repository.usu.ac.id/bitstream/123456789/46315/4/Chapter%20I.pdf
http://ilearning.me/2015/07/05/perancangan-basis-data/

Perbedaan Heap , Hash , Sequential dan Cluster dan juga File untuk DBMS

Heap
o Merupakan struktur penyimpanan yang paling sederhana dan paling hemat dalam kebutuhan ruang penyimpanan
o Setiap baris data disusun berdasar kronologis penyimpanannya. Record yang pertama disimpan akan ditempatkan di posisi awal ruang penyimpanan, dan begitu seterusnya
o Pengubahan data tidak akan mengubah urutan record tersebut. Jika terjadi penghapusan, maka record-record dibawahnya akan dimampatkan untuk mengisi tempat yang kosong akibat penghapusan
o Pencarian data berjalan dengan lambat, karena dilakukan secara sekuensial baris demi baris
o Struktur ini cocok untuk tabel berukuran kecil dan jarang berubah

Hash
o Baris-baris data ditempatkan berdasar nilai alamat fisik yang diperoleh dari hasil perhitungan (fungsi hashing) terhadap nilai key-nya. Karena itu penempatan record dalam tabel tidak tersusun berdasarkan kedatangannya. Bisa jadi record yang terakhir dimasukkan justru menempati urutan pertama
o Memiliki performansi yang paling baik dalam hal pencarian data tunggal berdasar kunci indeks
o Struktur ini cocok untuk tabel-tabel yang sering menjadi acuan bagi tabel lain
o Kelemahannya membutuhkan ruang penyimpanan awal yang besar, untuk menjamin agar record-record yang disimpan tidak menempati alamat yang sama  dibutuhkan alokasi ruang penyimpanan

Clustering
adalah proses mengelompokkan objek berdasarkan informasi yang diperoleh dari data yang menjelaskan hubungan antar objek dengan prinsip untuk memaksimalkan kesamaan antar anggota satu kelas dan meminimumkan kesamaan antar kelas/cluster. Tujuannya menemukan cluster yang berkualitas dalam waktu yang layak.

Sequential
Akses file (access file) adalah suatu metode yang menunjukkan bagaimana
suatu program komputer akan membaca record-record dari suatu file.
File dapat diakses dengan dua cara yaitu secara urut (sequential access)
atau secara langsung (direct access atau random access). Metode akses urut
(sequential access method) dilakukan dengan membaca atau menulis suatu
record di file dengan membaca terlebih dahulu mulai dari record pertama,
urut sampai dengan record yang diinginkan. Metode akses langsung (direct
access method) dilakukan dengan cara langung membaca record pada posisinya
di file tanpa membaca dari record pertama terlebih dahulu.
Organisasi file adalah pengaturan dari record secara logika didalam file
dihubungkan satu dengan yang lainnya. File dapat diorganisasikan secara
urut (sequential organization) atau secara acak (random organization).
Walaupun organisasi file dan pengaksesan file dapat dipandang secara
terpisah, tetapi biasanya pembahasan mengenai organisasi file menyangkut
keduanya, yaitu sebagai berikut :
a. File urut (sequential file) merupakan file dengan organisasi urut
(sequential organization) dengan pengaksesan secara urut (sequential
access).
b. File urut berindeks (indexed sequential file) atau sering disebut dengan
ISAM (indexed sequential access method) merupakan file dengan organisasi
urut (sequential organization) dengan pengaksesan secara langsung
(direct access).
c. File akses langsung (direct access file) atau disebut dengan file alamat
langsung (direct address file) merupakan file dengan organisasi acak
(random organization) dengan pengaksesan langsung (direct access).

File untuk DBMS menggunakan:
 MySQL karena mudah download secara gratis , mendukung transaksi dan perkembangan yang cepat
 Oracle karena mendukung akses data secara cepat dan performance yang sangat baik

Daftar Pustaka:
http://mentari-ilmu.blogspot.co.id/p/basis-data.html
http://xerma.blogspot.co.id/2015/01/pengertian-dan-fungsi-cluster-database.html
http://kuliah.dinus.ac.id/ika/prc4.html

Arsitektur Basis Data

Pengertian Basis Data
Banyak sekali definisi tentang basis data yang diberikan oleh para pakar di bidang ini. Basis data atau juga disebut database, terdiri dari dua penggalan kata yaitu data dan base, yang 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. Selain itu, 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. Sistem Basis Data adalah suatu sistem penyusunan dan pengelolaan record-record dengan menggunakan komputer, dengan tujuan untuk menyimpan atau merekam serta memelihara data operasional lengkap sebuah organisasi/perusahaan sehingga mampu menyediakan informasi yang diperlukan pemakai untuk kepentingan proses pengambilan keputusan.

Komponen Dasar Basis Data
Dalam membuat basis data harus memiliki komponen dasar. Agar terciptanya basis data maka hal yang diperhatikan adalah tersedianya:
a. Data: representasi fakta dunia nyata yang mewakili suatu objek yang direkam dalam bentuk angka, huruf, symbol, teks, gambar, bunyi atau kombinasinya.
b. Hardware: terdiri dari semua peralatan perangkat keras komputer yang digunakan untuk mengelola sistem basis data berupa: peralatan penyimpanan (disk, drum, tape), peralatan input dan output, atau peralatan komunikasi.
c. Software: sebagai perantara antara pemakai dengan data fisik pada basis data, dapat berupa: Database Management System (DBMS) atau program- program aplikasi dan prosedur-prosedur.
d. User :Sebutan bagi para pengguna basis data. Terdapat bermacam-macam tingkatan pengguna basis data, yaitu specialised user, naïve user, casual user, dan application programmer.

1. System Engineer: tenaga ahli yang bertanggung jawab atas pemasangan sistem basis data, dan juga mengadakan peningkatan dan melaporkan kesalahan dari sistem tersebut kepada pihak penjual.
2. Administrator Basis Data: tenaga ahli yang mempunyai tugas untuk mengontrol sistem basis data secara keseluruhan, meramalkan kebutuhan akan sistem basis data, merencanakannya dan mengaturnya.
3. Programmer: membuat program aplikasi yang diperlukan oleh pemakai akhir dengan menggunakan data yang terdapat dalam sistem basis data.
Pemakai Akhir: tenaga ahli yang menggunakan data untuk mengambil keputusan yang diperlukan untuk kelangsungan usaha.

Istilah-Istilah Basis Data
Dalam penyusunan basis data ada beberapa istilah yang akan sering digunakan. Oleh karena itu, kita sebagai obyek yang mempelajari lebih jauh lagi tentang ilmu pengetahuan basis data sepatutnya mengenal:
a. Enterprise: suatu bentuk organisasi seperti: bank, universitas, rumah sakit, pabrik, dsb. Data yang disimpan dalam basis data merupakan data operasional dari suatu enterprise. Contoh data operasional: data keuangan, data mahasiswa, data pasien, data karyawan.
b. Entitas: suatu obyek yang dapat dibedakan dari lainnya yang dapat diwujudkan dalam basis data. Contoh entitas dalam lingkungan bank terdiri dari: nasabah, simpanan, hipotik. Contoh entitas dalam lingkungan universitas terdiri dari : mahasiswa, mata kuliah. Kumpulan dari entitas disebut Himpunan Entitas. Contoh: semua nasabah, semua mahasiswa.
c. Atribut (Elemen Data): karakteristik dari suatu entitas. Contoh: entitas mahasiswa atributnya terdiri dari npm, nama, alamat, tanggal lahir. d. Nilai Data (Data Value): isi data/informasi yang tercakup dalam setiap elemen data. Contoh atribut nama mahasiswa dapat berisi nilai data: Dani, Dewi, Diaz.
d. Kunci Elemen Data (Key Data Element): tanda pengenal yang secara unik mengidentifikasikan entitas dari suatu kumpulan entitas. Contoh entitas mahasiswa yang mempunyai atribut- atribut npm, nama, alamat, tanggal lahir menggunakan kunci elemen data npm.
e. Record Data: kumpulan isi elemen data yang saling berhubungan. Contoh: kumpulan atribut npm, nama, alamat, tanggal lahir dari entitas mahasiswa berisikan : “4109073”, “Dani”, “Jl. Jend. Sudirman No. 4 Makassar”, “4 April 1983”.

Database Administrator seseorang yang bertanggung jawab terhadap penanganan database di dalam suatu organisasi, tanggung jawabnya meliputi:
– Bertanggung jawab terhadap keamanan database.
– Perancangan dan koordinasi secara keseluruhan dari database.
– Mengembangkan skema.
– Membuat dokumen sistem dan penggunaannya.
– Menentukan organisasi data.
– Penerapan terhadap DBMS
– Pengetesan dan pemeliharaan sistem database.
– Menjadi penengah antara pemakai dan manajemen.
– Bertanggung jawab terhadap seluruh operasi dari sistem dasar data.
– Menerapkan prosedur darurat di dalam kasis terjadinya kegagalan sistem atau kerusakan database.
– Melatih dan mendidik personil yang berhubungan dengan database.

Conceptual view merupakan pandangan yang berkaitan dengan permasalahan data-data apa saja yang diperlukan untuk disimpan dalam basis data dan penjelasan mengenai hubungan antar data yang satu dengan lainnya. Conceptual view dapat disetarakan dengan schema, dilakukan database administrator

Physical view merupakan bentuk implementasi dari conceptual view, yaitu pandangan tentang bagaimana data disimpan dalam media penyimpan data

User view dapat disejajarkan dengan sub-schema.

Level pandang akan berbicara mengenai bagaimana basis data digunakan. Level pandang yang baik mempunyai kualifikasi sebagai berikut:

1. Program yangdipakai harus bersifat user-friendly
2. Penggunaan data base harus mempunyai tutorial yang tertulis, sehingga jelas bagaimana cara mengolah data base yang baik.
3. Panduan juga harus dapat bersifat online/terintregasi dengan program pengolah basis datanya.
Fungsi DBMS

 Penyimpanan Data, Retrieval, dan Update.
 Sebuah User-diakses Katalog.
 Dukungan transaksi.
 Layanan Kontrol konkurensi.
 Recovery Services.
 Layanan otorisasi.
 Dukungan untuk Komunikasi

Arsitektur Multi-User DBMS

Teleprocessing
 Arsitektur tradisional.
 Mainframe tunggal dengan sejumlah terminal terpasang.
 Trend sekarang menuju perampingan.

KESIMPULAN

1. 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.
2. 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.

Daftar Pustaka :

http://modulmakalah.blogspot.co.id/2015/12/memahami-arsitektur-basis-data-dan.html

http://fauzult.blogspot.co.id/2012/01/tugas-makalah-basis-data.html

http://www.temukanpengertian.com/2013/07/pengertian-database-administrator.html

Resonansi Gelombang Bunyi

Resonansi adalah peristiwa ikut bergetarnya suatu benda karena ada benda lain yang bergetar dan memiliki frekuensi yang sama atau kelipatan bilangan bulat dari frekuensi itu. Resonansi sangat bermanfaat dalam kehidupan sehari-hari. Misalnya, resonansi bunyi pada kolom udara dapat dimanfaatkan untuk menghasilkan bunyi. Berdasarkan hal tersebut, maka dapat dibuat berbagai macam alat musik. Alat musik pada umumnya dibuat berlubang agar terjadi resonansi udara sehingga suara alat musik tersebut menjadi nyaring. Contoh alat musik itu antara lain: seruling, kendang, beduk, ketipung dan sebagainya.

Resonansi sangat penting di dalam dunia musik. Dawai tidak dapat menghasilkan nada yang nyaring tanpa adanya kotak resonansi. Pada gitar terdapat kotak atau ruang udara tempat udara ikut bergetar apabila senar gitar dipetik. Udara di dalam kotak ini bergerak dengan frekuensi yang sama dengan yang dihasilkan oleh senar gitar. Udara yang mengisi tabung gamelan juga akan ikut bergetar jika lempengan logam pada gamelan tersebut dipukul. Tanpa adanya tabung kolom udara di bawah lempengan logamnya, Anda tidak dapat mendengar nyaringnya bunyi gamelan tersebut. Reonansi juga dipahami untuk mengukur kecepatan perambatan bunyi di udara.