모델링 툴

지금까지 테이블을 구상하고, 만들고, 제약조건을 거는 과정에 대해 배웠다.

이렇게 백지에서 만들자니 너무 붕 떠있는 느낌이라 처음에는 막막하게 다가올 수 있다.

그래서 우리는 이 과정을 좀 더 직관적으로 확인할 수 있는 모델링 툴을 이용할 것이다.

eXERD 모델링 툴

https://ko.exerd.com/index.do

 

eXERD

안녕하세요. eXERD팀 입니다. 2022년 8월 18일(목) eXERD 3.3.27 버전 배포되었습니다. 해당 버전은 최신 Eclipse 및 Java 버전에 대한 안정적인 서비스 제공을 위해 eXERD 설치 권장 사양이 변경되었습니다.

ko.exerd.com

우리는 자바와 잘 연동되는 eXERD 모델링 툴을 이용할 것이다.

본인이 쓰는 OS에 따라 설치방법을 따라가자. 나는 MacOS를 쓰기 때문에 별도의 프로그램으로 쓰지 못하고 Eclipse 내장 플러그인으로 설치했다.

eXERD 프로젝트 생성

이전에 이클립스를 활용했기 때문에 UI는 익숙할 것이라 가정하고 설명하겠다.

우선 오른쪽 위에 새로운 perspective를 눌러서 eXERD모드로 전환해주자.

그런 다음 새로운 eXERD 파일을 생성하자. New -> eXERD

우리의 DBMS인 Oracle을 선택해주고, New Project에 프로젝트 이름, File Name엔 파일 이름을 넣어서 Finish를 눌러 완성시키자.

나는 modelProject 프로젝트에 book.exerd로 만들었다.

이렇게 도화지가 펼쳐지면 테이블을 만들 준비가 된 것이다.

단축키 3번을 눌러 새로운 테이블 생성 모드로 전환하고 빈 곳 아무데나 눌러보자.

이렇게 새로운 테이블이 생성됐고, 커맨드+엔터(컨트롤+엔터)를 누르면 새로운 필드를 생성할 수 있다.

이렇게 DBeaver에서 쿼리문으로만 작성하던 테이블을 간단하게 만들 수 있다. 이제 새로운 테이블을 구성해보자.

그 전에 짚고 넘어갈 것이 있다.

논리형과 물리형

우리가 데이터를 구분하는 두 가지 방법이다.

논리형은 사람이 읽기 편한 형태, 물리형은 데이터가 본질적으로 취해야하는 형태이다.

쿼리문은 물리형 데이터로 작성하고, 백지에서 데이터베이스를 구상할때 우리가 알아보기 쉽게 이름 붙이는 형태가 논리형이다.

논리형 - 작가코드, 물리형 - author_code

그리고 eXERD에서는 이 두 형태를 동시에 대조하면서 헷갈리지 않게 테이블을 작성할 수 있다.

왼쪽 위에 초록색 박스의 L과 빨간색 박스의 P가 보일 것이다. 논리모드(Logical)와 물리모드(Physical)를 설정하여 편한대로 테이블을 편집할 수 있다. 단축키는 F4와 F5이다.

테이블 편집

쿼리문으로 테이블을 만들때 필요한 데이터는 필드명와 제약조건이었다. 필드를 만들긴 했으나 어디에 뭐가 들어가는지 필드명빼곤 잘 모르겠다. 논리모드/물리모드 버튼 옆에 있는 버튼을 눌러서 필드의 어떤 항목을 보여줄지 설정하자.

eXERD에서 친절하게 논리/물리 프리셋을 만들어놨기 때문에 활용해주자.

아까보다 훨씬 뭐가 뭔지 잘 보이게 됐다. 그럼 이제 내용을 채워넣어주자.

폰트색상은 아직 해결중에 있으니 양해바란다.

이렇게 데이터형까지 제대로 작성해주고 나서 제약조건을 설정해야한다.

우선 reg_date의 DEFAULT설정부터 해주자. 해당 칼럼을 우클릭해서 속성으로 들어가자. 또는 클릭 후 스페이스바를 눌러도 된다.

그리고 General -> Default Value Expression 안에 SYSDATE를 넣어주자. 모든 테이블에 적용시켜주자.

다음은 PRIMARY KEY 지정이다. 테이블 안의 데이터들의 지표가되는 칼럼을 우클릭하고 Set PK Column을 누르면 된다.

NOT NULL은 테이블 맨 오른쪽에 Nullable을 클릭하다보면 N·N과 NULL을 설정할 수 있다.

FOREIGN KEY 지정

외래키 지정은 테이블을 연결시켜주는 방식으로 할 수 있다.

단축키 4번을 누르면 빨간색의 꼬불한 연결선로 마우스가 변할 것이다.

스크린샷을 찍다가 파란색으로 변했지만 빨간색이 맞다.

이제 순서는 참조될 테이블을 먼저, 그 다음으로 참조하는 테이블 순으로 연결시켜주자.

연결시키면 괴상한 알림음과 함께 선택지가 나오는데, Use existing column을 고르자.

이렇게 book_tbl의 author_code가 author_tbl의 author_code를 참조하게 됐다. 필드명을 동일하게 지은 이유도 이 때문이다.

동일한 방식으로 pub_tbl도 연결시켜주자. 여기까지가 테이블 생성하는 과정이었고, 이제 생성한 테이블을 실제로 OracleDB에 쿼리문을 날려 생성하자.

+ Recent posts