본문 바로가기
공부노트

[SQLD] 1. 데이터 모델링의 이해 핵심 키워드 요약

by 복습쟁이 2025. 2. 10.
반응형

모델링

- 구축하고자 하는 시스템에 맞게 현실을 표현하는 것

- 업무를 분석하여 흐름을 가시화, 명세화 하는 작업

- 업무 프로세스 상 불필요한 부분은 추상화(=추려서 단순화)를 기본으로 한다

* 모델링의 특징 : 추상화, 단순화, 명확화

 

모델링 시 유의사항

- 중복 최소화

- 비유연성 최소화  : 데이터/프로세스의 변화가 응용프로그램/데이터베이스에 영향 최소토록. 느슨한 결합.

- 비일관성 최소화

 

모델링의 3관점

- 데이터 관점 : What, 어떤 데이터들이 관계를 맺고 사용되는지

- 프로세스 관점 : How To, 업무가 어떻게 처리되는지

- 상관 관점 : 데이터-프로세스가 어떻게 관계를 맺고 처리되는지, CRUD분석 기반

 

모델링의 3단계

1. 개념(가장 높은 추상화모델, EA, 엔터티, 속성)

2. 논리(DBMS적용가능한 추상화 수준, 키, 속성, 관계, 재사용성)

3. 물리(가장 낮은 추상화레벨, 반정규화, 테이블, 인덱스, 함수, 성능, 보안, 사용성)

 

3단계 스키마구조(ANSI-SPARC)

1. 외부스키마

- 사용자 / 응용프로그래머 관점, 다중사용자뷰

2. 개념스키마

- 설계자 관점, 모든 사용자가 바라보는 스키마 통합된 뷰

3. 내부스키마

- 개발자 관점, 물리적 실질적 저장구조

* 실제 원리 여부는 모르겠고, 비전공자 문돌이 입장에서 외울 때 외부-내부 상반구조로 외우면 안됨. 외부-개념을 사용자-설계자 대비관계로 외우고 내부는 별도 물리적이라고 외우자.

 

ERD(Entity Relationship Diagram)

데이터모델링을 문서화하기 위해 데이터의 논리적 구성요소인 엔터티와 엔터티들 간의 관계를 도식으로 나타낸 표기법

작성순서

1. 엔터티 도출 : 엔터티는 박스로 그리고, 이름은 상단에 기술

2. 배치(중요한거 왼쪽 상단에)

3. 관계설정 : 식별자관계는 실선, 비식별자관계는 점선

4. 관계명 기술 : 행위 관계, 존재 관계

5. 관계의 참여도(까치발) 기술 : O은 0, |은 1, 삼발모양은 다수

6. 관계의 필수/선택여부(Null 가능여부) 기술

 

엔터티

데이터베이스 내에 정보가 저장될 수 있는 일종의 구조. 독립적 식별 가능한 객체(=대상물)

이 구조에 맞게 건별로 들어가는 데이터를 인스턴스라 부름.

예를 들면, 쇼핑몰 데이터베이스에는 고객, 상품, 주문 등에 대한 데이터가 있을 것이다.

이렇게 퉁으로 이야기한 고객, 상품, 주문이 각각의 엔터티이다.

 

엔터티는 

1. 업무에서 필요로 하는 관리하고자 하는 정보여야 하고

2. 유일한 식별자를 가져야 하고

3. 영속적인 인스턴스가 두 개 이상인 집합이 있어야 하고

4. 하위요소로 반드시 속성이 필요

5. 다른 엔터티와 한 개 이상의 관계가 있어야 함(단, 통계성/코드성 엔터티는 예외)

 

엔터티의 분류

1. 발생시점/상속관계

- 기본엔터티 : 고유한 주식별자, 독립적 생성됨. 기본적으로 필요함. ex> 사원

- 중심엔터티 : 기본엔터티로부터 주식별자 상속받아 생성됨. 업무의 중심. ex> 급여

- 행위엔터티 : 두 개 이상의 엔터티를 상속받아 생성됨. 내용이 자주 생김. ex> 급여내역

 

2. 물리적 형태 유무

- 유형엔터티 : 물리적 형태 O ex> 상품

- 개념엔터티 : 개념적 정의 ex> 상품분류

- 사건엔터티 : 업무수행 시 발생 ex> 주문

 

3. 교차엔터티 : M:N 관계를 해소하기 위해 사이에 넣는 엔터티

 

속성

개별 엔터티 아래마다 상세한 속성(Attribute)이 존재한다.

