📌 고정 게시글

📢 공지합니다

이 게시글은 메인 페이지에 항상 고정되어 표시됩니다.

최코딩의 개발

CH1 데이터 모델링의 이해 본문

자격증/sqld

CH1 데이터 모델링의 이해

seung_ho_choi.s 2023. 8. 8. 11:22
728x90

개요: 필자의 첫 자격증 시험을 위해 정리한 게시물이다.

 

데이터 모델링이란 '현실 세계를 단순화하여 표현하는 기법이다.'

1. 업무정보를 구성하는 기초가 되는 정보들에 대해 일정한 표기법에 의해 표현함으로써 정보시스템 구축의 대상이 되는

업무 내용을 정확하게 분석하는 것이다.

2. 분석된 모델을 가지고 실제 DB를 생성하여 개발 및 데이터관리에 사용하기 위한 것이다.

 

모델링의 특징

추상화: 현실 세계를 일정한 형식으로 표현한 것이다. 즉 아이디어나 개념을 간략하게 표현하는 과정이다. 

단순화: 복잡한 현실 세계를 정해진 표기법으로 단순하고 쉽게 표현하다는 의미이다. 

명확화: 불분명함을 제거하고 명확하게 해석할 수 있도록 기술한다는 의미이다. 

 

모델링의 세 가지 관점

- 데이터 관점

- 프로세스 관점

- 데이터와 프로세스의 상관 관점 

 

모델링의 세 가지 단계 

개념적 데이터 모델링: 전사적 데이터 모델링 수행 시 행해지며 추상화 레벨이 가장 높은 모델링이다. 

논리적 데이터 모델링:

- 재사용성이 가장 높은 모델링으로 데이터베이스 모델에 대한 Key, 속성 관계 등을 포함하는 단계

- 데이터 모델링이 최종적으로 완료된 상태라고 정의할 수 있는, 즉 물리적인 스카마 설계를 하기 전 단계를 가리키는 말

- 식별자, 정규화.. 가 이루어지는 모델링

 

물리적 데이터 모델링: 실제 DB를 구현할 수 있도록 성능이나 가용성 등의 물리적인 성격을 고려하여 모델을 표현한 단계

 

데이터 모델리을 할 때 지양해야 할 점 

- 중복

- 비유연성: 데이터 모델과 프로세스를 분리하여 유연성을 높여야한다. 즉 연계성을 낮춰야한다. 

- 비일관성: 데이터 간의 연관 관계에 대해 명확하게 정의해야 한다. 

 

 

3단계 스키마 구조

외부 스키마: 사용자의 관점, Multiple User's View 단계로 각 사용자가 보는 DB의 스키마를 정의한다.

개념 스키마: 통합된 관점, Community View of DB 단계로 모든 사용자가 보는 DB의 스키마를 통합하여 

전체 데이터베이스를 나타내는 것이다. DB에 저장되는 데이터들을 표현하고 데이터들 간의 관계를 나타낸다. 

내부 스키마: 물리적인 관점, Physical Representation 단계로 물리적인 저장 구조를 나타낸다. 

 

3단계 스키마 구조가 보장하는 독립성

논리적 독립성: 개념 스키마가 변경되어도 외부 스키마는 변경되지 않는다. 

물리적 독성: 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다. 

 

ERD

https://blog.kakaocdn.net/dn/dEvQEf/btqLXRiNZmQ/SD4EYJknOarwfha5jFiTZK/img.png
https://velog.velcdn.com/images/y55nms/post/aa9a5f19-2ee6-47ef-8ad5-583b9672ce43/image.jpg

ERD 작성순서

1. 엔터티를 도출하고 그린다.

2. 엔터티를 적절하게 배치한다.

3. 엔터티 간의 관계를 설정한다. 

4. 관계명을 기입한다. 

5. 관계의 참여도를 기입한다. 

6. 관계의 필수/선택 여부를 기입한다. 

 

