วันเสาร์ที่ 26 พฤษภาคม พ.ศ. 2561

Link Video Presentation Resort Managemant System Project.

Video Presentation Resort Managemant System Project.

จัดทำโดย
พากษ์เสียง: คุณาสิน  ทองมณี  5801012620011
ลำดับภาพ: สุพิชชา  ศรีศิริกุลวัฒนะ  5801012620097
อัดวิดีโอ: เจษฎา  วีรเดชกำพล  5801012630033
ตัดต่อวิดีโอ: ธิติ  รุ่งเรือง  5801012630106
(สมาชิกในกลุ่มอีก 2 คนทำวิดีโอพรีเซนต์ ER-Diagram)

https://youtu.be/0EXbeQKJrA0

วิดีโอพรีเซนต์ ER-Diagram อยู่ในบล็อคของ บัณฑิตา ลิ่มวิไล

วันจันทร์ที่ 2 เมษายน พ.ศ. 2561

Normalization - 1NF 2NF 3NF

- 1NF หรือ Fisrt Normal Form มีเงื่อนไขอยู่ว่า ต้องไม่มีคอลลัมน์ใดในตารางที่มีค่ามากกว่า 1 ค่า หรือที่เรียกว่า Atomic ซึ่งหมายถึง ข้อมูลที่เก็บไว้ในแต่ละคอลลัมน์ต้องมีลักษณะเป็น Single Value ไม่สามารถแยกย่อยได้อีก

ตัวอย่าง
จะเห็นว่าคอลลัมน์วิชาที่ชอบและวิชาที่ไม่ชอบมีมากกว่า 1 ค่า จึงไม่เป็น Atomic ถือว่าไม่เป็น 1NF

ดังนั้น เมื่อผ่านการทำ Normalization จะได้ตารางออกมาดังนี้
โดยวิธีการทำคือ แยกคอลลัมน์ที่มีมากกว่า 1 ค่า ออกเป็นแถวใหม่

- 2NF หรือ Second Normal Form มีเงื่อนไขอยู่ว่า ต้องมีคุณสมบัติของ 1NF และ ทุก Nonprime Attribute ต้องขึ้นกับ Prime (Primary Key) ทุกตัว โดยการขึ้นต่อกันก็คือ ต้องสามารถเขียนอยู่ในรูปฟังก์ชันของ X ---> Y ได้ (อ่านว่า ถ้า X แล้ว Y) ซึ่งหมายถึง ทุกๆค่าของ X ที่เลือกมา จะต้องแสดงถึงค่า Y ที่สัมพันธ์กับค่า X นั้นๆได้

ตัวอย่าง
ถ้าถามว่านักศึกษาคนใดที่มีรหัสนักศึกษา 5801012630106 ก็สามารถทราบได้ว่า เป็นนักศึกษาที่มีชื่อเล่นว่า เฟรม เพราะรหัสนักศึกษาเป็น Primary key ซึ่งเราสามารถเขียนเป็นเงื่อนไขได้ว่า

รหัสนักศึกษา(X) ---> ชื่อเล่น(Y)

หากพิจารณาตารางผลการเรียนของนักศึกษาต่อไปนี้ ว่าเป็น 2NF หรือไม่
จะเห็นได้ว่า ตารางดังกล่าวมีคุณสมบัติของ 1NF คือทุกคอลลัมน์มีข้อมูลเป็น Atomic ทั้งหมด แต่ทุกๆ Nonprime Attribute ไม่ขึ้นกับทุก Prime ดังนี้

ชื่อนักศึกษา กับ ระดับชั้น ขึ้นกับ รหัสนักศึกษาเท่านั้น และ ชื่อวิชา หน่วยกิต ขึ้นกับ รหัสวิชาเท่านั้น
ดังนั้น จึงแยกตารางออกมาเป็น 2 ตารางตามฟังก์ชันการขึ้นต่อกันดังนี้

