1 สคีมาข้อมูลคืออะไร การสร้างสคีมาข้อมูล สคีมาเป็นวัตถุฐานข้อมูล

การแนะนำ

ระบบสารสนเทศ (IS) เป็นระบบประมวลผลข้อมูลใดๆ สาขาวิชาด้วยวิธีการสะสม การจัดเก็บ การประมวลผล การแปลง การส่งผ่าน การอัปเดตข้อมูลโดยใช้คอมพิวเตอร์และอุปกรณ์อื่น ๆ กระบวนการต่อไปนี้ดำเนินการใน IS:

การป้อนข้อมูลจากแหล่งภายนอกและภายใน

การประมวลผลข้อมูลขาเข้า

การจัดเก็บข้อมูลเพื่อใช้ในภายหลัง

แสดงข้อมูลในรูปแบบที่ใช้งานง่าย

พื้นฐานของ IS วัตถุในการประมวลผลคือฐานข้อมูล (DB) ฐานข้อมูลคือชุดข้อมูลเกี่ยวกับวัตถุในโลกแห่งความเป็นจริงเฉพาะในสาขาวิชาเฉพาะหรือส่วนของสาขาวิชา ดังนั้นฐานข้อมูลจึงทำหน้าที่จัดเก็บข้อมูลใน IS

ที่เก็บของในสำนักงาน ข้อมูลที่ทันสมัยเล่น บทบาทสำคัญวี งานที่มีประสิทธิภาพพนักงานของเขา พนักงานจำเป็นต้องตอบสนองคำขอจากฝ่ายบริหารอย่างรวดเร็ว (เช่น ความช่วยเหลือในการค้นหาเอกสารตามประเภทหรือตามพนักงาน) ดังนั้นฐานข้อมูลควรมีข้อมูลดังต่อไปนี้:

ข้อมูลเกี่ยวกับพนักงาน

ข้อมูลเกี่ยวกับองค์กร

ข้อมูลเกี่ยวกับเอกสาร

จำเป็นต้องมีความสะดวกสบายในการทำงาน ส่วนต่อประสานกับผู้ใช้ซึ่งให้บริการการนำเสนอ การเพิ่มเติม และการแก้ไขข้อมูล

โครงสร้างฐานข้อมูล

เซิร์ฟเวอร์อินเทอร์เฟซระบบสารสนเทศ

โมเดลฐานข้อมูลเชิงตรรกะอธิบายแนวคิดของสาขาวิชา ความสัมพันธ์ ตลอดจนข้อจำกัดเกี่ยวกับข้อมูลที่กำหนดโดยสาขาวิชา โดยไม่คำนึงถึงการใช้งานใน DBMS ที่เฉพาะเจาะจง

เครื่องมือพัฒนาหลัก โมเดลเชิงตรรกะข้อมูลเข้า ช่วงเวลาปัจจุบันเป็น ตัวเลือกต่างๆแผนภาพ ER (แผนภาพความสัมพันธ์เอนทิตี ไดอะแกรมความสัมพันธ์เอนทิตี)

รูปที่ 1 แสดงแผนภาพตรรกะของฐานข้อมูลสำหรับหัวข้อ "Office" แผนภาพแบบลอจิคัลแสดงเอนทิตีต่อไปนี้: องค์กร พนักงาน Job_Title เอกสาร Document_type คำอธิบายของเอนทิตีมีอยู่ในตารางที่ 1

รูปที่ 1 - วงจรลอจิกดีบี

ตารางที่ 1 - คำอธิบายของเอนทิตีแบบจำลองข้อมูลเชิงตรรกะ

ชื่อ

วัตถุประสงค์

อธิบายพนักงานเกี่ยวกับพนักงานขององค์กร ประกอบด้วยคุณลักษณะ: ชื่อนามสกุล ตำแหน่งที่ดำรงตำแหน่ง และองค์กรที่ทำงาน เชื่อมต่อกันด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่งกับเอนทิตี "JobTitle"

อธิบายองค์กรที่พนักงานทำงาน ประกอบด้วยแอตทริบิวต์: ชื่อ ที่อยู่ เชื่อมต่อกันด้วยความสัมพันธ์แบบหนึ่งต่อหนึ่งกับเอนทิตี "พนักงาน"

ไดเรกทอรีตำแหน่ง มีแอตทริบิวต์: ตำแหน่ง (ตำแหน่งงาน)

