속성, 애트리뷰트, attribute
An attribute represents some property of interest that further describes an 개체entity.[1]
Ex. employee's name or salary
Ex. employee's name or salary
릴레이션relation의 열column에 해당.
테이블table의 열column은 속성attribute, 행row은 튜플tuple.
파일 관리 시스템의 '필드field'에 대응하는 개념.[2]
테이블table의 열column은 속성attribute, 행row은 튜플tuple.
파일 관리 시스템의 '필드field'에 대응하는 개념.[2]
ex. 학생 정보 table에서: 학번 이름 학과명 성별
ex. 고객 relation에서 속성: 고객아이디·고객이름·나이·등급·직업·적립금
ex. 고객 relation에서 속성: 고객아이디·고객이름·나이·등급·직업·적립금
속성이 가질 수 있는 모든 값의 집합(모든 가능성)은 도메인domain.
(cf. 릴레이션relation에서, 각 튜플tuple을 유일하게 식별할 수 있는 속성(들)의 집합 => 키key)
(cf. 릴레이션relation에서, 각 튜플tuple을 유일하게 식별할 수 있는 속성(들)의 집합 => 키key)
여러 속성 ¶
개체 구성하는 속성 값이
관계relationship를 속성attribute으로 나타내려면? 방법이 하나가 아님 - single-valued attribute와 multi-valued attribute로 나타낼 수 있음. 관계 페이지의 'Relationships as Attributes' 참조.
하나이면: 단일 값 속성(single-valued attribute)
See also:E-R diagram에선 단일 타원으로.
여러 개이면: 다중 값 속성(multi-valued attribute)[3]E-R diagram에선 이중 타원으로. 그리고 보통 최소 최대 몇 개인지 lower and upper bound를 지정?
관계relationship를 속성attribute으로 나타내려면? 방법이 하나가 아님 - single-valued attribute와 multi-valued attribute로 나타낼 수 있음. 관계 페이지의 'Relationships as Attributes' 참조.
단순 속성 simple attribute : 의미를 더 이상 분해할 수 없음.
multivalued속성은 {}로, composite속성은 ()로 grouping하며(묶으며), 이것들이 임의 중첩(arbitrary nesting) 가능.
ex. multiple residences per person and multiple phones per residence:
ex. 책 개체의 ISBN, 가격
복합 속성 composite attribute : 의미를 분해할 수 있어, 값이 여러 개의 의미를 포함.ex. 주소 속성은 도/시/동/우편번호 등으로 의미를 분해 가능.
E-R diagram에서 복합 속성에 여러 개의 단순 속성 타원들이 연결된 tree 형태로 표현됨.[4]생년월일 속성은 연/월/일로 세분화 가능.
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).[5]
저장 속성 stored attribute stored_attributeex. Age and BirthDate - BirthDate가 stored attribute라면, Age는 그것에서 유도 가능(derivable).[5]
: 실제로 값을 저장하고 있는 속성.
ex. 가격 속성 + 할인율 속성을 결합해 판매가격 속성을 유도 가능.이 때 가격과 할인율이 저장 속성(stored attribute).
유도속성은 E-R diagram에서는 점선 타원으로 표현됨.[6]derived_attribute
- Attribute에 실제 값이 저장된 게 아니고 저장된 값으로부터 계산해 얻은 값을 사용하는 attribute.
- 나이 attribute는 실제 나이를 저장하기보다는 생년월일을 저장해 두고 오늘 날짜로부터 계산해서 얻는 게 바람직하다. 이걸 유도속성으로 하지 않으면, DB에 저장된 나이를 매면 수정해야 함.
- 표기: 점선으로 그린 타원[7]
널 값 : 값이 결정되지 않았거나, 모르는 값. 공백(blank), 영(zero) 등과는 다름.
널 속성은 널 값이 허용되는 속성.
ex. 고객 개체 인스턴스의 등급 속성이 null이라면 아직 등급이 결정되지 않았음[8]널 속성은 널 값이 허용되는 속성.
키 속성 key attribute
키속성key_attribute
{
모든 개체 인스턴스의 키 속성 값이 다르므로, 키 속성은 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용.
책 개체에서는 ISBN 속성이 키 속성으로 사용.
E-R diagram에서는 타원 속 이름에 밑줄을 그어 표현.
키속성key_attribute
{
모든 개체 인스턴스의 키 속성 값이 다르므로, 키 속성은 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용.
책 개체에서는 ISBN 속성이 키 속성으로 사용.
E-R diagram에서는 타원 속 이름에 밑줄을 그어 표현.
키 애트리뷰트(key attribute)
}
- 개체entity들을 식별할 수 있는 유일한 제약조건을 갖는 속성attribute
- 상품 entity가 있고 그 속성에 {상품아이디, 카테고리, 상품명, 상품가격}이 있을 경우, 모든 상품이 서로 다른 상품아이디를 가지며, 상품아이디를 알면 다른 정보(이름, 가격, 재고상황...)를 알 수 있기 때문에, 상품아이디가 key attribute.[9]
}
multivalued_attribute
{
다치 애트리뷰트 multivalue attribute
{
다치 애트리뷰트 multivalue attribute
- 속성attribute 하나에 여러 값이 들어가는 attribute.
- 두 선으로 타원을 그려 나타냄.
- ex. 상품 entity의 상품옵션 attribute는 상품이 보유한 다양한 옵션이 들어갈 수 있다.
- 반대: 단일 attribute.
- 예를 들어 학생 entity의 취미 attribute는, 취미가 여러가지일 수 있기 때문에, multivalued attribute.[10]
prime_attribute
{
prime attribute : 키key에 속해 있는 attribute. [11]
nonprime attribute : 키에 해당되지 않는 attribute.
{
prime attribute : 키key에 속해 있는 attribute. [11]
nonprime attribute : 키에 해당되지 않는 attribute.
즉 밑줄 그어진 것으로 판별 가능. - chk
}
}
ER diagram 기호 ¶
그냥 타원 : attribute
이중 타원 : multivalued attribute
안에 밑줄 : key attribute - 키속성key_attribute
타원에 또 타원이 매달린 : composite attribute
점선으로 그린 타원 : derived attribute
이중 타원 : multivalued attribute
안에 밑줄 : key attribute - 키속성key_attribute
타원에 또 타원이 매달린 : composite attribute
점선으로 그린 타원 : derived attribute
Ref. 데이터베이스 개론: 속성
DB 말고 다른 것의 attribute 얘기는 속성,attribute
Up: database
----
- [1] KU황인준 2022-03-21 17:40
- [2] https://terms.naver.com/entry.naver?docId=3431136&cid=58430&categoryId=58430&expCategoryId=58430
- [3] https://terms.naver.com/entry.naver?docId=3431118&cid=58430&categoryId=58430&expCategoryId=58430
- [4] https://terms.naver.com/entry.naver?docId=3431119&cid=58430&categoryId=58430&expCategoryId=58430
- [5] KU황인준 2022-04-20 20m
- [6] https://terms.naver.com/entry.naver?docId=3431120&cid=58430&categoryId=58430&expCategoryId=58430
- [7] http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 3. 13m
- [8] https://terms.naver.com/entry.naver?docId=3431121&cid=58430&categoryId=58430&expCategoryId=58430
- [9] http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 3. 8:40
- [10] http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 3. 11m
- [11] KU황인준 2021-05-31 34:50