ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูลแบบนี้แสดง การจัดเก็บข้อมูลในรูปแบบของตาราง ที่มีลักษณะเป็นสองมิติ คือ แถว (Row) และคอลัมน์ (Column) ซึ่งในการเชื่อมโยงกันระหว่างข้อมูลในตาราง 2 ตาราง หรือมากกว่า จะเชื่อมโยงโดยใช้แอททริบิวต์ที่มีอยู่ในตารางที่ต้องการเชื่อมโยงข้อมูลกัน โดยที่แอททริบิวต์จะแสดงคุณสมบัติของรีเลชั่นต่าง ๆ ซึ่งรีเลชั่นต่าง ๆ ได้ผ่านกระบวนการทำรีเลชั่นให้เป็นบรรทัดฐาน (Normalized) ในระหว่าง การออกแบบเพื่อละความซ้ำซ้อน เพื่อให้การจัดการฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพ
ตัวอย่าง เป็นตารางรายชื่อนักศึกษาและตารางโปรแกรมวิชา ถ้าต้องการทราบว่านักศึกษารหัส 441031138 เป็นนักศึกษาของโปรแกรมวิชาใด ก็ต้องนำรหัสโปรแกรมวิชาในตารางนักศึกษาไปตรวจสอบกับตารางโปรแกรมวิชา ซึ่งมีรหัสของโปรแกรมวิชาซึ่งเรียกว่าเป็นดรรชนี และดึงข้อมูลออกมา
ฉะนั้นสามารถสรุปโครงสร้างข้อมูลหลักที่สำคัญๆ ของฐานข้อมูลเชิงสัมพันธ์ ในส่วนที่เกี่ยวข้องกับการจัดเก็บข้อมูลและการค้นหาในฐานข้อมูล ดังนี้
1. ตารางเรคคอร์ดและฟิลด์ ข้อมูลต่างๆ ในฐานข้อมูลจะถูกจัดเก็บและนำเสนอในรูปแบบของตาราง โดยในตารางหนึ่งๆ จะจัดเก็บรวบรวมข้อมูลประเภทเดียวกันเข้าไว้ด้วยกัน ในแต่ละแถวและคอลัมน์ ซึ่งในศัพท์ของฐานข้อมูลจะเรียกฟิลด์ ในแต่ละแถวของตารางก็ คือ ข้อมูลหนึ่งชุดหรือข้อมูล 1 เรคคอร์ดในแต่ละแถวหรือเรคคอร์ดจะประกอบด้วยฟิลด์หรือคอลัมน์ที่เป็นส่วนย่อยที่แสดงแอททริบิวต์ของข้อมูลในแต่ละเรคคอร์ด
2. ดรรชนี ถ้าตารางข้อมูลมีนักศึกษาเก็บอยู่จำนวนมากการที่จะค้นหาข้อมูลที่ต้องการของนักศึกษาคนใดคนหนึ่งจะต้องเสียเวลาอย่างมาก เพราะจะต้องทำการค้นทีละเรคคอร์ด ในตารางไปจนกว่าจะครบ ข้อมูลของนักศึกษาที่ต้องการ เพื่อช่วยให้การค้นหาข้อมูลที่ต้องการทำได้รวดเร็วขึ้นฐานข้อมูลทั่วไปจึงมีโครงสร้างอีกชนิดหนึ่ง เรียกว่า ดรรชนีเพื่อสนับสนุนการค้นหาให้รวดเร็วขึ้น โดยปกติแล้วในแต่ละตารางจะมีฟิลด์หรือหลายฟิลด์ประกอบกันที่จะสามารถบอกถึงความแตกต่างของข้อมูลในแต่ละแถวได้ ฟิลด์หรือคอลัมน์ดังกล่าวเรียกว่าเป็นดรรชนีหลัก ของตาราง
3. ความสัมพันธ์ของตารางฐาน ข้อมูลแบบตารางสัมพันธ์ส่วนใหญ่แล้ว จะประกอบไปด้วยตารางข้อมูลต่างๆ หลายตาราง แต่ละตารางจะมีความสัมพันธ์กันในลักษณะใดลักษณะหนึ่ง
กฎที่เกี่ยวข้องกับดรรชนีในฐานข้อมูลเชิงสัมพันธ์
เนื่องจากรีเลชั่นต่างๆ ในฐานข้อมูลเชิงสัมพันธ์จะอ้างอิงความสัมพันธ์ของข้อมูล โดยใช้ดรรชนีกฎที่เกี่ยวข้องกับการใช้ดรรชนีในฐานข้อมูลเชิงสัมพันธ์ มีดังนี้
1. กฎความบูรณภาพของเอนทิตี้ (The Entity Integrity Rule) แอททริบิวต์ใดที่จะเป็นดรรชนีหลักข้อมูลในแอททริบิวต์นั้นจะเป็นค่าง่าย (Null) ไม่ได้หมายความของการเป็นค่าว่างไม่ได้ (Not Null) ในที่นี้หมายถึง ข้อมูลแอททริบิวต์เป็นดรรชนีหลักจะไม่ทราบค่าแน่นอนหรือ ไม่มีค่าไม่ได้
2. กฎความบูรณภาพของการอ้างอิง (The Referentail Integrity Rule) คือ ค่าของดรรชนีหลักนอกจากจะต้องสามารถอ้างอิงให้ตรงกับค่าของดรรชนีหลักได้ จึงจะเชื่อมโยงหรืออ้างอิงข้อมูลระหว่างสองรีเลชั่นได้
การกำหนดความสัมพันธ์
ในโปรแกรมการจัดการฐานข้อมูล เช่น โปรแกรมแอกเซส สามารถเชื่อมโยงข้อมูลต่างๆ จากตารางเพื่อที่จะสามารถแสดงข้อมูลที่ได้บนรายงานข้อคำถามหรือแบบฟอร์ม การเชื่อมโยงข้อมูลจากหลาย ตารางนี้เรียกว่าความสัมพันธ์ (Relation) การสร้างความสัมพันธ์ระหว่างตารางในฐานข้อมูลโดยการกำหนดให้ตารางมีความสัมพันธ์กันนั้น ต้องมีแอททริบิวต์หรือฟิลด์ที่เหมือนกัน และให้ค่าฟิลด์ที่เหมือนกันเป็นตัวเชื่อมความสัมพันธ์ ฟิลด์ที่เหมือนกันของตารางเรียกว่า ดรรชนีนอก (Foreing Key) เช่น ตารางของนักศึกษาและโปรแกรมวิชาจะมีรหัสของโปรแกรมวิชาที่เหมือนกัน ในเวลาที่นำโปรแกรมจัดการฐานข้อมูลมาใช้จะต้องมีการสร้างแบบฟอร์มหรือรายงานเรียบร้อยแล้ว จึงกำหนดความสัมพันธ์ระหว่างตาราง หรือกำหนดความสัมพันธ์ตั้งแต่สร้างความสัมพันธ์เสร็จ กล่าวคือจะมีความบูรณภาพความสัมพันธ์เป็นตารางที่เกี่ยวข้อง (Related Table)
ข้อดีของฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์เป็นฐานข้อมูลที่มีรูปแบบง่ายสำหรับผู้ใช้ทั่วไป โดยเฉพาะผู้ใช้ซึ่งไม่ใช่นักวิเคราะห์และออกแบบโปรแกรมโปรแกรมเมอร์หรือผู้จัดการฐานข้อมูล เป็นต้น ข้อดีที่ผู้ใช้ทั่วไปรู้สึกว่าฐานข้อมูลชนิดนี้เข้าใจง่าย มีดังนี้
1. ฐานข้อมูลเชิงสัมพันธ์เป็นกลุ่มของรีเลชั่นหรือตารางที่ข้อมูลถูกจัดเก็บเป็นแถวและคอลัมน์ ซึ่งทำให้ผู้ใช้เห็นภาพของข้อมูลได้ง่าย
2. ผู้ใช้ไม่จำเป็นต้องรู้ว่าข้อมูลถูกจัดเก็บอย่างไร รวมถึงวิธีการเข้าถึงข้อมูล (Access Approach)
3. ภาษาที่ใช้ในการเรียกดูข้อมูล เป็นลักษณะคล้ายภาษาอังกฤษและไม่จำเป็นต้องเขียนเป็นลำดับขั้นตอน
4. การเรียกใช้หรือเชื่อมโยงข้อมูลทำได้ง่ายโดยใช้โอเปอร์เรเตอร์ ทางคณิตศาสตร์ เช่น SELECT ไม่จำเป็นต้องมีตัวชี้ (Pionter) ซึ่งยุ่งยาก
วันอังคารที่ 27 กันยายน พ.ศ. 2554
Data Model(3)
โมเดลข้อมูลเชิงวัตถุ
โมเดลของข้อมูลเป็นการแสดงให้เห็นองค์ประกอบสิ่งต่าง ๆ (objects)ที่เราสนใจ ซึ่งจะมีข้อกำหนดที่กำหนดให้กับองค์ประกอบเหล่านั้น และแสดงความสัมพันธ์ระหว่างองค์ประกอบเหล่านั้น
หลักการของโมเดลข้อมูลเชิงวัตถุจะประกอบไปด้วยองค์ประกอบเหล่านี้คือ
- object and object identifier: หมายถึงอ๊อปเจ็กใด ๆ ที่อยู่ในรูปแบบที่กำหนด และมีการกำหนดค่า id ที่ไม่ซ้ำกันเพื่อใช้ในการอ้างถึงอ๊อปเจ็กนั้น
- attributes and methods: อ๊อปเจ็กทุก ๆ อ๊อปเจ็กจะมีคุณลักษณะ(state) คือเซตของค่าข้อมูลของ แอตทริบิวต์ของอ๊อปเจ็ก และการกระทำ(behavior) เป็นเซตของวิธีการ ส่วนของโปรแกรม ซึ่งมีการดำเนินการบนลักษณะของอ๊อปเจ็ก ซึ่งลักษณะและการกระทำจะถูกห่อหุ้มไว้ในอ๊อปเจ็ก และจะถูกอ้างถึงหรือถูกเรียกให้ทำงานจากภายนอกผ่านทางข่าวสาร(message)
- class: หมายถึงการรวมกลุ่มของอ๊อปเจ็กทั้งหมดที่มีลักษณะและวิธีการที่เหมือนๆ กัน อ๊อปเจ็กหนึ่งๆ จะถูกสร้างขึ้นจากคลาสเพียงหนึ่งคลาส ซึ่งคลาสมีลักษณะเหมือนกับ abstract data type คลาสอาจจะเป็นข้อมูลพื้นฐานก็ได้เช่น integer string หรือ boolean เป็นต้น
- Class hierarchy and inheritance: เป็นการสร้างคลาสใหม่(subclass)จากคลาสเดิม(superclass)ที่มีอยู่ก่อน คลาสที่สร้างขึ้นใหม่จะสืบทอดคุณลักษณะและวิธีการทั้งหมดจากคลาสเดิม โดยคลาสใหม่สามารถที่จะเพิ่มคุณลักษณะ และวิธีการใหม่ เพิ่มเข้าไปได้ จะแบ่งเป็นสองประเภทคือ single inheritance และ multiple inheritance
1. Object Structure
แนวทางเชิงวัตถุมีพื้นฐานมาจากการห้อหุ้มข้อมูล และโปรแกรม(encapsulating) ดังนั้นการติดต่อสื่อสารกันระหว่างอ๊อปเจ็กจะทำผ่านทางข่าวสาร(messages)เสมอ
โดยทั่วไปแล้ว อ๊อปเจ็กจะเกี่ยวข้องกับ
- เซตของตัวแปรที่บรรจุข้อมูลของอ๊อปเจ็ก
- เซตของข่าวสารซึ่งอ๊อปเจ็กจะตอบสนองต่อข่าวสารที่ได้รับจากภายนอก
- เซตของวิธีการ ซึ่งแต่ละวิธีการจะเป็นโปรแกรมทีดำเนินการกับข่าวสาร และส่งข้อมูลกลับ
สิ่งที่ทำให้ต้องมีการใช้ข่าวสารและวิธีการระหว่างอ๊อปเจ็ก พิจารณาเอนตินี้ employee ในระบบธนาคาร ทุก ๆ คนจะมีการคำนวณเงินรายได้ทั้งปี แต่มีความแตกต่างกันในเรื่องของการคำนวณ ตามประเภทของพนักงาน เช่น ผู้จัดการ ได้รับโบนัสตามกำไรที่ธนาคารทำได้ หรือพนักงานเคาเตอร์ จะได้รับโบนัสตามชั่วโมงการทำงาน เป็นต้น เราสามารถซ่อนโปรแกรมในส่วนของการคำนวณเงินเดือน โดยอ๊อปเจ็กจะรู้ว่าต้องคำนวณเงินรายได้ทั้งปีอย่างไร โดยที่อ๊อปเจ็กของพนักงานทุกคนมี interface เดียวกัน ในระบบเชิงวัตถุ เราสามารถที่จะแก้ไขนิยามของวิธีการ ตัวแปร โดยไม่มีผลกระทบต่อระบบ ซึ่งคุณสมบัตินี้เป็นข้อดีของการเขียนโปรแกรมเชิงวัตถุ
วิธีการของอ๊อปเจ็กสามารถจำแนกได้ 2 กลุ่มคือ ประเภทอ่านอย่างเดียว หรือ ประเภท Update ถ้าเป็นวิธีการแบบอ่านอย่างเดียวจะไม่มีผลกระทบต่อข้อมูลในอ๊อปเจ็ก ในขณะที่ Update จะทำการเปลี่ยนแปลงข้อมูลภายในอ๊อปเจ็กได้ ซึ่งข่าวสารที่อ๊อปเจ็กจะตอบสนองว่าเป็นแบบอ่านอย่างเดียวหรือแบบ update นั้นขึ้นอยู่กับวิธีการ implement ข่าวสาร
สำหรับแอตทริบิวต์ที่ได้จากการคำนวณนั้น ในระบบเชิงวัตถุจะใช้ข่าวสารแบบอ่านอย่างเดียว กล่าวคือทุก ๆ แอตทริบิวต์ของเอนติตี้ต้องประกอบไปด้วยข่าวสาร 2 อันคือ ข่าวสารสำหรับการอ่านข้อมูลของแอตทริบิวต์ และอีกข่าวสารสำหรับการปรับปรุงข้อมูล
2. Object Classes
โดยปกติ ในฐานข้อมูลจะมีอ๊อปเจ็กที่คล้าย ๆ กัน หมายความว่าอ๊อปเจ็กมีการตอบสนองต่อข่าวสารเดียวกัน ใช้วิธีการเดียวกัน และมีตัวแปรชื่อเดียวกัน ชนิดข้อมูลเดียวกัน ดังนั้นเราจึงจัดกลุ่มของอ๊อปเจ็กที่ลักษณะคล้าย ๆ กัน แล้วกำหนดเป็นคลาส ๆ หนึ่ง และแต่ละอ๊อปเจ็กที่สร้างมาจากคลาสก็เรียกว่า เป็น instance ของคลาส อ๊อปเจ็กทุกตัวจะมีลักษณะเหมือนกัน จะแตกต่างกันตรงข้อมูลที่ถูกกำหนดให้กับตัวแปรในอ๊อปเจ็ก
เราจะนิยามคลาส employee ในรูปของคำสั่งลำลอง ซึ่งแสดงตัวแปรและข่าวสารซึ่งอ๊อปเจ็กจะตอบสนอง ในตัวอย่างนี้ยังไม่มีวิธีการที่จะมาจักการกับข่าวสาร
class employee {
/* Variables */
string name;
string address;
date start-date;
int salary;
/* Messages */
int annual-salary();
string get-name();
string get-address();
int set-address(string new-address);
int employment-length();
};
จากนิยามของคลาส employee จะประกอบไปด้วยตัวแปร name และ address ซึ่งมีชนิดข้อมูลเป็น string start-date มีชนิดข้อมูลเป็น date และ salary มีชนิดข้อมูลเป็น integer แต่ละอ๊อปเจ็กจะตอบสนองข่าวสาร 5 ข่าวสาร คือ annual-salary get-name get-address set-address และ employment-length ข่าวสารแต่ละอันมีการกำหนดชนิดข้อมูลไว้ด้านหน้า หมายถึงชนิดของการตอบสนองข้อมูลกลับไปยังข่าวสารนั้น
3. Inheritance
ในระบบฐานข้อมูลเชิงวัตถุจะประกอบไปด้วยคลาสจำนวนมาก อย่างไรก็ตามคลาสหลาย ๆ คลาสจะมีลักษณะคล้าย ๆ กัน ตัวอย่างเช่น พนักงานของธนาคาร จะมีลักษณะที่คล้ายกับลูกค้า เช่น ชื่อ ที่อยู่ โทรศัพท์ เป็นต้น
เพื่อแสดงให้เห็นถึงลักษณะที่คล้ายกันของคลาส เราจะแสดง E-R ไดอะแกรมในลักษณะของลำดับชั้นของ specialization (ความสัมพันธ์แบบ ISA) ดังรูปที่ 1

