Anda di halaman 1dari 12

Tugas 2 Basis Data

Petunjuk :
- Kerjakan berkelompok, maksimal satu kelompok terdiri dari 4 orang
- Buat laporan tugas dalam bentuk hardcopy.
- Tugas akan dipresentasikan di pertemuan berikutnya
1. Lakukan normalisasi BCNF untuk tabel berikut :
a. Tabel Jadwal_Praktikum
NIM Modul Instruktur
53234253263 C++ Ahmad
54535554545 Phyton Yaqin
54576556577 R Bastian

NIM, Modul  Instruktur


NIM Modul Instruktur
53234253263 C++ Ahmad
54535554545 Phyton Yaqin
54576556577 R Bastian

Instruktur  modul
Istruktur Modul
C++ Ahmad
Phyton Yaqin
R Bastian

b.
Nama Jalan Kodepos Kota/Kabupaten Panjang jalan
Jl. Sudirman 54342 Sidoarjo 19 km
Jl. Ahmad Yani 56535 Surabaya 20 km
Jl. Belibis 76566 Surabaya 14 km
Jl. Pelatuk 76767 Surabaya 32 km

Nama jalan, kodepos  panjang jalan


Nama Jalan Kodepos Panjang jalan
Jl. Sudirman 54342 19 km
Jl. Ahmad Yani 56535 20 km
Jl. Belibis 76566 14 km
Jl. Pelatuk 76767 32 km
Nama jalan, kota/kabupaten panjang jalan
Nama Jalan Kota/Kabupaten Panjang jalan
Jl. Sudirman Sidoarjo 19 km
Jl. Ahmad Yani Surabaya 20 km
Jl. Belibis Surabaya 14 km
Jl. Pelatuk Surabaya 32 km

Nama jalan, kota/kabupaten  kodepos


Nama Jalan Kota/Kabupaten Kodepos
Jl. Sudirman Sidoarjo 54342
Jl. Ahmad Yani Surabaya 56535
Jl. Belibis Surabaya 76566
Jl. Pelatuk Surabaya 76767

Kodepos  kota/kabupaten
Kodepos Kota/Kabupaten
54342 Sidoarjo
56535 Surabaya
76566 Surabaya
76767 Surabaya

2. Gambarkan ERD berikut dengan menggunakan tools Power Designer hingga


menghasilkan script DDL tabelnya. Jelaskan langkah-langkahnya
a.
1. Langkah pertama Buat sebuah tabel
2. Kemudian ketik nama identity nya. (Store, Region, Sales Transaction, Costumer,
Category, Vendor, Product).
3. Langkah selanjutnya Buat relasi dan kardinalitasnya
- Store ke Region Relasinya One to Many dengan Many di sisi sebelah Store dan
kardinalitasnya Mandatory dikedua sisi.
- Store ke Sales Transaction Relasinya One to Many dengan Many di sisi sebelah
Sales Transaction dan kardinalitasnya Mandatory di kedua sisi
- Sales Transaction ke Product Relasinya Many to Many dan kerdinalitasnya
Mandatory di kedua sisi
- Product ke Vendor Relasinya One to Many dengan Many di sisi sebelah Product
dan kardinalitasnya Mandatory dikedua sisi.
- Product ke Category Relasinya One to Many dengan Many di sisi debelah
Product dan kardinalitasnya adalah Mandatory di kedua sisi.
- Sales Transaction ke Costumer Relasinya adalah One to Many dengan Many di
sisi sebelah Sales Transaction dan kardinalitasnya adalah Mandatory.
4. Lalu Ketik atributnya.
- Atribut Store (Store_ID dan Store_Zip) dan yang menjadi Primary Key nya
adalah Store_ID
- Atribut Region (Region_ID dan Region_Name) dan yang menjadi Primary Key
adalah Region_ID
- Atribut Sales_Transaction (TID dan TDate) dan yang menjadi Primary Key nya
adalah TID
- Atribut Product (ProductID, ProductPrice, ProductName) dan yang menjadi
Primary Key adalah ProductID
- Atribut Category (CategoryID dan CategoryName) dan yang menjadi Primary
Key nya adalah CategoryID
- Atribut Vendor (VendorID dan VendorName) dan yang menjadi Primary Key
adalah VendorID
- Atribut Costumer (CostumerID, CostumerName, dan CostumerZIP) dan yang
menjadi Primary Key adalah CostumerID
5. Langkah selanjutnya save datanya.
6. Klik Tools, lalu pilih Generate Logical Data Model untuk merancang model Database
kita.
7. Ketikkan nama database nya.
8. Klik Tools, lalu pilih Generate Physical Data Model untuk memebuat database nya.
9. Pada kolom DBMS kita pilih MYSQL 5.0
10. Ketikkan nama database nya pada kolom Name, kemudian Klik OK,
11. Setelah membuat PDM, kita Generate Database nya dengan mengklik Database, pilih
Generate Database, Klik OK
12. Dibawah ini Scriptnya.

