목차
속성이란?
우리가 무언가(사람, 사물)을 정의할 때 보통 여러 가지 특징들이 수식어로 붙게 되는 것을 볼 수 있다. 예를 들어 우리 사람에게는 이름, 주민번호, 전화번호 등 수식어가 붙는데 이렇게 사물이나 개념의 특징을 설명해 줄 수 있는 것들을 속성이라고 부른다.
그리고 이러한 속성은 더 이상 분해가 되지 않아야 하며, 필요한 항목이어야 한다. 사람이라는 엔터티에 국적이라는 속성으로 예를 들 수 있다.
속성값
각각의 객체(엔터티)가 가질 수 있는 속성들은 속성값들을 가지는데 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터라고 볼 수 있다.
속성 | 속성값 |
이름 | 홍길동 |
국적 | 대한민국 |
전화번호 | 010-1234-5678 |
하지만 각 속성은 하나의 속성값만을 가질 수 있다. 만약 하나의 속성이 여러 개의 속성값을 갖는 경우 별도의 엔터티로 분리하는 것이 좋다.
어떻게 분리하냐? 위의 표는 사람이라는 엔터티가 가지는 속성들이고 또 하나의 엔터티 국적을 만드는 것이다.
엔터티, 인스턴스, 속성, 속성값의 관계
위에 것들을 보면 엔터티 ⊃ 인스턴스 ⊃ 속성의 관계가 성립한다는 것을 알아야한다.
⊃ 기호는 수학적으로 "포함 관계"를 나타내는 기호이다. 이 기호는 한 집합이 다른 집합을 포함하는 관계를 나타낼 때 쓰며
위의 식을 풀이하자면 엔터티가 인스턴스를 포함하고 인스턴스는 속성을 포함한다는 의미입니다.
분류
특성에 따른 분류
기본속성(Basic Attribute) |
|
설계속성(Designed Attribute) |
|
파생속성(Derived Attribute) |
|
구성방식에 따른 분류
주 키 (Primary Key/PK) 속성 |
|
외래 키 (Foreign Key / FK) 속성 |
|
일반 속성 |
|
도메인
여기까지 계속 속성에 대해 설명했는데 도메인은 속성이 가질 수 있는 값(속성값)의 범위를 말한다. 예를 들어 우리들의 주민번호는 13자리의 숫자 그리고 우편번호는 5자리의 숫자라는 범위를 가지고 있고 이것은 엔터티를 정의할 때 타입과 크기로 나타냅니다.
도메인의 개념
- 도메인은 속성이 허용하는 값의 범위를 정의합니다. 예를 들어, 숫자, 문자열, 날짜 등의 데이터 타입이 있으며, 각각의 데이터 타입은 특정한 값의 집합을 허용합니다.
- 예를 들어, "주민번호" 속성의 도메인은 13자리의 숫자입니다. 따라서 이 속성은 오직 13자리의 숫자만을 포함할 수 있습니다.
- 또 다른 예로, "우편번호" 속성의 도메인은 5자리의 숫자입니다. 이 속성은 정확히 5자리의 숫자만을 값으로 가질 수 있습니다.
도메인과 데이터 유효성
- 도메인은 데이터의 유효성을 확인하는 데 중요한 역할을 합니다. 데이터베이스에서 도메인을 정의함으로써, 허용되지 않는 값이나 잘못된 형식의 데이터가 저장되는 것을 방지할 수 있습니다.
- 예를 들어, "이름" 속성의 도메인이 문자열이고 최대 길이가 50자라면, 이 속성은 50자 이내의 문자열만을 포함할 수 있습니다. 이를 통해 데이터의 일관성과 정확성을 유지할 수 있습니다.
도메인과 데이터베이스 설계
- 데이터베이스 설계 과정에서 각 속성의 도메인을 명확히 정의하는 것은 매우 중요합니다. 이는 데이터 모델링의 일환으로, 각 속성이 어떤 종류의 데이터를 저장할 수 있는지를 명확히 하고, 데이터의 일관성을 유지하는 데 도움을 줍니다.
- 도메인을 정의함으로써 데이터베이스 시스템은 입력된 데이터의 유효성을 자동으로 검사하고, 잘못된 데이터가 입력되는 것을 방지할 수 있습니다.
결론적으로, 도메인은 데이터베이스 설계에서 각 속성의 허용되는 값의 범위를 정의하며, 데이터의 정확성과 일관성을 유지하는 데 중요한 역할을 합니다.
'SQL > SQLD' 카테고리의 다른 글
#6 정규화(Normalization) (2) | 2024.12.06 |
---|---|
#5 데이터 모델링(식별자) (0) | 2024.07.15 |
#4 데이터 모델링(관계) (0) | 2024.07.09 |
#2 데이터 모델링(엔티티) (0) | 2024.07.04 |
#1 데이터 모델링 (0) | 2024.07.04 |