더북(TheBook)

이론적으로는 배열과 연결 리스트 같은 기본 데이터베이스 구조를 사용해 데이터를 관리하는 소프트웨어를 만들 수 있다. 하지만 실제로 이런 접근법은 비효율적이다. 데이터 모델과 데이터베이스를 사용하는 것이 좀 더 효과적이며 생산적인 전략이다(그림 4-2).

▲ 그림 4-2 데이터 모델은 데이터 구조 위에 추상화 층을 제공해서 데이터베이스 애플리케이션 개발자가 반드시 관리해야 하는 정보에 더 집중하고 구현 시 발생하는 문제에는 덜 신경쓰게 해 준다


데이터 모델의 구성 요소는 데이터베이스 유형에 따라 달라진다. 관계형 데이터베이스는 테이블 위주로 구성되어 있다. 테이블은 고객, 환자, 주문, 수술 명세 같은 엔터티 정보를 저장하는 데 사용된다. 엔터티에는 특정 엔터티 정보를 가진 속성이 있다. 이러한 속성에는 나이, 성별, 배송 주소 등이 있다.

관계형 데이터베이스에서 테이블은 순차적인 컬럼으로 구성되며 각 컬럼은 엔터티의 속성과 대응된다. 테이블의 로우는 특정 고객이나 환자 같은 엔터티의 단일 인스턴스에 해당한다.

데이터베이스를 설계하는 소프트웨어 공학자는 테이블과 데이터 모델의 다른 요소 구현을 고려해서 데이터 구조를 선택한다. 이렇게 하면 세세한 부분을 신경 써야 하는 애플리케이션 개발자의 짐을 덜어줄 수 있다. 하지만 애플리케이션 개발자도 자신의 데이터베이스에서 사용되는 데이터 모델과 연관된 용어 그리고 설계 패턴을 학습해야 하는 대가를 치른다.

Note 관계형 데이터베이스 설계에서 논리 데이터 모델과 물리 데이터 모델 간에는 극명한 차이가 있다. 엔터티와 속성은 논리 데이터 모델에서 사용되는 용어다. 테이블과 컬럼은 물리 데이터 모델에 상응하는 요소다. 이 책에서는 엔터티와 테이블, 두 용어를 모두 사용하고 있다. 왜냐하면 이 책은 관계형 데이터베이스 설계에 관한 책이 아니며 논리 모델과 물리 모델의 차이점이나 두 용어를 어떨 때 사용하는지 자세히 설명하는 것은 이 책에서 다루는 범위를 벗어나기 때문이다. 관계형 데이터베이스 데이터 모델링에 대해 더 알고 싶다면 마이클 에르난데스(Michael J. Hernandez)의 《Database Design for Mere Mortals, Second Edition》(Addison-Wesley, 2003)을 참조하기 바란다.

이어서 키, 값, 이름공간, 파티션, 파티션 키를 포함해 키-값 데이터베이스의 데이터 모델링과 관련된 주요 용어를 살펴볼 것이다.

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