엔터티

사전적인 의미는 독립체이다. DB에서 엔터티는 식별이 가능한 객체라는 의미를 가지고 있다.

즉 명확한 조건이 기준이 되어야 하므로 모호한 기준 성립이 안된다. 

추가로 엔터티는 Table, 속성은 Column, 인스턴스는 Row

 

회원이라는 엔터티는 아이디, 비밀번호, 이름, 전화번화, 주소와 같은 속성을 가질 수 있다. 

그리고 이름이 홍길동, 최승호화 같이 회원이 있다고 가정하면 각각은 회원 엔터티의 인스턴스가 된다. 

https://blog.kakaocdn.net/dn/pOgP5/btq4ZSQQ6nr/nkOoBnsRlGh4XLlUm59TT1/img.png

엔터티의 특징

1. 업무에서 쓰이는 정보여야 한다.

2. 유니크함을 보장할 수 있는 식별자가 있어야 한다.

3. 2개 이상의 인스턴스를 가지고 있어야한다.

4. 반드시 속성을 가지고 있어야한다.(2개 이상)

5. 다른 엔터티와 1개 이상의 관계를 가지고 있어야 한다. 

 

엔터티의 분류 

1. 유형vs무형

유형 엔터티: 물리적인 형태 존재, 안정적, 지속적 ex) 상품, 회원

개념 엔터티: 물리적인 형태 없음, 개념적 ex) 부서, 학과

사건 엔터티: 행위를 함으로써 발생, 빈번함, 통계자료로 이용  ex) 주문, 이벤트 응모

 

2. 발생시점

기본 엔터티: 독립적으로 생성됨,자신만의 주식별자 가짐, 자식 엔터티를 가질 수 있음 ex) 상품, 회원

중심 엔터티: 기본 엔터티로부터 파생되어 많은 데이터를 갖게 되며 행위 엔터티 생성, 즉 핵심적인 역할  ex) 주문

행위 엔터티: 2개 이상의 엔터티로부터 파생, 초기 설계단계 보다는 상세 설계단계에서 많이 도출된다.

ex) 주문 내역, 이벤트 응모 이력 

 

엔터티 이름을 정할때 주의할 점

- 업무에서 실제로 쓰이는 용어 사용

- 한글은 약어를 사용하지 않고 영문은 대문자로 표기

- 단수 명사로 표현하고 띄어쓰기는 하지 않음

- 다른 엔터티와 의미상으로 중복될 수 없음

- 해당 엔터티가 갖고 있는 데이터가 무엇인지 명확하게 표현 

 

속성

- 엔터티의 특징을 나타내는 최소의 데이터 단위이다. 

- 더 이상 쪼개지지 않는 레벨이어야 한다.

- 프로세스에 꼭 필요한 항목이어야 한다. 

- 하나의 속성은 한 개의 속성값만 가질 수 있다.

- 만약 하나의 속성이 여러 개의 속성 값을 갖는 경우 별도의 엔터티로 분리하는 것이 바람직하다. 

- 속성도 집합이다.

 

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

엔터티 > 인스턴스 > 속성

1. 한 개의 엔티티는 2개 이상의 인스터스를 갖는다. 

2. 한 개의 인스턴스는 2개 이상의 속성을 갖는다.

3. 한 개의 속성은 하나의 속성값을 갖는다. 

 

분류

특성에 따른 분류

기본속성: 업무 프로세스 분석을 통해 바로 정의가 가능한 속성, 가장 일반적인 속성으로 대부분여기 포함! 

설계속성: 업무에 존재하지는 않지만 설계하다 보니 필요하다고 판단되어 도출해낸 속성 ex) 학번, id

파생속성: 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성

데이터 조회 시 빠른 성능을 보장하기 위해 본래의 속성값을 계산하여 따로 저장할 수 있도록 만든 속성ex)이벤트응모건수

 

구성방식에 따른 분류

