<html>
<body>
<?
define("Pi",3.14159265);
$R =15;
$count = 2*(Pi *$R);
$count1 =(Pi*($R*$R));
echo "คำนวนพื้นที่ของวงกลมมีค่าเท่ากับ $count1 ตารางหน่วย <br>";
echo "คำนวนเส้นรอบวงของวงกลมมีค่าเท่ากับ $count ตารางหน่วย ";
?>
</body>
</html>
วันเสาร์ที่ 17 ธันวาคม พ.ศ. 2554
แลป4ข้อ15
<html>
<body>
<?
$NIR = 200;
$VR = 40;
$NDVI = ($NIR-$VR) / ($NIR + $VR);
echo"ค่าดัชนีพืชพรรณ(NDVI) มีค่าเท่ากับ $NDVI";
?>
</body>
</html>
<body>
<?
$NIR = 200;
$VR = 40;
$NDVI = ($NIR-$VR) / ($NIR + $VR);
echo"ค่าดัชนีพืชพรรณ(NDVI) มีค่าเท่ากับ $NDVI";
?>
</body>
</html>
วันพฤหัสบดีที่ 8 ธันวาคม พ.ศ. 2554
แลป5 ข้อ24
<html>
<body>
<?
for ($count = 1 ; $count<=100 ; $count ++)
{
if (($count% 2)==0)
{
echo " $count เลข $count เป็น คู่ <br>";
}
else
{
echo "$count เลข $count เป็นคี่ <br>";
}
}
echo"the End";
?>
</body>
</html>
<body>
<?
for ($count = 1 ; $count<=100 ; $count ++)
{
if (($count% 2)==0)
{
echo " $count เลข $count เป็น คู่ <br>";
}
else
{
echo "$count เลข $count เป็นคี่ <br>";
}
}
echo"the End";
?>
</body>
</html>
แลป5 ข้อ24
<html>
<body>
<?
for ($count = 1 ; $count<=100 ; $count ++)
{
if (($count% 2)==0)
{
echo " $count เลข $count เป็น คู่ <br>";
}
else
{
echo "$count เลข $count เป็นคี่ <br>";
}
}
echo"the End";
?>
</body>
</html>
<body>
<?
for ($count = 1 ; $count<=100 ; $count ++)
{
if (($count% 2)==0)
{
echo " $count เลข $count เป็น คู่ <br>";
}
else
{
echo "$count เลข $count เป็นคี่ <br>";
}
}
echo"the End";
?>
</body>
</html>
วันอังคารที่ 6 ธันวาคม พ.ศ. 2554
แลป3 ข้อ7
<HTML>
<BODY>
<?
$wide = 45;
$long = 68;
$cal_squre =($wide *$long);
echo "การคำนวนพื้นที่สี่เหลี่ยมมีค่าเท่ากับ$cal_squre"
?>
</BODY>
</HTML>
<BODY>
<?
$wide = 45;
$long = 68;
$cal_squre =($wide *$long);
echo "การคำนวนพื้นที่สี่เหลี่ยมมีค่าเท่ากับ$cal_squre"
?>
</BODY>
</HTML>
วันอังคารที่ 30 สิงหาคม พ.ศ. 2554
ปฏิบัติการที่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='ภูมิศาสตร์';
จะได้ดังภาพ
---------------------------------------------------------------------------------------------------
วันศุกร์ที่ 26 สิงหาคม พ.ศ. 2554
การสร้างโมเดลความสัมพันธ์ระหว่างข้อมูล: ER-DIAGRAM
การสร้างโมเดลความสัมพันธ์ระหว่างข้อมูล: ER-DIAGRAM
การสร้างโมเดลความสัมพันธ์ระหว่างข้อมูล : ER-DIAGRAMแนวคิดเกี่ยวกับ ER-DIAGRAM
ER-DIAGRAM ประกอบด้วยองค์ประกอบพื้นฐานดังนี้
ER-DIAGRAM ประกอบด้วยองค์ประกอบพื้นฐานดังนี้
- เอนทิตี้ (Entity) เป็นวัตถุ หรือสิ่งของที่เราสนใจในระบบงานนั้น ๆ
- แอททริบิว (Attribute) เป็นคุณสมบัติของวัตถุที่เราสนใจ
- ความสัมพันธ์ (Relationship) คือ ความสัมพันธ์ระหว่างเอนทิตี้
เอนทิตี้ (Entity)
เอนทิตี้ หมายถึง สิ่งของหรือวัตถุที่เราสนใจ ซึ่งอาจจับต้องได้และเป็นได้ทั้งนามธรรม โดยทั่วไป เอนทิตี้จะมีลักษณะที่แยกออกจากกันไป เช่น เอนทิตี้พนักงาน จะแยกออกเป็นของพนักงานเลย เอนทิตี้เงินเดือนของพนักงานคนหนึ่งก็อาจเป็นเอนทิตี้หนึ่งในระบบของโรงงาน
โดยทั่วไปแล้ว เอนทิตี้จะมีกลุ่มที่บอกคุณสมบัติที่บอกลักษณะของเอนทิตี้ เช่น พนักงานมีรหัส ชื่อ นามสกุล และแผนก โดยจะมีค่าของคุณสมบัติบางกลุ่มที่ทำให้สามารถแยกเอนทิตี้ออกจากเอนทิตี้อื่นได้ เช่น รหัสพนักงานที่จะไม่มีพนักงานคนไหนใช้ซ้ำกันเลย เราเรียกค่าวของคุณสมบัติกลุ่มนี้ว่าเป็นคีย์ของเอนทิตี้
เอนทิตี้ หมายถึง สิ่งของหรือวัตถุที่เราสนใจ ซึ่งอาจจับต้องได้และเป็นได้ทั้งนามธรรม โดยทั่วไป เอนทิตี้จะมีลักษณะที่แยกออกจากกันไป เช่น เอนทิตี้พนักงาน จะแยกออกเป็นของพนักงานเลย เอนทิตี้เงินเดือนของพนักงานคนหนึ่งก็อาจเป็นเอนทิตี้หนึ่งในระบบของโรงงาน
โดยทั่วไปแล้ว เอนทิตี้จะมีกลุ่มที่บอกคุณสมบัติที่บอกลักษณะของเอนทิตี้ เช่น พนักงานมีรหัส ชื่อ นามสกุล และแผนก โดยจะมีค่าของคุณสมบัติบางกลุ่มที่ทำให้สามารถแยกเอนทิตี้ออกจากเอนทิตี้อื่นได้ เช่น รหัสพนักงานที่จะไม่มีพนักงานคนไหนใช้ซ้ำกันเลย เราเรียกค่าวของคุณสมบัติกลุ่มนี้ว่าเป็นคีย์ของเอนทิตี้
รูปสัญลักษณ์ของเอนทิตี้ คือ รูปสี่เหลี่ยมผืนผ้า ตัวอย่างเช่น
แอททริบิวท์ (Attribute) Attribute คือ คุณสมบัติของวัตถุหรือสิ่งของที่เราสนใจ โดยอธิบายรายละเอียดต่าง ๆ ที่เกี่ยวข้องกับลักษณะของเอนทิตี้ โดยคุณสมบัตินี้มีอยู่ในทุกเอนทิตี้ เช่น ชื่อ นามสกุล ที่อยู่ แผนก เป็น Attribute ของเอนทิตี้พนักงาน
โดยทั่วไปแล้วโมเดลข้อมูล เรามักจะพบว่า Attribute มีลักษณะข้อมูลพื้นฐานอยู่โดยที่ไม่ต้องมีคำอธิบายมากมาย และ Attribute ก็ไม่สามารถอยู่แบบโดด ๆ ได้โดยที่ไม่มีเอนทิตี้หรือความสัมพันธ์รูปสัญลักษณ์ของ Attribute คือ รูปวงรีโดยที่จะมีเส้นเชื่อมต่อกับเอนทิตี้ ตัวอย่างเช่น
ชนิดของ Attribute สามารถแบ่งออกได้หลายลักษณะดังนี้
Simple และ Composite
Simple และ Composite
- Simple Attribute คือ Attribute ที่ไม่สามารถแยกออกเป็นส่วนย่อยได้เช่น รหัส
- Composite Attribute คือ Attribute ที่สามารถแยกออกเป็นส่วนย่อยได้เช่น ชื่อ อาจจะประกอบด้วยชื่อต้น และชื่อสกุล เป็นต้น โดยยกตัวอย่างเช่น
Single – valued และ Multi – valued attribute
- Single – valued คือ ค่าของเอนทิตี้ที่สามารถมีได้แค่ค่าเดียว เช่น วันเกิด สำหรับพนักงานแล้วสามารถมีได้เพียงค่าเดียว จึงให้สัญลักษณ์ของ Attribute ปกติ
- Multi – valued คือ ค่าที่เป็นไปได้มากกว่า 1 ค่า เช่น ทำเลที่ตั้งของโรงงานสามารถมีได้มากกว่า 1 แห่ง
- รูปสัญลักษณ์ที่ใช้จะเป็นรูปวงรีซ้อนกัน 2 รูป โดยจะยกตัวอย่างเช่น
Stored และ Derived attribute
- Stored Attribute จะเป็น Attribute ที่เก็บอยู่ในฐานข้อมูล เช่น วันเกิด ใช้สัญลักษณ์ปกติ
- Derived Attribute เป็น Attribute ที่เกิดจากการคำนวณ เช่น อายุ เกิดจากการคำนวณวันเกิดกับช่วงเวลาปัจจุบัน
- รูปสัญลักษณ์ คือ รูปวงรีมีเส้นประรอบ ๆ โดยจะยกตัวอย่าง เช่น
เอนทิตี้แต่จะต้องมีความสัมพันธ์ร่วมกัน โดยจะมีชื่อแสดงความสัมพันธ์ร่วมกันซึ่งจะใช้รูปภาพสัญลักษณ์สี่เหลี่ยมรูปว่าวแสดงความสัมพันธ์ระหว่างเอนทิต
ี้และระบุชื่อความสัมพันธ์ลงในสี่เหลี่ยม ดังตัวอย่างเช่น รูปนี้แสดงให้เห็นถึงความสัมพันธ์ระหว่างเอนทิตี้อาจารย์กับกลุ่มเรียน
ระดับชั้นของความสัมพันธ์ (Relationships Degree) จะบอกถึงความสัมพันธ์ระหว่างเอนทิตี้ มีดังนี้
- ความสัมพันธ์เอนทิตี้เดียว (Unary Relationships) หมายถึง เอนทิตี้หนึ่ง ๆ จะมีความสัมพันธ์กับตัวมันเอง
- ความสัมพันธ์สองเอนทิตี้ (Binary Relationships) หมายถึง เอนทิตี้สองเอนทิตี้จะมีความสัมพันธ์กัน
- ความสัมพันธ์สามเอนทิตี้(Ternary Relationships) หมายถึง เอนทิตี้สามเอนทิตี้มีความสัมพันธ์กัน
ภาพที่ 1.1 แสดงตัวอย่างของระดับชั้นของข้อความ
การระบุตำแหน่งความสัมพันธ์ระหว่างเอนทิตี้ (Connectivity)
การระบุตำแหน่งความสัมพันธ์ระหว่างเอนทิตี้ (Connectivity) ว่าเป็นแบบหนึ่งต่อหนึ่ง (One to One Relationships) , แบบหนึ่งต่อกลุ่ม (One to Many Relationships) หรือ แบบกลุ่มต่อกลุ่ม (Many to Many Relationships) นั้นจะใช้ Connectivity เพื่อระบุตำแหน่ง 1, M หรือ N ไว้ข้างใดของเอนทิตี้
ภาพที่ 1.2 แสดงความสัมพันธ์แบบ One to One Relationshipsการระบุตำแหน่งความสัมพันธ์ระหว่างเอนทิตี้ (Connectivity) ว่าเป็นแบบหนึ่งต่อหนึ่ง (One to One Relationships) , แบบหนึ่งต่อกลุ่ม (One to Many Relationships) หรือ แบบกลุ่มต่อกลุ่ม (Many to Many Relationships) นั้นจะใช้ Connectivity เพื่อระบุตำแหน่ง 1, M หรือ N ไว้ข้างใดของเอนทิตี้
จากตัวอย่างนี้ จะแสดงความสัมพันธ์ระหว่างนักศึกษากับสัญญาเงินกู้ โดยที่นักศึกษาหนึ่งคนทำสัญญาเงินกู้ได้เพียงครั้งเดียว สัญญาการกู้เงินแต่ละฉบับถูกลงชื่อกู้ได้จากหนักศึกษาเพียงคนเดียวเท่านั้น ความสัมพันธ์การกู้เงินที่เชื่อมระหว่างนักศึกษาและสัญญากู้เงินจึงเป็นแบบ 1-1
ภาพที่ 1.3 แสดงความสัมพันธ์แบบ One to Many Relationships
จากตัวอย่างนี้ จะประกอบด้วยเอนทิตี้อาจารย์กับเอนทิตี้กลุ่มเรียน มีความสัมพันธ์แบบหนึ่งต่อกลุ่ม หมายความว่า อาจารย์จะสอนได้หลายกลุ่มเรียน แต่ละกลุ่มเรียนจะมีอาจารย์สอนได้เพียงคนเดียวไว้ด้านเอนทิตี้อาจารย์และตัวอักษร M ไว้ด้านเอนทิตี้กลุ่มเรียน
ภาพที่ 1.4 แสดงความสัมพันธ์แบบ Many to Many Relationships
จากตัวอย่างนี้ ประกอบด้วยเอนทิตี้นักเรียนกับเอนทิตี้วิชาเรียน โดยที่นักศึกษาแต่ละคนลงทะเบียนเรียนวิชาได้มากกว่า 1 วิชา แต่ละวิชามีนักศึกษาได้มากกว่า 1 คน ความสัมพันธ์ขอลการลงทะเบียนของนักศึกษากับวิชาเป็นแบบ N: M
Keys
- Super Key : Attribute หรือกลุ่มของ Attribute ซึ่งมีค่าแตกต่างกันไปในแต่ละเอนทิตี้ สามารถระบุเอนทิตี้เฉพาะตัวหนึ่ง ๆ ได้
- Candidate Key : Subset ที่เล็กที่สุดของ Super Key ที่สามารถระบุเฉพาะเอนทิตี้นั้นได้
- Primary Key : Candidate Key ที่ถูกเลือกให้เป็นตัวระบุหรือ Identity เอนทิตี้เฉพาะตัว
Strong VS Weak Entity Sets
บางครั้งเราอาจพบว่าเอนทิตี้ที่มี (Primary Key) ประกอบจาก Primary Key ของ Entity Set อื่น ๆนั่นคือ เอนทิตี้ไม่มี Primary Key หรือ Attribute เพียงพอในการสร้าง Primary Key ได้ด้วยตนเองเราเรียกเอนทิตี้นี้ว่า Weak Entity Set ดังนั้น หากจะระบุถึงเอนทิตี้นี้ได้จะต้องผูกสัมพันธ์กับบางเอนทิตี้ผ่าน Primary Key เป็นของเอนทิตี้ที่สัมพันธ์กับ Weak Entity ที่มี Primary Key ว่าเป็น Strong Entity Set เราพบว่า Weak Entity นั้นจะต้องสัมพันธ์เกี่ยวข้องแบบ Total Participate กับ Strong Entity เสมอ
ตัวอย่างเช่น ความสัมพันธ์ของพนักงานและคนในอุปการะ โดยที่คนในอุปการะหนึ่งคนเกี่ยวข้องโดยตรงกับพนักงานหนึ่งคนเท่านั้น แต่พนักงานอาจไม่มีหรือมีมากว่าหนึ่งคนในอุปการะ ซึ่งเราจะพบว่าความสัมพันธ์ระหว่าง Weak กับ Strong Entity จะเป็นแบบกลุ่มต่อหนึ่ง
บางครั้งเราอาจพบว่าเอนทิตี้ที่มี (Primary Key) ประกอบจาก Primary Key ของ Entity Set อื่น ๆนั่นคือ เอนทิตี้ไม่มี Primary Key หรือ Attribute เพียงพอในการสร้าง Primary Key ได้ด้วยตนเองเราเรียกเอนทิตี้นี้ว่า Weak Entity Set ดังนั้น หากจะระบุถึงเอนทิตี้นี้ได้จะต้องผูกสัมพันธ์กับบางเอนทิตี้ผ่าน Primary Key เป็นของเอนทิตี้ที่สัมพันธ์กับ Weak Entity ที่มี Primary Key ว่าเป็น Strong Entity Set เราพบว่า Weak Entity นั้นจะต้องสัมพันธ์เกี่ยวข้องแบบ Total Participate กับ Strong Entity เสมอ
ตัวอย่างเช่น ความสัมพันธ์ของพนักงานและคนในอุปการะ โดยที่คนในอุปการะหนึ่งคนเกี่ยวข้องโดยตรงกับพนักงานหนึ่งคนเท่านั้น แต่พนักงานอาจไม่มีหรือมีมากว่าหนึ่งคนในอุปการะ ซึ่งเราจะพบว่าความสัมพันธ์ระหว่าง Weak กับ Strong Entity จะเป็นแบบกลุ่มต่อหนึ่ง
ภาพที่ 2.5 แสดงความสัมพันธ์แบบกลุ่มต่อหนึ่ง
การแปลง E-R MODEL ให้อยู่ในรูปแบบโครงสร้างฐานข้อมูล
การแปลง E-R MODEL ให้อยู่ในรูปแบบโครงสร้างฐานข้อมูลหรือตารางของข้อมูลมีกฎดังนี้
1.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One Relationships) ไปเป็นตาราง โดยแทนที่หนึ่งเอนทิตี้เป็นหนึ่งตาราง Attribute แต่ละเอนทิตี้เป็นฟิลด์หรือคอลัมน์แต่ละตาราง
2.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One to Many Relationships) ไปเป็นตาราง โดยด้านเอนทิตี้ที่เป็นตัวเลข 1 นั้นสามารถแปลงเป็นตารางได้ทันที Attribute ของเอนทิตี้นั้นจะเป็นฟิลด์ของตารางทันที ส่วนด้านเอนทิตี้ที่เป็นตัวอักษร M ให้แผลงเอนทิตี้เป็นตารางโดยมี Attribute ของเอนทิตี้ตัวมันเอง และนำคีย์หลักของเอนทิตี้ที่เป็นเลข 1 มาใส่ฟิลด์ของตารางนั้นด้วย
3.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many Relationships) ไปเป็นตารางโดยสร้างเอนทิตี้กลาง (Composite Entity) เอนทิตี้กลางจะนำคีย์หลักของทั้งสองตารางมาเป็นคีย์หลักของเอนทิตี้กลางด้วย ส่วนเอนทิตี้ทั้งสองที่อยู่ระหว่างเอนทิตี้กลางก็แปลงเป็นตารางได้ โดยนำเอา Attribute ของแต่ละเอนทิตี้ไปเป็นฟิลด์ (ทำตามกฎของความสัมพันธ์แบบหนึ่งต่อหนึ่ง)
การแปลง E-R MODEL ให้อยู่ในรูปแบบโครงสร้างฐานข้อมูลหรือตารางของข้อมูลมีกฎดังนี้
1.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบหนึ่งต่อหนึ่ง (One to One Relationships) ไปเป็นตาราง โดยแทนที่หนึ่งเอนทิตี้เป็นหนึ่งตาราง Attribute แต่ละเอนทิตี้เป็นฟิลด์หรือคอลัมน์แต่ละตาราง
2.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One to Many Relationships) ไปเป็นตาราง โดยด้านเอนทิตี้ที่เป็นตัวเลข 1 นั้นสามารถแปลงเป็นตารางได้ทันที Attribute ของเอนทิตี้นั้นจะเป็นฟิลด์ของตารางทันที ส่วนด้านเอนทิตี้ที่เป็นตัวอักษร M ให้แผลงเอนทิตี้เป็นตารางโดยมี Attribute ของเอนทิตี้ตัวมันเอง และนำคีย์หลักของเอนทิตี้ที่เป็นเลข 1 มาใส่ฟิลด์ของตารางนั้นด้วย
3.แปลงเอนทิตี้ที่มีความสัมพันธ์แบบกลุ่มต่อกลุ่ม (Many to Many Relationships) ไปเป็นตารางโดยสร้างเอนทิตี้กลาง (Composite Entity) เอนทิตี้กลางจะนำคีย์หลักของทั้งสองตารางมาเป็นคีย์หลักของเอนทิตี้กลางด้วย ส่วนเอนทิตี้ทั้งสองที่อยู่ระหว่างเอนทิตี้กลางก็แปลงเป็นตารางได้ โดยนำเอา Attribute ของแต่ละเอนทิตี้ไปเป็นฟิลด์ (ทำตามกฎของความสัมพันธ์แบบหนึ่งต่อหนึ่ง)
ภาพที่ 1.6 ตัวอย่างของระบบซื้อขายรถยนต์
สัญลักษณ์ | ความหมาย | สัญลักษณ์ | ความหมาย |
Entity set | Discriminator key attribute | ||
Weak entity set | Composite attribute | ||
Relationship set | Derived attribute | ||
Identifying relationship set | Key attribute | ||
Attribute | Multi valued attribute |
ภาพที่ 1.7 แสดงสัญลักษณ์ของ E-RMODEL
คำศัพท์
Entity | วัตถุ หรือวิ่งของที่ราสนใจ |
Attribute | คุณสมบัติของวัตถุที่เราสนใจ |
Relationship | ความสัมพันธ์ระหว่าง เอนทิตี้ |
Simple Attribute | Attribute ที่ไม่สามารถแยกออกเป็นส่วนย่อย |
Composite Attribute | Attribute ที่สามารถแยกออกเป็นส่วนย่อย |
Single-valued | ค่าของเอนทิตี้ที่สามารถมีได้แค่ค่าเดียว |
Multi-valued | ค่าที่เป็นได้มากกว่า 1 ค่า |
Stored Attribute | Attribute ที่เก็บอยู่ในฐานข้อมูล |
Derived Attribute | Attribute ที่เกิดจากการคำนวณ |
Relationships Degree | ระดับชั้นของความสัมพันธ์ |
Unary Relationships | ความสัมพันธ์เอนทิตี้เดียว |
Binary Relationships | ความสัมพันธ์สองเอนทิตี้ |
Ternary Relationships | ความสัมพันธ์สามเอนทิตี้ |
Connectivity | การระบุความสัมพันธ์ระหว่างเอนทิตี้ |
One to One Relationships | ความสัมพันธ์แบบหนึ่งต่อหนึ่ง |
One to Many Relationships | ความสัมพันธ์แบบหนึ่งต่อกลุ่ม |
Many to Many Relationships | ความสัมพันธ์แบบกลุ่มต่อกลุ่ม |
Super Key | กลุ่มของ Attribute ซึ่งมีค่าแตกต่างกัน |
Candidate Key | Subset ที่เล็กที่สุดของ Super Key |
Primary Key | Candidate Key ที่ถูกเลือกให้เป็นตัวระบุ |
Composite Entity | เอนทิตี้กลาง |
Weak Entity | เอนทิตี้ที่ไม่มี Primary Key เป็นของตนเอง |
Strong Entity | เอนทิตี้ที่มี Primary Key เป็นของตนเอง |
อ้่างอิงจาก : http://itd.htc.ac.th/st_it50/it5016/nidz/Web_Analyse/unit10.html
วันจันทร์ที่ 15 สิงหาคม พ.ศ. 2554
Data model
ฐานข้อมูลแบบ Relational Data Model
ฐานข้อมูลแบบสัมพันธ์ (Relational Model) แบ่งออกเป็น 3 ส่วนคือ โครงสร้างข้อมูล (data structure) การควบคุมความถูกต้องให้กับข้อมูล (data integrity) และการจัดการกับข้อมูล (data manipulation)
โครงสร้างของฐานข้อมูลแบบสัมพันธ์
1.โครงสร้างข้อมูล (Data Structure)
โครงสร้างของฐานข้อมูลแบบสัมพันธ์เป็นการนำเสนอข้อมูลและความสัมพันธ์ระหว่างข้อมูลในรูป รีเลชัน (relation) Relation จะถูกเรียกอีกอย่างหนึ่งว่าตาราง(Table) โครงสร้างของ Relationประกอบด้วย
1.1 แถว (Row) ของข้อมูล (body) แถวข้อมูล 1 แถว (body) หมายถึงข้อมูล 1 รายการ ซึ่งแต่ละแถวของ Relation เรียกว่า “Tuple” Tuple คือ แถวข้อมูลในตาราง โดยแต่ละแถวของข้อมูลจะประกอบไปด้วยหลาย Attribute หรือคอลัมน์ของข้อมูล จำนวนแถวข้อมูลในตารางเราเรียกว่า Cardinality และจำนวน attributes ทั้งหมดในตารางเราเรียกว่า Degree
1.2 สดมภ์ (Column) แต่ละสดมภ์ของ Relation ได้แก่คุณลักษณะของข้อมูลในแต่ละแถวซึ่งเราเรียกว่า “Attribute” เช่น ตัวอย่าง relation S สำหรับเก็บรายละเอียดของ suppliers ประกอบด้วย รหัส ชื่อ สถานะ และเมือง ซึ่ง relation ดังกล่าวจะประกอบไปด้วย 5 tuples โดยแต่ละ tuples ประกอบไปด้วย 4 attribute โดยภายในคอลัมน์จะประกอบด้วย
โดเมน (Domain) เป็นการกำหนดขอบเขตค่าข้อมูลและชนิดข้อมูลของแต่ละ attribute ที่เป็นไปได้ทั้งหมด เช่นจากรูป domain ของ S# คือกลุ่มของรหัส suppliers ทั้งหมด ได้แก่ S1, S2, S3, S4 และ S5 และ กำหนดว่า STATUS ของตาราง S จะต้องมีค่าเป็น 10, 20 และ 30 เท่านั้น หรือ S# จะต้องมีค่าเป็น S1, S2, S3, S4 และ S5 เท่านั้น และ CITY ของ suppliers ทั้งหมดจะต้องเป็น ปทุมธานี นนทบุรี และกรุงเทพฯเท่านั้น เป็นต้น
คีย์หลัก(Primary key) เป็น attribute หรือกลุ่มของ attribute ที่บ่งบอกว่าข้อมูลจะต้องไม่ซ้ำกันในแต่ละแถวข้อมูลของตาราง
2. การควบคุมความถูกต้องให้กับข้อมูล (data integrity)
ในฐานข้อมูลแบบสัมพันธ์ มีกฎการควบคุมความถูกต้องของข้อมูลดังนี้
2.1 Tuple มีข้อมูลไม่ซ้ำกัน เนื่องจาก Relation ในโครงสร้างข้อมูลแบบสัมพันธ์อยู่ในรูปแบบของเซตทางคณิตศาสตร์ โดยภายในเซตจะต้องประกอบไปด้วยสมาชิกที่ไม่ซ้ำกัน ดังนั้น Relation R ใดๆ ต้องมี attribute ใด attribute หนึ่งที่ทำให้แต่ละ tuple ใน relation มีข้อมูลไม่ซ้ำกัน เช่น Relation CUSTOMER เป็น relation ที่เก็บประวัติของลูกค้าบัญชีเงินกู้ของธนาคาร และประกอบไปด้วย เลขที่บัตรประชาชน ชื่อ นามสกุล และ ที่อยู่ของลูกค้า ซึ่งจะเห็นว่าข้อมูลลูกค้ามีชื่อและนามสกุลซ้ำกัน คือปรากฎลูกค้าชื่อ สมบัติ นามสกุล มิมำพันธ์ จำนวน 2 tuple แต่มี attribute เลขที่บัตรประชาขน (CITIZEN_ID) เป็นสิ่งที่บ่งบอกให้รู้ว่าลูกค้าทั้งสองคนเป็นคนละคนกัน
2.2 Tupleไม่มีลำดับจากบนลงล่าง เนื่องจาก body Relation ในโครงสร้างข้อมูลแบบสัมพันธ์อยู่ในรูปแบบของเซตทางคณิตศาสตร์ โดยภายในเซตจะต้องประกอบไปด้วยสมาชิกที่ไม่มีลำดับ
2.3 Attribute ไม่มีลำดับจากซ้ายไปขวา เนื่องจาก heading ของ Relation ในโครงสร้างข้อมูลแบบสัมพันธ์อยู่ในรูปแบบของเซตทางคณิตศาสตร์ โดยภายในเซตจะต้องประกอบไปด้วยสมาชิกที่ไม่มีลำดับ
2.4 ค่าของ attribute ทุกค่าจะต้องเป็น atomicity เนื่องจาก Domain มีเฉพาะค่าที่เป็น atomic เท่านั้น ดังนั้นทุก attribute ในแต่ละตำแหน่งของ tuple ใน relation จะมีค่าเพียงค่าเดียว จะไม่มีรายการของข้อมูล (repeating group หรือ list of value หรือ array) ใน relation นั่นคือ relation ต้องผ่านขั้นตอนการเพิ่มประสิทธิภาพของข้อมูล (Normalization) ตัวอย่างเช่น Relation SP ก่อนทำการเพิ่มประสิทธิภาพของข้อมูล ค่าของข้อมูลในแต่ละ Tuple จะมีลักษณะของรายการข้อมูล (repeating group) หลังจากทำการเพิ่มประสิทธิภาพของข้อมูลในตารางแล้ว ค่าข้อมูลในแต่ละ Tuple ไม่มีรายการข้อมูลอีก
2.5 กำหนด Domain ให้กับข้อมูล จะมีข้อกำหนดว่าค่าที่กำหนดให้กับข้อมูลจะต้องเป็นค่า Scalar นั่นคือจะต้องเป็นค่าข้อมูลที่มีความหมายและเป็นหน่วยเล็กที่สุด ไม่สามารถแบ่งแยกออกไปได้อีก เช่น เลขที่เงินกู้ 014100001 สามารถแบ่งออกเป็น รหัสสาขา รหัสปียื่นกู้ และลำดับบัญชีเงินกู้ เป็นต้น หรือที่อยู่ สามารถแบ่งย่อยออกไปเป็น เลขที่บ้าน ตำบล อำเภอ จังหวัด ฯลฯ ดังนั้น เลขที่เงินกู้ และที่อยู่ ไม่มีค่าเป็น Scalar เพราะยังสามารถแบ่งย่อยออกไปได้อีก แต่ รหัส supplier (S#) มีค่าเป็น S1 ซึ่งแบ่งย่อยอีกไม่ได้ เพราะฉะนั้น S1 มีค่าเป็น Scalar ค่าข้อมูลที่เก็บในฐานข้อมูลที่มีค่าเป็น Scalar นี้เราจะเรียกว่ามีคุณลักษณะของ atomicity ข้อมูลที่สามารถนำมากำหนด Domain ได้ จะต้องเป็นข้อมูลที่เป็นอิสระจากข้อมูลอื่น เช่น relation S ,P และ SP ดังรูปข้างล่างนี้ รหัส ชื่อ สถานะ และเมืองของ supplier เป็นข้อมูลที่อิสระจากข้อมูลอื่น ในทำนองเดียวกับ รหัส ชื่อ สี น้ำหนัก และเมืองของ relation part เป็นข้อมูลที่เป็นอิสระจากข้อมูลอื่น แต่ relation SP รหัสตัวแทนจำหน่าย(S#) ค่าที่กำหนดขึ้นมาเป็นไปตามรหัสตัวแทนจำหน่าย (S#) ของ relation S และรหัสวัสดุ (P#) ค่าที่กำหนดขึ้นมาเป็นไปตามรหัสวัสดุ (P#) ของ relation P ดังนั้นทั้งสอง attribute จึงไม่สามารถนำมากำหนด domain ของ relation SP ได้
2.6 ข้อมูลจะต้องเป็นข้อมูลชนิดเดียวกัน เช่น ถ้าค่าข้อมูลของ COLOR ใน relation P มีค่าที่เป็นไปได้คือ “สีฟ้าน้ำทะเล” “สีฟ้าอ่อน” หรือ “น้ำตาล” แต่ถ้าเรากำหนดให้ค่าของ COLOR สามารถเป็น 1 สำหรับสีฟ้าน้ำทะเล หรือ 2 สำหรับสีฟ้าอ่อน และ 3 สำหรับสีน้ำตาล โดยค่าข้อมูลของ attribute COLOR สามารถบันทึกค่าข้อมูลได้ทั้งสองแบบแล้ว เราไม่สามารถกำหนด Domain ได้เพราะค่าข้อมูลมีชนิดเป็นได้ทั้ง string และ เลขจำนวนเต็ม ในเวลาเดียวกันไม่ได้
3.การจัดการข้อมูล
ภาษาฐานข้อมูล (structured query language, SQL) เป็นภาษาที่ใช้กันอย่างแพร่หลายมีลักษณะคล้ายกับภาษาอังกฤษ ใช้ในการปฏิบัติงานและควบคุมฐานข้อมูล ในภาษาฐานข้อมูลจะมีคำสั่งดังนี้การสร้างตาราง สามารถทำด้วยคำสั่ง CREATE TABLE คำสั่งสอบถามข้อมูลพื้นฐานเป็นการสอบถามข้อมูลหรือ query
คำสั่งการป้อนข้อมูลเพิ่มลงสู่ตารางเราสามารถปรับปรุงเปลี่ยนแปลงแก้ไขข้อมูลที่มีอยู่แล้วในตารางได้ด้วยคำสั่ง UPDATE นอกจากการแก้ไขข้อมูลด้วยคำสั่ง DELETE เราสามารถสอบถามข้อมูลครั้งหนึ่งจากตารางได้มากกว่าหนึ่งตาราง โดยใช้โครงสร้างของ SQL ที่เรียกว่า joining คำสั่งใน SQL สามารถกำหนดความปลอดภัยในการควบคุมการเข้าถึงข้อมูลในฐานข้อมูลได้ โดยคำสั่ง GRANT เป็นการกำหนดสิทธิมอบอำนาจให้สามารถเข้าถึงข้อมูล REVOKE เป็นการเรียกสิทธิอำนาจคืนจากการกำหนดมอบสิทธิด้วยคำสั่ง GRANT
ฐานข้อมูลแบบความสัมพันธ์นี้เป็นรูปแบบที่ถูกพัฒนาขึ้นมาภายหลัง และเป็นที่นิยมใช้กันสำหรับการออกแบบฐานข้อมูลในปัจจุบัน โปรแกรมสำเร็จทางด้านฐานข้อมูลก็ใช้รูปแบบนี้เช่นกัน
4.ลักษณะเด่นและข้อจำกัดของการจัดการฐานข้อมูลแบบสัมพันธ์
4.1ลักษณะเด่น
1) เหมาะกับงานที่เลือกดูข้อมูลแบบมีเงื่อนไขหลายคีย์ฟิลด์ข้อมูล
2) ป้องกันข้อมูลถูกทำลายหรือแก้ไขได้ดี เนื่องจากโครงสร้างแบบสัมพันธ์นี้ผู้ใช้จะไม่ทราบว่าการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร จึงสามารถป้องกันข้อมูลถูกทำลายหรือถูกแก้ไขได้ดี
3) การเลือกดูข้อมูลทำได้ง่าย มีความซับซ้อนของข้อมูลระหว่างแฟ้มต่าง ๆ น้อยมาก อาจมีการฝึกฝนเพียงเล็กน้อยก็สามารถใช้ทำงานได้
4.2 ข้อจำกัด
1)มีการแก้ไขปรับปรุงแฟ้มข้อมูลได้ยากเพราะผู้ใช้จะไม่ทราบการเก็บข้อมูลในฐานข้อมูลอย่างแท้จริงเป็นอย่างไร
2)มีค่าใช้จ่ายของระบบสูงมากเพราะเมื่อมีการประมวลผลคือ การอ่าน เพิ่มเติม ปรับปรุงหรือยกเลิกระบบจะต้องทำการสร้างตารางขึ้นมาใหม่ ทั้งที่ในแฟ้มข้อมูลที่แท้จริงอาจจะมีการเปลี่ยนแปลงเพียงเล็กน้อย แต่ต้องมาปรับแต่งตารางใหม่ให้ผู้ใช้แฟ้มข้อมูลนั้นถูกใช้ในรูปของตารางที่ดูง่ายสำหรับผู้ใช้
อ้างอิงมาจาก: http://techinnoreview.exteen.com/20090610/relational-data-model
สมัครสมาชิก:
บทความ (Atom)