속성명을 정하는 원칙
-속성의 셩격을 가장 잘 표현할 수 있도록 속성명을 정하는 것은 모델러가 해야 할 가장 커다란 역활
-속성의 의미를 명확하게 표현하는 것이 속성명을 명명하는 가장 중요한 원칙
-속성명을 명확하게 표현하려면 구체적으로 명명 ex) 전화번호 -> 자택전화번호
-속성명이 구체적이지 않거나 여러의미로 사용될수 있을때 속성이 잘 못 쓰일 가능성이 존재
-구체적인 것도 좋지만 지나치게 길면 좋지 않다. 의미가 파악되는 한에서 가능한 짧아야 한다
-영문명은 가능한 짧은 것이 좋기때문에 단어에 대응하는 영문단축명은 짧게 정하는 것이 좋다. 영문단축명을 보고 단어의 의미를 알게 하려고 길게 정하는데 이는 컬럼명이 길어지는 대신 효과는 크지 않아 의미가 별로 없다.
-속성명은 단어의 조합으로 이루어진다. 메타시스템에 단어가 존재하면 그단어들을 조합한 용어가 속성명이된다 긴영문단축명은 단어를 조합하는데 지장을 주게되어 있어 원하는 속성명을 사용하지 못하도록 한다. 속성의 긴 영문명은 어떤식으로든 바람직하지 않다.
-속성명은 표준화 지침에 따라 정하는 것이 원칙이다. 속성명 정할때 지나치게 일반적인 용어는 사용하지 말자.
전화번호 같은 도메인 성격의 용어를 사용하는것도 좋지 않다. ex) 일자, 메모, 내용 같은 속성 '삭제일자' 같은 구체적으로사용해야 한다.
-등록일자만 존재하는 엔터티에는 '일자'라는 속성명을 사용해도 문제 없다. 하지만 이후 변경일자가 필요해 '변경일자'라는 속성이 추가되는 순간 '일자'속성에서 관리되는 데이터는 의미가 모호해진다. 도메인과 유사한 속성명은 사용하지 말자!!
-관계속성명은 상위엔터티의 주식별자 속성명을 차용해서 사용해야 한다. 도메인개념까지 사용한다면 상위엔터티의 주식별자와 같은 형식(도메인)으로 관계속성명을 사용하는 것이 바람직하다. 관계속성이 어떤엔터티와 관계가 존재하는지 직관적으로 알수 있고, 가독성이 좋아진다.
엔터티 명이 전체 모델에서 유일하게 존재해야 하는 것과 마찬가지로 속성명도 전체모델에서 유일하게 존재해야 하는 것이 원칙이다. 이원칙을 지키기란 쉽지 않다. 엔터티의 성격을 반영해서 최대한 구체적으로 속성명을 정하는 것이 현실적이다.
속성 표준화가 중요하긴 하지만, 데이터 집합을 정하는 엔터티 정의가 가장 중요하며, 정규화와 주식별자 선택등이 중요하다.
속성설명
모델링 하면서 가장 관리가 안되는 부분이 속성설명이다. 설명은 단순명료하게 기술해야 하며 엔터티에서의 속성 쓰임새를 기술하는 것이 좋다. 지나치게 일반적인 용어나, 본인만이 이해할 수 있는 특수 용어, 잘모르는 축약어는 사용하지 않는 것이 좋다. 속성명을 풀어서 설명하는 것은 가능하면 피해야 한다.
중복속성이라면 원본속성이 무엇인지 기술해야 한다. 추출속석이라면 추출대상 데이터와 추출로직을 기술해야 한다.
코드속성일때는 코드 인스턴스를 기술하고 어렵다면 코드명이라도 기술해야 코드에 대한 이해와 가독서이 높아진다.
속성표준화
표준화란 일정기준에 따라 통일하는 과정을 의미한다. 속성 표준화 역시 속성의 쓰임새를 통일시키는 것이 핵심이다.
같은 의미의 속성에 대해서는 속성명을 동일하게 사용하는 것이다. 같은 의미를 다르게 쓰거나 다른의미를 같게 쓰지 않도록 하는 과정이 표준화다.
속성 표준화를 수행하는 이유
데이터의 품질을 높이기 위해 속성 표준화 수행. 속성의 일관된 사용은 데이터의 오류를 줄여주기 때문에 품질이 높아진다.
관련자의 커뮤니케이션을 돕는다. 일관되면서 정확하게 사용하는 것이 가장 좋지만, 다소 부정확하더라도 일관되도록 사용하면 커뮤니케이션을 돕는 효과를 낼수 있다.
표준화를 수행하지 않으면 일관된 모델 구축이 어렵다. 일관되지 않은 모델은 혼란을 일으킨다. 같은 의미인데 서로다른 이름으로 사용하거나, 영문에 다르거나 데이터타입이 다르면 안된다. 같은 속성인데 다른데이터타입을 사용하면 형변환 때문에 성능문제가 발생할 수 있다.
가장중요한것 일관되도록 사용하는것! 사원, 직원 중 사원을 사용하기로 했다면 직원번호 사용되면 안된다.
표준화 작업은 메타시스템과 연동해서 수행한다. 시스템에서 철저하게 체크해주지 않는 한 일관성이 유지되기 어렵다
단어 : 속성표준화의 출발은 단어를 정의한는 것이다. 속성에서 사용된 모든 단어의 정의와 영문약어를 정한다.이를 단어사전이라고 한다.
이렇게 정의된 단어는 속성에 사용된다. 속성에 사용하기 위해서 단어를 정의하는 것이다.
영문약어: 단어정할때 영문약어도 정해야 한다. 영문약어는 컬럼명으로 사용된다. 영문약어 정할때는 주의점 "길게 정의하지 않을것"
복합단어일경우 긴컬럼명으로 인해 문제가 발생할 수 있다.(계좌, 랩어카운트,랩어카운트계좌)
영문약어 단수한게 사용할 것, 속성을 구성하는 단어가 많을때는 5개가 넘어가므모 단어의 영문약어는 2-3개의 알파벳으로 정하는 것이 복합어를 최소화 하는 벙법이다. 컬럼명이 짧아지면 코딩하기에도 편리하며, 가독성도 좋아지게 된다.
이음동의어:이음동의어와 동음이의어의 사용을 허용하지 말자. 이를 허용하면 혼란스럽고 장점보다 단점이 커진다.
이음동의어를 허용한다는 것은 동일한 의미에 대해 여러개의 단어를 사용할 수 있다는 것을 의미
이음동의어의 근본적인 문제는용어의 일관된 사용을 방해한다는 것, 용어가 한결같이 사용되도록 통일시키는 것이 표준화 원칙인데 이음동의를 허용한다면 원칙을 깨는 것
ex) 사원, 직원 둘중하나만 사용/ 사원만 표준 ,직원 금지어로 관리
이음동의어를 사용하려면 논리적으로 사용하는 것이 좋다. 이음동의어로 묶인 단어 중에서 시스템에서 사용할 이음동의어를 지정해 대표로 사용하는 것이다. 이음동의어로 묶인 다른 단어들을 참조할 수 있도록 한다. 논리적으로는 여러개의 단어가 존재하지만 대표적인 하나의 단어만 사용되는 것이다. 유사어나 금지어로 관리하는 것보다는 이음 동의어의 사용의도를 살는 것이며 시스템에 혼선도 주지 않을 것이다.
이음동의어 문제는 컬럼명도 관련이 있다. 사원(EMP), 이음동의어의 단축영문명(STAF)정하면 EMP_NO, STAF_NO로 달라진다. 같은의미인데 컬럼명까지 달라지면 혼란스럽다.
동음이의어
동음이의어는 동일한 단어인데 의미가 다른것을 의미한다. '이전' 의미는 두가지.('이후'에 대한 상대적 의미 '옮긴다'라는 의미로 사용될 수 있다. 이때 영문단어가 달라지며 컬럼명에 사용될 영문약어도 달라진다.
이전일자 라면 BF_DT , TRN_DT등으로 되고, 옮긴일자 의미라면 BF_DT 를 사용하면 안되지만 잘 못 사용될 가능성이 존재한다.
동음이의어 역시 사용하지 않는게 바람직하지만, 피할 수 없는 단어가 있을 수 있다. 이런단어가 한개만 존재해도 동음이의어는 허용하게 된다.
동음이의어를 허용하기 위해 시스템에서 기능을 지원해야 한다. 속성을 등록하면서, '이전'이란 단어를 사용할 때 두개의 영문을 보여주면서 선택가능하다록 해야 한다. 하나의 단어에는 하나의 의미만을 부여해서 사용하는 것이 바람직하다. 동일한 의미의 속성명을 통일시키는 것이 데이터 표준화의 핵심이다.
속성명을 표준화 하려면 기본적인 표준화 원칙이 있어야 함
-특정한 날짜를 의미할 때는 '일자'를 사용한다.
-시분초까지 의미할때는 일시 사용한다.
-년월일 중 일부만을 의미할때는 년,년월, 월,월일등으로 사용한다. 회계년
-가격등 관행적으로 사용되는 단어제외하고 금전을 의미할때는 금액을 사용한다.
-비율을 의미할때는 율을 사용한다.
표준화 지침에는 구체적인 원칙들이 빠짐없이 제시되어야 하고 모델러는 정해진 원칙에 따라 속성을 표준화해야 한다.
표준화는 모델러가 수행하는 기초적인 작업이며 기반이 되는 작업일뿐 표준화가 모델링에서 많은 부분을 차지하진 않는다.
관계형 모델을 구축하는 모델러는 데이터 정의를 명확히 하고 정규화를 기반으로 데이터 구조를 정확하게 구축하는 역활에 집중해야 한다. 표준화는 작은 부분이므로 표준화에 매달리느라 실질적인 것을 간과하는 우를 범해서는 안될것이다.
'관계형데이터모데링노트 요약' 카테고리의 다른 글
데이터 타입 선정 원칙과 절차 (0) | 2023.12.03 |
---|---|
도메인 (1) | 2023.12.03 |
코드속성 2 (0) | 2023.11.29 |
코드 속성 1 (1) | 2023.11.27 |
식별자 종류 Part 2 (2) | 2023.11.19 |