ระบบจัดการฐานข้อมูล (DBMS)
แนะนำใหม่| English | ความหมาย |
|---|---|
| DBMS/ˌdiː biː em ˈes/ | ระบบจัดการฐานข้อมูล |
| view/vjuː/ | วิว |
| backup/ˈbækʌp/ | การสำรองข้อมูล |
| data management/ˈdeɪtə ˈmænɪdʒmənt/ | การจัดการข้อมูล |
| data dictionary/ˈdeɪtə ˈdɪkʃənəri/ | พจนานุกรมข้อมูล |
| data modelling/ˈdeɪtə ˈmɒdəlɪŋ/ | การสร้างโมเดลข้อมูล |
| logical schema/ˈlɒdʒɪkl ˈskiːmə/ | สคีมาเชิงตรรกะ |
| data integrity/ˈdeɪtə ɪnˈteɡrɪti/ | ความสมบูรณ์ของข้อมูล |
| data security/ˈdeɪtə sɪˈkjʊərɪti/ | ความปลอดภัยของข้อมูล |
| transaction/trænˈsækʃn/ | ธุรกรรม |
| concurrent access/kənˈkʌrənt ˈækses/ | การเข้าถึงแบบพร้อมกัน |
| concurrency control/kənˈkʌrənsi kənˈtrəʊl/ | การควบคุมความพร้อมกัน |
| developer interface/dɪˈveləpə ˈɪntəfeɪs/ | อินเทอร์เฟซนักพัฒนา |
| query processor/ˈkwɪərɪ ˈprəʊsesə/ | ตัวประมวลผลคำถาม |
คนสองคน ตักรถหนึ่ง
- ในปี 1960 American Airlines เปิดใช้งาน Sabre ซึ่งเป็นระบบจองตั๋วด้วยคอมพิวเตอร์ครั้งแรก พนักงานขายตั๋วในเมืองต่างๆ จำนวนมากสามารถขายที่นั่งบนเที่ยวบินเดียวกันในเวลาเดียวกันได้ และหน้าที่สำคัญที่สุดของระบบนี้คือการไม่มีการขายที่นั่งเดิมซ้ำเด็ดขาด
- ไฟล์.shared ทำสิ่งนี้ได้ไม่ได้: โปรแกรมสองโปรแกรมอ่านว่า "ที่นั่ง 14Cว่าง" แล้วทั้งคู่เขียนว่า "ขายแล้ว" ทำให้ผู้โดยสารสองคนมาถึงที่ประตูทางออกพร้อมกัน ต้องมีตัวกลางอยู่ระหว่างแต่ละโปรแกรมกับข้อมูลเพื่อทำหน้าที่ตัดสิน
- ตัวตัดสินนี้คือ DBMS คุณสมบัติทั้งหมดในบทเรียนนี้เป็นสิ่งที่ flat files ไม่สามารถทำได้: อธิบายโครงสร้างตัวเอง รักษาความสอดคล้องของมุมมองผู้ใช้ทุกคน บังคับใช้กฎกติกา ทนต่อการหยุดทำงานชั่วคราว และทำให้ทีมหนึ่งสร้างแอปพลิเคชันได้ในขณะที่อีกทีมตั้งคำถาม
- บทเรียนนี้ครอบคลุมคุณสมบัติที่หลักสูตรระบุไว้และเครื่องมือซอฟต์แวร์สองชนิดที่ต้องอธิบาย
DBMS คืออะไร
- Database management system (DBMS) คือซอฟต์แวร์ที่ใช้จัดการฐานข้อมูลแบบรวมศูนย์ ทุกโปรแกรมและทุกผู้ใช้เข้าถึงข้อมูลได้เพียงผ่าน DBMS เท่านั้น
- มันแก้ไขข้อจำกัดของไฟล์แต่ละไฟล์: ข้อมูลจริงแต่ละชิ้นมีเพียงสำเนาเดียว จึงไม่มี redundancy หรือ inconsistency; data independence ทำให้โปรแกรมไม่ผูกติดกับการจัดเก็บข้อมูล; ความสมบูรณ์และความปลอดภัยแบบรวมศูนย์ การสำรองข้อมูล และการเข้าถึงสำหรับผู้ใช้หลายคนพร้อมกัน
- หลักสูตรระบุคุณสมบัติ 5 ประการและเครื่องมือ 2 ชนิด จดจำแต่ละอย่างในฐานะสิ่งที่ DBMS กระทำ
ห้องปฏิบัติการบริการฐานข้อมูล
ดูวิธีที่ DBMS แปลงคำสั่ง query ให้เป็นการเข้าถึงข้อมูลที่ปลอดภัยและแชร์ร่วมกันได้
จับคู่บริการแต่ละตัวของ DBMS กับสิ่งที่มันทำ
Difficulty 2/5 · 140 coins + a small bonus on first completion today
DBMS รวมบริการเหล่านี้เข้าด้วยกันเพื่อให้โปรแกรมไม่สัมผัสไฟล์ดิบโดยตรง
การจัดการข้อมูลและ data dictionary
- Data management คือ DBMS ควบคุมวิธีการจัดเก็บ จัดระเบียบ ดึงข้อมูล และอัปเดตข้อมูล เพื่อให้โปรแกรมไม่สัมผัสไฟล์โดยตรง
- DBMS รักษาระบบ data dictionary: คำอธิบายของแต่ละตาราง ช่องข้อมูล ประเภทข้อมูล คีย์ Relationships และ constraints รวมถึงใครเข้าถึงอะไรได้บ้าง นี่คือข้อมูลเกี่ยวกับข้อมูล
- โปรแกรม query เข้า data dictionary แทนที่จะ hard-code โครงสร้างไว้ ทำให้เมื่อมีการเปลี่ยนแปลงตาราง โปรแกรมไม่พังลง DBMS ยังใช้ตรวจสอบเมื่อรับ record ใหม่
พจนานุกรมข้อมูลใน DBMS เก็บ:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
พจนานุกรมข้อมูลอธิบายโครงสร้างฐานข้อมูล ทำให้โปรแกรมถามข้อมูลแทนการกำหนดโครงสร้างตายตัว
Data modelling และ logical schema
- Data modelling คือการกำหนดโครงสร้างของข้อมูล: entities, attributes, keys และ relationships เหมือนใน E-R diagram
- ผลลัพธ์ที่ได้คือ logical schema: การออกแบบตรรกะโดยรวมของฐานข้อมูล ตาราง และ relationships ที่อธิบายโดยไม่ขึ้นอยู่กับวิธีจัดเก็บ byte บนไดรฟ์
- เนื่องจาก logical schema แยกจาก physical storage การจัดเก็บข้อมูลสามารถถูกปรับโครงสร้าง สร้าง index หรือย้ายตำแหน่งได้ โดยที่โปรแกรมยังมองเห็นตารางเดิมเหมือนเดิม

