![[Part 1] 3. 속성(Attribute)](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255BPart%25201%255D%25203.%2520%25EC%2586%258D%25EC%2584%25B1%28Attribute%29%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3DCoding_study&w=2048&q=75)
1. 속성(Attribute)
- 업무에서 대상의 고유한 성질이나 특징을 나타내며, 데이터베이스의 컬럼으로 표현
- 속성은 더 이상 분리되지 않는 최소의 데이터 단위로, 인스턴스(행)의 구성 요소이며,
업무상 관리하고자 하는 정보
- 인스턴스의 구성 요소
ex) 학생 엔터티에 이름, 학번, 학과번호 등이 속성이 될 수 있음
2. 속성값
- 각각의 속성은 속성값을 가지며 속성값은 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터
- 하나의 속성은 한개의 속성값만 가질 수 있다.
- 여러개의 속성값을 작는 경우 별도의 엔터티로 분리 하는 것이 바람직 함
3. 엔터티, 인스턴스, 속성, 속성값의 관계
- 한 개의 엔터티는 2개 이상의 인스턴스(행)를 포함(하나의 테이블은 두 개 이상의 행을 가짐)하며, 각 엔터티는 2개 이상의 속성(컬럼)을 가진다.(하나의 테이블은 두 개 이상의 컬럼으로 구성됨)
- 각 속성은 하나의 속성값을 가지며(각 컬럼의 값은 하나씩만 삽입 가능)
- 엔터티의 구체적인 정보를 나타낸다.
- 즉, 속성은 엔터티의 세부사항을 설명하고, 각 속성에 대응하는 값은 구체적이고 단일한 값을 가진다.
예를 들어, 학생 엔터티에서 "이름"이라는 속성은 "홍길동"과 같은 구체적인 값을 가짐
4. 속성의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 정해진 주식별자에 함수적 종속성을 가져야 한다.
- 하나의 속성은 한 개의 값만을 가진다.(한 컬럼의 값은 각 인스턴스마다 하나씩만 저장)
- 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리한다.
- 하나의 인스턴스는 속성마다 반드시 하나의 속성값을 가진다. => 각 속성이 하나의 값을 갖고 있음을 의미(속성의 원자성)
원자성이란
- 데이터모델에서 각 엔터티의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 가지는 것을 의미
5. 함수적 종속성
- 함수적 종속성이란 한 속성의 값이 다른 속성의 값에 종속되는 관계를 의미
- 예를 들어, 어떤 속성 A의 값에 의해 속성 B의 값이 유일하게 결정된다면, B는 A에 함수적으로 종속되었다고 말할 수 있다.
- 이를 수식으로 표현하면 A → B로 나타낸다.
5-1. 완전 함수적 종속
- 특정 컬럼이 기본키 전체에 대해 완전히 종속될 때를 말함. (즉 PK 전체에 의해 다른 속성이 결정되는 경우)
- 기본키(PK)를 구성하는 컬럼이 2개 이상일 경우, 모든 PK 값에 의해 종속되는 경우를 완전 함수적 종속이라고 한다.
- 예시 테이블: 주문 테이블
(주문번호 + 제품번호)
에 의해 수량
이 결정되는 경우.주문번호 | 제품번호 | 수량 |
101 | A001 | 10 |
101 | A002 | 5 |
102 | A001 | 7 |
주문번호와 제품번호가 PK이며, 이 두 값을 조합하여 수량이 결정된다. 즉, (주문번호, 제품번호) → 수량은 완전 함수적 종속성을 만족한다.
5-2. 부분 함수적 종속
- 기본키 전체가 아닌, 기본키 일부에 대해 종속될 때 부분 함수적 종속이라고 한다.(즉 PK의 일부에 의해 다른 속성이 결정되는 경우)
- 예시 테이블: 수강기록 테이블
수강기록
테이블에서 학생번호
와 과목
이 PK인 경우, 과목
에 의해 교수
가 결정된다면 이는 부분 함수적 종속입니다.학생번호 | 과목 | 교수 |
S001 | 수학 | 김교수 |
S001 | 영어 | 이교수 |
S002 | 수학 | 김교수 |
학생번호와 과목이 PK이지만, 과목에 의해 교수가 결된다. 즉, 과목 → 교수는 부분 함수적 종속성을 만족다.
6. 속성의 분류
6-1. 속성의 특성에 따른 분류
① 기본 속성
- 업무로부터 추출된 모든 속성
- 엔터티에 가장 일반적으로 많이 존재하는 속성 ex) 원금, 예치기간 등
② 설계 속성
- 기본 속성 외에 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성(업무에 직접 존재하지 않지만, 모델링 과정에서 합리적인 이유로 추가된 속성) ex) 상품코드, 지점코드, 예금분류 등
③ 파생 속성
- 다른 속성에 의해 만들어지는 속성
- 일반적으로 계산된 값들이 해당, 원래의 속성 값들에서 파생
- 데이터 정합성을 유지하기 위해 가급적 적게 정의하는 것이 좋음 ex) 합계, 평균, 이자 등
6-2. 엔터티 구성방식에 따른 분류
① PK(Primary Key, 기본키)
- 인스턴스를 식별할 수 있는 속성
- 각 인스턴스에 유니크함을 부여
② FK(Foreign Key, 외래키) 속성
- 다른 엔터티와의 관계에서 포함된 속성
③ 일반 속성
- 엔터티에 포함되어 있고 PK/FK 에 포함되지 않는 속성
6-3. 분해 여부에 따른 속성
① 단일 속성
- 하나의 의미로 구성된 경우 ex) 회원 ID, 이름 등
② 복합 속성
- 여러개의 의미로 구성된 경우 ex) 주소(시, 구, 동 등으로 분해 가능) 등
③ 다중값 속성
- 속성에 여러 개의 값을 가질 수 있는 경우
- 다중값 속성은 엔터티로 분해 ex) 상품 리스트 등
6-4. 속성의 명명규칙
- 해당 업무에서 사용하는 이름을 부여
- 서술식 속성명은 사용하지 않음
- 약어의 사용은 가급적 제한
- 전체 데이터 모델에서 유일한 명칭
6-5. 도메인(Domain)
- 도메인은 각 속성이 가질 수 있는 값의 범위를 의미함
- 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것이다
6-6. 용어사전
- 어떤 시스템이든 속성명은 업무와 직결되는 항목이다.
- 속성의 리름을 정확하면서도 직관적으로 부여 (속성명을 보고 어떤 데이터가 저장된 컬럼이라는 걸 직감할 수 있도록)
- 용어의 혼란을 없애기 위해, 용어사전이라는 업무사전을 프로젝트에 사용
6-7. 시스템 카탈로그
- 사용자 테이블과는 별개로 시스템 자체에 관련이 있는 데이터를 담고 있는 데이터이며 시스템 테이블로 구성 되어있어 SQL을 이용해 조회 가능함
- 시스템 카탈로그에 저장된 데이터를 메타 데이터라 하고 SELECT만 가능, INSERT, UPDATE, DELETE 불가능 함
Share article