Database Concepts
แนวคิดฐานข้อมูล
ฐานข้อมูลจัดข้อมูลให้ค้นและเชื่อมได้ เริ่มจากอ่านหนึ่งตารางก่อนเชื่อมหลายตาราง
หัวข้อในบทนี้
แถวคือรายการ คอลัมน์คือคุณสมบัติ
ตารางเชิงสัมพันธ์เก็บรายการที่มีโครงสร้างเดียวกัน แถวหนึ่งเป็นรายการ คอลัมน์เป็นคุณสมบัติที่กำหนดชนิด เช่นตาราง users มี id กับ name ส่วน devices มี id กับ user_id การแยกตารางช่วยให้ข้อมูลหนึ่งเรื่องมีที่อ้างอิงชัด และเชื่อมกันด้วย key แทนการคัดชื่อซ้ำไปทุกแถว
- users.id
Primary key ระบุผู้ใช้ไม่ซ้ำภายในตาราง ไม่ใช้ชื่อที่ซ้ำได้เป็นตัวตนโดยไม่กำหนดเงื่อนไข
- users.name
คุณสมบัติของผู้ใช้ เปลี่ยนชื่อได้โดย key เดิมยังอ้างคนเดิม
- devices.user_id
Foreign key อ้าง users.id เมื่อกำหนด constraint ฐานข้อมูลจะตรวจความสัมพันธ์ตามกฎ
- NULL
ไม่มีค่าตามความหมายที่ออกแบบ ไม่ใช่ข้อความว่าง 0 หรือคำว่า NULL ใน quotes
ความสัมพันธ์หนึ่งต่อหลายหมายถึงหนึ่ง user มีหลาย devices ได้ ไม่ได้บังคับว่าทุก user ต้องมี device การออกแบบต้องถามว่าข้อมูลซ้ำได้หรือไม่ ค่าว่างหมายถึงอะไร และเมื่อรายการต้นทางถูกลบจะทำอย่างไร ก่อนเขียน query เพื่อไม่ตีความผลผิด
ตาราง แถว และคอลัมน์Tables, Rows and Columns · 12.1.1
ตารางรวมข้อมูลชนิดหนึ่ง แถวแทนรายการ คอลัมน์แทนคุณสมบัติของรายการ
Relational database จัดข้อมูลเป็นตาราง แต่ละ row เป็นรายการและ column เป็น attribute ที่มีชนิดข้อมูล ชื่อคอลัมน์และชนิดช่วยให้ query ตีความค่าถูกต้อง NULL หมายถึงไม่มีค่าตามที่ระบบเก็บ ไม่ใช่ข้อความว่างหรือเลขศูนย์
ชุดรายการชนิดเดียวกัน
รายการหนึ่งรายการ
คุณสมบัติและชนิดข้อมูล
ตาราง devices อาจมี id, owner_id, hostname และ last_seen แต่ละ row คืออุปกรณ์หนึ่งรายการ ใช้ id ที่ไม่ซ้ำอ้างรายการ ไม่ใช้ตำแหน่งแถวเพราะลำดับผล query ไม่แน่นอนหากไม่สั่ง ORDER BY
ที่มาของหัวข้อนี้ · 1 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Tools of the Trade: Linux and SQL · Module 4: Databases and SQLVideo: Join tables in SQLCY4.M4.V9
ข้อมูลที่สัมพันธ์กันRelated Data · 12.1.2
ข้อมูลที่สัมพันธ์กันเชื่อมด้วยค่าที่อ้างถึงกัน เช่น user_id ของผู้ใช้กับรายการล็อกอิน
Related data เชื่อมตารางด้วย key Primary key ระบุแถวไม่ซ้ำ Foreign key อ้างแถวที่เกี่ยวข้อง ลดการเก็บข้อมูลซ้ำและช่วยบังคับความสัมพันธ์ที่ถูกต้อง
ระบุแถวหนึ่งเดียว
อ้างแถวในอีกตาราง
กฎเชื่อมรายการที่เกี่ยวข้อง
devices.owner_id อ้าง users.id จึงเปลี่ยนชื่อผู้ใช้ใน users แห่งเดียวได้ ต้องกำหนดว่าลบผู้ใช้แล้วอุปกรณ์ทำอย่างไร การมีคอลัมน์ชื่อเหมือนกันไม่ได้สร้างความสัมพันธ์โดยอัตโนมัติ
ที่มาของหัวข้อนี้ · 2 รายการ
คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส
- Tools of the Trade: Linux and SQL · Module 4: Databases and SQLVideo: Introduction to databasesCY4.M4.V2
- Tools of the Trade: Linux and SQL · Module 4: Databases and SQLVideo: Join tables in SQLCY4.M4.V9
นำศัพท์มาเชื่อมกับงาน
ตาราง users เก็บผู้ใช้ ตาราง logins เก็บการล็อกอินของผู้ใช้เดียวกันได้หลายครั้ง
สิ่งที่บทนี้เชื่อมไว้
ฐานข้อมูลจัดข้อมูลให้ค้นและเชื่อมได้ เริ่มจากอ่านหนึ่งตารางก่อนเชื่อมหลายตาราง
ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน
transcript ที่เคยใช้ตรวจแนวคิดพื้นฐานและตัวอย่างบางส่วน: T0272 · Tools of the Trade Linux and SQL คำอธิบายเป็นการเขียนใหม่ ไม่ใช่การแปลครบทุกประโยค ภาพและตัวอย่างเป็นการเรียบเรียงเพื่อเชื่อมความเข้าใจ
คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้