• Tidak ada hasil yang ditemukan

24. Jadwal_kembali

4.2.3 Perancangan Basis Data Fisikal

4.2.3.1 Mendesain Base Relations

Tujuan dari tahap ini adalah untuk mengidentifikasikan relasional basis data dalam model data logikal global yang digunakan dalam DBMS dengan menggunakan DBDL (Database Design Language). DBDL yang digunakan adalah sebagai berikut:

1. User

Domain username variable length character string, length 20 Domain password variable length character string, length 50 Domain nama_lengkap variable length character string, length 50 Domain gender variable length character string, length 10

Domain alamat text

Domain email variable length character string, length 50 Domain telp variable length character string, length 20 Domain status tinyint, length 1

User (

username username NOT NULL, password password NOT NULL,

nama_lengkap nama_lengkap NOT NULL, gender gender NOT NULL,

alamat alamat NOT NULL, email email NOT NULL, telp telp NOT NULL, status status NOT NULL,

PRIMARY KEY (username) );

2. Message_header

Domain pesan_id integer, length 10

Domain subject variable length character string, length 50 Domain isi text

Domain tanggal datetime Domain status tinyint, length 1 Message_header (

pesan_id pesan_id NOT NULL, subject subject NOT NULL, isi isi NOT NULL,

tanggal tanggal NOT NULL, status status NOT NULL, PRIMARY KEY (pesan_id) );

3. Message_sender

Domain pesan_id integer, length 10

Domain username variable length character string, length 20 Message_sender (

pesan_id pesan_id NOT NULL, username username NOT NULL ,

FOREIGN KEY (pesan_id) references Message_header (pesan_id) references Message_sent (pesan_id)

ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION

);

4. Message_sent

Domain pesan_id integer, length 10

Domain subject variable length character string, length 50 Domain isi text

Domain tanggal datetime Domain status tinyint, length 1 Message_sent (

pesan_id pesan_id NOT NULL, subject subject NOT NULL, isi isi NOT NULL,

tanggal tanggal NOT NULL, status status NOT NULL, PRIMARY KEY (pesan_id) );

5. Message_receiver

Domain pesan_id integer, length 10

Domain username variable length character string, length 20 Message_receiver (

pesan_id pesan_id NOT NULL, username username NOT NULL ,

PRIMARY KEY (pesan_id, username)

FOREIGN KEY (pesan_id) references Message_header (pesan_id) references Message_sent (pesan_id)

ON UPDATE CASCADE ON DELETE NO ACTION, FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION)

);

6. Penumpang

Domain penumpang_id variable length character string, length 20 Domain nama_penumpang variable length character string, length 30 Domain gender variable length character string, length 10

Domain jenis_penumpang variable length character string, length 10 Penumpang (

penumpang_id penumpang_id NOT NULL,

nama_penumpang nama_penumpang NOT NULL, gender gender NOT NULL,

jenis_penumpang jenis_penumpang NOT NULL, PRIMARY KEY (penumpang_id)

7. Peserta

Domain peserta_id variable length character string, length 20 Domain nama_peserta variable length character string, length 30 Domain gender variable length character string, length 10 Peserta (

peserta_id peserta_id NOT NULL, nama_peserta nama_peserta NOT NULL, gender gender NOT NULL ,

PRIMARY KEY (peserta_id) );

8. Tiket_reservasi

Domain reservasi_tiket_id variable length character string, length 30 Domain username variable length character string, length 20

Domain tanggal_reservasi datetime

Domain keberangkatan_id variable length character string, length 20 Domain kembali_id variable length character string, length 20 Domain tipe_pembayaran variable length character string, length 20 Domain status_pembayaran variable length character string, length 10 Domain tanggal_pembayaran datetime

Domain tipe_pengambilan variable length character string, length 20 Tiket_reservasi (

reservasi_tiket_id reservasi_tiket_id NOT NULL, username username NOT NULL,

tanggal_reservasi tanggal_reservasi NOT NULL, keberangkatan_id keberangkatan_id NOT NULL,

kembali_id kembali_id,

tipe_pembayaran tipe_pembayaran NOT NULL, status_pembayaran status_pembayaran NOT NULL , tanggal_pembayaran tanggal_pembayaran,

tipe_pengambilan tipe_pengambilan NOT NULL, PRIMARY KEY (reservasi_tiket_id)

FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (keberangkatan_id) references Jadwal_berangkat (keberangkatan_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (kembali_id) references Jadwal_kembali (kembali_id) ON UPDATE CASCADE ON DELETE NO ACTION)

);

9. Tiket_reservasi_detail

Domain reservasi_tiket_id variable length character string, length 30 Domain penumpang_id variable length character string, length 20 Tiket_reservasi_detail (

reservasi_tiket_id reservasi_tiket_id NOT NULL, penumpang_id penumpang_id NOT NULL,

FOREIGN KEY (reservasi_tiket_id) references Tiket_reservasi (reservasi_tiket_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (penumpang_id) references Penumpang (penumpang_id) ON UPDATE CASCADE ON DELETE NO ACTION)

);

10. Jadwal_berangkat

Domain keberangkatan_id variable length character string, length 20 Domain penerbangan_id variable length character string, length 20 Domain tanggal_berangkat date

Jadwal_berangkat (

keberangkatan_id keberangkatan_id NOT NULL, penerbangan_id penerbangan_id NOT NULL, tanggal_berangkat tanggal_berangkat NOT NULL, PRIMARY KEY (keberangkatan_id)

FOREIGN KEY (penerbangan_id) references Penerbangan (penerbangan_id) ON UPDATE CASCADE ON DELETE NO ACTION)

);

