우리는 각각 고유 한 기본 데이터가있는 여러 서비스를 통합하는 웹 플랫폼을 구축하고 있습니다. 이러한 서비스는 서비스 지향 아키텍처 (Service-Oriented Architecture) 의 원칙에 따라 독립적으로 구축 되지만 잠재적으로 관련된 데이터와는 거래됩니다. 우리는 이러한 서비스가 하나의 큰 데이터베이스를 공유해야하는지 또는 각각 고유 한 데이터베이스를 보유해야하는지 고려하고 있습니다. (Windows 2008 클러스터에서 SQL Server 2008 Enterprise를 사용할 계획입니다.)
우리가 이미 고려한 각 접근 방식의 장점 중 일부는 다음과 같습니다.
단일 데이터베이스
- 외래 키 제약 조건으로 서로 다른 서비스의 데이터 관련을 함께 바인딩 할 수 있습니다.
- 분석 추출은 작성이 간단하고 실행 속도가 빠릅니다.
- 재난 발생시 플랫폼을 일관된 상태로 복원하는 것이 더 쉽습니다.
- 여러 서비스에서 참조하는 데이터의 경우 한 서비스에서 캐시 된 데이터는 다른 서비스에서 곧 사용될 수 있습니다.
- 관리 및 모니터링이 더 간단하고 저렴합니다.
여러 데이터베이스
- 유지 관리 작업, 하드웨어 문제, 보안 위반 등이 반드시 전체 플랫폼에 영향을 미치지는 않습니다.
- 각 데이터베이스가 별도의 하드웨어에 있다고 가정하면 여러 컴퓨터를 확장하면 하나의 큰 데이터베이스를 확장하는 것보다 더 많은 성능 이점이 있습니다.
운영 관점에서 볼 때이 플랫폼의 각 서비스가 자체 데이터베이스를 가져 오거나 모두 동일한 데이터베이스에있는 것이 더 유리합니까? 이 질문에 대한 답변을 제공하는 주요 요인은 무엇입니까?