개체 구성하는 속성 값이
하나이면: 단일 값 속성(single-valued attribute)
E-R diagram에선 단일 타원으로.
여러 개이면: 다중 값 속성(multi-valued attribute)
E-R diagram에선 이중 타원으로. 그리고 보통 최소 최대 몇 개인지 lower and upper bound를 지정?
See also:
관계relationship를
속성attribute으로 나타내려면? 방법이 하나가 아님 - single-valued attribute와 multi-valued attribute로 나타낼 수 있음. 관계 페이지의 'Relationships as Attributes' 참조.
단순 속성 simple attribute : 의미를 더 이상 분해할 수 없음.
ex. 책 개체의 ISBN, 가격
복합 속성 composite attribute : 의미를 분해할 수 있어, 값이 여러 개의 의미를 포함.
ex. 주소 속성은 도/시/동/우편번호 등으로 의미를 분해 가능.
생년월일 속성은 연/월/일로 세분화 가능.
E-R diagram에서 복합 속성에 여러 개의 단순 속성 타원들이 연결된 tree 형태로 표현됨.
multivalued속성은 {}로, composite속성은 ()로 grouping하며(묶으며), 이것들이 임의 중첩(arbitrary nesting) 가능.
ex. multiple residences per person and multiple phones per residence:
{AddrPhone( { Phone (AreaCode, Phone#) }, Addr(StAddr(No, St, Apt#), City, State, Zip))}
유도 속성 derived attribute derived_attribute
: 값이 별도로 저장되지 않고, 다른 속성 값에서 유도되어 결정되는 속성.
ex. Age and BirthDate - BirthDate가 stored attribute라면, Age는 그것에서 유도 가능(derivable).
저장 속성 stored attribute stored_attribute
: 실제로 값을 저장하고 있는 속성.
ex. 가격 속성 + 할인율 속성을 결합해 판매가격 속성을 유도 가능.
이 때 가격과 할인율이 저장 속성(stored attribute).
유도속성은 E-R diagram에서는 점선 타원으로 표현됨.
derived_attribute
- Attribute에 실제 값이 저장된 게 아니고 저장된 값으로부터 계산해 얻은 값을 사용하는 attribute.
- 나이 attribute는 실제 나이를 저장하기보다는 생년월일을 저장해 두고 오늘 날짜로부터 계산해서 얻는 게 바람직하다. 이걸 유도속성으로 하지 않으면, DB에 저장된 나이를 매면 수정해야 함.
- 표기: 점선으로 그린 타원
널 속성 null attribute
널 값 : 값이 결정되지 않았거나, 모르는 값. 공백(blank), 영(zero) 등과는 다름.
널 속성은 널 값이 허용되는 속성.
ex. 고객 개체 인스턴스의 등급 속성이 null이라면 아직 등급이 결정되지 않았음
키 속성 key attribute
키속성key_attribute
{
모든 개체 인스턴스의 키 속성 값이 다르므로, 키 속성은 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용.
책 개체에서는 ISBN 속성이 키 속성으로 사용.
E-R diagram에서는 타원 속 이름에 밑줄을 그어 표현.