PK 속성: 엔터티의 인스턴스들을 식별할 수 있는 속성 ex) 회원번호

FK 속성: 다른 엔터티의 속성에서 가져온 속성, NULL 값을 가질 수 있음  ex) 회원등급코드

일반 속성: 저 둘을 제외한 속성 ex) 아이디, 회원명, 전화번호 

 

도메인

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

용어 사전: 엔터티의 속성명을 정의할 때 명확한 의미의 이름을 부여하고

다른 엔터티와의 혼란을 예방하기 위해 이용하는 것

 

관계

엔터티와 엔터티와의 관계를 의미

존재 관계: 엄마와 아기, 직원과 부서, 학생과 학과 즉 존재 자체로 연관성이 있는것 

행위 관계: 회원과 주문, 학생과 출석부 즉 특정한 행위를 함으로써 연관성이 생기는 관계 

 

표기법

관계명: 관계의 이름

엔터티와 엔터티가 어떠한 관계를 맺고 있는지를 나타내는 문장, 반드시 명확문장이어야하며 현재형이어야 한다. 

 

관계차수: 관계에 참여하는 수, 관계의 기수성을 나타낸다. 

일반적으로 1:1, 1:M, M:N을 의미한다. 

 

관계선택사양: 필수인지 선택인지의 여부 

 

존재와 행위의 의한 관계는 구분하지않고 단일화된 표기법을 사용하나

UML에는 의존관계 있으면 실선과 점선의 표기법으로 진행한다. 

 

식별자

모든 엔터티는 인스턴스를 가지고 있고 인스턴스는 속성으로 자신의 특성을 나타낸다. 

 

주식별자 

기본키, PK에 해당하는 속성이다. 하나의 속서이 주식별자가 될 수있고 여러 개의 속성이 주식별자가 될 수 있다. 

유일성: 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다. 

최소성: 유일성을 보장하는 최소 개수의 속성이어야 한다. 

불변성: 속성값이 되도록 변하지 않아야 한다. 

존재성: 속성값이 NULL일 수 없다. 

 

분류

대표성 여부

주식별자

- 유일성, 최소성, 불변성, 존재성을 가진 대표 식별자

- 다른 엔터티와 참조 관계로 연결 

보조식별자

- 인스턴스를 식별할 수는 있지만 대표 식별자가 아님 

- 다른 엔터티와 참조 관계로 연결되지 않음 

 

스스로 생성되었는지 여부

내부식별자

- 엔터티 내부에서 스스로 생성된 식별자

외부식별자(FK)

- 다른 엔터티에서 온 식별자, 다른 엔터티와의 연결고리로 역할 

 

단일 속성의 여부 

단일식별자 

- 하나의 속성으로 구성된 식별자

복합식별자 

- 두 개 이상의 속성으로 구성된 식별자 

 

대체 여부

원조식별자(본질)

- 업무 프로세스에 존재하는 식별자, 가공되지 않는 원래의 식별자

대리식별자(인조)

- 주식별자의 속성이 두 개 이상인 경우 그 속성들을 하나로 묶어서 사용하는 식별자 

 

 

식별자 관계 VS 비식별자 관계 

식별자 관계 

부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계이다. 

단일식별자인지 복합식별자인지에 따라 1:1, 1:M이거나 결정된다. 

 

비식별자 관계 

부모 엔터티의 식별자가 자식 엔터티의 주식별자가 아닌 일반 속성이 되는 관계이다. 

일반 속성의 값은 NULL이 될 수 있고 자식엔터티가 맘대로 가능! 

즉 독립적이다. 

728x90

'자격증 > sqld' 카테고리의 다른 글

CH3 SQL 활용(2)  (0) 2023.08.22
CH3 SQL활용  (0) 2023.08.21
CH2 SQL 기본(2)  (0) 2023.08.15
CH2 SQL 기본  (0) 2023.08.15
CH1 데이터 모델과 SQL  (0) 2023.08.10