ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingช่วยผมเรื่อง ฐานข้อมูลด้วยครับ เรียนไม่รู้เรื่องครับ เลยทำไม่ได้
หน้า: 1 [2] 3   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ช่วยผมเรื่อง ฐานข้อมูลด้วยครับ เรียนไม่รู้เรื่องครับ เลยทำไม่ได้  (อ่าน 5937 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
ab2f6
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 1,114



ดูรายละเอียด
« ตอบ #20 เมื่อ: 12 กรกฎาคม 2010, 01:18:01 »

เรียนที่ไหนเนี่ย ?


เรียนที่  มทร. ขอนแก่นครับ
บันทึกการเข้า

ab2f6
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 1,114



ดูรายละเอียด
« ตอบ #21 เมื่อ: 12 กรกฎาคม 2010, 01:24:31 »


ง่ายๆ ครับการทำ NF คือการลดความซ้ำซ้อนของข้อมูล โดยกระบวนการ NF นั้นมี ตั้งแต่ระดับ 1NF จนไปถึง 5NF ( ใช้งานจริงๆ คงแค่ 2-3 NF เองครับในกรณีที่ข้อมูลไม่ซับซ้อนมาก) 

โดยวิธีการสังเกตุง่ายๆ ครับคือ หาก talbe ไหนมีข้อมูลที่ซ้ำซ้อนอยู่แสดงว่า ต้องมีการดำเนินการ NF ในขั้นต่อไปครับ เพราะอะไร ลองนึกดูนะครับว่า หากข้อมูลใดใน table ที่ไม่มีการ NF เลย ข้อมูลที่เก็บก็จะมีความซ้ำซ้อนกันมาก (ลองดูจากโจทย์ที่ได้มานะครับ ตัวอย่างก็ จังหวัดขอนแก่น มีเยอะมากซ้ำซ้อน)
หากวันใดวันหนึ่ง มีการแก้ไข เปลี่ยนแปลงสักนิด   record อื่น ๆ ที่มีข้อมุลแบบเดียวกันไม่ต้องไปตามแก้กันทุก record หรือครับ จริงไหม ??


ตัวอย่างง่าย ๆ ครับ เช่น ในโจทย์ที่ท่านได้มามี สมาชิก ที่อยู่จังหวัด ข่อนแก่น อยู่ ประมาณ 8 record ( หรืออาจมีมากกว่านั้น ) สมมติว่า ต้องการแก้ไข จาก จังหวัดขอนแก่น เป็น จ.ขอนแก่น ท่านไม่ต้องตามไปแก้กันครบทุก record ตามจำนวนสมาชิกที่อยู่ จังหวัดขอนแก่น หรือครับ   ( นึกออกแล้วใช่ปะคับ )  ดังนั้น คุณควรแยกออกมา โดย แยกเก็บจังหวัดออกเป็นอีก table หนึ่ง โดยเก็บเฉพาะ รหัสจังหวัด และ ชื่อจังหวัด ก็จะได้

provinceid (PK), provincename

เราก็จะมีจังหวัดขอนแก่น เพียง record เดียว อ่าวแล้วจะ เชื่อมโยง และเอาไปใช้กันยังไงละ ?? ก็แบบนี้ครับ ใน table ของสมาชิกแทนที่จะเก็บเป็นชื่อจังหวัด ก็เลือกเก็บเป็นรหัสของจังหวัดแทน ( ก็จะเป็น FK ) ทีนี่ถ้าต้องการแก้ไขจาก จังหวัดขอนแก่น เป็น จ.ขอนแก่น ก็ไปแก้ที่เดียวครับ ที่  table province  ทีนี้ข้อมูลสมาชิกก็จะถูกต้อง และตรงกันแล้วครับ

เพราะทุกตารางที่ทำการ NF ออกมาจะมีความสัมพันธ์ของข้อมูลกัน อย่างที่หลายๆ ท่านได้อธิบายไปแล้ว 1-m , M-M

อ่อ ส่วนการเลือก PK ง่ายๆ ครับ ต้องเลือกหรือกำหนด ให้  PK โดยที่ PK จะต้องไม่มีการซ้ำซ้อนกันครับ ตัวอย่างเช่น จากโจทย์ สิ่งที่ไม่ซ้ำซ้อนใน table สมาชิก ก็คือ รหัสสมาชิกครับ

*PK is Primarykey คีย์หลัก

ความรู้สุดยอดมาเลยครับ
ความรู้แตกฉานเลยครับ



บันทึกการเข้า

ab2f6
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 1,114



ดูรายละเอียด
« ตอบ #22 เมื่อ: 12 กรกฎาคม 2010, 01:25:04 »

user(รหัสสมาชิก,ชื่อผู้ใช้,อายุ,รหัสจังหวัด,อีเมล์,รหัสisp,รหัสspd,รหัสspu)
province(รหัสจังหวัด,ชื่อจังหวัด)
isp(รหัสisp,ชื่อisp)
spd(รหัสspd,ชื่อspd)
spu(รหัสspu,ชื่อspu)


ช้าไปมั้ยคับ  wanwan004


ไม่ช้าครับ

ขอบคุณมากๆครับ
บันทึกการเข้า

ab2f6
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 1,114



ดูรายละเอียด
« ตอบ #23 เมื่อ: 12 กรกฎาคม 2010, 01:27:57 »

เอาง่ายๆ สั้นๆ DB Normalize ทำให้มันเป็นปกติแบบชาวบ้านเค้าคับ  Tongue
โดยแบ่งการ Normalize ได้เป็นระดับ ซึ่งถามว่าควรจะ Normalize ให้อยู่ระดับใดแล้วแต่จุดประสงค์การใช้งานครับ

1NF: ข้อมูลในแต่ละแถว,คอลัมภ์มีแค่ 1 ค่า ถ้ามองในมุม Excel ถ้าใน 1 ช่องมีข้อมูลแค่บรรทัดเดียวก็ถือเป็น 1NF แล้ว (ตามตารางที่ให้มาก็ถือว่าเป็น 1NF แล้ว)
2NF: Table 1(รหัสสมาชิก, ชื่อผู้ใช้, อายุ, จังหวัด, อีเมลล์, ISP, SPD, SPU)
3NF: Table 1(รหัสสมาชิก, ชื่อผู้ใช้, อายุ, จังหวัด, อีเมลล์, ISP, SPD, SPU)
BCNF: Table 1(รหัสสมาชิก, อายุ, จังหวัด, อีเมลล์, ISP, SPD, SPU)
        Table 2(รหัสสมาชิก, ชื่อผู้ใช้)
4NF: Table 1(รหัสสมาชิก, อายุ, จังหวัด, อีเมลล์, ISP, SPD, SPU)
        Table 2(รหัสสมาชิก, ชื่อผู้ใช้)
5NF: Table 1(รหัสสมาชิก, อายุ, จังหวัด, อีเมลล์, ISP, SPD, SPU)
        Table 2(รหัสสมาชิก, ชื่อผู้ใช้)

อ้างอิงจาก Link นี้ลองศึกษาดูนะครับ http://std.kku.ac.th/5150200504/Nomalization.pdf

ปล. เสริมอีกนิดนึง การเพิ่มพวกรหัสทั้งหลายเช่นรหัสสมาชิก รหัสจังหวัด รหัส ISP ไม่ใช่การ Normalize นะครับ เป็นการกำหนด Attribute ที่อยู่ตั้งแต่ step DB Design เพื่อให้โครงสร้างของ DB ดีขึ้นครับ

ผิดถูกช่วยชี้แนะด้วยครับ  Tongue


ขอบคุณมากๆครับ
ข้อมูลแจ่มเลยครับ


ปล.ในนี้มีแต่เทพ จริงๆๆครับ  ไม่ผิดหวังเลยอาศัยอยู่ที่นี่
บันทึกการเข้า

ab2f6
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 1,114



ดูรายละเอียด
« ตอบ #24 เมื่อ: 12 กรกฎาคม 2010, 01:30:31 »


การทำ Normalization ก็คือการจัดระเบียบให้กับฐานข้อมูล เพื่อประโยชน์หลายๆอย่าง เช่นเพิ่มความเร็วในการ query (ทั้ง add edit delete) และลดความซ็ำซ้อนกันในฐานข้อมูล บางครั้งข้อมูลนิดเดียวมันมองไม่ออก ขอให้นึกถึงข้อมูลประชากรไทย สมมุติว่าไม่มีการออกแบบที่ดีเลย แล้วดันเก็บชื่อจังหวัดผิดไปหลายคน แล้วไม่เหมือนกันอีก เช่นแค่ใส่ว่า กรุงเทพฯ กรุงเทพ กทม ก็ไม่เหมือนกันแล้ว จะเกิดปัญหาขึ้นทันที จะต้องใช้เวลานานมากในการแก้ไข เลยมีคนนึงคิดระบบ NF ขึ้นมาเพื่อเป็นตัวช่วยเหลือในการออกแบบดาต้าเบส

1NF - ทุก ๆ field ในแต่ละ record จะเป็น single value  นั่นคือ  ในตารางหนึ่ง ๆ จะไม่มี ค่าของกลุ่ม  ข้อมูลที่ซ้ำกัน (Repeating Group)

2NF - ต้องเป็น First Normal Form (1NF) และต้องมี key (บางตำรา อาจจะเรียกว่า index) ที่ทุก Non-key จะต้องขึ้นอยู่ (depends on) กับ key นี้  และมีเพียง key เดียวในหนึ่งตาราง ซึ่งเรียกว่า Primary Key  การที่ทุกตาราง (Table) ต้องมี Key ก็เพราะเราต้องการให้แน่ใจว่าทุกข้อมูลใน record ต่าง ๆ สามารถค้นหาได้โดยใช้  key

3NF - ต้องเป็น  Second  Normal Form (2NF) และ ไม่มี Transitive dependence  หรือ เป็นการขจัดแอตตริบิวที่ไม่เป็นคีย์ที่ขึ้น ( Transitive dependent ) ตรงกับแอตตริบิวอื่นที่ไม่ใช่คีย์หลักออกไป  เพื่อให้แอตตริบิวที่ไม่ใช่คีย์หลักต้องขึ้นตรงกับทั้งส่วนที่เป็นคีย์หลัก  และไม่ขึ้นกับแอตตริบิวอื่นที่ไม่ใช่คีย์หลัก

BCNF - ต้องเป็น 3NF และไม่มี attribute อื่นในรีเลชันที่สามารถระบุค่าของ attribute ที่เป็นคีย์หลัก หรือส่วนหนึ่งส่วนใดของคีย์หลักในกรณีที่คีย์หลักเป็นคีย์ผสม

4NF - ต้องอยู่ในรูปแบบ BCNF และเป็นรีเลชันที่ไม่มีความสัมพันธ์ในการระบุค่าของ attribute แบบหลายค่า โดยที่ attribute ที่ถูกระบุค่าเหล่านี้ไม่มีความสัมพันธ์กัน (Independently Multivalued Dependency)

5NF - ต้องอยู่ในรูปแบบ 4NF และไม่มี Symmetric Constraint กล่าวคือ หากมีการแตกรีเลชันออกเป็นรีเลชันย่อย (Projection) และเมื่อทำการเชื่อมโยงรีเลชันย่อยทั้งหมด (Joint) จะไม่ก่อนให้เกิดข้อมูลใหม่ที่ไม่เหมือนรีเลชั่นเดิม (Spurious Tupes)

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

เอาไปใช้งานจริงๆ แค่ได้ 2-3NF ก็เกินพอแล้ว แต่ถ้าเอาไปเพื่อเรียน ยังไงก็ต้องทำให้ได้ทุก NF ครับ

ปล. อาจารย์ไม่เก่ง แล้วเพื่อนๆที่เรียนล่ะครับ ไม่มีใครรู้เรื่องเลยเหรอ
 wanwan017

เพื่อนหรอครับ  ไม่มีใครรู้เรื่องเลย  ยังไม่มีใครทำ NF  ผ่านเลยครับ
บันทึกการเข้า

jiw
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 147
ออฟไลน์ ออฟไลน์

กระทู้: 5,923



ดูรายละเอียด เว็บไซต์
« ตอบ #25 เมื่อ: 12 กรกฎาคม 2010, 02:21:18 »


ง่ายๆ ครับการทำ NF คือการลดความซ้ำซ้อนของข้อมูล โดยกระบวนการ NF นั้นมี ตั้งแต่ระดับ 1NF จนไปถึง 5NF ( ใช้งานจริงๆ คงแค่ 2-3 NF เองครับในกรณีที่ข้อมูลไม่ซับซ้อนมาก)  

โดยวิธีการสังเกตุง่ายๆ ครับคือ หาก talbe ไหนมีข้อมูลที่ซ้ำซ้อนอยู่แสดงว่า ต้องมีการดำเนินการ NF ในขั้นต่อไปครับ เพราะอะไร ลองนึกดูนะครับว่า หากข้อมูลใดใน table ที่ไม่มีการ NF เลย ข้อมูลที่เก็บก็จะมีความซ้ำซ้อนกันมาก (ลองดูจากโจทย์ที่ได้มานะครับ ตัวอย่างก็ จังหวัดขอนแก่น มีเยอะมากซ้ำซ้อน)
หากวันใดวันหนึ่ง มีการแก้ไข เปลี่ยนแปลงสักนิด   record อื่น ๆ ที่มีข้อมุลแบบเดียวกันไม่ต้องไปตามแก้กันทุก record หรือครับ จริงไหม ??


ตัวอย่างง่าย ๆ ครับ เช่น ในโจทย์ที่ท่านได้มามี สมาชิก ที่อยู่จังหวัด ข่อนแก่น อยู่ ประมาณ 8 record ( หรืออาจมีมากกว่านั้น ) สมมติว่า ต้องการแก้ไข จาก จังหวัดขอนแก่น เป็น จ.ขอนแก่น ท่านไม่ต้องตามไปแก้กันครบทุก record ตามจำนวนสมาชิกที่อยู่ จังหวัดขอนแก่น หรือครับ   ( นึกออกแล้วใช่ปะคับ )  ดังนั้น คุณควรแยกออกมา โดย แยกเก็บจังหวัดออกเป็นอีก table หนึ่ง โดยเก็บเฉพาะ รหัสจังหวัด และ ชื่อจังหวัด ก็จะได้

provinceid (PK), provincename

เราก็จะมีจังหวัดขอนแก่น เพียง record เดียว อ่าวแล้วจะ เชื่อมโยง และเอาไปใช้กันยังไงละ ?? ก็แบบนี้ครับ ใน table ของสมาชิกแทนที่จะเก็บเป็นชื่อจังหวัด ก็เลือกเก็บเป็นรหัสของจังหวัดแทน ( ก็จะเป็น FK ) ทีนี่ถ้าต้องการแก้ไขจาก จังหวัดขอนแก่น เป็น จ.ขอนแก่น ก็ไปแก้ที่เดียวครับ ที่  table province  ทีนี้ข้อมูลสมาชิกก็จะถูกต้อง และตรงกันแล้วครับ

เพราะทุกตารางที่ทำการ NF ออกมาจะมีความสัมพันธ์ของข้อมูลกัน อย่างที่หลายๆ ท่านได้อธิบายไปแล้ว 1-m , M-M

อ่อ ส่วนการเลือก PK ง่ายๆ ครับ ต้องเลือกหรือกำหนด ให้  PK โดยที่ PK จะต้องไม่มีการซ้ำซ้อนกันครับ ตัวอย่างเช่น จากโจทย์ สิ่งที่ไม่ซ้ำซ้อนใน table สมาชิก ก็คือ รหัสสมาชิกครับ

*PK is Primarykey คีย์หลัก

+1000

จขกท ยังดีครับ ของผมเรียน เรื่องนี้ เป็นภาคอังกิด แม่เจ้าเลยยยย อาจารย์ก็สอนไม่รู้เรื่อง

ต้องนั่งอ่าน text เอง พระเจ้าจอร์จเลย wanwan003
« แก้ไขครั้งสุดท้าย: 12 กรกฎาคม 2010, 02:22:17 โดย jiw » บันทึกการเข้า
GigBoT
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 3,434



ดูรายละเอียด เว็บไซต์
« ตอบ #26 เมื่อ: 12 กรกฎาคม 2010, 02:29:14 »


ง่ายๆ ครับการทำ NF คือการลดความซ้ำซ้อนของข้อมูล โดยกระบวนการ NF นั้นมี ตั้งแต่ระดับ 1NF จนไปถึง 5NF ( ใช้งานจริงๆ คงแค่ 2-3 NF เองครับในกรณีที่ข้อมูลไม่ซับซ้อนมาก) 

โดยวิธีการสังเกตุง่ายๆ ครับคือ หาก talbe ไหนมีข้อมูลที่ซ้ำซ้อนอยู่แสดงว่า ต้องมีการดำเนินการ NF ในขั้นต่อไปครับ เพราะอะไร ลองนึกดูนะครับว่า หากข้อมูลใดใน table ที่ไม่มีการ NF เลย ข้อมูลที่เก็บก็จะมีความซ้ำซ้อนกันมาก (ลองดูจากโจทย์ที่ได้มานะครับ ตัวอย่างก็ จังหวัดขอนแก่น มีเยอะมากซ้ำซ้อน)
หากวันใดวันหนึ่ง มีการแก้ไข เปลี่ยนแปลงสักนิด   record อื่น ๆ ที่มีข้อมุลแบบเดียวกันไม่ต้องไปตามแก้กันทุก record หรือครับ จริงไหม ??


ตัวอย่างง่าย ๆ ครับ เช่น ในโจทย์ที่ท่านได้มามี สมาชิก ที่อยู่จังหวัด ข่อนแก่น อยู่ ประมาณ 8 record ( หรืออาจมีมากกว่านั้น ) สมมติว่า ต้องการแก้ไข จาก จังหวัดขอนแก่น เป็น จ.ขอนแก่น ท่านไม่ต้องตามไปแก้กันครบทุก record ตามจำนวนสมาชิกที่อยู่ จังหวัดขอนแก่น หรือครับ   ( นึกออกแล้วใช่ปะคับ )  ดังนั้น คุณควรแยกออกมา โดย แยกเก็บจังหวัดออกเป็นอีก table หนึ่ง โดยเก็บเฉพาะ รหัสจังหวัด และ ชื่อจังหวัด ก็จะได้

provinceid (PK), provincename

เราก็จะมีจังหวัดขอนแก่น เพียง record เดียว อ่าวแล้วจะ เชื่อมโยง และเอาไปใช้กันยังไงละ ?? ก็แบบนี้ครับ ใน table ของสมาชิกแทนที่จะเก็บเป็นชื่อจังหวัด ก็เลือกเก็บเป็นรหัสของจังหวัดแทน ( ก็จะเป็น FK ) ทีนี่ถ้าต้องการแก้ไขจาก จังหวัดขอนแก่น เป็น จ.ขอนแก่น ก็ไปแก้ที่เดียวครับ ที่  table province  ทีนี้ข้อมูลสมาชิกก็จะถูกต้อง และตรงกันแล้วครับ

เพราะทุกตารางที่ทำการ NF ออกมาจะมีความสัมพันธ์ของข้อมูลกัน อย่างที่หลายๆ ท่านได้อธิบายไปแล้ว 1-m , M-M

อ่อ ส่วนการเลือก PK ง่ายๆ ครับ ต้องเลือกหรือกำหนด ให้  PK โดยที่ PK จะต้องไม่มีการซ้ำซ้อนกันครับ ตัวอย่างเช่น จากโจทย์ สิ่งที่ไม่ซ้ำซ้อนใน table สมาชิก ก็คือ รหัสสมาชิกครับ

*PK is Primarykey คีย์หลัก

+1000

จขกท ยังดีครับ ของผมเรียน เรื่องนี้ เป็นภาคอังกิด แม่เจ้าเลยยยย อาจารย์ก็สอนไม่รู้เรื่อง

ต้องนั่งอ่าน text เอง พระเจ้าจอร์จเลย wanwan003
ถูกต้องตามนั้นเลย
บันทึกการเข้า

ทำนม - คลินิกเสริมหน้าอก PSC อันดับ 1 ของไทย
รับทำ SEO สายขาว |
รับทำ SEO
ลบรอยสัก - เลเซอร์ลบรอยสัก Pico Laser เห็นผลจริง มีรีวิวการันตี
WordPress Hosting - โฮสติ้งคุณภาพ ที่ออกแบบมาเพื่อเว็บไซต์แบบ WordPress โดนเฉพาะ
chanun
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 69
ออฟไลน์ ออฟไลน์

กระทู้: 1,912



ดูรายละเอียด เว็บไซต์
« ตอบ #27 เมื่อ: 12 กรกฎาคม 2010, 04:11:39 »

ตอนเรียนจำได้งงเหมือนกัน ตอ้งไปหาอ่านในห้องสมุด มีเพียบเลย
บันทึกการเข้า



ซื้อเครื่องเล่นเกมคุณภาพและเช็คราคา PS4 PS3 PSP XBOX WII 3DS ได้ที่นี้
psp ราคา
ohmohm
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 170
ออฟไลน์ ออฟไลน์

กระทู้: 3,098



ดูรายละเอียด เว็บไซต์
« ตอบ #28 เมื่อ: 14 กรกฎาคม 2010, 23:10:14 »

แล้วถ้าแบบนี้จะอยู่ใน normal form ไหนเอย

มีตาราง ที่มี 2 columns อันหนึ่งเก็บหมายเลขประชาชน อีกอันเก็บและหมายเลขประชาชนของคู่สมรส
ถ้าควบคุมโปรแกรมไม่ดี แทนที่โยงไปคู่สมรส แล้วคู่สมรสโยงกลับมาหาตัว กลายเป็นคู่สมรสโยงไปหาคนอื่น แล้วคนอื่นโยงไปคนอื่นเรื่อยๆ ( เป็นวงเลย )
บันทึกการเข้า
capuchinotae
Verified Seller
ก๊วนเสียว
*

พลังน้ำใจ: 12
ออฟไลน์ ออฟไลน์

กระทู้: 315



ดูรายละเอียด เว็บไซต์
« ตอบ #29 เมื่อ: 15 กรกฎาคม 2010, 00:02:32 »



ผมไม่เข้าใจ การทำ NORMALLIZRELATION

จากข้อมูลที่ผมมีเลยครับ  ผมไม่เข้าใจที่อาจารย์สอนมากๆเลยครับ (เป็นหนูทดลองของอาจารย์ สอนครั้งแรกครับ)

แล้วก็มีการเลือก key  อีกครับ

รบกวนพี่ๆช่วยแนะนำ ด้วยนะครับ

ถ้างานเสร็จแล้ว ผมจะกลับมา +1  ให้ทุกคนครับ

วันพุทธนี้ก็จะลองเอาไปส่งครับ
ส่งทีละขั้นตอน


จากรูปนะครับ เมื่อทำการ normalize แล้วมันจะได้ออกมาประมาณแบบนี้ครับ (แล้วแต่เคสนะครับ ต้องดูด้วยว่าจะให้ DB มันรองรับงานแบบไหน)
[Customer] - ตารางลูกค้า โยง FK ไปหาตารางจังหวัดเพื่อที่จะลดความซ้ำซ้อนของข้อมูล
-CustomerId > PK
-Name
-Age
-Email
-ProvinceId > FK[Province]

[Province] - ตารางจังหวัด
-ProvinceId > PK
-ProvinceName

[ISP] - ตารางผู้ให้บริการ
-ISPId > PK
-ISPName

[SPD] - ตารางดาวน์โหลดสปีด
-SPDId -> PK
-SPDName

[SPU] - ตารางอัพโหลดสปีด
-SPUId > PK
-SPUName


แบบที่ 1
[ISP_Details] - ตารางรายละเอียดของผู้ให้บริการว่า ลูกค้าคนใดสมัครอินเทอร์เน็ตกับผู้ให้บริการรายใด เอามาเป็นคีย์หลักคู่กัน และเชื่อมไปยังตาราง SPD & SPU การเชื่อมแบบนี้จะทำให้ ลูกค้าหนึ่งคนสามารถสมัครใช้บริการกับผู้ให้บริการแต่ละรายได้แค่แพ็คเกจเดียว
-CustomerId > PK, FK[Customer]
-ISPId > PK, FK[ISP]
-SPDId > FK[SPD]
-SPUId > FK[SPU]

แบบที่ 2
[ISP_Details] - ตารางรายละเอียดของผู้ให้บริการว่า ลูกค้าคนใดสมัครอินเทอร์เน็ตกับผู้ให้บริการรายใด และเชื่อมไปยังตาราง Customer & ISP & SPD & SPU การเชื่อมแบบนี้จะทำให้ ลูกค้าหนึ่งคนสามารถสมัครใช้บริการกับผู้ให้บริการแต่ละรายได้หลายแพ็คเกจ
-ISP_Detail_Id > PK
-CustomerId > FK[Customer]
-ISPId > FK[ISP]
-SPDId > FK[SPD]
-SPUId > FK[SPU]

การเรียกใช้ถ้าจะให้ออกมาเหมือนในรูปก็เขียน Query ให้มัน Join กันก็แค่นั้น
บันทึกการเข้า

raimai
สมุนแก๊งเสียว
*

พลังน้ำใจ: 37
ออฟไลน์ ออฟไลน์

กระทู้: 665



ดูรายละเอียด
« ตอบ #30 เมื่อ: 15 กรกฎาคม 2010, 00:39:35 »

เรียนคาบแรก อ.คงลองภูมิละมั้งครับ ไม่มีใครเรียนครั้งเดียวแล้วทำได้หรอกครับ ขนาดเรียนทั้งเทอมยังทำผิดเลย 555 ค่อยๆพยายามทำความเข้าใจไปครับทีละขั้นทีละตอน
บันทึกการเข้า

ab2f6
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 1,114



ดูรายละเอียด
« ตอบ #31 เมื่อ: 15 กรกฎาคม 2010, 00:47:50 »

ขอบคุณพี่ๆๆทุกท่านที่ช่วยเหลือผม

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

ผลก็คือ  ยังไม่ผ่านครับ

แต่ไม่เป็นไรครับ

เพราะผมว่าพี่ๆๆ ในไทยเสียว เทพมากๆๆครับ

+1  ให้ทุกม่านครับ

ปล.ใครยังไม่ได้ +  บอกด้วยนะครับ  เผื่อตกหล่น
บันทึกการเข้า

medieval
สมุนแก๊งเสียว
*

พลังน้ำใจ: 70
ออฟไลน์ ออฟไลน์

กระทู้: 875



ดูรายละเอียด
« ตอบ #32 เมื่อ: 15 กรกฎาคม 2010, 01:59:16 »

ขอบคุณพี่ๆๆทุกท่านที่ช่วยเหลือผม

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

ผลก็คือ  ยังไม่ผ่านครับ

แต่ไม่เป็นไรครับ

เพราะผมว่าพี่ๆๆ ในไทยเสียว เทพมากๆๆครับ

+1  ให้ทุกม่านครับ

ปล.ใครยังไม่ได้ +  บอกด้วยนะครับ  เผื่อตกหล่น

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

capuchinotae
Verified Seller
ก๊วนเสียว
*

พลังน้ำใจ: 12
ออฟไลน์ ออฟไลน์

กระทู้: 315



ดูรายละเอียด เว็บไซต์
« ตอบ #33 เมื่อ: 15 กรกฎาคม 2010, 06:59:06 »

ขอบคุณพี่ๆๆทุกท่านที่ช่วยเหลือผม

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

ผลก็คือ  ยังไม่ผ่านครับ

แต่ไม่เป็นไรครับ

เพราะผมว่าพี่ๆๆ ในไทยเสียว เทพมากๆๆครับ

+1  ให้ทุกม่านครับ

ปล.ใครยังไม่ได้ +  บอกด้วยนะครับ  เผื่อตกหล่น
เคยเจออยู่ครับ อาจารย์สอน VB ผมต้องไปนั่งสอนเพื่อนแทนเลยอะ คือเขาอ่านให้ฟังจากหนังสือเลยอะ บ้ามาก
แล้วแถมทำข้อสอบเพื่อนผมหายอีก ผลว่ากลายเป็น F ซะงั้น งงกันเป็นแถบอะ แต่ดีนะไม่เกิดกับผม
บันทึกการเข้า

SekRanger
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 130
ออฟไลน์ ออฟไลน์

กระทู้: 1,564



ดูรายละเอียด
« ตอบ #34 เมื่อ: 15 กรกฎาคม 2010, 07:28:55 »

กำลังจะถามพอดีว่าอยู่แถวไหน นึกว่าอยู่แถวสมุทรปราการ ยินดีไปติวให้ฟรีๆ
เพราะเราน่าจะเรียนมาจากสายเดียวกัน


(เนียนลดอายุตัวเอง wanwan023)
บันทึกการเข้า

เฮียเล้ง
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 57
ออฟไลน์ ออฟไลน์

กระทู้: 1,196



ดูรายละเอียด
« ตอบ #35 เมื่อ: 15 กรกฎาคม 2010, 09:51:51 »

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

จริงๆ แล้วในต่างประเทศ อาจารย์ไม่สอนด้วยซ้ำ คือบอกหนังสือมาเล่มนึง อ่านแล้วมีไรสงสัยให้มาถาม

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

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

kobkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 103
ออฟไลน์ ออฟไลน์

กระทู้: 1,312



ดูรายละเอียด เว็บไซต์
« ตอบ #36 เมื่อ: 15 กรกฎาคม 2010, 11:18:48 »

หุหุ ได้ความรู้ ทำมาตั้งนานไม่เคยรู้ว่ามันเรียกว่าอะไร แต่ตัวนี้ใช้หากินมาเป็นสิบปี
ผมลืมทฤษฎีไปหมดละ คืนครูหมด เดี๋ยวอาจารย์ไม่มีสอนคนอื่น จำอย่างเดียว one to many ๆๆๆ  Tongue

ชอบอ่านตามบอร์ด ไม่เน้นทฤษฎีจนหน้ามึน ศัพท์แสงไม่ไฮโซเกินไป  wanwan019
บันทึกการเข้า

เราเป็นบริษัท รับทำเว็บไซต์ แก้เว็บเดิม เขียน Php+Mysql+jQuery+css+bootstrap  งานตามสั่ง ประสบการณ์ จะ 19 ปี ละจ้า
Smilephp.com รับทำเว็บไซต์บริษัท e-commerce + ระบบชำระเงิน paypal,ธนาคาร  เว็บบริษัท เว็บขายของ ระบบจอง เช่า เขียน PHP ได้ทุกแนว  ช่วงนี้เน้นรับงาน ERP ระบบเอกสารบริษัท ,บัญชี ,  Barcode, Stock , Warehouse , Logistic ติดต่อ 086-364-5262

งดตอบคนทำเว็บนอกลู่นอกทาง ไม่ทำเว็บ WP ปั่นแชร์ เว็บประมูล สคริปปั่นใดๆ ไม่ทำเว็บบอลและพ
porjung
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 59
ออฟไลน์ ออฟไลน์

กระทู้: 1,202



ดูรายละเอียด
« ตอบ #37 เมื่อ: 15 กรกฎาคม 2010, 11:49:50 »

สุดยอดเลยกระทู้นี้ เหมือนได้ขุดสมองกล้ับมาอีกครั้งนึงเลย  wanwan017 wanwan017
บันทึกการเข้า

รอเธอกลับมา
Joejoe
Newbie
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 37



ดูรายละเอียด
« ตอบ #38 เมื่อ: 16 กรกฎาคม 2010, 02:10:50 »

ใจเย็นๆ ครับ ไม่ทราบว่าคุณเจ้าของกระทู้ทำยังไงไปสงครับ   ต้องดูวัตถุประสงค์ของโจทย์และคำตอบที่อาจารย์อยากได้ด้วยนะครับ
เพราะถ้าผมคิดไม่ผิดคือ อ. คงอยากให้ทำเป็น  step ๆ นะครับ ตั้งแต่ 1NF - 5NF
เพราะ อ. ก็คงอยากให้ นักศึกษาได้รู้ปัญหาของแต่ละระดับของ NF เพราะว่าหลังจาก ที่เราได้ทำการ NFแต่ละระดับไปแล้วพบว่าปัญหายังคงมีอยู่ ดังทฤษฏีที่ NF นั้นระบุไว้ เรา
ต้องทำการ NF ในระดับต่อไปเพื่อเป็นการแก้ปัญหาให้ถูกต้อง และตรงจุดที่สุด   ไม่ใชว่าทำแบบ NF ทั้งหมดแล้วไปส่งแบบไม่แสดงวิธีการ NF เป็นลำดับขั้นตอนตาม 1NF-5NF
แบบนี้ ข้อมูลอาจจะถูก แต่ว่า วัตถุประสงค์ที่อาจารย์ให้ทำนั้นคือ ต้องการให้ นศ ได้รู้ปัญหาในแต่ละขั้นตอน แต่ละ NF
ว่าเกิดปัญหาอะไรขี้นบ้าง และควรจะแก้ปัญหาต่อไปอย่างไร หรือไม่ คือว่านั้นคงเป็นประเด็นที่ อ. คงอยากให้ทำแบบนั้นมากกว่า ( ถ้าเจ้าของ กระทู้ทำแล้ว ก็ขอโทษด้วยนะครับ )
ตัวอย่าง เช่นว่า

ตามโจทย์ นั้นคือ  1 NF แล้ว เราต้องแสดงปัญหาว่า ในระดับ 1NF นั้นมีปัญหาอะไรเกิดขึ้นบ้าง  เพื่อที่จะได้ทำระดับ 2NF ต่อ โดยอ้างอิงจากทฤษฎีของแต่ละ NF ที่กำลังทำอยู่นะครับ
หลังจากนั้นให้เราทำการ NF ในระดับที่ 2NF ต่อ เหมือนเดิมครับ ให้อ้างอิงกับทฤษฏี 2NF ไว้ครับ เพื่อยังคงให้เห็นปัญหาอยู่ว่าใน ระดับที่ 2 หลังจากที่เราได้ทำการ NF
ไปแล้วยังมีปัญหาอะไรอยู่อีก ให้ทำแบบนี้ไปเรื่อย ๆ ครับ
เหมือนเราได้โจทย์มา 1 ข้อ แต่เราแยกคำตอบออกเป็นหลายๆ คำตอบ ตาม NFครับ อย่าลืมนะครับไม่ใช่แยก Table ออกมา เหมือนเป็นผ่านการ NF มาแล้วหลายระดับแล้วไปส่ง
นั้นอาจเป็นการตอบโจทย์แบบผิดวัตถุประสงค์ก็ได้ครับ อ่านโจทย์และมองคำตอบของโจทย์คร่าว ๆ แล้ววิเคราะห์เป็นขั้นเป็นตอนครับผม เพราะการเรียนกับการทำงานจริง ไม่ค่อยเหมือนกันหรอกครับ

อ่อ แล้วอย่างที่ผมเคยอธิบายไปแล้วนั้น
เป็นเพียงพื้นฐานความเข้าใจเบื้องต้น เพื่อที่จะนำไปคิดร่วมกับ ทฤษฏีต่างๆ ของ แต่ละระดับของ NFอีกทีครับเพราะแต่ละ NF ยังคงมีปัญหาที่เป็นเอกลักษณ์ในตัวของมันอยู่

หวังว่าคงช่วยเจ้าของกระทู้ได้นะครับ ผิดพลาดประการใดก็ขออภัยด้วยครับผม

แต่ตอนนี้ผมง่วง แล้ว ไปนอนแล้วครับ    Lips Sealed
บันทึกการเข้า
numanuel
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 607



ดูรายละเอียด เว็บไซต์
« ตอบ #39 เมื่อ: 16 กรกฎาคม 2010, 02:26:56 »

ผมผ่าน data base เมื่อเทอมที่แล้ว แบบว่าไม่รู้เรื่องเลย ตอนทำโปรเจคคงต้องมาศึกษาใหม่อีกที Lips Sealed
บันทึกการเข้า

หน้า: 1 [2] 3   ขึ้นบน
พิมพ์