อธิบายเอกสารทั้งหมดและพนักงานคนไหนกำลังทำงานอยู่ ประกอบด้วยแอตทริบิวต์: ชื่อ, ประเภทเอกสาร, พนักงาน มีความสัมพันธ์แบบหนึ่งต่อหนึ่งกับเอนทิตี Employee และความสัมพันธ์แบบหนึ่งต่อหนึ่งกับเอนทิตี DocumentType

ไดเร็กทอรีของประเภทเอกสาร ประกอบด้วยแอตทริบิวต์ประเภทเอกสาร

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

รูปที่ 2 แสดงแผนภาพทางกายภาพของฐานข้อมูล แผนภาพแสดงเอนทิตีและยังระบุประเภทข้อมูลด้วย เนื่องจากเอนทิตี "Document_type" และ "Employee" เกี่ยวข้องกับเอนทิตี "Document" ในความสัมพันธ์แบบหนึ่งต่อหนึ่ง เอนทิตีการเชื่อมโยง "Document_typeDocument" และ "EmployeeDocument" จะถูกเพิ่มในไดอะแกรมทางกายภาพ เอนทิตีลิงก์ประกอบด้วย กุญแจต่างประเทศโดยจัดให้มีการสื่อสารแบบหนึ่งต่อหนึ่ง

รูปที่ 2 - แผนภาพทางกายภาพของฐานข้อมูล

การสร้างสคีมาข้อมูล

หลังจากสร้างโครงสร้างตารางฐานข้อมูลแล้ว คุณควรสร้างสคีมาข้อมูล ต้องปิดตารางฐานข้อมูลทั้งหมดก่อน สร้างหรือเปลี่ยนแปลงการเชื่อมต่อระหว่าง ตารางที่เปิดอยู่มันเป็นสิ่งต้องห้าม

การสร้างสคีมาข้อมูลเริ่มต้นในหน้าต่าง ฐานข้อมูลจากการคัดเลือกทีม สคีมาข้อมูลบริการ- หลังจากดำเนินการคำสั่งที่ระบุ หน้าต่างสองบานจะเปิดขึ้น: สคีมาข้อมูลและ การเพิ่มตารางหน้าต่างทำงานอยู่ การเพิ่มตาราง(รูปที่ 12) ซึ่งคุณสามารถเลือกตารางที่รวมอยู่ในสคีมาข้อมูลได้

ข้าว. 12. สองหน้าต่าง: Data Schema และ Add Table

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

เมื่อกำหนดการเชื่อมต่อในสคีมาข้อมูล จะสะดวกในการใช้แบบจำลองสารสนเทศเชิงตรรกะ ซึ่งง่ายต่อการกำหนดตารางหลักและตารางรองของความสัมพันธ์แบบหลายค่าเดี่ยวแต่ละค่า เนื่องจากในแบบจำลองดังกล่าววัตถุหลักจะถูกวางไว้เสมอ เหนือผู้ใต้บังคับบัญชา การเชื่อมต่อแบบค่าเดียวเป็นการเชื่อมต่อพื้นฐาน ฐานข้อมูลเชิงสัมพันธ์ข้อมูล.

ในการสร้างความสัมพันธ์ประเภท 1:M ระหว่างคู่ของตาราง คุณต้องเลือกฟิลด์คีย์ในตารางหลัก (ชื่อของฟิลด์นี้ในไดอะแกรมข้อมูลจะแสดงเป็นตัวหนา) ที่ใช้สร้างการเชื่อมต่อและในขณะที่กดค้างไว้ กดปุ่มเมาส์ลง เลื่อนตัวชี้เมาส์ไปยังฟิลด์ที่เกี่ยวข้องของตารางรอง

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

ข้าว. 13. ลิงค์แก้ไขหน้าต่าง

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

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

การตรวจสอบความสมบูรณ์ของข้อมูลที่สอดคล้องกันหมายความว่าเมื่อทำการอัพเดตฐานข้อมูล เข้าถึงข้อมูลให้การควบคุมการปฏิบัติตามเงื่อนไขต่อไปนี้สำหรับตารางที่เกี่ยวข้อง:

บันทึกที่มีค่าคีย์ลิงก์ที่ไม่มีอยู่ในตารางหลักไม่สามารถเพิ่มลงในตารางย่อยได้

