บทที่ 2 รูปแบบของฐานข้อมูล
คำศัพท์พื้นฐาน การประมวลผลข้อมูลระบบแฟ้มข้อมูล บิต (Bit) หมายถึง หน่วยของข้อมูลที่มีขนาดเล็กที่สุด ไบต์ (Byte) หมายถึง หน่วยของข้อมูลจากการนำ bit มารวมเป็นตัวอักษร ฟิลด์ (Field) หมายถึง หน่วยของข้อมูลที่ประกอบด้วยหลายๆ ตัวอักษร เพื่อใช้แทนความหมายของสิ่งต่างๆ เรคคอร์ด (Record) หมายถึง หน่วยของข้อมูลที่นำเอา Field หลายๆ Field มารวมกันเพื่อแสดงรายละเอียดของข้อมูลในเรื่องใดเรื่องหนึ่ง แฟ้มข้อมูล (File) หมายถึง หน่วยของข้อมูลที่นำเอา Record หลายๆ Record มารวมกัน
คำศัพท์พื้นฐาน ระบบฐานข้อมูลข้อมูล เอนทิตี้ (Entity) หมายถึง ชื่อของสิงใดสิ่งหนึ่ง : คน, สถานที่, สิ่งของ, การกระทำ : ซึ่งต้องการจัดเก็บข้อมูลไว้ เช่น Entity ของ พนักงาน Entity ของสินค้า Entity ของลูกค้า เอนทิตี้ชนิดอ่อนแอ (Weak Entity) หมายถึง Entity ที่จะไม่มีความหมายหากไม่มี Entity อื่นในฐานข้อมูล เช่น Entity ประวัติครอบครัวของพนักงาน จะไม่มีความหมายเลย ถ้าปราศจาก Entity พนักงาน
คำศัพท์พื้นฐาน ยังมีการแบ่ง Entity ออกเป็น Supertype และ Subtype Subtype ประกอบด้วยข้อมูลเฉพาะนอกเหนือจากที่มีอยู่ใน Supertype Supertype ประกอบด้วยข้อมูลต่างๆ ซึ่งรวมถึงของมูลของ Subtype ด้วย EMPLOYEE EMPNUM NAME POSITION SEX EMP_SALARY EMPNUM SALARY EMP_WAGE EMPNUM RATE
คำศัพท์พื้นฐาน ดังนั้น Entity A เป็น Subtype ของ Entity B และ Entity B เป็น Supertype ของ Entity A ก็ต่อเมื่อ …. 1. Subtype A ประกอบด้วยข้อมูลทุกอย่างที่มีใน Supertype และมีข้อมูล เฉพาะตนเองเพิ่มเติม 2. เมื่อมีข้อมูลใน Subtype จะต้องมีข้อมูลของ Supertype
คำศัพท์พื้นฐาน แอททริบิวต์ (Attribute) หมายถึงรายละเอียดของข้อมูลใน Entity หนึ่งๆ เช่น Entity พนักงาน ประกอบด้วย Attribute - รหัสพนักงาน - ชื่อพนักงาน - ที่อยู่ของพนักงาน - เบอร์โทรศัพท์ EMPLOYEE Entity Attribute: - EMPNUM - NAME - ADDRESS - TELEPHONE
คำศัพท์พื้นฐาน แอททริบิวต์ผสม (Composite Attribute) คือ Attribute ที่ประกอบด้วยข้อมูลหลายส่วนมารวมกัน ซึ่งสามารถแยกเป็น Attribute ย่อยๆ ได้อีก เช่น Attribute ที่อยู่ : ประกอบด้วยข้อมูล บ้านเลขที่, ซอย, ถนน, ตำบล, อำเภอ, จังหวัด และ รหัสไปรษณีย์ แอททริบิวต์ที่ถูกแปลงค่ามา (Derived Attribute) เป็น Attribute ที่จะไม่มีค่า ในตัวเอง แต่สามารถหาค่าได้จาก Attribute อื่นๆ เช่น Attribute อายุ ซึ่งสามารถคำนวณได้จาก Attribute วันเกิด
ความสัมพันธ์ (Relationship) ความสัมพันธ์ หมายถึง ลักษณะความสัมพันธ์ระหว่าง Entity ความสัมพันธ์ระหว่าง Entity จะพิจารณาโดยกำหนดทิศทางของความสัมพันธ์ จาก Entity หนึ่งไปยังอีก Entity หนึ่ง สังกัดอยู่ พนักงาน แผนก ประกอบด้วย พนักงาน แผนก
ความสัมพันธ์ (Relationship) และยังต้องพิจารณาถึงจำนวนข้อมูลที่เกิดขึ้นระหว่างความสัมพันธ์ของสอง Entity ว่ามีจำนวนเท่าไร (Cardinality Ratio) 1 1 สังกัดอยู่ 1 : 1 พนักงาน แผนก 5 1 ประกอบด้วย 1 : 5 พนักงาน แผนก
ความสัมพันธ์ (Relationship) Cardinality Ratio แบ่งเป็น 3 ประเภทคือ - ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One Relationship) - ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One to Many Relationship) - ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many Relationship)
ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One Relationship) เป็นการแสดงความสัมพันธ์ของข้อมูลของ Entity หนึ่ง กับอีกข้อมูลหนึ่งของอีก Entity หนึ่ง ในแบบ หนึ่ง-ต่อ-หนึ่ง พนักงาน แผนก 1 : 1 เป็นผู้จัดการแผนก 1 1 พนักงาน แผนก 1 : 1 บริหารโดย 1 1
ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One to Many Relationship) เป็นการแสดงความสัมพันธ์ของข้อมูลของ Entity หนึ่ง กับข้อมูลหลายข้อมูลของอีก Entity หนึ่ง ในแบบ หนึ่ง-ต่อ-กลุ่ม ลูกค้า คำสั่งซื้อ 1 : N มีการสั่งซื้อ 1 N พนักงาน แผนก 1 : N ประกอบด้วย N 1
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many Relationship) คำสั่งซื้อ สินค้า M : N มี M N เจ้าของบัญชี บัญชี M : N มี M N
ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many Relationship) M:N เป็นเรื่องยุ่งยาก อาจมีปัญหาความซ้ำซ้อน และการปรับปรุงแก้ไข โดยทั่วไปจะสร้าง Entity ใหม่เรียกว่า Gerund (Composite Entity หรือ Intersection Entity) เพื่อเป็น Entity เชื่อมความสัมพันธ์กับสอง Entity เดิม (1:N) คำสั่งซื้อ สินค้า มี 1 1 N N รายการที่สั่งซื้อ
ความสัมพันธ์ระหว่าง Supertype และ Subtype พนักงาน (สถานภาพ) (สถานภาพ) เงินเดือนประจำ ค่าแรงต่อชั่วโมง พนักงาน (สถานภาพ) เงินเดือนประจำ ค่าแรงต่อชั่วโมง
ความสัมพันธ์กับ Entity ตัวเอง (Recursive หรือ Self Relationship) เป็นความสัมพันธ์ที่เกิดขึ้นเมือข้อมูลในเอนทิตี้หนึ่งๆ มีความสัมพันธ์กันเอง N MANAGE EMPLOYEE 1
รูปแบบของฐานข้อมูล รูปแบบของฐานข้อมูลแบ่งออกเป็น 3 แบบ คือ - ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) - ฐานข้อมูลแบบลำดับขั้น (Hierarchical Database) - ฐานข้อมูลแบบข่ายงาน (Network Database)
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นการจัดข้อมูลในรูปแบบของตาราง 2 มิติ คือมี แถว (Row) และ คอลัมน์ (Column) โดยการเชื่อมโยงข้อมูลระหว่างตาราง จะใช้ Attribute ที่มีอยู่ทั้งสองตารางเป็นตัวเชื่อมโยงข้อมูล คอลัมน์ (Column) - Attribute แถว (Row) - Record เชื่อมโยงข้อมูล Entity A Entity B
EMPLOYEE Entity DEP Entity มี Attribute “DEPNO” เป็นตัวเชื่อมความสัมพันธ์ ระหว่างสอง Entity
ฐานข้อมูลแบบลำดับขั้น (Hierarchical Database) เป็นการจัดเก็บข้อมูลในลักษณะความสัมพันธ์แบบ พ่อ-ลูก (Parent-Child Relationship Type : PCR Type) แผนก ชื่อแผนก รหัสแผนก สถานที่ พนักงาน ชื่อ รหัส พนักงาน เงินเดือน รหัส แผนก โครงการ รหัส Parent Record Type Child Record Type
ฐานข้อมูลแบบลำดับขั้น (Hierarchical Database) คุณสมบัติของฐานข้อมูลแบบลำดับขั้น 1. ถ้า Record ใดเป็นราก (Root) แล้ว จะเป็น Record ประเภทลูก(Child Record) ไม่ได้ 2. ทุก Record ยกเว้นราก (Root) สามารถมีความสัมพันธ์กับ Parent Record ได้หนึ่งความสัมพันธ์ 3. ทุก Record สามารถมีคุณสมบัติเป็น Parent Record ได้ 4. ถ้า Record หนึ่งมีลูกมากกว่าหนึ่ง Record แล้ว การลำดับความสัมพันธ์ ของ Child Record จะลำดับจากซ้ายไปขวา
ฐานข้อมูลแบบลำดับขั้น (Hierarchical Database) แผนกการตลาด วิชัย วินัย วิชิต สมบุญ แผนกบัญชี สุรชัย สุรภี สุรเดช Root Record Parent Record Child Record
ฐานข้อมูลแบบข่ายงาน (Network Database) มีโครงสร้างเช่นเดี่ยวกับฐานข้อมูลเชิงสัมพันธ์และแบบลำดับชั้น ความสัมพันธ์ระหว่างประเภทของ Record ในฐานข้อมูล เรียกว่า “Set Type” ซึ่งสามารถแสดงในแผนภูมิ Bachman Diagram ซึ่งมีองค์ประกอบดังนี้ - ชื่อของ Set Type - ชื่อของประเภทของ Record หลัก (Owner Record Type) - ชื่อของ Record ที่เป็นสมาชิก (Member Record Type)