assignment 1 of database (mysql & sqlite3)

67
DATABASE SYSTEM AIRLINE RESERVATIONS SYSTEM.

Upload: aey-unthika

Post on 08-Jan-2017

566 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Assignment 1 of Database (MySQL & Sqlite3)

DATABASE

SYSTEM

AIRLINE

RESERVATIONS

SYSTEM. •

Page 2: Assignment 1 of Database (MySQL & Sqlite3)

-

• ER diagram in Figure 7.20, which shows a simplified schema for an airline

• Reference: R. Elmasri and S. B. Navathe. “Fundamentals of Database Systems” 6th Edition, Pearson Education Limited, 2010

DATABASE

SYSTEM ER DIAGRAM

Page 3: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM ER DIAGRAM

Page 4: Assignment 1 of Database (MySQL & Sqlite3)

-

ER-TO-RELATIONAL MAPPING

ALGORITHM

DATABASE

SYSTEM

AIRPORT

Airport_code City State Name

AIRPLANE_TYPE

Company Type_name Max_seats

AIRPLANE

Airplane_id Total_no_of_seats

FLIGHT

Number Airline Weekdays

Page 5: Assignment 1 of Database (MySQL & Sqlite3)

-

ER-TO-RELATIONAL MAPPING

ALGORITHM

DATABASE

SYSTEM

LEG_INSTANCE

No_of_avail_seats Date Lleg_on

SEAT

Seat_on Sdate

FLIGHT_LEG

Leg_no Fnumber

FARE

Code Amount Restrictions FAnumber

Page 6: Assignment 1 of Database (MySQL & Sqlite3)

-

ER-TO-RELATIONAL MAPPING

ALGORITHM

DATABASE

SYSTEM

Page 7: Assignment 1 of Database (MySQL & Sqlite3)

-

ER-TO-RELATIONAL MAPPING

ALGORITHM

DATABASE

SYSTEM

Page 8: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

AIRPORT

Airport_code City State Name

AIRPLANE_TYPE

Company Type_name Max_seats

AIRPLANE

Airplane_id Total_no_of_seats TYPE_Type_name

FLIGHT

Number Airline Weekdays

LEG_INSTANCE

No_of_avail_seats Date Lleg_on ASS_Airplane_id DEP_Airport_code DEP_Dep_time ARR_Airport_code ARR_Arr_time INS_OF_Leg_no

SEAT

Seat_on Sdate RES_Date RES_Customer_Name RES_Cphone

FLIGHT_LEG

Leg_no Fnumber LEGS_Number ARRAIR__Airport_code ARRAIR_Scheduled_arr_time DEPAIR_Airport_code DEPAIR_Scheduled_dep_time

FARE

Code Amount Restrictions FAnumber FARES_Number

Page 9: Assignment 1 of Database (MySQL & Sqlite3)

-

ER-TO-RELATIONAL MAPPING

ALGORITHM

DATABASE

SYSTEM

CAN_LAND

CAN_LAND_Airport_Code CAN_LAND_Type_name

Page 10: Assignment 1 of Database (MySQL & Sqlite3)

-

ER-TO-RELATIONAL MAPPING

ALGORITHM

DATABASE

SYSTEM

Page 11: Assignment 1 of Database (MySQL & Sqlite3)

AIRPORT

Airport_code City State Name

AIRPLANE_TYPE

Company Type_name Max_seats

AIRPLANE

Airplane_id Total_no_of_seats TYPE_Type_name

FLIGHT

Number Airline Weekdays

LEG_INSTANCE

No_of_avail_seats Date Lleg_on ASS_Airplane_id DEP_Airport_code DEP_Dep_time ARR_Airport_code ARR_Arr_time INS_OF_Leg_no

SEAT

Seat_on Sdate RES_Date RES_Customer_Name RES_Cphone

FLIGHT_LEG

Leg_no Fnumber LEGS_Number ARRAIR__Airport_code ARRAIR_Scheduled_arr_time DEPAIR_Airport_code DEPAIR_Scheduled_dep_time

FARE

Code Amount Restrictions FAnumber FARES_Number

CAN_LAND

CAN_LAND_Airport_Code CAN_LAND_Type_name

Page 12: Assignment 1 of Database (MySQL & Sqlite3)

