Data Base/관계형 데이터 모델링
-
데이터 모델링22- 엔티티 모델링의 어려움을 극복할 방법론과 전략1Data Base/관계형 데이터 모델링 2023. 9. 25. 18:41
소프트웨어 개발에 대한 단상과 모델링 전략 1.엔티티 모델링이 어려운 이유는 경험재가 아니기 때문이다. 앞선 게시글 [데이터 모델링15-엔티티 모델링의 어려움]에서 엔티티 모델링이 어려운 이유 다섯가지를 살펴보았다. 여기에 덧붙여 데이터 모델의 특성에서 기인한 이유 하나를 더 추가하려 한다. 모델은 프로그램과 같은 경험재(experience goods)가 아니다. TV는 구매 후 바로 확인해서 작동이 안되면 즉시 반품할 수 있고, 프로그램은 컴파일 에러가 발생하면 즉시 확인 후 수정이 가능하며 실행 결과도 즉가 눈으로 확인된다. 그렇지만 방금 그린 ERD는 잘 동작하는지, 다른 문제는 없는지 즉시 확인해볼 수 없다. 모델은 아키텍처으 기저에 존재하여 구조적 문제가 당장 수면 위로 올라오지 않는다. 작성한..
-
데이터 모델링21 - Account, 개체 그룹핑 모델링 이해 2Data Base/관계형 데이터 모델링 2023. 9. 25. 15:10
서비스, 청구를 통해서 알아보는 업무처리를 묶는 단위 개체의 중요성 상위 개체 집합이 누락되었을 때의 문제점을 이해하였으니, 이를 바탕으로 앞선 게시글에서 살펴본 한 가족의 통신 서시스 사용 상황을 조금 확장해보자. 그림 10-3 청구 단위를 독립시켜 가족 전체의 수납을 하나로 통합 엄마,아빠, 딸 모두 같은 이동통신사의 서비스를 이용한다. 딸은 아빠 명의로 가입하였고 그 요금은 엄마가 낸다. 정확하게 다시 표현하면 딸이 사용한 서비스 요금을 지불할 의무는 엄마에게 있으므로 통신사는 엄마 앞으로 사용료를 청구한다. 이때 엄마는 본인사용료와 딸의 사용료가 합쳐진 단위로 청구를 요청 받는다. 여기에 더해 아빠는 업무용 번호를 하나더 사용하며, 청구는 이 둘을 묶은 단위로 요청받기를 희망한다. 또한 엄마와 아..
-
데이터 모델링20 - Account, 개체 그룹핑 모델링 이해Data Base/관계형 데이터 모델링 2023. 9. 25. 11:18
Account라는 마스터 데이터, 업무 행위의 논리적 주체 [그림 9-6]에서 엔티티가 없었 다면 어떤 문제가 발생했을까? Account(계정)의 개념을 조금이라도 알고 있는 사람이라면 이미 눈치 챘겠지만, 이 없다면 청구 업무가 고객이 계약한 서비스 단위로밖에 이루어질 수 없다. 그림 10-1 3인가족의 이동통신 서비스 사용 상황 [그림 10-1]과 같이 엄마,아빠, 아들로 구성된 가족은 모두 같은 이동통신사의 서비스를 이용한다고 해보자. 미성년자인 딸은 아빠 명의로 가입되어 있으며 그 요금은 엄마가 낸다. 그리고 엄마는 매월 청구서에 본인이 사용한 서비스와 딸의 서비스 비용을 하나의 청구 단위로 지불할 것을 요청받는다. 즉, 개별 계약 단위가 아닌 계약의 묶음 형태로 청구가 이루어지고 있다. 그런데 ..
-
데이터 모델링19 - 데이터에는 유형, 종속관계, 계층구조가 존재한다3-2Data Base/관계형 데이터 모델링 2023. 9. 22. 17:16
최상위의 데이터, 마스터 데이터2 그림 9-6 서비스 제공을 위한 개념 모델 [그림 9-6]은 고객에게 서비스 상훔을 제공하고 계약 기간 동안 비용을 청구하는 일반적인 기업의 데이터 모델 원형에 가까운 개념 모델이다. 다소 복잡해 보일 수도 있으나 구조적인 관점에서 보면 크게 어렵지 않다. 은 다수의 을 포함하는 을 할 수 있고, 이 계약의 실사용자와 명의자는 다를 수 있다. 에 대한 비용 청구는 이라는 단위로 이루어진다. 여기서 하나의 은 일반적으로 하나의 과 관계가 있으나, 다수의 을 묶을 수도 있는 구조다. 청구 부분에 집중해보자. 서비스업체(누가)가 고객(무엇)을 대상으로 청구라는 업무행위를 하는 것이다.(업체는 명확한 단일 개체이므로 모델에서는 생략되었다.)이 청구에 대해 고객에게 돈을 받는 업..
-
데이터 모델링18 - 데이터에는 유형, 종속관계, 계층구조가 존재한다3-1Data Base/관계형 데이터 모델링 2023. 9. 22. 15:02
최상위의 데이터, 마스터 데이터1 표 9-1 업체별 업무 데이터의 주체 / 대상 / 행위 주체 대상 행위 은행 고객 계좌 입금, 출금, 이체 전자제품 제조사 전자제품 구매, 반품, A/S 이동통신사 서비스 계약 요금제 변경, 요금 납부 업무 데이터를 잘 살펴보면 패턴, 유형, 계층 같은 특성이 보일것이다. 왜냐하면 업무 데이터는 결국 누가(주어) 어떤 것을 대상(목적어)으로 특정시점에 어떤 업무 행위(동사)를 했다는 기록이기 때문이다. 모든 업무 데이터 모델에는 해당 데이터를 통해서 관리하려는 업무 행위의 주체와 대상이 존재하기 마련이다. [표 9-1]에 몇 가지 업무 영역의 주체, 대상, 행위를 예로 정리한 것을 참고 하면 이해하기 수월하다. 그런데 입금, 구매, 납부와 같은 업무 행위는 빈번하게 일어..
-
데이터 모델링 17 - 데이터에는 유형, 종속관계, 계층구조가 존재한다2Data Base/관계형 데이터 모델링 2023. 9. 22. 13:39
데이터의 종속과 계층 구조 데이터 간에는 다양한 연관 관계가 존재한다. 그 중에서 데이터의 존재적 관점에 집중해서(대출 - 대출 상환처럼 다른 데이터의 발생에 영향을 미치는 데이터의 관점으로) 데이터 간 종속성에 대해 알아보자. 참고로 정규화 이론의 기반인 함수적 종속성이 속성 간 종속 관계(즉, 엔티티 안에서의 종속성)를 추적하는 것이라면, 앞으로 살펴볼 내용은 개체(인스턴스)수준의 종속성을 따지는 것이다. 엔티티에는 크게 다른 엔티티에 의존하지 않고 스스로 존재하는 강한(strong)엔티티와 반드시 상위 엔티티가 있어야 존재할 수 있는 약한(week)엔티티가 있다. 종속이란는 개면이 다소 추상적일 수 있어 덧붙이자면, 약한 엔티티는 자신의 속성만으로 식별자(key)를 명세할 수 없는 불완전한 개체 유..
-
데이터 모델링16 - 데이터에는 유형, 종속관계, 계층구조가 존재한다1Data Base/관계형 데이터 모델링 2023. 9. 22. 11:36
데이터 유형 업무 데이터를 유심히 살펴보면 일반적으로 데이터에는 그 성격이 유사해서 하나의 틀로 묶을 수 있는 유형 혹은 패턴이 존재함을 발견할 수 있다. 예를 들어 다음 두 사건을 놓고 생각해보자 A가 S전자의 상품 X를 2015년 10월 17일에 구매했다. B가 K은행의 계좌 Y에 2015년 10월 18일 15시 27분경 100만원을 입금했다. 구매와 입금에는 1)행위의 주체인 A와 B가 존재한다. 이 문장은 주어에 해당한다. 그리고 이들 2)행위의 대상인 상품 X와 계좌 Y도 보인다. 이는 목적어에 해당한다. 또 두문장에서 구매와 입금이라는 3)행위 자체와 4)행위가 일어난 시각도 물론 확인할 수 있다. 사실 업무데이터라 함은 업무와 관련되 사건의 기록이며, 사건의 기록은 육하원칙에 따라 정리가 가..
-
데이터 모델링15 - 엔티티 모델링의 어려움Data Base/관계형 데이터 모델링 2023. 9. 21. 15:50
엔티티 모델링이 어려운 이유 엔티티 모델링이 어려운 이유를 한마디로 표현하면 엔티티의 적당한 크기(추상화 수준)를 결정하는 기준을 찾기 어렵기 때문이다. 사실 엔티티의 추상화 수준을 무시한다면 세상의 모든 비즈니스는 극단적 단 2 개의 엔티티와 관계로 설명하고 관리할 수 있다. 그림 8-10 극단적으로 추상화한 모델 엔티티 모델링이 어려운 이유를 세분화하면 크게 다음 다섯 가지 정도로 정리할 수 있다. 또한 이 다섯 가지의 이유는 서로 맞물려 있는 교집합이 있는 유기적인 내용이다. 첫째, 데이터 집합을 정의하기 쉽지 않다. 모델링은 결국 업무 데이터의 분류와 묶음이라는 행위 인데, 그 기준을 세우기 어렵다. 예를 들어 '여신 연체관리 진행'이라는 은행 업무가 있다고 가정한다면, 엔티티로 를 만들어야 하는..