Assignment 1 of Database (MySQL & Sqlite3)
-
Upload
aey-unthika -
Category
Education
-
view
565 -
download
1
Transcript of Assignment 1 of Database (MySQL & Sqlite3)
DATABASE
SYSTEM
AIRLINE
RESERVATIONS
SYSTEM. •
•
•
-
• 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
-
DATABASE
SYSTEM ER DIAGRAM
-
•
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
-
•
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
-
•
ER-TO-RELATIONAL MAPPING
ALGORITHM
DATABASE
SYSTEM
-
•
ER-TO-RELATIONAL MAPPING
ALGORITHM
DATABASE
SYSTEM
-
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
-
•
ER-TO-RELATIONAL MAPPING
ALGORITHM
DATABASE
SYSTEM
CAN_LAND
CAN_LAND_Airport_Code CAN_LAND_Type_name
-
•
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 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
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
Computer Specifications
DATABASE
SYSTEM
DATABASE
SYSTEM
-
SQLITE
• เปนโปรแกรมจดการฐานขอมลทมขนาดเลก
• พนฐานของโปรแกรมใชกบภาษา C และยงรองรบกบภาษาอนๆ เชน Python , PHP เปนตน
• สามารถใชงานงาย ไมตองการเซฟเวอร – ท าใหมการน าไปใชกบอปกรณพกพาอยาง
โทรศพทมอถอในระบบปฏบตการ IOS และ Android
• Version 3.11.0 Lastest Version
– Version ทใช ( 3.9.2)
• ม Modules : sqlite3 ส าหรบภาษา Python
– ผเขยน Gerhard Häring
-
การใชงาน SQLITE3 ผานหนาตาง COMMAND PROMPT
• เรยกใชโดยการพมพ sqlite3
• ในกรณทตองการเปดไฟล .db ผาน sqlite 1. เขาไปยงต าแหนงของไฟลนนกอน 2. พมพค าสง sqlite3 ชอไฟล .db
-
• สามารถดค าสงทมใหใชไดผาน .help
การใชงาน SQLITE3 ผานหนาตาง COMMAND PROMPT
-
ค าสงใน SQLITE3
• .database แสดงต าแหนงของ Database ทเปดอย
-
• .schema ชอตาราง หรอ .fullschema
แสดง Schema ของ Database
ค าสงใน SQLITE3
-
• .tables แสดงชอ Table ทมท งหมดใน Database
• .timer on|off แสดงเวลาในการท างาน
ค าสงใน SQLITE3
-
• .quit และ .exit ใชในการออกจาก sqlite3
ค าสงใน SQLITE3
-
• .save ชอไฟล
– ใชส าหรบเขยนไฟลดาตาเบสทอยใน memory เปน File
• .read ชอไฟล ใชอานไฟลทดาตาเบส
• .commit() saves all transactions to
the database since the last
COMMIT
• .restore ชอไฟล ท าการโหลดไฟลเขาไปใน memeory
ค าสงใน SQLITE3
-
ค าสงใน SQLITE3
-
• .header on|off เปนรปแบบการแสดงของ Table
• .mode column ใหแสดง Table ในรปแบบของ Column
ค าสงใน SQLITE3
-
ทดลองสราง TABLE และ INSERT ขอมล
• สราง Table ดวยค าสง • CREATE TABLE ชอตาราง ( ชอดาตา1 ประเภท1 , ชอดาตา
2 ประเภท2 , ...);
• Insert ดวยค าสง • INSTART INTO ขอตาราง VALUES (ขอมล1,ขอมล
2,...);
-
ทดลอง SELECT &
WHERE
• WHERE ดวยค าสง – SELECT * FROM ชอตาราง
– WHERE ชอAttribute = ค าทตองการคนหา;
-
MODULES : SQLITE3 IN
PYTHON
• sqlite3 รองรบกบ Python version 2.5+
• ใชงานผานการเรยก library
– Example :
• import sqlite3
• มค าสง – .version
– .connect
– และอน ๆ
-
SQLITE3.CONNECT
• รปแบบทเรยกใช ค าสง connect ใน Python
– ชอตวแปร = sqlite3.connect( ชอไฟล หรอ
memory )
– Example:
• Import sqlite3
• Conn = sqlite3.connect(:memory:)
• Or
• Conn = sqlite3.connect(“Test1.db”)
• ภายในจะมค าสง
– cursor() ,commit() ,close()
-
SQLITE3.CONNECT
• Cursor() เปนฟงกชนในการชต าแหนงของ Records
– สามารถเพมไดและตามจ านวน Records
• Execute( ค าสง sql ) เปนการรนค าสง sql ทใสคาไป
• Commit() เปนการบนทกวามการเปลยนแปลงขอมล
• Close() เปนค าสงปด Database ทเปดไวอย
-
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() //ปดการเชอมตอ
-
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']
#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"
-
•
CREATE RELATIONS IN
DBMS (MYSQL)
DATABASE
SYSTEM
-
•
DATABASE
SYSTEM CREATE RELATIONS IN
DBMS (MYSQL)
-
•
DATABASE
SYSTEM CREATE
RELATIONS IN DBMS (MYSQL)
-
•
DATABASE
SYSTEM CREATE
RELATIONS IN DBMS (MYSQL)
-
•
DATABASE
SYSTEM CREATE
RELATIONS IN DBMS (MYSQL)
-
•
DATABASE
SYSTEM CREATE
RELATIONS IN DBMS (MYSQL)
-
•
DATABASE
SYSTEM CREATE
RELATIONS IN DBMS (MYSQL)
-
•
DATABASE
SYSTEM CREATE RELATIONS IN
DBMS (MYSQL)
-
•
DATABASE
SYSTEM CREATE RELATIONS IN
DBMS (MYSQL)
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
•
INSERT DATA
DATABASE
SYSTEM
-
DATABASE
SYSTEM
INSERT DATA
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
•
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM
INSERT DATA
-
DATABASE
SYSTEM QUERY QUESTION
1. เราตองการทราบเวลาทเครองบนออกจากสนามบนสวรรณภม (SVB)
SELECT DEPAIR_AIRPORT_code, APPAIR_Scheduled_arr_time FROM flight_leg WHERE APPAIR_AIRPORT_code = SVB;
-
DATABASE
SYSTEM
QUERY >30 SEC
DBMS (MYSQL)
-
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;
-
DATABASE
SYSTEM
QUERY <30 SEC
DBMS (MYSQL)
-
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;
-
DATABASE
SYSTEM
QUERY >30 SEC
DBMS (MYSQL)
-
ปญหาทพบ
• Database is locked
• เกดจากการรนโคดของ Python แลว Error ท าให sqlite3 ไมได close()
• วธแกไข (ดวยตวเอง) เขา sqlite3 ผาน CMD แลวพมพค าสง .exit แลวท าการเชอมตอใหม