[MySQL] 데이터베이스 설계 및 생성

2020. 9. 28. 13:10Database/MySQL

1. 데이터베이스 설계

1) 요구 사항 분석

조직의 구성원들이 데이터베이스를 사용하는 용도를 파악해야한다. 다양한 요구 사항을 수집하고 이를 분석한 결과를 요구 사항 명세서로 작성한다.

2) 개념적 설계

요구 사항을 조금 더 정형화하는 단계이다. 중요한 데이터 요소와 데이터 요소 간의 관계를 표현할 때 사용한다. 일반적으로 ER 모델을 많이 사용하며, 데이터 요소 간의 관계를 ER 다이어그램으로 표현한다. ER 다이어그램과 같이 개념적 데이터 모델로 표현한 결과물을 개념적 구조 또는 개념적 스키마라고 한다.

3) 논리적 설계

개념적 설계 단계에서 생성한 개념적 구조를 기반으로 논리적 구조를 설계한다. 개념적 설계 단계에서 생성한 ER 다이어그램을 테이블 스키마로 변환하여 DBMS가 처리할 수 있도록 하는 것이 논리적 설계 단계의 주요 작업이다.

4) 물리적 설계

논리적 설계 단계에서 생성된 논리적 구조를 기반으로 물리적 구조를 설계한다. 저장 장치에 적합한 저장 레코드와 인덱스의 구조 등을 설계하고 저장된 데이터와 인덱스에 빠르게 접근할 수 있는 탐색 기법 등을 정의해야한다. 물리적 설계의 결과물인 물리적 구졸르 내부 스키마 또는 물리적 스키마라고 지칭한다.

5) 구현

이전 단계의 결과물을 기반으로 DBMS에서 SQL로 작성한 명령문을 실행하여 데이터베이스를 실제로 생성한다.

 

 

 

2. 데이터베이스 생성

1) DBMS 상태 정보 확인

mysql> status;

DBMS 상태 정보 확인

2) 데이터베이스 생성 및 조회

// 기본 생성
mysql> CREATE DATABASE [DB명];

// 생성 시 문자 인코딩 설정
mysql> CREATE DATABASE [DB명] DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

// 데이터베이스 목록 조회
mysql> SHOW DATABASES;

// 데이터베이스 상세 조회
mysql> SHOW CREATE DATABASES test_db1;

데이터베이스 생성 및 조회

3) 데이터베이스 저장 위치

생성된 데이터베이스는 '/var/lib/mysql' 디렉터리에 저장된다. 각 DB 디렉터리 내 DB 설정 파일, 테이블 파일이 생성된다. DB 설정 파일은 텍스트 파일, 각 테이블 파일은 Binary 파일로 생성된다.

데이터베이스 저장 위치

4) 데이터베이스 용량 확인

'du' 명령어를 이용하여 데이터베이스 파일들이 저장된 디렉터리의 용량을 확인할 수 있다.

du -h /var/lib/mysql

스키마 정보의 용량 확인인 MySQL에 접속하여 확인할 수 있다.

// 전체 데이터베이스 용량 확인
mysql> SELECT SUM(data_length+index_length)/1024 used_KB, SUM(data_free)/1024 free_KB FROM information_schema.tables;

// 데이터베이스별 용량 확인
mysql> SELECT table_schema, SUM((data_length+index_length)/1024) KB FROM infromation_schema.tables GROUP BY 1;

데이터베이스 용량 확인

※ -h 옵션을 통해 용량 단위를 사람이 보기 쉽게 표시할 수 있다.

5) 데이터베이스 인코딩 변경

mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET euckr COLLATE euckr_korean_ci;
mysql> SHOW CREATE DATABASE [DB명];

5) 데이터베이스 삭제

mysql> DROP DATABASE [DB명];
728x90

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

[MySQL] MySQL Client  (0) 2020.09.28
[MySQL] SQL (DDL, DML, DCL)  (0) 2020.09.28
[MySQL] 키(Key), 무결정 제약 조건  (0) 2020.09.28
[MySQL] MySQL  (0) 2020.09.28