05.01. 데이터베이스 준비하기 - 1

5. 데이터베이스 준비하기

5.1. 책 관리 데이터베이스 생성

yse_spring_mvc 데이터베이스를 생성한다.

  1. heidiSQL에 접속한다. 
  2. 쿼리 탭에서 아래의 쿼리를 실행한다.
  3.  
CREATE DATABASE yse_spring_mvc;


yse_spring_mvc 데이터베이스를 위한 데이터베이스 유저 yse_spring_mvc_user를 생성한다.

CREATE USER 'yse_spring_mvc_user'@'%' IDENTIFIED BY '1234';

yse_spring_mvc_user 유저가 yse_spring_mvc 데이터베이스에 접근할 수 있도록 권한을 추가한다.

GRANT EXECUTE, SELECT, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, LOCK TABLES  ON `yse_spring_mvc`.* TO 'yse_spring_mvc_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

5.2. 책관리 테이블 생성

책을 관리하기 위한 속성을 도출해보면 아래와 같다.

  • 제목
  • 분류
  • 가격

이를 바탕으로 데이터베이스 테이블을 생성한다. heidisql에서 좌측 yse_spring_mvc 데이터베이스 선택 후 쿼리 탭에서 아래의 쿼리를 실행시키자.

CREATE TABLE `book` (
 `book_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
 `title` VARCHAR(200) NOT NULL,
 `category` VARCHAR(200) NOT NULL DEFAULT '',
 `price` INT NULL,
 `insert_date` DATETIME NOT NULL DEFAULT NOW(),
 PRIMARY KEY (`book_id`)
)
COLLATE='utf8mb4_general_ci'
;

 
  • book_id는 책의 고유 번호다. 자동으로 번호가 설정된다.
  • title은 제목이다. 최대 200글자까지 저장 가능한 문자열이다.
  • category는 책의 분류다. 본래 RDBMS의 정규화 규칙에 의하면 테이블을 따로 분리하는 것이 맞지만 예제의 단순성을 위해 단순 문자열로 저장한다.
  • price는 책 가격이다.
  • insert_date는 책 정보를 입력한 날짜다. 데이터가 입력되면 마리아디비의 NOW() 함수가 실행되면서 자동으로 입력된다.

완성된 테이블 스키마도 heidiSQL에서 확인할 수 있다.