Data Base
-
데이터 모델링24 - 엔티티 모델링의 어려움을 극복할 방법론과 전략3Data Base/관계형 데이터 모델링 2023. 9. 26. 17:54
서브타입과 E-R패턴 3 그림 11-14 두 개의 서브타입셋이 공존 그림 11-15 하나의 주요 관점으로 묶은 모습 하나의 엔티티에 서브타입셋(관점,차원)이 2개 이상인 경우 서브타입을 어떻게 바라보아야 하는지 정리해보자. [그림 11-14]의 엔티티에는 와 라는 두 서브 타입셋이 공존한다. 혹자는 이처럼 여러 개의 서브 타입이 존재하는 모델은 잘못된 것이라고 주장하기도 한다. 슈퍼타입인 에 서브타입인 를 엔티티화 할 경우 거주나 주소에 대한 여타다른 속성을 갖는 엔티티가 될 가능성이 내포된다. 그러므로 엔티티로 분리하였을때 다른 속성들이 포함될 여부가 적은 를 엔티티로 분리하고 해당 엔티티의 속성으로 를 넣는것이 바람직하다. 그래서 하나의 주요 관점으로 묶어 [그림 11-15]처럼 표현하는 것이 적절하..
-
데이터 모델링24 - 엔티티 모델링의 어려움을 극복할 방법론과 전략3Data Base/관계형 데이터 모델링 2023. 9. 26. 16:22
서브타입과 E-R패턴 2 그림 11-9 배타적 나눔의 예 그림 11-10 E-R 패턴 #2 - 집합의 중첩 나눔 예) 사원의 직군(겸직 가능) 이제부토 집합의 중첩(비배타적,inclusive)나눔에 의해 만들어지는 두 번째 E-R 패턴을 살펴보자. 직급과 달리, 역할(직무)에 따라 분류해보면 나뉜 집합 간에 중첩이 생기는 것을 확인 할 수 있다. 예를 들어 프로젝트 이해관계자의 역할을 *PM, *PL, 설계/개발자로 간단히 나눌 경우 PL 중 설계/개발을 함께 수행하는 인력을 적지 않게 찾아볼 수 있다. 이러한 분류 데이터를 담으려면 [그림 11-10]과 같은 구조로 표현해야 한다. *PM(Project Manager) : 소프트웨어 프로젝트 모든 관리 업무를 책임지는 사람, 외부 팀과 인터페이스를 담당..
-
데이터 모델링23- 엔티티 모델링의 어려움을 극복할 방법론과 전략2Data Base/관계형 데이터 모델링 2023. 9. 26. 15:04
서브타입과 E-R패턴 1 서브타입을 중심으로 집합을 나누거나 묶어보며 E-R패턴(E와 R은 엔티티와 엔티티들 사이의 관계(Relationship)로, ERD에서의 그것과 동일하다.)이라는 5가지 데이터 모델 유형을 확인해보려 한다. 그림 11-5 RDB이론에서의 속성, 튜플, 관계(Relation) RDB에서의 'R'은 Relationship이 아닌 Relation의 R이다. Relation은 1970 코드(E.F Codd)박사가 발표한 "A Relational Model of Data for Large Shared Data Banks"라는 논문에서 소개한 주제로 '데이터를 2차원 표 구조로 표현하고 관리한다'고 말할 때의 "표"에 해당하는 개념이다. 종종 관계형 데이터베이스를 잘못해석하는 것을 목격할 ..
-
데이터 모델링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]에 몇 가지 업무 영역의 주체, 대상, 행위를 예로 정리한 것을 참고 하면 이해하기 수월하다. 그런데 입금, 구매, 납부와 같은 업무 행위는 빈번하게 일어..