คุณไม่สามารถลบบันทึกในตารางหลักได้ เว้นแต่บันทึกที่เกี่ยวข้องในตารางย่อยจะถูกลบออก

คุณไม่สามารถเปลี่ยนค่าของคีย์ความสัมพันธ์ในบันทึกตารางหลักได้ หากมีบันทึกที่เกี่ยวข้องกับคีย์ความสัมพันธ์ในตารางลูก

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

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

ฟิลด์ที่กำลังเชื่อมโยงมีประเภทข้อมูลเหมือนกัน

ทั้งสองตารางถูกเก็บไว้ในฐานข้อมูลเดียวกัน

ตารางหลักเชื่อมโยงกับตารางลูกโดยใช้คีย์หลักแบบง่ายหรือคีย์ผสมของตารางหลัก

Access ไม่อนุญาตให้คุณเลือกช่องทำเครื่องหมายความสมบูรณ์ของข้อมูลสำหรับลิงก์ตาราง หากตารางเคยถูกป้อนด้วยข้อมูลที่ไม่ตรงตามข้อกำหนดด้านความสมบูรณ์

หากลิงก์ที่เลือกยังคงความสมบูรณ์ไว้ คุณสามารถตั้งค่าได้ การอัปเดตแบบเรียงซ้อนของสาขาที่เกี่ยวข้องและโหมด การลบน้ำตกบันทึกที่เกี่ยวข้อง.

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

ในโหมดคาสเคดสำหรับการลบเรคคอร์ดที่เกี่ยวข้อง เมื่อคุณลบเรคคอร์ดออกจากตารางหลัก เรคคอร์ดที่เกี่ยวข้องทั้งหมดในตารางรองจะถูกลบโดยอัตโนมัติ เมื่อลบบันทึกโดยตรงในตารางหรือผ่านแบบฟอร์ม คำเตือนเกี่ยวกับความเป็นไปได้ในการลบบันทึกที่เกี่ยวข้องจะปรากฏขึ้น

ผลลัพธ์ความสัมพันธ์ระหว่างตารางจะแสดงในหน้าต่าง สคีมาข้อมูลในรูปแบบของเส้นเชื่อมต่อสองช่องของตารางที่แตกต่างกัน ในกรณีนี้ สัญลักษณ์จะปรากฏบนสายสื่อสารใกล้กับโต๊ะหลัก - 1 ตารางรองมีสัญลักษณ์อนันต์ ( ¥ ) (รูปที่ 14) .

ข้าว. 14. สคีมาข้อมูล การเชื่อมโยงสองตารางโดยใช้คีย์ฟิลด์รหัสซัพพลายเออร์

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

สคีมาเป็นโครงสร้างฐานข้อมูล

ออบเจ็กต์หลักของสคีมาคือตารางและความสัมพันธ์

สคีมาเป็นวัตถุฐานข้อมูล

มีแนวคิดอีกอย่างหนึ่งของสคีมาในทฤษฎีฐานข้อมูล

ใน Oracle นั้นมีความเชื่อมโยงกับผู้ใช้เพียงคนเดียว (USER) และเป็น ชุดตรรกะวัตถุฐานข้อมูล สคีมาจะถูกสร้างขึ้นเมื่อผู้ใช้สร้างออบเจ็กต์แรก และออบเจ็กต์ต่อมาทั้งหมดที่สร้างโดยผู้ใช้นั้นจะกลายเป็นส่วนหนึ่งของสคีมานั้น

อาจรวมถึงวัตถุอื่น ๆ ที่เป็นของผู้ใช้รายนี้:

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

นอกจากนี้ยังมีออบเจ็กต์ย่อยสคีมา เช่น:

  • คอลัมน์: ตารางและมุมมอง
  • ส่วนของตาราง
  • ข้อจำกัดด้านความสมบูรณ์
  • ทริกเกอร์
  • ขั้นตอนและฟังก์ชันแบทช์และองค์ประกอบอื่น ๆ ที่จัดเก็บไว้ในแบทช์ (เคอร์เซอร์ ประเภท ฯลฯ )

มีอ็อบเจ็กต์ที่ไม่ขึ้นกับสคีมา

  • แคตตาล็อก,
  • โปรไฟล์,
  • บทบาท
  • เซ็กเมนต์
  • พื้นที่โต๊ะ
  • ผู้ใช้

