MySQL 워크벤치(workbench)
모델링 자동화 툴
- 컴퓨터 프로그램을 사용한 데이터베이스 모델링 도구
- CASE(Computer Added Soft Engineering tool) 도구라고 함
MySQL 워크벤치(MySQL workbench)
- 대표적인 모델링 자동화 툴
- 통합 개발 환경(IDE; Integrated Development Environment) 제공
- GPL(GNU Public License)이 적용된 무료로 간편하게 사용할 수 있는 툴
- EER 다이어그램 지원(확장된 ER 다이어그램)
- MySQL 서버 관리 기능
MySQL 워크벤치를 이용한 ER 모델링
- 확장된 ER 다이어그램(EER 다이어그램; Enhanced Entity-Relationship Diagrm) 지원
- 외래키 표현 가능
- 물리적 데이터 모델에서 정의하는 데이터 타입 등 표현 가능
EER 모델링
MySQL 워크벤치 살펴보기
- 왼쪽에 Connections, Models 등 여러 탭으로 구성
MySQL 워크벤치의 EER 모델링
- 워크벤치 왼쪽 구역 두번째 탭(Models) 클릭
- File - New Model 클릭
- 기본적으로 'mydb'라는 스키마를 가지는 *.mwb 파일 생성 됨
- 스키마 이름 변경 및 삭제 가능
- 하나의 파일에 여러 개의 스키마 작성 가능
스키마 생성 및 설정
MySQL 모델 에디터
- Description, User Types/Histroy Panel, Model Overview, Modeling Additions 4개 영역으로 구성
- Model Overview
- 새로운 스키마를 생성하고 관리하는 작업이 이루어지는 부분
- 다이어그램 리스트와 물리적 스키마 툴바로 이루어 짐
- 모델을 새롭게 만들면 기본적으로 mydb스키마가 포함되어 있음
- 스키마 이름 변경 : 스키마 이름(mydb) 더블클릭시 이름 변경 가능
- 스키마 생성 : 물리적 스키마 툴바에서 버튼(+) 클릭
- EER 모델링 생성 : 다이어그램 리스트에서 Add Diagram 더블클릭
학사 시스템 개체 집합 생성
학사 시스템 : 과목, 교수, 학생 3가지 개체 집합 생성
- Diagram 탭
- 테이블 생성 : 7번째에 표모양 아이콘 클릭 - 만들고 싶은 위치에 클릭
- 테이블 입력 및 수정 : 테이블 더블 클릭 - 상세 사항 수정
- Column Name : 과목 개체에 대한 속성 나열
- Datatype : 각 속성에 상응하는 데이터 타입 기술
- 제약조건
- PK(PRIMARY KEY) : 기본키로 설정
- NN(NOT NULL) : 널값의 입력 유무를 설정
- UQ(UNIQUE KEY) : 유일값으로 설정
- BIN(BINARY) : 바이너리 값으로 저장
- UN(UNSIGNED) : 숫자 형식일 경우 0과 양수만 사용
- ZF(ZEROFILL) : 입력한 값의 자릿수에 여유가 있으면 그 부분 모두 0으로 채움, 지정시 UN 속성을 컬럼에 추가
- AI(AUTO_INCREMENT) : 테이블에 새로운 레코드가 입력될 때 자동적으로 1씩 증가 후 저장
- DEFAULT : 컬럼에 입력값 없을 경우, 자동으로 입력되는 기본값을 지정
** 다이어그램에 한글 글씨가 안보인다면 **
(MAC) MySQLWorkbench(화면 왼쪽 위 메뉴바) 클릭 - Settings.. 클릭 - Modeling - Apperance 클릭 - Configure Fonts For 선택창에서 Korean 선택 - OK 후 파일 저장 재시작
학사 시스템의 관계 집합 정의
관계 집합의 유형의 의미
- 식별/비식별 관계 : 부모 개체 집합의 기본키가 자식 개체 집합의 기본키로 정의 되는지, 일반 속성으로 정의 되는지에 따라 구분
- 사상 수 : 개체 집합과 개체 집합 사이의 사상 원소 수(mapping cardinality)에 따라 일대일, 일대다, 다대다로 구분
식별관계와 비식별관계 정의
식별관계(identifying)
- 부모 테이블의 기본키는 자식 테이블에서 기본키임과 동시에 외래키
- 자식 테이블의 각 인스턴스가 부모에 종속적
- 부모 테이블 없이는 존재할 수 없는 약한 관계
- 실선 표시
비식별관계(non-identifying)
- 부모 테이블의 기본키가 자식 테이블의 일반 속성으로 전이되는 관계
- 부모 테이블의 기본키가 자식 테이블에서는 외래키
- 점선 표시
교수와 과목 개체 집합 사이의 관계 정의
교수개체와 과목개체
- 일대다(1:N) 관계 : 하나의 과목은 오직 한 교수만 강의, 한 강사는 여러 강의를 담당
- 비식별관계
- 워크벤치 일대일 아이콘으로 이어주면 과목 테이블에 교수_교수번호 속성이 추가됨
- 수정은 개체 더블클릭 후 해당 속성명 수정
과목과 학생 개체 집합 사이의 관계 집합 정의
과목개체와 학생개체
- 수강신청이라는 관계 집합 생성
- 다대다(N:M) 관계 : 하나의 과목에는 여러명 학생 수강신청, 한 명의 학생이 여러 과목 신청
- 워크벤치 다대다 아이콘으로 이어주면 개체A_has_개체B라는 테이블이 생성
- 해당 테이블 더블클릭 후 테이블명, 속성명 수정
- 신청시각 속성 추가
- 학생번호 속성은 NN열 체크 해제해서 부분참여 조건 표현(학생개체쪽 연결 부분이 동그라미로 변경)
과목과 과목 사이의 재귀적 관계 선수과목 관계 정의
과목개체의 선수과목 속성
- 과목과 선수과목은 1:N 비식별관계
- 선수과목은 부분참여 조건이므로 NN을 해제
약한 개체 집합의 정의
- 상대 개체가 삭제되면 유지될 수 없는 개체
학생과 계좌 : 약한 개체 집합
- 식별관계로 관계가 맺어질 경우 학생 테이블의 기본키인 학생번호가 계좌 테이블의 기본키로 전이
- 계좌 테이블은 계좌번호와 학생번호의 기본키가 되는 복합키로 변경
- 계좌 쪽 학생번호가 NULL이 될 수 없음 => 학생이 삭제 될 경우 계좌 테이블에서 해당 학생번호의 계좌 삭제
MySQL 워크벤치를 이용한 Forward Engineer
- ER 모델링 작업 완료하면 일부 물리적 모델링 작업까지 마친 상태
ER 모델링 결과 활용
- Forward Engineer : 유도된 물리적 데이터 모델에 대한 데이터베이스 스키마 생성
- Reverse Engineer : 데이터베이스 스키마로부터 ERD를 생성하는 과정
Forward Engineer 기능 사용
[Database] 메뉴 - [Forward Engineer] 선택
127.0.0.1(로컬 호스트)의 MySQL Standard(TCP/IP)방식으로 연결
Continue - Continue - Continue - Continue - Close
홈 탭 - DB connections - Schemas 영역 - KNOU 스키마 확인
'DB > MySQL' 카테고리의 다른 글
[MySQL] MYSQL 서버 연결 및 SQL 에디터 구성 (0) | 2024.10.28 |
---|