กลับไปทำข้อสอบวิชานี้

ความรู้เกี่ยวกับระบบฐานข้อมูล (Database System) และ ระบบการบริหารจัดการข้อมูล (Database Management System)

การออกแบบเชิงสัมพันธ์ SQL ธุรกรรม การกู้คืน ความมั่นคงปลอดภัย วิศวกรรมข้อมูล และธรรมาภิบาล

7 หัวข้อ · อ่านประมาณ 58 นาที

อ่านฟรีได้ 2 จาก 7 หัวข้อ29%
หัวข้อ 1

จากข้อมูลสู่ DBMS และสถาปัตยกรรมที่แยกความซับซ้อน

Database: ชุดข้อมูลที่สัมพันธ์กัน จัดโครงและเก็บเพื่อใช้งานตามวัตถุประสงค์ โดย ตาราง เอกสาร กราฟ Index/metadata ตามโมเดล. DBMS: ซอฟต์แวร์นิยาม สร้าง ค้น เปลี่ยน ควบคุม Transaction, security, recovery และ administration โดย Query processor, storage, transaction/recovery/security manager. Database system: Database + DBMS + application + hardware/network + people + procedures โดย ระบบทั้งหมด ไม่ใช่ไฟล์ฐานข้อมูลอย่างเดียว. Schema: คำอธิบายโครงสร้าง Constraint และความสัมพันธ์ โดย Logical/physical objects. Instance/state: ข้อมูลจริง ณ เวลาใดเวลาหนึ่ง โดย แถว/เอกสารปัจจุบัน. Catalog/data dictionary: Metadata ของ Object, type, constraint, privilege, statistics โดย System catalog. Query: คำขออ่าน/คำนวณข้อมูล โดย Declarative SQL/ภาษาเฉพาะ. ใน SQL Table เป็นแบบ Multiset ได้ถ้าไม่ใช้ DISTINCT และ NULL เพิ่ม Three-valued logic จึงไม่ตรง Relational model เชิงทฤษฎีทุกจุด ต้องแยกแนวคิดทฤษฎีกับพฤติกรรม SQL.

Redundancy: ไฟล์แยกทำข้อมูลซ้ำง่าย โดย Schema/normalization/constraint ลดซ้ำเชิงตรรกะ แต่ยังอาจมี Replica/denormalizationโดยออกแบบ. Consistency: แก้หลายไฟล์ยาก โดย Transaction/constraint ช่วยรักษา. Data sharing: รูปไฟล์/โปรแกรมผูกกัน โดย Query/interface และ concurrency รองรับหลายผู้ใช้. Program–data dependence: เปลี่ยนโครงกระทบโปรแกรมมาก โดย Data abstraction/independence ลดผลบางระดับ. Ad hoc query: ต้องเขียนโปรแกรมเฉพาะ โดย ภาษา Query declarative. Integrity: Business rule กระจายตามโปรแกรม โดย Constraint/transaction รวมที่ DB ได้บางส่วน. Concurrency: Lock file หยาบ/ชนกันง่าย โดย Isolation, locking/MVCC. Security: สิทธิระดับไฟล์ โดย Object/row/column/role/audit ตามระบบ. Recovery: สำเนาไฟล์และขั้นตอนเอง โดย Log, backup, checkpoint, recovery.

Data owner: กำหนดความรับผิด/อนุมัติการใช้ตามธุรกิจและความเสี่ยง. Data steward: ดูนิยาม คุณภาพ Metadata และประสานแก้ปัญหา. Database designer/data architect: Conceptual/logical/physical model และมาตรฐาน. DBA: ติดตั้ง/กำหนดค่า Object, user, performance, capacity, HA, backup/recovery, patch. Application developer: ออกแบบ Query/transaction/interface และใช้ parameterized access. Data engineer: Pipeline/integration/warehouse/lake และคุณภาพ. Analyst/BI user: Query สรุป/รายงานตามสิทธิและ Semantic definition. Data scientist: สร้าง Feature/model โดยควบคุม Snapshot/Leakage/Privacy. End user: ใช้ Application/Query ระดับงาน. Security/auditor: กำหนด/ตรวจ Control, log, segregation และ compliance. Operator/SRE: เฝ้าระบบ Incident, availability, deployment/automation. Managed cloud DB: ผู้ให้บริการจัดบาง Operation โดย Shared responsibility, lock-in, cost, region, restore capability. Embedded DB: DB อยู่ใน Application/device โดย งาน Local/offline แต่ concurrency/central governance จำกัด. Federation/virtualization: Query หลาย แหล่งข้อมูล โดยไม่ย้ายทั้งหมด โดย latency/pushdown/semantic/availability ของ แหล่งข้อมูล.