ระดับสคีมาฐานข้อมูล

  • แผนภาพแนวคิด - แผนที่ของแนวคิดและความเชื่อมโยง
  • แผนภาพลอจิก - แผนที่ของเอนทิตีและคุณลักษณะและความสัมพันธ์
  • วงจรฟิสิคัล - การใช้งานบางส่วนของวงจรลอจิคัล
  • สคีมาวัตถุ - วัตถุฐานข้อมูล Oracle

หมายเหตุ

ดูเพิ่มเติม

  • การสร้างแบบจำลองข้อมูล

มูลนิธิวิกิมีเดีย

2010.

    ดูว่า "Database Schema" ในพจนานุกรมอื่นๆ คืออะไร:สคีมาฐานข้อมูล - 53. แผนภาพฐานข้อมูล รูปแบบพื้นฐาน คำอธิบายของฐานข้อมูลในบริบทรุ่นเฉพาะ

    แหล่งข้อมูล: GOST 20886 85: การจัดระเบียบข้อมูลในระบบประมวลผลข้อมูล ข้อกำหนดและคำจำกัดความ...แผนภาพฐานข้อมูลเชิงแนวคิด

    - แผนภาพแนวคิด สคีมาฐานข้อมูลที่กำหนดการแสดงฐานข้อมูลที่เหมือนกันสำหรับแอปพลิเคชันทั้งหมด และไม่ขึ้นอยู่กับการแสดงข้อมูลในสภาพแวดล้อมการจัดเก็บและเส้นทางการเข้าถึงที่ใช้ในระบบการจัดการฐานข้อมูลแผนภาพฐานข้อมูลเชิงแนวคิด - 56. แผนภาพฐานข้อมูลเชิงแนวคิด แผนภาพเชิงแนวคิด เชิงแนวคิดโครงการ ฐานข้อมูล ซึ่งกำหนดมุมมองของฐานข้อมูลที่เหมือนกันสำหรับแอปพลิเคชันทั้งหมด และไม่ขึ้นอยู่กับที่ใช้ในระบบการจัดการฐานข้อมูล... ...

    หนังสืออ้างอิงพจนานุกรมเกี่ยวกับเอกสารเชิงบรรทัดฐานและทางเทคนิคสคีมาฐานข้อมูลภายนอก - สคีมาภายนอก สคีมาฐานข้อมูลที่ดูแลโดยระบบการจัดการฐานข้อมูลสำหรับแอปพลิเคชัน [GOST 20886 85] หัวข้อ: การจัดระเบียบข้อมูลในระบบ กำลังประมวลผล ข้อมูล คำพ้องความหมายรูปแบบภายนอก EN รูปแบบภายนอก ...

    คู่มือนักแปลด้านเทคนิค - 54. สคีมาฐานข้อมูลภายนอกวงจรภายนอก ฐานข้อมูล ซึ่งกำหนดมุมมองของฐานข้อมูลที่เหมือนกันสำหรับแอปพลิเคชันทั้งหมด และไม่ขึ้นอยู่กับที่ใช้ในระบบการจัดการฐานข้อมูล... ...

    ฐานข้อมูล รูปแบบภายนอก รูปแบบภายนอก รูปแบบฐานข้อมูลที่รองรับโดยระบบการจัดการฐานข้อมูลสำหรับแอปพลิเคชัน ที่มา: GOST 20886 85: การจัดระเบียบข้อมูลในระบบประมวลผลข้อมูล ข้อกำหนดและคำจำกัดความ...สคีมาฐานข้อมูลภายใน - สคีมาภายนอก สคีมาฐานข้อมูลที่ดูแลโดยระบบการจัดการฐานข้อมูลสำหรับแอปพลิเคชัน [GOST 20886 85] หัวข้อ: การจัดระเบียบข้อมูลในระบบ กำลังประมวลผล ข้อมูล คำพ้องความหมายรูปแบบภายนอก EN รูปแบบภายนอก ...

    - สคีมาภายใน สคีมาฐานข้อมูลที่กำหนดการนำเสนอข้อมูลในสภาพแวดล้อมการจัดเก็บข้อมูลและเส้นทางในการเข้าถึง [GOST 20886 85] หัวข้อ: การจัดระเบียบข้อมูลในระบบ กำลังประมวลผล ข้อมูล คำพ้องความหมาย โครงการภายใน EN โครงการภายใน ... - 55. สคีมาฐานข้อมูลภายในวงจรภายใน ฐานข้อมูล ซึ่งกำหนดมุมมองของฐานข้อมูลที่เหมือนกันสำหรับแอปพลิเคชันทั้งหมด และไม่ขึ้นอยู่กับที่ใช้ในระบบการจัดการฐานข้อมูล... ...

    ฐานข้อมูลโครงร่างภายในโครงร่างภายในโครงร่างฐานข้อมูลที่กำหนดการนำเสนอข้อมูลในสภาพแวดล้อมการจัดเก็บข้อมูลและเส้นทางในการเข้าถึงแหล่งที่มา: GOST 20886 85: การจัดระเบียบข้อมูลในระบบประมวลผลข้อมูล เงื่อนไขและ...... ฐานข้อมูลแบบกระจาย (RDB) คือชุดของฐานข้อมูลที่เชื่อมต่อกันทางตรรกะซึ่งกระจายมา- หลักการพื้นฐาน RDB ประกอบด้วยชุดของโหนดที่เชื่อมต่อกัน เครือข่ายการสื่อสารโดยที่: ก) แต่ละโหนดเป็น DBMS เต็มรูปแบบ ... Wikipedia

    บทความนี้ไม่มีลิงก์ไปยังแหล่งข้อมูล ข้อมูลจะต้องสามารถตรวจสอบได้ มิฉะนั้นอาจถูกซักถามและลบทิ้ง คุณสามารถ... วิกิพีเดีย

    แผนภาพแบบลอจิคัลคือแบบจำลองข้อมูลของประเด็นปัญหาเฉพาะ ซึ่งแสดงในแง่ของเทคโนโลยีการจัดการข้อมูล โดยไม่ต้องเป็นผลิตภัณฑ์ของทฤษฎีการจัดการฐานข้อมูลโดยเฉพาะ มันดำเนินการด้วยคำศัพท์และแนวคิดหรือตารางเชิงสัมพันธ์และ... ... Wikipedia

หนังสือ

  • การออกแบบฐานข้อมูลเชิงตรรกะ E. A. Morozov งานนี้เน้นไปที่ปัญหาการออกแบบฐานข้อมูล การพิจารณาขั้นตอนหนึ่งของการออกแบบคือขั้นตอน การออกแบบเชิงตรรกะในระหว่างการดำเนินการซึ่งมีการพัฒนาโครงการ...

บางครั้งฉันก็ดูที่ Toster.ru และบางครั้งก็ตอบคำถามที่นั่นด้วย บ่อยครั้งที่ผู้คนถามสองสิ่ง - จะเป็นโปรแกรมเมอร์ได้อย่างไรและจะออกแบบสคีมาฐานข้อมูลได้อย่างไร โดยส่วนตัวแล้วฉันพบว่ามันแปลกมากที่มีคนถามคำถามสุดท้ายมากมาย ด้วยเหตุผลบางอย่าง ฉันคิดเสมอว่ามันเป็นแบบนี้ สิ่งง่ายๆซึ่งใครๆก็ทำได้ แต่เนื่องจากมีผู้สนใจจำนวนมาก ฉันจะพยายามให้คำตอบที่ละเอียดพอสมควรและในเวลาเดียวกัน

ฉันถือว่าคุณรู้จัก SQL นั่นคือไม่จำเป็นต้องอธิบายว่าตาราง แถว ดัชนี คีย์หลัก และ Referential Integrity คืออะไร หากไม่เป็นเช่นนั้น ฉันเกรงว่าจะต้องแนะนำคุณเกี่ยวกับวรรณกรรมที่เกี่ยวข้อง โชคดีที่ตอนนี้มีเยอะมาก

วาดแผนภาพ

สมมติว่าคุณต้องการออกแบบสคีมาฐานข้อมูลที่เก็บข้อมูลเกี่ยวกับศิลปินเพลง อัลบั้ม และเพลง บน ระยะเริ่มแรกเมื่อเรายังไม่มีอะไรเลยก็สะดวกที่จะเริ่มด้วยการวาดไดอะแกรมของโครงการในอนาคต คุณสามารถเริ่มต้นด้วยการร่างด้วยปากกาบนกระดาษหรือใช้โปรแกรมแก้ไขพิเศษได้ทันที ตอนนี้มีเยอะมากครับ จัดเรียงค่อนข้างคล้ายกัน ในการเตรียมบันทึกนี้ ฉันใช้ DbSchema นี้ โปรแกรมที่ต้องชำระเงินแต่ฉันคิดว่ามันคุ้มค่าเงิน นอกจากนี้ บริษัทปกติมักจะจ่ายค่าซอฟต์แวร์ที่จำเป็นสำหรับงานนี้ ระยะเวลาทดลองใช้งาน DbSchema (หากมี) คือสองสัปดาห์