ตารางที่ 1 ตารางข้อมูลนักศึกษา

ตารางที่ 2 ตารางข้อมูลวิชา

ตารางที่ 3 ตารางผลการเรียน

- 3NF หรือ Third Normal Form มีเงื่อนไขว่า ต้องมีคุณสมบัติของ 2NF และ Nonprime ต้องไม่ขึ้นกับ Nonprime

ตัวอย่าง พิจารณาตารางข้อมูลผลการเรียนของนักศึกษา
จากตารางจะเห็นว่า มีคุณสมบัติของ 2NF แล้ว กล่าวคือ รหัสนักศึกษาเป็น Primary key ที่ใช้บอกข้อมูลต่างๆในตารางได้ แต่ เกรดขึ้นอยู่กับคะแนนที่ได้ ซึ่งเป็น Nonprime เหมือนกัน ดังนั้นจึงแยกตารางออกให้เป็น 3NF ดังนี้

ตารางข้อมูลนักศึกษา

ตารางข้อมูลผลการเรียนนักศึกษา

แหล่งอ้างอิงข้อมูล และที่มาของตัวอย่าง: https://www.slideshare.net/ceokhankluay/first-normal-form

วันจันทร์ที่ 26 มีนาคม พ.ศ. 2561

Guideline 4


Guideline 4

1. ออกแบบ schema ของความสัมพันธ์ให้เข้ากับเงื่อนไขที่ว่า แต่ละ attribute ต้องเท่ากัน และมีความสัมพันธ์กันแบบเหมาะสม เพื่อรับประกันว่าจะไม่มีการสร้าง tuples ที่ไม่ถูกต้อง

2. หลีกเลี่ยงความสัมพันธ์ที่มีการจับคู่ attribute ที่ไม่ได้เกิดจากการรวมกันของ foreign key และ primary key

ที่มา: http://comet.lehman.cuny.edu/jung/cmp420758/chapter15.pdf

Summary of performance comparisons


- Operation System Windows 10 Education 64-bit 
- Hardware Ram 8 GB 
- Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz (4 CPUs), ~2.6 GHz 
- HDD 1000 GB

1. Insert 8M * 40 Rows (นักเรียน 8 ล้านคน เรียนคนละ 40 วิชา)
2. ใช้ Python 3.7.0b1 
3. run ใน Sublime Text


ใช้เวลา 31 นาที 32 วินาที


ได้ขนาดไฟล์ 18.5 GB ซึ่งคิดเป็น 2.3125 เท่าของ Ram

ซึ่งใช้เวลาในการ Query วิชาและเกรดของนักเรียน 1 คน = 127 ms


- Operation System Windows 10 Education 64-bit 
- Hardware Ram 8 GB 
- Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz 
- HDD 520 GB

1. Insert 4M * 40 Rows (เนื่องจาก 8M ใช้เวลานานเกินไป จึงลดเหลือเพียง 4M)
2. ใช้ Python 3.6.0 
3. run ใน Sublime Text


ใช้เวลา 8 ชั่วโมง


ได้ไฟล์ขนาด 8.12 GB คิดเป็น 1.015 เท่าของ RAM

ซึ่งใช้เวลาในการ Query วิชาและเกรดของนักเรียน 1 คน = 8 นาที

ด้วยความสงสัยว่า เหตุผลที่ช้า เกิดจากคอมหรือตัว Database ที่ใช้ จึงได้ลองทำการใช้ SQLite แทน


ได้ผลว่า ใช้เวลา 30 นาที 28 วินาที ซึ่งเร็วกว่า ดังนั้นจึงสรุปได้ว่า ProgreSQL ช้ากว่า SQLite


- Operation System Windows 10 Education 64 bit 
- Hardware Ram 8 GB 
- Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz, 2501 Mhz, 4 Core(s), 8 Logical Processor(s) 
- HDD 1000 GB

1. Insert 4M * 40 Rows
2. Python 3.6.4 
3. Run with Command Prompt


