'''속성, 애트리뷰트, attribute''' An '''attribute''' represents some property of interest that further describes an [[개체entity]].[* KU황인준 2022-03-21 17:40] Ex. employee's name or salary [[릴레이션relation]]의 [[열column]]에 해당. [[테이블table]]의 [[열column]]은 '''속성attribute''', [[행row]]은 [[튜플tuple]]. 파일 관리 시스템의 '[[필드field]]'에 대응하는 개념.[* https://terms.naver.com/entry.naver?docId=3431136&cid=58430&categoryId=58430&expCategoryId=58430] [[개체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)[* https://terms.naver.com/entry.naver?docId=3431118&cid=58430&categoryId=58430&expCategoryId=58430] 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 형태로 표현됨.[* https://terms.naver.com/entry.naver?docId=3431119&cid=58430&categoryId=58430&expCategoryId=58430] 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).[* KU황인준 2022-04-20 20m] 저장 속성 stored attribute stored_attribute : 실제로 값을 저장하고 있는 속성. ex. 가격 속성 + 할인율 속성을 결합해 판매가격 속성을 유도 가능. 이 때 가격과 할인율이 저장 속성(stored attribute). 유도속성은 E-R diagram에서는 점선 타원으로 표현됨.[* https://terms.naver.com/entry.naver?docId=3431120&cid=58430&categoryId=58430&expCategoryId=58430] derived_attribute * Attribute에 실제 값이 저장된 게 아니고 저장된 값으로부터 계산해 얻은 값을 사용하는 attribute. * 나이 attribute는 실제 나이를 저장하기보다는 생년월일을 저장해 두고 오늘 날짜로부터 계산해서 얻는 게 바람직하다. 이걸 '''유도속성'''으로 하지 않으면, DB에 저장된 나이를 매면 수정해야 함. * 표기: 점선으로 그린 타원[* http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 3. 13m] 널 속성 null attribute 널 값 : 값이 결정되지 않았거나, 모르는 값. 공백(blank), 영(zero) 등과는 다름. 널 속성은 널 값이 허용되는 속성. ex. 고객 개체 인스턴스의 등급 속성이 null이라면 아직 등급이 결정되지 않았음[* https://terms.naver.com/entry.naver?docId=3431121&cid=58430&categoryId=58430&expCategoryId=58430] 키 속성 key attribute [[키속성key_attribute]] { 모든 개체 인스턴스의 키 속성 값이 다르므로, 키 속성은 개체 집합에 존재하는 각 개체 인스턴스들을 식별하는 데 사용. 책 개체에서는 ISBN 속성이 키 속성으로 사용. E-R diagram에서는 타원 속 이름에 밑줄을 그어 표현. ---- '''키 애트리뷰트(key attribute)''' * [[개체entity]]들을 식별할 수 있는 유일한 제약조건을 갖는 [[속성attribute]] * 상품 entity가 있고 그 속성에 {상품아이디, 카테고리, 상품명, 상품가격}이 있을 경우, 모든 상품이 서로 다른 상품아이디를 가지며, 상품아이디를 알면 다른 정보(이름, 가격, 재고상황...)를 알 수 있기 때문에, 상품아이디가 '''key attribute'''.[* http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 3. 8:40] [[https://terms.naver.com/entry.naver?docId=3431122&cid=58430&categoryId=58430&expCategoryId=58430 DB개론: 키 속성]] } [[multivalued_attribute]] { '''다치 애트리뷰트 multivalue attribute''' * [[속성attribute]] 하나에 여러 값이 들어가는 attribute. * 두 선으로 타원을 그려 나타냄. * ex. 상품 entity의 상품옵션 attribute는 상품이 보유한 다양한 옵션이 들어갈 수 있다. * 반대: 단일 attribute. * 예를 들어 학생 entity의 취미 attribute는, 취미가 여러가지일 수 있기 때문에, '''multivalued attribute'''.[* http://kocw.net/home/search/kemView.do?kemId=1335378 김정준 3. 11m] } prime_attribute { prime attribute : [[키key]]에 속해 있는 attribute. [* KU황인준 2021-05-31 34:50] nonprime attribute : 키에 해당되지 않는 attribute. ''즉 밑줄 그어진 것으로 판별 가능. - chk'' } = ER diagram 기호 = 그냥 타원 : attribute 이중 타원 : multivalued attribute 안에 밑줄 : key attribute - [[키속성key_attribute]] 타원에 또 타원이 매달린 : composite attribute 점선으로 그린 타원 : derived attribute ---- ---- Ref. [[https://terms.naver.com/entry.naver?docId=3431117&cid=58430&categoryId=58430&expCategoryId=58430 데이터베이스 개론: 속성]] 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:속성]] Up: [[database]]