AIRPORT

Airport_code City State Name

AIRPLANE_TYPE

Company Type_name Max_seats

AIRPLANE

Airplane_id Total_no_of_seats TYPE_Type_name

FLIGHT

Number Airline Weekdays

LEG_INSTANCE

No_of_avail_seats Date LEleg_on ASS_Airplane_id DEP_Airport_code DEP_Dep_time ARR_Airport_code ARR_Arr_time INS_OF_Leg_no

SEAT

Seat_on Sdate RES_Date RES_Customer_Name RES_Cphone

FLIGHT_LEG

Leg_no Fnumber LEGS_Number ARRAIR__Airport_code ARRAIR_Scheduled_arr_time DEPAIR_Airport_code DEPAIR_Scheduled_dep_time

FARE

Code Amount Restrictions FAnumber FARES_Number

CAN_LAND

CAN_LAND_Airport_Code CAN_LAND_Type_name

Page 13: Assignment 1 of Database (MySQL & Sqlite3)

Computer Specifications

DATABASE

SYSTEM

Page 14: Assignment 1 of Database (MySQL & Sqlite3)

DATABASE

SYSTEM

Page 15: Assignment 1 of Database (MySQL & Sqlite3)

-

SQLITE

• เปนโปรแกรมจดการฐานขอมลทมขนาดเลก

• พนฐานของโปรแกรมใชกบภาษา C และยงรองรบกบภาษาอนๆ เชน Python , PHP เปนตน

• สามารถใชงานงาย ไมตองการเซฟเวอร – ท าใหมการน าไปใชกบอปกรณพกพาอยาง

โทรศพทมอถอในระบบปฏบตการ IOS และ Android

• Version 3.11.0 Lastest Version

– Version ทใช ( 3.9.2)

• ม Modules : sqlite3 ส าหรบภาษา Python

– ผเขยน Gerhard Häring

Page 16: Assignment 1 of Database (MySQL & Sqlite3)

-

การใชงาน SQLITE3 ผานหนาตาง COMMAND PROMPT

• เรยกใชโดยการพมพ sqlite3

• ในกรณทตองการเปดไฟล .db ผาน sqlite 1. เขาไปยงต าแหนงของไฟลนนกอน 2. พมพค าสง sqlite3 ชอไฟล .db

Page 17: Assignment 1 of Database (MySQL & Sqlite3)

-

• สามารถดค าสงทมใหใชไดผาน .help

การใชงาน SQLITE3 ผานหนาตาง COMMAND PROMPT

Page 18: Assignment 1 of Database (MySQL & Sqlite3)

-

ค าสงใน SQLITE3

• .database แสดงต าแหนงของ Database ทเปดอย

Page 19: Assignment 1 of Database (MySQL & Sqlite3)

-

• .schema ชอตาราง หรอ .fullschema

แสดง Schema ของ Database

ค าสงใน SQLITE3

Page 20: Assignment 1 of Database (MySQL & Sqlite3)

-

• .tables แสดงชอ Table ทมท งหมดใน Database

• .timer on|off แสดงเวลาในการท างาน

ค าสงใน SQLITE3

Page 21: Assignment 1 of Database (MySQL & Sqlite3)

-

• .quit และ .exit ใชในการออกจาก sqlite3

ค าสงใน SQLITE3

Page 22: Assignment 1 of Database (MySQL & Sqlite3)

-

• .save ชอไฟล

– ใชส าหรบเขยนไฟลดาตาเบสทอยใน memory เปน File

• .read ชอไฟล ใชอานไฟลทดาตาเบส

• .commit() saves all transactions to

the database since the last

COMMIT

• .restore ชอไฟล ท าการโหลดไฟลเขาไปใน memeory

ค าสงใน SQLITE3

Page 23: Assignment 1 of Database (MySQL & Sqlite3)

-

ค าสงใน SQLITE3

Page 24: Assignment 1 of Database (MySQL & Sqlite3)

-

• .header on|off เปนรปแบบการแสดงของ Table

• .mode column ใหแสดง Table ในรปแบบของ Column

ค าสงใน SQLITE3

Page 25: Assignment 1 of Database (MySQL & Sqlite3)

-

