Tugas I

Sistem Manajemen Basis Data

Ketentuan

- Sifat: Perorangan

- Waktu: 2 hari, dikumpulkan dalam bentuk file dengan ekstension doc atau rtf paling lambat tanggal 15 Februari 2006 jam 23.59 ke email ke masing-masing pengajar

- Pinalti Keterlambatan: nilai dikurangi 10% per hari

Soal 1

Jelaskan dengan uraian singkat, relationships antara tabel RETAIL_ORDER, ORDER_ITEM dan SKU_DATA pada database berikut:

clip_image002

Jawaban

Tabel RETAIL_ORDER menyimpan data summary order suatu toko (store) pada setiap bulannya. Detail dari order tersebut disimpan pada tabel ORDER_ITEM. Relationship/hubungan antara tabel RETAIL_ORDER dengan tabel ORDER_ITEM adalah bahwa data-data pada tabel ORDER_ITEM mengacu kepada suatu order pada tabel RETAIL_ORDER yang difasilitasi melalui kolom OrderNumber pada kedua tabel tersebut.

Kolom SKU (Stock Keeping Unit) pada tabel ORDER_ITEM menghubungkan tabel tersebut dengan tabel SKU_DATA. Data-data pada tabel SKU_DATA yang dikodekan dengan nilai pada kolom SKU menjadi referensi bagi nilai kolom SKU pada tabel ORDER_ITEM.

Soal 2

Pada tabel INVENTORY berikut:

INVENTORY (SKU, Description, QuantityOnHand, QuantityOnOrder, Warehouse)

Asumsi data kolom SKU, Description dan Warehouse adalah character dan data kolom QuantityOnHand dan QuantityOnOrder adalah numerik

  1. Tuliskan SQL query untuk menampilkan SKU dan Description

Jawaban

Select SKU, Descripton

From INVENTORY

  1. Tuliskan SQL query untuk menampilkan Description dan SKU

Jawaban

Select Description, SKU

From INVENTORY

  1. Tuliskan SQL query untuk menampilkan Warehouse

Jawaban

Select Warehouse

From INVENTORY

  1. Tuliskan SQL query untuk menampilkan Warehouse tanpa adanya duplikasi

Jawaban

Select distinct Warehouse

From INVENTORY

  1. Tuliskan SQL query untuk menampilkan semua kolom tanpa menggunakan *

Jawaban

Select SKU, Description, QuantityOnHand, QuantityOnOrder,

Warehouse

From INVENTORY

  1. Tuliskan SQL query untuk menampilkan semua kolom dengan menggunakan *

Jawaban

Select *

From INVENTORY

  1. Tuliskan SQL query untuk menampilkan semua data untuk suatu produk yang memiliki QuantityOnHand lebih dari 0

Jawaban

Select *

From INVENTORY

Where QuantityOnHand > 0

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang memiliki QuantityOnHand sama dengan 0

Jawaban

Select *

From INVENTORY

Where QuantityOnHand = 0

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang memiliki QuantityOnHand sama dengan 0, diurutkan secara descending berdasarkan Warehouse

Jawaban

Select SKU, Description

From INVENTORY

Where QuantityOnHand = 0

Order by Warehouse Desc

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang memiliki QuantityOnHand sama dengan 0, diurutkan secara descending berdasarkan Warehouse dan secara ascending pada QuantityOnHand

Jawaban

Select SKU, Description

From INVENTORY

Where QuantityOnHand = 0

Order by Warehouse Desc, QuantityOnHand Asc

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang disimpan di Warehouse Seatle, Chicago atau New Jersey. Tanpa mengunakan IN

Jawaban

Select SKU, Description

From INVENTORY

Where Warehouse = ‘Seatle’ Or Warehouse = ‘Chicago

Or Warehouse = ‘New Jersey

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang disimpan di Warehouse Seatle, Chicago atau New Jersey. Menggunakan IN

Jawaban

Select SKU, Description

From INVENTORY

Where Warehouse In (‘Seatle’, ‘Chicago’, ‘New Jersey’)

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang tidak disimpan di Warehouse Seatle, Chicago atau New Jersey. Tanpa mengunakan NOT IN

Jawaban

Select SKU, Description

From INVENTORY

Where Warehouse <> ‘Seatle’ Or Warehouse <> ‘Chicago

Or Warehouse <> ‘New Jersey

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang tidak disimpan di Warehouse Seatle, Chicago atau New Jersey. Mengunakan NOT IN

Jawaban

Select SKU, Description

From INVENTORY

Where Warehouse Not In (‘Seatle’, ‘Chicago’, ‘New Jersey’)

  1. Tuliskan SQL query untuk menampilkan SKU, Description dan QuantityOnHand suatu produk yang memiliki QuantityOnHand lebih dari 1 dan kurang dari 10. Menggunakan BETWEEN

Jawaban