ใช้เวลาในการสร้างไฟล์ 9 ชั่วโมง 18 นาที

ใช้เวลาในการ Query 94 ms


ผลการเปรียบเทียบสรุปได้ดังนี้

Team Project

Resort Management System (จัดระบบที่พัก)


ความสามารถของโปรแกรม

1. ตรวจสอบข้อมูลผู้ใช้งาน
2. สร้างใบเสร็จให้กับลูกค้า (คิด)

คุณสมบัติต่างๆของโปรแกรม

1. Adding/Querying customer’s information
- เลขประจำตัวประชาชน 
- ชื่อ 
- นามสกุล 
- บริษัท (นักธุรกิจ) 
- Passport number (สำหรับ ชาวต่างชาติ) 
- วัน-เวลา เข้าพัก/ออก

2. TYPES OF CUSTOMER
- ลูกค้ารายเดือน 
- ลูกค้ารายวันแบบชั่วคราว(3 ชั่วโมง) 
- ลูกค้ารายวันแบบค้างคืน 
- ลูกค้า contact

3. SPECIAL CONDITIONS

3.1 ลูกค้ารายวัน 
- เข้าพัก 5 ครั้ง ได้รับส่วนลด 50 บาท ในครั้งถัดไป หรือเก็บไว้ในภายหลังได้ 
- เข้าพัก 15 ครั้ง พักฟรี 1 ครั้ง 
- ส่วนลดมีอายุ 1 ปี 
- (สามารถสร้าง option เพิ่มได้)

3.2 ลูกค้า contact ที่ทำสัญญาไว้ 
- สามารถ key ชื่อบริษัทได้ 
- มีสองราคา 450 บาท และ 500 บาท **ราคาเต็ม 550 บาท** 
- ทำฟังก์ชั่นเพิ่มราคาได้ 
- (ถ้า query แล้วจะแสดงราคาที่ทำสัญญาไว้)

3.3 ลูกค้าประจำที่เคยได้รับส่วนลด 50 บาท
- สามารถดูประวัติได้

ซึ่งโปรเจคนี้ ญาติของรุ่นพี่ที่อยู่ในกลุ่ม อยากให้ทำเนื่องจากเปิดที่พัก และอยากได้ระบบจัดการที่พัก โดยฟังก์ชันต่างๆ คือสิ่งที่เจ้าของที่พักอยากได้ทั้งหมด ในที่นี้ หากสิ่งใดสามารถทำได้ ก็จะทำก่อน หากสิ่งไหนยังไม่สามารถทำได้ในตอนนี้ ก็อาจจะยังไม่ทำ ไว้พัฒนาต่อไปในภายภาคหน้า

ER to Relational Mapping - Algorithm : 7 Steps



7-Step process:
  1. Map Regular Entity type
  2. Map Weak Entity type
  3. Map Binary 1:1 Relation type
  4. Map Binary 1:N Relationship type
  5. Map Binary M:N Relationship type
  6. Map Multivalued attributes
  7. Map N-ary Relationship type



Step 1 คือการแมพ Entity ปกติ หรือก็คือ Entity ที่ไม่ใช่ Weak ทั้งหมด โดยเราจะทำการสร้างตารางขึ้นมาสำหรับ Entity นั้นๆ ซึ่งสมาชิกในตารางก็คือ Attribute ต่างๆใน Entity นั้นๆ โดย Attribute ที่ถูกขีดเส้นใต้นั้น เป็น Key Attribute ที่อาจจะเป็น Primary Key ในอนาคต



Step 2 คือการแมพ Entity ที่เป็น Weak ทั้งหมด ซึ่งเราจะนำ Entity ด้านที่ติดกับเส้นขนาน 2 เส้นมาสร้างตาราง ในที่นี้คือ section ซึ่งตัว Entity นั้นจะต้องสร้าง Foreign key เพื่อมาชี้ที่ Primary Key ของ Entity อีกตัว