ฉันใช้เวลาประมาณสิบนาทีในการวาดไดอะแกรมต่อไปนี้:

หากคุณไม่เคยทำงานกับไดอะแกรมดังกล่าวมาก่อนอย่าตกใจไปทุกอย่างนั้นง่าย สี่เหลี่ยมคือตาราง แถวในสี่เหลี่ยมคือชื่อของคอลัมน์ ลูกศรระบุคีย์นอก และคีย์ระบุคีย์หลัก หากคุณต้องการคุณสามารถดูดัชนีประเภทคอลัมน์และต้องกรอกหรือไม่ (null / ไม่ใช่ null) แต่สำหรับเราตอนนี้สิ่งนี้ไม่สำคัญนัก

สร้าง SQL และป้อนเข้า DBMS

มันง่ายที่จะเห็นว่า แผนภาพนี้แมปเข้ากับโค้ดได้อย่างง่ายดายเพื่อสร้างสคีมาฐานข้อมูล ภาษา SQL- ใน DbSchema คุณสามารถสร้าง SQL ได้โดยพูดว่า Schema → Generate Schema และ Data Script จากนั้นสคริปต์ผลลัพธ์สามารถป้อนไปยัง DBMS ที่คุณใช้:

เพลงแมว.sql |

psql -hlocalhost test_database test_user

ฉันใช้ PostgreSQL คุณจะพบข้อมูลเกี่ยวกับวิธีการติดตั้ง DBMS นี้ในหมายเหตุนี้

แล้วอะไรเป็นแนวทางให้ฉันในการออกแบบวงจร?

แบบฟอร์มปกติ กระบวนการกำจัดความซ้ำซ้อนและความไม่สอดคล้องกันในฐานข้อมูลเรียกว่าการทำให้เป็นมาตรฐาน

- มีสิ่งที่เรียกว่ารูปแบบปกติ ซึ่งในทางปฏิบัติแทบไม่มีใครจำได้มากกว่าสามรูปแบบแรก โดยคร่าวแล้ว ตารางจะอยู่ในรูปแบบ First Normal (1NF) หากมีค่าเพียงค่าเดียวที่จุดตัดของแถวและคอลัมน์ใดๆ ในตาราง ใน RDBMS สมัยใหม่ เงื่อนไขนี้จะเป็นไปตามเสมอ แม้ว่า DBMS จะรองรับชุดหรืออาร์เรย์ แต่ค่าชุดหรืออาร์เรย์เพียงชุดเดียวจะถูกเก็บไว้ที่จุดตัดของแถวและคอลัมน์ แต่อยู่บนโต๊ะ.(ผู้ใช้ varchar (100), จำนวนเต็มโทรศัพท์)

ไม่สามารถมีบรรทัด alex - 1234, 5678 ได้ ใน 1NF สามารถมีได้เพียงสองพจน์ - alex - 1234 และ alex - 5678 รูปแบบปกติที่สอง (2NF) หมายความว่าตารางอยู่ในรูปแบบปกติรูปแบบแรกและแอตทริบิวต์ที่ไม่ใช่คีย์ทุกรายการลดไม่ได้

