728x90
반응형

이전 포스팅에서 데이터 모델링의 범주화와 추상화에 대해서 알아보았습니다

너무나도 범주화가 중요했지요

범주화는 본질을 정확하게 파악해서 성격이 유사한 개체로 묶는 과정이었습니다

추상화는 가장 핵심적인 특성만 추리하는 과정입니다

 

이렇게 과정을 거치면서 본질과 현상을 구분하여 본질적인 개체를 무시하게 되면

큰 문제점이 드러나는 것도 알아보았습니다

 

더 자세한 사항을 알고 싶다면 아래의 포스팅을 확인해보세요

 

 

 

2022.08.12 - [Data_Modeling/Methodology] - 데이터 모델링 개제의 본질적인 정보와 역할 정보를 구분해야 하는 이유는? 범주화와 추상화의 중요성은?

 

데이터 모델링 개제의 본질적인 정보와 역할 정보를 구분해야하는 이유는? 범주화와 추상화의

이전 포스팅에서는 데이터 관점에 대해서 알아보았습니다 그 관점이라는 것은 우리가 필요로 하는 데이터 값을 결정할 때 여러 가지 정보가 기준이 되어 데이터 값에 영향을 주었다면 그 여러

tantangerine.tistory.com

 


 

 

3단계 스키마 구조가 중요한 이유

 

데이터 모델링을 공부한다고 하면

정말 자주 나오는 것이 3단계 스키마 구조입니다

 

외부 스키마, 개념 스키마, 내부 스키마

이 3개의 스키마 구조인 이 단어들을 많이 들어보셨을 것입니다

 

하지만

이 스키마 구조가 왜 중요한지에 대해서는

생각해보지 못했을 수도 있다고 생각합니다

 

이론적으로 접근해서 

외부 스키마는 사용자 관점의 정보 단위 뷰

개념 스키마는 사용자 관점을 데이터 관점으로 통합한 뷰

내부 스키마 데이터가 DBMS에 저장되는 논리적 구조

 

위의 사항으로만 인지하고 실제 모델링할 경우

생가지 못한 상황이 발생할 수 있습니다

 

이제 이야기를 한번 해봅시다

 

개념 스키마는 외부 스키마와 독립된 계층이라는 것입니다.

하지만 프로젝트를 하다 보면 이상한 구조의 스키마를 보게 됩니다

외부 스키마를 다루듯 테이블을 화면별, 업무 프로세스별로 만드는 경우가 그런 상황입니다

이렇게 되면 스키마가 독립성이 줄어들고 결합도만 커지는 상황이 생깁니다

 

이런 상황이 발생하면 좋은 스키마 구조라고는 할 수 없습니다

외부 스키마에서 정의된 것들이 개념과 내부 스키마를 무시한 채 구조가 정립된 거라고 할 수 있습니다

화면이 변경되면 테이블을 수정하거나 새로운 테이블을 만드는 상황이 올 수도 있다는 것입니다.

그럼 새 프로그램을 개발하는 상황이 되고 그것을 운영하려면 테스트도 새롭게 해야 합니다.

결론적으로 새로운 공수가 발생하게 됩니다.

 

그래서 데이터의 독립성을 정확하게 분석하고 이해해서

데이터 독립성을 해치지 않도록 개념 스키마에 근거해서 모델링해야 합니다.

개념 스키마는 외부 스키마보다 데이터의 본질에 가깝습니다.

그 본질을 무시한 체 외부 스키마의 사용자 관점으로 모든 것을 개발하게 되면

개발자들의 공수들이 늘어나게 되며 이것은 운영에서 지속적인 스트레스가 발생할 수 있습니다 

 

그 데이터들의 형태들을 생각해서 유사한 것을

묶을 수 있는 범주화가 필요할 것입니다

범주화는 이전 포스팅에서 알아보았습니다

 

우리가 결국 만드는 것은 저장 구조입니다

