데이터베이스에는 많은 종류가 있지만, Oracle을 기준으로 DB에 대해 공부해보자.


◆ 데이터베이스

간단히 말해 데이터를 관리해주는 프로그램이다. 지속적으로 저장되어야 할 데이터들을 보관해 주는 저장소라고 보면 된다.


▶ 데이터베이스를 쓰는 이유

  • 파일보다 데이터를 관리하기가 편함.
  • DB가 데이터를 쉽게 관리할 수 있게 지원함
  • 실시간 읽고 쓰기가 가능, 추출도 쉽고, 여러 가지 제약조건 설정 등을 통해서, 코드로 처리해야 될 작업들을 많이 줄여줌.


◆ 데이터베이스의 종류

데이터베이스의 종류는 크게 보면 두 가지가 있다.

▶ RDB - 관계(Relation)형 DB ( 표준 )

데이터를 보관 할 때 스키마(틀/도식) 설정이 필요함.
(‘회원정보를 저장 하겠다’라고 할 때 무엇을 저장 할 것인지 청사진을 그려야한다.)

ex ) id / name / phone / password … 등의 형식을 지정해 놓고 형식에 맞게 저장, 그 외의 데이터는 저장 불가!
=> 그 외의 것들을 저장하려면 스키마 설정을 다시 해야 한다.

  • 종류
    Oracle, MySql, MsSQL, MariaDb, tibero(국산) 등등


▶ NO-SQL (특수/서브) :

  • 데이터 보관을 할 때 스키마 설정이 필요치 않음.
    회원정보를 저장할 때, 어떠한 것들을 저장할 것인지에 대한 설정이 필요하지 않음.
    => 따라서 RDB보다는 NO-SQL 이 저장이 빠르다.
  • 종류
    MongoDB, hbase, 카우치베이스….


◆ Oracle ( 11g express edition version )

오라클 사에서 개발한 Oracle 데이터베이스 프로그램은 정식 사용은 유료이고, express버전은 무료로 사용 가능하다.

=> 데이터베이스의 명령문은 SQL(Structed Query Language)표준을 따르고 있기 때문에 대부분 비슷하거나 똑같다. (단, DB 프로그램마다 고유 기능은 있을 수 있다. )


▶ 다운로드 www.oracle.com - 11g express edition version

  • oracle.com에 접속하여 express버전을 다운받는다.
  • 설치 중간에 관리자 비밀번호 설정이 필요.
  • 오라클의 포트번호는 1521 / 2030 / 8080 세 가지를 쓰고 있기 때문에 해당 포트번호를 비워두어야 한다.
  • 설치가 완료되면 OS가 켜질 때 DB도 같이 켜진다. 리소스를 많이 잡아먹기 때문에 DB를 사용하지 않을 때는 stop시켜두는 것이 좋다.


◆ 데이터베이스 툴 (Database Tool)

오라클 설치 완료 후 브라우저에 ip : 8080/apex 입력하면 오라클의 데이터베이스를 관리할 수 있는 UI를 사용할 수 있다. 하지만 불편하기 때문에 보통 데이터베이스 툴을 이용하여 작업한다.


▶ DB작업 툴

oracle설치 시 기본적으로 제공하는 툴인 sqlplus라는 것이 있는데 cmd창에서 제어하기 때문에 사용하기 편하지 않다.

  • RDB 툴의 종류
    orange, toad, oracle, ssms …

    DB마다 툴의 종류가 다르다.
    Oracle 에서 배포하는 무료 툴인 SqlDeveloper를 학습용으로 사용하도록 하자.


▶ SQLPLUS 사용법

SqlDeveloper를 사용하기 전에 sqlplus로 기본적인 사용법을 익혀두는 것이 좋다.
cmd(명령프롬프트)에서 “sqlplus system/비밀번호”을 입력하면 앞이 SQL> 로 바뀌면서 sqlplus로 DB에 접속 할 수 있다.

