본문 바로가기

데이터 Story

모델링 매뉴얼을 쓰는 이유 지금 정리하고 있는 모델링 매뉴얼이 책으로 나올지는 모르겠습니다.어쨌든 이번 매뉴얼 책은 이전 두 책(관계형 데이터 모델링 프리미엄 가이드, 관계형 데이터 모델링 노트)과 성격이 다릅니다.이런 경우에는 이렇게 설계하라는, 일종의 패턴을 설명한 책입니다. 개인적으로 사실 모델링 패턴 책을 좋아하지 않습니다.데이터 모델링은 상황에 따라 판단해야 하기 때문에 기계가 판단하는 것과 같은 패턴이 있을 수 없다고 생각해서요.그래서 주변에서 매뉴얼 비슷한 책을 쓰길 권유 받을 때마다 쓰고 싶은 욕구를 접곤 했습니다. 하지만 언젠가 문득 더 늦기 전에 정리해야겠다는 생각이 들었어요.모두가 데이터를 소리 높여 강조하고 데이터 무결성이 중요하다고 말하지만, 그 뿌리인 데이터 모델에는 신경을 쓰지 않습니다.시간이 지나면 전.. 더보기
행위 엔터티의 주 식별자 설계 행위 엔터티의 하위 엔터티가 많지 않다면, 행위 엔터티의 주 식별자를 인조 식별자로 설계하지 않고 업무 식별자로 설계한다. [그림1] 주문 엔터티는 주문이라는 행위를 관리하는 엔터티다.[그림1] 주문 엔터티의 주 식별자는 인조 식별자가 아니라 업무 식별자다. 행위 엔터티는 업무 식별자를 사용하는 것이 원칙이다. 행위 엔터티의 업무 식별자가 있는데로 불구하고 인조 식별자를 사용하면 엔터티의 정체성이 희석될 수 있다. 인위적인 속성이 추가되는 것 자체가 바람직하지 않다. 행위 엔터티의 주 식별자는 업무 식별자이기 때문에 대체로 복잡하다. 만약 행위 엔터티의 하위 엔터티가 상당히 많다면 이때는 업무 식별자를 주 식별자로 사용하지 않고 인조 식별자를 주 식별자로 사용하는 게 바람직하다. 상위 엔터티의 주 식별자.. 더보기
프로미엄 가이드 2쇄 이미지 누락 프리미엄 가이드 2쇄에 누락된 이미지가 많습니다. 인쇄 들어가기 직전의 검판용 파일에는 이상이 없었는데요.생각지도 못했던 일입니다. 제가 쓴 책을 떠나 책을 아끼는 사람으로서 너무 죄송하게 생각합니다.자신의 일에 능숙하지 않은 사람들이 있는 거 같아 안타깝습니다. 누락된 이미지는 우선 이 글에 올리겠습니다. 93페이지 [그림 4.18] 96페이지 [그림 4.23] 100페이지 [그림 4.29] 상단 이미지 316페이지 [그림 10.1] 324페이지 [그림 10.12] 327페이지 [그림 10.16] 328페이지 [그림 10.17] 335페이지 [그림 10.26] 454페이지 [그림 12.12] 더보기
EA(Enterprise Architecture)에 대해서 현재 EA 관련 프로젝트를 하고 있습니다. 관련 논문도 쓰고, 컨설팅도 여러 번 수행했지만 EA는 여전히 쉽지 않네요. 정해진 게 없어서 그럴 것입니다. 오늘은 EA가 무엇인지 중심 잡는 데 도움이 될만한 얘기들을 두서없이 쓰겠습니다. EA는 우선 ISP와 다소 헷갈립니다. 하나는 업무(Business) 위주고 하나는 기술(Technology) 위주인데요. 고객측의 참여 주체가 다르다는 게 핵심일 거 같습니다. ISP는 고객의 업무 현업이 주도적인 역할을 합니다. 반면에 EA는 고객의 IT 현업이 주도적인 역할을 하고요. 물론 핵심 주체가 분명하지 않을 때도 많습니다. 경험상 이럴수록 프로젝트가 힘들어집니다. EA라는 용어를 사용하기 전의 공식 용어가 ITA(Information Technology Ar.. 더보기
속성 분류법 –기초 속성(Basic Attributes) 저는 속성을 아래와 같이 분류합니다. - 기초(Basic) 속성 - 관계(Relationship) 속성 - 추출(Derived) 속성 - 시스템(System) 속성 이는 실제 엔터티에 존재하는 속성을 분류한 것입니다. 즉 순수하게 업무에서 필요한 논리적인 구분이 아니라 물리적인 구분입니다. 기초 속성(Basic Attribute)부터 차례로 설명하겠습니다. 엔터티의 본질을 설명하는 속성이 기초 속성입니다. 이 기초 속성을 보면 엔터티의 정의를 알 수 있습니다. 엔터티에 반드시 존재해야 하는 업무 식별자와 후보 식별자, 엔터티의 특성을 설명하는 속성 등이 이에 해당합니다. [그림1] 주문 엔터티의 주문번호·고객번호·주문일자·배송요청일자·배송지주소 속성이 기초 속성입니다. [그림1] 기초 속성은 오너십(Ow.. 더보기
식별자 종류 – 대리 식별자 대리 식별자(Alternate Identifier)는 주 식별자(Primary Identifier)로 선택되지 않은 후보 식별자입니다. 대체 식별자라고도 하고요. Primary Identifier에 대한 의미로써 Secondary Identifier라고도 합니다. [그림1] 릴레이션에서 후보 식별자는 사원주민번호·휴대폰번호·이메일주소·고객번호 속성입니다. [사원] 더보기
식별자 종류 – 주 식별자 주 식별자(Primary Identifier)는 엔터티에 하나만 존재하는 대표 식별자입니다. 업무 식별자나 후보 식별자와 달리 물리적인 개념이 강해 PK(Primary Key)라고 생각해도 될 거 같습니다. 주 식별자 역할은 두 가지 관점으로 생각할 수 있습니다. 하나는 자신의 엔터티를 바라보는 관점이고요. 다른 하나는 다른 엔터티에서 바라보는 관점입니다. 전자는 자신의 엔터티 내에서 인스턴스를 식별하는 PK 역할이고요. 후자는 다른 엔터티에서 바라볼 때 그 엔터티와의 관계를 식별하는 FK(Foreign Key) 역할입니다. 주 식별자는 물리적으로 인스턴스를 대표하는 역할을 하기 때문에 인스턴스를 조회할 때 사용하고요. 또한 다른 엔터티와 조인(Join)할 때도 주 식별자를 사용합니다. 주 식별자를 선정.. 더보기
판다곰과 원숭이 그리고 바나나 “판다곰과 원숭이와 바나나가 있습니다. 이중 두 가지를 묶는다면 어떤 것을 묶으시겠습니까?” 책을 읽다보면 모델링과 연관해서 생각할 때가 종종 있습니다. 일종의 직업병이죠. 생각하고 싶지 않은데 저절로 생각이 흐르니까 좋지 않은 병입니다. ㅎ 서양과 동양의 차이를 설명한 책을 읽었는데1), 한 부분을 제가 이해한 방식으로 소개하겠습니다. 아리스토텔레스로 대표되는 서양 사람은 사물의 본질을 잘 파악한다고 합니다. 성격 그대로 생각하는 것이죠. 데이터 본질이 생각나더라고요. 반면, 공자로 대표되는 동양 사람에게는 사물의 본질과 함께 관계가 지대한 영향을 미친다고 합니다. ‘관시(관계)’라는 중국어를 강조하던 선배가 생각났고요. 모델링 관계가 생각났습니다. 서양 사람은 자기 자신을 잘 파악해서 개인주의 성향이.. 더보기
식별자(Key) 속성 & 비식별자(Non-Key) 속성 식별자 속성이란 엔터티에 존재하는 인스턴스의 유일성을 보장해 주는 속성이나 속성 집합입니다. 엔터티의 인스턴스마다 서로 다른 값을 가지는 속성이 식별자입니다. 같은 값이 하나라도 존재하면 식별자가 아닙니다. 흔히 말하는 PK는 테이블에 지정된 물리적인 제약(Constraints)입니다. 임의의 속성을 하나 추가하거나 여러 속성을 묶어서 PK 역할을 하도록 만들 수 있기 때문에, PK가 업무 식별자나 후보 식별자와 동일한 개념은 아닙니다. 업무(후보) 식별자는 논리적으로 인스턴스를 구별하는 속성입니다. 식별자를 지칭하는 용어는 여러 가지가 있습니다. 업무 식별자, 후보 식별자, 주 식별자, 대리 식별자, 인조 식별자, 외래 식별자, 슈퍼 식별자 등이 있는데요. 자세한 설명은 곧이어 할 것입니다. 이중에 하.. 더보기
속성이란? 모델링의 3요소는 엔터티, 속성, 관계입니다. 엔터티 정의는 중요하기 때문에 어려운 반면, 속성 정의는 많은 개수 때문에 어려움을 겪습니다. 엔터티나 관계에 비해 압도적으로 많죠. 속성은 엔터티의 성격을 상세하게 기술하는 요소입니다. 속성을 모두 도출(정의)하면 해당 엔터티가 관리하는 데이터가 무엇인지 알기 쉽습니다. 속성은 데이터의 값을 저장하는 저장소입니다. 데이터를 저장하는 가장 작은, 독립된 저장 단위죠. 이렇게 저장된 데이터가 엔터티를 자세하게 묘사합니다. 속성을 모두 도출해야 엔터티가 온전해집니다. 속성이 채워지지 않는 한 모델링은 끝난 것이 아닙니다. 결국 속성을 상세하게 분석하는 시간이 많을수록 데이터 모델의 완성도는 높아집니다. 이를 역으로 표현하면 모델링 시간이 충분히 주어질수록 속성을.. 더보기