상세 컨텐츠

본문 제목

SQLD 공부 2일 차

SQL과 데이터베이스

by 크앙크아앙 2025. 5. 22. 18:58

본문

SQLD 공부 2일 차입니다! 오늘도 어제와 같이 3 개의 단원을 공부할 예정입니다.


4. 속성(Attribute)과 도메인(Domain) | 인스턴스 | 속성

 

1. 속성(Attribute)

- 엔터티를 구성하는 하위요소

- 엔터티에 대한 자세하고 구체적인 정보

- 의미상으로 분리되지 않는 최소의 데이터 단위

- 속성에는 개수의 제한이 없다

- 처리하고자 하는 업무 프로세스에 꼭 필요한 것 위주로 최소화 필요

 

2. 속성값

- 속성이 가질 수 있는 특정 값

- 하나의 엔터티 인스턴스에서 각각의 속성은 하나의 속성값만을 지님

 

엔터티 - 회원
인스턴스 - 속성값 행
속성 - 회원번호, 회원명, 회원구분코드, 회원 주소
속성값- 001, 카리나, a001...

 

정리:

- 한 개의 엔터티는 두 개 이상의 인스턴스를 가진다

- 한 개의 엔터티는 두 개 이상의 속성을 가진다

- 한 개의 속성은 한개의 속성값을 가진다

 

3. 속성의 특징에 따른 분류

- 기본 속성: 엔터티가 본래부터 가지고 있어야 하는 속성 (예시: 회원명, 회원 번호 등...)

- 설계 속성: 엔터티가 본래부터 가지고 있던 속성은 아니지만 설계 시 필요하다고 판단되어 도출된 속성 (예시: 소속, 직급...)

- 파생 속성: 다른 속성으로부터 계산되거나 특정 규칙에 따라 변형되어 만들어진 속성(예시: 월간 활성 사용자, 월간 매출 등...)

 

4. 속성의 구성 방식에 따른 분류

- PK(Primary Key, 기본키): 해당 엔터티의 인스턴스를 유일하게 식별 가능한 속성

- FK(Foregin Key, 외래키): 관계를 통해 다른 엔터티의 속성을 가져와 포함시킨 속성

- 일반 속성: 위 두개가 아닌 나머지 일반 속성

 

5. 도메인(Domain)**

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

- 데이터의 타입, 크기, 제약사항 등

참고: https://velog.io/@gillog/DBDomain-Data-Dictionary

 


5. 식별자

 

1. 식별자 관계

- 엔터티 간의 강한 연결 관계를 표현

- ERD에서 실선으로 표현

- 부모 엔터티 인스턴스가 소멸할 때 자식 엔터티도 같이 소멸하는 경우 적합

 

2. 비식별자 관계

- 엔터티 간의 약한 연결 관계를 표현

- ERD에서 점선으로 표현

- 자식 엔터티의 주식별자를 부모 엔터티와 별도로 생성하거나, 부모 엔터티의 인스턴스 참조값 없이 인스턴스가 생성 가능할 때 적합

 


6. 정규화 절차 | 정규형 | BCNF

 

1. 정규화

- 이상현상의 발생을 방지하는 방법

- 데이터의 중복을 최소화하는 방법

- 데이터베이스를 보다 잘 조직화 하기 위해 분해하는 과정

 

- 정규화의 결과

- 데이터의 입력, 수정, 삭제 성능의 향상

- 조인(Join)의 횟수 증가에 따른 조회 성능 하락 가능성 증가

 

- 이상현상(Anomaly)
- 입력 이상: 데이터를 입력 할 때 발생하는 문제
- 갱신 이상: 데이터를 업데이트 할 때 발생하는 문제
- 삭제 이상: 데이터를 삭제 할 때 발생하는 문제

 

2. 정규화 절차

제 1 정규화: 관계(Relation, Table, Entity)의 속성값이 모두 원자값(Automic Value)만으로 구성되어야 한다.

- 중복값의 제거

- 기본키의 설정

제 1 정규화를 해야하는 경우
- 하나의 속성에 대한 속성값이 두 개 이상이거나, 두 개 이상으로 해석될 가능성이 있는 경우
- 유사한 속성이 반복되는 경우

 

제 2 정규화: 기본키가 2개 이상의 속성으로 이루어진 경우 부분 함수종속성을 제거한다.

- 기본키가 두개 이상의 경우 그 중 한개에 대해서만 진행

- 함수종속성: 속성간의 의존성

 

제 3 정규화: 기본키를 제외한 속성 간의 종속성을 제거한다. 이행 함수종속성을 제거한다.

- 일반 속성 간의 함수종속성을 제거한다.

 

BCNF: 기본키를 제외하고 후보키가 있는 경우 후보키가 기본키를 종속시키면 분해한다.

 

'SQL과 데이터베이스' 카테고리의 다른 글

SQLD 공부 6일 차!  (1) 2025.05.30
SQLD 공부 5일 차  (6) 2025.05.27
SQLD 공부 4일 차  (1) 2025.05.23
SQLD 공부 3일 차  (0) 2025.05.22
SQLD 공부 1일차  (1) 2025.05.22

관련글 더보기