30장 데이터베이스는 세부사항이다

 

들어가며

 

데이터베이스는 엔티티가아닌 데이터에 접근할 방법을 제공해주는 유틸리티이자 저수준의 세부사항임.

 

 

 

관계형 데이터베이스

 

관계형 데이터베이스의 기술이 얼마나 뛰어나든 그저 기술이며 데이터가 테이블 구조를 가진다는 사실은 오직 아키텍처 외부 원 최하위수준의 함수만 알고있어야함. 다시말하지만 그저 저수준의 세부사항이기때문.

 

 

 

데이터베이스 시스템은 왜 이렇게 널리 사용되는가?

 

그 이유는 '디스크'에 있음.

48인치를 겹겹이 쌓아 겨우 20MB를 담을 수 있었던 디스크가 현재는 지름 3인치의 단일 판이 1TB이상을 저장할 수 있음. 하지만 치명적인 단점으로 느리다라는 특성이 존재함. 디스크 구조상 필요한 바이트를 읽기위해선 밀리초 단위가 걸림, 대다수의 프로세서는 한명령어를 처리하는 주기에 비해 백만배나 오래걸리는 시간임. 이런 시간 지연문제를 완화하기위해 색인, 캐시, 쿼리 계획 최적화, 데이터 접근 및 관리 시스템이 필요해졌으며 두가지 유형의 시스템으로 발전됨.

 

파일 시스템과 관계형 데이터베이스 시스템임.

 

 

 

디스크가 없다면 어떻게 될까?

 

디스크는 RAM으로 대체되고 있음. 그러므로 데이터들은 테이블구조, 파일구조가 아닌 연결리스트, 트리, 해시테이블, 스택, 큐 등으로 체계화 될것이며 데이터에 접근할 때는 포인터나 참조를 사용할 것임.

 

 

 

세부사항

 

세부사항인 데이터베이스는 그저 메커니즘에 불과하며, 디스크 표면과 RAM 사이에서 데이터를 이리저리 옮길 때 사용할 뿐임.

따라서 아키텍처 관점에서 본다면 데이터가 어떤 형태인지는 절대 신경 써서는 안됨.

 

 

 

하지만 성능은?

 

성능은 아키텍처와 관련된 관심사이지만 데이터 저장소의 측면에서 보는 성능은 완전히 캡슐화되어 업무 규칙과는 분리될 수 있는 저수준 관심사임. 그러므로 데이터 저장소 측면의 성능은 전반적인 아키텍처와는 아무런 관련이 없음.