본문 바로가기
네이버클라우드/JAVA 웹 프로그래밍

JAVA 58일차 (2023-08-11) 자바 프로그래밍_DB모델링 연습_물리모델_개인프로젝트 - 마트 관리 시스템

by prometedor 2023. 8. 11.
- DB 모델링
  - 물리모델링 실습
  - Forward Engineering 방법
- 개인 프로젝트
  - DB 모델링 검토

 

## [물리모델]

- 특정 DBMS에 맞춘 물리적인 모델링

### 21. DBMS에 맞춰서 테이블명과 컬럼명을 설정한다.

- DBMS에서 테이블명과 컬럼명을 작성할 때 보통 다음의 규칙에 따라 작성한다.
  예) first name(FST_NM), regist date(REG_DT), teacher assignment(TCH_ASN)
- 단어는 알파벳 3자 또는 4자로 축약해서 표현한다.
- 단어와 단어 사이는 밑 줄( \_ )로 표현한다.

dbmodeling-21.exerd

ㄴ 논리/물리 동시편집 선택

=>

dbmodeling-21.exerd

=>

dbmodeling-21.exerd

ㄴ 물리 모드 선택

=>

ㄴ 직원 테이블 명 -> mart_staff 

ㄴ 각각의 물리 이름 정해주기

=> sno : staff_number

 

ㄴ 회원 테이블 명 -> mart_member

ㄴ 각각의 물리 이름 정해주기

=> mno : member_number

 

ㄴ 관리자 테이블 명 -> mart_manager

ㄴ 각각의 물리 이름 정해주기

 

ㄴ 고객 테이블 명 -> mart_customer

ㄴ 각각의 물리 이름 정해주기

ㄴ ctno : cart_number

 

ㄴ 지점 테이블 명 -> mart_branch

ㄴ 각각의 물리 이름 정해주기

=> brno : branch_number

 

ㄴ 문의사항 테이블 명 -> mart_customer_inquiry

ㄴ 각각의 물리 이름 정해주기

=> qno : inquiry_number

=> cdt : created_date

=> resp : response

 

ㄴ 장바구니 테이블 명 -> mart_cart

ㄴ 각각의 물리 이름 정해주기

=> ctno : cart_number

=> cnt : count

 

ㄴ 제품 테이블 명 -> mart_item

ㄴ 각각의 물리 이름 정해주기

=> ino : item_number

=> stock_qty : stock quantity

 

ㄴ 제품구매 테이블 명 -> mart_item_purchase

ㄴ 각각의 물리 이름 정해주기

=> pno : purchase_number

=> pur_qty : purchase quantity

=> pay_method : payment_method

 

ㄴ 제품사진 테이블 명 -> mart_item_photo

ㄴ 각각의 물리 이름 정해주기

=> ipno : item_photo_number

 

ㄴ 공지사항 테이블 명 -> mart_notice

ㄴ 공지유형 테이블 명 -> mart_notice_type

ㄴ 각각의 물리 이름 정해주기

=> nno : notice_number

=> ntno : notice_type_number

=> view_cnt : view_count

=> cdt : created_date

 

dbmodeling-21.exerd

 

 

### 22. 도메인(domain) 정의 및 적용

- 비슷한 종류의 컬럼들을 묶어 새 타입으로 정의한다.
- 이점: 타입을 변경할 때 한 번에 여러 컬럼을 변경할 수 있어서 유지보수에 좋다.

dbmodeling-22.exerd

ㄴ Window > Show View > Other... 선택

=>

ㄴ eXERD 의 도메인 창 띄우기

=>

=>

=>

dbmodeling-22.exerd

ㄴ 널 허용 잠시 체크 해제

=>

=>

ㄴ 우편번호에 사용

 

=>

 

=>

=>

 

 

=>

=>

dbmodeling-22.exerd

 

ㄴ 도메인에 설정되어있는 데이터 타입을 변경하면 해당 도메인으로 설정된 모든 항목의 데이터 타입이 변경됨

 

 

### 23. 번호가 자동 증가하는 컬럼을 지정

- 테이블의 PK 중에서 자동으로 증가해야 하는 컬럼을 지정한다.

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

=>

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

=>

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

 

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

=>

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

=>

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

=>

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

=>

dbmodeling-23.exerd

=>

ㄴ 자동 증가 체크하기

 

 

### 24. 기본 값 및 제약 조건 설정

- 일부 컬럼에 대해 기본 값을 설정한다.
- 일부 컬럼의 값의 범위를 지정한다.

dbmodeling-24.exerd

=>

=>

dbmodeling-24.exerd

=>

 

 

### 포워드 엔지니어링(forward engineering)

- 모델 ----> 코드
- 참고: 리버스 엔지니어링(reverse engineering)
  코드 ----> 모델

 

=>

ㄴ 모델 탭 열기

=>

ㄴ 필요없는 테이블 정리해주기

=>

=>

ㄴ 이름을 studydb 로 변경

 

ㄴ 포워드 엔지니어링 선택

=>

=>

=>

ㄴ 모두 복사

=>

=>

ㄴ ddl.sql 파일 생성

=>

ddl.sql

ㄴ 복사한 코드 붙여넣기

 

터미널에서 mysql 실행하기

ㄴ ddl.sql 파일 내용을 복사하여 터미널에 붙여넣기

=> 주의할 점 : iterms 이용 시 오류 발생 가능성이 있으므로 기본 터미널을 이용하자

 

ㄴ 에러가 발생한 부분해결하기

=>

=>

ㄴ 다시 포워드 엔지니어링 실행 후 터미널에 코드 붙여넣어 실행

 

=>

ㄴ 테이블이 제대로 생성되었는지 확인하기