문제

우리는 수많은 고품질 상업용 및 무료 데이터베이스를 보유한 데이터베이스의 황금기에 살고 있습니다.이것은 훌륭하지만 단점은 다음 프로젝트를 위해 데이터베이스가 필요한 사람을위한 단순하고 명백한 선택이 없다는 것입니다.

  • 데이터베이스 선택에 사용하는 제약 / 기준은 무엇입니까?
  • 사용한 다양한 데이터베이스가 이러한 제약 / 기준을 얼마나 잘 충족합니까?
  • 데이터베이스에는 어떤 특수 기능이 있습니까?
  • 어떤 데이터베이스를 다른 사람에게 추천하는 것이 편하다고 생각하십니까?

    기타 ...

도움이 되었습니까?

해결책

데이터 액세스, 데이터 보안, 확장 성, 성능, 연결이 끊긴 시나리오, 데이터 변환, 데이터 크기 조정을위한 시스템 요구 사항이 무엇인지 먼저 생각합니다.

다른 한편으로는 개발자, 운영자, 플랫폼 관리자의 경험과 배경도 고려하세요.

또한 프로그래밍 언어, 운영 체제, 메모리 공간, 네트워크 대역폭, 하드웨어와 관련하여 어떤 제약이 있는지 생각해야합니다.

마지막으로 라이센스, 지원, 운영 예산과 같은 비즈니스 문제에 대해 생각해야합니다.

이러한 모든 고려 사항을 마친 후 몇 가지 옵션 만 있으면 선택이 더 쉬워집니다.

즉, 조직 및 프로젝트의 제약 조건과 요구 사항에 가장 적합한 기술을 선택하십시오.

많은 대안을 감안할 때 분명한 선택이 아니라고 말하는 것이 옳다고 생각합니다.하지만 이것이 프로젝트에 실제로 가능한 것으로 좁힐 수있는 유일한 방법이라고 생각합니다.

다른 팁

내 선택 기준 (주로 프로그래밍 중심) :

  • 유지 관리 : 업데이트 / 핫픽스는 어떻게 설치 되나요?
  • 거래 제어 : 구현 방법
  • 저장 프로 시저가 지원됩니까?
  • 저장 프로 시저에서 예외 처리를 사용할 수 있습니까?
  • 비용
  • 혜택 : 저장 프로 시저에서 재귀를 사용할 수 있습니까?(예 : SQL Server 2000에서 32 회 IIRC 통과 후 재귀가 중지됨)

기업 환경에있는 대부분의 사람들에게 선택은 "우리가 가진 것"에 달려 있습니다.

당신이 선택권을 가질 수있을만큼 운이 좋으신 것 같으니, 질문을 빠르게 살펴보고 마지막에 몇 가지 더 포즈를 취하겠습니다.

가장 큰 기준은 비용 일 수 있습니다. DBMS 플랫폼에 대한 비용을 지불 할 준비가 되었습니까? 그렇지 않다면 Oracle, MS SQL Server, Sybase 및 기타 제품이 출시되었을 수 있지만 상용 앱을 구축하지 않는 경우 약간의 흔들림이있을 수 있습니다. 또한 플랫폼-하드웨어에서 소프트웨어를 실행할 수 있습니까?

기타 고려할 차원에는 예상되는 동시 연결 수, 트랜잭션 대 대부분 읽기, 크기, 가용성 등이 포함될 수 있으며 다른 많은 항목이 있다고 생각합니다.

"특별한 기능"은 기본적으로 피해야합니다. 내 냉소적 인 세계관에서는 플랫폼에 가두기위한 것입니다. 따라서 Oracle의 PL / SQL과 같은 기능은 강력하지만 (그리고 더 많은 라이선스 비용으로 추가 CPU 성능이 필요함을 의미 할 수 있음) 이식 할 수없는 기능입니다. 매우 많은 양을 예상한다면 파티셔닝이 유용 할 것입니다.

저는 제가 생각할 수있는 Oracle, MS SQL Server, MySQL, PostreSQL, SQLite 및 Sybase와 함께 일했습니다. 요즘은 약간의 우려가있는 Sybase를 제외한 모든 것을 기꺼이 추천합니다 (나는 쉽게 틀릴 수 있지만 개인적으로 돈을 다른 곳에서 쓰는 것이 더 나을 수 있다고 생각합니다). 같은 응용 프로그램에 전부는 아닙니다.

