RDBMS를 어떻게 유행으로 간주 할 수 있습니까?


11

2003 년 Computing A-level을 완료하고 2007 년 Computing 학위를 취득하고 SQL 사용량이 많은 회사에서 무역을 배우면서 관계형 데이터베이스를 스토리지로 사용한다는 아이디어를 얻었습니다.

따라서 개발에 비교적 익숙하지 않았지만 나는 https://softwareengineering.stackexchange.com/q/89994/12436 에서 다음과 같은 의견을 읽었습니다 .

[일부 개발자] [SQL]을 멸시하고 RDBMS가 유행이라고 생각

유능한 개발자는 올바른 작업에 적합한 도구를 사용하고 플랫 파일 또는 스토리지에 대한 다른 솔루션이 적절한 경우 관계형 데이터베이스를 만들지 않지만 RDBM은 방대한 수의 환경에서 유용하므로 어떻게 할 수 있습니까? 유행으로 간주?


1
상황을 알려주십시오-그 의견을 어디서 읽었습니까?
Eran Galperin

8
무언가와 모든 것이 누군가 어딘가에 유행으로 간주됩니다.
Péter Török

정말 진실한 피터, 왜 궁금한가요?
StuperUser

5
그러한 사람들은 일반적으로 관계형 데이터베이스의 개념에 반하는 홍보하려는 또 다른 패러다임을 가지고 있습니다. 따라서 관계형 데이터베이스는 나쁘고 사라져야합니다. 아직 임계 질량에 도달하지 않은 객체 지향 데이터베이스를 살펴보십시오.

답변:


28

키는 RDBMS 의 R 에 있으며 관계를 나타냅니다. 일반적인 믿음과는 달리 테이블 간의 관계를 의미하는 것이 아니라 각 테이블이 수학적인 의미에서 관계 라는 사실을 의미합니다 .

관계형 모델에는 상당한 의미가 있습니다. 관계에 맞게 데이터를 모델링하고 해당 모델을 정규화해야합니다 . 응용 프로그램이 객체 지향 모델로 설계된 경우 관계형 모델이 적합하지 않습니다. 이것은 객체 관계형 임피던스 불일치 로 널리 알려져 있습니다.

이 불일치에 대한 한 가지 접근 방식은 ORM (object-relation mappers)으로, 많은 인기를 얻었습니다. 그러나 그들은 진정한 해결책이 아니며 문제의 해결 방법과 비슷합니다. 그들은 여전히 ​​클래스 상속을 관계형 모델로 매핑하는 문제를 해결하지 못합니다.

객체 관계형 불일치에 대한 진정한 해결책은 OODBMSes 인데 불행히도 많은 견인력을 얻지 못했습니다. OOBD를 기본적으로 지원하는 인기있는 엔진은 하이브리드 OO / RDBMS 인 PostgreSQL입니다. 또 다른 OODBMS는 Zope Object DB 이며, 이는 Python으로 빌드되며 일반적인 설정에서는 RDBMS를 기본 엔진으로 사용합니다.

다른 방법은 애플리케이션 또는 미들웨어 레벨에서 더 많은 로직을 구현하고 기본 스토리지에 NoSQL 솔루션 을 사용하는 것입니다.

OODBMS 나 NoSQL 모두 "플랫 파일"이 아닙니다.


2
@Daniel : 그는 확실히 관계형 모델이 해결책이 필요한 문제라고 말하지 않았습니다. - 그는 당신이 말한 정확하게 말했다 경우 당신은 객체 지향 패러다임에 소프트웨어를 모델링하기 위해 최선을 다하고 있습니다, 다음 관계형 모델이 문제입니다.
Carson63000

