850 likes | 1.06k Views
UNIT 10 : REKABENTUK MODEL PANGKALAN DATA HUBUNGAN. E4161 : SISTEM KOMPUTER & APLIKASI. PENGENALAN. Menggunakan konsep hubungan dalam matematik ( algebra hubungan ) untuk mengolah data. ALGEBRA HUBUNGAN. DEFINISI. Sekumpulan operasi untuk MEMANIPULASI keseluruhan hubungan
E N D
UNIT 10: REKABENTUK MODEL PANGKALAN DATA HUBUNGAN E4161 : SISTEM KOMPUTER & APLIKASI
PENGENALAN Menggunakan konsep hubungan dalam matematik (algebra hubungan) untuk mengolah data
DEFINISI Sekumpulan operasi untuk MEMANIPULASI keseluruhan hubungan Operasi-operasi asas : SELECT () PROJECT () JOIN ( R S) Set operasi guna teori set matematik : UNION () INTERSECTION () DIFFERENCE ( - ) CARTESIAN PRODUCT ( x )
OPERASI -OPERASI ASAS
Pangkalan Data PEMBEKAL-BAHAGIAN-PROJEK PNO PNAMA STATUS PBANDAR JNO JNAMA JBANDAR P12345 AHMAD 35 KUANTAN J001 SORTER KUANTAN P59231 SAIFUL 30 ALOR SETAR J012 PUNCH TAPAH P93758 AMRAN 20 TAPAH J007 READER ALOR SETAR P46452 BAHRAIN 30 ALOR SETAR J325 CONSOLE ALOR SETAR P10975 TAN CHENG LOCK 20 KUANTAN J251 TERMINAL ALOR SETAR J195 TAPE KUANTAN BNO BNAMA BERAT BBANDAR B1001 NAT 11 KUANTAN B1123 BOLT 12 KANGAR B1004 SKRU 15 ALOR SETAR B1075 KAM 17 IPOH B1234 KOG 18 TAPAH PEMBEKAL PROJEK BAHAGIAN
Operasi SELECT() Operasi untuk keluarkan rekod yang memenuhi syarat yang ditetapkan dari satu hubungan tertentu Sinteks : <syarat pemilihan> (nama hubungan) Contoh 1 : Dapatkan rekod PEMBEKAL dari KUANTAN yang mempunyai nilai STATUS > 15 <syarat pemilihan>(nama hubungan) (STATUS >15 AND PBANDAR=KUANTAN)(PEMBEKAL)
Operasi SELECT () PNO PNAMA STATUS PBANDAR P12345 AHMAD 35 KUANTAN P10975 TAN CHENG LOCK 20 KUANTAN PEMBEKAL Rekod PEMBEKAL dari KUANTAN yang mempunyai nilai STATUS > 15
Pangkalan Data PEMBEKAL-BAHAGIAN-PROJEK PNO PNAMA STATUS PBANDAR JNO JNAMA JBANDAR P12345 AHMAD 35 KUANTAN J001 SORTER KUANTAN P59231 SAIFUL 30 ALOR SETAR J012 PUNCH TAPAH P93758 AMRAN 20 TAPAH J007 READER ALOR SETAR P46452 BAHRAIN 30 ALOR SETAR J325 CONSOLE ALOR SETAR P10975 TAN CHENG LOCK 20 KUANTAN J251 TERMINAL ALOR SETAR J195 TAPE KUANTAN BNO BNAMA BERAT BBANDAR B1001 NAT 11 KUANTAN B1123 BOLT 12 KANGAR B1004 SKRU 15 ALOR SETAR B1075 KAM 17 IPOH B1234 KOG 18 TAPAH PEMBEKAL PROJEK BAHAGIAN
Operasi SELECT() Sinteks : <syarat pemilihan> (nama hubungan) Contoh 2 : Dapatkan rekod BAHAGIAN dengan mempunyai BERAT < 15 dari bandar KUANTAN atau BERAT < 19 dari bandar TAPAH <syarat pemilihan>(nama hubungan) (BERAT <15 AND BBANDAR=KUANTAN) OR(BERAT <19AND BBANDAR=TAPAH)(BAHAGIAN)
Operasi SELECT () BNO BNAMA BERAT BBANDAR B1001 NAT 11 KUANTAN B1234 KOG 18 TAPAH BAHAGIAN Rekod BAHAGIAN dengan BERAT < 15 dari bandar KUANTAN atau BERAT < 19 dari bandar TAPAH
Pangkalan Data PEMBEKAL-BAHAGIAN-PROJEK PNO PNAMA STATUS PBANDAR JNO JNAMA JBANDAR P12345 AHMAD 35 KUANTAN J001 SORTER KUANTAN P59231 SAIFUL 30 ALOR SETAR J012 PUNCH TAPAH P93758 AMRAN 20 TAPAH J007 READER ALOR SETAR P46452 BAHRAIN 30 ALOR SETAR J325 CONSOLE ALOR SETAR P10975 TAN CHENG LOCK 20 KUANTAN J251 TERMINAL ALOR SETAR J195 TAPE KUANTAN BNO BNAMA BERAT BBANDAR B1001 NAT 11 KUANTAN B1123 BOLT 12 KANGAR B1004 SKRU 15 ALOR SETAR B1075 KAM 17 IPOH B1234 KOG 18 TAPAH PEMBEKAL PROJEK BAHAGIAN
Operasi PROJECT() Operasi untuk keluarkan atribut tertentu dari hubungan tertentu Sinteks : <senarai atribut> (nama hubungan) Contoh 1 : Dapatkan nilai BERAT dan BANDAR bagi BAHAGIAN yang dibekalkan di mana nama BAHAGIAN ialah skru <senarai atribut>(nama hubungan) (BERAT, BBANDAR)( BNAMA=SKRU)(BAHAGIAN)
Operasi PROJECT () BERAT BBANDAR 15 ALOR SETAR BAHAGIAN
Pangkalan Data PEMBEKAL-BAHAGIAN-PROJEK PNO PNAMA STATUS PBANDAR JNO JNAMA JBANDAR P12345 AHMAD 35 KUANTAN J001 SORTER KUANTAN P59231 SAIFUL 30 ALOR SETAR J012 PUNCH TAPAH P93758 AMRAN 20 TAPAH J007 READER ALOR SETAR P46452 BAHRAIN 30 ALOR SETAR J325 CONSOLE ALOR SETAR P10975 TAN CHENG LOCK 20 KUANTAN J251 TERMINAL ALOR SETAR J195 TAPE KUANTAN BNO BNAMA BERAT BBANDAR B1001 NAT 11 KUANTAN B1123 BOLT 12 KANGAR B1004 SKRU 15 ALOR SETAR B1075 KAM 17 IPOH B1234 KOG 18 TAPAH PEMBEKAL PROJEK BAHAGIAN
Operasi JOIN (R S) PNO PNAMA STATUS PBANDAR BNO BNAMA BERAT BBANDAR P12345 AHMAD 35 KUANTAN B1001 NAT 11 KUANTAN P59231 SAIFUL 30 ALOR SETAR B1004 SKRU 15 ALOR SETAR P93758 AMRAN 20 TAPAH B1234 KOG 18 TAPAH P46452 BAHRAIN 30 ALOR SETAR B1004 SKRU 15 ALOR SETAR B1001 NAT 11 KUANTAN P10975 TAN CHENG LOCK 20 KUANTAN • Operasi yang gabung rekod dari dua hubungan untuk menjadi satu tupel jika syarat tertentu dipenuhi • Sinteks : R (syarat) S = (syarat) (RxS) • Contoh 1 : P PBANDAR = BBANDAR B
OPERASI -OPERASI SET
DEFINISI OPERASI SET GABUNG PADAN (Union Compatible) Kedua-dua hubungan mempunyai : Bilangan atribut yang sama Domain yang sama Set operasi HANYA boleh dijalankan JIKA kedua-dua hubungan tersebut adalah GABUNG PADAN
Dua Hubungan GABUNG PADAN BIL NAMA UMUR BIL NAMA UMUR 1 SUHAILA 23 1 SUHAILA 23 2 FATIN 28 2 YATI 27 3 SHAM 30 3 SHAM 30 4 AZRUL 17 4 AZLI 15 5 NORMA 21 5 NORMA 21
Operasi UNION() • Satu hubungan yang mengandungi SEMUA rekod dalam A atau B dalam kedua-dua hubungan A dan B • Rekod berulang akan dihapuskan • Contoh : A B
Operasi UNION () BIL NAMA UMUR 1 SUHAILA 23 2 YATI 27 3 SHAM 30 4 AZRUL 17 5 NORMA 21 6 FATIN 28 7 AZLI 15 Contoh : A B
Dua Hubungan GABUNG PADAN BIL NAMA UMUR BIL NAMA UMUR 1 SUHAILA 23 1 SUHAILA 23 2 FATIN 28 2 YATI 27 3 SHAM 30 3 SHAM 30 4 AZRUL 17 4 AZLI 15 5 NORMA 21 5 NORMA 21
Operasi INTERSECTION() • Satu hubungan yang mengandungi semua rekod yang terdapat dalam hubungan A dan B. • Contoh : A B
Operasi INTERSECTION () BIL NAMA UMUR 1 SUHAILA 23 2 SHAM 30 3 NORMA 21 Contoh : A B
Dua Hubungan GABUNG PADAN BIL NAMA UMUR BIL NAMA UMUR 1 SUHAILA 23 1 SUHAILA 23 2 FATIN 28 2 YATI 27 3 SHAM 30 3 SHAM 30 4 AZRUL 17 4 AZLI 15 5 NORMA 21 5 NORMA 21
Operasi DIFFERENCE(-) • Satu hubungan yang mengandungi semua rekod yang terdapat dalam hubungan A tetapi tiada dalam B. • Contoh : A - B
Operasi DIFFERENCE (-) BIL NAMA UMUR 1 YATI 27 2 AZRUL 17 • Contoh : A - B
Operasi CARTESIAN PRODUCT (x) NO PEND NAMA KURSUS NO PEND KOD_M/P GRED 10DTK001 Suriati Tek Maklumat 10DTK001 F404 2.67 10DTK112 Marina Tek Komputer 10DTK112 E413 3.00 10DTK006 Shafika Tek Maklumat 10DTK112 E412 3.33 10DTK118 Iskandar Tek Komputer 10DTK007 E411 2.00 • Satu hubungan yang mengandungi semua atribut dalam hubungan R1 dan R2 dan mempunyai semua rekod yang mungkin dari R1 dan R2 PELAJAR (R1) GRED (R2)
Operasi CARTESIAN PRODUCT (x) NO_PEND NAMA KURSUS NO_PEND KOD_M/P GRED 10 DIT 001 10 DIT 001 10 DIT 001 10 DIT 001 10 DTK 112 10 DTK 112 10 DTK 112 10 DTK 112 10 DIT 006 10 DIT 006 10 DIT 006 10 DIT 006 10 DTK 118 10 DTK 118 10 DTK 118 10 DTK 118 Suriati Suriati Suriati Suriati Marina Marina Marina Marina Shafika Shafika Shafika Shafika Iskandar Iskandar Iskandar Iskandar Teknologi Maklumat Teknologi Maklumat Teknologi Maklumat Teknologi Maklumat Teknologi Komputer Teknologi Komputer Teknologi Komputer Teknologi Komputer Teknologi Maklumat Teknologi Maklumat Teknologi Maklumat Teknologi Maklumat Teknologi Komputer Teknologi Komputer Teknologi Komputer Teknologi Komputer 10 DIT 001 10 DTK 112 10 DTK 112 10 DTK 007 10 DIT 001 10 DTK 112 10 DTK 112 10 DTK 007 10 DIT 001 10 DTK 112 10 DTK 112 10 DTK 007 10 DIT 001 10 DTK 112 10 DTK 112 10 DTK 007 F 404 E 413 E 412 E 411 F 404 E 413 E 412 E 411 F 404 E 413 E 412 E 411 F 404 E 413 E 412 E 411 2.67 3.00 3.33 2.00 2.67 3.00 3.33 2.00 2.67 3.00 3.33 2.00 2.67 3.00 3.33 2.00
Operasi CARTESIAN PRODUCT (x) NAMA KOD_M/P GRED Suriati F404 2.67 Marina E413 3.00 Marina E412 3.33 • Senarai pelajar dan gred yang diperolehi bagi setiap matapelajaran
Pangkalan DataPELAJAR-SUBJEK NOID PNAMA KURSUS KETURUNAN BERAT 06DTKF012 JULIA DTK MELAYU 48 06DKEF056 CHAN CHEE LI DKE CINA 57 06DTKF103 TAN AH BEE DTK CINA 40 06DTKF058 SAIFUL DTK MELAYU 65 06DKEF027 RAJEEV DKE INDIA 68 06DKEF105 RIZAL DKE MELAYU 53 KOD M/P KREDIT E4161 SISTEM KOMPUTER 02 E2003 AMALI KEJURUTERAAN 2 03 E3001 TEKNOLOGI ELEKTRIK 03 E3062 PENGATURCARAAN 02 E4160 MIKROP 03 PELAJAR SUBJEK
LATIHAN OPERASI ASAS Dapatkan rekod PELAJAR berketurunan MELAYU yang mempunyai BERAT > 55 Dapatkan rekod PELAJAR berketurunan MELAYU dari KURSUS DKE atau berketurunan CINA dari kursus DTK Dapatkan KOD dan MP bagi SUBJEK dimana KREDIT adalah 03
JAWAPAN Soalan 1 : Dapatkan rekod PELAJAR berketurunan MELAYU yang mempunyai BERAT > 55 (KETURUNAN=MELAYU AND BERAT>55)(PELAJAR)
JAWAPAN Soalan 2 : Dapatkan rekod PELAJAR berketurunan MELAYU dari KURSUS DKE atau berketurunan CINA dari kursus DTK (KETURUNAN=MELAYU AND KURSUS=DKE) OR (KETURUNAN=CINA AND KURSUS=DTK) (PELAJAR)
JAWAPAN Soalan 3 : Dapatkan KOD dan MP bagi SUBJEK dimana KREDIT adalah 03 (KOD,MP) ( KREDIT = 03) (SUBJEK)
Pangkalan DataPELAJAR 1 dan PELAJAR 2 NOID PNAMA KURSUS KETURUNAN BERAT 06DTKF012 JULIA DTK MELAYU 48 06DKEF056 CHAN CHEE LI DKE CINA 57 06DTKF103 TAN AH BEE DTK CINA 40 06DTKF058 SAIFUL DTK MELAYU 65 06DKEF027 RAJEEV DKE INDIA 68 06DKEF105 RIZAL DKE MELAYU 53 NOID PNAMA KURSUS KETURUNAN BERAT 06DTKF012 JULIA DTK MELAYU 48 06DTKF069 DANISH IQBAL DTK MELAYU 60 06DTKF103 TAN AH BEE DTK CINA 40 06DTKF037 ANDY LAU DTK CINA 61 06DKEF074 SALMAN KHAN DKE INDIA 62 06DKEF105 RIZAL DKE MELAYU 53 PELAJAR 1 PELAJAR 2
LATIHAN OPERASI SET Dapatkan PELAJAR 1 PELAJAR 2 Dapatkan PELAJAR 1 PELAJAR 2 Dapatkan PELAJAR 1 – PELAJAR 2
JAWAPAN NOID PNAMA KURSUS KETURUNAN BERAT 06DTKF012 JULIA DTK MELAYU 48 06DKEF056 CHAN CHEE LI DKE CINA 57 06DTKF103 TAN AH BEE DTK CINA 40 06DTKF058 SAIFUL DTK MELAYU 65 06DKEF027 RAJEEV DKE INDIA 68 06DKEF105 RIZAL DKE MELAYU 53 06DTKF069 DANISH IQBAL DTK MELAYU 60 06DTKF037 ANDY LAU DTK CINA 61 06DKEF074 SALMAN KHAN DKE INDIA 62 SOALAN 1 : Dapatkan PELAJAR 1 PELAJAR 2
JAWAPAN NOID PNAMA KURSUS KETURUNAN BERAT 06DTKF012 JULIA DTK MELAYU 48 06DTKF103 TAN AH BEE DTK CINA 40 06DKEF105 RIZAL DKE MELAYU 53 SOALAN 2 : Dapatkan PELAJAR 1 PELAJAR 2
JAWAPAN NOID PNAMA KURSUS KETURUNAN BERAT 06DKEF056 CHAN CHEE LI DKE CINA 57 06DTKF058 SAIFUL DTK MELAYU 65 06DKEF027 RAJEEV DKE INDIA 68 SOALAN 3 : Dapatkan PELAJAR 1 – PELAJAR 2
SQL Bahasa tanpa prosedur Antaramuka pengguna dengan DBMS Bahasa pangkalan data yang komprehensif iaitu mempunyai pernyataan untuk definisi data, pertanyaan dan kemaskini 2 jenis bahasa : Bahasa Manipulasi Data (DML) SQL Bahasa Definisi Data (DDL) SQL
KELEBIHAN SQL Pengguna hanya perlu menyatakanmaklumat yang dikehendaki dan bukan bagaimana untuk mendapatkan sesuatu maklumat Tidak menggunakan format tertentu Boleh digunakan oleh semua pihak samada pengguna akhir, pereka pangkalan data dan pentadbiran Mudah dipelajari kerana sinteksnya menggunakan bahasa inggeris mudah select, from dan where Tidak peka kepada huruf kecil atau besar tetapi mesti ditaip seperti apa yang terdapat dalam pangkalan data
BAHASA MANIPULASI DATA (DML)
BAHASA MANIPULASI DATA (DML) SQL Digunakan untuk menakrif struktur data iaitu untuk membina, mengubahsuai dan menghapus objek pangkalan data Digunakan juga untuk memperolehi semula atau mengubah data
BAHASA MANIPULASI DATA (DML) SQL SINTAKS TUJUAN SELECT … Menyenaraikan lajur atau ungkapan yang hendak diperolehi dan dihasilkan FROM … Menyenaraikan jadual atau jadual-jadual yang mana lajur hendak diperolehi [ WHERE … ] Menyatakan kriteria yang akan digunakan untuk memperolehi rekod [ ORDER BY … ] Menyusun baris mengikut lajur yang dinyatakan [ GROUP BY … ] Mengumpul baris mengikut nilai yang terdapat pada lajur yang dinyatakan [ HAVING … ] Menapis baris yang diperolehi mengikut syarat
Pangkalan Data PEMBEKAL-BAHAGIAN-PROJEK PNO PNAMA STATUS PBANDAR JNO JNAMA JBANDAR P12345 AHMAD 35 KUANTAN J001 SORTER KUANTAN P59231 SAIFUL 30 ALOR SETAR J012 PUNCH TAPAH P93758 AMRAN 20 TAPAH J007 READER ALOR SETAR P46452 BAHRAIN 30 ALOR SETAR J325 CONSOLE ALOR SETAR P10975 TAN CHENG LOCK 20 KUANTAN J251 TERMINAL ALOR SETAR J195 TAPE KUANTAN BNO BNAMA BERAT BBANDAR B1001 NAT 11 KUANTAN B1123 BOLT 12 KANGAR B1004 SKRU 15 ALOR SETAR B1075 KAM 17 IPOH B1234 KOG 18 TAPAH PEMBEKAL PROJEK BAHAGIAN
BAHASA MANIPULASI DATA (DML) SQL PNO PNAMA STATUS PBANDAR P12345 AHMAD 35 KUANTAN P59231 SAIFUL 30 ALOR SETAR P93758 AMRAN 20 TAPAH P46452 BAHRAIN 30 ALOR SETAR P10975 TAN CHENG LOCK 20 KUANTAN • Untuk mendapatkan SEMUA tupel - Menggunakan simbol ‘*’ - Menggunakan nama-nama lajur pada jadual yang dikehendaki Contoh 1 : Dapatkan rekod bagi PEMBEKAL Jawapan : SELECT * FROMPEMBEKAL ;
BAHASA MANIPULASI DATA (DML) SQL BNAMA NAT BOLT SKRU KAM KOG • Untuk mendapatkan lajur-lajur tertentu bagi semua tupel Contoh 2 : Senaraikan nama semua BAHAGIAN Jawapan : SELECT BNAMA FROM BAHAGIAN ;