본문 바로가기

분류 전체보기

배타 서브타입 설계 서브타입을 설계할 때는 특정 시점을 기준으로 설계하기 때문에 변경이력 데이터를 포함시키지 않고 현재 시점의 데이터로 판단한다. 서브타입이 배타 서브타입인지 중복 서브타입인지는 특정 시점을 기준으로 판단한다. 특정 시점에 어느 하나의 서브타입에만 속하는지(배타 서브타입) 여러 서브타입에 속할 수 있는지(중복 서브타입)에 따라 서브타입의 유형이 정해진다. 따라서 과거 데이터인 변경이력 데이터는 제외하고 현재 시점을 기준으로 판단해서 서브타입 유형을 설계한다. 데이터 성격이나 업무 요건은 서브타입 간에 중복 데이터가 없어야 하는데 변경이력 데이터로 인해 중복된 것처럼 보이는 경우가 있기 때문에 주의해야 한다. 사원은 정규직이거나 임시직이어야 한다는 업무 요건이 있다면, 아래 모델처럼 배타 서브타입으로 설계해야.. 더보기
실체 엔터티 설계 보이거나 만질 수 있는 실제의 물체(物體)를 나타내는 데이터는 실체 엔터티로 설계한다. 엔터티를 정의할 때 엔터티에서 관리하는 데이터가 실제로 존재하는 물체인지, 만질 수 있는 물건인지를 가장 먼저 따져서 실체를 나타낸다면 실체 엔터티로 설계한다. 실체 엔터티는 엔터티 명에 ‘실체’ 접미어를 붙인다. [그림1] 서적실체 엔터티는 만질 수 있는 실체인 책을 관리하는 엔터티다. [그림1] 서적실체 엔터티는 실체 엔터티이기 때문에 엔터티 명에 ‘실체’ 접미어를 붙인다. 책을 한 권씩 개별적으로 다룬다면 서적실체 엔터티가 필요하다. 바코드 정보가 있어 해당 책을 관리할 수 있다. 하지만 서적실체 엔터티에는 책에 대한 이름이나 저자 등과 같은 기본 정보가 없다. 이런 정보는 책을 상징하는 정보로서 실체 정보는 아.. 더보기
종속 엔터티의 엔터티 명 엔터티에 속한 속성이 많을 때, 성능이나 관리 측면에서 좋지 않은 영향을 미친다면 일부 속성을 별도의 엔터티로 분리할 수 있다. 이때 속성 성격에 따른 분리가 아닌 사용 빈도에 따른 분리일 경우, 즉 유사한 성격의 속성으로 분리할 수 없고 자주 사용되는 않는 속성, 덜 중요한 속성으로 분리할 때는 엔터티 명을 ‘상위 엔터티 명+상세(Suffix)’ 형식으로 정한다. 이런 속성으로 구성된 엔터티는 특별한 데이터 성격이 없기 때문에 엔터티 명을 정하기가 어렵다. 이때는 상위 엔터티 명에 ‘상세’라는 접미어를 붙어서 정한다. [그림1] 고객 엔터티에 속성이 많아 일부 속성을 별도의 엔터티로 분리해야 한다고 가정한다. [그림1] 엔터티를 속성 기준으로 수직 분리할 때는 유사한 성격의 속성을 분리하는 것이 바람직.. 더보기
기준 엔터티의 엔터티 명 기준 엔터티는 기준 데이터임을 명확하게 구분하기 위해서 엔터티 명에 ‘기준’이라는 단어를 접미어(Suffix)로 붙인다. 그리고 접미어 앞에는 데이터 성격을 나타내는 명사형의 단어를 사용하며, 필요 시 명사형 단어 앞에 수식어를 사용한다. [그림1] 환율기준 엔터티는 기준 정보로서 환율 데이터를 관리하는 엔터티다. [그림1] 기준 데이터로 관리하려는 대상이 환율이기 때문에 ‘환율’은 데이터의 성격을 나타내는 명사형의 단어다. 데이터 성격은 기본 속성을 보면 알 수 있다. 기본 속성이 환율을 의미하기 때문에 데이터 성격을 나타내는 명사형의 단어는 ‘환율’이다. 그리고 명사형의 단어 앞에 수식어가 필요 없기 때문에 접미어인 ‘~기준’을 사용해 ‘환율기준’이라고 붙인다. [그림2] 고객수수료율기준 엔터티는 고.. 더보기
역할 엔터티의 엔터티 명 실체의 본질적인 성격이나 특성을 관리하는 엔터티가 아닌, 실체가 하는 역할을 관리하는 엔터티의 이름은 ‘대상 실체 엔터티 명+역할 의미+담당 실체 엔터티 명’ 형식으로 정한다. 즉 양쪽 실체 엔터티 명(실체라는 접미어를 제외한 명)과 실체가 하는 역할을 의미하는 단어를 사용해서 엔터티 명을 정한다. 이 엔터티는 실체 자체를 의미하지 않으므로 엔터티 명에 접미어 ‘실체’를 붙이지 않는다. [그림1] 계좌관리사원 엔터티는 계좌를 관리하는 역할을 하는 사원을 관리하는 엔터티다.[그림1] 계좌를 관리하는 사원이든, 사원에게 관리되는 계좌이든 실체 자체를 의미하지 않고, 실체의 역할을 의미한다. 역할을 담당한 실체는 사원이기 때문에 ‘~사원’처럼 엔터티 명을 정하며 ‘관리’라는 역할의 대상은 ‘계좌’다. 따라서 .. 더보기
소속 엔터티의 엔터티 명 실체 자체를 관리하는 엔터티가 아닌, 실체의 소속 데이터를 관리하는 엔터티의 이름은 ‘대상 실체 엔터티 명+소속 실체 엔터티 명’ 형식으로 정한다. 엔터티 명 앞에는 어디에 소속됐는지를 의미하는 대상 엔터티를 사용하고, 뒤에는 소속된 엔터티를 사용해서 정한다. 위와 같이 소속을 나타내는 데이터는 실체 엔터티가 아니기 때문에 ‘실체’ 접미어는 붙이지 않는다. [그림 도서관직원] 도서관직원 엔터티는 도서관에 소속된 직원을 관리하는 엔터티다. [그림 도서관직원] 도서관직원 엔터티에서 관리하려고 하는 데이터는 직원 데이터인데, 도서관에 소속된 직원이다. 따라서 소속된 실체는 직원이고 어디에 소속됐는지를 의미하는 대상은 도서관이므로 엔터티 명은 ‘도서관직원’으로 정한다. [그림 예산부서사원] 예산부서사원 엔터티는.. 더보기
실체 엔터티의 엔터티 명 실체 엔터티는 실체 엔터티임을 명확하게 구분하기 위해서 엔터티 명에 ‘실체’라는 단어를 접미어(Suffix)로 붙인다. 그리고 접미어 앞에는 엔터티 성격을 나타내는 명사형의 단어를 사용한다. [그림 실체엔터티명] 장비실체 엔터티는 장비를 관리하는 엔터티다. [그림 실체엔터티명] 장비실체 엔터티는 장비라는 만질 수 있는(Tangible) 실제의 물체(物體)를 관리하는 엔터티로 실체 엔터티다. 명사형인 ‘장비’와 접미어인 ‘실체’를 붙여 ‘장비실체’로 엔터티 명을 정한다. 명사형과 동사형의 단어를 구분하는 방법은 ‘~했음’을 붙여 자연스러우면 명사형이 아니라 동사형이다. ‘장비’라는 단어는 명사형이기 때문에 ‘~했음’을 붙이면 의미가 통하지 않는다. ‘~했음’을 붙여 의미가 통하는 동사형의 단어는 행위 엔터.. 더보기
주 식별자 설계 원칙-변경되지 않는 속성 엔터티의 주 식별자는 다른 엔터티의 외래 식별자(Foreign Identifier)가 되며, 외래 식별자 값에는 주 식별자에 존재하는 값을 사용해야 한다. 따라서 만약 주 식별자 속성 값이 바뀌면 그 값을 사용한 하위 엔터티의 외래 식별자 속성 값도 바꿔야 한다. 그래야 참조 무결성이 지켜진다. 하지만 외래 식별자 속성 값을 바꿔주는 것은 쉽지 않다. 대상 엔터티가 한없이 늘어날 수 있으며, 해당 엔터티의 인스턴스도 정확히 지정해야 하기 때문에 쉽지 않은 작업이다. 잘못된 설계로 인해 불가피하게 외래 식별자 속성 값을 바꿔주는 작업을 하는 경우는 있지만, 그렇게 하도록 설계하는 것은 그 자체로 잘못된 설계다. 주 식별자 속성 값이 바뀌지 않도록 주 식별자를 선정하는 것은 주 식별자 선정의 중요한 원칙이다.. 더보기
사원 엔터티의 업무 식별자 사원 엔터티의 업무 식별자는 주민등록번호 속성만이 되도록 설계한다. 그래서 퇴사한 후 재입사하더라고 같은 식별자를 사용하기 때문에 다른 사원이 되지 않도록 한다. 만약 퇴사한 사원이 재입사했을 때 다른 사원으로 인식한다면, 즉 사원번호가 달라진다면 사원 엔터티의 업무 식별자는 ‘주민등록번호+입사일자’가 된다. [그림1] 릴레이션이 이를 나타낸다. [사원] #사원번호 사원명 주민등록번호 입사일자 퇴사일자 12345 홍길동 1234567890123 2045-05-01 {null} 23456 김길동 2345678901234 2025-01-30 {null} 34567 이길동 6789012345678 2027-10-15 {null} [사원이력] 더보기
2016년 7월 뉴질랜드 겨울방학 여행 - 2 방학 동안 날씨가 좋은 편이 아니었다.그나마 비가 오는 날이 많지 않은 게 다행이었지만, 며칠은 흐려서 맑은 하늘을 볼 수 없었던 게 아쉬웠다. Wairere Falls을 갈 때도 날씨가 오락가락했다.뉴질랜드 날씨의 가장 커다란 특징은 변동성이다.어디로 향할지 모르는 주식과 유사하다.비가 억수같이 내리붓다가도 금방 햇살이 비추고 흰구름이 떠있다.이게 순간에 바뀌기 때문에 비와 해가 같이 존재할 때가 많은데, 이때 무지개를 볼 수 있다.이곳에 와서 많이 본 것 중 하나가 무지개다. 휴대폰 사진에서는 제대로 안 나오지만 매우 선명하고 크다.대개 두 개가 위아래로 뜨는데, 아래 것이 선명하고 위의 것은 희미하다. Wairere Falls은 산 정상에서 떨어지는 폭포다.그다지 높은 산은 아니지만 정상까지 2시간.. 더보기