본문 바로가기

SQL

SQL - 데이터모델링의 이해 (속성)

공부 정리용!

 

자료는 한국데이터산업진흥원 참고 사용   

https://dataonair.or.kr/db-tech-reference/d-guide/sql

 

SQL – DATA ON-AIR

 

dataonair.or.kr

1. 속성(Attribute)의 개념 

업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더이상 분리되지 않는 최소의 데이터 단위 

- 업무에서 필요로 한다

- 의미상 더 이상 분리되지 않는다. 

- 엔터티를 설명하고 인스턴스의 구성요소가 된다. 

2. 엔터티 인스턴스와 속성, 속성값에 대한 내용과 표기법 

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

- 엔터티:  두 개 이상의 인스턴스가 존재

- 속성 : 각각의 엔터티는 고유의 성격을 표현하는 속성 정보를 두 개 이상 갖음 

           1) 하나의 속성은 하나의 인스턴스에만 존재할 수 있음 

           2) 관계로 기술 될 수 없고 자신이 속성을 가질 수도 없음 

- 속성값 : 각각의 엔터티가 가지는 속성들의 구체적 내용  

>> 한 개의 엔터티는 두 개 이상의 인스턴스의 집합 이다. 

>> 한 개의 엔터티는 두 개 이상의 속성을 갖음 

>> 한 개의 속성은 한 개의 속성값을 갖음 

Ex) 사원 (엔터티) > 이름, 주소, 전화번호, 직책 (속성) > 홍길동, 서울시 강남구, 123-456, 대리 (속성값) 

 

나. 속성의 표기법 

3. 속성의 특징 

- 해당 업무에서 필요하고 관리하고자 하는 정보 (엔터티와 마찬가지- Ex. 강사의 교재이름)

- 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 함 

- 하나의 속성에는 한 개의 값만을 가짐 

- 하나의 속성에 여러 개의 값이 있는 다중값일 경우 별도의 엔터티를 이용하여 분리 

4. 속성의 분류 

가. 속성의 특성에 따른 분류 

1) 기본속성(Basic Attribute) : 

- 업무로부터 추출한 모든 속성. 

- 업무로부터 분석한 속성이라도 이미 업무상 코드로 정의한 속성이 많음

     > 속성값이 원래 속성을나타내지 못할 경우 기본속성이 되지 못함

 

2) 설계속성(Designed Attribute) :

- 업무상 필요한 데이터 외에 데이터 모델링과 업무를 규칙화 하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성

- 코드성 속성 : 업무상 필요에 의해 변형하여 만든 설계 속성 

- 일련번호와 같은 속성은 단일(Unique)한 식별자를 부여하기 위해 새로 정의하는 설계 속성 

 

3) 파생속성(Derived Attribute) : 

- 다른 속성에 영향을 받아 발생하는 속성 (Ex. 계산된 값) 

- 프로세스 설계 시 데이터 정합성 유지를 위해 유의해야 할 것이 많아 파생속성은 적은 것이 좋다 

- 통계관련 엔터티나 배치작업이 수행되며 발생되는 엔터티에 많이 이용 

Ex) '이자' 라는 속성 존재 시 원금이 1000원 이고 예치기간이 5개월 이며 이자율이 5.0%에서 계산되는 속성값

      >> 원금이 1000 > 2000 변경시 영향 받음, 예치기간이 5개월 > 7개월로 변경 시 영향, 이자율이 5.0% > 4.0% 영향

 

나. 엔터티 구성방식에 따른 분류 

- PK(Primary Key) : 엔터티를 식별할 수 있는 속성

- FK(Foreign Key) : 다른 엔터티와의 관계에서 포함된 속성 

- 일반속성 : 엔터티에 포함되어 있고 PK, FK 에 포함되지 않는 속성 

 

세부 의미를 쪼갤 수 있는지 여부에 따라 

- 복합속성(Composite Attribute) : 주소 속성은 시, 구, 동, 번지로 이뤄짐 

- 단순속성(Simple Attribute) : 나이, 성별 

 

성질에 따라 여러개의 값을 갖는지 여부에 따라 

- 단일값 속성(Single-Valued Attribute) : 속성 하나에 한개의 값 (Ex. 주민등록번호)

- 다중값 속성(Multi-Valued Attribute) : 속성 하나에 여러개의 값 (Ex. 전화번호의 속성은 '집', '휴대전화','회사' 전화번호)

  >> 하나의 엔터티에 포함될 수 없으므로 1차 정규화나 별도의 엔터티를 만들어 관계로 연결 필요

5. 도메인(Domain) 

각 속성이 가질 수 있는 값의 범위 

엔터티 내에서 속성의 데이터 타입과 크기, 제약사항을 지정하는 것 

Ex. 학생 엔터티의 학점 속성의 도메인은 0.0 ~ 4.0 사이의 실수값 

6. 속성의 명명(Naming)

용어사전과 도메인정의를 같이 사용하여 프로젝트 진행 시 용어적 표준과 데이터타입의 일관성을 확보 

- 현업에서 사용하는 이름 부여

- 서술식 속성명 사용 X, 명사형 이용, 수식어가 붙지 않도록 작성, 소유격 사용하지 않음 

- 약어 사용 자제

- 가능하면 모든 속성의 이름을 유일하게 작성 

   > 데이터 흐름 파악에 용이, 정합성 유지에 도움, 반정규화(테이블 통합, 분리, 칼럼의 중복 등) 속성명 충돌 해결  

 

 

참고자료 :

https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=5&mod=document&uid=327 

 

속성

1. 속성 (Attribute)의 개념 속성이란 사전적인 의미로는 사물(事物)의 성질, 특징 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것으로 정의할 수 있다. 본질적 속성이란 어떤 사물 또

dataonair.or.kr