※ ERD란?

Entity Relationship Diagram : 데이터베이스 구조를 한 눈에 알아보기 위해 그려놓는 다이어그램이다. ERD는 단어에서 의미하는 그대로 ' Entity 개체 '와 'Relationship 관계 '를 중점적으로 표시하는 다이어그램이다.

 

※ 왜 사용하는가? 

DB의 데이터가 무작위로 많아지면 필요한 데이터를 찾을 때 시간이 걸리기도 하고 , 결과값이 달라질 수 있는데 이걸 해결하기 위해서 모델링이 필요하다. 그 중 하나가 관계도로 모델링을 하는 것인데, 그걸 보기 편하게 보기 위해서 사용한다.

 

※ 어떻게 사용하는가? 

우선 물품이 양품으로 나왔는데 사용해보니 불량이였고, 어떤 시간 때에 그 불량이 연속적으로 나왔다는 시나리오가 있다고 생각해보자.

그럼 어떤 시간대에 불량이 나왔느지를 알아보고 폐기를 하던 수리를 해야 될 것이다.

 

1. 우선 필요한 데이터를 하나 결정한다. 예를들어 양품이 어디 위치에 있는지 알아보자.

테이블을 작성해 보자.

물품위치

- 비금속은 불량인 제품이다.

- 금속은 양품인 제품이다.

이렇게 테이블을 작성 했을 시, 창고가 더 필요한 경우 창고를 더 만들어 줘야된다. 그러면 칼럼수가 계속 늘어나게 될 것이다. 그러면 연산시간이 더욱 늘어난다. 그러면 내가 필요한 데이터를 정리한 테이블을 만들 수 없을까? 라는 생각이든다.

- 그래서 정규화를 시켜 준다.

https://mangkyu.tistory.com/110

 

[Database] 정규화(Normalization) 쉽게 이해하기

지난 포스팅에서 데이터베이스 정규화와 관련된 내용을 정리했었다. 하지만 해당 내용이 쉽게 이해되지 않는 것 같아서 정규화 관련 글을 풀어서 다시 한번 정리해보고자 한다. 1. 정규화(Normaliz

mangkyu.tistory.com

정규화가 이해가 쉽게 나와있다.

정규화 데이터

생산시간을 기준으로 각각의 테이블을 참조하여 필요한 데이터를 찾아서 볼 수가 있다.

정규화를 하면 무결성이 보장되지만 데이터를 넣고 빼고 하다보면 어쩔 수 없이 데이터를 건들여서 날아가던가 수정이 되던가 그럴 경우가 있다. 그럴 때 확실하게 연결하기 위해서 ERD를 활용한다.

 

※ ERD로 활용해서 써보자.

mysql-community로 작성함

mysql

mysql에서 file -> new model을 선택

DB생성 후 ERD생성

1번을 더블클릭하여 2번의 DB의 이름을 설정해주고 3번의 ERD를 만들어준다.

테이블 생성

테이블 생성 뒤

테이블 설정

테이블을 더블 클릭하면 아래에 테이블 칼럼을 작성할 수 있다.

mem_time -> 생산시간은 유일한 값이여서 PK로 설정했다. DataType은 시간을 넣어야 되니 datetime으로 설정했다.

mem_magagin -> 물품은 금속,비금속 밖에 없으니 varchar(6)으로 설정해도 되지만 넉넉하게 8로 줬다.(한글은 글자당 2byte이므로 비금속이 최대 글자니까 6byte로 생각하면 됌)

 

나머지도 위에 정규화 테이블처럼 만들어준다.(나머지 생산시간도 PK로 설정함)

테이블 설정 끝

 

- 이제 관계도를 맺어줘야 된다.

 

생산시간으로 PK로 묶었기 때문에 각각 생산시간으로 관계가 엮인다.

근데 생산시간은 생산한 시간만 있는 고유의 값이므로 각가의 테이블의 생산시간이랑 1:1일 수 밖에 없는 구조이다. 

다음과 같이 연결한다.

관계도

확실한 관계도 일 경우 Identifying Relationship을 쓴다.

(여기서는 관계가 확실하게 생산시간으로 했기 때문에 이렇게 씀.)

(보통은 Non-Identifying Relationship을 많이 쓴다.)

 

- 이제 DB로 만들어보자

실제 DB화 시키기

클릭한 후

설명1

Next

설명2

Next

설명3

비밀번호 쳐주고 Next

 

설명4

만들어 진 것이 보일 것이다. Next

설명5

체크가 다되면 Close하면 된다.

 

- 이제 DB가 만들어 졌는지 확인해보자

설명1

Refresh All하면 DB가 나올 것이다.

설명2

칼럼에 속성이 관계도로 의해서 quality_mem_time으로 만들어져, 필요한 정보를 찾을 수 있다.

'DB' 카테고리의 다른 글

DB VIEW 활용법 - 정리해야 됌  (0) 2022.04.26
예약어 글자 크게 하기  (0) 2022.04.22
DB에 쓰이는 쿼리문  (0) 2022.04.22
MY-SQL 설치 및 설정  (0) 2022.04.11
DB 정규화  (0) 2022.04.10

+ Recent posts