속성attribute

속성, 애트리뷰트, attribute

An attribute represents some property of interest that further describes an 개체entity.[1]
Ex. employee's name or salary

릴레이션relation열column에 해당.
테이블table열column속성attribute, 행row튜플tuple.
파일 관리 시스템의 '필드field'에 대응하는 개념.[2]

개체entity가 가지고 있는 성질.
E-R diagram에선 타원으로 표기.

ex. 학생 정보 table에서: 학번 이름 학과명 성별
ex. 고객 relation에서 속성: 고객아이디·고객이름·나이·등급·직업·적립금

속성이 가질 수 있는 모든 값의 집합(모든 가능성)은 도메인domain.
(cf. 릴레이션relation에서, 각 튜플tuple을 유일하게 식별할 수 있는 속성(들)의 집합 => 키key)

속성의 수를 차수degree라고 함.
(cf. 튜플tuple의 수는 카디널리티cardinality라고 함.)

여러 속성


개체 구성하는 속성 값이
하나이면: 단일 값 속성(single-valued attribute)
E-R diagram에선 단일 타원으로.
여러 개이면: 다중 값 속성(multi-valued attribute)[3]
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 형태로 표현됨.[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_attribute
: 실제로 값을 저장하고 있는 속성.
ex. 가격 속성 + 할인율 속성을 결합해 판매가격 속성을 유도 가능.
이 때 가격과 할인율이 저장 속성(stored attribute).
유도속성은 E-R diagram에서는 점선 타원으로 표현됨.[6]

derived_attribute
  • Attribute에 실제 값이 저장된 게 아니고 저장된 값으로부터 계산해 얻은 값을 사용하는 attribute.
  • 나이 attribute는 실제 나이를 저장하기보다는 생년월일을 저장해 두고 오늘 날짜로부터 계산해서 얻는 게 바람직하다. 이걸 유도속성으로 하지 않으면, DB에 저장된 나이를 매면 수정해야 함.
  • 표기: 점선으로 그린 타원[7]

널 속성 null attribute
널 값 : 값이 결정되지 않았거나, 모르는 값. 공백(blank), 영(zero) 등과는 다름.
널 속성은 널 값이 허용되는 속성.
ex. 고객 개체 인스턴스의 등급 속성이 null이라면 아직 등급이 결정되지 않았음[8]

키 속성 key attribute
키속성key_attribute
{
모든 개체 인스턴스의 키 속성 값이 다르므로, 키 속성은 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용.
책 개체에서는 ISBN 속성이 키 속성으로 사용.
E-R diagram에서는 타원 속 이름에 밑줄을 그어 표현.

키 애트리뷰트(key attribute)
  • 개체entity들을 식별할 수 있는 유일한 제약조건을 갖는 속성attribute
  • 상품 entity가 있고 그 속성에 {상품아이디, 카테고리, 상품명, 상품가격}이 있을 경우, 모든 상품이 서로 다른 상품아이디를 가지며, 상품아이디를 알면 다른 정보(이름, 가격, 재고상황...)를 알 수 있기 때문에, 상품아이디가 key attribute.[9]

[https]DB개론: 키 속성
}

multivalued_attribute
{
다치 애트리뷰트 multivalue attribute
  • 속성attribute 하나에 여러 값이 들어가는 attribute.
  • 두 선으로 타원을 그려 나타냄.
  • ex. 상품 entity의 상품옵션 attribute는 상품이 보유한 다양한 옵션이 들어갈 수 있다.
  • 반대: 단일 attribute.
  • 예를 들어 학생 entity의 취미 attribute는, 취미가 여러가지일 수 있기 때문에, multivalued attribute.[10]
}

prime_attribute
{
prime attribute : 키key에 속해 있는 attribute. [11]
nonprime attribute : 키에 해당되지 않는 attribute.

즉 밑줄 그어진 것으로 판별 가능. - chk
}

ER diagram 기호

그냥 타원 : attribute
이중 타원 : multivalued attribute
안에 밑줄 : key attribute - 키속성key_attribute
타원에 또 타원이 매달린 : composite attribute
점선으로 그린 타원 : derived attribute






DB 말고 다른 것의 attribute 얘기는 속성,attribute
{
property도 속성으로 자주 부른다 나는 성질,property이라 하기로 했지만

둘은 비슷하고 밀접한 뜻임. 마이너한 차이(.. 그게 구체적으로 뭐?)가 있을 뿐..

HTML에는
특정 태그,tag에만 쓰이는 속성이 있고
모든 태그에 사용할 수 있는 속성이 있는데
후자를 글로벌 속성 (global attribute)이라 한다.
id, class, style, data-*, lang 등이 있다.
https://www.w3schools.com/tags/ref_standardattributes.asp
Ggl:html global attribute

}

Twins:
HashKr:속성