치춘짱베리굿나이스

ERD 그려보기 with ERDCloud 본문

ServerSide/Database

ERD 그려보기 with ERDCloud

치춘 2022. 9. 27. 15:52

ERD 그려보기 with ERDCloud

ERDCloud

ERDCloud

앞서 ERD의 구성 (사실상 새발표기법 원툴) 에 관해 알아보았으니 이번에는 테이블간 관계도를 직접 그려보자

ERDCloud는 웹상에서 테이블 ERD를 그리기 쉬운 툴이다

딱 있을 기능들만 있어서 draw.io처럼 복잡하지도 않고 직관적으로 관계도를 그릴 수 있다

다만 당연히 동작할 줄 알았던 단축키들이 안 먹혀서 조금 당황했따…

로그인은 구글, 페이스북, Github OAuth로 가능하다

ERD 생성 및 테이블 추가

로그인을 했다면 우상단의 + 아이콘을 누르자

로그인 아이콘은… 우상단의 문 아이콘을 누르면 된다

간단한 과정이라 굳이 추가 안 했다

 

ERD 생성 모달이 나온다

ERD의 이름과 태그, 공개 여부를 설정하자

태그는 사실 지금 단계에선 굳이 필요 없는 것 같아서 일단은 추가 안 했다

 

태그를 추가하면 같은 태그끼리 모아볼 수 있고, 태그로 다른 사람의 관계도 검색도 가능하다

ㅁ 으로 검색하니 수많은 한국인들의 태그 달기 귀찮아하는 흔적들을 볼 수 있었다 (ㅋㅋㅋ)

 

왼쪽 툴바의 테이블 아이콘을 클릭하고, 검은색 영역 아무데나 클릭하면 해당 위치에 테이블이 생성된다

테이블 이름을 바꿀 수 있도록 포커스가 잡히고, 아직 컬럼은 한 개도 없다

컬럼 추가 및 테이블 보기 설정

파란 + 버튼을 누르면 필드가 마구마구 추가된다

노란 + 버튼은 PK 용이라 후술할 것

테이블에 Field, Field2, Domain, Type가 기본으로 출력되는데 지금 단계에서 도메인과 Field2는 필요가 없으므로 보기 설정을 바꿔주자

FieldField2의 차이는 Logical name과 Physical name의 차이라고 한다 (실제 데이터베이스에서 사용되는 이름과, 외부 인터페이스에서 사용되는 이름의 차이)

 

톱니바퀴를 누른다

 

설정 페이지에서 DISPLAY의 체크박스를 조정하여 보여주고 싶은 데이터와 숨기고 싶은 데이터를 고를 수 있다

Domain은 숨기고 Allow Null (체크하면 옆에 NOT NULL이나 NULL 중 고를 수 있다) 을 허용하자

위의 Field2를 숨기고 싶다면 START VIEW MODE에서 Logical 또는 Physical을 선택하여 하나만 남겨두자

 

설정 페이지에서 설정하는 값은 처음 ERDCloud를 켰을 때 보여줄 필드명으로, 테이블 편집 화면에서도 왼쪽 툴바에서 위 이미지의 아이콘들을 눌러 보기 방식을 다르게 설정할 수 있다

당장은 logical / physical을 신경쓸 필요가 없으므로 둘중 하나만 선택해도 무방하다

 

드디어 어디서 많이 보던 형태의 테이블이 되었다

 

각 테이블의 요소를 더블클릭하여 값을 채워주면 된다

주의할 점은 왼쪽 툴바에서 마우스 커서가 화살표 모양인지, 손바닥 모양인지 체크하자

손바닥 모양일 때는 필드 변경이 안 된다

PK 추가하기

위의 예시에서 student_id는 primary key에 적합하므로 (각 레코드를 식별하는 데에 사용하기 좋으므로) PK로 재설정해 보자

컬럼을 더블클릭하면 휴지통 아이콘이 나오며, 이 아이콘을 클릭하면 컬럼을 삭제할 수 있다

i 아이콘은 컬럼의 상세 정보를 수정할 수 있으며, 이름이나 제약조건 등을 적을 수 있다

위쪽 화살표를 클릭하면 컬럼을 PK로 설정하거나 해제할 수 있다

 

노란색 + 버튼을 클릭할 때가 왔다

클릭하면 primary key에 해당하는 컬럼이 최상단에 추가된다

속성들은 다른 컬럼 채우듯이 채워주면 된다

테이블간 연결하기

테이블 2개를 연결해보자

예시를 위해 교수 테이블 (professor_table) 을 추가해 주었다

 