1
@ 카슨 : 사과하지만 답변을 읽는 방법은 아닙니다. @vartec의 말 : "진정한 해결책은 OODBMS입니다 (불행하게도 많은 견인력을 얻지 못했습니다)." 나는 솔직히 동의하지 않습니다. 진정한 해결책은 관계형 모델을 이해하고 효과적으로 사용하는 것입니다. OODBMS는 데이터 모델에 OO 원칙을 사용해야하는 경우를위한 빈약 한 솔루션입니다. 이는 보편적 인 사례는 아닙니다.
Daniel Pryden

1
@Daniel : 객체 지향 패러다임에서 소프트웨어를 모델링 하려는 경우 OODBMS가 진정한 솔루션이라고 생각했습니다 . 관계형 모델 자체가 문제가 아니라 OODBMS가 그 해결책이었습니다. 그러나 어쨌든 우리가 Vartec을 올바르게 이해했는지에 대한 논쟁은별로 중요하지 않습니다. :-)
Carson63000

1
@Daniel : 상황 중요합니다. 나는 관계형 모델이 OOP의 맥락에서 문제라고 분명히 말하고있다. 이제 OOP가 얼마나 보편적인지 아닌지는이 답변의 범위를 벗어납니다. 그리고 btw. OODBMS는 "가난한 사람의 해결책"이 아니며 ORM은 있습니다.
vartec

1
@vartec : 좋아, 나는 downvote를 철회한다. (포스트가 편집되지 않으면 실제로 제거 할 수 없습니다.) OO와 관련이없는 솔루션이 있음을 분명히하는 것이 가장 좋습니다. 그리고 그렇습니다, 나는 ORM이 OODBMS보다 나쁘다는 것에 동의합니다.
Daniel Pryden

13

위 질문에 인용 한 내용을 진술했습니다. 이 사이트의 개발자에 대한 내 가정을 확인하기 위해 인용을 원한다면 다음 질문에 대한 내 답변을 읽고 여전히 수용 가능한 답변으로 간주되는 의견과 백 보트의 백래시를 검토하십시오.

숙련 된 프로그래머가 데이터베이스 쿼리를 알아야합니까?

Linq 또는 ORM에도 불구하고 RDBMS 데이터베이스를 사용하는 경우 개발자는 SQL에 대한 고급 지식이 있어야한다고 주장했습니다.

이것은 RDBMS가 본질적으로 MongoDB와 같은 NoSQL 데이터베이스보다 열등하다는 생각을 덜 중요하게 생각하면서 SQL의 중요성에 대한 상당한 의견 차이로 인해 매우 인기가 없다고 주장했습니다.

편집 : 내 주장에 더 추가하기 위해 사용자 SK-logic을 인용합니다.

이 모든 RDBMS 열풍은 비교적 최근의 경향이라는 것을 기억하십시오. 그 전에는 다양한 접근 방식이있었습니다. 당신은 분명히 젊은 회사에서 나이가 많은 개발자들과 함께 일하고 있기 때문에 더 오래되고 더 견고한 스토리지 접근 방식에 노출 될 기회가 없습니다. 다행히도이 최근 추세는 이미 감소하고 있으며 오래된 방법이 다시 돌아와서 'nosql'로 브랜드가 변경되었습니다.


DB를 사용하는 개발자는 관계의 관점에서 쿼리를 개념화 할 수 있도록 SQL을 이해해야한다는 것에 전적으로 동의합니다. 그러나 Linq / ORM은 데이터 스토어로 작성된 쿼리에 영향을주는 방식으로 추상화에 대한 쿼리를 최적화하지 않기를 바랍니다.
StuperUser

"이 RDBMS 열풍이 비교적 최근의 추세"라고 말하는 유일한 이유는 수염이 얼마나 회색인지를 보여주는 것입니다. 저는 1995 년에 기술 한 일종의 엔터프라이즈 및 비즈니스 응용 프로그램에서 처음 작업했습니다. 관계형 데이터베이스는 이제 지배적이며 이제는 지배적이며 16 년 동안 일한 모든 곳에서 지배적이었습니다. 분명히 나는 ​​나이가 많지 않지만 "상대적으로 최근"이라고 말할 때 "지난 20 년"을 의미하지는 않습니다.
Carson63000