Step 3 คือการแมพความสัมพันธ์ที่เป็นแบบ One to One ซึ่งในตัวอย่างไม่มี แต่หากมีเราสามารถเลือก Entity ด้านใดก็ได้มาสร้างตาราง


Step 4 คือการแมพความสัมพันธ์ที่เป็นแบบ One to Many โดยเราจะเลือก Entity ด้านที่เป็น Many มา สร้างตาราง ซึ่งในภาพคือ student จากนั้น student จะสร้าง Foreign key มาชี้ที่ Primary Key ของ department ดังในภาพ Foreign key ของ sudent คือ dname และ Primary Key คือ dept_name นั่นเอง


ความสัมพันธ์ต่อมาคือ advisor โดยที่ sudent ยังคงเป็นด้าน Many เหมือนเดิม ดังนั้น student จะทำการสร้าง Foreign key อีกครั้ง ซึ่งก็คือ i_id ชี้ไปที่ Primary Key ของ instructor นั่นก็คือ ID นั่นเอง


ความสัมพันธ์ต่อมาคือ course_dept โดยที่ course คือด้าน Many ดังนั้น course จึงสร้าง Foreign key ขึ้นมาคือ dpt_name ชี้ไปที่ Primary Key ที่ department นั่นก็คือ dept_name นั่นเอง


ความสัมพันธ์ต่อมาคือ inst_dept โดยที่ instructor คือด้าน Many ดังนั้น instructor จึงสร้าง Foreign key ขึ้นมาคือ dpment_name ชี้ไปที่ Primary Key ของ department นั่นก็คือ dept_name เช่นกัน


ความสัมพันธ์ต่อมาคือ sec_class โดยที่ section เป็นด้าน Many ดังนั้น section จึงสร้าง Foreign key ขึ้นมาคือ class_building ซึ่งชี้ไปที่ Primary Key ของ classroom นั่นก็คือ building นั่นเอง


ความสัมพันธ์สุดท้ายของ 1:N คือ sec_time_slot โดยที่ด้าน section เป็น Many จึงสร้าง Foreign key ขึ้นมาคือ time_id ซึ่งชี้ไปที่ Primary Key ของ time_slot นั่นก็คือ tome_slot_id นั่นเอง



Step 5 คือการแมพความสัมพันธ์แบบ M:N ซึ่งเราจะนำตัวความสัมพันธ์ที่เชื่อมระหว่าง Entity ใดๆ 
มาสร้างตาราง โดยใช้ Key จากทุก Entity ที่เชื่อมกันอยู่มาเป็นสมาชิกในตาราง ดังตัวอย่างคือนำ prereq มาสร้างตารางโดยสมาชิกในตารางคือ reqc_id ซึ่งเป็น key จาก course ที่เป็น entity ที่เชื่อมอยู่กับความสัมพันธ์นี้ (แต่ในกรณีนี้เราต้องนำ key ของวิชาที่เรียนก่อนหน้ามาเป็นสมาชิกในตารางด้วย)


ความสัมพันธ์ต่อมาคือ teaches โดยที่สมาชิกในตารางประกอบไปด้วย i_id ซึ่งเป็น key จากของ instructor และ s_id ซึ่งเป็น key จากของ section และ s_semester ซึ่งเป็น key จากของ section เช่นกัน และสุดท้าย c_id ซึ่งเป็น key จากของ course


ความสัมพันธ์สุดท้ายของ M:N คือ takes ซึ่งสมาชิกในตารางประกอบไปด้วย st_id, s_id, s_semester, c_id, grade ซึ่งเป็น key จาก student, section, course และ grade ที่เป็น entity ของ takes ตามลำดับ


