SQLD 1과목 (속성)

HanJaeHoon·2024년 8월 4일

속성(Attribute)의 개념


  • 속성은 업무에서 필요로 하는 고유한 성질, 특징을 의미(관찰 대상) -> 컬럼으로 표현할 수 있는 단위!
  • 업무상 인스턴스로 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위
  • 인스턴스의 구성 요소

ex) 학생 엔터티에 이름, 학번, 학과번호 등이 속성이 될 수 있음

엔터티, 인스턴스, 속성, 속성 값의 관계


  • 한 개의 엔터티는 2개 이상의 인스턴스의 집합이어야 한다. (하나의 테이블은 두 개 이상의 행을 가짐)
  • 한 개의 엔터티는 2개 이상의 속성을 갖는다(하나의 테이블은 두 개 이상의 컬럼으로 구성됨)
  • 한 개의 속성은 1 개의 속성값을 갖는다(각 컬럼의 값은 하나씩만 삽입 가능)
  • 속성은 엔터티에 속한 엔터티에 대한 자세하고 구체적인 정보를 나타냄, 각 속성은 구체적인 값을 가짐

속성의 특징


  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
  • 정해진 주식별자에 함수적 종속성을 가져야 한다.
  • 하나의 속성은 한 개의 값만을 가진다.(한 컬럼의 값은 각 인스턴스 마다 하나씩만 저장)
  • 하나의 속성에 여러 개의 값이 있는 다중 값일 경우 별도의 엔터티를 이용하여 분리한다.
  • 하나의 인스턴스는 속성마다 반드시 하나의 속성값을 가진다

=> 각 속성이 하나의 값을 갖고 있음을 의미(속성의 원자성)

** 원자성 이란?

  • 데이터 모델에서 각 엔터티의 인스턴스가 해당 속성에 대해 단일하고 명확한 값을 가지는 것을 의미

함수적 종속성


  • 한 속성의 값이 다른 속성의 값에 종속적인 관계를 갖는 특징을 말함
  • 즉, 어떤 속성 A의 값에 의해 다른 속성 B도 유일하게 결정된다면, B는 A 에 함수적으로 종속됐다 하고, 이를 수식으로 나타내면 A -> B 라고 표현함

1) 완전 함수적 종속

  • 특정 컬럼이 기본키에 대해 완전히 종속될 때를 말함
  • PK를 구성하는 컬럼이 2개 이상일 경우 PK 값 모두에 의한 종속관계를 나타낼 때 완전 함수 종속성 만족

ex) (주문번호 + 제품번호)에 의해 수량 컬럼의 값이 결정됨

2) 부분 함수적 종속

  • 기본키 전체가 아니라, 기본키 일부에 대해 종속될 때를 말함
  • 즉 부분 집합만으로도 어떠한 값이 결정될 때

ex) 수강기록 테이블에서 학생번호와 과묵이 PK 라고 가정할 때, 과목에 의해서도 교수가 결정되면 부분 함수적 종속 관계!

속성의 분류


1) 속성의 특성에 따른 분류

(1) 기본 속성

  • 업무로부터 추출된 모든 속성
  • 엔터티에 가장 일반적으로 많이 존재하는 속성

ex) 원금, 예치기간 등

(2) 설계 속성

  • 기본 속성 외에 업무를 규칙화하기 위해 새로 만들어지거나 기본 속성을 변형하여 만들어지는 속성

ex) 상품코드, 지점코드, 예금분류 등

(3) 파생 속성

  • 다른 속성에 의해 만들어지는 속성
  • 일반적으로 계산된 값들이 해당
  • 데이터 정합성을 유지하기 위해 가급적 적게 정의하는 것이 좋음

ex) 합계, 평균, 이자 등

2) 엔터티 구성 방식에 따른 분류

(1) PK (Primary Key, 기본키)

  • 인스턴스를 식별할 수 있는 속성

(2) FK (Foreign Key, 외래키) 속성

  • 다른 엔터티와의 관계에서 표함된 속성

(3) 일반 속성

  • 엔터티에 포함되어 있고 PK/FK에 포함되지 않는 속성

3) 분해 여부에 따른 속성

(1) 단일 속성

  • 하나의 의미로 구성된 경우

ex) 회원 ID, 이름 등

(2) 복합 속성

  • 여려개의 의미로 구성된 경우

ex) 주소(시, 구, 동 등으로 분해 가능) 등

(3) 다중값 속성

  • 속성에 여러 개의 값을 가질 수 있는 경우
  • 다중값 속성은 엔터티로 분해

ex) 상품 리스트 등

속성의 명명 규칙


(1) 해당 업무에서 사용하는 이름을 부여
(2) 서술식 속성명은 사용하지 않음
(3) 약어의 사용은 가급적 제한
(4) 전체 데이터 모델에서 유일한 명칭

도메인(Domain)


  • 도메인은 각 속성이 가질 수 있는 값의 범위를 의미함
  • 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것이다.
profile
게임 개발자

0개의 댓글