Click here to load reader
Upload
mohd-firhan-jasni
View
1.446
Download
2
Embed Size (px)
Citation preview
JABATAPOLITE
F41SOALA
Disediaka
AN TEKNKNIK UN
109 –AN-SOA
an oleh: nur
OLOGI MNGKU OM
– DAALAN T
MAKLUMMAR, IPO
ATABTUTORI
puo.edu.my
MAT & KOOH
BASIAL
y
OMUNIKA
E SY
J
ASI
YSTE
ula
M
ai 20099
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 1 : PENGENALAN KEPADA PANGKALAN DATA
1. Terangkan dengan ringkas setiap istilah yang berikut: a) Pangkalan Data b) Sistem Pengurusan Pangkalan Data c) Sistem Pangkalan Data d) Aplikasi Pangkalan Data
2. Lukiskan gambarajah ringkas bagi menunjukkan perkaitan antara setiap istilah yang telah diterangkan
dalam soalan 1.
3. Terangkan perbezaan antara sistem pemprosesan manual, sistem pemprosesan tradisional dan sistem pangkalan data.
4. Nyatakan kelemahan-kelemahan yang terdapat dalam sistem pemprosesan fail. Bagaimanakah kelemahan-kelemahan tersebut diatasi oleh sistem pangkalan data.
TUTORIAL 2 : SENIBINA TIGA PARAS ANSI-SPARC
1. Senibina Tiga Paras ANSI-SPARC mempunyai tiga paras iaitu paras luaran, paras konseptual dan paras dalaman. Terangkan dengan ringkas ketiga-tiga istilah tersebut.
2. Lukiskan gambarajah Senibina Tiga Paras ANSI-SPARC.
3. Berikan penerangan ringkas berbantukan gambarajah untuk setiap jenis model data berikut: a) Model Data Berorientasikan Objek b) Model Data Berhirarki c) Model Data Rangkaian d) Model Perhubungan Entiti
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 3 : MODEL PERHUBUNGAN ENTITI
1. Takrifkan istilah-istilah berikut: a) Entiti b) Atribut c) Perhubungan
2. Tunjukkan pemetaan kekardinalan perhubungan-perhubungan berikut:
a) Seorang pelanggan sebuah bank boleh mempunyai beberapa jenis akaun dan sesuatu akaun boleh dikongsi oleh dua orang pelanggan
b) Seorang murid berbasikal ke sekolah dan tiada seorang pun yang menunggang basikal berdua. c) Beberapa orang pesakit dirawat oleh seorang doktor dan seorang doktor menjadi panel kepada
lebih daripada seorang pesakit.
3. Modelkan senario di bawah dengan menggunakan gambarajah perhubungan entiti (ERD). a) Sebuah agensi pekerjaan memberi khidmat mendapatkan calon pekerja untuk bakal majikannya.
Untuk tujuan tersebut, agensi ini perlu menyimpan butir-butir seperti nama, nombor kad pengenalan, alamat, nombor telefon, tarikh lahir dan jenis kemahiran calon yang memohon pekerjaan. Di samping itu, agensi ini juga perlu menyimpan data-data yang berkaitan daripada majikan. Permintaan untuk pekerja diajukan oleh majikan kepada agensi dengan menyatakan jenis kerja serta gaji yang ditawarkan, jenis kemahiran yang diingini dan tarikh pekerjaan diperlukan.
b) Ujikaji di dalam sebuah makmal perlu dilakukan oleh pelajar dengan menggunakan satu atau lebih bahan tertentu. Seorang pelajar mesti membuat satu atau lebih ujikaji. Satu ujikaji boleh dilakukan secara individu atau berkumpulan dengan ahli tidak lebih daripada lima orang. Suatu ujikaji mesti disiapkan dalam satu jangka waktu tertentu. Setiap ujikaji diberi nombor pengenalan yang unik dan boleh dilakukan oleh lebih daripada satu kumpulan pelajar. Nama-nama bahan yang digunakan juga unik.
c) Seorang staf di sebuah jabatan kerajaan diwajibkan membuka sama ada suatu akaun simpanan atau suatu akaun semasa. Pemegang akaun simpanan dibayar kadar faedah tetap. Pemegang akaun semasa diberi pilihan untuk mendapatkan beberapa kemudahan lain dengan mendapatkan kad emas atau kad perak atau kedua-duanya sekali. Kedua-dua kad memberi kemudahan yang berlainan. Bagaimanapun, semua pemegang akaun semasa boleh menikmati kemudahan ‘overdraft’.
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 4 : MODEL PERHUBUNGAN ENTITI
1. Di dalam wad Orthopadik, ramai doctor melayan seorang pesakit dan ramai pesakit dilayan oleh seorang doctor. Seorang pesakit boleh mengambil satu ubat tetapi banyak ubat boleh diambil oleh ramai pesakit. a) Maklumat doktor alah IDDoktor dan NamaDoktor b) Maklumat pesakit adalah IDPesakit, NamaPesakit dan Alamat c) Maklumat ubat adalah kodUbat dan NamaUbat d) Bagi setiap rawatan, ia mempunyai jenis rawatan dan kos rawatan e) Bagi setiap ubat yang diterima, ia mempunyai kualiti dan tarikh
2. Syarikat ilham Sdn Bhd, adalah merupakan sebuah syarikat yang membekalkan barangan seperti kasut,
stoking dan beg. Semua barang ini diimport daripada negeri China dan kemudiannya dijual kepada pelanggan-pelanggan sekitar Semenanjung Malaysia. Setiap barangan yang dijual mesti mempunyai kod barangan dan anma barang. Selain daripada itu, kuantiti barang juga perlu diketahui untuk setiap barangan.
Setiap maklumat yang berkaitan dengan pembekal di negeri China dan pelanggan mesti disimpan.
Antara maklumat yang perlu disimpan adalah kod pembekal, nama pembekal, no telefon dan no faks. Maklumat pelanggan pula adalah kekerapan pelanggan membeli barangan. Jika barang ada dalam simpanan, stok status barang akan dilabelkan A dan jika tiada dalam simpanan, stok status barang dilabelkan dengan N.
3. Syarikat Zikry merupakan sebuah kedai telekomunikasi yang mempunyai beberapa cawangan di sekitar Kuala Lumpur, Alor Setar, Ipoh dan Seremban. Setiap cawangan mempunyai seorang pengurus yang mentadbir kedai tersebut.
Syarikat tersebut memperolehi barang-barang daripada beberapa pengedar, Biasanya satu
pengedar akan mengedar pelbagai jenis barang kepada syarikat tersebut. Antaranya seperti telefon bimbit, aksesori telefon dank ad prabayar. Setiap cawangan akan mengurskan sendiri urusan pembelian kepada pembekal-pembekal tersebut. Setiap cawangan akan membuat pesanan dan pembayaran hanya akan dibuat setelah barang-barang diterima. Barang-barang akan dijual kepada pelanggan samada secara tunai atau menggunakan kad kredit.
Maklumat cawangan adalah seperti noCawangan, namaCawangan, alamat, noTelefon dan noFaks.
Maklumat pengedar pula adalah seperti noPengedar, namaPengedar, alamat, noTelefon dan noFaks. Maklumat barang pula adalah seperti noBarang, penerangan, hargaSeUnit dan tarikhTerima.
Maklumat pesanan pula adalah seperti noPesanan, kuantitiPesanan dan tarikhPesanan. Maklumat
pembayaran pula adalah seperti noResit, tarikhBayaran dan jumlahBayaran. Maklumat pelanggan yang akan diambil seperti namaPelanggan, noKadPengenalan dan jenisBayaran.
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 5 : MODEL PERHUBUNGAN ENTITI
1. ABC adalah satu syarikat percutian yang menawarkan tapak perkhemahan di tempat peranginan yang popular. Setiap tapak mempunyai beberapa bidang tanah yang boleh di tempah oleh holidaymaker untuk beberapa hari. Setiap tapak mempunyai kemudahan tandas dan tempat mencuci pakaian yang disediakan secara percuma. Syarikat tersebut menerima tempahan daripada sekumpulan holidaymakers. Seorang individu bertanggungjawab terhadap tempahan yang dibuat, dan permintaan boleh dibuat untuk menambahkan bidang tanah sekiranya kumpulan tersebut adalah ramai. Syarikat tersebut akan menyimpan maklumat berkenaan individu yang membuat tempahan untuk tujuan pemasaran. Invois akan dikeluarkan berdasarkan tempahan yang dibuat dan pembayaran boleh di buat secara ansuran.
Bina gambarajah ERD bagi sistem tempahan dan invois berdasarkan maklumat yang diberikan.
2. Berdasarkan kepada relation di bawah, lakarkan gambarajah ERD yang lengkap
Based on the relation below, draw a complete ERD. STUDENT (StudentNo, StudentName, CreditHour, GPA, TutorNo) TUTOR (TutorNo, TutorName) COURSE (CourseNo, CourseName, CreditHour) GRADE (StudentNo, CourseNo, Grade)
3. XYZ Kolej yang terletak di Jalan Raja Laut Kuala Lumpur ingin membina sebuah pangkalan data tentang pendaftaran pelajar. Berikut adalah maklumat-maklumat yang diperlukan untuk membina sistem tersebut. a) Kolej mempunyai beberapa fakulti seperti Fakulti Bahasa dan Pengurusan, Fakulti Teknologi
Maklumat, Fakulti Multimedia dan sebagainya. Setiap fakulti diuruskan oleh Akademik Direktor.
b) Setiap fakulti menawarkan beberapa kursus. Contohnya Fakulti Teknologi Maklumat menawarkan kursus Diploma Teknologi Maklumat (perisian), Diploma Teknologi Maklumat (perniagaan) dan Diploma Lanjutan Teknologi Perisian.
c) Di dalam setiap kursus, pelajar perlu belajar beberapa subjek.
d) Pelajar dibenarkan mengambil lebih daripada satu subjek setiap semester.
e) Setiap subjek mungkin diajar oleh ramai pensyarah di beberapa buah bilik kuliah pada satu
masa.
f) Setiap fakulti mempunyai ramai pensyarah tetapi seorang pensyarah hanya ditugaskan mengajar di sebuah fakulti sahaja.
Berdasarkan kajian kes di atas, bina Gambarajah Perhubungan Entiti (ERD) yang lengkap.
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
4. Tukarkan gambarajah hubungan entiti di bawah ke dalam bentuk relation.
ITEM
QUATATION PROJECT
SUPPLIER
have
have
send
ItemNumber
Description
Category
ProjectID
Name Phone
SupplierID
SupName
Contact
Phone
Discount
QuatationID
ItemNumber
SupplierID
Quantity
Retail Price
ProjectID
1
M
M
1
M 1
Owner
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 6: PENORMALAN
Berdasarkan kepada jadual dan borang di bawah, lakukan penormalan sehingga 3NF. INVOIS
No
Pela
ngga
n
Nam
a
Ala
mat
Kod
Bara
ng
Nam
a Ba
rang
Kuan
titi
Har
ga
Kod
Pem
beka
l
Ala
mat
Pe
mbe
kal
PG0001
Dayang Nurfaizah
Sentul
KB1000 CP2300 MS1112
Papan Kekunci CPU Tetikus
20 10 3
25.00 650.00 15.00
XYZ Bhd PQR Ent XYZ Bhd
Subang Gombak Subang
PG1001
Siti Nurhaliza
Ampang
HD2000 KB1000 SP0360
Hard Disc Papan Kekunci Pembesar Suara
10 8 6
125.00 25.00 45.00
XYZ Bhd XYZ Bhd PQR Ent
Subang Subang Gombak
PG2002
Jamal Abdillah
Klang
MS1112 CP2300 VG4000
Tetikus CPU Kad VGA
4 3 5
15.00 650.00 215.00
XYZ Bhd PQR Ent PQR Ent
Subang Gombak Gombak
VIRTUAL HOME
PROPERTY INSPECTION REPORT Property No: PG4 Property Address : 25, Taman Cempaka
InspectionID Inspection Date
Inspesction Time Comment StaffID StaffName
1 31/12/2000 10.02 AM In good order S1002 Malia
2 31/01/2002 12.02 PM Need to repair S1005 Naida
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 7: PENORMALAN
Berdasarkan kepada jadual di bawah, lakukan penormalan sehingga 3NF. 1.
No Filem Nama Filem
Kod Pawagam
Nama Pawagam
Lokasi Kod
Pengurus Nama
Pengurus Keuntungan
23 Puteri Gunung Ledang
AB Cineplex JB KP01 Mohd Hakim 4500.00
CD Cineplex KL KP02 David Teo 3000.00
EF Roxy IPOH KP03 Peter 5500.00
69 60 Minutes AB Cineplex JB KP01 Mohd Hakim 6000.00
CD Cineplex KL KP02 David Teo 5000.00
EF Roxy KL KP02 David Teo 4500.00
2.
Nombor Kursus
Nama Kursus
Nombor Jabatan
NamaJabatan
NomborPensyarah
Nama Cawangan Tel
100 Teaching Technic
13 Jabatan Multimedia
200 Sarimah JB 07-2767500
13 Jabatan Multimedia
174 Joanne JB 07-2767500
11 Jabatan IT 278 Fadzil Klang 03-2224587 11 Jabatan IT 100 Celine SP 04-4445899 12 Jabatan
Grafik 107 Halina KL 03-2910400
12 Jabatan Grafik
111 Amir Klang 03-2224587
12 Jabatan Grafik
135 Ahmad KL 03-2910400
13 Jabatan Multimedia
205 Rose KL 03-2910400
110 C++ 11 Jabatan IT 198 Miza JB 07-2767500 11 Jabatan IT 278 Fadzil Klang 03-2224587 11 Jabatan IT 100 Celine SP 04-4445899120 Audio
Visual 13 Jabatan
Multimedia 200 Sarimah JB 07-2767500
13 Jabatan Multimedia
205 Rose KL 03-2910400
13 Jabatan Multimedia
205 Rose KL 03-2910400
13 Jabatan Multimedia
211 Zaifa JB 07-2767500
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 8: KESELAMATAN PANGKALAN DATA
Melana Corporation merupakan sebuah syarikat menjual pelbagai barangan jualan langsung. Ibu pejabatnya terletak di Johor Bahru dan terdapat 5 buah cawangan lain di Semenanjung Malaysia. Pengurusnya ingin membeli satu sistem yang berupaya untuk membuat transaksi secara on-line. Walau bagaimanapun, pengurusnya masih kurang jelas tentang beberapa perkara dan melantik anda sebagai penasihat bagi mencadangkan sistem tersebut. Jelaskan kepada pengurus syarikat itu mengenai perkara-perkara berikut :
a. Sekiranya semua cawangan dibenarkan untuk mencapai pangkalan data secara serentak dalam satu masa, apakah isu-isu dan masalah-masalah yang mungkin akan timbul ? Huraikan secara ringkas. (6m)
b. Terangkan 2 cara bagaimana untuk mengatasi masalah-masalah yang dinyatakan tadi. (4m)
c. Terangkan 2 tugas aplikasi DBA dalam memastikan pangkalan data tersebut dapat dikongsi oleh ramai pihak yang berhak serta sentiasa dalam keadaan selamat dan tidak disalahgunakan. (4m)
d. Berdasarkan soalan 2 (c) di atas, terangkan 3 teknik-teknik yang boleh digunakan dalam memastikan keselamatan data daripada hilang atau disalahgunakan. (6m)
TUTORIAL 9: SQL (Structured Query Language) Kedai Video Best.com menyediakan perkhidmatan penyewaan video kepada pelanggan-pelanggan yang berdaftar di kedai tersebut. Setiap video yang disewa mempunyai kadar sewa tertentu bergantung kepada tarikh keluaran video tersebut, pelanggan membuat pembayaran adalah berdasarkan kepada jumlah kadar sewa yang telah ditetapkan kepada setiap video. Hubungan di antara PELANGGAN dengan PENYEWAAN dan PENYEWAAN dengan VIDEO adalah 1:M. Skema hubungan adalah seperti ditunjukkan di bawah : PELANGGAN(NoPelanggan, NamaPelanggan, NoKP, Alamat, NoTel) PENYEWAAN(NoPenyewaan,TarikhSewa,BilVideo,JumlahBayaran, NoPelanggan, NoVideo) VIDEO(NoVideo, Tajuk, KadarSewa, TahunKeluaran) Jadual-jadual data adalah seperti berikut : PELANGGAN
NoPelanggan NamaPelanggan NoKP Alamat NoTel 001 Ali Abu 780202-01-0012 Gombak 03-45784515 002 Fatimah Karim 741212-12-4515 Shah Alam 03-45454512 003 Dew Ling Ling 780216-71-5858 Klang 03-45451875 004 Ahmad Mohamad 480615-07-8564 Cheras 03-85479657
PENYEWAAN
NoPenyewaan NoPelanggan NoVideo TarikhSewa BilVideo JumlahBayaran 011 001 024 02/02/02 2 NULL 012 003 022 01/02/02 2 NULL 013 002 021 30/01/02 1 NULL 014 001 025 02/08/02 1 NULL
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
VIDEO NoVideo Tajuk KadarSewa TahunKeluaran
021 Aladdin 4.00 1990 022 Phenomenon 6.00 1998 023 The Eye 7.00 2002 024 Star Wars 6.00 2000 025 Embun 7.00 2002
Tuliskan arahan SQL bagi setiap soalan di bawah : a) Bina pangkalan data di atas bernama SistemPenyewaanVideo. (2M)
b) Bina 3 jadual seperti yang ditunjukkan di atas (nyatakan kekangan yang sesuai). (6M)
c) Laksanakan pernyataan yang memaparkan maklumat video (NoVideo, Tajuk, KadarSewa) dan
pelanggan(NoPenyewaan, NoPelanggan, TarikhSewa) dari jadual VIDEO dan PENYEWAAN dengan syarat kedua-dua lajur NoPenyewaan dari kedua-dua jadual tersebut sama. (3M)
d) Tambahkan 1 rekod baru ke dalam jadual PELANGGAN seperti di bawah: (2M) NoPelanggan NamaPelanggan NoKP Alamat NoTel
005 Jeniffer a/p Lopez 750202-01-0012 Shah Alam 03-45787892
e) Laksananakan pernyataan yang memaparkan NoPelanggan, NamaPelanggan dan NoTel bagi pelanggan yang tinggal di Shah Alam sahaja mengikut turutan menaik nama pelanggan (2.5M)
f) Dapatkan bayaran yang akan dikenakan bagi pelanggan yang menyewa video pada lajur
JumlahBayaran di jadual PENYEWAAN (2.5M) g) Buang rekod pelanggan yang tidak pernah membuat sebarang penyewaan video (2M)
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 10: SQL (Structured Query Language) One database Purchase_System is created. The relationship between Customer and Item is many to many (M:N). This database contains Customer, Item and Buy tables. The relationship scheme for all the entities shown as follow:
Customer(CNo, CName, Caddress, CPhone); Item(ICode, IName, Price); Buy(CNo, ICode, Qty);
The following ERD for database Purchase_System shown as below: Using MySQL, do all the operations below: i) Create one database called Purchase_System.
ii) Create THREE (3) tables according to the ERD. Specify the data type for each attribute wisely. State whether the attribute is Primary Key or Foreign Key when creating tables.
iii) Insert FIVE (5) rows of records for each table. The records for each table are shown as below: Customer
CNo CName Address CPhoneCR0001 Zakaria b Ahmad Tmn Gembira 013-5566235CR0002 Suzana bt Mohd Tmn Cempaka 012-5432178CR0003 Chong Ah Meng Tmn Ampang 019-4567890CR0004 Selvi a/p Raju Pekan Razaki 016-4139087CR0005 Fatimah bt Saiful Tmn Rapat 017-6754321
BUYCUSTOMER ITEM BUY
CNo
CName
CAddress
CPhone
CNo ICode
Qty Price
IName
ICode
M N
mysql > create database Purchase_System;Query OK, 1 row affected (0.xx sec) mysql > use Purchase_System; Database changed
mysql > create table Customer -> (CNo CHAR(6), CName VARCHAR(30), CAddress VARCHAR(40), -> CPhone CHAR(11), Primary Key (CNo)); Query OK, 0 rows affected (0.xx sec) mysql > create table Item -> (ICode CHAR(6) Primary Key, IName VARCHAR(30), -> Price FLOAT); Query OK, 0 rows affected (0.xx sec) mysql > create table Buy -> (CNo CHAR(6), ICode CHAR(6), Qty INT, -> Foreign Key(CNo) references Customer(CNo), -> Foreign Key(ICode) references Item(ICode)); Query OK, 0 rows affected (0.xx sec)
mysql > insert into Customer values (‘CR0001’, ‘Zakaria b Ahmad’, ‘Tmn Gembira’, ‘013-5566235’); Query OK, 0 rows affected (0.xx sec)
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
Item ICode IName Price
IC0001 2G Pen Drive 56.50 IC0002 CD RW 2.50 IC0003 Diskette 10.00 IC0004 Keyboard 35.00 IC0005 Mouse 23.00
Buy CNo ICode Qty
CR0001 IC0001 1 CR0002 IC0002 5 CR0001 IC0003 1 CR0004 IC0004 2 CR0001 IC0005 1
iv) To show all databases stored in MySQL.
Syntax :- mysql > show databases;
v) To show all tables in each database. Syntax :- mysql > show tables;
vi) To show all the details attribute in each table.
Syntax :- mysql > describe tableName; or mysql > explain tableName;
vii) To exit from MySQL. Syntax :- mysql > exit;
viii) To show all the records in Customer table.
Syntax :- mysql > select * from Customer;
ix) To show item name and price form Item table. Syntax :- mysql > select IName, Price from Item;
x) To show item name if the price is more than RM10.00. Syntax :- mysql > select IName from Item where Price > 10.00;
xi) To show customer name that bought Diskette. Syntax :- mysql > select CName, IName from Customer, Item where Buy.ICode = ‘IC0003’;
xii) To show all the records in Item table and sort Ascending by their name. Syntax :- mysql > select * from Item order by IName ASC;
xiii) To show record from Customer table that have name starting with letter ‘C’. Syntax :- mysql > select * from Customer where CName like ‘C%’;
xiv) To show record from Item table that their name containing letter ‘et’. Syntax :- mysql > select * from Item where IName like ‘%et%’;
xv) To update price for Diskette from Item table to RM12.50. Syntax :- mysql > update Item set Price = 12.50 where IName = ‘Diskette’;
xvi) To add one record into Customer table (CR0006, Azlee b Fariz, Tmn Ampang, 014-6654890) Syntax :- mysql > insert into Customer values (‘CR0006’, ‘Azlee b Fariz’, ‘Tmn Ampang’, ‘014-6654890’);
xvii) To delete all the Customer record those not buy any Items.
Syntax :- mysql > delete from Customer where not exists CNo = (Select * from Buy where CNo = Customer.CNo);
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 11: SQL (Structured Query Language) XYZDatabase
XYZDatabase represent a company with departments and employees. Each employee belongs to exactly one department, which itself has one or more employees. Jobs of employees’ center around projects: each employee works at the same time for one or more projects, and each project engage one or more employees. The data of the sample database can be represented using four tables.
Department (dept_no, dept_name, location);
dept_no dept_name location d1 Research Dallas d2 Accounting Seattle d3 Marketing Dallas
Employee (emp_no, emp_fname, emp_lname, dept_no);
emp_no emp_fname emp_lname dept_no 25348 Matthew Smith d3 10102 Ann Jones d3 18316 John Barrimore d1 29346 James James d2 9031 Elke Hansel d2 2581 Elsa Bertoni d2 28559 Sybill Moser d1
Project (project_no, project_name, budget);
project_no project_name budget p1 Apollo 120000 p2 Gemini 95000 p3 Mercury 185600
Works_on (emp_no, project_no, Job, enter_date);
Emp_no Project_no Job Enter_date 10102 p1 Analyst 1997.10.1 00:00:00 10102 p3 Manager 1999.1.1 00:00:00 25348 p2 Clerk 1998.2.15 00:00:00 18316 p2 NULL 1998.6.1 00:00:00 29346 p2 NULL 1997.12.15 00:00:002581 p3 Analyst 1998.10.15 00:00:009031 p1 Manager 1998.4.15 00:00:00 28559 p1 NULL 1998.8.1 00:00:00 28559 p2 Clerk 1999.2.1 00:00:00 9031 p3 Clerk 1997.11.15 00:00:0029346 p1 Clerk 1998.1.4 00:00:00
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
Based on the tables given as above, find out the output for each of SQL statements given:-
1. SELECT * FROM department;
2. SELECT dept_name, dept_no FROM department WHERE location = ‘Dallas’;
3. SELECT emp_lname, emp_fname FROM employee WHERE emp_no >= 15000;
4. SELECT project_name FROM project WHERE budget * 0.51 > 60000;
5. SELECT emp_no, project_no FROM works_on WHERE project_no = ‘p2’ AND job = ‘clerk’;
6. SELECT project_no, emp_no FROM works_on WHERE project_no = ‘p1’ OR project_no = ‘p2’;
7. SELECT DISTINCT emp_no FROM works_on WHERE project_no = ‘p1’ OR project_no = ‘p2’;
8. Select emp_no, emp_lname FROM employee WHERE NOT dept_no = ‘d2’;
9. SELECT * FROM employee WHERE emp_no IN (29346, 28559, 25348);
10. SELECT * FROM employee WHERE emp_no NOT IN (10102, 9031);
11. SELECT project_name, budget FROM project WHERE budget BETWEEN 95000 AND 120000;
12. SELECT emp_no FROM works_on WHERE job = ‘Analyst’ AND enter_date NOT BETWEEN ’01.01.1998’ AND ’12.31.1988’;
13. SELECT emp_fname, emp_lname, emp_no FROM employee WHERE emp_lname LIKE ‘J%’;
14. SELECT emp_fname, emp_lname, emp_no FROM employee WHERE emp_fname LIKE ‘_a%’;
15. SELECT * FROM department WHERE location LIKE ‘[C-F]%’;
16. SELECT job FROM works_on GROUP BY job;
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
17. SELECT MIN(emp_no) AS MinEmployeeNo FROM employee;
18. SELECT SUM(budget) AS SumOfBudget FROM project;
19. SELECT job, COUNT(*) jobCount FROM works_on GROUP BY job;
20. SELECT emp_fname, emp_lname, dept_no FROM employee WHERE emp_no < 20000 ORDER BY emp_fname DESC;
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 12: SQL (Structured Query Language) RUJUK
ISBN NAMA_BUKU PENERBIT THN_ TERBIT
THN_ KELUAR
KUANTITI
9002 BASIC: C++ MC GRAW HILL 1998 1999 1 9003 BASIC: C++ DONALDO 1997 1998 4 9006 BASIC: C++ ADDISION WESLEY 1998 2000 6 9112 MASTER MS ACCESS PRENTICE HALL 1999 2001 9 9121 INTERNET PROGRAM CORIOLIS 2000 2001 7 9022 INTERNET PROGRAM FAJAR BAKTI 1996 1999 3 9030 ORACLE PROGRAM JOHN WILEY 2002 2002 2 9043 DBASE SYSTEM HAMSTERS 2001 2001 1 9045 DBASE SYSTEM DONALDO 2001 2001 8 9048 DBASE SYSTEM FAJAR BAKTI 2002 2002 10 9050 MASTER IN JAVA JOHN WILEY 2005 2002 20 9051 MASTER IN JAVA CLOBSTER 2001 2001 3 9052 MASTER IN JAVA DELIGHT 1999 1999 7 9058 DBASE PROGRAM ADDISION WESLEY 2000 2000 9 9064 DISTRIBUTE SYSTEM FAJAR BAKTI 2002 2002 1 9072 DISTRIBUTE SYSTEM DAMAI RIA 2000 2000 6 a) Tuliskan arahan SQL bagi kes-kes di bawah.
i. Senaraikan semua buku yang diterbitkan di antara tahun 1999 dan 2001
ii. Senaraikan ISBN, Nama_Buku dan Penerbit bagi semua buku rujukan yang diterbitkan oleh Fajar Bakti.
iii. Bilangan yang dinamakan sebagai COUNT untuk mengira jumlah buku BASIC: C++ yang diterbitkan di antara tahun 1998 dan 2000
(6 m) b) Keluarkan output dalam bentuk jadual apabila arahan SQL berikut dilaksanakan
i. SELECT DISTINCT NAMA_BUKU FROM RUJUK ORDER BY NAMA_BUKU;
ii. SELECT ISBN, NAMA_BUKU, PENERBIT, THN_TERBIT
FROM RUJUK WHERE BUKU LIKE “DBASE%” AND THN_TERBIT BETWEEN 1997 AND 2003 ORDER BY THN_TERBIT ASC;
iii. SELECT NAMA_BUKU, PENERBIT, KUANTITI*2
FROM RUJUK WHERE ISBN BETWEEN 9043 AND 9052;
iv. DELETE * FROM RUJUK WHERE NAMA_BUKU = “INTERNET PROGRAM” OR BUKU = “ORACLE PROGRAM”;
(10 m)
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
TUTORIAL 13: SQL (Structured Query Language)
Satu pangkalan data yang dinamakan PelajarDB hendak dibangunkan oleh sebuah syarikat pengeluar perisian aplikasi. Terdapat 5 jadual yang terkandung di dalam pangkalan data tersebut. Skema hubungan bagi jadual-jadual di dalam pangkaln data tersebut adalah seperti berikut: Murid(IC_Murid, Nama, TLahir, Jantina, Umur, No_Jalan, Poskod, Negeri, ID_Aliran); MataPelajaran(KodMP, Nama_MP); Aliran(ID_Aliran, Nama_Aliran, Sesi_Aliran); Guru(IC_Guru, Nama, Umur, Bangsa, Jawatan, No_Tel, Kod_Jab); Jabatan(Kod_Jab, Nama_Jab); (Dimana Primary Key ditunjukkan dengan perkataan underlined dan bold manakala perkataan dengan huruf condong dan dotted lined mewakili Foreign Key) Data-data yang terkandung dalam setiap jadual adalah seperti berikut: Murid IC_Murid TLahir Jantina Umur No_Jalan Poskod Negeri ID_Aliran 860204-10-2414
NurFatimah 04/02/86 Perempuan 15 64-1, Jln 24/3
51200, Cheras
Selangor SS2402
870606-10-2417
Wan Azli 06/06/87 Lelaki 14 No. 32, Jln Amar
50101, Semarak
KL SS2002
871114-01-5126
Nursyahira 14/11/87 Perempuan 14 SS20/3, Jln Samy
41000, Puchong
Selangor SR1020
880120-01-1029
Razmi 20/01/88 Lelaki 13 No. 13/7, Jln Melati
68000, Ampang
KL SP2002
880412-102418
Umi Aini 12/04/88 Perempuan 13 No. 7, Jln Kastam
54322, Kerinchi
KL ST1006
MataPelajaran Aliran
Kod_MP ama_MP ID_Aliran Nama_Aliran Sesi_Aliran GR2464 Geografi SP2002 Sains Perdagangan Pagi MT1042 Matematik SR1020 Sains RumahTangga Petang SJ4023 Sejarah SS2402 Sastera Petang SL4212 Seni Lukis ST1000 Sains Tulen Pagi SP2322 Sains Panduan ST1006 Sains Pertanian Pagi Jabatan Kod_Jab Nama_Jab MT1002 Matematik PD9100 Perdagangan SP1000 Sains SS2100 Sastera Guru
IC_Guru Nama Umur Bangsa Jawatan No_Tel KoD_MP Kod_Jab A0434212 Zamri 45 Melayu Guru Kanan 03-4244911 MT1042 MT1002 A0899334 Hani Shakila 42 Melayu Guru 03-7654334 SP2322 SP1000 A1923456 Y T Leong 39 Cina Guru Disiplin 03-5678943 MT1042 PD9100 A2342322 Muthusamy 48 India Guru 03-5433236 SJ4023 SS2100
F4109 – DATABASE SYSTEM TUTORIAL
© prepared by: [email protected]
a) Berdasarkan kepada maklumat di atas, tuliskan pernyataan SQL bagi soalan-soalan berikut:
1. Paparkan kesemua data daripada jadual Guru kodkan arahan bagi mengira bilangan murid yang mendaftar bagi sesebuah aliran
2. Paparkan IC_Murid, Nama, TLahir, Jantina serta ID_Aliran daripada jadual Murid dan Nama_Aliran serta Sesi_Aliran daripada jadual Aliran mengikut susunan menurun lajur Nama di mana ID_Aliran bagi kedua-dua jadual adalah sama
3. Kemaskini jadual Murid bagi lajur Nama sebagai ‘Mawi World’ jika ID_Aliran murid tersebut adalah ST1006
4. Masukkan satu baris data di bawah ke dlam jadual MataPelajaran b) Berdasarkan kepada data-data dari kelima-lima jadual, dapatkan output bagi setiap pernyataan SQL
berikut:
1. SELECT IC_Murid, Nama, TLahir, ID_Aliran FROM Murid WHERE ID_Aliran LIKE ‘2%’;
2. SELECT * FROM Jabatan ORDER BY Kod_Jab DESC;
3. SELECT IC_Guru, Nama, Jawatan, Nama_MP Subjek Diajar FROM Jabatan, MataPelajaran WHERE Jabatan.Kod_MP = MataPelajaran.Kod_MP;
4. SELECT Count(*) Bil_Pelajar FROM Murid
5. SELECT * FROM Guru WHERE Bangsa LIKE ‘%U’