더북(TheBook)

오른쪽에는 CPU가 데이터를 요청했을 때 해당 메모리에서 데이터를 가져오는 클럭 수를 표시했습니다. 메인 메모리만 해도 20클럭으로 느리지만, 하드 디스크 속도와 비교할 것은 안 됩니다. 하드 디스크에서 데이터를 가져오는 것은 그만큼 리소스가 많이 필요한 연산입니다. 물론 최근에는 SSD 등 성능이 향상된 보조 기억 장치가 등장하여 그림과 같이 느리지는 않겠지만, 그래도 속도가 느린 것은 여전합니다.

대부분의 자료 구조는 메인 메모리를 기준으로 설계했습니다. 어찌 보면 당연한 것입니다. 프로세스를 시작하면 하드 디스크에서 필요한 메모리를 메인 메모리로 가져오고, 이 메모리를 기반으로 프로그램을 수행하니까 말이지요. 프로그래밍을 처음 공부할 때 “데이터베이스에 접근하는 횟수를 최대한 줄여라.”라는 말을 많이 들었을 것입니다. 데이터베이스는 데이터를 하드 디스크에 저장하기 때문입니다. 데이터베이스는 하드 디스크에 저장되는 데이터를 최대한 효율적으로 관리하는 것뿐이지 하드 디스크가 가지는 하드웨어적 한계를 뛰어넘는 것은 아닙니다.

그렇다면 데이터베이스는 어떻게 데이터를 삽입, 탐색, 삭제할까요? 데이터베이스가 사용하는 자료 구조를 공부하면 앞으로 데이터베이스를 설계하고 SQL을 작성하는 데 도움을 많이 받을 수 있을 것입니다. 테이블에 레코드를 저장하고, 읽어 오고, 삭제하는 데 사용하는 자료 구조가 바로 B 트리와 B 트리의 변형인 B+ 트리입니다. 많은 데이터베이스가 B+ 트리를 사용합니다.

다음 절에서는 B 트리를 알아보기 전에 먼저 B 트리를 사용하는 데이터베이스에서 데이터가 삽입, 탐색, 삭제되는 과정을 훑어보겠습니다. 데이터베이스를 이해해야 B 트리가 내부적으로 어떻게 작동하는지 이해하기 쉬울 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.