문제는 많은 개발자들이 RDBMS를 SQL과 잘못 동일시한다는 것입니다. SQL은 현대 표준에 의해 정말 끔찍한 언어입니다. 지난 30 년 동안 크게 발전하지 않은 "관계형"언어 (SQL은 전혀 관계가 없으며 문제의 일부 임)의 결함이 있고 불완전한 구현입니다. SQL을 사용하는 많은 사람들은 관계형 모델을 거의 이해하지 못합니다. SQL 만 알고 있으면 관계형 모델이 좌절의 원인이라고 가정합니다.
nvogel

@ dportas, Sure SQL은 완벽하지는 않지만 SQL에서 THINKING을 시작할 때 인생이 얼마나 쉬워 졌는지 알게 된 것은 모든 작업에 중요했습니다. 관계형 모델을 제공하고 일반 영어로 질문을하면 SQL로 "답변"을 작성할 수 있습니다. 당신은 "그들이 아는 모든 것은 SQL이므로 관계형 모델이 좌절의 원인이라고 가정합니다"라고 말합니다. 그렇다면 그들은 SQL을 충분히 알지 못합니다. 교육 수준이 좋지 않은 상태에서 시간당 10 달러 미만을 인디언 프로그래머처럼 항상 모든 것이 가장 낮은 일반 데모를 제공해야하는 이유는 무엇입니까?
maple_shaft

@maple_shaft, SQL로 생각하고 있다면 관계 용어에서 매우 잘못된 몇 가지를 생각하고 있습니다. 개발자가 권장하는 것은 SQL과 같은 언어에 중점을 두지 않고 관계형 모델과 같은 기본 개념을 이해하는 것입니다. 더 많은 사람들이 기초 개념을 이해했다면 아마도 SQL이 이미 더 나은 것으로 대체되었을 것입니다.
nvogel

9

유행 :

짧은 시간 안에 매우 인기를 얻은 다음 거의 같은 속도로 잊혀진 것입니다. "

RDBMS는 오래 전부터 (최소한 CS 용어로) 사용되어 왔으며, 다른 말을하거나 의미가 없다고 말한 사람은 누구입니까?


2
나는 다른 말을하려고했는데 아래 답변을 참조하십시오.
maple_shaft


3
아마도 도시 사전과 달리 실제 사전을 사용하는 것이 좋을 것입니다.
Aaronaught

Aaronaught-프린스턴은 어때요? "과장된 열성이 뒤 따랐다." wordnetweb.princeton.edu/perl/…
Shauna

3

RDBMS의 대안은 단순한 플랫 파일이 아닙니다. 학교에있을 때 OODBMS는 새로운 것이었고 교수는 유행이라고 레이블을 지었을 때 정확했습니다. 다른 모델을 살펴보고 트렌드를 기록해야합니다. OLAP에 대한 의존도가 높아짐에 따라 데이터를 더 빠르게 처리 할 수있는 새로운 다차원 시스템에 기꺼이 투자 할 것입니다.


"새로운 것"=> "새로운 것"
이진 걱정

물론, 플랫 파일을 예로 사용했습니다. 그것은 DB 모델과의 좋은 연결입니다.
StuperUser

@Binary 예이며이를 반영하도록 편집되었습니다.
Christopher Bibbs

3

문제는 많은 개발자들이 RDBMS를 SQL과 잘못 동일시한다는 것입니다. SQL은 현대 표준에 의해 정말 끔찍한 언어입니다. 지난 30 년 동안 크게 발전하지 않은 "관계형"언어 (SQL은 전혀 관계가 없으며 문제의 일부 임)의 결함이 있고 불완전한 구현입니다. SQL을 사용하는 많은 사람들은 관계형 모델을 거의 이해하지 못합니다. SQL 만 알고 있으면 관계형 모델이 좌절의 원인이라고 가정합니다.


