더북(TheBook)

덧붙여 말하면 속성 문제는 설계자에게 정형 데이터와 반정형(Semistructured) 데이터를 구별할 수 있는 능력을 요구한다. 관계형 모델에서는 실제 데이터를 입력하기 전에 가능한 모든 컬럼과 데이터 타입을 나열해 데이터를 제대로 정의해야 한다. 이것은 XML이나 JSON 문서처럼 레코드 수준에서 동일한 스키마를 가질 필요가 없는 반정형 데이터와는 정반대 특성이다. 따라서 관계를 정의하는 데 어려움을 겪고 있다면 혹시 반정형 데이터를 다루고 있지는 않은지, 관계형 모델에서 직접 반정형 데이터를 사용할 필요는 없는지 자문해 보는 것이 좋다. 현재 SQL 표준은 XML과 JSON을 SQL에서 직접 사용하도록 해서 선택의 폭이 넓은데, 이것은 책의 범위를 넘어선다.

앞에서 논의한 내용의 핵심은 데이터 모델의 정확성 유무를 규정하는 것은 비즈니스 규칙이며, 여러분은 애플리케이션을 설계할 때 이 점을 감안해야 한다는 것이다. 원래는 데이터 모델 설계에 맞춰 애플리케이션을 구현해야 하지만, 애플리케이션에 맞춰 데이터 모델을 설계할 가능성이 더 크므로 종종 어려운 일이 된다. 실제로 여러 데이터 모델 중 하나를 선택하면 데이터베이스를 사용할 애플리케이션을 설계하는 방법에 상당한 수준의 변경이 뒤따른다. 이런 변경은 애플리케이션의 개발 비용과 출시 시간에 영향을 미칠 수 있다.

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