ข้ามไปยังเนื้อหา

A.3 · ฐานข้อมูล

International Baccalaureate · IB Diploma · Computer Science · SL · หัวข้อ 3

ดูสไลด์ ฝึกฝน
3.1

ขอบเขตและเงื่อนไขก่อนเข้าเรียน

SL ที่รองรับ: จุดเน้น การประเมินผลครั้งแรก 2027 เป้าหมาย; PDFทางการแสดงค่า 403; เอกสารสรุปสั้นๆ ที่จัดเก็บไว้ล่วงหน้าคือผลการประเมินสุดท้าย 2026 คู่มือที่เหลือ การประเมิน และข้อกำหนดเชิงปฏิบัติยังคงมีข้อจำกัดตามบันทึกไว้

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

นี่คือตัวอย่างการสอนดั้งเดิมหรือที่ระบุว่าเป็นเรื่องfictional อย่างชัดเจน ไม่ใช่การวัดค่าจริงหรือการสืบสวนผู้เรียนที่ได้รับการประเมินเสร็จสมบูรณ์

3.2

ฐานข้อมูลเชิงสัมพันธ์: คีย์และความสัมพันธ์

อะไรจะเป็นคำอธิบายสำหรับการสังเกตนี้?

  • การซ้ำที่อยู่ผู้ใช้ในคำสั่งซื้อทุกฉบับอาจทำให้เกิดบันทึกที่ขัดแย้งกันเมื่อที่อยู่มีการเปลี่ยนแปลง
  • เริ่มต้นด้วยการทำนาย ระบุปริมาณหรือลักษณะที่คุณจะเปรียบเทียบ แล้วตัดสินใจว่าหลักฐานอะไรที่จะแยกแยะคำอธิบายสองแบบได้

สร้างโมเดล

  • ตารางฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยแถวและคุณสมบัติ คีย์หลัก ใช้ระบุแถว; คีย์ภายนอก เชื่อมโยงไปยังคีย์อ้างอิงในตารางอื่น การทำให้เป็นมาตรฐานสามารถลดการซ้ำซ้อนที่ไม่จำเป็นและความผิดปกติในการอัปเดตได้ขณะคงความสัมพันธ์ที่มีนัยสำคัญไว้
  • คีย์หลัก (primary key): เซตของแอททริบิวต์ที่ใช้ระบุแถวในตารางได้อย่างเดียว; คีย์อ้างอิง (foreign key): เซตของแอททริบิวต์ที่อ้างอิงถึงคีย์ในตารางอื่น
ฐานข้อมูลเชิงสัมพันธ์: คีย์และความสัมพันธ์: แผนภาพกรณีตัวอย่างเดิม

เลือกหลักฐานที่นำมาทดสอบได้

  • การรวม (join) รวมแถวตามเงื่อนไขที่กำหนด จำนวนผลลัพธ์ขึ้นอยู่กับความเข้มแข็งของความสัมพันธ์และตัวกรอง ข้อจำกัดคีย์ภายนอกบังคับกฎความสัมพันธ์แต่ไม่ทำการเข้ารหัสข้อมูลส่วนบุคคลโดยอัตโนมัติ
  • ออกแบบชุดข้อมูลคำสั่งซื้อผู้ใช้อ้างอิงขนาดเล็กที่ไม่มีข้อมูลส่วนบุคคลจริง Declare คีย์ ทดสอบการแทรกซ้ำและการอ้างอิงที่หายไป จากนั้นตรวจสอบผลลัพธ์การ query กับตารางเป้าหมายที่คำนวณด้วยมือ

เริ่มจากปริมาณที่ทราบแล้ว

  • ระบุค่าที่ทราบและหน่วยของมัน เลือกความสัมพันธ์โดยพิจารณาว่าข้อสมมติฐานสอดคล้องกับเคสนี้ แล้วจัดรูปสมการก่อนแทนค่า
  • ข้อมูล: ลูกค้าสี่รายมีคำสั่งซื้อ分別是 2, 0, 3 และ 1 คำสั่ง An inner join ของลูกค้าไปยังคำสั่งคืน 2+0+3+1 = 6แถว A left join ยังคงลูกค้าที่ไม่มีคำสั่งไว้เป็นแถว null-matched หนึ่งแถว ทำให้ได้ 7在这里