Select SKU, Description, QuantityOnHand

From INVENTORY

Where QuantityOnHand Between 1 And 10

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk dimana Description produk tersebut dimulai dengan kata ‘Half-dome’

Jawaban

Select SKU, Description

From INVENTORY

Where Description Like ‘Half-dome%’

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk dimana Description produk tersebut mengandung kata ‘Foot’

Jawaban

Select SKU, Description

From INVENTORY

Where Description Like ‘%Foot%’

  1. Tuliskan SQL query untuk menampilkan Warehouse dan jumlah dari QuantityOnHand, group berdasarkan Warehouse. Nama kolom yang menampilkan hasil penjumlahan adalah TotalItemsOnHand. Hasilnya ditampilkan dengan urutan descending berdasarkan TotalItemsOnHand

Jawaban

Select Warehouse, Sum(QuantityOnHand) As TotalItemsOnHand

From INVENTORY

Group By Warehouse

Order By TotalItemsOnHand Desc

Soal 3

Pada tabel INVENTORY dan WAREHOUSE berikut:

INVENTORY (SKU, Description, QuantityOnHand, QuantityOnOrder, Warehouse)

WAREHOUSE (Warehouse, Manager, SquareFeet)

Asumsi data kolom SKU, Description,Warehouse dan Manager adalah character dan data kolom QuantityOnHand, QuantityOnOrder dan SquareFeet adalah numerik

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang disimpan di Warehouse dimana Warehouse tersebut Managernya adalah ‘Smith’. Gunakan subquery

Jawaban

Select SKU, Description

From INVENTORY

Where Warehouse In

(Select Warehouse

From WAREHOUSE

Where Manager = ‘Smith’)

  1. Tuliskan SQL query untuk menampilkan SKU dan Description suatu produk yang disimpan di Warehouse dimana Warehouse tersebut Managernya adalah ‘Smith’. Gunakan join

Jawaban

Select INVENTORY.SKU, INVENTORY.Description

From INVENTORY, WAREHOUSE

Where INVENTORY.Warehouse = WAREHOUSE.Warehouse And

WAREHOUSE.Manager = ‘Smith’

  1. Tuliskan SQL query untuk menampilkan Warehouse dan rata-rata QuantityOnHand suatu produk yang disimpan di Warehouse dimana Warehouse tersebut Managernya adalah ‘Smith’. Gunakan subquery

Jawaban

Select Warehouse, Avg(QuantityOnHand)

From INVENTORY

Where Warehouse In

(Select Warehouse

From WAREHOUSE

Where Manager = ‘Smith’)

  1. Tuliskan SQL query untuk menampilkan Warehouse dan rata-rata QuantityOnHand suatu produk yang disimpan di Warehouse dimana Warehouse tersebut Managernya adalah ‘Smith’. Gunakan join

Jawaban

Select INVENTORY.Warehouse, Avg(INVENTORY.QuantityOnHand)

From INVENTORY, WAREHOUSE

Where INVENTORY.Warehouse = WAREHOUSE.Warehouse And

WAREHOUSE.Manager = ‘Smith’

  1. Tuliskan SQL query untuk menampilkan Warehouse, Manager dan QuantityOnHand suatu produk yang disimpan di Warehouse dimana Warehouse tersebut Managernya adalah ‘Smith’. Gunakan join

Jawaban

Select INVENTORY.Warehouse, WAREHOUSE.Manager,

INVENTORY.QuantityOnHand

From INVENTORY, WAREHOUSE

Where INVENTORY.Warehouse = WAREHOUSE.Warehouse And

WAREHOUSE.Manager = ‘Smith’

  1. Jelaskan mengapa pada soal nomor e diatas tidak bisa menggunakan subquery

Jawaban

Karena dengan subquery kita hanya bisa menampilkan data-data pada kolom-kolom suatu tabel yang diproses pada query utama (top table).

Pada kasus ini, selain kita harus menampilkan data Warehouse dan data QuantityOnHand yang bisa kita dapatkan dari tabel INVENTORY yang diproses pada query utama (top table), kita juga harus menampilkan data Manager dimana data tersebut adalah data pada tabel WAREHOUSE. Tabel WAREHOUSE tersebut diproses pada subquery, tidak pada query utama.

Jadi kita tidak bisa melakukannya dengan metode subquery.

  1. Jelaskan apa yang membedakan penggunaan subquery dan join

Jawaban

Subquery dan join sama-sama digunakan jika kita akan memproses lebih dari satu tabel (querying multiple table).

Yang membedakannya adalah jika kita ingin mendapatkan atau menampilkan data yang disimpan pada tabel kedua, ketiga atau seterusnya atau selain data pada tabel pertama maka kita harus menggunakan join, karena subquery tidak bisa melakukannya. Apa yang bisa dilakukan oleh subquery juga bisa dilakukan oleh join.

0 komentar: