Home 3. 오라클 데이터베이스
Post
Cancel

3. 오라클 데이터베이스

3.1 개념

오라클 데이터베이스는 오라클 사에서 개발한 ORDBMS 제품이다. 오라클 데이터베이스는 세계적으로 가장 많이 사용되고 있는 DBMS이다.

  • 사용자 : 데이터베이스에 로그인할 수 있는 계정으로 데이터베이스 생성시 관리자 계정이 함께 생성된다. 관리자 계정은 DBA가 사용하고 개발자는 DBA가 생성한 사용자 계정으로 로그인한다.
  • 오브젝트 : 오브젝트는 논리적 데이터 구조로, 사용자에게 종속된 오브젝트를 스키마 오브젝트(테이블, 인덱스, 뷰, 시퀀스 등..), 종속되지 않은 오브젝트를 비스키마 오브젝트(사용자, 롤, 디렉터리)라고 한다. 그리고 데이터 저장여부에 따라 세그먼트 오브젝트(테이블, 클러스터, 인덱스), 비 세그먼트 오브젝트(뷰, 시퀀스, 사용자, 롤 등..)으로 구분할 수 있다.
  • 테이블 : 데이터를 구성하는 기본 단위로 행과 열로 구성된다.
  • 데이터 타입 : 열은 데이터 타입을 지정할 수 있다.
  • 데이터 무결성 : 데이터의 정확성과 일관성이 유지되고 있는 상태를 의미한다.
    • 개체 무결성 : 엔터티의 인스턴스가 속성이나 속성의 조합으로 식별되어야 함(PK 제약조건, UNIQUE 제약조건, NOT NULL 제약조건)
    • 참조 무결성 : 자식 엔터티의 외래 식별자가 부모 엔터티의 기본 식별자에 존재해야 함(FK 제약조건, 트리거)
    • 범위 무결성 : 속성 값이 지정한 범위에 유효해야 함(데이터 타입, 기본값, CHECK 제약 조건)
    • 사용자 정의 무결성 : 개체 무결성, 참조 무결성, 범위 무결성에 속하지 않는 무결성(트리거)
  • 트랜잭션 : 트랜잭션은 함께 수행해야 하는 작업의 논리적 단위다.
    • 원자성 : 트랜잭션의 작업은 모두 수행되거나 모두 수행되지 않아야 함
    • 일관성 : 트랜잭션이 완료되면 데이터 무결성이 일관되게 보장되어야 함
    • 독립성 : 트랜잭션은 다른 트랜잭션으로부터 고립된 상태로 수행되어야 함
    • 지속성 : 트랜잭션이 완료되면 장애가 발생하더라도 변경 내용이 지속되어야 함
  • 정적 데이터 딕셔너리 뷰 : 데이터베이스의 메타데이터를 조회할 수 있는 읽기 전용 뷰이다.
  • 동적 성능 뷰 : 데이터베이스의 동적 정보를 조회할 수 있는 읽기 전용 뷰이다.

3.2 구조

오라클 데이터베이스는 운영체제에서 구동되는 응용 프로그램이다.

3.2.1 데이터베이스와 인스턴스

오라클 데이터베이스는 하나의 데이터베이스(데이터를 저장하는 파일의 모음)와 하나 이상의 인스턴스로 구성된다.

오라클 데이터베이스는 다음의 상태를 거쳐 단계적으로 기동된다.

  1. SHUTDOWN(인스턴스가 없음)
  2. NOMOUNT(인스턴스가 시작됨)
  3. MOUNT(데이터베이스의 상태를 검사)
  4. OPEN(데이터베이스가 열림)

하나의 데이터베이스와 하나의 인스턴스로 구성된 오라클 데이터베이스를 Single 서버라고 한다. 고가용성과 성능 향상을 위해 오라클 데이터베이스를 RAC(하나의 데이터베이스와 2개 이상의 인스턴스)로 구성할 수 있다.

3.2.2 프로세스 구조

오라클 데이터베이스의 프로세스는 백그라운드 프로세스와 서버 프로세스로 구성된다. 백그라운드 프로세스는 데이터베이스 운영에 필요한 백그라운드 작업을 수행한다. 주요 백그라운드 프로세스는 아래와 같이 동작한다.

3.2.3 메모리 구조

오라클 데이터베이스의 메모리는 SGA와 PGA로 구분된다. SGA는 백그라운드 프로세스와 서버 프로세스의 공유 메모리 영역으로, 인스턴스가 시작될 때 할당되고 종료될 때 해제된다. PGA는 서버 프로세스의 독점 메모리 영역으로, 서버 프로세스가 생성될 때 할당되고 종료될 때 해제된다. (36p)

3.2.4 저장 구조

오라클 데이터베이스는 물리 저장 구조와 논리 저장 구조가 분리되어 있다. 물리 저장 구조를 변경해도 논리 저장 구조에는 영향을 주지 않는다.

물리 저장 구조는 파일로 저장되며 OS에서 확인할 수 있다. 논리 저장 구조는 오라클 데이터베이스 내부에서 관리된다. 논리 저장 구조의 단위는 아래와 같다.

  • 블록 - 데이터를 저장하는 가장 작은 논리적 단위
  • 익스텐트 - 논리적으로 연속된 data block의 집합
  • 세그먼트 - 오브젝트에 할당된 익스텐트의 집합
  • 테이블스페이스 - 세그먼크를 포함하는 데이터베이스 저장 단위

3.2.5 네트워크 구조

리스너는 데이터베이스 서버에서 동작하는 프로그램으로 오라클 데이터베이스의 접속을 처리한다. listener.ora 파일은 리스너의 설정 파일이다. tnsnames.ora 파일은 클라이언트의 설정 파일로 데이터베이스 서버의 접속 정보가 저장된다.

3.2.6 애플리케이션 구조

**커넥션과 세션 : 커넥션은 클라이언트 프로세스와 데이터베이스 인스턴스 사이의 물리적 통신 경로, 세션은 데이터베이스에 로그인한 사용자의 상태를 나타내는 논리적 객체다. 커넥션을 통해 세션이 생성된다.

This post is licensed under CC BY 4.0 by the author.