RDBMS จะถูกพิจารณาว่าเป็นแฟชั่นได้อย่างไร?


11

ทำให้คอมพิวเตอร์ A-level ของฉันเสร็จในปี 2003 และได้รับปริญญาทางคอมพิวเตอร์ในปี 2007 และเรียนรู้การค้าของฉันใน บริษัท ที่มีการใช้งาน SQL จำนวนมากฉันถูกนำเสนอแนวคิดของฐานข้อมูลเชิงสัมพันธ์ที่ใช้สำหรับการจัดเก็บ

ดังนั้นแม้จะค่อนข้างใหม่ในการพัฒนาฉันก็ประหลาดใจที่จะอ่านความคิดเห็น (บนhttps://softwareengineering.stackexchange.com/q/89994/12436 ) ที่กล่าวว่า:

[บาง devs] ดูถูก [SQL] และคิดว่ามันและ RDBMS เป็นแฟชั่น

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


1
โปรดระบุบริบท - คุณอ่านความคิดเห็นนั้นจากที่ใด
Eran Galperin

8
ทุกสิ่งถูกพิจารณาว่าเป็นแฟชั่นจากใครซักคน
PéterTörök

Péterจริงมากแค่อยากรู้ว่าทำไม?
StuperUser

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

คำตอบ:


28

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

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

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

ทางออกที่แท้จริงของการจับคู่วัตถุเชิงสัมพันธ์คือOODBMSซึ่งไม่ได้รับแรงฉุดมากนัก เอ็นจิ้นที่ได้รับความนิยมรองรับ OOBD ดั้งเดิมคือ PostgreSQL ซึ่งเป็นลูกผสม OO / RDBMS อีก OODBMS คือZope Object DBซึ่งสร้างขึ้นใน Python และในการตั้งค่าทั่วไปใช้ RDBMS เป็นเอ็นจิ้นพื้นฐาน

แนวทางอื่นคือการเพิ่มตรรกะในแอพพลิเคชั่นหรือระดับกลางและใช้โซลูชัน NoSQLสำหรับการจัดเก็บข้อมูลพื้นฐาน

OODBMS และ NoSQL ไม่เป็น "ไฟล์แบน"


2
@Daniel: แน่นอนเขาไม่ได้บอกว่าแบบจำลองเชิงสัมพันธ์เป็นปัญหาที่ต้องแก้ปัญหา เขาพูดอย่างที่คุณพูด - หากคุณมุ่งมั่นที่จะสร้างแบบจำลองซอฟต์แวร์ของคุณบนกระบวนทัศน์เชิงวัตถุแล้วโมเดลเชิงสัมพันธ์นั้นเป็นปัญหา
Carson63000

1
@Carson: ฉันขอโทษ แต่นั่นไม่ใช่วิธีที่ฉันอ่านคำตอบ @vartec พูดว่า: "ทางออกที่แท้จริงคือ OODBMS (ซึ่งไม่ได้รับแรงฉุดมากนัก)" ฉันไม่เห็นด้วยอย่างเคารพ: ฉันจะบอกว่าทางออกที่แท้จริงคือการเข้าใจรูปแบบความสัมพันธ์และใช้มันอย่างมีประสิทธิภาพ OODBMS เป็นทางออกของคนยากจนเมื่อคุณต้องใช้หลักการ OO สำหรับตัวแบบข้อมูลของคุณซึ่งแน่นอนว่าไม่ใช่กรณีสากล
Daniel Pryden

1
@Daniel: ฉันคิดว่าเขาหมายความว่า OODBMS เป็นทางออกที่แท้จริงอีกครั้งหากคุณมุ่งมั่นที่จะสร้างแบบจำลองซอฟต์แวร์ของคุณบนกระบวนทัศน์เชิงวัตถุ ไม่ใช่ว่าโมเดลเชิงสัมพันธ์เป็นปัญหาในตัวของมันเองและ OODBMS นั้นก็เป็นทางออกสำหรับมัน แต่อย่างไรก็ตามยังมีการถกเถียงกันไม่มากว่าเราเข้าใจ Vartec อย่างถูกต้องแล้วฉันจะโค้งคำนับและให้เขาชี้แจงหากเขาต้องการ :-)
Carson63000

1
@Daniel: บริบทมีความสำคัญ ฉันพูดได้เลยว่าแบบจำลองเชิงสัมพันธ์นั้นเป็นปัญหาในบริบทของ OOP ทีนี้ OOP สากลหรือไม่นั้นเกินขอบเขตของคำตอบนี้ และ btw OODBMS ไม่ใช่ "การแก้ปัญหาของคนจน", ORMs คือ
vartec

