소셜 네트워크 / 지식 기반 커뮤니티를위한 데이터베이스 제안?


12

여름에 시작하고 싶은 새 프로젝트에 대한 다양한 데이터베이스 유형과 DBMS를 조사하고 있습니다.

MySQL과 postgreSQL로 시스템을 만들었으므로 이제는 데이터베이스에 대한 지식과 경험을 넓히고 싶습니다.

내 프로젝트는 일종의 소셜 네트워크 / 총체적인 지식 일 것입니다. (아직도 그것을 설명하는 용어를 개발하지 않았 음).

나는보고있다 :

  • 카산드라 (자체 유형의 쿼리 언어 사용); 기능이 풍부한 콘텐츠에 적합하고 고성능 쿼리 실행을 제공하는 것으로 보입니다. 그러나 Java 환경이 필요하기 때문에 너무 열중하지 않으며 Oracle과 관련이없는 것을 선호합니다.
  • MongoDB (NoSQL 유형의 DBMS); 확장 성이 뛰어나지 만 비즈니스 정보 쿼리와 같은 입증 된 SQL 언어에서 이미 사용 가능한 모든 기능을 잃게됩니다.

시스템 요구 사항 :

  • 데이터 텍스트, 날짜, 시간, XML, 작은 정수, 얼룩,
  • 구조 / 행동 : 표준화 된 3NF, 비 실시간, 관계형, 확장 가능, 강력한
  • 환경 : unix / linux, JAVA! 없음, 가급적 C에서 실행

내가 조사해야 할 다른 데이터베이스 시스템을 알려줄 수 있는지 궁금합니다.

또한 Object Relational Databases도 살펴 보았습니다 .PDO (PHP 객체)로 작업하는 아이디어가 마음에 들지만 성능은 약간 떨어집니다.

여기에 DBA가있는 것처럼 보시면 여러분이 운영하고있는 시스템에 대한 의견을 보내 주시면 감사하겠습니다.

감사


3
정규화 된 3nf를 원하면 관계형 저장소를 수행해야합니다. 기간.
JNK

2
Java가 "Oracle"이기 때문에 Java를 두드리지 않을 것입니다. 작업에 적합한 도구를 사용하십시오. Java가 최고의 도구라면 사용하겠습니다. C가 올바른 직업이라면 사용하십시오. 각 도구가 제공하는 것, 장단점에 중점을 둡니다. 느낌에 근거한 것이 아니라 (DB 쪽과 동일하게) 잘 교육 된 결정을 내립니다.
Chris Aldrich

답변:


4

귀하의 추상 요구 사항은 "PostgreSQL"을 비명을 지 릅니다. 그러나 부르주아지가 무엇을하고 있는지 알 필요가 있다고 생각합니다. 따라서 체크인하고 싶은 다양한 것들의 목록이 있습니다.

공짜 물건

  • CouchDB- 최초의 NoSQL 데이터베이스 중 하나 인 강력한 맵 / 리 듀스 쿼리 시스템, 고 분산 및 내결함성. 더 나은 NoSQL 경쟁자 중 하나입니다.
  • Hyperdex- 검색 기능이있는 매우 새로운 분산 해시 테이블.
  • Riak- 어느 정도 존경받을만한 분산 해시 테이블.

이상한 무료 물건

  • Metakit - 더 같은 임베디드 데이터베이스 SQLite는 하지만, 너무 많은 절차 적 SQL 기반 없습니다.
  • FramerD- 고전적인 "네트워크"데이터베이스와 매우 유사하며 포인터 중심입니다. 아마도 죽었 을까?
  • 마그마 -스몰 토크 OODBMS. 시원하지만 잘 문서화되지 않았습니다.

자유롭지 않은 물건

  • AllegroGraph -RDF (그래프) 데이터베이스는 SPARQL을 지원합니다. 리스프 맛.
  • Caché를 - 원래 MUMPS (IIRC)를 기반으로 하이브리드 관계형 / 객체 지향 데이터베이스.
  • 객관성 -마지막 몇 개의 OODB 중 하나입니다. 매우 강력하고 인상적이며 비쌉니다.
  • VoltDB- 확장 성이 뛰어난 대부분 관계형 데이터베이스. "most"SQL을 지원합니다. 아주 새로운. 그들도 커뮤니티 버전을 가지고 있다고 생각합니다.

결론

