ฐานข้อมูลเชิงสัมพันธ์คืออะไร? [ปิด]


9

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

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


2
ไม่แน่ใจว่าข้อผิดพลาดของเซิร์ฟเวอร์เป็นสถานที่ที่เหมาะสมสำหรับคำถามนี้ แต่ก็มีประโยชน์ บางทีDBA.SEหรือProgrammers.SE
Orbling

1
ทำไมเจ้านายของคุณถามคำถามเช่นนี้และที่สำคัญกว่านั้นมันเกี่ยวข้องกับการบริหารระบบอย่างไร
John Gardeniers

1
@John Gardeniers, อาจเป็นเพราะที่นี่ 'ผู้ดูแลระบบ' หลายคนสวมหมวก 'การบริหารฐานข้อมูล' ซึ่งหมายความว่าพวกเขามีความเข้าใจที่ดีว่า RDBMS ทำงานอย่างไร สำหรับสาเหตุที่ผู้บังคับบัญชาถามคำถามพวกเขาใครจะรู้ แต่การรู้วิธีการสื่อสารแนวคิดที่ชัดเจนเป็นสิ่งที่ดี IMO
Zoredache

1
@Zoredache ในงานของฉันฉันสวมหมวกหลายใบ นั่นไม่ได้หมายความว่าพวกเขาทั้งหมดอยู่ในหัวข้อของ SF
John Gardeniers

คำตอบด้านล่างนั้นดีมาก แต่โปรดจำไว้ว่าคุณสามารถมีฐานข้อมูลที่ไม่เกี่ยวข้อง (เช่น btrieve) และยังคงรักษาความสัมพันธ์ระหว่างข้อมูลที่เป็นมาตรฐานผ่านแอปพลิเคชันตรรกะที่เหมาะสม
Mark Henderson

คำตอบ:


16

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

การทำให้เป็นมาตรฐานคือการกระทำที่ไม่มีความสัมพันธ์ที่ซับซ้อน: "ทำให้ทุกอย่างง่ายที่สุดเท่าที่จะทำได้ แต่ไม่ง่ายกว่า" (Alan Perlis) บางครั้ง "... แต่ไม่เรียบง่าย" หมายความว่าเราจะไม่เก็บสิ่งต่าง ๆ ที่ปรับให้เป็นมาตรฐานอย่างสมบูรณ์เพราะ "เรียบง่าย" กลายเป็นเรื่องที่ซับซ้อนมากขึ้น (คุณสามารถได้รับสถานะจากรหัสไปรษณีย์ แต่ทำไมต้องกังวล)


10

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

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

ดูบทความเกี่ยวกับการฟื้นฟูฐานข้อมูล http://en.wikipedia.org/wiki/Database_normalization


4

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

ประการที่สองคือ RDBMSs ใช้ความคิดของการทำธุรกรรมคุณสมบัติของกรด

  • atomicity,
  • สอดคล้อง
  • ความเหงาและ
  • ความทนทาน

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


3

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


1

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

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

คนส่วนใหญ่ไม่เข้าใจว่าทำไมความถูกต้องจึงมีความสำคัญ - หมายความว่าบั๊กมีโอกาสน้อยที่จะได้รับการแนะนำในการพัฒนาวิธีแก้ปัญหา - และ (e.hg) โปรแกรมเมอร์ที่แตกต่างกัน 2 คนทำงานในพื้นที่ใกล้เคียงกัน

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

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


1

100% ไม่ใช่คำตอบทางเทคนิค:

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

สมมติว่าฐานข้อมูลสำหรับร้านขายสัตว์เลี้ยง ร้านค้ามีสินค้ามีลูกค้าและมียอดขาย ถ้าเราจะใส่มันลงใน Excel คุณสามารถมีคอลัมน์นี้ได้:

ชื่อลูกค้า | หมายเลขโทรศัพท์ลูกค้า ที่อยู่ลูกค้า รายการที่ซื้อ ราคา | วันที่

ลูกค้ารายแรก Mrs Smith ซื้ออาหารแมว:

ชื่อลูกค้า | หมายเลขโทรศัพท์ลูกค้า ที่อยู่ลูกค้า รายการที่ซื้อ ราคา | วันที่
Mrs Smith | 123-555-1234 | 10 Main St | อาหารแมว $ 15 | 2011-03-11

และจากนั้นนางสมิ ธ ก็ต้องการของเล่นแมวเช่นกัน:

ชื่อลูกค้า | หมายเลขโทรศัพท์ลูกค้า ที่อยู่ลูกค้า รายการที่ซื้อ ราคา | วันที่
Mrs Smith | 123-555-1234 | 10 Main St | อาหารแมว $ 15 | 2011-03-11
Mrs Smith | 123-555-1234 | 10 Main St | ของเล่นแมว $ 1 | 2011-03-11

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

ด้วยฐานข้อมูลเราสามารถมีเอนทิตีที่แยกต่างหากสามรายการ ได้แก่ ลูกค้า (พร้อมข้อมูล) รายการ (พร้อมคำอธิบายและราคา) และการขาย (ลิงก์ระหว่างลูกค้าและรายการพร้อมวันที่และปริมาณ)


นอกจากนี้สิ่งนี้สำคัญมากที่ต้องพูดถึง: pinaldave.com/blogfolder/dilbert5.jpg
MPelletier

1

คำตอบทางเทคนิคที่ดีบางอย่างที่นี่ แต่เจ้านายฉันจะไม่เข้าใจเลย!

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

และตัวอย่าง - '.... เช่นชื่อลิงก์ของคุณไปยังที่อยู่ซึ่งอาจเชื่อมโยงไปยังเมืองของคุณ'

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

และจบด้วยคำแถลงความน่าเชื่อถือ - 'ฐานข้อมูลเชิงสัมพันธ์มีมานานหลายปีแล้วเป็นเทคโนโลยีที่โตเต็มที่ ผลิตภัณฑ์เฉพาะของเราคือ [ชื่อผลิตภัณฑ์ที่นี่] '


0

เจ้านายของฉันคือ DBA แต่ในแง่คนธรรมดา:

คิดถึงสองตารางใน Excel และฟังก์ชัน LOOKUP เพื่ออ้างอิงรายการในตารางหนึ่งไปยังอีกตารางหนึ่ง ตอนนี้ขยายขนาดอย่างน้อย 10 ปัจจัย

นั่นเป็นเรื่องเกี่ยวกับระดับคอมพิวเตอร์ของคนบางคนและการทำงาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.