위에 엔터티 설명하며 쇼핑몰 DB에서 고객, 상품, 주문 엔터티에 대한 예시를 들었다.

고객이라는 엔터티 아래에는 고객ID, 성별, 이름, 주소, 나이 등등이 있을 것인데

이것들이 고객 엔터티의 애트리뷰트이다.

속성은 개수에는 제한이 없지만, 꼭 필요한 것들로만 최소화해야 한다.

 

속성값

하나의 엔터티 인스턴스에서 각각의 속성은 한 개의 값만 가져야 한다.

한 개의 엔터티두 개 이상의 인스턴스를 가짐

한 개의 엔터티는 두 개 이상의 속성을 가짐

한 개의 속성은 하나의 속성값만 가짐

 

도메인

속성이 가질 수 있는 값의 조건 범위.

 

속성의 분류

1. 특성에 따른 분류

- 기본속성 : 엔터티가 기본적으로 가져야할 속성

- 설계속성 : 설계에 따라 필요하여 도출된 속성

- 파생속성 : 다른속성으로부터 값이 계산되어 만들어진 속성

 

2. 구성방식에 따른 분류

- PK : 해당 엔터티의 인스턴스를 유일하게 식별하는 속성

- FK : 관계를 통해 다른 엔터티의 속성을 가져와 포함시킨 속성

- 일반 : P/FK가 아닌 나머지

 

[고객]
이 테이블 전체를 아우르는
이것이 엔터티이다
[속성][기본] 고객명 [속성] [PK] 고객번호 [속성] ID [속성] 성별 [속성] [FK]고객포인트
[인스턴스] ->
각각 한 줄이 고객 엔터티의 하나의 인스턴스이다
[속성값] 홍길동 [속성값] 100001 [속성값]  hong_KD [속성값]  남 [속성값] 508
[속성값]  둘리 [속성값] 100002 [속성값]  dooooly [속성값]  남 [속성값] 1005

 

관계

엔터티와 엔터티의 연관성. 연관 또는 관계연결에 대한 규칙이나 동사표현으로 도출.

관계는 관계명, 차수, 선택사양 세 가지 요소로 나타낸다.

 

1. 존재적관계 : 존재 자체로 서로 연관성을 가짐 ex> 사원-부서

2. 행위적관계 : 한 엔터티의 특정 행위로 연관성 발생 ex> 고객-주문

3. 관계선택사양 : 까치발표시 앞에 O가 붙으면 null값이 가능한 선택적 관계, 아니면 null이 불가한 필수적 관계

 

식별자

엔터티 인스턴스 내에서 인스턴스를 유일하게 식별할 수 있게 하는 대표적인 속성.

1. 대표성 여부에 따른 구분

가. 주식별자 : PK에 해당하는 속성. 유일성, 최소성, 불변성, 존재성을 만족해야 함

- 유일성 : 각 인스턴스의 고유한 구조를 유일하게 구분가능하게 함. 이름과 같은 중복가능한 것 사용 X

- 최소성 : 유일성을 보장하면서도 최소개수여야 함

- 불변성 : 최초 부여된 속성값이 변하지 않아야 함

- 존재성 : null값 불가

 

나. 보조식별자 : 해당엔터티를 유일하게 구별할 수 있는 식별자이지만, 대표성이 없고 다른엔터티와 연계X

 

2. 스스로 생성 여부에 따른 구분

가. 내부식별자 : 엔터티 내부에서 만들어짐

나. 외부식별자 : FK. 관계를 통해 받아오는 식별자.

 

3. 속성의 수에 따른 구분

가. 단일식별자 : 식별자 속성이 하나 

나. 복합식별자 : 둘 이상

 

4. 대체 여부에 따른 구분

가. 본질식별자 : 업무에 존재하는 본래의 식별자 

나. 인조식별자 : 원조식별자가 너무 복잡해 인위적으로 만든 대리식별자

 

관계표시

1. 식별자관계 : 강한 연결 관계, 실선으로 표시. 부모 엔터티의 식별자가 자식 엔터티의 주식별자 구성에 포함. 부모-자식 엔터티 생명주기 동일

2. 비식별자관계 : 약한 연결 관계, 점선으로 표시. 부모-자식 생명주기 다르거나 자식 엔터티의 주식별자를 독립적으로 별도 생성, 부모 엔터티 참조값 없이 자식 엔터티 인스턴스 생성 가능 시 사용

728x90
반응형

'공부노트' 카테고리의 다른 글

[SQLD] 데이터 모델과 SQL 핵심요약정리  (2) 2025.02.14
신용관리사 핵심정리  (0) 2023.08.29

댓글