Step 6 คือการแมพ attributes ที่เป็น multivalued หรือ attributes ที่เป็นวงรี 2 วงล้อมรอบกัน โดยในตัวอย่างไม่มี แต่หากมี เราจะสร้างตารางจากตัว attributes ขึ้นมา ซึ่งสมาชิกในตารางก็คือ key ของ entity ที่ attributes นั้นๆอยู่นั่นเอง (อธิบายเพิ่มเติม Multivalued Attribute ก็คือ Attribute ที่สามารถมีได้หลายค่า เช่น เบอร์มือถือ 1 คน อาจมีเบอร์มือถือได้หลายเบอร์ เป็นต้น)


Step 7 คือการแมพความสัมพันธ์แบบ N-ary ซึ่งในตัวอย่างไม่มี


หากนำทั้ง 7 Steps ที่ทำไปทั้งหมด มาสร้างตารางความสัมพันธ์จะได้ดังนี้ โดยเส้นแต่ละเส้น คือเส้นที่ชี้จาก Foreign key แต่ละตัวไปหา Primary Key ของตัวมันเอง

ความสำคัญของ Database

เนื่องจากความเข้าใจผิดเกี่ยวกับการสั่งงาน ด้วยอาจารย์ต้องการให้คิดโปรเจคที่จะทำให้เกิดประโยชน์โดยใช้ Database แต่เกิดการเข้าใจว่า ให้หาข้อมูลเกี่ยวกับประโยชน์ของ Database ซึ่งเป็นผลดีคือ ทำให้ทราบเกี่ยวกับประโยชน์ของ Database ที่แท้จริงก่อนการทำงาน ซึ่งจะกล่าวต่อไปนี้


ประโยชน์ของ Database ต่อประเทศไทย

- ลดการเก็บข้อมูลที่ซ้ำซ้อน ข้อมูลบางชุดที่อยู่ในรูปของแฟ้มข้อมูลอาจมีปรากฏอยู่หลาย ๆ แห่ง เพราะมีผู้ใช้ข้อมูลชุดนี้หลายคน เมื่อใช้ระบบฐานข้อมูลแล้วจะช่วยให้ความซ้ำซ้อนของข้อมูลลดน้อยลง

- รักษาความถูกต้องของข้อมูล เนื่องจากฐานข้อมูลมีเพียงฐานข้อมูลเดียว ในกรณีที่มีข้อมูลชุดเดียวกันปรากฏอยู่หลายแห่งในฐานข้อมูล ข้อมูลเหล่านี้จะต้องตรงกัน ถ้ามีการแก้ไขข้อมูลนี้ทุก ๆ แห่งที่ข้อมูลปรากฏอยู่จะแก้ไขให้ถูกต้องตามกันหมดโดยอัตโนมัติด้วยระบบจัดการฐานข้อมูล

- การป้องกันและรักษาความปลอดภัย (Security) ให้กับข้อมูลทำได้อย่างสะดวก การป้องกันและรักษาความปลอดภัยกับข้อมูลระบบฐานข้อมูลจะให้เฉพาะผู้ที่เกี่ยวข้องเท่านั้น ซึ่งก่อให้เกิดความปลอดภัย(Security) ของข้อมูลด้วย

ที่มา: http://www.9experttraining.com


ประโยชน์ของ Database ต่อตัวเรา

- ฐานข้อมูลในโรงเรียน จะเป็นการรวบรวมข้อมูลเกี่ยวกับนักเรียน ครู ภารโรง พัสดุ สิ่งของ ฯลฯ อาจบันทึกข้อมูลลงกระดาษ แบบฟอร์มหรือจัดเก็บลงคอมพิวเตอร์ เมื่อมีการจัดเก็บข้อมูลอย่างเป็น ระเบียบ การค้นหาก็ทำได้ง่าย

- ฐานข้อมูลของร้านค้า เมื่อมีการจัดเก็บข้อมูลเกี่ยวกับสินค้าและลูกค้าอย่างเป็นระบบดีแล้ว การ จัดการก็ง่าย สินค้ามีกี่รายการ ต้นทุน กำไรเท่าไร ก็ดูได้ทันที ในโลกธุรกิจ การมีข้อมูลจำนวนมากและมี การจัดการที่ดี มีผลต่อความได้เปรียบในการทำธุรกิจและการประสบความสำเร็จ