ขึ้นอยู่กับค่าของคีย์หลัก การลดไม่ได้หมายถึงสิ่งต่อไปนี้ หากคีย์หลักประกอบด้วยแอตทริบิวต์เดียว การพึ่งพาการทำงานใดๆ ก็ตามจะลดน้อยลงไม่ได้ หากคีย์หลักเป็นแบบผสม ตารางจะไม่สามารถมีแอตทริบิวต์ที่มีค่าถูกกำหนดโดยไม่ซ้ำกันโดยค่าของชุดย่อยของแอตทริบิวต์คีย์หลัก ตารางอยู่ในรูปแบบปกติที่สามหากอยู่ใน 2NF และไม่มีแอตทริบิวต์ที่ไม่ใช่คีย์อยู่ในรูปแบบสกรรมกริยาการพึ่งพาการทำงาน จากคีย์หลัก ตัวอย่างเช่น พิจารณาตาราง (พนักงาน varchar(100)คีย์หลัก- แน่นอนว่ามันอยู่ใน 2NF แต่หมายเลขโทรศัพท์ของแผนกอยู่ในฟังก์ชันสกรรมกริยาที่ขึ้นอยู่กับชื่อของพนักงาน เนื่องจากพนักงานระบุแผนกโดยไม่ซ้ำกัน และแผนกจะระบุหมายเลขโทรศัพท์ของแผนกโดยไม่ซ้ำกัน หากต้องการแปลงตารางเป็น 3NF คุณต้องแบ่งออกเป็นสองตาราง - พนักงาน - แผนกและแผนก - โทรศัพท์

จะเห็นได้ง่ายว่าการทำให้เป็นมาตรฐานจะช่วยลดความซ้ำซ้อนของฐานข้อมูลและป้องกันการเกิดข้อผิดพลาดแบบสุ่ม ตัวอย่างเช่น หากคุณออกจากตารางจากตัวอย่างล่าสุดใน 2NF คุณสามารถมอบหมายตารางให้กับแผนกเดียวกันโดยไม่ตั้งใจได้ โทรศัพท์ที่แตกต่างกัน- หรือพิจารณาบริษัทที่มีห้าแผนกและพนักงาน 1,000 คน หากหมายเลขโทรศัพท์ของแผนกมีการเปลี่ยนแปลง คุณต้องอัปเดตในฐานข้อมูล ในกรณีของ 2NF คุณจะต้องสแกน 1,000 แถว และในกรณีของ 3NF จะสแกนเพียง 5 แถวเท่านั้น

สคีมาข้อมูล

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

ในสคีมาข้อมูลฐานข้อมูลมาตรฐานซึ่งอิงตามความสัมพันธ์แบบหนึ่งต่อหนึ่งและแบบหนึ่งต่อกลุ่มระหว่างตาราง สามารถตั้งค่าพารามิเตอร์การจัดเตรียมเพื่อเชื่อมโยงตารางเหล่านั้นด้วยดัชนีเฉพาะบนตารางหลักหรือคีย์หลัก ความสมบูรณ์ที่สอดคล้องกัน.

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

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

คุณสามารถสร้างความสัมพันธ์ในสคีมาข้อมูลสำหรับคู่ของตารางใดๆ ที่มีเขตข้อมูลเดียวกัน ซึ่งช่วยให้สามารถรวมข้อมูลตารางได้

สคีมาข้อมูลจะปรากฏในบานหน้าต่างนำทางของหน้าต่างฐานข้อมูลเฉพาะในโครงการ Access ที่ทำงานกับฐานข้อมูลเซิร์ฟเวอร์ เมื่อต้องการแสดงสคีมาข้อมูลในฐานข้อมูล Access ให้ใช้คำสั่ง สคีมาข้อมูล, โพสต์ในกลุ่ม ความสัมพันธ์บนแท็บ การทำงานกับฐานข้อมูล.

ตัวอย่างที่ 1

ลองพิจารณาแบบจำลองข้อมูลของหัวข้อ “การจัดหาสินค้า” (รูปที่ 1) สคีมาข้อมูล Access ที่สร้างขึ้นสำหรับโมเดลข้อมูลนี้จะแสดงอยู่ในรูปที่ 2

ในแผนภาพนี้ ตารางฐานข้อมูลพร้อมรายการเขตข้อมูลจะแสดงในรูปแบบของสี่เหลี่ยม และความสัมพันธ์จะแสดงเขตข้อมูลที่ตารางเชื่อมต่อถึงกัน ชื่อของฟิลด์สำคัญจะถูกเน้นเพื่อความชัดเจนและอยู่ที่ด้านบน รายการทั้งหมดเขตข้อมูลของแต่ละตาราง

คุณสมบัติสคีมาข้อมูล

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

การใช้ความสัมพันธ์ระหว่างตารางจะรวมข้อมูลจากตารางต่างๆ ซึ่งจำเป็นในการแก้ปัญหาต่างๆ ในการป้อน ปรับและดูข้อมูล รับข้อมูลจากแบบสอบถาม และสร้างรายงาน การเชื่อมต่อตารางถูกสร้างขึ้นตามโครงการ โครงสร้างเชิงตรรกะของฐานข้อมูลที่ต้องการ (รูปที่ 2) และแสดงบนไดอะแกรมข้อมูล Access

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