1

문맥이 없으면 RDBM이 유행이라고 간주되는 사람 / 이유를 판단하기가 어렵습니다.

단기적으로 중기 적으로 (5-10 년) 나는 더 이상 가지 않을 것이라고 생각합니다. RDBM은 대부분의 회사가 고객 / 주문, 승객 / 티켓 등의 관계형 데이터를 저장, 처리 및 검색하는 효율적이고 효과적인 방법을 제공합니다.

오픈 소스 프로젝트에서 인기가 높아지는 NoSQL과 같은 다른 대안이 있습니다.

OLAP으로서 이들은 실제로 회사가 회사에 대해시기 적절하고 유용한 통계 정보를 제공하고 현재 데이터에 대해 "가정 (what if)"시나리오를 실행할 수 있도록 설계된 전문가 데이터베이스입니다. 물론 거의 모든 경우에이 현재 데이터는 RDMB에서 가져온 것이며 조작 된 후 OLAP 데이터베이스에 삽입됩니다.


1

관계형 데이터베이스는 마이크로 컴퓨팅이 유행하는 것과 같은 의미에서 유행합니다.


1

간단한 대답은 '아니요'입니다. RDBMS는 유행이 아닙니다. LinqPad의 웹 사이트에서 무언가를 읽을 때 제품의 라이센스를 판매하는 것이 목적임을 명심하십시오.


문제는 그것이 LinqPad의 판촉 적 수사인지 아닌지, 유행으로 간주되는 이유에 관한 것입니다. LinqPad 표준은 무료입니다.
StuperUser

LinqPad의 판촉적인 수사를 읽는 것이 문제였습니다. 그가 소금 한 알을 가지고 가야한다고 지적했습니다.
Tundey

아니 그것은하지 않았다, 그것은에 maple_shaft의 코멘트에서 온 programmers.stackexchange.com/questions/89994/... . LinqPad의 사본 소금 한 덩어리 가져 갔지만 개발자가 두 진술에 동의하는지 궁금합니다.
StuperUser

LinqPad의 판촉적인 수사법은 RDBMS 자체 를 구식 화 한 것이 아니라 RDBMS를 쿼리하기 위해 SQL을 작성하는 것이 구식이되었다는 것이었다 . 그들은 대안이 아닌 RDBMS를 사용하는 더 좋은 방법을 판매하고 있습니다.
Carson63000

@StuperUser와 Carson63000 : 알았습니다. 내 실수.
Tundey

0

그들이 오랫동안, 오랫동안 함께했던 Fad는 올바른 단어가 아닙니다. 기술이 매우 오래되었다는 주장을 할 수 있다고 생각합니다 .NoSQL 아키텍처


0

위키 데프. 유행의 다음과 같은 용어는 "유행"을 정의 유행은 일반적 행동의가 어떤 식 으로든 소설로 인식되는 결과로, 많은 인구들 사이에서 개발하고 공동으로 일정 기간에 대한 열정 뒤에 행동의 어떤 형태이다. 유행하는 사람들의 수가 급격히 증가하기 시작하면 유행은 "잡는다"고한다. 참신에 대한 인식이 사라지면 행동은 보통 빨리 사라질 것입니다.

RDBMS 추종자들은 빨리 사라지지 않았고 앞으로 몇 년 안에 사라지지 않을 것이므로 (이를 사용하는 거대한 생산 응용 프로그램 덕분에) 우리는 그 유행을 말할 수 없습니다. 실제로 RDBMS의 핵심 개념은 다른 많은 기술이 급격히 변화하고 (그리고 여전히 변화하고있는) 상당히 안정적으로 유지되었습니다.

RDBMS (및 주요 수단 인 SQL)의 개념은 다른 많은 기술과 마찬가지로 더 나은 기술로 대체 될 수있는 기술의 한 단계를 나타냅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.