11. Jadwal_kembali

Domain penerbangan_id variable length character string, length 20 Domain tanggal_kembali date

Jadwal_kembali (

kembali_id kembali_id NOT NULL,

penerbangan_id penerbangan_id NOT NULL, tanggal_kembali tanggal_kembali NOT NULL, PRIMARY KEY (kembali_id)

FOREIGN KEY (penerbangan_id) references Penerbangan (penerbangan_id) ON UPDATE CASCADE ON DELETE NO ACTION)

);

12. Tour_reservasi

Domain reservasi_tour_id variable length character string, length 30 Domain username variable length character string, length 20

Domain tanggal_reservasi datetime

Domain tour_id variable length character string, length 20

Domain tipe_pembayaran variable length character string, length 20 Domain status_pembayaran variable length character string, length 10 Domain tanggal_pembayaran datetime

Domain tipe_pengambilan variable length character string, length 20 Tour_reservasi (

reservasi_tour_id reservasi_tour_id NOT NULL, username username NOT NULL,

tanggal_reservasi tanggal_reservasi NOT NULL, tour_id tour_id NOT NULL,

tipe_pembayaran tipe_pembayaran NOT NULL, status_pembayaran status_pembayaran NOT NULL, tanggal_pembayaran tanggal_pembayaran,

tipe_pengambilan tipe_pengambilan NOT NULL, PRIMARY KEY (reservasi_tour_id)

FOREIGN KEY (tour_id) references Tour (tour_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION)

);

13. Tour_reservasi_detail

Domain reservasi_tour_id variable length character string, length 30 Domain peserta_id variable length character string, length 20 Tour_reservasi_detail (

reservasi_tour_id reservasi_tour_id NOT NULL, peserta_id peserta_id NOT NULL,

PRIMARY KEY (reservasi_tour_id, peserta_id)

FOREIGN KEY (reservasi_tour_id) references Tour_reservasi (reservasi_tour_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (peserta_id) references Peserta (peserta_id) ON UPDATE CASCADE ON DELETE NO ACTION)

);

14. Voucher_hotel_reservasi

Domain reservasi_hotel_id variable length character string, length 30 Domain username variable length character string, length 20

Domain tanggal_reservasi datetime

Domain hotel_id variable length character string, length 20 Domain tanggal_masuk date

Domain tanggal_keluar date

Domain tipe_pembayaran variable length character string, length 20 Domain status_pembayaran variable length character string, length 10 Domain tanggal_pembayaran datetime