이상적으로는 쉽게 이식 할 수 있기 때문에 어떤 DB 플랫폼을 사용하든 상관 없다는 따뜻한 느낌을 받고 싶습니다. 데이터와 비즈니스 로직 사이에 좋은 추상화 계층을 사용하면 우수한 SQLite에 대해 로컬에서 개발하고 Postgres와 같은 작업을 쉽게 구현할 수 있어야합니다. Rails의 ActiveRecord와 같은 것과 예약어의 차이와 같은 것에 대한 약간의 인식이 결합되어 거의 완전히 비용이 들지 않습니다.

확실히 가장 설득력있는 요소는 귀하 또는 귀하의 팀의 전문 지식 또는 향후 고용 할 리소스 풀입니다. LAMP 팀에서 MySQL을 사용하고 MS 팀에서 SQL Server를 사용하는 대부분의 경우 이러한 제품 중 하나가 고부하 환경에서도 필요한 모든 작업을 수행 할 수 있기 때문에 대부분의 경우 곡물을 사용하는 경향이 있습니다.

다른 데이터베이스의 이점은이를 잘 사용하는 방법을 배우는 것에 비해 미미할 것입니다. 내 생각에 이것에 대한 유일한 예외는 다음과 같은 수요가 많은 환경 일 것입니다.

a. 명백한 선택이 시도되었지만 실패

b. 확장의 이점은 예상치 못한 것을 사용하는 데 드는 비용만큼 가치가있을 정도로 한계 이익을 배가시킵니다.

저는 새 데이터베이스에 대해 장기적으로 알고있는 우수한 DBA를 최소 2 명, 바람직하게는 3 명 고용해야한다고 가정합니다.

그리고 먼저 문제를 일으키는 기술 자체보다 그것이 사용되는 방식 일 가능성이 더 높기 때문에 실패한 기술을 위해 그들을 고용하려고합니다.

기존 답변이 훌륭합니다.Oracle은 이제 10g 데이터베이스의 XE 버전을 무료로 사용할 수 있으며 훌륭한 웹 기반 개발 환경 인 Application Express와 함께 제공됩니다.

제한적이며 4GB HD, 1GB 램이며 하나의 CPU 만 사용합니다.이것은 더 작은 시스템을 실행하기에 충분하며 필요한 경우 나중에 쉽게 업그레이드 할 수 있습니다.Oracle은 배우기 가장 어려운 분야 중 하나 일 수 있지만 이력서에 가장 적합한 분야이기도합니다. :-)

Microsoft의 SQLServer에도 '스타터'유형의 데이터베이스가 있다고 생각합니다.상업용 제품을 할인하지 마십시오. 회사에 데이터베이스 기술을 투자하려면 Oracle 또는 Microsoft 제품을 개인적으로 사용하고 싶습니다.오픈 소스에 문제가 있다는 말은 아닙니다.

평가하는 동안 시간을 보내세요 :-)

  • Linux, 웹 호스팅-MySQL (PostreSQL 가능)
  • 주요 SME-MS SQL
  • Big Iron (뱅킹 등)-Oracle

    이 세 가지 이외의 것에 대해 생각하는 것은 자위 행위입니다. 다른 데이터베이스는 아직 경험하지 못한 특정 문제를 해결하기위한 틈새 제품에 대한 토론이됩니다.위의 세 가지 이외의 것을 선택하면-

    1. 프로젝트에서 작업 할 사람을 찾거나 데이터베이스를 유지하는 데 어려움을 겪습니다.
    2. 학술적 토론없이 결정 동기를 부여하기 위해 노력
    3. 누군가가 당신과 당신의 조상과 당신의 혈통을 몇 년 뒤에 저주하고 어쨌든 당신의 선택을 대체 할 것입니다.

      틈새 데이터베이스는 아키텍처의 발전이 이루어지는 곳이 아닙니다. 미들웨어, 메시징, 클라우드 서비스 등과 같은 기술은 좋은 제품을 찾기 위해 한 발짝 다가 가야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top