assignment 1 of database (mysql & sqlite3)

Post on 08-Jan-2017

566 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 แลวท าการเชอมตอใหม

top related