โปรแกรมเห็นเป็นตาราง; DBMS เห็นเป็นดิสก์
สคีมาเชิงตรรกะของฐานข้อมูลอธิบายถึง:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
การออกแบบเชิงตรรกแยกจากการจัดเก็บทางกายภาพ ซึ่งเป็นสิ่งที่ทำให้การจัดเก็บเปลี่ยนได้โดยไม่ทำให้โปรแกรมรู้ตัว
Data integrity และ data security
- Data integrity: DBMS รักษาความถูกต้องและความสอดคล้องของข้อมูลด้วยการบังคับใช้กฎกติการวมศูนย์: primary key ต้องเป็น unique และไม่ null, referential integrity ในทุก foreign key, ประเภทข้อมูล และ constraints แบบ validation เช่น ช่วงค่าหรือค่าจากรายการที่กำหนด
- Data security: DBMS ควบคุมว่าใครเข้าถึงและแก้ไขข้อมูลอะไรได้ Access rights ถูกมอบให้กับผู้ใช้รายบุคคลหรือกลุ่ม โดยแบ่งตามตาราง เป็น read-only, read and write หรือ no access; รหัสผ่านใช้ยืนยันตัวตนผู้ใช้; ข้อมูลที่จัดเก็บสามารถถูกเข้ารหัสได้
- ความปลอดภัย还包括 backup procedures: สำเนาฐานข้อมูลเป็นระยะ พร้อมบันทึกการเปลี่ยนแปลงตั้งแต่那次 copy เพื่อ/vndข้อมูลหลังจากเกิดข้อผิดพลาด
ข้อใดเป็นคุณสมบัติด้านความปลอดภัยของ DBMS? เลือก ทั้งหมด ที่ถูกต้อง
Difficulty 2/5 · 140 coins + a small bonus on first completion today
ใครจะเข้าถึงได้ และการกู้คืนหลังสูญเสียคือเรื่องความปลอดภัย การปรับมาตรฐานคือการออกแบบเพื่อลดความซ้ำซ้อน
ตัวอย่างคำอธิบาย: DBMS รักษาความปลอดภัยของข้อมูลอย่างไร
- อธิบายว่า DBMS ให้ data security ได้อย่างไร [4]
- แต่ละผู้ใช้มีบัญชีและรหัสผ่าน ดังนั้นเฉพาะผู้ที่ได้รับอนุญาตเท่านั้นที่ล็อกอินได้ ผู้ดูแลระบบมอบ access rights ให้กับผู้ใช้หรือกลุ่มต่อตาราง: พนักงานขายอาจดูราคาได้แต่แก้ไขไม่ได้; ลูกค้าไม่สามารถเห็นตารางพนักงานได้เลย View สามารถแสดงเฉพาะ fields ที่ผู้ใช้ต้องการเท่านั้น
- DBMS运行 backup procedures: สำเนาฐานข้อมูลไปยังสื่อแยกต่างหากเป็นประจำ พร้อมบันทึก transaction ตั้งแต่那次 copy ทำให้หากเกิดข้อผิดพลาดหรือการโจมตี จะไม่สูญเสียข้อมูล
- ความปลอดภัย是关于 who may access; ความถูกต้อง是关于数据 being correct. แยกสองสิ่งนี้ออกเมื่อโจทย์ถามถึงสิ่งใดสิ่งหนึ่ง
ผู้ใช้หลายคนพร้อมกัน
- Concurrent access: ผู้ใช้หลายคนทำงานกับฐานข้อมูลพร้อมกัน Concurrency control ใช้ locks ป้องกันไม่ให้ผู้ใช้สองคนอัปเดต record เดียวกันจนข้อมูลเสียหาย: ผู้ใช้คนที่สองจะรอจนกว่าผู้แรกจะเสร็จสิ้น
- Transaction คือกลุ่ม operations ที่ต้องสำเร็จทั้งหมดหรือล้มเหลวทั้งหมด ทำให้หากเกิด crash กลางคันการโอนเงิน จะไม่เกิดกรณีเงินหายจากทั้งสองบัญชี
- View เป็นตารางเสมือน ที่สร้างมาจาก query ซึ่งแสดงเฉพาะ slice ของข้อมูลที่ผู้ใช้ต้องการ
ธุรกรรมฐานข้อมูลคือ:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ธุรกรรมเป็นแบบสำเร็จหรือล้มเหลวทั้งหมด ทำให้ฐานข้อมูลไม่เหลือสถานะอัปเดตครึ่งหนึ่ง
การควบคุมความพร้อมกัน (การล็อก) จำเป็นเพื่อให้:
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ล็อกป้องกันไม่ให้การอัปเดตพร้อมกันสองครั้งชนกันและทำลายข้อมูลร่วมกัน
ธุรกรรมเป็นแบบสำเร็จหรือล้มเหลวทั้งหมด: มันจะสมบูรณ์ (commit) หรือยกเลิกตัวเองทั้งหมด (rollback) ทำให้ฐานข้อมูลไม่เหลือสถานะอัปเดตครึ่งหนึ่ง
Difficulty 1/5 · 100 coins + a small bonus on first completion today
ความเป็นอะตอมิกนี้คือเหตุผลที่โอนเงินธนาคารไม่สามารถตัดเงินบัญชีหนึ่งโดยไม่เพิ่มเงินอีกบัญชีหนึ่ง
ตารางเสมือน (มักเป็นคำถามที่บันทึกไว้) ที่แสดงให้ผู้ใช้เห็นเฉพาะส่วนที่เกี่ยวข้องของตนเรียกว่า ______.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
View แสดงส่วนย่อยของข้อมูลที่ปรับแต่งแล้ว มักมีการจำกัด โดยไม่ต้องคัดลอกข้อมูล
เรียงลำดับเหตุการณ์เมื่อผู้ใช้งานสองคนอัปเดตบันทึกเดียวกันภายใต้การควบคุมความพร้อมกัน
Difficulty 3/5 · 200 coins + a small bonus on first completion today
ล็อกทำให้การอัปเดตทั้งสองเรียงลำดับกัน sehinggaไม่มีการทับซ้อน
เครื่องมือซอฟต์แวร์
- อินเทอร์เฟซนักพัฒนา (developer interface) คือชุดเครื่องมือและอินเทอร์เฟซการเขียนโปรแกรม用于สร้างแอปพลิเคชันบนฐานข้อมูล: เครื่องมือสร้างฟอร์มสำหรับการป้อนข้อมูล, เครื่องมือสร้างรายงาน, เครื่องมือสร้างคำสั่ง query, ตัวแก้ไข SQL, ตัวแก้ไข data-dictionary และ API ที่ทำให้โปรแกรมใน Python หรือ Java สามารถส่งคำสั่ง SQL และรับผลลัพธ์กลับมาได้
- ตัวประมวลผลคำสั่ง (query processor) รับคำสั่งที่เขียนด้วย SQL มาตรวจสอบกับ data-dictionary, หาวิธีที่มีประสิทธิภาพที่สุดในการรันคำสั่ง, รันคำสั่งนั้น และส่งกลับชุดผลลัพธ์
- ผู้ใช้ที่พิมพ์คำสั่งและนักพัฒนาที่สร้างฟอร์มจองเป็นผู้ใช้ DBMS คนละส่วนกัน; คนแรกใช้ผ่านตัวประมวลผลคำสั่ง ส่วนอีกคนใช้ผ่านอินเทอร์เฟซนักพัฒนา
จับคู่องค์ประกอบแต่ละตัวของ DBMS กับหน้าที่ของมัน
Difficulty 2/5 · 140 coins + a small bonus on first completion today
การรันคำถาม สร้างแอปพลิเคชัน อธิบายโครงสร้าง และการออกแบบเอง: สี่สิ่งที่แตกต่างกันที่ข้อสอบระบุแยกกัน
ตัวอย่างคำตอบ: เครื่องมือสองชนิดที่ใช้ร่วมกัน
- ฐานข้อมูลของร้านค้าถูกใช้งานโดยผู้จัดการซึ่งต้องการยอดรวมยอดขาย และโดยนักพัฒนาที่กำลังเขียนแอปพลิเคชันควบคุมสต็อก อธิบายว่าตัวประมวลผลคำสั่งและอินเทอร์เฟซนักพัฒนาถูกใช้งานอย่างไร
- ผู้จัดการเขียนหรือสร้างคำสั่งเพื่อหายอดรวมยอดขาย; ตัวประมวลผลคำสั่ง จะ parse คำสั่ง, ใช้ data-dictionary ตรวจสอบว่ามีตารางและฟิลด์อยู่จริง, เลือกวิธีที่เร็วที่สุดในการรัน, รันคำสั่ง และส่งผลลัพธ์กลับมา
- นักพัฒนาใช้ อินเทอร์เฟซนักพัฒนา: เครื่องมือสร้างฟอร์มและรายงานเพื่อสร้างหน้าจอสต็อก และใช้ API เพื่อให้โค้ดของแอปพลิเคชันสามารถส่งคำสั่ง SQL ไปยัง DBMS และรับข้อมูลกลับคืนมา
- คะแนนละสองคะแนน: เครื่องมือคืออะไร และบุคคลนี้ใช้งานมันอย่างไร
คะแนนที่หลุดหายไป
- DBMS คือซอฟต์แวร์ ไม่ใช่ข้อมูล phrase "DBMS เก็บข้อมูลลูกค้า" เป็นคำผิด; มันทำหน้าที่จัดการข้อมูลเหล่านั้น
- data-dictionary เก็บข้อมูล เกี่ยวกับ ข้อมูล: โครงสร้าง, ประเภท, คีย์, สิทธิ์ ไม่ใช่บันทึกข้อมูลเอง
- logical schema คือการออกแบบที่ ไม่ขึ้นอยู่กับพื้นที่จัดเก็บทางกายภาพ ต้องพูด phrases นี้ให้ถูกต้อง
- ความปลอดภัย (Security) คือใครมีสิทธิ์เข้าถึง; ความสมบูรณ์ของข้อมูล (Integrity) คือข้อมูลที่ถูกต้อง การสำรองข้อมูล (Backup) อยู่ในหมวดความปลอดภัย
คุณเข้าใจแล้ว
- DBMS คือซอฟต์แวร์ที่ทุกโปรแกรมต้องผ่าน: มีข้อมูลจริงเพียงหนึ่งชุด, Data independence, กฎกลาง
- การจัดการข้อมูล พร้อม data-dictionary (ข้อมูลเกี่ยวกับข้อมูล) · การสร้างแบบจำลองข้อมูล เพื่อผลิต logical schema (การออกแบบที่ไม่ขึ้นอยู่กับพื้นที่จัดเก็บ) · ความสมบูรณ์ของข้อมูล (กฎที่ถูกบังคับใช้) · ความปลอดภัยของข้อมูล (สิทธิ์เข้าถึงของผู้ใช้และกลุ่ม, รหัสผ่าน, การเข้ารหัส, การสำรองข้อมูล)
- การควบคุมความพร้อมใช้งาน (concurrency control) ด้วย locks, Transactions ที่เป็น all-or-nothing, Views ที่แสดงส่วนข้อมูลของแต่ละผู้ใช้
- เครื่องมือ: อินเทอร์เฟซนักพัฒนา สำหรับสร้างแอปพลิเคชัน, ตัวประมวลผลคำสั่ง สำหรับรัน SQL