Unborn 8.0 Yellow Pointer
본문 바로가기
프로그래밍/Spring

[Spring] 01 개발 환경 구축 : 데이터베이스 구축(H2DB 다운로드 및 설치)

by 에삐니 2021. 2. 22.
728x90

1. H2 데이터베이스 다운로드

왜 H2를 사용하는가? MySQL과 Oracle을 사용해도 상관없습니다. 하지만, 별도의 설치 과정이 필요하고 추가 설정을 해야 하기 때문에 간단하고 용량도 적어 가벼운 H2DB를 설치하려고 합니다!

그렇다면,

- H2DB란 무엇인가?

H2 자바로 작성된 관계형 데이터베이스 관리 시스템이다. 자바 애플리케이션에 임베드하거나 클라이언트-서버 모드에서 구동할 수 있다.[1] 이 소프트웨어는 오픈 소스 소프트웨어 모질라 공용 허가서 2.0 또는 오리지널 이클립스 공용 허가서로 이용이 가능하다. - 위키백과

- H2DB 주요 기능?

SQL 표준의 일부가 지원된다.
▪ 주 프로그래밍 APi는 SQL과 JDBC이지만 데이터베이스 또한 PostgreSQL 서버처럼 동작하기 위해 PostgreSQL ODBC를 사용하여 지원한다.[2]
▪ 인메모리 테이블과 디스크 기반 테이블을 둘 다 생성할 수 있다.
▪ 테이블은 영구적이거나 일시적일 수 있다.
▪ 인덱스 타입은 인메모리 테이블의 경우 해시 테이블이거나 트리로 사용 가능하며, 디스크 기반 테이블에는 B 트리를 사용할 수 있다.
▪ 모든 데이터 조작은 트랜잭션에 기반한다.
▪ 테이블 수준의 잠금과 다중 버전 동시성 제어(MVCC)가 구현되어 있다. 
▪ 2단계 커밋 프로토콜 프로토콜도 지원하지만 분산 트랜잭션을 위한 표준 API는 구현되어 있지 않다. - 위키백과

 

H2에 대해 알아봤으니 다운로드를 위해 H2 데이터베이스 홈페이지에 접속합니다.

h2database.com/html/main.html

 

H2 Database Engine

H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2 MB jar file size     Suppor

h2database.com

 

왼쪽에서 Download를 클릭합니다. 그 후 Stable버전 Platform-Independent Zip을 클릭하여 파일을 다운로드해 주세요.

H2 홈페이지, 데이터베이스 다운로드

 

2.1 H2 데이터베이스 설치

다운로드한 파일을 압출 해제해 주면 데이터 베이스 설치가 마무리됩니다.(저는 D드라이브에 압축 해제해 주었어요.:-)

h2 폴더에서 bin 폴더로 이동하여 h2w.bat파일이 있는데 더블클릭하면 H2 서버가 구동됩니다.

 

2,2 H2 데이터베이스 환경 변수 설정

설치가 완료 후 JAVA_HOME과 같이 H2_HOME을 만들어 줘야 합니다. [고급 시스템 설정] - [환경 변수] - [새로 만들기]

 

시스템 변수에 H2_HOME변수를 등록합니다. 압축을 풀어줬던 경로를 적어 줍니다. 

 

사용자 환경 변수에도 추가해 줍니다.

 

2.3 H2 서버 구동 및 연결

자동으로 웹 브라우저가 실행되면서 SQL 구문을 테스트할 수 있는 H2 콘솔로 이동합니다

자동으로 실행되지 않는다면 http://localhost:8082를 입력하여 실행시키거나 오른쪽처럼 h2 아이콘을 클릭해주세요.

H2 콘솔(왼)/H2아이콘(오)

 

H2 콘솔에서 언어를 한국어로 선택하고 연결 버튼을 클릭하여 데이터베이스와 연결합니다.

 

2.4 SQL 구문 TEST

SQL 구문을 테스트는 SQL 입력 창에 명령어 작성 후 실행 버튼을 클릭하면 됩니다.

SQL 질의

 

특정 SQL 구문만 실행할 때는 Run Selected버튼을 클릭하면 됩니다.

테이블 검색(SELECT)

이제

H2DB 설치가 완료되었습니다 ! 실습을 통해 많이 연습해 봐야겠어요.

 


- SQL 구문입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE TABLE USERS(
    ID VARCHAR2(8PRIMARY KEY,
    PASSWORD VARCHAR2(8), 
    NAME VARCHAR2(20),
    ROLE VARCHAR2(5)
);
INSERT INTO USERS VALUES('admin''admin123''관리자''Admin');
INSERT INTO USERS VALUES('user1''user111''홍길동''User');
 
CREATE TABLE BOARD(
    SEQ NUMBER(5PRIMARY KEY,
    TITLE VARCHAR2(200),
    WRITER VARCHAR2(20),
    CONTENT VARCHAR2(2000),
    REGDATE DATE DEFAULT SYSDATE,
    CNT NUMBER(5DEFAULT 0
);
INSERT INTO BOARD(SEQ, TITLE, WRITER, CONTENT) VALUES(1'가입인사''관리자''잘 부탁드립니다. ');
cs

 

잠깐, CHAR, VARCHAR, VARCHAR2의 차이는 무엇일까요?

CHAR :

고정된 길이의 문자열을 저장하는 데 사용합니다. 그렇기 때문에 고정된 길이보다 작은 길이의 문자를 넣어도 남은 부분은 공백으로 채워집니다. 예를 들어 휴대전화 번호나 주민등록 같은 번호를 사용할 경우 사용됩니다. 무조건 고정된 길이를 지정해줘야 하며, 범위는 2000 bytes입니다.

▪ VARCHAR, VARCHAR2 :

가변 길이의 문자열을 저장하는 데 사용합니다. 그렇기 때문에 선언된 길이보다 작은 길이의 문자를 넣어도 char와 달리 공백으로 채우지 않습니다.

my-sql에서는 varchar를 사용하고 oracle에서는 varchar와 varchar2를 사용합니다. 

oracle에서 현재는 varchar와 varchar2의 차이가 없지만 이후 varchar의 사용 방식이 변경될 수 있다고 해요. 그렇기 때문에 oracle을 사용할 때에는 varchar2를 사용하는 것이 좋겠습니다.

 

728x90
반응형

댓글