1
@vartec: ตกลงฉันถอนการโหวตของฉัน (ฉันไม่สามารถนำออกได้จริงยกเว้นว่าจะมีการแก้ไขโพสต์) ฉันคิดว่าเป็นการดีที่สุดที่จะชี้แจงว่ามีวิธีแก้ปัญหาที่ไม่เกี่ยวข้องกับ OO และใช่ฉันยอมรับว่า ORM นั้นแย่กว่า OODBMS
Daniel Pryden

13

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

โปรแกรมเมอร์ที่มีประสบการณ์ควรรู้แบบสอบถามฐานข้อมูลหรือไม่

ฉันยืนยันว่าหากมีการใช้ฐานข้อมูล RDBMS แม้ว่า Linq หรือ ORM ผู้พัฒนาควรมีความรู้ขั้นสูงเกี่ยวกับ SQL

นี่เป็นสิ่งยืนยันที่ไม่เป็นที่นิยมอย่างมากเนื่องจากความแตกต่างที่น่านับถือของความคิดเห็นเกี่ยวกับความสำคัญของ SQL เพื่อความคิดที่น่านับถือน้อยกว่า RDBMS นั้นด้อยกว่าฐานข้อมูล NoSQL อย่าง MongoDB

แก้ไข:เพื่อเพิ่มการเรียกร้องของฉันเพิ่มเติมฉันจะอ้างอิงผู้ใช้ SK- ตรรกะ:

เพียงจำไว้ว่าความนิยม RDBMS ทั้งหมดนี้เป็นแนวโน้มล่าสุด ก่อนหน้านั้นเรามีวิธีการที่หลากหลาย เห็นได้ชัดว่าคุณทำงานใน บริษัท เล็ก ๆ ควบคู่ไปกับนักพัฒนาอายุของคุณและทำให้คุณไม่มีโอกาสได้สัมผัสกับระบบจัดเก็บข้อมูลที่เก่ากว่าและแข็งแกร่งกว่านี้ โชคดีที่แนวโน้มล่าสุดนี้ลดลงแล้วและวิธีเก่า ๆ ที่กลับมาได้รับการปรับโฉมใหม่เป็น 'nosql'


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

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

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

@dportas, แน่ใจว่า SQL นั้นไม่สมบูรณ์แบบ, แต่มันสำคัญกับทุกงานที่ฉันมีจนฉันรู้ว่าชีวิตง่ายขึ้นมากแค่ไหนเมื่อฉันเริ่มคิดใน SQL. ถ้าคุณให้แบบจำลองเชิงสัมพันธ์กับฉันและถามคำถามเป็นภาษาอังกฤษแบบธรรมดาจากนั้นฉันสามารถเขียน "คำตอบ" ใน SQL คุณบอกว่า "สิ่งที่พวกเขารู้ก็คือ SQL ดังนั้นพวกเขาจึงคิดว่าโมเดลเชิงสัมพันธ์เป็นสาเหตุของความยุ่งยาก" แล้วพวกเขาก็ไม่รู้ SQL ดีพอ ทำไมทุกอย่างต้องได้รับการตอบสนองอย่างดีที่สุดกับนักอสูรที่ต่ำที่สุดตลอดเวลาเช่นโปรแกรมเมอร์ชาวอินเดียที่ทำเงินน้อยกว่า $ 10 / ชม. ด้วยการศึกษาที่ไม่ดี
maple_shaft

@maple_shaft หากคุณกำลังคิดใน SQL อยู่นั้นคุณกำลังคิดถึงบางสิ่งที่ผิดพลาดในแง่ความสัมพันธ์ สิ่งที่ควรได้รับการสนับสนุนคือให้นักพัฒนาเข้าใจแนวคิดพื้นฐานเช่นตัวแบบเชิงสัมพันธ์แทนที่จะเน้นภาษาเช่น SQL หากผู้คนจำนวนมากเข้าใจแนวคิดพื้นฐานแล้วบางที SQL อาจถูกแทนที่ด้วยสิ่งที่ดีกว่า
nvogel

9

แฟชั่น :

สิ่งที่ได้รับความนิยมอย่างมากในเวลาอันสั้นและจากนั้นจะถูกลืมด้วยความเร็วเท่ากัน "

RDBMS มีมานานแล้ว (อย่างน้อยที่สุดในแง่ CS) ดังนั้นใครก็ตามที่กล่าวว่าอาจหมายถึงการพูดอย่างอื่นหรือไร้สาระ


2
ฉันหมายถึงพูดอย่างอื่นดูคำตอบของฉันด้านล่าง
maple_shaft

คำตอบอยู่ที่programmers.stackexchange.com/questions/90024/…

3
น่าจะดีกว่าถ้าใช้พจนานุกรมจริงแทนที่จะเป็น urbandictionary
Aaronaught

