핑구

00. Oracle Database 개요 본문

JAVA 웹 개발/2. Oracle

00. Oracle Database 개요

코딩 펭귄 2022. 5. 16. 15:13
📅 2021.09.07 ~ 2021.09.08

Data와 정보

  • Data : 관찰 결과로 나타난 정량적 혹은 정성적인 실제 값을 말한다.
  • 정보 : 데이터에 의해 가공된 결과물을 말한다.
  • 예를 들어 철수의 키가 180cm라는 것은 Data지만, 철수의 키가 영희보다 크다는 것은 정보이다. 따라서 둘을 혼용해서는 안 된다.

 

Database

  • 한 조직에 필요한 정보를 여러 응용 시스템에서 공유할 수 있도록 논리적으로 연관된 데이터를 모으고 중복되는 데이터를 최소화하여 구조적으로 통합/저장해 놓은 것을 말한다.
  • Database의 정의
    1. 운영 데이터(Operational Data) : 조직의 목적을 위해 사용되는 데이터
    2. 공용 데이터(Shared Data) : 공동으로 사용되는 데이터
    3. 통합 데이터(Integrated Data) : 중복 최소화로 중복으로 인한 데이터 불일치 현상 제거
    4. 저장 데이터(Sorted Data) : 컴퓨터 저장장치에 저장된 데이터
  • Database의 특징
    1. 실시간 접근성(real time accessibility) : 사용자가 데이터 요청 시 실시간으로 결과 서비스
    2. 계속적인 변화(continuos change) : 데이터 값은 시간에 따라 항상 바뀜
    3. 동시 공유(concurrent sharing) : 서로 다른 업무 또는 여러 사용자에게 동시 공유됨
    4. 내용에 따른 참조(reference by content) : 데이터의 물리적 위치가 아닌 데이터 값에 따라 참조

 

DBMS (Database Managemwnt system)

  • 데이터베이스에서 데이터를 추출, 조작, 정의, 제어 등을 할 수 있게 해 주는 데이터베이스 전용 관리 프로그램이다.
  • 기능
    1. 데이터 추출(Retrieval) : 사용자가 조회하는 데이터 혹은 응용프로그램의 데이터 추출
    2. 데이터 조작(Manipulation) : 데이터를 조작하는 소프트웨어(응용프로그램)가 요청하는 데이터 삽입, 수정, 삭제 작업 지원
    3. 데이터 정의(Definition) : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능 수행
    4. 데이터 제어(Control) : 데이터베이스 사용자를 생성하고 모니터링하며 접근 제어 백업과 회복, 동시성 제어 등의 기능 지원
  • DBMS 사용 시 이점
    1. 데이터 독립화 : 데이터와 응용 프로그램을 분리시킴으로써 상호 영향 정도를 줄일 수 있다.
    2. 데이터 중복 최소화, 데이터 무결성 보장 : 중복되는 데이터를 최소화 시키면 데이터의 무결성이 손상될 가능성이 줄어들고, 필요한 저장 공간의 낭비를 줄일 수 있다.
    3. 데이터 보안 향상 : 응용 프로그램은 DBMS를 통해 DBMS가 허용하는 데이터에만 접근 가능하고, 권한에 맞게 데이터 접근을 제한하거나 데이터를 암호화시켜 저장 가능하다.
    4. 관리 편의성 향상 : 다양한 방법으로 데이터를 백업 가능하고, 장애 발생 시 데이터 복구가 가능하다.

 

계정

  • 관리자 계정 : 데이터베이스의 생성과 관리를 담당하는 슈퍼 유저 계정으로 오브젝트 생성, 변경, 삭제 등의 작업이 가능하다. 데이터베이스에 대한 모든 권한 및 책임을 가진다.
  • 사용자 계정 : 데이터베이스에 대한 질의(Query), 갱신, 보고서 작성 등의 작업을 수행할 수 있는 계정을 말하며, 일반 계정은 보안을 위해서 업무에 필요한 최소한의 권한을 가지는 것을 원칙으로 한다. 따라서 계정 생성만 한 경우 아무 권한이 없고 껍데기만 있는 상태이며, 관리자 계정을 이용해 권한을 부여해야만 사용이 가능하다.
  • 계정 생성 쿼리
    • 11g 버전
      CREATE USER TEST IDENTIFIED BY TEST
      생성     계정         비밀번호 지정
                       계정 명                 비밀번호
    • 12c 이후 버전
      CREATE USER c##KH IDENTIFIED BY KH
      C는 대소문자를 구분하지 않는다.

      하지만 매번 c##을 붙이는 것은 번거롭기 때문에 c##을 붙이지 않고 계정을 생성할 수 있도록 세션을 설정할 수 있다.
      ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;

 

SQL Developer

  • 한 줄 주석 : --
  • 여러 줄 주석 : /* */
  • 공용 동의어(DD: Data Dictionary) :  데이터 사전으로 데이터베이스의 실질적인 데이터를 제외한 DB 전반에 대한 모든 정보를 제공한다. System(관리자)이 이 DD에 대한 내용을 변경할 수 있는 권한을 가지고 있고, 사용자 계정에서는 읽기 전용 형태로 제공되어 단순 조회만 가능하다.
  • 코드 실행 방법
    해당 코드 드래그 후 ctrl + enter
    OR
    해당 코드에 커서를 옮긴 후 ctrl + enter
  • 권한 부여 쿼리
    GRANT CONNECT, RESOURCE TO TEST;
    TEST에게 연결 권한, 저장 권한을 부여한다.
  • 테이블 : 행(row)과 열(column)로 구성되는 가장 기본적인 데이터베이스의 객체이다. 데이터베이스 내에서 모든 데이터는 테이블을 통해 저장된다.
  • 인덱스 : 검색 연산을 최적화하기 위하여 데이터베이스 상에 행들의 정보를 구성하는 데이터 구조이다. 인덱스를 이용하면 전체 데이터를 검색하지 않고도 데이터베이스에서 원하는 정보를 빠르게 검색 가능하지만, 프라이머리 키 자체가 인덱스를 가진 키이기 때문에 데이터가 적은 경우에는 유의미한 시간의 차이가 나지 않는다.
  • "테이블스페이스 'SYSTEM'에 대한 권한이 없습니다" 오류 : 테이블이 저장되는 공간을 테이블 스페이스라고 하는데, 이 공간을 얼마만큼 할 것인지 할당하지 않았을 경우 해당 오류가 발생한다. 따라서 용량을 설정해 준 후 사용하여야 하는데, 용량 설정에 대한 쿼리는 아래와 같다.
    alter user TEST default tablespace system quota unlimited on system;
    TEST에 있는 tablespace에서 system에 대한 용량을 제한하지 않도록 하겠다.
  • DB에서는 명령어 등의 대소문자를 구분하지 않으나, 이름, 비밀번호, 리터럴 값은 대소문자를 구분하여야 한다.

'JAVA 웹 개발 > 2. Oracle' 카테고리의 다른 글

05. 서브쿼리  (0) 2022.06.08
04. JOIN  (0) 2022.06.08
03. GROUP BY HAVING  (0) 2022.06.08
02. 함수  (0) 2022.06.08
01. DQL(SELECT)  (0) 2022.05.23