관계형 데이터베이스
- 관계형 데이터베이스는 데이터를 저장하고 접근하는 데 탁월한 기술이다.
- 그러나 관계형 데이터베이스도 결국 아키텍처 관점에서 보자면 세부사항이다.
- 따라서 데이터를 테이블에 행 단위로 배치한다는 자체는 아키텍처적으로 볼 때 전혀 중요하지 않다.
- 애플리케이션의 유스케이스는 이러한 방식을 알아서는 안되며 관여해서도 안 된다.
데이터베이스 시스템은 왜 이렇게 널리 사용되는가?
- 그 이유는 '디스크'에 있음.
- 디스크 구조상 필요한 바이트를 읽기위해선 밀리초 단위가 걸림, 대다수의 프로세서는 한명령어를 처리하는 주기에 비해 백만배나 오래걸리는 시간임. 이런 시간 지연문제를 완화하기위해 색인, 캐시, 쿼리 계획 최적화, 데이터 접근 및 관리 시스템이 필요해졌으며 두가지 유형의 시스템으로 발전됨.
- 파일 시스템과 관계형 데이터베이스 시스템임.
디스크가 없다면 어떻게 될까?
- 디스크는 RAM으로 대체되고 있다.
- 데이터가 데이터베이스나 파일 시스템에 있더라도, RAM으로 읽은 후에는 다루기 편리한 형태(리스트, 집합, 스택, 큐, 트리 등로 그 구조를 변경한다.
- 데이터를 파일이나 테이블 형태로 그대로 두는 경우는 거의 없다.
세부사항
- 데이터베이스는 그저 매커니즘에 불과하며, 디스크 표면과 RAM 사이에서 데이터를 이리저리 옮길 때 사용할 뿐이다.
- 데이터베이스는 사실상 비트를 담는 거대한 그릇이며, 데이터를 장기적으로 저장하는 공간에 지나지 않는다.
- 데이터베이스는 세부사항일 뿐이다!
하지만 성능은?
- 성능은 아키텍처와 관련된 관심사이지만 데이터 저장소의 측면에서 보는 성능은 완전히 캡슐화되어 업무 규칙과는 분리될 수 있는 저수준 관심사이다.
- 그러므로 데이터 저장소 측면의 성능은 전반적인 아키텍처와는 아무런 관련이 없음.