External/View: มุมมองผู้ใช้/โปรแกรมแต่ละกลุ่ม โดย View/รายงานที่เห็นเฉพาะคอลัมน์/รูปแบบ. Conceptual/Logical: Schema รวมขององค์กร: Entity, relation, constraint โดยไม่ผูกการเก็บ โดย ตาราง/ความสัมพันธ์เชิงตรรกะ. Internal/Physical: วิธีเก็บจริง File/page/record/index/partition/compression โดย B-tree, heap, tablespace. External–conceptual mapping: เชื่อม View กับ Schema กลาง โดย เปลี่ยน Logical แล้วรักษา View ได้บางกรณี. Conceptual–internal mapping: เชื่อม Schema กับ Storage โดย เปลี่ยน Index/partition โดย Logical เดิม. Physical data independence: เปลี่ยน Internal โดยไม่ต้องเปลี่ยน Conceptual/Application โดย เพิ่ม Index/เปลี่ยน File organization. Logical data independence: เปลี่ยน Conceptual โดยกระทบ External/Application ให้น้อย โดย เพิ่ม Attribute/แยก Relation แล้วใช้ View compatibility. เปรียบเทียบ: Logical มักยากกว่า Physical เพราะโปรแกรมพึ่งโครง/ความหมาย โดย ไม่ใช่รับประกันว่าเปลี่ยน Schema ใด ๆ แล้วโปรแกรมไม่กระทบ. Abstraction: ซ่อนรายละเอียดชั้นล่างเพื่อจัดการความซับซ้อน โดย ทุก Mapping/DBMS มีข้อจำกัด.

Centralized: DB อยู่ศูนย์หลัก โดย ง่าย Consistency แต่ต้อง HA/latency. Client–server 2-tier: Client ติดต่อ DB โดยตรงบางรูป โดย เรียบง่ายแต่ Connection/security/business logic กระจาย. 3-tier/N-tier: Client→application/API→database โดย รวม Logic/security/pooling และ Scale แยก. Distributed database: ข้อมูล/การประมวลหลาย Site แต่เห็นเป็นระบบ โดย consistency, partition, failure, transaction ซับซ้อน. Parallel database: ใช้หลาย CPU/node เร่ง Query ในระบบประสาน โดย partition/skew/shuffle. Shared-nothing: Node มี compute/storage ของตนและแบ่งข้อมูล โดย Scale แต่กระจาย/Join/rebalance. Shared-disk: Node แชร์ Storage โดย failover/coordination/lock manager. Superclass/subtype: Inheritance ของ Attribute/relationship ใน EER. Disjoint/overlap: สมาชิกอยู่ได้หนึ่ง Subtypeหรือหลาย. Total/partial specialization: สมาชิก Supertype ต้องอยู่ Subtype อย่างน้อยหนึ่งหรือไม่.

Entity type: ชนิดสิ่งที่ต้องเก็บ เช่นลูกค้า/สินค้า. Entity instance: สมาชิกจริงหนึ่งรายการ. Strong entity: ระบุเอกลักษณ์ด้วย Key ของตน. Weak entity: พึ่ง Owner + partial key/identifying relationship. Simple attribute: แยกย่อยตามความหมายไม่จำเป็น. Composite attribute: ประกอบส่วนย่อย เช่นที่อยู่ตามแบบ. Multivalued attribute: Entity หนึ่งมีหลายค่า เช่นเบอร์หลายหมายเลข. Derived attribute: คำนวณจากค่าอื่น เช่นอายุจากวันเกิด. Relationship type: ความสัมพันธ์ระหว่าง Entity types. Relationship degree: จำนวน Entity types ที่ร่วม: unary/binary/ternary. Recursive relationship: Entity type สัมพันธ์กับตนเองคนละ Role. Relationship attribute: คุณลักษณะของความสัมพันธ์ เช่นจำนวนในรายการสั่งซื้อ. Associative entity: ยกระดับ many-to-many ให้มี Identity/attributes. Superclass/subtype: Inheritance ของ Attribute/relationship ใน EER. Disjoint/overlap: สมาชิกอยู่ได้หนึ่ง Subtypeหรือหลาย. Total/partial specialization: สมาชิก Supertype ต้องอยู่ Subtype อย่างน้อยหนึ่งหรือไม่.

หัวข้อ 2

แบบจำลอง คีย์ ข้อจำกัด และ Normalization