Domain tipe_pengambilan variable length character string, length 20 Voucher_hotel_reservasi (

reservasi_hotel_id reservasi_hotel_id NOT NULL, username username NOT NULL,

tanggal_reservasi tanggal_reservasi NOT NULL, hotel_id hotel_id NOT NULL,

tanggal_masuk tanggal_masuk NOT NULL, tanggal_keluar tanggal_keluar NOT NULL, tipe_pembayaran tipe_pembayaran NOT NULL, status_pembayaran status_pembayaran NOT NULL, tanggal_pembayaran tanggal_pembayaran,

tipe_pengambilan tipe_pengambilan NOT NULL,

PRIMARY KEY (reservasi_hotel_id)

FOREIGN KEY (hotel_id) references Hotel (hotel_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION)

);

15. Voucher_hotel_reservasi_detail

Domain reservasi_hotel_id variable length character string, length 30 Domain tarif_kamar_id variable length character string, length 20 Domain jumlah_kamar integer, length 2

Voucher_hotel_reservasi (

reservasi_hotel_id reservasi_hotel_id NOT NULL, tarif_kamar_id tarif_kamar_id NOT NULL, jumlah_kamar jumlah_kamar NOT NULL,

PRIMARY KEY (reservasi_hotel_id, tarif_kamar_id) FOREIGN KEY (reservasi_hotel_id) references

Voucher_hotel_resrvasi (reservasi_hotel_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (tarif_kamar_id) references Tarif_hotel (tarif_kamar_id) ON UPDATE CASCADE ON DELETE NO ACTION)

16. Penerbangan

Domain penerbangan_id variable length character string, length 30 Domain maskapai_id variable length character string, length 20 Domain jam_berangkat time

Domain jam_tiba time

Domain rute_id variable length character string, length 20 Domain class variable length character string, length 10 Domain tarif_tiket integer, length 10

Domain masa_berlaku date Penerbangan (

penerbangan_id penerbangan_id NOT NULL, maskapai_id maskapai_id NOT NULL, jam_berangkat jam_berangkat NOT NULL, jam_tiba jam_tiba NOT NULL,

rute_id rute_id NOT NULL, class class NULL,

tarif_tiket tarif_tiket NOT NULL, masa_berlaku masa_berlaku date,

PRIMARY KEY (penerbangan_id)

FOREIGN KEY (maskapai_id) references Maskapai (maskapai_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (rute_id) references Rute (rute_id) ON UPDATE CASCADE ON DELETE NO ACTION)

); 17. Maskapai

Domain maskapai_id variable length character string, length 20 Domain nama_maskapai variable length character string, length 20 Maskapai (

maskapai_id maskapai_id NOT NULL, nama_maskapai nama_maskapai NOT NULL, PRIMARY KEY (maskapai_id)

); 18. Rute

Domain rute_id variable length character string, length 20 Domain kota_asal variable length character string, length 20 Domain kota_tujuan variable length character string, length 20 Domain kota_transit variable length character string, length 20

Domain status_penerbangan variable length character string, length 20 Rute (

rute_id rute_id NOT NULL , kota_asal kota_asal NOT NULL, kota_tujuan kota_tujuan NOT NULL, kota_transit kota_transit NULL,

status_penerbangan status_penerbangan NOT NULL, PRIMARY KEY (rute_id)

19. Tour

Domain tour_id variable length character string, length 20 Domain nama_tour variable length character string, length 50 Domain tarif_tour variable length character string, length 10 Domain jenis_tour variable length character string, length 20 Domain keterangan text

Domain image variable length character string, length 50 Tour (

tour_id tour_id NOT NULL, nama_tour nama_tour NOT NULL, tarif_tour tarif_tour NOT NULL, jenis_tour jenis_tour NOT NULL, keterangan keterangan NOT NULL, image image NOT NULL,

PRIMARY KEY (tour_id) );

20. Hotel

Domain hotel_id variable length character string, length 30 Domain nama_hotel variable length character string, length 30 Domain alamat text

Domain lokasi variable length character string, length 20 Domain negara variable length character string, length 20 Domain star tinyint, length 1

Domain jenis_hotel variable length character string, length 50 Hotel (

hotel_id hotel_id NOT NULL , nama_hotel nama_hotel NOT NULL, alamat alamat NOT NULL,

lokasi lokasi NOT NULL, negara negara NOT NULL, star star NOT NULL,

jenis_hotel jenis_hotel NOT NULL, PRIMARY KEY (hotel_id)

); 21. Tarif_hotel

Domain tarif_kamar_id variable length character string, length 20 Domain hotel_id variable length character string, length 20 Domain tipe_kamar_id variable length character string, length 10 Domain tipe_bed_id variable length character string, length 10 Domain breakfast variable length character string, length 10 Domain tarif_kamar int, length 10

Tarif_hotel (

tarif_kamar_id tarif_kamar_id NOT NULL, hotel_id hotel_id NOT NULL,

tipe_kamar_id tipe_kamar_id NOT NULL, tipe_bed_id tipe_bed_id NOT NULL, breakfast breakfast NOT NULL,

tarif_kamar tarif_kamar NOT NULL, PRIMARY KEY (tarif_kamar_id)

FOREIGN KEY (hotel_id) references Hotel (hotel_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (tipe_kamar_id) references Tipe_kamar (tipe_kamar_id) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (tipe_bed_id) references Tipe_bed (tipe_bed_id) ON UPDATE CASCADE ON DELETE NO ACTION)

);

22. Tipe_kamar

Domain tipe_kamar_id variable length character string, length 10 Domain nama_tipe_kamar variable length character string, length 20 Tipe_kamar (

tipe_kamar_id tipe_kamar_id NOT NULL, nama_tipe_kamar nama_tipe_kamar NOT NULL, PRIMARY KEY (tipe_kamar_id)

); 23. Tipe_bed

Domain tipe_bed_id variable length character string, length 10 Domain nama_tipe_bed variable length character string, length 20 Tipe_bed (

nama_tipe_bed nama_tipe_bed NOT NULL, PRIMARY KEY (tipe_bed_id)

);

24. Cancel_reservasi_tiket

Domain cancel_reservasi_tiket_id variable length character string, length 30

Domain username variable length character string, length 20 Domain tanggal_cancel datetime

Domain reservasi_tiket_id variable length character string, length 30 Domain charge integer, length 10

Cancel_reservasi_tiket (

cancel_reservasi_tiket_id cancel_reservasi_tiket_id NOT NULL, username username NOT NULL,

tanggal_cancel tanggal_cancel NOT NULL, reservasi_tiket_id reservasi_tiket_id NOT NULL, charge charge NOT NULL,

PRIMARY KEY (cancel_reservasi_tiket_id)

FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (reservasi_tiket_id) references Tiket_reservasi (reservasi_tiket_id) ON UPDATE CASCADE ON DELETE NO ACTION)

25. Cancel_reservasi_tour

Domain cancel_reservasi_tour_id variable length character string, length 30

Domain username variable length character string, length 20 Domain tanggal_cancel datetime

Domain reservasi_tour_id variable length character string, length 30 Domain charge int, length 10

Cancel_reservasi_tour (

cancel_reservasi_tour_id cancel_reservasi_tour_id NOT NULL, username username NOT NULL,

tanggal_cancel tanggal_cancel NOT NULL, reservasi_tour_id reservasi_tour_id NOT NULL, charge charge NOT NULL,

PRIMARY KEY (cancel_reservasi_tour_id)

FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (reservasi_tour_id) references Tour_reservasi (reservasi_tour_id) ON UPDATE CASCADE ON DELETE NO ACTION)

26. Cancel_reservasi_hotel

Domain cancel_reservasi_hotel_id variable length character string, length 30

Domain username variable length character string, length 20 Domain tanggal_cancel datetime

Domain reservasi_hotel_id variable length character string, length 30 Domain charge int, length 10

Cancel_reservasi_hotel (

cancel_reservasi_hotel_id cancel_reservasi_hotel_id NOT NULL, username username NOT NULL,

tanggal_cancel tanggal_cancel NOT NULL, reservasi_hotel_id reservasi_hotel_id NOT NULL, charge charge NOT NULL,

PRIMARY KEY (cancel_reservasi_hotel_id)

FOREIGN KEY (username) references User (username) ON UPDATE CASCADE ON DELETE NO ACTION)

FOREIGN KEY (reservasi_hotel_id) references

Voucher_hotel_reservasi (reservasi_hotel_id) ON UPDATE CASCADE ON DELETE NO ACTION)

Dokumen terkait