รูปที่ 1 แสดงลำดับชั้นของคลาสแบบ Specialization
หลักการของลำดับชั้นของคลาสจะเหมือนกับ specialization ใน E-R โมเดล รูปที่ 2 แสดงลำดับชั้นของคลาสที่เหมือน E-R ไดอะแกรมในรูปที่ 1

รูปที่ 2 แสดงลำดับชั้นของคลาสที่เหมือนกับ E-R ในรูปที่ 1
ลำดับชั้นของคลาสสามารถกำหนดเป็นคำสั่งลำลองได้ดังรูปที่ 3 ในที่นี่ยังไม่ขอกล่าวถึงวิธีการของแต่ละคลาส
class person {
string name;
string address;
};
class customer isa person {
int credit-rating;
};
class employee isa person {
date start-date;
int salary;
};
class officer isa employee {
int office-number;
int expense-account-number;
};
class teller isa employee {
int hours-per-week;
int station-number;
};
class secretary isa employee {
int hours-per-week;
string manager;
};
รูปที่ 3 แสดงคำสั่งลำลองในการนิยามลำดับชั้นของคลาส
คำว่า isa ใช้สำหรับบอกว่าคลาสนั้นมีลักษณะเช่นเดียวกันกับอีกคลาสหนึ่ง โดยเราเรียกคลาสที่ specialization ว่า subclasses ตัวอย่างเช่น employee เป็น subclass ของ person และ teller เป็น subclass ของemployee ในทางกลับกัน employee ก็เป็น superclass ของ teller
ข้อดีของการสืบทอดคุณสมบัติในระบบเชิงวัตถุคือ มีคุณลักษณะของ code-reuse นั่นคือวิธีการใด ๆ ของคลาส A สามารถที่จะถูกเรียกใช้โดยคลาส B ซึ่งเป็น subclass A ได้ทันที ทำให้ไม่ต้องเขียนคำสั่งในคลาส B อีก
4. Multiple Inheritance
โดยทั่วไปแล้วโครงสร้างของคลาสแบบลำดับชั้นก็เพียงพอต่อการแสดงโมเดลของข้อมูลแล้ว แต่ในบางกรณี เช่นเราต้องการจำแนกระหว่าง teller และ secretaries แบบ full-time และ part-time ในรูปที่ 2 ซึ่งเราก็สามารถสร้าง subclass ของ part-time-teller full-time-teller part-time-secretary และ full-time-secretary ดังรูปที่ 4