1:1: แต่ละฝั่งสัมพันธ์อย่างมากหนึ่ง โดย บุคคล–ข้อมูลชีวมิติชุดหลักตามกฎ. 1:N: หนึ่ง A มีหลาย B; แต่ละ B อยู่ A หนึ่งตามกฎ โดย แผนก–พนักงาน. M:N: แต่ละฝั่งมีหลาย โดย นักศึกษา–รายวิชา ต้อง Relation กลาง. Minimum cardinality 0: Participation เป็น Optional โดย ลูกค้าอาจยังไม่มีคำสั่งซื้อ. Minimum cardinality 1: Participation บังคับ โดย รายการสั่งซื้อต้องอยู่คำสั่งซื้อหนึ่ง. Maximum 1/N: จำนวนสูงสุดที่สัมพันธ์ โดย —. Total participation: ทุก Entity instance ต้องร่วม Relationship โดย —. Partial participation: บาง Entity ไม่ร่วมได้ โดย —. Role name: ความหมายฝั่งความสัมพันธ์ โดยเฉพาะ Recursive โดย —. Temporal cardinality: กฎอาจต่างตามเวลา เช่นหัวหน้าในช่วงหนึ่ง โดย —. Business rule: ต้องอธิบายด้วยประโยคและยืนยันผู้รู้โดเมน ไม่เดาจากข้อมูล Sample โดย —. Cardinality จากข้อมูลปัจจุบันไม่จำเป็นเท่ากฎ เช่นวันนี้ลูกค้าทุกคนมีคำสั่งซื้อ ไม่พิสูจน์ว่ากฎบังคับขั้นต่ำ 1 ต้องอ้าง Requirement/Process.

Superkey: ชุด Attribute ที่ระบุ Tuple ไม่ซ้ำ อาจมี Attribute เกิน โดย —. Candidate key: Superkey ขั้นต่ำ ตัด Attribute ใดแล้วไม่ Unique โดย —. Primary key: Candidate key ที่เลือกเป็นตัวระบุหลัก โดย —. Alternate key: Candidate keys ที่ไม่ได้เลือก Primary โดย —. Composite key: Key มีหลาย Attribute โดย —. Foreign key: Attribute(s) อ้าง Candidate/unique key ของ Relation เป้าหมายตาม DBMS โดย —. Natural key: มีความหมายธุรกิจ เช่นรหัสทางการ โดย —. Surrogate key: ID สร้างภายใน ไม่มีความหมายธุรกิจ โดย —. Partial key: ระบุ Weak entity ภายใน Owner โดย —. Business key: ตัวระบุที่ธุรกิจยอมรับ อาจเปลี่ยน/หลายระบบ โดย —. Unique constraint: บังคับไม่ซ้ำ; การจัด NULL ต่างตาม DBMS โดย —. Stable key: ไม่ควรเปลี่ยนตาม Attribute ที่แก้บ่อย โดย —. Foreign-key index: Constraint ไม่รับประกันมี Index อัตโนมัติในทุก DBMS โดย —. Surrogate trap: Primary surrogate ไม่ห้าม Business duplicate ต้องมี Unique rule เพิ่ม โดย —.

Domain: ค่าตาม Type/range/format/meaning โดย quantity≥0, status ในชุด. Key: ระบุ Tuple ไม่ซ้ำ โดย candidate/primary/unique. Entity integrity: Primary key ไม่เป็น NULL โดย ทุกแถวต้องระบุตัว. Referential integrity: Foreign key เป็น NULL เมื่ออนุญาตหรือมีค่าตรง Parent โดย ป้องกัน orphan. NOT NULL: บังคับมีค่า โดย ไม่พิสูจน์ว่าค่าถูก. CHECK: Predicate ระดับแถว/คอลัมน์ตาม DBMS โดย end_date≥start_date. DEFAULT: ค่าที่ใช้เมื่อไม่ระบุ โดย ไม่ใช้เมื่อส่ง NULL ชัดในหลายระบบ. ASSERTION/business rule: กฎข้ามแถว/ตารางเชิงทฤษฎี/ระบบ โดย Support ต่าง ต้องใช้ design อื่น. Trigger: ทำงานเมื่อ Event เพื่อกฎ/บันทึกบางชนิด โดย ซ่อน Side effect/recursive/performance ต้องระวัง. Application rule: กฎที่ DB บังคับยาก/ต้อง Context โดย เสี่ยงหลาย Application ไม่สอดคล้อง. Functional dependency มาจากความหมาย/กฎ ไม่ใช่เพียงข้อมูล Sample ที่ยังไม่พบค่าซ้ำ การ Normalize จากข้อมูลอย่างเดียวอาจได้ Schema ผิดเมื่ออนาคตมีกรณีใหม่.