- ฐานข้อมูลบัญชีครัวเรือน จะเป็นการรวบรวมข้อมูลเกี่ยวกับรายรับ-รายจ่ายในการใช้เงินในแต่ละวันของครัวเรือน ค่าใช้จ่ายที่เกี่ยวข้อง ฯลฯ อาจบันทึกข้อมูลลงกระดาษ แบบฟอร์มหรือจัดเก็บลงคอมพิวเตอร์ เมื่อมีการจัดเก็บข้อมูลอย่างเป็น ระเบียบ การค้นหาก็ทำได้ง่าย

- ฐานข้อมูลสมาชิกสหกรณ์ จะเป็นการรวบรวมข้อมูลเกี่ยวกับเงินที่ได้รับจากการออมเงินของสมาชิกในแต่ละวัน และจะมีการบันทึกอย่างต่อเนื่อง หากมีค่าใช้จ่ายเกี่ยวกับสหกรณ์ก็จะมีการลงบันทึกไว้และมีการเก็บใบเสร็จไว้เป็นหลักฐาน ฯลฯ อาจบันทึกข้อมูลลงกระดาษ แบบฟอร์มหรือจัดเก็บลงคอมพิวเตอร์ เมื่อมีการจัดเก็บข้อมูลอย่างเป็น ระเบียบ การค้นหาก็ทำได้ง่าย

- ฐานข้อมูลระบบห้องสมุด ยืม-คืน จะเป็นการจัดการเกี่ยวกับการยืม-คืนหนังสือ ให้ง่ายต่อการค้นหา จะมีข้อมูลที่เกี่ยวข้อง เช่น ข้อมูลหนังสือ ข้อมูลการยืม ข้อมูลการคืน รหัสและประเภทหนังสือ ฯลฯ ทำให้ค้นหาได้ง่ายขึ้น

ที่มา: http://ac2-009.blogspot.com/2012/07/5.html

จะเห็นได้ว่าการใช้ Database นั้น มีประโยชน์ที่หลากหลายด้าน อยู่ที่เราจะใช้ Database มาเป็นประโยชน์ในด้านไหน และเป็นประโยชน์มากน้อยเพียงใด


ER Diagram

เนื่องจากวันที่ 27 กุมภาพันธ์ ถึง 22 มีนาคม 2561 เป็นช่วงเวลาของการสอบกลางภาค ซึ่งทำให้ต้องแบ่งเวลาในการทำงานและอ่านหนังสือสอบอย่างหนัก จึงทำให้ไม่มีเวลาในการอัพบล็อค ข้าพเจ้าจึงได้ขออนุญาตอัพบล็อคย้อนหลังตั้งแต่สัปดาห์หลังจากที่อัพบล็อคไปล่าสุด นั้นคือสัปดาห์ที่เรียนเรื่อง ER Diagram


จากภาพคือการเรียกชื่อของสัญลักษณ์ต่างๆ ในแต่ละแบบ ซึ่งบางแบบอาจมีชื่อเรียกเดียวกันแต่คนละสัญลักษณ์


ภาพตัวอย่างโจทย์ปัญหา ER Diagram


อธิบายการดู Degree และ Cardinalrity Ratio
Degree สามารถดูได้จากจำนวน Entity ในที่นี้มี Entity ทั้งหมด 2 Entity นั่นคือ student และ instructor
จึงกล่าวได้ว่าความสัมพันธ์ advisor นี้ มี Degree คือ Binary นั่นเอง
Cardinalrity Ratio สามารถดูได้จากเส้นของความสัมพันธ์ ในที่นี้ความสัมพันธ์จาก student ไปหา instructor เป็นแบบ นักเรียน 1 คน สามารถมีผู้สอนได้ 1 คน ในทางตรงกันข้าม ผู้สอน 1 คนสามารถมีนักเรียนได้มากกว่า 1 คน ดังนั้น ความสัมพันธ์นี้ จึงมี Cardinalrity Ratio เป็นแบบ 1:N ซึ่งอ่านว่า one to many นั่นเอง