ทดลองสราง TABLE และ INSERT ขอมล

• สราง Table ดวยค าสง • CREATE TABLE ชอตาราง ( ชอดาตา1 ประเภท1 , ชอดาตา

2 ประเภท2 , ...);

• Insert ดวยค าสง • INSTART INTO ขอตาราง VALUES (ขอมล1,ขอมล

2,...);

Page 26: Assignment 1 of Database (MySQL & Sqlite3)

-

ทดลอง SELECT &

WHERE

• WHERE ดวยค าสง – SELECT * FROM ชอตาราง

– WHERE ชอAttribute = ค าทตองการคนหา;

Page 27: Assignment 1 of Database (MySQL & Sqlite3)

-

MODULES : SQLITE3 IN

PYTHON

• sqlite3 รองรบกบ Python version 2.5+

• ใชงานผานการเรยก library

– Example :

• import sqlite3

• มค าสง – .version

– .connect

– และอน ๆ

Page 28: Assignment 1 of Database (MySQL & Sqlite3)

-

SQLITE3.CONNECT

• รปแบบทเรยกใช ค าสง connect ใน Python

– ชอตวแปร = sqlite3.connect( ชอไฟล หรอ

memory )

– Example:

• Import sqlite3

• Conn = sqlite3.connect(:memory:)

• Or

• Conn = sqlite3.connect(“Test1.db”)

• ภายในจะมค าสง

– cursor() ,commit() ,close()

Page 29: Assignment 1 of Database (MySQL & Sqlite3)

-

SQLITE3.CONNECT

• Cursor() เปนฟงกชนในการชต าแหนงของ Records

– สามารถเพมไดและตามจ านวน Records

• Execute( ค าสง sql ) เปนการรนค าสง sql ทใสคาไป

• Commit() เปนการบนทกวามการเปลยนแปลงขอมล

• Close() เปนค าสงปด Database ทเปดไวอย

Page 30: Assignment 1 of Database (MySQL & Sqlite3)

-

EXAMPLE SQLITE3 IN

PYTHON :

Import sqlite3 //Import library sqlite3

conn = sqlite3.connect(:memory:) //ท าการเขยนไฟลผาน memory

c = conn.cursor() //เรยกใชฟงกชน cursor()

c.execute('''CREATE TABLE AIRPORT( //สรางตาราง Table

Airport_code CHAR(5) PRIMARY KEY NOT NULL,

City CHAR(15) NOT NULL,

State CHAR(15) NOT NULL,

Name CHAR(70) NOT NULL

);''');

conn.commit() //ท าการบนทก

conn.close() //ปดการเชอมตอ

Page 31: Assignment 1 of Database (MySQL & Sqlite3)

-

PYTHON CODE

DATABASE

SYSTEM

• airplane

import csv

import time

from random import choice

from string import ascii_uppercase

def random_with_N_digits(n):

range_start = 10**(n-1)

range_end = (10**n)-1

return randint(range_start, range_end)

#AIRPORT

Airport_code = ['DMK','SVB','CNX','CEI','HKT','HDY']

City =

['Don_Meang','Bang_Pi','Meung_Chiang_Mai','Meuang_Chiang_Rai','Thalang','Khlong_Hoi_Khong']

State = ['Bangkok','Samutprakarn','Chiang_Mai','Chiang_Rai','Phuket','Songkra']

Name = ['Don_Mueang_International_Airport',

'Suvarnabhumi_Airport',

'Chaing_Mai_International_Airport',

'Mae_Fah_Luang_Chiang_Rai_International_Airport',

'Phuket_International_Airport',

'Hat_Yai_International_Airprot'

]

#AIRPLANE_TYPE

Company = ['AIRBUS','AIRBUS','AIRBUS','BOEING','BOEING','BOEING']

Type_name = ['AIRBUS_A380','AIRBUS_A350','AIRBUS_A340','BOEING_737','BOEING_747','BOEING_777']

Max_seats = ['600','250','350','300','450','800']

Page 32: Assignment 1 of Database (MySQL & Sqlite3)

#AIRPLANE