오라클 설치 시 기본적으로 아이디system또는 sys가 생성되며, 비밀번호를 설정해야 한다. 그렇기 때문에 위 명령어로 DB에 접근할 수 있다.

  • DB유저 생성
    Create user 아이디 identified by 비밀번호;
  • DB유저에게 권한 부여
    Grant connect, resource to 아이디;
    => 해당 아이디로 connect(연결), resource(리소스관리)의 권한을 부여
  • 종료
    Exit
  • 접속
    sqlplus 아이디/비밀번호
  • 생성된 테이블 확인
    Select * from tab;
    => 만들어져 있는 모든 테이블명이 나온다.


◆ SqlDeveloper

▶ SqlDeveloper 다운로드

www.oracle.com => SQL Deveoper => JDK include버전은 JDK가 깔려 있지 않은 컴퓨터에서 쓰고 있을 경우 그냥 미포함버전 다운

설치 후 JDK의 경로를 설정하는 곳에서 JDK설치 경로(C:\Program Files\Java\jdk1.8.0_211)를 설정 해주고, 환경설정은 ‘아니오’를 눌러서 쓰도록 한다.

▶ SqlDeveloper 사용법

1. 왼쪽 위 ‘+’ 버튼으로 접속 창 띄우기

  • 접속이름 : 해당 DB를 관리할 프로젝트명과 비슷한 이름( 큰 의미 없다 )
  • 사용자이름 : DB계정 (초기 값 system)
  • 비밀번호 : 해당계정비번 ( 초기 설정한 비밀번호 (oracle) )
  • 호스트이름 : localhost ( 본인 아이피 : 127.0.0.1 ) => 서버주소(ip)
  • SID : 서비스 아이디 ( 버전에 따라 다름 , standard(정식버전)=orcl / express(무료버전)=xe)
  • 포트 : 1521 ( 실제 작업 포트 ) (8080은 UI포트 ?)
    ▶ 설정 후 테스트 버튼을 누르면 왼쪽에 성공여부를 미리 알 수 있다.


2. system계정으로 접속

=> 명령창에 show user;를 하게 되면 현재 사용자 이름을 알 수 있음

  • Ctrl + Enter
    위의 ▶ 버튼을 누른 것과 같은 효과, 명령어 실행
    => 커서가 있는 지점의 명령어만 실행된다. (명령어의 구분은 세미콜론(;))


3. 사용자 생성

왼쪽에 다른 사용자 폴더에서 우 클릭 후 사용자 생성
OR 명령 창에 create user 아이디 identified by 비밀번호;


4. 명령 창에서 사용자 권한 주기 :

grant connect, resource to 생성한 아이디;


5. system으로 접속된 관리자접속을 해제시키고 다시 ‘+’ 버튼을 눌러 생성한 아이디로 새로 접속

( 접속되어있는 DB는 플러그 아이콘이 붙어있다 )


◆ DataBase 운용

공유기 환경에서 DB를 설치한 후 다른 곳에서 접속을 시도하면 접속이 되지 않는다.
(물론, 포트포워딩을 이용해 접속할 순 있으나..)
어디서든 접속되는 데이터베이스를 사용하려면, 클라우드 서비스 환경을 이용하여 사용이 가능하다.


▶ Amazon Web Service 시스템 이용.

aws사이트로그인 => rds 서비스 검색 => get Started => 맨 밑에 체크! (공짜) => engine: oracle . standard edition two => next => check free option =>

  • settings
    DB instance identifier info : DB이름 (아무거나)
    Master User name : 데이터베이스 계정명
    비밀번호 8글자이상
    => public accessiblitity : yes
    Availability zone : ap-northeast-2a
    => creating이 끝나면 db설치 완료
    => 왼쪽 instances => 설정한 DB이름 => endpoint가 호스트이름(서버위치)


  • 완료 후 오라클디벨로퍼에서 새로 접속하면됨 , SID 는 orcl , 호스트이름은 endpoint
  • 상태확인하는 곳에서 Security group rules 에 CIDR/IP Inbound 클릭해서 넘어가는 곳에서 밑에 인바운드를 위치무관으로 편집