Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

jeongwon

[데이터 모델링] 개요, 개념적 데이터모델링 본문

DataBase

[데이터 모델링] 개요, 개념적 데이터모델링

jeongwon_ 2022. 5. 27. 12:07

 

모델이란 뭘까? 어떤 목적을 가지고 진짜를 모방한 것 아닐까.

그러니 좋은 모델은 목적에 부합하는 모방일 것이다.

문제는 무한히 거대하고 복잡한 현실을 정보로 만들어서 표에 담는 것은 너무나 어려운 일이라는 점이다.

그 문제에 관한 방법론이 데이터 모델링.

복잡한 현실을 컴퓨터로 이사시키는 이삿짐 센터가 되어 보자. -egoing

 

*현실의 복잡한 문제를 컴퓨터에게 잘 설명해내기.


<개요>

1. 업무파악

하려는 일이 무엇인가? 의뢰인과의 협력을 통해 알아낸다.

말의 기능을 불신하자. 대신 의뢰인과 함께 그려나갈 UI의 모습을 정립해 보자.

(카카오 오븐을 사용한 기획서 구상의 예: https://youtu.be/rWEaUh4DjUo)

 

2. 개념적 데이터 모델링

내가 하려는 일에 어떤 개념이 있고, 각 개념들은 어떻게 상호작용하고 있는지 숙고.

이 과정에서 ER 다이어그램이 얻어진다.

관계형 데이터베이스 모델링의 극치. 논리적, 물리적 데이터 모델링을 경험해본 후에야 가능한 단계일 것.

 

3. 논리적 데이터 모델링

관곟여 데이터베이스 패러다임에 맞는 형태(표)로서 그간 숙고한 개념을 정리정돈, 구체화 하는 과정.

 

4. 물리적 데이터 모델링

어떤 데이터 베이스를 선택할지 선택하고, 거기에 최적화된 코드를 작성해 실제 표를 만드는 것.

이때의 산출물은 표를 생성할 수 있는 sql문을 얻는 것이 목표. 

 


ERD(Entity Relationship Diagram)

ERD는 현실을 3개의 관점으로 바라볼 수 있게 하는 필터인 정보, 그룹, 관계를 제공한다. 

정보를 발견하고 그것을 다른 사람에게 표현할 수 있게 도와준다.

서로 연관된 정보를 그룹핑해서 인식하고 타인에게 표현할 수 있게 해준다.

정보와 그룹 사이의 관계를 인식하고 타인에게 표현할 수 있게 된다.

 


관계형 데이터베이스에 적합한 형태가 유리하다. 

표 안에 다른 표가 내포된 것을 관계형 데이터베이스는 허용하지 않는다. 

 

글 TABLE의 저자 아이디 : Foreign Key /&nbsp; 저자 TABLE의 id : Primary Key


Entity, Attribute, Relation, Tuple

 

ERD 를 통해 찾아낸 개념들이 물리적으로 어떻게 옮겨지게 될까?

 

 

draw.io 를 이용한 ER 다이어그램 작성 예시: https://youtu.be/5rOOOqBpcYs

 


식별자(identifier) 선정

엔티티를 비롯해 속성들을 정의 또는 추출했다면, 속성 중 대표 선수인 '식별자'를 정해야 한다. 

원하는 대상을 정확하게 타겟팅할 수 있는, 유일한 값을 지니는 속성을 식별자로 하자.

 

속성 중 특별히 식별자로 쓸 것이 마땅하지 않으면, 행 추가마다 중복되지 않는 값을 부여하는 방식의 식별자(인조 키) 지정도 가능하다. 

 

후보 키(Candidate Key) : 식별자가 될 만한 키

기본 키(Primary Key) : 후보키 중 선택한 식별자

대체 키(Alternate Key) : 후보키 중 기본 키가 아닌 키. 이후 성능 향상 위해 세컨더리 키로 이용할 수 있는 키들.

중복 키(Composite Key) : 두 개의 키를 묶어서 식별자 지정.

(만약 부서배정일을 알고 싶다면 사원번호와 부서번호를 모두 알아야 한다. 이 경우 사원번호와 부서번호를 합해 식별자로)


Relationship

 

마름모꼴로 표현한 '관계'

 


 

Cardinality

기수. Relation에서 꼭 따져봐야 할 요소.

 

서로에게 서로는 몇 개인가? 

서로의 관계는 유일한가? 혹은 한쪽만 유일한가?

 

일대 다 / 1:N
다대 다 / N대 M. 최종적으로는 데이터베이스 테이블로는 표현하기 어려워, 1:N 으로 컨버팅한다.

 


Optionality

옵션. 있을 수도, 없을 수도 있다.

 

저자에게 댓글은 옵션이다. 

 

반면 댓글에게 저자는 필수다. (Mandatory)

 

 

 

ERD에 적용해 보자.

 

 


 

 

 

관계와 관련해 ERD를 그리는 게 혼란스럽다면 아래 링크에서 정리해 보자!

http://erd.yah.ac/

 

http://erd.yah.ac/

 

erd.yah.ac