Airplane_id = ['TH_AIR001','TH_AIR002','TH_AIR003','TH_AIR004','TH_AIR005',

'TH_AIR006','TH_AIR007','TH_AIR008','TH_AIR009','TH_AIR010',

'TH_AIR101','TH_AIR102','TH_AIR103','TH_AIR104','TH_AIR105',

'TH_AIR106','TH_AIR107','TH_AIR108','TH_AIR109','TH_AIR110'

]

Total_no_of_seats = ['500','550','530','200','240','230','250','350','330','300',

'270','280','250','430','400','750','780','770','750','780'

]

Type_type_name = ['AIRBUS_A380','AIRBUS_A380','AIRBUS_A380','AIRBUS_A350','AIRBUS_A350',

'AIRBUS_A350','AIRBUS_A350','AIRBUS_A340','AIRBUS_A340','AIRBUS_A340',

'BOEING_737','BOEING_737','BOEING_737','BOEING_747','BOEING_747','BOEING_747',

'BOEING_777','BOEING_777','BOEING_777','BOEING_777','BOEING_777','BOEING_777']

with open('airplane.csv', 'wb') as csvfile:

spamwriter = csv.writer(csvfile,

quotechar=',')

i = 0

for i in range(20) :

spamwriter.writerow([Airplane_id[i]]+ [Total_no_of_seats[i]] + [Type_type_name[i]] )

print "fin"

Page 33: Assignment 1 of Database (MySQL & Sqlite3)

-

CREATE RELATIONS IN

DBMS (MYSQL)

DATABASE

SYSTEM

Page 34: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE RELATIONS IN

DBMS (MYSQL)

Page 35: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE

RELATIONS IN DBMS (MYSQL)

Page 36: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE

RELATIONS IN DBMS (MYSQL)

Page 37: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE

RELATIONS IN DBMS (MYSQL)

Page 38: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE

RELATIONS IN DBMS (MYSQL)

Page 39: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE

RELATIONS IN DBMS (MYSQL)

Page 40: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE RELATIONS IN

DBMS (MYSQL)

Page 41: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM CREATE RELATIONS IN

DBMS (MYSQL)

Page 42: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 43: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 44: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 45: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 46: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 47: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 48: Assignment 1 of Database (MySQL & Sqlite3)

-

INSERT DATA

DATABASE

SYSTEM

Page 49: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 50: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 51: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 52: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 53: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 54: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 55: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 56: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 57: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 58: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 59: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

INSERT DATA

Page 60: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM QUERY QUESTION

1. เราตองการทราบเวลาทเครองบนออกจากสนามบนสวรรณภม (SVB)

SELECT DEPAIR_AIRPORT_code, APPAIR_Scheduled_arr_time FROM flight_leg WHERE APPAIR_AIRPORT_code = SVB;

Page 61: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

QUERY >30 SEC

DBMS (MYSQL)

Page 62: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM QUERY QUESTION

2. ตองการทราบวาประเภทของเครองบนทลงจอดทดอนเมอง (DMK) ผลตมาจากบรษทไหน และจไดกทนง

SELECT A.company, A.Max_seats FROM airplane_type AS A, CAN_LAND AS C WHERE C.CAN_LAND_Airport_code = DMK /\ C.CAN_LAND_Type_name = A.Type_name;

Page 63: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

QUERY <30 SEC

DBMS (MYSQL)

Page 64: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM QUERY QUESTION

3. ตองการทราบวาสายการบนทไดคาโดยสารมากกวา 500 ในวนองคาร (Tuesday)

SELECT FA.Amount, FL.Airline, FL.Weekdays FROM table_flightAS FL, Fare AS FA WHERE FA.FARES_Number = FL.number /\ FA.Amount >= 500 /\ FL.Weekdays = Tuesday;

Page 65: Assignment 1 of Database (MySQL & Sqlite3)

-

DATABASE

SYSTEM

QUERY >30 SEC

DBMS (MYSQL)

Page 66: Assignment 1 of Database (MySQL & Sqlite3)

-

ปญหาทพบ

• Database is locked

• เกดจากการรนโคดของ Python แลว Error ท าให sqlite3 ไมได close()

• วธแกไข (ดวยตวเอง) เขา sqlite3 ผาน CMD แลวพมพค าสง .exit แลวท าการเชอมตอใหม

Page 67: Assignment 1 of Database (MySQL & Sqlite3)