논문 2011-5-2
ER_Modeler: 개체 관계 모델 기반 논리적 데이터베이스 설계 도구
ER_Modeler: A Logical Database Design Tool based on Entity-Relationship Model
정인환*, 김영웅*
In-Hwan Jung, Young-Ung Kim
요 약 본 논문은 개체 관계 모델을 기반으로 하는 논리적 데이터베이스 설계도구인
ER_Modeler
개발에 관한 연구 이다. ER_Modeler
는 윈도우 상에서 개체 관계 다이어그램(Entity-Relationship Diagram: ERD)
을 작성할 수 있는 그래픽 편집도구 기능과 생성된ERD
정보로부터 논리적 데이터베이스 테이블을 정의하기 위해 데이터 정의어(Data Definition Language: DDL)
를 자동 생성하는 기능을 제공한다.
또한 상업적으로 가장 많이 사용되고 있는Erwin
제품과의 호환성 을 제공하기 위해XML
을 이용하여ERwin
과의Export/Import
기능도 제공해준다.
Abstract In this paper, we propose ER_Modeler, which is a logical database design tool based on entity-relationship model. ER_Modeler provides the entity-relationship diagrams to be built graphically on windows and generates the graphs into the appropriate data definition language for creating relational database tables. Futhermore, ER_Modeler provides the import/export functions using XML to guarantee the interoperability with ERwin which is one of the most popular commercial products.
Key Words : Entity-Relationship Model, Relational Database, Data Definition Language, XML
*정회원, 한성대학교 컴퓨터공학과 교수 접수일자 2011.9.14, 수정일자 2011.10.10 게재확정일자 2011.10.14
Ⅰ. 서 론
데이터베이스 설계를 위해 보편적으로 사용하는 모델 인 개체 관계 모델(Entity-Relationship Model)은 기본적 으로 개체집합(entity set), 관계집합(relationship set), 그 리고 개체에 대한 제약조건들을 명시하여 현실 세계를 개념적으로 표현하는 모델이며. 이 모델을 그래픽으로 표현하여 제공하는 것이 개체관계 다이어그램(Entity- Relationship Diagram: ERD)이다
[1].
ERD를 관계형 데이터베이스 테이블로 생성하기 위해 사용하고자 하는 상용 DBMS의 데이터 정의어(Data
Definition Language: DDL)를 이용해서 테이블을 정의 하며, 이 정의는 개체, 관계뿐만 아니라 대응수(mapping cardinality), 제약조건(constraints) 등을 포함한다.
본 논문은 ERD를 윈도우 상에서 작성할 수 있는 ERD 편집도구 기능과 생성된 ERD를 데이터베이스 테이블로 자동 정의해주는 DDL 생성 기능을 제공하는 데이터베이 스 설계도구인 ER_Modeler에 대해 기술한다.
ER_Modeler는 메뉴바, 툴바, 키보드 및 마우스를 이
용하여 ERD를 손쉽게 표현할 수 있도록 구현되었으며,
상속 개념을 지원하며, 데이터베이스 테이블 정의를 위
한 DDL 생성도 지원한다. 또한 상업적으로 가장 많이 사
용되고 있는 ERwin 제품과의 호환성을 보장하기 위해
XML을 이용하여 ERwin과의 Export/Import 기능도 제
공한다
[2].
본 논문의 구성은 다음과 같다. 제 2장에서는 ER_Modeler의 시스템 구성에 대해 기술한다. 제 3장에 서는 ER_Modeler의 ERD 편집도구 기능에 대하여 기술 하고, 제 4장에서는 데이터베이스 테이블을 정의하기 위 해 DDL을 생성하는 기능과 ERwin과의 호환성을 위해 Export/Import 기능에 대해서 기술한다. 끝으로 제 5장 에서는 향후 연구과제에 대해 기술하고 결론을 맺는다.
Ⅱ. 시스템 구성
1. ER_Modeler 클래스 구조
그림 1은 ER_Modeler의 클래스 구조를 보여준다.
ERObject 클래스는 ER_Modeler에 의해 생성된 개체집 합과 관계집합 정보를 저장하고 있으며, EventMouse 클 래스는 마우스 이벤트의 공통 정보들을 저장하고 있다가 마우스 이벤트가 발생하면 그에 해당하는 EventMouse 클래스를 상속받는 클래스가 호출된다. 이 호출된 클래 스는 자신이 이전에 발생시킨 정보 등을 분석하여 EvnetFormMouse 클래스를 상속받는 클래스인 세부적 인 마우스 조작 이벤트 클래스를 호출한다.
EventFormMouse 클래스를 상속받는 클래스는 Entity
& Relationship 관련 이벤트 클래스를 호출한다.
그림 1. ER_Modeler 클래스 구조
Fig. 1. Class structure of ER_Modeler
2. ER_Modeler 이벤트 구조
그림 2는 ER_Modeler의 이벤트 구조를 보여준다.
이벤트는 마우스, 키보드, 버튼의 세 가지 이벤트 방식 으로 분류하여 ER_Modeler에서 필요로 하는 Entity &
Relationship 관련 이벤트를 호출한다. EventMouse 클래
스는 C#에서 제공하는 마우스 이벤트들을 단순히 분석하 기 위해서 MouseClick 클래스 MouseDown 클래스 등으 로 나눈 것이고, EventFormMouse 클래스는 분석한 마 우스의 현재 상태가 어떤 버튼이 클릭되었는지 등의 세 부적인 상태를 인지하고 정의하는 클래스이다.
EventFormMouse 클래스와 EventFormKey 클래스 를 상속받는 클래스와 Button Event 클래스는 Entity &
Relationship 클래스 관련 이벤트 클래스를 호출한다.
그림 2. ER_Modeler 이벤트 구조
Fig. 2. Event structure of ER_Modeler
3. ER_Modeler 자료구조
ER_Modeler의 전체적인 자료 구조는 개체집합과 관 계집합각각에 대해 ArrayList 자료구조를 사용하였다.
하나의 개체집합은 객체를 윈도우 상에서 표현하기 위한
자료를 관리하는 EntityDraw 클래스, 테이블 변환 시 필
요한 정보를 저장하는 EntityInfo 클래스, 객체의 focus
상태를 관리하는 Boolean 변수인 Focus, 객체에 저장할
속성 정보를 담고 있는 AttributeList 클래스로 구성되어
있다. 여기서 AttributeList 클래스는 primary key와
non-primary key의 정보를 ArrayList를 자료구조로 표
현하였고, 속성에 대한 정보를 윈도우 상에서 표현하는
정보를 담은 AttributeDraw 클래스로 이루어져 있다. 그
림 3은 개체집합을 표현하기 위한 자료구조의 형태를 보
여준다.
그림 3. 개체집합 지료구조
Fig. 3. Data structure of entity set
하나의 관계집합이 가지는 정보는 이 관계집합에 참 여하는 두 개의 개체집합 사이의 관계정보를 담고 있는 RelationInfo 클래스와 관계집합을 윈도우 상에서 표현하 기 위한 정보를 담고 있는 RelationDraw 클래스로 구성 되어 있다. RelationInfo 클래스는 매핑대응수 정보, 참여 정보 및 관계에 참여하는 두 개의 개체집합 사이의 식별 자 관계(identifying/non-identifying) 정보를 가지고 있 다.
그림 4. 관계집합 지료구조
Fig. 4. Data structure of relationship setRelationDraw
클래스는 관계집합에 참여하는 두 개의 개체집합 사 이에 윈도우 상에서 상대적 좌표를 연산하고 그 정보를 저장한다. 그림 4는 관계집합을 표현하기 위한 자료구조 의 형태를 보여준다.
그림 5. ERD 생성 예
Fig. 5. Example of generated ERD
Ⅲ. ERD 편집도구 기능
ER_Modeler의 개발환경은 Windows_Xp Service Pack 2 운영체제에서 Microsoft Visual Studio Team System 2008을 이용하였으며, 구현언어는 C#을 사용하 였고, 닷넷 Framework 3.5 기반으로 개발하였다
[3]. ER_Modeler의 주 기능은 크게 ERD를 편집할 수 있는 기능과 생성된 ERD를 관계형 테이블로 변환하기 위한 DDL 생성기능으로 되어 있다.
ER_Modeler의 사용자 인터페이스는 크게 메뉴바 (menu bar), 툴바(tool bar), 스크롤바(scroll bar)로 구성 된다. 메뉴바는 ER_Modeler에서 제공하는 대부분의 기 능들을 제공하고 있고, 툴바는 자주 사용하는 기능들을 아이콘으로 만들어 두어 사용자가 손쉽게 ERD를 편집할 수 있도록 하였다. 스크롤바는 View의 범위를 넘어가는 부분에 대해서 스크롤 가능하게 하여 전체적으로 표현 가능하게 해준다. ERD 편집도구 기능들은 다음과 같다.
▪파일기능: 새로만들기, 불러오기, 저장하기, 최근파 일 불러오기, 종료
▪압력기능: 개체집합생성, 관계집합생성, undo/redo
▪설정기능: subject설정, 개체집합설정, 애트리뷰트 설정, 관계집합설정, 환경설정
▪뷰기능: display level설정
▪도움말기능: 사용자메뉴얼, 프로그램정보
환경설정 기능은 글자색, 배경색, 글꼴, 글자크기 및
관계집합의 표기법을 설정할 수 있으며, display level 기
능은 윈도우상에서 ERD를 보여주는 수준을 애트리뷰트
명, 애트이뷰트명+도메인, 주키, 엔티티명을 조합하여 화 면상에 디스플레이하는 기능이다. 그림 5는 ER_Modeler 편집도구를 이용하여 생성된 ERD의 예를 보여준다.
관계집합에 참여하는 개체집합의 매핑 대응수는 1:N 또는 M:N으로 구분된다, 1:N의 경우 툴바에서 1:N 버튼 을 선택한 후 두 개의 개체집합을 선택하여 순서대로 클 릭하면 먼저 선택된 개체집합이 대응수 1이 되며, 나중에 선택된 개체집합이 대응수 N이 된다.
또한 식별(identifying)/비식별(non-identifying) 표현 은 연결선을 실선/점선으로 구분하며, 식별일 경우 대응 수 1 측의 primary key 속성 집합들이 대응수 N 측의 primary key 속성 영역에 외래키로 자동 설정되며. 비식 별일 경우 대응수 1 측의 primary key 속성집합이 대응 수 N 측의 non-primary key 속성 영역에 외래키로 자동 설정된다.
매핑 대응수가 M:N의 경우, 관계에 참여하는 두 개의 개체집합을 클릭하면 선택된 개체집합 사이의 관계는 자 동으로 새로운 개체집합이 두 개체집합 사이에 생성되고 기존의 개체집합과는 각각 1:N의 관계로 맺어져 M:N의 관계를 해소시킨다. 이때 새로운 개체집합의 속성 영역 에 관계에 참여한 두 개의 개체집합의 primary key 속성 들이 외래키로 생성된다.
관계에 참여하는 개체집합은 전체 참여와 부분 참여 로 표현가능하며, Relation 설정에서 이를 수정할 수 있 다. 이렇게 만들어진 ERD에서 개체집합의 이름 변경/삭 제가 가능하고, 속성의 이름변경/이동/추가/삭제가 가능 하다. 또한 Auto Size 기능은 개체집합의 크기를 가장 적 당한 크기로 자동으로 설정해주는 기능을 제공한다.
(a) (b) (c) 그림 6. (a) 도메인 제약조건 (b) 개체무결성 제약조건 (c) 참조무결성 제약조건
Fig 6. (a) Domain constraints (b) Entity integrity constraints (c) Referential integrity constraints
그림 6은 ER_Modeler에서 개체집합 및 관계집합의 제약조건 정보들을 지정하는 화면을 보여준다. 그림 6(a) 는 애트리뷰트의 데이터 타입, Null 값 허용유무, 기본 값 (default value)을 지정하는 화면이며, 그림 6(b)는 개체 집합 및 그 개체집합에 속하는 애트리뷰트에 대해 개체 무결성 제약조건을 지정하는 화면이며, 그림 6(c)는 관계 집합에서 관계타입(식별/비식별), 매핑 대응수 등 참조무 결성 제약조건을 지정하는 화면이다.
그림 7. 상속 관계의 ERD
Fig. 7. ERD of inheritance relationship
ER_modeler에서는 상속 개념을 지원한다. 개체집합 사이의 상속 형태는 중첩/분리(inclusive/exclusive) 및 전체/부분(total/partial)으로 구분한다. 중첩/분리 제약 조건은 하위 개체 집합에 속하는 한 개체가 다른 하위 개 체 집합의 개체로 존재할 수 있느냐(중첩), 존재할 수 없 느냐(분리)로 구분하며, 전체/부분 제약 조건은 상위 개 체 집합에 속하는 각각의 개체가 반드시 어느 한 하위 개 체 집합의 개체로 속하느냐(전체), 속하지 않느냐(부분) 로 구분한다. 그림 7은 ER_Modeler에서 학생이 상위 개 체 집합이고 학부생과 대학원생이 하위 개체 집합으로 상속 관계로 연결된 ERD를 보여준다. 상속 관계 표현은 상위 개체 집합과 하위 개체 집합을 반원 모양으로 연결 하고 제약 조건은 중첩/분리 제약 조건은 반원 안에 “X”
의 유무로 구분하며, 전체/부분 제약 조건은 반원 밑에
“_”의 유무로 구분한다.
Ⅳ. DDL 생성 기능 1. 관계형 DDL 생성
생성된 ERD로부터 관계형 데이터베이스 테이블을 정
의하기 위한 DDL을 생성하기 위해서는 기본적으로 엔티 티명, 애트리뷰트명, 데이터 타입, 관계집합의 조건 등의 정보를 이용하여 DDL을 생성한다. 그림 8은 교수와 학 생 개체집합 사이에 1:N 매핑 대응수를 가지는 ERD의 예를 보여준다. 이 ERD의 속성정보들은 그림 6에서 보 여준다.
그림 8. 교수, 학생 간의 1:N 관계 ERD
Fig. 8. ERD of 1:N mapping cardinality between professor and student
그림 9. 1:N 비식별 관계의 관계형 DDL 생성 Fig. 9. DDL generation under 1:N mapping cardinality with non-identifying relationship
그림 9는 그림 8의 ERD로부터 그림 6의 속성정보들 을 참조하여 생성한 교수 테이블과 학생 테이블을 정의 하기 위한 DDL 생성 결과를 보여준다. 각각의 애트리뷰 트 데이터 타입은 그림 6(a)의 도메인 제약조건 정보 정 보로부터 가져온 것이며, 교수 테이블에서의 직위제약 문장과 학생 테이블에서의 학년제약 문장은 각각 그림 6(b)에서 지정한 개체무결성 제약조건 정보를 DDL로 변 환한 문장이며, 학생 테이블에서의 외래키 문장은 그림 6(c)의 참조무결성 제약조건 정보로부터 생성한 문장이
다. 이 제약조건에서는 비식별 관계(ERD에서는 관계선 이 점선으로 표시)로 Not Null로 지정하였으므로 교수번 호 애트리뷰트가 학생 테이블에서 주키로 선언되지 않고, 또한 NOT NULL로 선언됨을 보여준다.
그림 10은 그림 8의 ERD에서 관계집합을 식별 관계 로 지정할 경우의 학생 테이블을 정의하기 위한 DDL 생 성 결과를 보여준다. 식별관계의 경우 교수 테이블의 주 키인 교수번호가 학생 테이블에서 주키이면서 외래키로 선언됨을 보여주고 있다.
그림 10. 1:N 식별 관계의 관계형 DDL 생성
Fig. 10. DDL generation under 1:N mapping cardinality with identifying relationship
2. 상속 관계에서의 DDL 생성
ER_Modeler는 그림 7과 같이 고전적인 개체 관계형 모델에서 제공하는 개념적 모델 표현에 부가하여 상속 개념을 지원한다
[4]. ER_Modeler에서는 상속 관계를 데 이터베이스 테이블로 정의하기 위해 모든 개체 집합을 각각의 테이블로 생성(one table per entity set), 하위 개 체집합에 대해 각각의 테이블로 생성(one table per sub-entity set), 모든 개체집합을 하나의 테이블로 생성 (one table per entity set hierarchy)으로 구분하여 DDL 을 생성한다. 이 구분의 기준은 관계타입인 중첩/분리 및 전체/부분으로 판단하며, 최종적으로 사용자가 지정하도 록 하였다
[5].
그림 11은 그림7의 ERD에서 ISA 관계타입이 분리/부
분으로 설정된 경우 각각에 객체집합을 테이블로 정의하
는 DDL 생성 결과를 보여준다. 관계타입이 partial일 경
우 한 대학원생 테이블은 학번을 대학원생 테이블에서
외래키로 선언하고, 또한 학생 테이블에서 한 튜플이 삭
제되면, 대학원생 테이블에서 그와 동일한 학번을 갖는
튜플도 같이 삭제되어야 하므로 on delete cascade 무결
성 제약조건을 명시한다.
그림 11. 분리/부분 관계타입에서의 DDL 생성
Fig. 11. DDL generation under exclusive/partial relation type
3. Import/Export를 위한 XML 생성
ER_Modeler에서 생성한 ERD를 상업적으로 가장 많 이 사용되고 있는 ERwin 제품과의 호환성을 제공하기 위해 XML
[6]을 이용하여 ERwin과의 Export/Import 기 능을 제공해준다. 두 제품 사이의 매핑을 위해 메타데이 터 인스턴스를 교환하는 방법을 제공하는 OMG(Object Management Group)의 CWM(Common Warehouse Metamodel)을 기반으로 구현하였다
[7]8]. 표 1은 OMG CWM의 주요 매핑요소를 ER_Modeler와 ERwin 4.x에 서 지원하는 메타모델 파라미터를 보여준다.
표 1. 메타모델 파라미터
Table 1. Metamodel parameters OMG CWM
Metamodel
ER_Modeler Metamodel
ERwin Metamodel Aggregation 식별/비식별 Identifying/Non-ident
ifying Design Level 논리적/물리적 Logical/Physical
Association 관계집합 Relationship Multiplicity 매핑대응수 Cardinality
Optional NULL NULL
Class 개체집합/테이블 Entity/Table Derived Type Not allowed Validation rule
Foreign key Foreign key Foreign key Generalization 상위객체/하위객체 Supertype/Subtype
Referential
integrity 참조무결성 제약조건 RI action
그림 12(a)는 ER_Modeler에 의해 생성된 그림 5의 ERD를 export 하기 위해 생성한 XML 파일의 일부를 보 여주며, 그림 12(b)는 생성된 XML 파일을 ERwin에서 import한 결과 다이어그램을 보여준다.
(a)
(b)
그림 12. (a) ER_Modeler에서 export한 XML (b) ERwin에서 import한 ERD Fig 12. (a) XML exported by ER_Modeler (b) ERD imported by ERwin
Ⅴ. 결 론
본 논문은 ERD를 윈도우 상에서 작성 할 수 있는
ERD 편집도구(ER_Modeler) 기능과 생성된 ERD를 데
이터베이스 테이블을 자동으로 생성해주는 DDL 생성 기
능을 제공하고, 타 시스템과의 호환성을 보장하기 위해
XML을 이용하여 export/import 기능을 갖는 데이터베이
스 설계도구인 ER_Modeler에 대해 기술하였다.
※ 본 연구는 한성대학교 교내연구비 지원 과제임.
저자 소개
정 인 환(정회원)
∙2000년 KAIST 정보및통신공학과 박사
∙1985 ~ 1998년 삼성전자 시스템사업 부 선임연구원
∙2001년 ~ 현재 한성대학교 컴퓨터공 학과 부교수
<주관심분야 : 분산데이타베이스, 멀티미디어통신>
김 영 웅(정회원)
∙1993년 KAIST 전산학과 박사
∙1984 ~ 1997년 KT 통신망 연구소
∙1997년 ~ 현재 한성대학교 컴퓨터공 학과 교수
<주관심분야 :데이터모델링, 소프트 웨어 신뢰도, 소프트웨어 설계>
ERD 편집도구는 논리적 모델을 ERD로 표현 할 수 있 는 대부분의 기능을 제공하며, UI도 사용자가 손쉽게 사 용할 수 있도록 직관적인 인터페이스를 개발하였다.
DDL 생성기능은 생성된 ERD 정보로부터 관계형 데이 터베이스 테이블을 정의하기 위해 개체집합, 관계집합 뿐만 아니라, 대응수, 제약조건 등의 정보를 고려하여 생 성할 수 있으며, 참조무결성 제약조건을 지원하기 위한 다양한 트리거 옵션을 지정하여 이를 DDL로 생성해 준다.
향후 연구 과제로는 ER_Modeler로 만들어진 논리적 모델링 정보를 바탕으로 물리적 모델링인 관계형 테이블 로 변환하여 데이터 정의 언어로 표현하는 기능과 Aggregation 개념을 시각적으로 명확하게 표현하는 기 능 및 범용으로 호환성을 제공하기 위해 표준 XML format을 정의하는 방법에 대해 연구할 계획이다.
참 고 문 헌