อีก 1 ตัวอย่างซึ่งมี Degree เป็น Binary เช่นกัน ดูได้จากมี Entity จำนวน 2 Entity แต่ในตัวอย่างนี้ เป็นความสัมพันธ์ที่ ตอนเรียน 1 ตอน สามารถมีผู้สอนได้มากกว่า 1 คน และในทางเดียวกัน ผู้สอน 1 คน ก็สามารถสอนได้ในหลายตอนเรียน ดังนั้น Cardinalrity Ratio แบบนี้จึงเรียกว่า N:M อ่านว่า Many to Many นั่นเอง


จากที่อธิบายไปข้างต้น มาดูในตัวอย่างจากโจทย์ปัญหา ซึ่งเป็นความสัมพันธ์ advisor ระหว่าง student และ instructor ซึ่งเป็นความสัมพันธ์แบบ 1:N และมี Degree เป็น Binary โดยที่ในภาพจะสื่อให้เห็นว่า แต่ละ Entity นั้น มี ID เป็น key attribute อยู่ (แต่ละรูปวงรีเราเรียกว่า attribute) ซึ่ง key attribute เป็นสิ่งที่ไม่สามารถซ้ำกันได้


ในภาพข้างต้นเป็นความสัมพันธ์ inst_dept ระหว่าง instructor และ department ซึ่งมีความสัมพันธ์แบบ 1:N เช่นกัน และมี Degree เป็น Binary เช่นกัน แต่ในภาพจะสื่อให้เห็นถึง ความสัมพันธ์ที่มีเส้น 2 เส้นขนานกัน โยงหา Entity ซึ่งจะสื่อถึงว่า instructor (ตัวที่ติดกับเส้น 2 เส้นขนานกัน) จำเป็นต้องมี department (ตัวที่ไม่ได้ติดกับเส้น 2 เส้นขนานกัน) กล่าวคือ ผู้สอนแต่ละคนจำเป็นต้องมีแผนกเป็นของตัวเอง แต่ในแผนกแต่ละแผนกนั้น ไม่จำเป็นต้องมีผู้สอนก็ได้

วันอาทิตย์ที่ 11 กุมภาพันธ์ พ.ศ. 2561

PostgreSQL - PGAdmin III

สืบเนื่องจากปัญหาในการใช้ PGAdmin4 ผมจึงได้ใช้ PGAdmin III ในการทำงาน

รันโค้ดเพื่อสร้าง table ขึ้นมา

หลังจากรันโค้ดสร้าง table แล้ว จึงเข้ามาตรวจสอบว่าตารางได้ถูกสร้างหรือไม่ ใน PGAdmin III

พบว่าใน Data มีตารางข้อมูลของนักศึกษาเรียบร้อยแล้ว

 และใน Grade ก็มีตารางเกรด เทอม ตอนเรียน และหน่วยกิตของวิชาต่างๆ ในข้อมูลของนักศึกแต่ละคนแล้วเช่นกัน

ทดสอบความสมบูรณ์ของโค้ดโดยการสั่งให้แสดงผลการเรียนของนักศึกษาที่มีรหัสประจำตัวนักศึกษา '5801012630106'

ผลจากการรันโค้ดเป็นดังภาพ ผลการเรียนทุกวิชาของนักศึกษารหัส '5801012630106' สามารถแสดงได้

Link Video Presentation Resort Managemant System Project.

Video Presentation Resort Managemant System Project. จัดทำโดย พากษ์เสียง: คุณาสิน  ทองมณี  5801012620011 ลำดับภาพ: สุพิชชา  ศรีศิริ...