Learning AtlasIT Support → Cybersecurity
คลังบทอ่าน12.1 / ฐานข้อมูลและเอสคิวแอลบทถัดไป
สารบัญบทอ่าน / Databases and SQL / 12.1
04 · เขียนโค้ดและนำระบบไปใช้ · บท 12.1

Database Concepts

แนวคิดฐานข้อมูล

ฐานข้อมูลจัดข้อมูลให้ค้นและเชื่อมได้ เริ่มจากอ่านหนึ่งตารางก่อนเชื่อมหลายตาราง

2 หัวข้อคำอธิบายในหน้านี้ภาพอธิบายและกลไกทีละส่วน
ควรรู้ก่อน: 01.2 การแทนข้อมูล
หัวข้อในบทนี้
จากหลักการไปถึงกลไก

แถวคือรายการ คอลัมน์คือคุณสมบัติ

ตารางเชิงสัมพันธ์เก็บรายการที่มีโครงสร้างเดียวกัน แถวหนึ่งเป็นรายการ คอลัมน์เป็นคุณสมบัติที่กำหนดชนิด เช่นตาราง users มี id กับ name ส่วน devices มี id กับ user_id การแยกตารางช่วยให้ข้อมูลหนึ่งเรื่องมีที่อ้างอิงชัด และเชื่อมกันด้วย key แทนการคัดชื่อซ้ำไปทุกแถว

อ่านกติกาข้อมูลทีละส่วนแถวคือรายการ คอลัมน์คือคุณสมบัติ
  1. users.id

    Primary key ระบุผู้ใช้ไม่ซ้ำภายในตาราง ไม่ใช้ชื่อที่ซ้ำได้เป็นตัวตนโดยไม่กำหนดเงื่อนไข

  2. users.name

    คุณสมบัติของผู้ใช้ เปลี่ยนชื่อได้โดย key เดิมยังอ้างคนเดิม

  3. devices.user_id

    Foreign key อ้าง users.id เมื่อกำหนด constraint ฐานข้อมูลจะตรวจความสัมพันธ์ตามกฎ

  4. NULL

    ไม่มีค่าตามความหมายที่ออกแบบ ไม่ใช่ข้อความว่าง 0 หรือคำว่า NULL ใน quotes

ความสัมพันธ์หนึ่งต่อหลายหมายถึงหนึ่ง user มีหลาย devices ได้ ไม่ได้บังคับว่าทุก user ต้องมี device การออกแบบต้องถามว่าข้อมูลซ้ำได้หรือไม่ ค่าว่างหมายถึงอะไร และเมื่อรายการต้นทางถูกลบจะทำอย่างไร ก่อนเขียน query เพื่อไม่ตีความผลผิด

01 / 02

ตาราง แถว และคอลัมน์Tables, Rows and Columns · 12.1.1

ตารางรวมข้อมูลชนิดหนึ่ง แถวแทนรายการ คอลัมน์แทนคุณสมบัติของรายการ

Relational database จัดข้อมูลเป็นตาราง แต่ละ row เป็นรายการและ column เป็น attribute ที่มีชนิดข้อมูล ชื่อคอลัมน์และชนิดช่วยให้ query ตีความค่าถูกต้อง NULL หมายถึงไม่มีค่าตามที่ระบบเก็บ ไม่ใช่ข้อความว่างหรือเลขศูนย์

เทียบหน้าที่เพื่อไม่สับสน
•Table

ชุดรายการชนิดเดียวกัน

•Row

รายการหนึ่งรายการ

•Column

คุณสมบัติและชนิดข้อมูล

ตาราง devices อาจมี id, owner_id, hostname และ last_seen แต่ละ row คืออุปกรณ์หนึ่งรายการ ใช้ id ที่ไม่ซ้ำอ้างรายการ ไม่ใช้ตำแหน่งแถวเพราะลำดับผล query ไม่แน่นอนหากไม่สั่ง ORDER BY

ที่มาของหัวข้อนี้ · 1 รายการ

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

02 / 02

ข้อมูลที่สัมพันธ์กันRelated Data · 12.1.2

ข้อมูลที่สัมพันธ์กันเชื่อมด้วยค่าที่อ้างถึงกัน เช่น user_id ของผู้ใช้กับรายการล็อกอิน

Related data เชื่อมตารางด้วย key Primary key ระบุแถวไม่ซ้ำ Foreign key อ้างแถวที่เกี่ยวข้อง ลดการเก็บข้อมูลซ้ำและช่วยบังคับความสัมพันธ์ที่ถูกต้อง

เทียบหน้าที่เพื่อไม่สับสน
•Primary key

ระบุแถวหนึ่งเดียว

•Foreign key

อ้างแถวในอีกตาราง

•Relationship

กฎเชื่อมรายการที่เกี่ยวข้อง

devices.owner_id อ้าง users.id จึงเปลี่ยนชื่อผู้ใช้ใน users แห่งเดียวได้ ต้องกำหนดว่าลบผู้ใช้แล้วอุปกรณ์ทำอย่างไร การมีคอลัมน์ชื่อเหมือนกันไม่ได้สร้างความสัมพันธ์โดยอัตโนมัติ

ที่มาของหัวข้อนี้ · 2 รายการ

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

เชื่อมความเข้าใจ

นำศัพท์มาเชื่อมกับงาน

ตัวอย่างให้เห็นภาพ

ตาราง users เก็บผู้ใช้ ตาราง logins เก็บการล็อกอินของผู้ใช้เดียวกันได้หลายครั้ง

สิ่งที่บทนี้เชื่อมไว้

ฐานข้อมูลจัดข้อมูลให้ค้นและเชื่อมได้ เริ่มจากอ่านหนึ่งตารางก่อนเชื่อมหลายตาราง

ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป

บันทึกในเบราว์เซอร์นี้
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน

transcript ที่เคยใช้ตรวจแนวคิดพื้นฐานและตัวอย่างบางส่วน: T0272 · Tools of the Trade Linux and SQL คำอธิบายเป็นการเขียนใหม่ ไม่ใช่การแปลครบทุกประโยค ภาพและตัวอย่างเป็นการเรียบเรียงเพื่อเชื่อมความเข้าใจ

คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้