Aaronaught - แล้วพรินซ์ตันล่ะ? "ความสนใจตามมาด้วยความกระตือรือร้นเกินจริง" wordnetweb.princeton.edu/perl/…
Shauna

3

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


ควร "ยินดีที่จะเป็นใหม่" => "ยินดีที่จะเดิมพันใหม่" หรือไม่
ไบนารี Worrier

โอ้แน่นอนใช้ไฟล์แบนเป็นตัวอย่าง นั่นเป็นการเชื่อมโยงที่ดีกับโมเดล DB
StuperUser

@ ไบนารีใช่และแก้ไขเพื่อให้สะท้อน
Christopher Bibbs

3

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


1

โดยไม่มีบริบทมันเป็นการยากที่จะตัดสินว่าใคร / ทำไมคำสั่งที่ RDBMs ถูกพิจารณาว่าเป็นแฟชั่น

ในระยะสั้นถึงระยะกลาง (5 -10 ปี) และฉันจะคิดอีกต่อไปว่าจะไม่หายไป RDBM ให้วิธีการจัดเก็บประมวลผลและดึงข้อมูลเชิงสัมพันธ์ที่มีประสิทธิภาพและประสิทธิผลซึ่งเป็นสิ่งที่ บริษัท ส่วนใหญ่มีทั้งลูกค้า / คำสั่งซื้อผู้โดยสาร / ตั๋วเป็นต้น

มีทางเลือกอื่น ๆ เช่น NoSQL ซึ่งดูเหมือนว่าจะเติบโตในความนิยมของโครงการโอเพนซอร์ส

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


1

ฐานข้อมูลเชิงสัมพันธ์เป็นแฟชั่นในแง่เดียวกับที่ไมโครคอมพิวติ้งเป็นแฟชั่น


1

คำตอบง่ายๆคือไม่ RDBMS ไม่ใช่แฟชั่น เมื่อคุณอ่านบางอย่างบนเว็บไซต์สำหรับ LinqPad โปรดทราบว่าจุดประสงค์ของพวกเขาคือการขายใบอนุญาตสำหรับผลิตภัณฑ์ของตน


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

คำถามมาจากเขาที่อ่านสำนวนการส่งเสริมการขายของ LinqPad เพิ่งชี้ให้เห็นว่าเขาควรจะเอาเกลือเม็ดหนึ่งไปด้วย
Tundey

ไม่มันไม่ได้มาจากความคิดเห็น maple_shaft บนprogrammers.stackexchange.com/questions/89994/... สำเนาของ LinqPad ถูกยึดด้วยเกลือนิดหน่อย แต่ฉันอยากรู้ว่า devs เห็นด้วยกับทั้งสองข้อความหรือไม่
StuperUser

ใช่แล้ววาทศาสตร์ส่งเสริมการขายของ LinqPad คือการเขียน SQL เพื่อสอบถาม RDBMS นั้นล้าสมัยไม่ใช่ RDBMS ที่ตัวเองถูกโบราณ พวกเขากำลังขายวิธีที่ดีกว่าในการใช้ RDBMS ไม่ใช่ทางเลือกอื่นสำหรับพวกเขา
Carson63000

@StuperUser และ Carson63000: เข้าใจแล้ว ความผิดพลาดของฉัน.
Tundey

0

แฟชั่นไม่ได้เป็นคำที่ถูกต้องตามที่พวกเขาได้รับมาเป็นเวลานานนาน ฉันคิดว่าคุณสามารถเริ่มโต้แย้งว่าเทคโนโลยีนั้นเก่ามากและอาจถึงเวลาแล้วที่จะเกิดสิ่งต่อไป - สถาปัตยกรรม NoSQL อาจจะ


0

วิกิพีเดีย Def ของ Fadกำหนดคำว่า "fad" ดังนี้: Fad เป็นรูปแบบของพฤติกรรมที่พัฒนาขึ้นในหมู่ประชากรขนาดใหญ่และมีการติดตามความกระตือรือร้นเป็นระยะเวลาหนึ่งโดยทั่วไปซึ่งเป็นผลมาจากพฤติกรรมที่ถูกมองว่าเป็นนวนิยายในทางใดทางหนึ่ง แฟชั่นถูกกล่าวว่า "จับ" เมื่อจำนวนผู้ใช้มันเริ่มเพิ่มขึ้นอย่างรวดเร็ว พฤติกรรมดังกล่าวจะหายไปอย่างรวดเร็วเมื่อการรับรู้ถึงความแปลกใหม่หายไป

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

แนวคิดของ RDBMS (และยานพาหนะหลักของ SQL) เป็นตัวแทนของขั้นตอนในเทคโนโลยีที่เหมือนกับคนอื่น ๆ อาจถูกแทนที่ด้วยคนที่ดีกว่านั่นคือทั้งหมด

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