이제 두 테이블을 이어볼 것이다

왼쪽 툴바에서 새발표기법같이 생긴 아이콘을 누르면 각각의 아이콘에 해당하는 새발 선을 추가할 수 있다

교수 한 명당 학생 여러명을 연결해 보자 (교수 1 : n 학생)

 

아이콘을 클릭하면 커서가 새발 모양으로 바뀌고, 테이블을 각각 클릭함으로써 테이블을 연결할 수 있다

선택한 새발은 연결선의 끝점에 나타난다는 것을 기억하자

  1. 연결선의 출발점이 되는 테이블 (부모 테이블) 을 선택한다
    • 교수 1명당 학생 여러 명을 연결할 것이므로, 교수 테이블을 클릭한다
    • 출발점 테이블은 기본적으로 1개 연결된다
  2. 연결선의 끝점이 되는 테이블 (자식 테이블) 을 선택한다
    • 학생이 여러 명 연결될 예정이므로 새발의 끝이 학생을 향해야 한다
    • 따라서 학생 테이블을 클릭한다
    • 앞서 툴바에서 선택한 새발이 학생 테이블을 가리키게 된다
  3. Identifying Relationship, Non-Identifying Relationship 중 하나를 선택한다

 

요로코롬 테이블 연결 하나가 완성되었다

식별 관계로 설정했기 때문에 student_tableprofessor_table에 종속적이다

 

연결을 삭제하고 싶다면 FK 컬럼을 삭제하면 된다

테이블 Export 하기

하단의 Export를 누르면 옵션이 여러 개 나온다

 

DB 종류를 선택할 수 있다

지원되는 건 MySQL, Oracle, MS-SQL로 가장 많이 사용되는 RDBMS 3대장이다

상단 옵션은

  • PK 제약조건 추가
  • FK 제약조건 추가
  • 비식별관계 제약조건 추가
  • DROP 명령 추가
  • 선택한 엔터티만 export하기
CREATE TABLE `student_table` (
    `student_id`    VARCHAR(20)    NOT NULL,
    `professor_id`    VARCHAR(20)    NOT NULL,
    `gpa`    INT    NOT NULL,
    `is_absent`    BOOLEAN    NOT NULL
);

CREATE TABLE `professor_table` (
    `professor_id`    VARCHAR(20)    NOT NULL,
    `office_address`    VARCHAR(20)    NULL
);

ALTER TABLE `student_table` ADD CONSTRAINT `PK_STUDENT_TABLE` PRIMARY KEY (
    `student_id`,
    `professor_id`
);

ALTER TABLE `professor_table` ADD CONSTRAINT `PK_PROFESSOR_TABLE` PRIMARY KEY (
    `professor_id`
);

ALTER TABLE `student_table` ADD CONSTRAINT `FK_professor_table_TO_student_table_1` FOREIGN KEY (
    `professor_id`
)
REFERENCES `professor_table` (
    `professor_id`
);

옵션 선택 후 SQL Preview를 클릭하면 위처럼 예시를 보여준다

테이블 2개를 미리 생성하고 ALTER TABLE을 통해 제약조건 추가 및 테이블 연결을 시도하는 것을 볼 수 있다

하단의 버튼들은 각각

  • Download SQL: sql 확장자의 쿼리문을 저장한다
    • SQL Preview에서 확인한 내용과 동일한 내용을 저장한다
  • Download PNG: DB 테이블을 이미지로 저장한다
    • 화면에 보여지는 모습 그대로 저장해준다
  • Download EXCEL: xlsx 확장자로 저장한다

 

엑셀 파일은 위와 같이 개략적인 테이블 정보만 엑셀로 저장한다

딱히 테이블이 연결되고 막 그런 건 없다

여담

erdcloud 홈페이지에 처음 딱 들어가면 OKKYERD를 볼 수 있다

erdcloud에서 테이블을 연결하는 것이 익숙치 않으면 참고해도 좋을 듯 하다 (나도 했다)

의외로 레퍼런스가 많지 않았지만 사실상 레퍼런스 없이도 혼자 몇 번 클릭해보면 쉽게 만들 수 있는 수준이긴 해서 다행이었다


'ServerSide > Database' 카테고리의 다른 글

MySQL Workbench 사용해보기  (0) 2022.09.28
Identifying / Non-Identifying Relationship  (0) 2022.09.27
ERD  (0) 2022.09.27
MySQL (Express와 함께)  (0) 2022.09.14
DBMS  (0) 2022.09.10
Comments