나는 이런 것들을 광범위하게 사용하지 않았습니다. 나는 그들 중 대부분을 약간 연주했으며 항상 PostgreSQL로 상처를 입었습니다. 요구 사항을 살펴보면 PostgreSQL이 충족하지 못하는 유일한 것은 확장 성입니다. 다른 한편으로, 제 목적 상이 문제로 $ 4000의 클라우드 노드 나 저가형 머신을 던지는 것보다 단일 전용 데이터베이스 머신에 $ 4000의 하드웨어를 던지는 것이 훨씬 쉽습니다. 그리고 EnterpriseDB 와 같이 PostgreSQL로 확장 성을 얻는 방법이 있습니다 .

이러한 것들을 옆에서 놀아 보는 것은 큰 즐거움이지만, 가치 있고 재현 할 수없는 생산 데이터를 무언가에 넣을 때가되면 안정성, 안정성 및 장기적인 생존력과 같은 지루한 속성이 앞당겨집니다.

당신을 위해 실험을 생각

이걸 고려하세요. Mark Zuckerberg라고 가정하고 코드베이스 또는 데이터를 포기하도록 선택해야합니다. 모든 개발 직원을 유지할 수는 있지만 모든 코드를 포기해야합니다. 모든 개발자, 심지어 모든 개발자가 모든 것을 구현 한 방법에 대한 기억은 사라졌지 만 모든 사용자 계정과 모든 사용자를 계속 업로드해야합니다. 모든 데이터를 포기하거나 모든 데이터를 포기할 수 있습니다. 모든 구조와 서버 및 구성, 설정을 유지하되 모든 데이터베이스의 모든 테이블에서 모든 행을 잃습니다.

데이터를 잃는 것이 더 나빠질 것임이 분명합니다. 왜 모든 사용자가 모든 데이터를 재생성합니까? 잃어버린 모든 마케팅 데이터를 생각해보십시오. 페이스 북이 실제로 돈을 버는 방식입니다. 그리고 사람들이 Facebook 복제본을 사용할 수있는 기회를 제공하는 수많은 기업가들이 있습니다. 현재는 페이스 북을 사용하지 않는 ex-Facebook 사용자들은 대안을 고려할 것입니다. 다른 한편으로, 그들이 코드베이스를 잃어버린 경우, 지금보다 더 나은 코드베이스를 재 구축 할 수 있지만 온라인상에서 매우 짧은 순서로 무언가를 가질 수 있습니다. 도대체 — 아마도 수있을 것이다다른 사람의 Facebook 복제 코드베이스는 실제 데이터와 함께로드되지만 데이터를 복사 할 수는 없습니다. Facebook에 여전히 모든 사람의 중요한 데이터가 서버에있는 경우 떠나는 인센티브는 훨씬 낮습니다. 여전히 나쁘지만 훨씬 적습니다. 놀랍게도 그렇지 않습니다.

아이러니 한 사실은 모든 코드를 잃는 것보다 괴물 사고로 모든 데이터를 잃는 것이 훨씬 쉽다 는 입니다. 대부분의 인터넷 기업들,하지만, 데이터가 이다 는 회사 입니다 당신의 가장 소중한 자산. 그리고 이것은 전통적이고 오랜 기간 테스트를 거친 구식의 비 관계형 데이터베이스를 사용하는 것을 고려해야하는 강력한 이유입니다.


긴 주석 스레드 요약이 여기에서 삭제되었습니다. "NOSQL 저장소가 어떻게 든 데이터 손실 가능성을 높인다는 것을 의미하지는 않습니다."
Jack은 topanswers.xyz를

내가 말하는 것은 스토리지 엔진의 디자인이 아니라 나이와 폭 넓은 사용과 관련이 있습니다.
다니엘 리용

6

또한 어떤 것에 관계형 데이터베이스를 사용할 수없고 다른 것에 대해서는 nosql 데이터베이스를 사용할 수없는 이유가 없습니다.


0

nosql에 관해서는 Facebook 참조에 대해 추가해야 할 것이 하나 있습니다.

매우 큰 규모로 확장하려는 경우 DB 엔진 sysadmin과 개발자 모두에게 친숙합니다.

지리적으로 분산 될 수없고 효율적이고 쉽게 백업 할 수있는 개발자 친화적이고 매우 빠른 MongoDB를 종료하십시오. 여기에서는 MongoDB를 사용하지만 sysadmins 사양에서 Riak 또는 CouchDB가 더 좋아 보입니다 (Riak 또는 CouchDB에 대한 경험이 없습니다)


2
확장을 선택하면 이미 마이크로에서 작은, 그리고 작은에서 작은 규모로, 올바른 선택을하는 데 도움이되는 몇 가지 사항을 배웠기 때문입니다. 확장 할 준비가되면 확장 방법을 알고있는 엔지니어에게 여유가 있습니다.
jcolebrand
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.