SQLD

SQLD. 1

지노트101 2024. 3. 4. 19:08

1. 모델링

*엔터티 = 테이블 // 컬럼 = 속성 // 행 = 인스턴스

*모델링

개념: 현실 세계의 비즈니스 프로세스와 데이터 요구 사항을 추상적이고 구조화된 형태로 표현하는 과정

 

특징

1. 단순화: 현실을 단순화하여 핵심요소에 집중, 불필요한 세부 사항 제거

2. 추상화: 현실 세계를 간략하게 표현

3. 명확화: 정확하게 현상 기술

 

유의점

1. 중복: 같은 정보 저장 X (저장공간 낭비됨)

2. 비유연성: 잦은 모델 변경 X, 데이터 정의를 프로세스와 분리

3. 비일관성: DB내의 정보가 모순되거나 상반된 내용을 갖는 상태를 의미, 데이터 중복이 없어도 비일관성은 발생할 수 있음

 

모델링 3가지 요소

1. 대상: 업무가 관리하고자 하는 대상 (객체)

2. 속성: 대상들이 갖는 속성 (하나의 특징으로 정의 가능)

3. 관계: 대상들 간의 관계

 

모델링 3단계

1. 개념적: 업무 중심적이고 포괄적 수준, 추상화 수준이 가장 높음, 핵심 엔터티를 추출하는 단계, ERD 작성

2. 논리적: 개념적 모델링 결과 토대로 세부속성, 식별자, 관계 등을 표현, 데이터 정규화 수행 

3. 물리적: 논리 모델링 끝나면 직접 물리적으로 생성, 추상화 수준 가장 낮음 (가장 구체적이기 때문)

*ERD: 엔터티와 엔터티 간의 관계를 시각적으로 표현한 다이어그램

작성 절차

엔터티 도출 후 그리기 -> 배치 -> 엔터티 간의 관계 설정 -> 관계명 서술 -> 관계 참여도 기술 -> 관계의 필수 여부 확인


2. 엔터티

* 엔터티: 현실 세계에서 독립적으로 식별 가능한 객체나 사물, 대상(인스턴스)들로 이루어진 집합

ex. 엔터티와 속성, 인스턴스 등의 관계

엔터티: 학생

속성: 학번, 이름, 학과 등

식별자: 학번

인스턴스: 특정 학생의 데이터 // 학번, 이름, 학과

 

엔터티 특징

1. 유일한 식별자에 의해 식별 가능

- 인스턴스가 식별자에 의해 1개씩만 존재하는 지 검증 필수

- 유일한 식별자는 엔터티의 인스턴스만의 고유 이름

 

2. 해당 업무에 필요하고 관리하고자하는 정보

- 설계하는 업무의 시스템 구축에 필요한 정보여야 한다. ex. 학교 시스템 구축 시 학생 정보 필, 다른 업무엔 불필

 

3. 인스턴스들의 집합

- 영속적으로 존재하는 2개 이상의 인스턴스의 집합

- 인스턴스가 1개 밖에 없는 엔터티는 집합 X, 따라서 성립 X

 

4. 엔터티는 반드시 속성을 가짐

- 각 엔터티는 2개 이상의 속성을 가짐

 

5. 엔터티는 업무 프로세스에 의해 이용

- 실제로 사용 안하면 잘못 설계한 것

 

6. 다른 엔터티와 최소 1개 이상의 관계 성립

- 관계가 없는 엔터티 도출은 부적절한 엔터티 혹은 적절한 관계를 찾지 못한 것

 

엔터티 분류

* 유형, 무형

1. 유형: 물리적 형태가 있다. (실체가 있는 대상) ex. 사원, 물품, 감사 등

2. 개념: 물리적 형태 없음 ex. 조직, 보험상품 등

3. 사건: 업무를 수행에 따라 발생 ex. 주문, 청구, 미납 등

 

* 발생 시점

1. 기본: 업무에 원래 존재하는 정보, 자신의 고유한 주식별자를 가짐 ex. 사원, 부서, 고객, 상품 등

2. 중심: 기본 엔터티로부터 발생, 그 업무에서 중심적인 역할 ex. 계약, 사고, 청구, 주문, 매출 등

3. 행위: 2개 이상의 부모 엔터티로부터 발생 ex. 주문, 사원변경이력, 이력 등

 

엔터티 명명

1. 현업에서 사용하는 용어 사용

2. 약어 사용 자제

3. 단수 명사 사용

4. 유일한 이름을 부여

5. 엔터티 생성 의미대로 이름 부여

 

엔터티와 인스턴스 표기법

엔터티: 사각형


3. 속성

*속성

개념: 업무에서 필요로 하는 고유한 성질, 특징 -> 컬럼으로 표현가능한 단위, 더 이상 분리되지 않는 최소 단위

 

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

1개의 엔터티는 2개 이상의 인스턴스의 집합이다.

1개의 엔터티는 2개 이상의 속성을 갖는다.

1개의 속성은 1개의 속성값을 갖는다.

각 속성은 구체적인 값을 갖는다.

 

*특징

업무에서 반드시 필요하고 관리하고자하는 정보

정해진 주식별자에 함수적 종속성을 가져야 한다. 

1개의 속성은 1개의 값만 갖는다.

1개의 인스턴스는 속성마다 반드시 하나의 속성값을 갖는다.

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

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

 

* 함수적 종속성: 어떤 속성 A의 값에 대해 다른 속성 B도 유일하게 결정되었을 때를 의미 // A -> B

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

 

2. 부분 함수적 종속: 기본키 일부에 대해 종속될 때를 의미

 

* 속성의 분류

1. 특성에 따른 분류

기본 속성: 업무로부터 추출된 모든 속성, 엔터티에 가장 일반적으로 많이 존재하는 속성 ex. 원금, 예치기간 등

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

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

파생 속성: 다른 속성에 의해 만들어지는 속성, 일반적으로 계산도니 값들이 해당 ex. 합계, 평균, 이자 등

 

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

PK(기본키): 인스턴스 식별 가능한 속성

FK(외부키): 다른 엔터티와의 관계에서 포함된 속성

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

 

3. 분해 여부에 따른 속성

단일 속성: 하나의 의미

복합 속성: 여러 의미

다중값 속성: 속성에 여러 개의 값을 가짐, 다중값 속성은 엔터티로 분해

 

*속성 명명 규칙

1. 업무에서 사용하는 이름 부여

2. 서술식 속성명은 사용 X

3. 약어 사용은 제한

4. 전체 데이터 모델에서 유일한 명칭을 부여

 

*도메인: 각 속성이 가질 수 있는 값의 범위 // 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약 사항 지정


출처

https://www.youtube.com/@hongdatalab

 

홍쌤의 데이터 랩

홍은혜 강사

www.youtube.com