ใครเป็นผู้ออกแบบฐานข้อมูลในการพัฒนาเว็บ? [ปิด]


10

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

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

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


2
มันขึ้นอยู่กับองค์กรและแผนกและโครงสร้างที่ใช้ - จากประสบการณ์ของฉันมักจะเป็นนักพัฒนาส่วนหลัง / สถาปนิกด้านโซลูชันและถ้ามีแผนกฐานข้อมูลที่เกี่ยวข้องกับ DBA หรือผู้พัฒนาฐานข้อมูลเฉพาะ
อัลลันเอส. แฮนเซน

what those field specifications areถ้าโครงการของคุณมีสเป็คคุณควรระบุโมเดลของคุณได้
Walfrat

1
ฉันจะบอกว่าวันนี้ทุกกรอบที่คุณใช้กำหนดการออกแบบฐานข้อมูลของคุณ
Pieter B

คำตอบ:


17

คำถามของคุณไม่เพียง แต่เกี่ยวข้องกับ webapps เท่านั้น แต่ยังรวมถึงแอพทุกประเภทที่ใช้แบ็กเอนด์ฐานข้อมูล

จากประสบการณ์ของฉัน

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

ด้านล่างบรรทัด:

  • นักพัฒนาทราบดีว่าธุรกิจและโดเมนปัญหานั้นดีกว่า DBAs มากนักดังนั้นพวกเขาจึงทำการออกแบบเบื้องต้นเป็นส่วนใหญ่และขึ้นอยู่กับประสบการณ์ของนักพัฒนาเช่นการออกแบบนั้นจะใกล้เคียงกับการออกแบบขั้นสุดท้าย
  • บทบาทของ DBA นั้นส่วนใหญ่เพื่อให้แน่ใจว่า NF ข้อตกลงการตั้งชื่อการพิจารณาประสิทธิภาพการทำงานเพื่อแก้ไขข้อผิดพลาดที่เห็นได้ชัดและสุดท้ายเพื่อสร้างแบบจำลองทางกายภาพจากนั้นสคริปต์เฉพาะฐานข้อมูลและเรียกใช้สิ่งเหล่านี้เพื่อสร้างฐานข้อมูล
  • ฉันว่ามันเป็นนักพัฒนาและการวิเคราะห์ความต้องการ 80% และงาน DBA 20%

UPDATE:

DBAs มี 3 ชนิด:

  • การพัฒนา DBAs ที่รู้การสร้างแบบจำลองข้อมูลเป็นผู้เชี่ยวชาญด้าน SQL และสามารถเขียนขั้นตอนการจัดเก็บพวกเขามักจะเป็นอดีตนักพัฒนา;
  • DBA ที่ใช้ในการผลิตซึ่งมีความเชี่ยวชาญในการติดตั้งการปรับแต่งประสิทธิภาพการสำรองข้อมูลและการกู้คืนเป็นต้น
  • และ Jack-of-all-trades DBAs ที่ทำงานได้ทำทุกสิ่งเหล่านั้นและเป็นเช่นนั้นสามารถทำได้มากที่สุด (พวกเขามีน้อยมาก)

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


2
นี่คือการพิจารณาว่าคุณมี DBA ที่สามารถทำเช่นนี้ได้ฉันและฉันที่ไหนมาก่อนก็ไม่มีใครช่วยได้
Walfrat

2
@ วอลแรตคุณพูดถูก มี DBA อยู่สามประเภทด้วยกัน: การพัฒนา DBA ที่ตอนนี้การสร้างแบบจำลองข้อมูลเป็นผู้เชี่ยวชาญด้าน SQL และสามารถเขียนขั้นตอนการจัดเก็บ; การผลิต DBA ที่มีความเชี่ยวชาญในการติดตั้งการปรับแต่งประสิทธิภาพการสำรองข้อมูลและการกู้คืน ฯลฯ และ DBA ที่ทำงานได้ทุกอย่างที่ทำสิ่งเหล่านั้นและสามารถทำได้มากที่สุด น่าเศร้าที่ DBA ส่วนใหญ่เป็นเพียง DBA ที่ใช้ในการผลิตเท่านั้น
Tulains Córdova

