본문 바로가기

분류 전체보기

잘못 표현된 관계선 2 - 속성으로 관리하려는 관계 - 참조 무결성 제약 Referencial Integrity Constraints - 바로 상위의 1촌 관계 계속 강조하고 있는 위의 요소는 사실 참조 무결성 제약이 존재할 때만 관계선으로 표현해야 한다는 것으로 간단히 설명할 수 있습니다. 이번 글은 잘못 표현된 관계를 RI 관점에서 살펴보도록 하겠습니다. [그림1] 모델에서 외국인 고객은 고객 엔터티에 통합되지 않고 별개로 관리되고 있습니다. 이 모델에서 외국인거래 엔터티는 외국인이 거래한 데이터를 관리하는 엔터티이므로 b관계는 꼭 필요한 맞는 관계입니다. 1촌 관계이고요. [그림1] 그런데 b관계로 표현하지 않고 a관계로 표현하면 잘못된 관계입니다. 식별자(PK)가 같아서 무심코 표현한 것이죠. 고객 엔터티와 외국인거래 .. 더보기
잘못 표현된 관계선 1 관계선을 잘못 표현하는 유형은 크게 두 가지가 있습니다. 엔터티 간에 연관성이 존재하는데도 관계를 표현하지 않는 예가 있으며, 연관성이 없는데도 관계를 표현하는 예가 있습니다. 모델링을 수행할 때 가장 부족한 부분이 엔터티의 정의(엔터티 설명을 의미하는 것이 아님)와 관계선의 표현인데요. 아래 세 가지 정도를 항상 염두에 두면서 관계를 도출하면 좋을 거 같습니다. - 속성으로 관리하려는 관계 - 참조 무결성 제약 Referencial Integrity Constraints - 바로 상위의 1촌 관계 이전 글에서도 설명한 위의 세 가지 요소를 기준으로 해당 사항이 없으면 관계선으로 표현하면 안 됩니다. 보통 엔터티 간의 연관성이 조금이라도 보이면 관계선을 표현할 때가 많습니다. 흔한 예가 식별자가 유사할 .. 더보기
관계 도출 시 핵심 요소 아래는 관계를 도출할 때 반드시 염두에 두어야 하는 내용입니다. 첫째. 속성으로 관리하려는 관계 둘째. 참조 무결성 관계 Referencial Integrity Relationship 셋째. 바로 상위의 1촌 관계 당연한 얘기지만 관계선을 표현할 때 최우선으로 고려해야 할 것이 관리하고자 하는 관계인지를 따져야 한다는 것입니다. 간혹 관리하지 않아도 무관한 관계선을 표현하는 예가 있습니다. 이는 업무에 관한 얘기이기도 합니다. 데이터로 업무가 틀렸음을 판단할 수 있는 경우가 있습니다. 더 나아가 효율적인 업무도 데이터를 보고 만들 수 있습니다(물론 모델러가 업무의 잘잘못을 따지는 것은 바람직하지 않다고 보며 이와 관련된 논쟁은 약간 소모적인 논쟁이 됩니다). 어쨌든 틀리거나 무의미한 업무에 대해서 검증은.. 더보기
모델러의 역할… 4-4-2 포메이션과 투톱 아시안컵이 아쉽게 끝났습니다. 인도전에서 한 골만 더 넣었어도, 기라드가 1번 키커였다면 하는 아쉬움이 있네요. 오늘은 축구와 약간 연관된 글을 쓰려고 합니다. 모델러로서 많이 보아온 시스템 구축 프로젝트에 대한 얘기인데요. 특히 차세대와 같은 대형 프로젝트에서의 모델러 역할이 포함된 개인적인 의견입니다. 축구에서 사용하는 전술은 여러 가지가 있는데 그 중에 대표적인 것이 4-4-2 포메이션입니다(지금은 좀 구식이 됐지만요). 4-4-2 포메이션에서 2에 해당하는 것이 투톱입니다. 다들 아시겠지만 공격수입니다. 빅선수와 스몰선수의 조합이 최상이라고 하는데요. 최근 차세대 프로젝트에서의 모델러의 역할은 미미하다는 것이 제 생각입니다. 물론 이전보다는 모델러에게 나름 역할을 부여하고 있습니다. 5년 전만 해.. 더보기
관계선이 의미하는 것 관계선(Relationship Line)에는 여러 가지 의미가 포함돼 있습니다. 그으면 멋있을 거 같아서 관계선을 표현하진 않죠. 가장 중요한 의미는 관계선을 보고 업무 규칙을 알 수 있다는 것입니다. 관계를 정확히 표현했다면 관계선은 어떤 식으로든 두 엔터티 간의 업무 규칙을 보여줍니다. 그 업무 규칙은 기본적으로 종속 관계나 참조 관계냐로 구분할 수 있습니다. 종속 관계라면 두 엔터티는 뗄래야 뗄 수 없는 한 몸과 같은 관계이고요. 참조 관계는 없으면 그냥 허전한 관계입니다. 중요한 정보가 비는 거죠. 툴에서 이 둘을 구분하도록 해 주는 것도 의미가 있을 거 같습니다. 현재는 식별 관계냐 비식별 관계냐로 구분하는데 좀 부족한 거 같습니다. 업무 프로세스에 의해 발생되는 데이터면 관계선이 업무의 흐름을.. 더보기
종속 관계와 참조 관계 [그림1]은 종속 관계입니다. 상품가격 데이터는 상품이 존재하지 않으면 존재할 수 없으므로(존재 존속됐으므로) 두 엔터티의 관계는 완전한 종속 관계입니다. [그림1] 두 엔터티가 종속 관계면 엔터티명도 보통 유사합니다. 그리고 보통 부모 엔터티의 식별자는 자식 엔터티의 식별자로 상속됩니다. [그림2]도 종속 관계이지만 팀은 특정 리그에 속해 있어야 한다는 요건이 있어야 종속 관계로 도출할 수 있습니다. 만약 일반적인 요건이라면 리그와 팀은 별개로 존재할 수 있습니다. [그림2] 팀이 생기면 한 리그에만 속해야 한다는 요건에 따라 종속 관계로 도출됐고 식별자로서 상속했는데요. [그림1] 모델과 약간 다른 면이 있습니다. 요건이 바뀔 가능성이 있다는 것이고요. 팀 엔터티는 실체 엔터티라 식별자를 단순하게 만.. 더보기
관계란? 관계(Relationships)가 두 개 이상의 엔터티 간에 존재하는 연관성이라는 정의 자체는 어렵지 않습니다. 하지만 관계는 모델링에서 가장 잘못 사용하고 있는 것 중에 하나입니다. 제가 관계를 따질 때 중요하게 생각하는 것은 두 가지입니다. 하나는 참조 무결성(Referencial Integrity) 관계가 있느냐이고, 다른 하나는 바로 위의 관계만을 표현하고 있느냐입니다. 사실 두 개는 비슷한 얘기입니다. RI 관계와 1촌 관계를 우선 기억했으면 합니다. 엔터티 간의 연관성에는 두 가지 종류가 있습니다. 하나는 종속 관계(Dependent Relationships)이고 다른 하나는 참조 관계(Referential Relationships)입니다. 종속 관계는 종속 엔터티(Dependent Entit.. 더보기
엔터티 도출 원칙 2 - 데이터 정체성 - 엔터티 무결성 - 엔터티 유일성 - 데이터 혼용 배제 - 타 엔터티와 관계 존재 - 프로세스 도출 지양 - 화면 도출 지양 - 데이터 관리 요건 관계(Relationship)도 엔터티 도출의 중요한 요소인데요. 엔터티는 보통 타 엔터티와 관계가 존재하는 것이 일반적입니다. 그래서 표현상의 약속을 제외하고 다른 엔터티와 관계가 존재하지 않으면 그 엔터티의 성격에 대해서 다시 한 번 살펴야 합니다. 하지만 이 부분이 지나치게 강조돼 전체 엔터티가 관계선으로 연결돼 있지 않으면 잘못된 모델이라고 단정하는 때가 있습니다. 잘못된 생각입니다. 관계 장에서 자세하게 설명하겠지만 관계가 무조건 존재해야 하는 것은 아닙니다. 기준 엔터티 등은 관계가 존재하지 않을 수 있으며 참조 무결성을 엄격히 .. 더보기
엔터티 도출 원칙 1 가장 중요한 원칙은 성격·본질·주제에 따른 정체성이 분명한 엔터티로 도출해야 한다는 것입니다. - 데이터 정체성 - 엔터티 무결성 - 엔터티 유일성 - 데이터 혼용 배제 - 타 엔터티와 관계 존재 - 프로세스 도출 지양 - 화면 도출 지양 - 데이터 관리 요건 엔터티를 명확하게 정의하는 것은 데이터 모델링을 수행할 때 가장 중요한 부분이면서 동시에 가장 간과되는 부분이기도 합니다. 엔터티만 명확하게 정의하면 모델링의 많은 문제는 해결될 것입니다. 엔터티 정의가 불분명하면 발생할 수 있는 가장 커다란 부작용은 엔터티를 임의대로 사용하는 것입니다. 여러 데이터가 혼합된 형태의 엔터티가 많이 사용되는데 이는 엔터티가 아니라 뷰(View)로 사용돼야 합니다. 성격이 불명확한 엔터티로 모델 구조가 정해지면 확장성.. 더보기
기준 엔터티란? 기준 엔터티는 코드와 같이 업무의 기준이 되는 데이터를 관리하는 엔터티입니다. 업무를 수행하며 참조하는 데이터를 관리한다는 의미로 참조(Reference) 엔터티라고도 합니다. 일부 솔루션에서 고객·상품 엔터티 등을 기준 엔터티로 보는데 제 책에서의 기준 엔터티는 환율·우편번호·이자율·코드 등의 기준 데이터를 관리하는 엔터티를 의미합니다. 기준 엔터티를 사용하면서 주의할 점은 이자율 등의 기준 엔터티와 이자율을 사용하는 엔터티와의 관계입니다. 실제 참조 무결성(Referencial Integrity) 제약이 존재하는지 아닌지를 숙고해야 합니다. 기준 엔터티의 데이터가 바뀌면 그 기준 데이터를 참조해 사용했던 데이터를 전부 바꿀 것인지, 아니면 기준 데이터는 선택할 당시의 데이터이므로 시점 데이터로서 개별.. 더보기