/*==============================================================*/
/* DBMS name: MySQL 5.0 */
/* Created on: 20/10/2019 15.31.38 */
/*==============================================================*/

drop table if exists CATEGORY;


drop table if exists COSTUMER;

drop table if exists PRODUCT;

drop table if exists REGION;

drop table if exists SALES_TRANSACTION;

drop table if exists SOLDVIA;

drop table if exists STORE;

drop table if exists VENDOR;

/*==============================================================*/
/* Table: CATEGORY */
/*==============================================================*/
create table CATEGORY
(
CATEGORYID char(6) not null,
CATEGORYNAME varchar(25),
primary key (CATEGORYID)
);

/*==============================================================*/
/* Table: COSTUMER */
/*==============================================================*/
create table COSTUMER
(
COSTUMERID char(6) not null,
COSTUMERNAME varchar(25),
COSTUMERZIP varchar(25),
primary key (COSTUMERID)
);

/*==============================================================*/
/* Table: PRODUCT */
/*==============================================================*/
create table PRODUCT
(
PRODUCTID char(6) not null,
CATEGORYID char(6) not null,
VENDORID char(6) not null,
PRODUCTPRICE numeric(8,0),
PRODUCTNAME varchar(25),
primary key (PRODUCTID)
);

/*==============================================================*/
/* Table: REGION */
/*==============================================================*/
create table REGION
(
REGION_ID char(6) not null,
REGION_NAME varchar(25),
primary key (REGION_ID)
);

/*==============================================================*/
/* Table: SALES_TRANSACTION */
/*==============================================================*/
create table SALES_TRANSACTION
(
TID char(6) not null,
STORE_ID char(6) not null,
COSTUMERID char(6) not null,
TDATE datetime,
primary key (TID)
);

/*==============================================================*/
/* Table: SOLDVIA */
/*==============================================================*/
create table SOLDVIA
(
PRODUCTID char(6) not null,
TID char(6) not null,
NOOFITEMS char(6),
primary key (PRODUCTID, TID)
);

/*==============================================================*/
/* Table: STORE */
/*==============================================================*/
create table STORE
(
STORE_ID char(6) not null,
REGION_ID char(6) not null,
STORE_ZIP varchar(125024),
primary key (STORE_ID)
);

/*==============================================================*/
/* Table: VENDOR */
/*==============================================================*/
create table VENDOR
(
VENDORID char(6) not null,
VENDORNAME varchar(25),
primary key (VENDORID)
);

alter table PRODUCT add constraint FK_BELONGSTO foreign key (CATEGORYID)


references CATEGORY (CATEGORYID) on delete restrict on update restrict;

alter table PRODUCT add constraint FK_SUPPLIEDBY foreign key (VENDORID)


references VENDOR (VENDORID) on delete restrict on update restrict;

alter table SALES_TRANSACTION add constraint FK_BUYVIA foreign key


(COSTUMERID)
references COSTUMER (COSTUMERID) on delete restrict on update restrict;

alter table SALES_TRANSACTION add constraint FK_OCCUREDAT foreign key


(STORE_ID)
references STORE (STORE_ID) on delete restrict on update restrict;

alter table SOLDVIA add constraint FK_SOLDVIA foreign key (PRODUCTID)


references PRODUCT (PRODUCTID) on delete restrict on update restrict;

alter table SOLDVIA add constraint FK_SOLDVIA2 foreign key (TID)


references SALES_TRANSACTION (TID) on delete restrict on update restrict;

alter table STORE add constraint FK_LOCATEDIN foreign key (REGION_ID)


references REGION (REGION_ID) on delete restrict on update restrict;

b. Sebuah perusahaan mempunyai beberapa departemen. Setiap departemen mempunyai