รูปที่ 4 แสดงลำดับชั้นของคลาส ของพนักงาน full-time และ part-time
แต่จะเกิดปัญหาสองอย่างคือ (1) ปัญหาความไม่สอดคล้องในการปรับปรุงข้อมูล เนื่องมาจาก ตัวแปรและวิธีการของพนักงาน full-time ต้องถูกกำหนดสองครั้ง คือ full-time-teller และ full-time-secretary ในทำนองเดียวกันกับพนักงาน part-time เมื่อไรก็ตามที่ต้องมีการเปลี่ยนแปลงข้อมูลของพนักงาน ก็ต้องมีการเปลี่ยนแปลงสองที่ (2) ลำดับชั้นของคลาสไม่สามารถแสดงพนังงานกลุ่มอื่นที่ไม่ใช่ full-time หรือ part-time ได้
วิธีการ Multiple inheritance เป็นวิธีการที่ยอมให้คลาสหนึ่งสืบทอดคุณสมบัติและวิธีการจากหลาย ๆ คลาสได้
ความสัมพันธ์ระหว่าง class และ subclass แสดงได้โดย directed acyclic graph (DAG) ซึ่งใช้ในกรณีที่คลาส มี superclass มากกว่าหนึ่งคลาส

รูปที่ 5 แสดงคลาส DAG
จากรูปที่ 5 เรากำหนดคลาส part-time และคลาส full-time ขึ้นมาเพื่อเก็บข้อมูลและวิธีการของพนักงาน part-time และ full-time จากนั้น สร้างคลาส part-time-teller ซึ่งเป็น subclass ของ teller และ part-time คลาส part-time-teller จะสืบทอดคุณสมบัติ และวิธีการของทั้ง teller และ part-time มา ซึ่งจะเห็นว่าไม่เกิดความซ้ำซ้อนอย่างที่เกิดขึ้นในรูปที่4 แล้ว
เมื่อมีการสืบทอดแบบหลายคลาส อาจจะมีความคลุมเคลือเกิดขึ้นในกรณีที่ตัวแปรหรือวิธีการที่สืบทอดมาจากหลายคลาสมีชื่อเดียวกัน
ตัวอย่างเช่น เรากำหนดการจ่ายเงิน pay ของพนักงานแต่ละประเภทดังนี้
- full-time: จ่ายเงินอยู่ระหว่าง 0 ถึง 100,000 ของเงินรายได้ทั้งปี
- part-time: จ่ายเงินอยู่ระหว่าง 0 to 20 เป็นค่าแรงต่อชั่วโมง.
- teller: จ่ายเงินอยู่ระหว่าง 0 to 20,000 ของเงินรายได้ทั้งปี
- secretary: จ่ายเงินอยู่ระหว่าง 0 to 25,000 ของเงินรายได้ทั้งปี
พิจารณาคลาส part-time-secretary ซึ่งสืบทอดตัวแปร pay มาจากคลาส part-time หรือ secretary ผลลัพธ์ที่ได้มีหลายกรณี ขึ้นอยู่กับวิธีการว่าจะจัดการอย่างไร
- สืบทอดมาทั้งสองคลาส แล้วเปลี่ยนชื่อของ เป็น part-time-pay และ secretary-pay
- เลือกตัวใดตัวหนึ่ง โดยดูจากลำดับของการสร้างคลาส
- บังคับให้เลือกเลยว่าจะใช้ pay ตัวไหน
- แสดงผลว่าเกิดความผิดพลาด
5.Object Identity
Object identity: อ๊อปเจ็กจะยังคงรักษาความเป็น identity แม้ว่าข้อมูลของตัวแปรหรือวิธีการของ อ๊อปเจ็กมีการเปลี่ยนแปลง แนวคิดของ identity นี้ไม่ได้นำไปใช้กับทูเปิลของฐานข้อมูลเชิงสัมพันธ์ ซึ่งในระบบเชิงสัมพันธ์นั้น ทูเปิลของรีเลชันจะแตกต่างกันด้วยข้อมูลที่ถูกเก็บอยู่
รูปแบบต่าง ๆ ของ identity
- Value: หมายถึงค่าของข้อมูลที่ใช้ในการ identity เช่น primary key
- Name: เป็นชื่อที่ผู้ใช้กำหนดเพื่อใช้ในการ identity เช่น ชื่อแฟ้มในระบบแฟ้มข้อมูล
- Built-in: เป็นการกำหนด identity โดยอัตโนมัติให้กับข้อมูล หรือภาษาโปรแกรม โดยผู้ใช้ไม่จำเป็นต้องกำหนด identifier รูปแบบนี้ถูกใช้ในระบบเชิงวัตถุ แต่ละอ๊อปเจ็กจะถูกกำหนด identifier โดยอัตโนมัติ เมื่ออ๊อปเจ็กถูกสร้างขึ้น
ในทางปฏิบัติ Object identity จะถูกกำหนดให้มีค่าไม่ซ้ำกัน เรียกว่า OID ซึ่งค่าของ OID นี้จะไม่สามารถมองเห็นได้โดยผู้ใช้ทั่วไป แต่จะถูกใช้โดยระบบเพื่อระบุอ๊อปเจ็กแต่ละอ๊อปเจ็ก
6. Object Containment
อ๊อปเจ็กที่สามารถบรรจุอ๊อปเจ็กอื่น ๆ ได้จะถูกเรียกว่า อ๊อปเจ็กเชิงซ้อน(complex object)หรืออ๊อปเจ็กผสม(composite object) ซึ่งสามารถบรรจุซ้อนกันได้หลายชั้น นั่นคือเป็นลักษณะความสัมพันธ์ที่อ๊อปเจ็กหนึ่งจะประกอบด้วยอ๊อปเจ็กหลาย ๆ อ๊อปเจ็กประกอบเข้าด้วยกัน
ตัวอย่าง A bicycle design database