ตัวอย่าง:

ลูกค้าสามรายมีคำสั่งซื้อจำนวน 1, 3 และ 2 การรวมภายใน (inner join) ระหว่างลูกค้ากับคำสั่งจะคืนกี่แถว? ใช้ลำดับขั้นตอนเดียวกัน: ข้อมูลที่ทราบ → แบบจำลอง →ความสัมพันธ์ → แทนค่า → หน่วยและการตีความ


ตรวจสอบข้อสรุปและขอบเขต

  • คีย์หลักไม่จำเป็นต้องเป็นชื่อบุคคล การรวม (join) ไม่ใช่การต่อกันของตารางอย่างง่าย ควรใช้ query ที่มีพารามิเตอร์สำหรับข้อมูลที่ไม่ไว้วางใจแทนการสร้าง SQL จากสตริงดิบ
  • กลับไปที่การสังเกตเดิม อธิบายว่าผลลัพธ์นี้สนับสนุนสิ่งใด มีเงื่อนไขใดบ้าง และเป็นอย่างไรในการทดสอบคำอธิบายอื่นที่ขัดแย้งกัน

เตือน:

คีย์ภายนอกจะทำการเข้ารหัสทุกแถวโดยอัตโนมัติ ข้ออ้างนี้ผิด: คีย์หลักไม่จำเป็นต้องเป็นชื่อบุคคล การรวม (join) ไม่ใช่การต่อกันของตารางอย่างง่าย ควรใช้ query ที่มีพารามิเตอร์สำหรับข้อมูลที่ไม่ไว้วางใจแทนการสร้าง SQL จากสตริงดิบ

จุดสำคัญ:

ฐานข้อมูลเชิงสัมพันธ์: คีย์และความสัมพันธ์: การรวม (join) รวมแถวตามเงื่อนไขที่กำหนด จำนวนผลลัพธ์ขึ้นอยู่กับความเข้มแข็งของความสัมพันธ์และตัวกรอง ข้อจำกัดคีย์ภายนอกบังคับกฎความสัมพันธ์แต่ไม่ทำการเข้ารหัสข้อมูลส่วนบุคคลโดยอัตโนมัติ

ลายเส้นที่ดำเนินการได้และขอบเขต

import sqlite3
db = sqlite3.connect(":memory:")
db.executescript("""CREATE TABLE c(id INTEGER PRIMARY KEY);
CREATE TABLE o(id INTEGER PRIMARY KEY, cid INTEGER);
INSERT INTO c VALUES(1),(2),(3);
INSERT INTO o VALUES(10,1),(11,1),(12,3);""")
for kind in ["INNER", "LEFT"]:
    sql = f"SELECT COUNT(*),COUNT(o.id) FROM c {kind} JOIN o ON c.id=o.cid"
    print(kind, db.execute(sql).fetchone())
db.close()

ผลลัพธ์ที่คาดหวัง:

INNER (3, 3)
LEFT (4, 3)

Left join รักษาลูกค้า 2 กับช่องคำสั่งซื้อเป็น null COUNT(*) รวมแถวนั้น ในขณะที่ COUNT(o.id) ขาดแถวนั้น คีย์หลักแยกแยะบันทึก; จำนวนลูกค้าไม่ใช่จำนวนคำสั่งซื้อ คำเชื่อมที่แทรกเข้ามามาจากรายการภายในคงที่ ไม่ใช่ข้อมูลผู้ใช้

คำศัพท์ ฝึกฝน
English ไทย
primary key/ˈpraɪməri kiː/ คีย์หลัก
foreign key/ˈfɒrən kiː/ คีย์ภายนอก

หัวข้อเพิ่มเติมใน International Baccalaureate · IB Diploma · Computer Science · SL

เข้าสู่ระบบหรือสร้างบัญชี

IGCSE, A-Level & AP