9
คุณลืม "เราไม่สามารถจ่ายได้ -a-DBA" ที่ร้านค้ามีขนาดเล็กจนนักพัฒนาบางคนรักษาฐานข้อมูลไว้ด้านข้าง นั่นเป็นเรื่องธรรมดามากเช่นกัน
Sebastian Redl

1
"NF" หมายถึงอะไร
BЈовић

1
แบบฟอร์มปกติดูวิกิพีเดียด้วย
ศุกร์ที่

4

ขึ้นอยู่กับฐานข้อมูลที่ใช้

ในหลายแอปพลิเคชัน (เว็บแอปพลิเคชันหรือไม่) ฐานข้อมูลจะเชื่อมโยงกับแอปพลิเคชันนั้นอย่างใกล้ชิดเพราะทำหน้าที่เป็นที่จัดเก็บข้อมูลแบบถาวร จากนั้นฐานข้อมูลเป็นส่วนหนึ่งของแอปพลิเคชั่นที่ออกแบบเพื่อความคิดร่วมกัน (และคุณคิดว่าไม่มีโปรแกรมอื่นใดที่จะเข้าถึงหรืออัพเดทฐานข้อมูลนั้นได้อย่างมีนัยสำคัญ ) BTW, การคงอยู่สามารถทำได้โดยวิธีอื่นนอกเหนือจากฐานข้อมูลเช่นไฟล์ข้อความธรรมดา, ไฟล์ไบนารี (ไฟล์ที่จัดทำดัชนีสะดุดตาà la GDBM ), git (หรือ VCS อื่น ๆ ) ที่เก็บไดเรกทอรีหรือต้นไม้ไฟล์พาร์ติชันดิสก์ดิบฮาร์ดแวร์เฉพาะ (เช่น แฟลช) ระบบไฟล์ระยะไกลจุดตรวจเทคนิค สำหรับฐานข้อมูลที่ออกแบบมาสำหรับแอพพลิเคชั่นเดียวคุณควรใส่ใจเกี่ยวกับรูปแบบการดึงและอัพเดตทั่วไปและออกแบบคีมาฐานข้อมูล (และการทำดัชนี!) โดยคำนึงถึงพวกเขา

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

โดยเฉพาะเว็บแอปบางตัวเป็นเพียงส่วนต่อประสานกับเว็บไปยังฐานข้อมูลที่มีอยู่

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

ฉันรู้ว่าการออกแบบ (PROPER) ของฐานข้อมูลไม่ใช่เรื่องเล็ก ๆ ...

อ่านยังเกี่ยวกับNoSQL , ฐานข้อมูลเอกสารที่มุ่งเน้น , ฐานข้อมูลค่าคีย์ , การจัดการความรู้ , การแทนความรู้ , จี , ระบบผู้เชี่ยวชาญ , กฎเกณฑ์ทางธุรกิจเข้าใกล้ , ERP , CMS อาจลองใช้REDIS , MongoDBเป็นต้น


ไม่แน่ใจ. ฉันไม่ได้ทำ ขอบคุณสำหรับลิงค์เหล่านี้ไม่กี่ครั้งล่าสุด!
the_endian

IMHO ลิงก์ในย่อหน้าแรกนั้นควรค่าแก่การอ่านเช่นกัน
Basile Starynkevitch

ใช่ฉันไม่แน่ใจว่าทำไม แต่ดูเหมือนว่าสิ่งนี้ไม่ได้ "ครอบคลุม" เกือบเท่าในหลักสูตรนักพัฒนาซอฟต์แวร์เท่าที่ควร จนถึงจุดที่ฉันแน่ใจว่ามีบางแฮ็คข้อมูลฐานข้อมูลร้ายแรงเกิดขึ้นที่นั่นในเว็บ dev พวกเขาสอนวิธีใช้ DBMS แต่ไม่มากเกี่ยวกับสิ่งที่เราพูดถึงที่นี่
the_endian

@TeeSee ฉันมั่นใจได้ว่ามันไม่ใช่แค่เว็บ dev ที่มีงานแฮ็คที่ร้ายแรงเกิดขึ้นกับฐานข้อมูล แต่ใช่มีจำนวนมากที่เกิดขึ้นโดยทั่วไปด้วยเหตุผลทางธุรกิจเช่นการรักษาต้นทุนเริ่มต้นลง (ลืมเกี่ยวกับการบำรุงรักษาและหนี้ทางเทคนิค)
gabe3886
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.