รูปที่ 6 แสดงลำดับชั้นความสัมพันธ์ระหว่างอ๊อปเจ็ก
รูปที่ 6 แสดงลำดับชั้นความสัมพันธ์ระหว่างอ๊อปเจ็ก ซึ่งความสัมพันธ์ในลักษณะนี้ เป็นลักษณะของ is-part-of ซึ่งเป็นคนละแบบกับ is-a ที่เกิดจากการสืบทอดคลาส
ลักษณะการประกอบกันของอ๊อปเจ็กนี้เป็นหลักการที่สำคัญอย่างหนึ่งในระบบเชิงวัตถุ เนื่องจากจะทำให้การมองข้อมูลเริ่มมองจากจุดเล็ก ๆ ก่อน เช่น คนออกแบบล้อ ก็จะมุ่งไปกับการออกแบบล้อ โดยไม่สนใจกับส่วนอื่นเช่น เกียร์หรือ เบรก จากนั้นพนักงานฝ่ายการตลาดก็จะทำการกำหนดราคาจักรยาน โดยนำเอาข้อมูลส่วนต่าง ๆ ที่เป็นส่วนประกอบของจักรยาน มาคำนวณราคาต่อไป
Data Model (2)
ระบบจัดการฐานข้อมูล คือ ระบบโปรแกรมที่มีความสามารถในการจัดการข้อมูลใน ด้านต่างๆ ได้แก่ การให้คำจำกัดความของข้อมูลและเรคคอร์ด การกำหนดความสัมพันธ์ระหว่างฟิลด์ต่าง ๆ ในเรคคอร์ดการจัดการประมวลผล ปรับเปลี่ยนแก้ไขข้อมูล และจัดการกำหนดควบคุมการใช้ข้อมูลอย่างมีระบบ
จุดมุ่งหมายสำคัญของระบบจัดการฐานข้อมูลจำแนกออกได้เป็น 2 ด้าน คือ เพื่อจัดการควบคุมและสนับสนุนการใช้งานขององค์กรอย่างเป็นระบบ
องค์ประกอบหลักของระบบจัดการฐานข้อมูล ระบบจัดการฐานข้อมูลจำแนกเป็นย่อยๆ ได้หลายส่วน โดยแต่ละส่วนจะทำงานร่วมกันได้ หรือในบางกรณีอาจเป็นงานเฉพาะส่วนย่อยๆ จากภาพประกอบแสดงองค์ประกอบหลักของระบบจัดการฐานข้อมูล สัญลักษณ์รูปทรงกระบอกแสดงองค์ประกอบต่างๆ ที่ประกอบกันขึ้นมาเป็นตัวระบบจัดการฐานข้อมูลทั้งหมด ได้แก่
Catalogued Queries/Report/Lable (CQRL) เป็นส่วนที่ควบคุมจัดการด้าน การเลือกค้นหาข้อมูลที่ต้องการ การทำรายงานตารางสรุปต่างๆ ซึ่งจะจัดตามคำร้องขอของผู้ใช้ระบบและออก Output ที่ต้องการ
Transaction and Screen Definition เป็นชุดโปรแกรมที่ควบคุมจัดการด้านการนำเสนอข้อมูลต่างๆ ทางจอภาพ หรือทำตามคำขอต่างๆ ของผู้ใช้ระบบ
User’s Application Program เป็นชุดโปรแกรมเฉพาะด้าน สร้างเพื่อใช้งานเฉพาะภายในหน่วยงานหนึ่งในองค์การ หรือตามความต้องการเฉพาะด้านของผู้ใช้ระบบในบางระดับ
Data Definition และ Store Database เป็นส่วนสำคัญที่สุดของระบบเป็นส่วนที่เก็บ Data dictionary และตัวข้อมูลต่างๆ ที่มีอยู่ในระบบ
หน้าที่
1. ช่วยกำหนด และเก็บโครงสร้างฐานข้อมูล (Define and Store Database Structure)
2. ช่วยดึงข้อมูลจากฐานข้อมูล (Load Database) ข้อมูลที่นำมาประมวลผลด้วยโปรแกรมคอมพิวเตอร์ ระบบจัดการฐานข้อมูลจะทำการรับและเก็บข้อมูลไว้ในข้อมูลเพื่อใช้ใน การประมวลผล
3. ช่วยเก็บและดูแลข้อมูล (Store and Maintain Data) ข้อมูลที่เก็บในฐานข้อมูลจะถูกเก็บรวบรวมได้ด้วยกัน โดยมีระบบจัดการฐานข้อมูลเป็นผู้ดูแลรักษาข้อมูลเหล่านั้น
4. ช่วยประสานงานกับระบบปฏิบัติการ (Operating System) เนื่องจากคอมพิวเตอร์ต้องพึ่งระบบปฏิบัติการช่วยเพื่อให้ทำงานได้ ดังนั้นระบบปฏิบัติการจะคอยควบคุมการทำงานของอุปกรณ์คอมพิวเตอร์หรือโปรแกรมต่าง ๆ เป็นต้น ระบบจัดการฐานข้อมูลจะทำการประสานงานกับระบบปฏิบัติการในการเรียกใช้ แก้ไขข้อมูล ลบข้อมูล ออกรายงาน
5. ช่วยควบคุมความปลอดภัย (Security Control) ในระบบการจัดการฐานข้อมูลจะมีวิธีควบคุมการเรียกใช้ข้อมูล หรือแก้ไขเปลี่ยนแปลงข้อมูลของผู้ใช้ในระบบจะมีวิธีควบคุมการเรียกใช้ข้อมูล หรือแก้ไขเปลี่ยนแปลงข้อมูลของผู้ใช้ในระบบซึ่งสามารถเรียกข้อมูลมาแก้ไขได้แตกต่างกัน เพื่อป้องกันความเสียหายที่จะเกิดขึ้นกับฐานข้อมูล
6. ช่วยจัดทำสำรองข้อมูลและการกู้คืน (Backup and Recover) ในระบบจัดการฐานข้อมูลจะทำการสำรองข้อมูลของฐานข้อมูลและเมื่อเกิดปัญหาขึ้นกับฐานข้อมูล เช่น แฟ้มข้อมูลเสียหายเนื่องจากดิสก์เสีย ระบบจัดการฐานข้อมูลจะใช้ระบบข้อมูลสำรองนี้ในการฟื้นฟู สภาพการทำงานของระบบให้สู่สภาวะปกติ
7. ช่วยควบคุมการใช้ข้อมูลพร้อมกับของผู้ใช้ในระบบ (Concurrency Control) ในระบบคอมพิวเตอร์ที่มีผู้ใช้หลายคนสามารถเรียกข้อมูลได้พร้อมกัน ระบบฐานข้อมูลที่มีคุณสมบัติที่มีใช้หลายคนสามารถเรียกข้อมูลได้พร้อมกันระบบฐานข้อมูลที่มีคุณสมบัตินี้ จะทำการควบคุมการใช้ข้อมูลพร้อมกันของผู้ใช้หลายคนในเวลาเดียวกัน โดยมีการควบคุมอย่างถูกต้องเหมาะสม
8. ช่วยควบคุมความสมบูรณ์ของข้อมูล (Integrity Control) ระบบจัดการฐานข้อมูลจะทำการควบคุมค่าของข้อมูลในระบบให้ถูกต้องตามที่ควรจะเป็น เช่น รหัสนักศึกษาที่ลงทะเบียน จะต้องตรงกับรหัสนักศึกษาในข้อมูลประวัติ
9. ช่วยทำหน้าที่จัดทำดรรชนีข้อมูล (Data Directory) ระบบจัดการฐานข้อมูลจะทำการสร้างดรรชนีข้อมูลเมื่อมีการกำหนดโครงสร้างของฐานข้อมูลขึ้นมาเพื่อเก็บรายละเอียดต่างๆ ที่เกี่ยวข้องกับฐานข้อมูลเช่น ชื่อตาราง ชื่อฟิลด์ ดรรชนีต่างๆ เป็นต้น
การสืบค้น หมายถึง การค้นหาข้อมูลที่จัดเก็บไว้ในฐานข้อมูล จุดมุ่งหมายของ การเก็บข้อมูลไว้ในฐานข้อมูล จุดหลัก คือ ง่ายต่อการสืบค้น เมื่อเวลาต้องการนำข้อมูลมาใช้ ชุดคำสั่งสำหรับการจัดการฐานข้อมูลเป็นชุดคำสั่งที่ใช้ในการค้นหา (Select) แก้ไข (Update) เพิ่มเติม (Insert) และการลบ (Delete)
SQL (Structure Query Language) เป็นชุดคำสั่งที่ใช้จัดการฐานข้อมูลและข้อมูลในฐานข้อมูลชุดคำสั่ง SQL นิยมใช้มากในระบบฐานข้อมูลแบบตารางสัมพันธ์ ชุดคำสั่งที่ใช้ใน การจัดการกับฐานข้อมูลที่สำคัญๆ มี 4 คำสั่ง คือ
1. (Select) ใช้สำหรับการเลือกหาข้อมูลหรือเรคคอร์ดที่ต้องการในฐานข้อมูล
2. (Update) ใช้เมื่อต้องการแก้ไขข้อมูลหรือเรคคอร์ด
3. (Delete) ใช้เมื่อต้องการการลบข้อมูลหรือเรคคอร์ด
4. (Insert) ใช้เมื่อต้องการเพิ่มเติมเรคคอร์ดหรือข้อมูลใหม่
จุดมุ่งหมายสำคัญของระบบจัดการฐานข้อมูลจำแนกออกได้เป็น 2 ด้าน คือ เพื่อจัดการควบคุมและสนับสนุนการใช้งานขององค์กรอย่างเป็นระบบ
องค์ประกอบหลักของระบบจัดการฐานข้อมูล ระบบจัดการฐานข้อมูลจำแนกเป็นย่อยๆ ได้หลายส่วน โดยแต่ละส่วนจะทำงานร่วมกันได้ หรือในบางกรณีอาจเป็นงานเฉพาะส่วนย่อยๆ จากภาพประกอบแสดงองค์ประกอบหลักของระบบจัดการฐานข้อมูล สัญลักษณ์รูปทรงกระบอกแสดงองค์ประกอบต่างๆ ที่ประกอบกันขึ้นมาเป็นตัวระบบจัดการฐานข้อมูลทั้งหมด ได้แก่
Authorized User Profiles AUP เป็นองค์ประกอบด้านการจัดการควบคุมตัวผู้ใช้ระบบใครสามารถอ่านข้อมูลชุดใดได้ เช่น การกำหนดรหัสผ่าน (password) ให้กับผู้ใช้ระดับต่างๆ ในองค์กร
Catalogued Queries/Report/Lable (CQRL) เป็นส่วนที่ควบคุมจัดการด้าน การเลือกค้นหาข้อมูลที่ต้องการ การทำรายงานตารางสรุปต่างๆ ซึ่งจะจัดตามคำร้องขอของผู้ใช้ระบบและออก Output ที่ต้องการ
Transaction and Screen Definition เป็นชุดโปรแกรมที่ควบคุมจัดการด้านการนำเสนอข้อมูลต่างๆ ทางจอภาพ หรือทำตามคำขอต่างๆ ของผู้ใช้ระบบ
User’s Application Program เป็นชุดโปรแกรมเฉพาะด้าน สร้างเพื่อใช้งานเฉพาะภายในหน่วยงานหนึ่งในองค์การ หรือตามความต้องการเฉพาะด้านของผู้ใช้ระบบในบางระดับ
Data Definition และ Store Database เป็นส่วนสำคัญที่สุดของระบบเป็นส่วนที่เก็บ Data dictionary และตัวข้อมูลต่างๆ ที่มีอยู่ในระบบ
หน้าที่
1. ช่วยกำหนด และเก็บโครงสร้างฐานข้อมูล (Define and Store Database Structure)
2. ช่วยดึงข้อมูลจากฐานข้อมูล (Load Database) ข้อมูลที่นำมาประมวลผลด้วยโปรแกรมคอมพิวเตอร์ ระบบจัดการฐานข้อมูลจะทำการรับและเก็บข้อมูลไว้ในข้อมูลเพื่อใช้ใน การประมวลผล
3. ช่วยเก็บและดูแลข้อมูล (Store and Maintain Data) ข้อมูลที่เก็บในฐานข้อมูลจะถูกเก็บรวบรวมได้ด้วยกัน โดยมีระบบจัดการฐานข้อมูลเป็นผู้ดูแลรักษาข้อมูลเหล่านั้น
4. ช่วยประสานงานกับระบบปฏิบัติการ (Operating System) เนื่องจากคอมพิวเตอร์ต้องพึ่งระบบปฏิบัติการช่วยเพื่อให้ทำงานได้ ดังนั้นระบบปฏิบัติการจะคอยควบคุมการทำงานของอุปกรณ์คอมพิวเตอร์หรือโปรแกรมต่าง ๆ เป็นต้น ระบบจัดการฐานข้อมูลจะทำการประสานงานกับระบบปฏิบัติการในการเรียกใช้ แก้ไขข้อมูล ลบข้อมูล ออกรายงาน
5. ช่วยควบคุมความปลอดภัย (Security Control) ในระบบการจัดการฐานข้อมูลจะมีวิธีควบคุมการเรียกใช้ข้อมูล หรือแก้ไขเปลี่ยนแปลงข้อมูลของผู้ใช้ในระบบจะมีวิธีควบคุมการเรียกใช้ข้อมูล หรือแก้ไขเปลี่ยนแปลงข้อมูลของผู้ใช้ในระบบซึ่งสามารถเรียกข้อมูลมาแก้ไขได้แตกต่างกัน เพื่อป้องกันความเสียหายที่จะเกิดขึ้นกับฐานข้อมูล
6. ช่วยจัดทำสำรองข้อมูลและการกู้คืน (Backup and Recover) ในระบบจัดการฐานข้อมูลจะทำการสำรองข้อมูลของฐานข้อมูลและเมื่อเกิดปัญหาขึ้นกับฐานข้อมูล เช่น แฟ้มข้อมูลเสียหายเนื่องจากดิสก์เสีย ระบบจัดการฐานข้อมูลจะใช้ระบบข้อมูลสำรองนี้ในการฟื้นฟู สภาพการทำงานของระบบให้สู่สภาวะปกติ
7. ช่วยควบคุมการใช้ข้อมูลพร้อมกับของผู้ใช้ในระบบ (Concurrency Control) ในระบบคอมพิวเตอร์ที่มีผู้ใช้หลายคนสามารถเรียกข้อมูลได้พร้อมกัน ระบบฐานข้อมูลที่มีคุณสมบัติที่มีใช้หลายคนสามารถเรียกข้อมูลได้พร้อมกันระบบฐานข้อมูลที่มีคุณสมบัตินี้ จะทำการควบคุมการใช้ข้อมูลพร้อมกันของผู้ใช้หลายคนในเวลาเดียวกัน โดยมีการควบคุมอย่างถูกต้องเหมาะสม
8. ช่วยควบคุมความสมบูรณ์ของข้อมูล (Integrity Control) ระบบจัดการฐานข้อมูลจะทำการควบคุมค่าของข้อมูลในระบบให้ถูกต้องตามที่ควรจะเป็น เช่น รหัสนักศึกษาที่ลงทะเบียน จะต้องตรงกับรหัสนักศึกษาในข้อมูลประวัติ
9. ช่วยทำหน้าที่จัดทำดรรชนีข้อมูล (Data Directory) ระบบจัดการฐานข้อมูลจะทำการสร้างดรรชนีข้อมูลเมื่อมีการกำหนดโครงสร้างของฐานข้อมูลขึ้นมาเพื่อเก็บรายละเอียดต่างๆ ที่เกี่ยวข้องกับฐานข้อมูลเช่น ชื่อตาราง ชื่อฟิลด์ ดรรชนีต่างๆ เป็นต้น
การสืบค้น หมายถึง การค้นหาข้อมูลที่จัดเก็บไว้ในฐานข้อมูล จุดมุ่งหมายของ การเก็บข้อมูลไว้ในฐานข้อมูล จุดหลัก คือ ง่ายต่อการสืบค้น เมื่อเวลาต้องการนำข้อมูลมาใช้ ชุดคำสั่งสำหรับการจัดการฐานข้อมูลเป็นชุดคำสั่งที่ใช้ในการค้นหา (Select) แก้ไข (Update) เพิ่มเติม (Insert) และการลบ (Delete)
SQL (Structure Query Language) เป็นชุดคำสั่งที่ใช้จัดการฐานข้อมูลและข้อมูลในฐานข้อมูลชุดคำสั่ง SQL นิยมใช้มากในระบบฐานข้อมูลแบบตารางสัมพันธ์ ชุดคำสั่งที่ใช้ใน การจัดการกับฐานข้อมูลที่สำคัญๆ มี 4 คำสั่ง คือ
1. (Select) ใช้สำหรับการเลือกหาข้อมูลหรือเรคคอร์ดที่ต้องการในฐานข้อมูล
2. (Update) ใช้เมื่อต้องการแก้ไขข้อมูลหรือเรคคอร์ด
3. (Delete) ใช้เมื่อต้องการการลบข้อมูลหรือเรคคอร์ด
4. (Insert) ใช้เมื่อต้องการเพิ่มเติมเรคคอร์ดหรือข้อมูลใหม่
Data Model(1)
ชนิดของฐานข้อมูล ในระบบฐานข้อมูลแบ่งหน่วยของข้อมูลหลายระดับ ดังนี้
- บิต (BIT) หมายถึง หน่วยข้อมูลที่เล็กที่สุด แทนค่า ด้วย 0 หรือ 1
- ไบท์ (Byte) หมายถึง หน่วยข้อมูลที่นำขบวนของบิตที่รวมกันแทนตัวอักษร
- ฟิลด์ (Field) หมายถึง หน่วยของข้อมูลที่ประกอบด้วยหลายตัวอักษร เพื่อแทนความหมายของข้อมูล เช่น รหัสนิสิต ชื่อนักเรียน เป็นต้น
- เรคคอร์ด (Record) หมายถึง หน่วยของข้อมูลที่นำเอาฟิลด์ หลายๆ ฟิลด์มารวมกัน แสดงรายละเอียดของข้อมูลหนึ่งๆ เช่น ประวัตินักศึกษา ประกอบด้วย รหัสนักศึกษา ชื่อนักศึกษา นามสกุล วันเดือนปีเกิด ที่อยู่ เป็นต้น
- แฟ้มข้อมูล (File) หมายถึง หน่วยของข้อมูลที่เกิดจากากรรวมกันของเรคคอร์ดหลายๆ เรคคอร์ด
ความสัมพันธ์ของฐานข้อมูล
ความสัมพันธ์ (Relationships) หมายถึง คำกริยาที่แสดงความสัมพันธ์ระหว่างสองเอนทิตี้ เช่น เอนทิตี้นักศึกษาและเอนทิตี้โปรแกรมวิชามีความสัมพันธ์ในด้าน “เป็นนักศึกษาสังกัดอยู่” นั่นคือ นักศึกษาแต่ละคนสังกัดอยู่ในโปรแกรมวิชาใดวิชาหนึ่ง
ความสัมพันธ์ระหว่างเอททิตี้
ในการระบุชื่อความสัมพันธ์ระหว่างเอนทิตี้ จะพิจารณาด้วยการกำหนดทิศทางของความสัมพันธ์จากเอนทิตี้หนึ่งไปยังเอนทิตี้หนึ่งว่ามีความสัมพันธ์กันอย่างไร เช่น ความสัมพันธ์จากเอนทิตี้นักศึกษาไปแต่ละคนสังกัดอยู่ในโปรแกรมวิชาเป็นความสัมพันธ์ที่เรียกว่า “สังกัดอยู่” นั่นคือนักศึกษาแต่ละคนสังกัดอยู่ในโปรแกรมวิชาในทางกลับกัน อาจจะระบุทิศทางของความสัมพันธ์ว่า ความสัมพันธ์จากเอนทิตี้โปรแกรมวิชาไปยังเอนทิตี้นักศึกษา เป็นความสัมพันธ์ที่เรียกว่า “ประกอบด้วย” นั่นคือแต่ละโปรแกรมวิชาประกอบด้วยนักศึกษา
นอกจากคำนึงถึงความสัมพันธ์แล้ว ยังต้องพิจารณาถึงจำนวนข้อมูล ที่เกิดขึ้นระหว่างความสัมพันธ์ของทั้งสองเอนทิตี้ว่ามีค่าเท่าไร (Cardinality Ratio) เช่น ความสัมพันธ์ของข้อมูลจากเอนทิตี้นักศึกษาไปยังเอนทิตี้โปรแกรมิชาเป็นอัตราส่วน 1 : 1 นั่นคือ นักศึกษาแต่ละสังกัดอยู่โปรแกรมวิชาเพียงโปรแกรมวิชาเป็นอัตราส่วน 1 : 30 นั่นคือแต่ละโปรแกรมวิชาจะประกอบด้วยนักศึกษา 30 คนเป็นต้น
ความสัมพันธ์ระหว่างเอททิตี้ 2เอททิตี้
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One - to - One Relationships) เป็น การแสดงความสัมพันธ์ เอนทิตี้หนึ่งว่ามีความสัมพันธ์กับเอนทิตี้หนึ่งในลักษณะที่เป็นหนึ่งต้องหนึ่ง เช่น นักศึกษาแต่ละคนสังกัด โปรแกรมวิชาได้เพียงโปรแกรมวิชาเดียวเท่านั้น
- บิต (BIT) หมายถึง หน่วยข้อมูลที่เล็กที่สุด แทนค่า ด้วย 0 หรือ 1
- ไบท์ (Byte) หมายถึง หน่วยข้อมูลที่นำขบวนของบิตที่รวมกันแทนตัวอักษร
- ฟิลด์ (Field) หมายถึง หน่วยของข้อมูลที่ประกอบด้วยหลายตัวอักษร เพื่อแทนความหมายของข้อมูล เช่น รหัสนิสิต ชื่อนักเรียน เป็นต้น
- เรคคอร์ด (Record) หมายถึง หน่วยของข้อมูลที่นำเอาฟิลด์ หลายๆ ฟิลด์มารวมกัน แสดงรายละเอียดของข้อมูลหนึ่งๆ เช่น ประวัตินักศึกษา ประกอบด้วย รหัสนักศึกษา ชื่อนักศึกษา นามสกุล วันเดือนปีเกิด ที่อยู่ เป็นต้น
- แฟ้มข้อมูล (File) หมายถึง หน่วยของข้อมูลที่เกิดจากากรรวมกันของเรคคอร์ดหลายๆ เรคคอร์ด
ความสัมพันธ์ของฐานข้อมูล
ความสัมพันธ์ (Relationships) หมายถึง คำกริยาที่แสดงความสัมพันธ์ระหว่างสองเอนทิตี้ เช่น เอนทิตี้นักศึกษาและเอนทิตี้โปรแกรมวิชามีความสัมพันธ์ในด้าน “เป็นนักศึกษาสังกัดอยู่” นั่นคือ นักศึกษาแต่ละคนสังกัดอยู่ในโปรแกรมวิชาใดวิชาหนึ่ง
ความสัมพันธ์ระหว่างเอททิตี้
ในการระบุชื่อความสัมพันธ์ระหว่างเอนทิตี้ จะพิจารณาด้วยการกำหนดทิศทางของความสัมพันธ์จากเอนทิตี้หนึ่งไปยังเอนทิตี้หนึ่งว่ามีความสัมพันธ์กันอย่างไร เช่น ความสัมพันธ์จากเอนทิตี้นักศึกษาไปแต่ละคนสังกัดอยู่ในโปรแกรมวิชาเป็นความสัมพันธ์ที่เรียกว่า “สังกัดอยู่” นั่นคือนักศึกษาแต่ละคนสังกัดอยู่ในโปรแกรมวิชาในทางกลับกัน อาจจะระบุทิศทางของความสัมพันธ์ว่า ความสัมพันธ์จากเอนทิตี้โปรแกรมวิชาไปยังเอนทิตี้นักศึกษา เป็นความสัมพันธ์ที่เรียกว่า “ประกอบด้วย” นั่นคือแต่ละโปรแกรมวิชาประกอบด้วยนักศึกษา
นอกจากคำนึงถึงความสัมพันธ์แล้ว ยังต้องพิจารณาถึงจำนวนข้อมูล ที่เกิดขึ้นระหว่างความสัมพันธ์ของทั้งสองเอนทิตี้ว่ามีค่าเท่าไร (Cardinality Ratio) เช่น ความสัมพันธ์ของข้อมูลจากเอนทิตี้นักศึกษาไปยังเอนทิตี้โปรแกรมิชาเป็นอัตราส่วน 1 : 1 นั่นคือ นักศึกษาแต่ละสังกัดอยู่โปรแกรมวิชาเพียงโปรแกรมวิชาเป็นอัตราส่วน 1 : 30 นั่นคือแต่ละโปรแกรมวิชาจะประกอบด้วยนักศึกษา 30 คนเป็นต้น
ความสัมพันธ์ระหว่างเอททิตี้ 2เอททิตี้
1. ความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One - to - One Relationships) เป็น การแสดงความสัมพันธ์ เอนทิตี้หนึ่งว่ามีความสัมพันธ์กับเอนทิตี้หนึ่งในลักษณะที่เป็นหนึ่งต้องหนึ่ง เช่น นักศึกษาแต่ละคนสังกัด โปรแกรมวิชาได้เพียงโปรแกรมวิชาเดียวเท่านั้น
2. ความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One - to - many Relationships) เป็น การแสดงความสัมพันธ์ของเอนทิตี้หนึ่งว่ามีความสัมพันธ์กับข้อมูลหลายข้อมูลของเอนทิตี้หนึ่ง เช่น ความสัมพันธ์ของนักศึกษากับการลงทะเบียนนักศึกษาหนึ่งคนสามารถลงทะเบียนได้หลายสาขา
3. ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many - to - Many Relationships) เป็ น การแสดงความสัมพันธ์ของข้อมูลสองเอนทิตี้ ในลักษณะแบบกลุ่มต่อกลุ่ม เช่น ในเอนทิตี้ การลงทะเบียนแต่ละครั้งสามารถลงทะเบียนได้หลายรายวิชา ความสัมพันธ์ของนักศึกษาไปยังเอนทิตี้รายวิชาเป็นแบบหนึ่งต่อกลุ่ม (1: N) และแต่ละรายวิชาถูกลงทะเบียนได้จากนักศึกษาหลายคน ซึ่งเป็นความสัมพันธ์ของเอนทิตี้รายวิชาไปยังเอนทิตี้นักศึกษาเป็นแบบหนึ่งต่อกลุ่ม (1: M) ดังความสัมพันธ์ระหว่างเอนทิตี้ทั้งสองจึงเป็นแบบกลุ่มต่อกลุ่ม (N: M)
Data Model
ระบบฐานข้อมูล
ฐานข้อมูล (Database) เข้ามามีบทบาทสำคัญต่อการปฏิบัติงานในด้านต่างๆ โดยเฉพาะอย่างยิ่งระบบงานที่นำคอมพิวเตอร์เข้ามาช่วยในการปฏิบัติงาน เช่น งานทางด้านวิศวกรรม การแพทย์ การศึกษา วิทยาศาสตร์และงานด้านธุรกิจ เป็นต้น ถ้าพิจารณาความหมายของข้อมูล (Data) ก็จะพบว่าข้อมูล หมายถึง ความจริงที่เกี่ยวกับสิ่งของ มนุษย์ และเหตุการณ์ต่างๆ เมื่อนำมาเก็บรวบรวมไว้ เราจึงสามารถกล่าวได้ว่า ฐานข้อมูล (Database) คือ การจัดเก็บข้อมูลอย่างมีระบบ ซึ่งผู้ใช้สามารถเรียกใช้ข้อมูลในลักษณะต่างๆ ได้อย่างมีประสิทธิภาพ ได้แก่ การนำข้อมูลมาแก้เพิ่มเติม การลบข้อมูล การเรียกข้อมูล เป็นต้น
ความหมาย
ฐานข้อมูลประกอบด้วยรายละเอียดของข้อมูลที่เกี่ยวข้องกัน ซึ่งถูกนำมาใช้ในงานด้านต่างๆ เช่น ด้านทะเบียนนักศึกษา จะมีฐานข้อมูลเกี่ยวกับนักศึกษา ข้อมูลฝากเงิน ข้อมูลการให้สินเชื่อ หรือข้อมูลเกี่ยวกับร้านค้า จะมีข้อมูลเกี่ยวกับเจ้าหนี้การค้า ข้อมูลเกี่ยวกับสินค้าคงคลังเป็นข้อมูลเหล่านี้จะถูกเก็บอย่างมีระบบเพื่อประโยชน์ในการจัดการและ การเรียกใช้ข้อมูลได้อย่างมีประสิทธิภาพ
องค์ประกอบของระบบฐานข้อมูล
ระบบฐานข้อมูลส่วนใหญ่เป็นระบบที่มีการนำระบบคอมพิวเตอร์เข้ามาช่วยใน การจัดเก็บ โดยมีโปรแกรม Software ช่วยในการจัดการข้อมูลเหล่านี้ เพื่อให้ได้ข้อมูลตามที่ผู้ใช้ต้องการ องค์ประกอบของฐานข้อมูลแบ่งออกเป็น 5 ประเภท คือ
1. ฮาร์ดแวร์ (Hardware)
ในระบบฐานข้อมูลที่มีประสิทธิภาพควรมีฮาร์ดแวร์ต่าง ๆ ที่พร้อมจะอำนวยความสะดวกในการบริหารข้อมูลได้อย่างมีประสิทธิภาพไม่ว่าจะเป็นความเร็วของหน่วยประมวลผลกลาง ขนาดของหน่วยความจำหลัก อุปกรณ์นำเข้าและออกข้อมูล รายงานหน่วยความจำสำรองที่จะรองรับการประมวลผลข้อมูลในระบบได้อย่างมีประสิทธิภาพ
2. ซอฟต์แวร์ (Software)
ในการประมวลผลข้อมูลอาจจะใช้ซอฟต์แวร์หรือโปรแกรมที่แตกต่างกัน ทั้งนี้ขึ้นอยู่กับคอมพิวเตอร์ที่นำมาใช้ว่าเป็นแบบใด โปรแกรมจะทำหน้าที่ดูแลการสร้าง การเรียกใช้ข้อมูลการจัดทำรายงาน การปรับเปลี่ยน แก้ไข โครงสร้างการควบคุม หรืออาจกล่าวได้อีกอย่างว่าระบบจัดการฐานข้อมูล (Database Management System : DBMS) คือ โปรแกรมประยุกต์ต่างๆ ที่มีอยู่ในฐานข้อมูล ตัวอย่างเช่น DBASE IV, EXCEL , ACCESS , INFORMIX , ORACLE เป็นต้น
3. ข้อมูล (Data)
ฐานข้อมูลเป็นการจัดเก็บรวบรวมข้อมูลให้เป็นศูนย์กลางข้อมูลอย่างมีระบบ ซึ่งข้อมูลเหล่านี้สามารถเรียกใช้ร่วมกันได้ ผู้ใช้ข้อมูลในระบบฐานข้อมูลจะมองภาพข้อมูลในลักษณะที่แตกต่างกัน เช่น ผู้ใช้บางคนมองภาพของข้อมูลที่ถูกจัดเก็บได้ในสื่อข้อมูล ผู้ใช้
บางคนมองภาพข้อมูลจากการใช้งาน เป็นต้น
ภาพประกอบที่ 20 สิ่งแวดล้อมของระบบฐานข้อมูล
(วิเศษศักดิ์ โคตรอาษา. 2542 : 129)
4. บุคลากร (People) ในระบบฐานข้อมูลจะมีบุคลากรที่เกี่ยวข้อง ดังนี้
4.1 ผู้ใช้ทั่วไป (User) หมายถึง บุคลากรที่ใช้ข้อมูลจากระบบฐานข้อมูล เพื่อให้งานสำเร็จลุล่วงได้
4.2 พนักปฏิบัติการ (Operator) หมายถึง ผู้ปฏิบัติการด้านการประมวลผลการป้อนข้อมูลเข้าเครื่องคอมพิวเตอร์
4.3 นักเขียนโปรแกรม (Programmer) หมายถึง ผู้ที่มีหน้าที่เขียนโปรแกรมประยุกต์ใช้งานต่างๆ เพื่อให้จัดเก็บข้อมูล การเรียกใช้ข้อมูลเป็นไปตามต้องการของผู้ใช้
4.4 นักวิเคราะห์และออกแบบระบบ (System Analyst) หมายถึง บุคลากรที่ทำหน้าที่วิเคราะห์ระบบฐานข้อมูล และออกแบบระบบงานที่จะนำมาใช้
4.5 ผู้บริหารฐานข้อมูล (Database Administrator) หมายถึง บุคลากรที่ทำหน้าที่บริการและควบคุมการบริหารงานของระบบฐานข้อมูล ทั้งหมดเป็นผู้ตัดสินใจว่าจะรวบรวมข้อมูลอะไรเข้าในระบบ จัดเก็บโดยวิธีใด เทคนิคการเรียกใช้ข้อมูล กำหนดระบบวิธีการรักษาความปลอดภัยของข้อมูล การสร้างระบบข้อมูลสำรอง การกู้และประสานงานกับผู้ใช้ว่ามีความต้องการใช้ข้อมูลอย่างไร รวมถึงการวิเคราะห์และการออกแบบระบบ เพื่อให้นักเขียนโปรแกรมนำไปเขียนโปรแกรมที่ใช้ในการบริหารงานระบบฐานข้อมูลได้อย่างมีประสิทธิภาพ
5. ขั้นตอนปฏิบัติงาน (procedure)
ในระบบฐานข้อมูลที่ดีจะต้องมีการจัดทำเอกสารที่ระบุขั้นตอนการทำงานของหน้าที่ต่างๆ ระบบฐานข้อมูลทั้งในสภาวะปกติ และในสภาวะที่ระบบเกิดขัดข้องมีปัญหา ซึ่งเป็นขั้นตอนการปฏิบัติงานสำหรับบุคลากรในทุกระดับขององค์กร
ฐานข้อมูล (Database) เข้ามามีบทบาทสำคัญต่อการปฏิบัติงานในด้านต่างๆ โดยเฉพาะอย่างยิ่งระบบงานที่นำคอมพิวเตอร์เข้ามาช่วยในการปฏิบัติงาน เช่น งานทางด้านวิศวกรรม การแพทย์ การศึกษา วิทยาศาสตร์และงานด้านธุรกิจ เป็นต้น ถ้าพิจารณาความหมายของข้อมูล (Data) ก็จะพบว่าข้อมูล หมายถึง ความจริงที่เกี่ยวกับสิ่งของ มนุษย์ และเหตุการณ์ต่างๆ เมื่อนำมาเก็บรวบรวมไว้ เราจึงสามารถกล่าวได้ว่า ฐานข้อมูล (Database) คือ การจัดเก็บข้อมูลอย่างมีระบบ ซึ่งผู้ใช้สามารถเรียกใช้ข้อมูลในลักษณะต่างๆ ได้อย่างมีประสิทธิภาพ ได้แก่ การนำข้อมูลมาแก้เพิ่มเติม การลบข้อมูล การเรียกข้อมูล เป็นต้น
ความหมาย
ฐานข้อมูลประกอบด้วยรายละเอียดของข้อมูลที่เกี่ยวข้องกัน ซึ่งถูกนำมาใช้ในงานด้านต่างๆ เช่น ด้านทะเบียนนักศึกษา จะมีฐานข้อมูลเกี่ยวกับนักศึกษา ข้อมูลฝากเงิน ข้อมูลการให้สินเชื่อ หรือข้อมูลเกี่ยวกับร้านค้า จะมีข้อมูลเกี่ยวกับเจ้าหนี้การค้า ข้อมูลเกี่ยวกับสินค้าคงคลังเป็นข้อมูลเหล่านี้จะถูกเก็บอย่างมีระบบเพื่อประโยชน์ในการจัดการและ การเรียกใช้ข้อมูลได้อย่างมีประสิทธิภาพ
องค์ประกอบของระบบฐานข้อมูล
ระบบฐานข้อมูลส่วนใหญ่เป็นระบบที่มีการนำระบบคอมพิวเตอร์เข้ามาช่วยใน การจัดเก็บ โดยมีโปรแกรม Software ช่วยในการจัดการข้อมูลเหล่านี้ เพื่อให้ได้ข้อมูลตามที่ผู้ใช้ต้องการ องค์ประกอบของฐานข้อมูลแบ่งออกเป็น 5 ประเภท คือ
1. ฮาร์ดแวร์ (Hardware)
ในระบบฐานข้อมูลที่มีประสิทธิภาพควรมีฮาร์ดแวร์ต่าง ๆ ที่พร้อมจะอำนวยความสะดวกในการบริหารข้อมูลได้อย่างมีประสิทธิภาพไม่ว่าจะเป็นความเร็วของหน่วยประมวลผลกลาง ขนาดของหน่วยความจำหลัก อุปกรณ์นำเข้าและออกข้อมูล รายงานหน่วยความจำสำรองที่จะรองรับการประมวลผลข้อมูลในระบบได้อย่างมีประสิทธิภาพ
2. ซอฟต์แวร์ (Software)
ในการประมวลผลข้อมูลอาจจะใช้ซอฟต์แวร์หรือโปรแกรมที่แตกต่างกัน ทั้งนี้ขึ้นอยู่กับคอมพิวเตอร์ที่นำมาใช้ว่าเป็นแบบใด โปรแกรมจะทำหน้าที่ดูแลการสร้าง การเรียกใช้ข้อมูลการจัดทำรายงาน การปรับเปลี่ยน แก้ไข โครงสร้างการควบคุม หรืออาจกล่าวได้อีกอย่างว่าระบบจัดการฐานข้อมูล (Database Management System : DBMS) คือ โปรแกรมประยุกต์ต่างๆ ที่มีอยู่ในฐานข้อมูล ตัวอย่างเช่น DBASE IV, EXCEL , ACCESS , INFORMIX , ORACLE เป็นต้น
3. ข้อมูล (Data)
ฐานข้อมูลเป็นการจัดเก็บรวบรวมข้อมูลให้เป็นศูนย์กลางข้อมูลอย่างมีระบบ ซึ่งข้อมูลเหล่านี้สามารถเรียกใช้ร่วมกันได้ ผู้ใช้ข้อมูลในระบบฐานข้อมูลจะมองภาพข้อมูลในลักษณะที่แตกต่างกัน เช่น ผู้ใช้บางคนมองภาพของข้อมูลที่ถูกจัดเก็บได้ในสื่อข้อมูล ผู้ใช้
บางคนมองภาพข้อมูลจากการใช้งาน เป็นต้น
ภาพประกอบที่ 20 สิ่งแวดล้อมของระบบฐานข้อมูล
(วิเศษศักดิ์ โคตรอาษา. 2542 : 129)
4. บุคลากร (People) ในระบบฐานข้อมูลจะมีบุคลากรที่เกี่ยวข้อง ดังนี้
4.1 ผู้ใช้ทั่วไป (User) หมายถึง บุคลากรที่ใช้ข้อมูลจากระบบฐานข้อมูล เพื่อให้งานสำเร็จลุล่วงได้
4.2 พนักปฏิบัติการ (Operator) หมายถึง ผู้ปฏิบัติการด้านการประมวลผลการป้อนข้อมูลเข้าเครื่องคอมพิวเตอร์
4.3 นักเขียนโปรแกรม (Programmer) หมายถึง ผู้ที่มีหน้าที่เขียนโปรแกรมประยุกต์ใช้งานต่างๆ เพื่อให้จัดเก็บข้อมูล การเรียกใช้ข้อมูลเป็นไปตามต้องการของผู้ใช้
4.4 นักวิเคราะห์และออกแบบระบบ (System Analyst) หมายถึง บุคลากรที่ทำหน้าที่วิเคราะห์ระบบฐานข้อมูล และออกแบบระบบงานที่จะนำมาใช้
4.5 ผู้บริหารฐานข้อมูล (Database Administrator) หมายถึง บุคลากรที่ทำหน้าที่บริการและควบคุมการบริหารงานของระบบฐานข้อมูล ทั้งหมดเป็นผู้ตัดสินใจว่าจะรวบรวมข้อมูลอะไรเข้าในระบบ จัดเก็บโดยวิธีใด เทคนิคการเรียกใช้ข้อมูล กำหนดระบบวิธีการรักษาความปลอดภัยของข้อมูล การสร้างระบบข้อมูลสำรอง การกู้และประสานงานกับผู้ใช้ว่ามีความต้องการใช้ข้อมูลอย่างไร รวมถึงการวิเคราะห์และการออกแบบระบบ เพื่อให้นักเขียนโปรแกรมนำไปเขียนโปรแกรมที่ใช้ในการบริหารงานระบบฐานข้อมูลได้อย่างมีประสิทธิภาพ
5. ขั้นตอนปฏิบัติงาน (procedure)
ในระบบฐานข้อมูลที่ดีจะต้องมีการจัดทำเอกสารที่ระบุขั้นตอนการทำงานของหน้าที่ต่างๆ ระบบฐานข้อมูลทั้งในสภาวะปกติ และในสภาวะที่ระบบเกิดขัดข้องมีปัญหา ซึ่งเป็นขั้นตอนการปฏิบัติงานสำหรับบุคลากรในทุกระดับขององค์กร
วันอังคารที่ 6 กันยายน พ.ศ. 2554
My SQL คือ
MySQL (มายเอสคิวแอล)
MySQL (มายเอสคิวแอล) เป็นระบบจัดการฐานข้อมูลโดยใช้ภาษา SQL. แม้ว่า MySQL เป็นซอฟต์แวร์โอเพนซอร์ส แต่แตกต่างจากซอฟต์แวร์โอเพนซอร์สทั่วไป โดยมีการพัฒนาภายใต้บริษัท MySQL AB ในประเทศสวีเดน โดยจัดการ MySQL ทั้งในแบบที่ให้ใช้ฟรี และแบบที่ใช้ในเชิงธุรกิจMySQL สร้างขึ้นโดยชาวสวีเดน 2 คน และชาวฟินแลนด์ ชื่อ David Axmark, Allan Larsson และ Michael “Monty” Widenius.
ปัจจุบันบริษัทซันไมโครซิสเต็มส์ (Sun Microsystems, Inc.) เข้าซื้อกิจการของ MySQL AB เรียบร้อยแล้ว ฉะนั้นผลิตภัณฑ์ภายใต้ MySQL AB ทั้งหมดจะตกเป็นของซัน
ชื่อ “MySQL” อ่านออกเสียงว่า “มายเอสคิวเอล” หรือ “มายเอสคิวแอล” (ในการอ่านอักษร L ในภาษาไทย) ซึ่งทางซอฟต์แวร์ไม่ได้อ่าน มายซีเควล หรือ มายซีควล เหมือนกับซอฟต์แวร์จัดการฐานข้อมูลตัวอื่น
การใช้งาน
MySQL เป็นที่นิยมใช้กันมากสำหรับฐานข้อมูลสำหรับเว็บไซต์ เช่น มีเดียวิกิ และ phpBB และนิยมใช้งานร่วมกับภาษาโปรแกรม PHP ซึ่งมักจะได้ชื่อว่าเป็นคู่ จะเห็นได้จากคู่มือคอมพิวเตอร์ต่างๆ ที่จะสอนการใช้งาน MySQL และ PHP ควบคู่กันไป นอกจากนี้ หลายภาษาโปรแกรมที่สามารถทำงานร่วมกับฐานข้อมูล MySQL ซึ่งรวมถึง ภาษาซี ซีพลัสพลัส ปาสคาล ซีชาร์ป ภาษาจาวา ภาษาเพิร์ล พีเอชพี ไพทอน รูบี และภาษาอื่น ใช้งานผ่าน API สำหรับโปรแกรมที่ติดต่อผ่าน ODBC หรือ ส่วนเชื่อมต่อกับภาษาอื่น (database connector) เช่น เอเอสพี สามารถเรียกใช้ MySQL ผ่านทาง MyODBC,ADO,ADO.NET เป็นต้นปฏิบัติการที่6 SQL
H: จากข้อ'e'เมื่อแปลออกมาเป็นภาษาคำถามของมนุษย์จะได้ว่า "ให้เลือกแสดงฟิลด์รหัสนิสิต ชื่อนิสิต อาจารย์ที่ปรึกษา และชั้น จากตารางนักเรียน(student) โดยมีเงือนไขคือเป็นนิสิตชั้นปีที่2" ให้ลองแปลข้อ'f'' ออกมาเป็นภาษาคำถามของมนุษย์
ตอบ F: SELECT studentid,Name, Advisor,Class,Hobby
FROM student
WHERE Hobby LIKE'อ่าน*';
จะได้ดังภาพ
ให้เลือกให้เลือกแสดงฟิลด์รหัสนิสิต ชื่อนิสิต อาจารย์ที่ปรึกษา ชั้น และงานอดิเรก จากตารางนักเรียน(student)โดยมีเงือนไขคือ ตารางงานอดิเรกโดยมีคำว่าอ่านหนังสือ
ตอบ F: SELECT studentid,Name, Advisor,Class,Hobby
FROM student
WHERE Hobby LIKE'อ่าน*';
จะได้ดังภาพ
ให้เลือกให้เลือกแสดงฟิลด์รหัสนิสิต ชื่อนิสิต อาจารย์ที่ปรึกษา ชั้น และงานอดิเรก จากตารางนักเรียน(student)โดยมีเงือนไขคือ ตารางงานอดิเรกโดยมีคำว่าอ่านหนังสือ
---------------------------------------------------------------------------------------------------
I:ให้นิสิตสืบค้นข้อมูลด้วยภาษาSQLตามคำถาม"ให้เลือกฟิลด์ทั้งหมดจากตารางรายวิชา(subject)
ตอบ
SELECT subjectid,Name,Credit,Book,Teacher
FROM subject;
จะได้ตามภาพ
---------------------------------------------------------------------------------------------------
J: ให้นิสิตสืบค้นข้อมูลด้วยภาษาSQLตามคำถาม"ให้เลือกฟิลด์รหัสรายวิชา ชื่อรายวิชา และจำนวนหน่วยกิต จากตารางรายวิชา(subject)"
ตอบ
SELECT subjectid,Name,Credit
FROM subject;
จะได้ดังภาพ
--------------------------------------------------------------------------------------------------
K: ให้นิสิตสืบค้นข้อมูลด้วยภาษาSQLตามคำถาม"ใฟ้เลือกฟิลด์รหัสรายวิชา ชื่อรายวิชา และจำนวนหน่วยกิต จากตารางรายวิชา(subject) โดยมีเงือนไขคือเป็นรายวิชา 104111"
ตอบ
SELECT subjectid,Name,Credit
FROM subject
WHERE subjectid=104111;
จะได้ดังภาพ
---------------------------------------------------------------------------------------------------
L: ทดลองพิมพ์ SELECT Student.Studentid,Student.Name,Register.Score,Register.Grade FROM Register,student WHERE (Register.Studentid=Student.Studentid AND Register.Studentid=4902)แล้วเลือก Run Query
ตอบ
จะได้ดังภาพ
---------------------------------------------------------------------------------------------------
M :ทดลองปรับเป็น SELECT student.Studentid,student.Name,Register.Score,Register.Grade,Subject.Name FROM Register,Student,Subject WHERE(Register.Studentid=student.Studentid AND Register.Studentid=4902 ) AND (Register.Subjectid=Subject.Subjectid)
ตอบ
จะได้ดังภาพ
---------------------------------------------------------------------------------------------------
N: ทดลองปรับเป็น SELECT student.Studentid,student.Name,Register.Score,Register.Grade,Subject.Name
FROM Register,student,Subject WHERE (Register.Studentid=student.Studentid) AND (Register.Subjectid=Subject.Subjectid AND Register.Subjectid=104111)
ตอบ
จะได้ดังภาพ
---------------------------------------------------------------------------------------------------
O: จากข้อ "m" เมื่อแปลออกมาเป็นภาษาคำถามของมนุษย์จะได้ว่า "ให้เลือกแสดงฟิลด์รหัสนิสิต ชื่อนิสิต คะแนน เกรด และชื่อรายวิชา จากตารางนักเรียน(student) การลงทะเบียน(Register) และรายวิชา(Subject) โดยมีเงือนไขคือแสดงเฉพาะนิสิตรหัส 4902 เท่านั้น"ให้ลองแปล "n" ออกมาเป็นภาษาคำถามของมนุษย์
ตอบ
"ให้เลือกแสดงฟิลด์รหัสนิสิต ชื่อนิสิต คะแนน เกรด และชื่อรายวิชา จากตารางนักเรียน(student) การลงทะเบียน(Register) และรายวิชา(Subject) โดยมีเงือนไขคือแสดงรหัสรายวิชา104111เท่านั้น"
---------------------------------------------------------------------------------------------------
P: ให้นิสิตสืบค้นข้อมูลด้วยภาษาSQLตามคำถาม"ให้เลือกแสดงฟิลด์รหัสนิสิต ชื่อนิสิต คะแนน เกรด และชื่อรายวิชา จากตารางนักเรียน(Student)การลงทะเบียน(Register) และรายวิชา(Subject) โดยมีเงือนไขคือแสดงเฉพาะรายวิชารหัส 104111เท่านั้น และนิสิตอยู่ในชมรมภูมิศาสตร์เท่านั้น"
ตอบ
SELECT Student.Studentid,student.Name,Register.Score,Register.Grade,Subject.Name ,student.Club
FROM Register,student,Subject
WHERE Register.Studentid=student.Studentid AND Register.Subjectid=Subject.Subjectid AND Register.Subjectid=104111 AND student.Club='ภูมิศาสตร์';
จะได้ดังภาพ
---------------------------------------------------------------------------------------------------
สมัครสมาชิก:
บทความ (Atom)