X→Y: ถ้า Tuple สองแถวมี X เท่ากัน ต้องมี Y เท่ากันตามกฎโดเมน. Determinant: ฝั่งซ้าย X. Trivial FD: Y เป็น Subset ของ X. Full functional dependency: Y พึ่ง X ทั้งชุด ตัด Attribute ใดจาก X ไม่ได้. Partial dependency: Non-prime attribute พึ่งส่วนแท้ของ Composite candidate key. Transitive dependency: Key→X และ X→Y โดย Y พึ่งผ่าน X ตามเงื่อนไข. Prime attribute: อยู่ใน Candidate key อย่างน้อยหนึ่งชุด. Closure X⁺: Attribute ทั้งหมดที่อนุมานจาก X ด้วย FDs. Minimal cover: ชุด FD เทียบเท่าที่ลดฝั่งขวา/ฝั่งซ้าย/FD เกินตามขั้น. Insertion anomaly: เพิ่ม Fact หนึ่งไม่ได้ถ้าอีก Fact ยังไม่มี. Update anomaly: Fact ซ้ำหลายแถว แก้ไม่ครบเกิดขัดกัน. Deletion anomaly: ลบ Fact หนึ่งทำให้ Fact อื่นหายโดยไม่ตั้งใจ. ON DELETE/UPDATE action: RESTRICT/NO ACTION, CASCADE, SET NULL/DEFAULT ตามระบบ โดย Cascade ต้องไม่ลบวงกว้างโดยไม่ตั้งใจ. Deferred constraint: ตรวจปลาย Transaction ในระบบที่รองรับ โดย ช่วยโหลด/สลับ Key แต่ต้องรู้พฤติกรรม.

1NF: ค่าของ Attribute เป็น Atomic ตาม Domain และไม่มี Repeating group ใน Relation โดย แยกรายการหลายค่า/กลุ่มซ้ำ. 2NF: เป็น 1NF และ Non-prime ทุกตัวพึ่ง Candidate key แบบเต็ม ไม่พึ่งบางส่วน โดย Partial dependency; มีผลเด่นเมื่อ Composite key. 3NF แบบเข้าใจ: เป็น 2NF และไม่มี Non-prime พึ่ง Key แบบ Transitive ผ่าน Non-key โดย แยก Fact ที่ขึ้นกับ Non-key. 3NF แบบเป็นทางการ: สำหรับ FD X→A ที่ไม่ trivial: X เป็น Superkey หรือ A เป็น Prime attribute โดย อนุญาตบางกรณีที่ BCNF ไม่อนุญาต. BCNF: สำหรับ FD X→Y ที่ไม่ trivial ทุก Determinant X ต้องเป็น Superkey โดย เข้มกว่า 3NF และลด anomaly จาก determinant ไม่ใช่ Key. Subtype: class tables: Supertype + subtype tables key=FK. Concrete tables: Table ต่อ Subtype รวม field ซ้ำ. Ordered relationship: เก็บ sequence/rank และ Unique rule.

ข้อควรระวัง: Relation อาจมีหลาย Candidate keys/overlap ต้องใช้ Formal rule โดย จำคำว่า “Key, whole key, nothing but key” ช่วยแต่ไม่แทนการวิเคราะห์ FD. Lossless join: Join Relation ย่อยกลับแล้วได้ Relation เดิม ไม่สร้าง Spurious tuples. Dependency preservation: ตรวจ FDs เดิมได้โดยไม่ Join Relation ย่อย. 3NF synthesis: มักรักษา Dependency และ Lossless ตาม Algorithm. BCNF decomposition: Lossless ได้ตาม Algorithm แต่บาง Dependency อาจไม่ Preserve. Trade-off: ต้องเลือก Integrity/performance/complexity ตาม Workload และกฎ. Denormalization: ตั้งใจรวม/ซ้ำเพื่อ Read performance โดยมีวิธี Sync/validate ไม่ใช่ปล่อย anomaly.

  1. 1เก็บความต้องการ กฎธุรกิจ เหตุการณ์ และคำศัพท์ของผู้ใช้ก่อนออกแบบโครงสร้าง
  2. 2สร้าง ER/EER เพื่อระบุเอนทิตี แอตทริบิวต์ ความสัมพันธ์ คาร์ดินัลลิตี และการมีส่วนร่วม
  3. 3แปลงเป็น Relational schema พร้อม Primary key, Foreign key, Candidate key และข้อจำกัดความคงสภาพ
  4. 4วิเคราะห์ Functional dependency และความผิดปกติจากการเพิ่ม แก้ หรือลบข้อมูล
  5. 5ทำ Normalization ถึงระดับที่เหมาะกับกฎและภาระงาน แล้วทดสอบ Lossless join กับการรักษาข้อกำหนด
อ่านสรุปฉบับเต็มทุกหัวข้อ
สมาชิก PRO ระบบจะจำหัวข้อที่อ่านค้างไว้ให้ด้วย
PRO 99 บาท/เดือน

เนื้อหาสรุปนี้จัดทำขึ้นเพื่อการศึกษาส่วนบุคคล ห้ามคัดลอก ทำซ้ำ หรือนำไปใช้เพื่อวัตถุประสงค์ทางการค้าโดยไม่ได้รับอนุญาต