seorang supervisor dan paling tidak satu karyawan. Setiap karyawan harus terdaftar paling
tidak di satu departemen, tapi dimungkinkan karyawan bekerja lebih dari satu departemen.
Setiap karyawan dipekerjakan pada sebuah proyek, tapi dimungkinkan karyawan sedang libur
dan tidak terdaftar pada sebuah proyek. Data yang diperlukan adalah nama departemen, nama
proyek, nama supervisor, nama karyawan, id supervisor, id karyawan, dan nomor unik
proyek.

1. Buat tabelnya.
2. Ketikkan nama identity nya. (Karyawan, Departement, Proyek, Supervisor).
3. Buat relasinya dan kardinalitasnya
- Karyawan ke Departement Relasinya Many to Many dan kardinalitasnya
Mandatory dikedua sisi.
- Karyawan ke Proyek Relasinya One to Many dengan Many di sisi sebelah
Karyawan dan kardinalitasnya Mandatory di sisi Proyek dan Opsional di sisi
Karyawan.
- Departement ke Supervisor Relasinya One to One dan kerdinalitasnya Mandatory
di kedua sisi
4. Ketikkan atributnya.
- Atribut Karyawan (ID_Kar dan Nama_Kar) dan yang menjadi Primary Key nya
adalah ID_Kar
- Atribut Proyek (Nomor_Unik dan Nama_Proyek) dan yang menjadi Primary Key
adalah Nomor_Unik
- Atribut Departement (nama_dept)
- Atribut Supervisor (ID_Super dan Nama_Super) dan yang menjadi Primary Key
adalah ID_Super
5. Save datanya.
6. Klik Tools, lalu pilih Generate Logical Data Model untuk merancang model Database
kita.
7. Ketik nama database nya.
8. Klik Tools, lalu pilih Generate Physical Data Model untuk memebuat database nya.
9. Pada kolom DBMS kita pilih MYSQL 5.0
10. Ketikkan nama database nya pada kolom Name, kemudian Klik OK,
11. Setelah membuat PDM, kita Generate Database nya dengan mengklik Database, pilih
Generate Database, Klik OK
12. Dibawah ini Scriptnya.
/*==============================================================*/
/* DBMS name: MySQL 5.0 */
/* Created on: 19/10/2019 21.08.04 */
/*==============================================================*/

drop table if exists BEKERJA_PADA;

drop table if exists DEPARTEMENT;

drop table if exists KARYAWAN;

drop table if exists PROYEK;

drop table if exists SUPERVISOR;

/*==============================================================*/
/* Table: BEKERJA_PADA */
/*==============================================================*/
create table BEKERJA_PADA
(
ID_SUPER char(6) not null,
ID_KAR char(8) not null,
primary key (ID_SUPER, ID_KAR)
);

/*==============================================================*/
/* Table: DEPARTEMENT */
/*==============================================================*/
create table DEPARTEMENT
(
ID_SUPER char(6) not null,
NAMA_DEPT char(30),
primary key (ID_SUPER)
);

/*==============================================================*/
/* Table: KARYAWAN */
/*==============================================================*/
create table KARYAWAN
(
ID_KAR char(8) not null,
NOMOR_UNIK char(6) not null,
NAMA_KAR varchar(30),
primary key (ID_KAR)
);

/*==============================================================*/
/* Table: PROYEK */
/*==============================================================*/
create table PROYEK
(
NOMOR_UNIK char(6) not null,
NAMA_PROYEK varchar(30),
primary key (NOMOR_UNIK)
);

/*==============================================================*/
/* Table: SUPERVISOR */
/*==============================================================*/
create table SUPERVISOR
(
ID_SUPER char(6) not null,
NAMA_SUPER varchar(30),
primary key (ID_SUPER)
);

alter table BEKERJA_PADA add constraint FK_BEKERJA_PADA foreign key


(ID_SUPER)
references DEPARTEMENT (ID_SUPER) on delete restrict on update restrict;

alter table BEKERJA_PADA add constraint FK_BEKERJA_PADA2 foreign key (ID_KAR)


references KARYAWAN (ID_KAR) on delete restrict on update restrict;

alter table DEPARTEMENT add constraint FK_DIKEPALAI foreign key (ID_SUPER)


references SUPERVISOR (ID_SUPER) on delete restrict on update restrict;

alter table KARYAWAN add constraint FK_MENGERJAKAN foreign key


(NOMOR_UNIK)
references PROYEK (NOMOR_UNIK) on delete restrict on update restrict;

Anda mungkin juga menyukai