본문 바로가기

분류 전체보기

식별자(Key) 속성 & 비식별자(Non-Key) 속성 식별자 속성이란 엔터티에 존재하는 인스턴스의 유일성을 보장해 주는 속성이나 속성 집합입니다. 엔터티의 인스턴스마다 서로 다른 값을 가지는 속성이 식별자입니다. 같은 값이 하나라도 존재하면 식별자가 아닙니다. 흔히 말하는 PK는 테이블에 지정된 물리적인 제약(Constraints)입니다. 임의의 속성을 하나 추가하거나 여러 속성을 묶어서 PK 역할을 하도록 만들 수 있기 때문에, PK가 업무 식별자나 후보 식별자와 동일한 개념은 아닙니다. 업무(후보) 식별자는 논리적으로 인스턴스를 구별하는 속성입니다. 식별자를 지칭하는 용어는 여러 가지가 있습니다. 업무 식별자, 후보 식별자, 주 식별자, 대리 식별자, 인조 식별자, 외래 식별자, 슈퍼 식별자 등이 있는데요. 자세한 설명은 곧이어 할 것입니다. 이중에 하.. 더보기
무엇을 하며 죽음을 준비할 것인가? 저는 재정에 대한 설계를 크게 세 꼭지로 구분합니다. 의식주 설계, 자식 교육 설계, 그리고 노후 설계인데요. 이 중에 해결 가능하신 게 몇 가지인가요? 월급쟁이가 유산이 없다면 세 번째 설계는 거의 불가능하다고 생각되네요. 몇 달 전에 은퇴 설계에 대한 세미나를 들은 적이 있습니다. 사실 좋은 상품이 있는지, 어떤 특별한 포트폴리오가 있는지를 들으러 갔는데요. 내용은 약간 달랐습니다. 왜 일하는지에 대한 내용이 있었는데요. 젊어서는 생업이나 출세를 위해서 일하지만 노년에는 소명을 위해서 일한다는 내용이었죠. 소명을 위해 일한다는 것이 무엇인지 생각하게 됐습니다. 우선 돈을 벌 목적으로 일하는 건 아니라는 생각이 들었습니다. 은퇴 후에도 돈을 벌기 위해서 일한다면, 소명 생각을 할 수 있을까요? 그렇기 .. 더보기
속성이란? 모델링의 3요소는 엔터티, 속성, 관계입니다. 엔터티 정의는 중요하기 때문에 어려운 반면, 속성 정의는 많은 개수 때문에 어려움을 겪습니다. 엔터티나 관계에 비해 압도적으로 많죠. 속성은 엔터티의 성격을 상세하게 기술하는 요소입니다. 속성을 모두 도출(정의)하면 해당 엔터티가 관리하는 데이터가 무엇인지 알기 쉽습니다. 속성은 데이터의 값을 저장하는 저장소입니다. 데이터를 저장하는 가장 작은, 독립된 저장 단위죠. 이렇게 저장된 데이터가 엔터티를 자세하게 묘사합니다. 속성을 모두 도출해야 엔터티가 온전해집니다. 속성이 채워지지 않는 한 모델링은 끝난 것이 아닙니다. 결국 속성을 상세하게 분석하는 시간이 많을수록 데이터 모델의 완성도는 높아집니다. 이를 역으로 표현하면 모델링 시간이 충분히 주어질수록 속성을.. 더보기
완전(Complete) 서브타입 & 불완전(Incomplete) 서브타입 지난 번에 서브타입을 구분하는 방법으로 배타(Exclusive)·중복(Inclusive) 서브타입을 설명했습니다. 이번에는 완전(Complete) 서브타입과 불완전(Incomplete) 서브타입을 설명하겠습니다. 완전(Complete) 서브타입은 슈퍼타입의 모든 인스턴스가 최소한 하나의 서브타입 인스턴스와 관계가 존재하는 서브타입입니다. 반면에 불완전(Incomplete) 서브타입은 슈퍼타입에만 인스턴스가 존재하고 서브타입에는 인스턴스가 존재하지 않는 서브타입입니다. 즉 고유 속성이 존재하지 않는 서브타입입니다. 이렇게 슈퍼타입 인스턴스와 서브타입 인스턴스의 관계를 인스턴스 제약(Instance Constraints)이라고 합니다. 인스턴스 제약에 따라 완전(Complete) 서브타입과 불완전(Incom.. 더보기
배타 서브타입 & 중복 서브타입 서브타입은 크게 배타 서브타입과 중복 서브타입으로 구분할 수 있습니다. 배타(Exclusive 또는 Disjoint) 서브타입은 서브타입 부분 집합 간에 공통 부분을 갖지 않는 서브타입입니다. [그림1]은 배타(Exclusive) 서브타입입니다. [그림1] 하나의 슈퍼타입 인스턴스는 단 하나의 서브타입과 관계(일대일 관계)가 존재합니다. 따라서 고객은 개인 고객이거나 사원 둘 중 하나입니다. 서브타입 간에 상호 배타적이므로 일반적으로 전체 서브타입의 합은 슈퍼타입이 됩니다. 즉 개인 고객과 사원을 합치면 전체 고객이 됩니다. [그림2]는 정보 공학(Information Engineering) 표기법의 배타 서브타입입니다. 서브타입 기호에 X 표시가 있습니다. [그림2] [그림3]은 중복(Inclusive.. 더보기
정규화에 대한 주절거림 블로그에 서브타입에 대한 글을 쓰고 있는데요. 변화를 위해 다양한 주제의 글을 올리겠습니다. 나이를 먹을수록 확실히 체력의 부담을 느낍니다. 일주일에 하나씩은 올리려는 생각이 한 달에 두 개로 줄고... 실제는 하나만 올라가기도 하고요. 최근에 정규화에 대해 다시 생각하고 있습니다. 지나치게 사적인 얘기지만 저는 모델링이 자신 있는데요. 남들이 뭐라하든... ㅎㅎ 오래 전부터 해 오던 훈련 때문입니다. 속성의 종속 관계를 파악해서 엔터티를 도출하는 훈련인데요. 쉽게 말해 속성이 엔터티에 속하는 게 옳은지를 판단하는 것입니다. 이 훈련의 핵심은 식별자와 종속성입니다. 엔터티를 대표하는 속성(업무 식별자)을 찾아야 하고요. 그 속성을 기준으로 대상 속성이 종속됐는지 여부를 판단합니다. 종속성이 없다면 다른 .. 더보기
2012년 1월 1일입니다 첫째 소망, 둘째 믿음, 셋째 사랑, 넷째 긍정적인 마인드, 다섯째 두려움 극복, 여섯째 불굴의 의지, 일곱째 변화 수용, 여덟째 신뢰감, 아홉째 나눔, 열번째 각오 2012년이 밝았습니다. 제겐 중요한 해가 될 것 같습니다. 해야 할 일이 많아서 힘을 내야 합니다. 매주 노숙자와 예배를 드립니다. 갈 곳 없어 거리에서 지내다 쉼터로 흘러온 사람들. 처음엔 표정이 어둡고 자신감이 없어 보이지만 지내보면 우리와 똑같다는 생각이 듭니다. 위에 적은 열 가지는 같이 예배드리는 노숙자 중의 한 분이 쓴 글입니다. 예배와 독서로 변화된 자신을 느끼면서 한 다짐이라고 합니다. 지금은 갈 곳이 없어 쉼터에서 지내지만 비젼이 있다고 믿습니다. 위 글을 읽고 저 또한 마음을 다시 다잡습니다. 문득문득 보이는 나의 나약함.. 더보기
서브타입은 어떻게 도출하는가? 서브타입을 도출하는 방법은 크게 두 가지입니다. 두 개 이상의 유사한 엔터티에서 공통 속성을 분류하는 방법과, 복잡한 엔터티에서 유사한 속성끼리 분류하는 방법이 있습니다. 전자는 엔터티를 통합(Generalization)하는 행위이고, 후자는 엔터티를 상세화(Specialization) 또는 논리화(Logicalization)하는 행위입니다. 모든 엔터티가 서브타입이 존재하는 것은 아닙니다. 서브타입이 도출되는 엔터티는 소수인데요. 통합할 수 있고 상세화할 수 있는 엔터티에서는 서브타입을 반드시 도출해야 합니다. 물리 모델링 단계에서 다시 하나의 엔터티로 통합되더라도 과정 중에는 도출해야 합니다. 모델링은 과정을 의미하니까요. [그림1] 모델에는 유사한 엔터티가 있습니다. 두 개 이상의 엔터티가 유사하다.. 더보기
서브타입(Subtypes)이란? 지금까지 통합에 대해 설명했습니다. 오늘부터는 서브타입에 대한 글을 올리겠습니다. 그런데 막상 서브타입을 정의하려니 어렵네요. 며칠 째 막혀있었는데, 사실 서브타입 정의 자체는 엔터티 정의와 동일합니다. 슈퍼타입과 한쌍을 이룬다는 게 일반 엔터티와 다른 점입니다. 서브타입(Subtypes)이란 서브타입 엔터티(Subtypes Entity)를 말합니다. 서브타입을 엔터티로 인식하는 게 좋습니다. 슈퍼타입(Supertypes)도 마찬가지로 슈퍼타입 엔터티(Supertypes Entity)입니다. 엔터티를 일반화(Generalization)하거나 상세화(Specialization)하면 슈퍼타입과 서브타입이 생깁니다. 일반화와 상세화는 아래 글을 참조하세요. 일반화(Generalization)와 상세화(Spec.. 더보기
어떤 경우에 통합을 고려하는가? – 다양한 경우 이번 글에서는 통합을 고려할 수 있는 다양한 경우를 설명하겠습니다. 다양한 케이스를 소개하지만 결국은 데이터의 본질이 유사하다는 것으로 통하게 됩니다. 역할을 관리하는 엔터티는 [그림1]과 같이 통합 모델을 사용할 때가 많습니다. [그림1] 사원은 특정 계좌에 대해 관리사원·유치사원·주문사원 등 여러 가지 역할을 할 수 있습니다. 여러 역할에 따른 엔터티가 개별로 존재하는 것이 아니라 계좌관계사원 엔터티와 같은 통합 엔터티로 존재하는 것이 바람직합니다. [그림2]와 같이 대칭적인 업무를 관리하는 데이터도 통합을 고려할 수 있습니다. [그림2] 이경우 업무 성격은 대칭적이지만 데이터 성격은 유사합니다. [그림2]는 식별자가 같지만 식별자가 다르더라도(매출전표번호와 매입전표번호) 통합할 수 있습니다. 매도와.. 더보기