그 구조의 형태는 스프레드 시트와 같은 2차원 표며,

그 표에 어떤 데이터를 어떻게 관리할 것인지를 고민하는 것이 데이터 모델링입니다

 

 

이렇게 우리는 이론적으로 간단하게 생각할 수도 있는 스키마 구조를

본능적으로 이러한 것들을 생각하면서 모델링할 수도 있습니다

하지만 이러한 것들을 생각을 하고 관점을 높일 수 있는 것은 좋은 것 같습니다

 


반응형

 

개념 모델, 논리 모델, 물리 모델, 그리고 현실적인 논리 모델

 

데이터 모델을 보는 3가지 관점으로

개념 모델, 논리 모델, 물리 모델이 있습니다.

 

논리 모델은 물리적인 요소를 고려하지 않고 업무 관점의 모델이며

물리 모델은 물리적인 요소를 고려한 현실적인 모델입니다.

 

이렇게 관점에 대해 듣다 보면 의문점이 생기기 마련입니다.

 

논리 모델에서 현실적인 항목을 반영하면 잘못된 것인가?

논리 모델과 물리 모델 간의 차이가 심하면 모델링은 잘못된 것인가?

그리고 개념 모델은 어느 정도의 수준의 모델인가?

 

이런 의문점을 해결하기 위해서는 

우선 개념 모델링에 대해 정확하게 이해하는 것이 좋습니다.

 

개념 모델주식 별자는 물론이며

엔터티 간의 관계와 주요 속성이 모두 그려진 구체적인 모델입니다.

개념 모델은 가장 특징적인 주요 속성 및 식별까지만 도출해서 전체적인 그림을 그리는 것입니다

품질 좋은 논리 모델을 만들기 위해 반드시 거쳐야 합니다.

 

논리 모델은 주요 엔터티뿐 아니라

모든 엔터티와 개별 엔터티의 속성모두 도출된 구체적이고 정규화된 모델입니다.

논리 모델은 업무 데이터를 테이블 수준이 아닌,

정보 요구사항을 인간이 이해하기 가장 적합한 수준으로

통합하거나 분리한 형태의 모델입니다.

 

이렇게 개념 모델은 논리 모델을 정확하게 그리기 위해 구체적인 뼈대를 형성하여 만들고

논리 모델은 그 뼈대를 바탕으로 살을 붙이는 과정입니다.

 

그렇다면 개념 모델은 어느 정도 수준으로 모델링해야 할지 알 수 있을 것입니다. 

 

이제 남은 것은 물리 모델과 논리 모델의 차이점과 역할을 분명히 할 필요가 있겠습니다.

 

논리 모델에서 성능 이슈는 아니지만

전체 구조에 영향을 미치는 요소들은 좀 더 일찍 결정하는 것이 중요합니다.

그래서 물리 모델에서는 무결성이 조금 손상되더라도

성능과 같은 현실적인 이슈를 최대한 해결하기 위한 작업이라고 할 수 있습니다

 

그러니 논리에서는 최대한 사람이 이해하기 가장 쉬우면서

가능한 한 테이블에 유사한 형태의 모델이어야 합니다.

그렇게 작업이 된 상태에서 물리 모델을 적용해서 성능 이슈를 해결해야 할 것입니다

 


 

프로젝트 성패를 결정짓는 데이터 모델링 이야기 中 by김상래

 

 

 

오늘의 포스팅은 

이전에 많이 배웠던 기본적인 것들이었습니다

3가지 관점과 3단계 스키마를 단 3줄로 정리된 이론적이 것이었지요

하지만 이렇게 관점을 어떻게 보고 어떻게 생각하는지에 대한

사고력을 높이는 것은 상당히 좋은 경험이었던 것 같습니다

 

오늘도 이렇게 좋은 한 걸음을 나아간 것 같습니다

그럼 다음 포스팅도 기대해주세요

 

728x90
반응형

+ Recent posts

Powered by Tistory, Designed by wallel