본문 바로가기

Study/OracleDB

1강 오라클 데이터베이스 개념과 구조

728x90

오라클 데이터베이스 개념과 구조

* 학습 목표

1. 데이터 베이스 개념 이해

2. 데이터 관리 시스템(DBMS)

3. 오라클 구조

 

01. 데이터베이스 개념 이해

-  유용한 데이터의 집합

-  학사 관리, 도서관리

-  데이터베이스에 저장된 정보는 검색, 수정, 삭제에 용이

 

1.1 파일 시스템의 문제점

- 데이터 종속 : 서로 독립적이지 못함.

- 데이터 중복

  · 일관성 - 동일성을 유지하기 위해 데이터 중복을 피함

  · 보안성 - 동일한 수준에서 보안이 유지

  · 경제성 - 저장되는 공간에 대한 비용 절감

  · 무결성 - 데이터가 정확성을 유지

 

1.2 데이터베이스의 정의

 - 통합된 데이터(intergrated data)

  · 데이터베이스는 똑같은 데이터가 원칙적으로 중복되어 있지 않다는 것을 말하며, 데이터의 중복은 일반적으로 관리상의 복잡한 부작용을 초래합니다.

 - 저장된 데이터(stored data)

  · 컴퓨터가 접근할 수 있는 기억장치에 저장된 데이터를 말합니다. 주로 하드디스크에 저장되어 관리됩니다.

 - 운영 데이터(operational data)

  · 존재 목적이 명확하고 유용성을 지니고 있는 데이터를 말합니다. 즉 단순히 데이터를 모아둔 개념이 아닌 병원 관리를 위한 데이터 구축과 같은 목적이 분명한 데이터여야만 합니다.

 - 공용 데이터(shared data)

  · 여러 사용자들이 서로 다른 목적으로 사용하는 공유 가능한 데이터를 말합니다.

 

1.3 데이터베이스의 특징

 - (1) 실시간 접근성(Real-time accessability)

  · 다수의 사용자의 요구에 대해서 처리 시간이 몇 초를 넘기지 말아야 한다는 의미입니다.

 - (2) 지속적인 변화(Continuos evolution)

 

  · 데이터베이스에 저장된 데이터는 최신의 정보가 정확하게 저장되어 처리되어야 합니다.

 - (3) 동시 공유(Concurrent sharing)
  · 동일 데이터를 동시에 서로 다른 목적으로 사용할 수 있어야 합니다.

 - (4) 내용에 대한 참조

  · 데이터베이스 내에 있는 데이터 레코드들은 주소나 위치에 의해 참조되는 것이 아니라 가지고 있는 값에 따라 참조해야 합니다.

 

02. 데이터베이스 관리 시스템(DBMS)

 - 데이터베이스(DataBase)

  · 기업이 지속적으로 유지 관리해야 하는 데이터의 집합

 - 데이터베이스 관리 시스템(DataBase Management System)

  · 방대한 양의 데이터를 편리하게 저장하고 효율적으로 관리하고 검색할 수 있는 환경을 제공해주는 시스템 소프트웨어

  · 데이터를 공유하여 정보의 체계적인 활용을 가능하게 합니다.

  · 응용 프로그램과 데이터베이스의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게끔 관리해 주는 소프트웨어 시스템 입니다.

 

2.1 관계형 데이터베이스 관리 시스템

 - 관계형 데이터베이스 관리시스템(RDBMS : Relational DataBase Management System)은 가장 일반적인 형태의 DBMS 입니다.

 - 오라클(Oracle), 사이베이스(Sybase), 인포믹스(Infomix), MYSQL, Acess, SQL Server

 - 장점

  ·  작성과 이용이 비교적 쉽고 확장이 용이하다.

  ·  처음 데이터베이스를 만든 후 관련되는 응용 프로그램들을 변경하지 않고도, 새로운 데이터 항목을 데이터베이스에 추가할 수 있다.

 - 관계형 데이터베이스 정보를 테이블 형태로 저장합니다.

 - 테이블은 2차원 형태의 표처럼 볼 수 있도록 로우(ROW:행)와 칼럼(COLUMN:열)으로 구성합니다.

 Table name : DEFT

(COLUMN)DEPTNO (COLUMN)DNAME (COLUMN)LOC
(ROW)10 A NEW YORK
(ROW)20 B DALLAS
(ROW)30 C BOSTON

 - DEPT 테이블은 4개의 로우와 3개의 칼럼(부서번호:DEPTNO, 부서이름:DNAME, 지역:LOC 으로 구성된 테이블 입니다.)

 - 데이터 딕셔너리(Data Dictionary: DD)

  · 관계형 데이터베이스에서 객체를 정의하게 되면 그 객체가 가진 메타데이터(metadata)의 정보가 저장되는 곳입니다.

  · 사용자에 의해서 추가, 삭제, 수정되지 못하며 오로지 오라클 시스템에 의해서만 가능합니다.

 - SQL(Structured Query Language)

  · 사용자와 관계형 데이터베이스를 연결시켜 주는 표준 검색 언어

 

탄탄히 다지기.

1. 관계형 데이터베이스에서는 기본 데이터를 저장하기 위한 구조로(__________)를 사용합니다.

2. 테이블은 표처럼 볼 수 있도록 (________)와 (_________)으로 구성합니다.

 

오라클 데이터베이스의 저장 구조

빼애애앵

1. 사용자가 데이터 요청

2. 요청된 정보를 process로 가져와서 DB에 요청

3. 다시 process가 받아와서 사용자에게 응답.

@ 디스크 io란?

- 우리가 데이터를 작성 하고 변경 할적에 디스크 즉 HDD 에 그것이 저장되는 것을 말한다.

 

위 그림의 디스크 PerforMance 문제를 해결하기 위해서 다음과 같은 구조로 구성.

오라클 인스턴스

중간에 Memory와 process로 구성

1. 사용자의 요청데이터를 메모리에 저장 동일한 요청이 있을때

2. 메모리에 있는 지 확인후 메모리 데이터를 전송(disk i/o 를 줄여줌)

- 오라클 instacne(메모리 + process)

- 데이터베이스(물리적공간데이터)

 

오라클 데이터베이스 구조

 

오라클 서버(Oracle Server)

 - 정의

  · 통합적인 정보관리를 위한 객체 관계형 데이터베이스 관리 시스템

  · 오라클 인스턴스(Oracle Instance)와 오라클 데이터베이스(Oracle Database)로 구성.

 - 오라클 인스턴스 (Oracle Instacne)

  · 백그라운드 프로세스와메모리 버퍼(Memory Buffer) 

오라클 인스턴스 구조

 - 시스템 글로벌 영역(SGA, System Global Area)

  · 오라클 데이터베이스의 모든 사용자의 제어 정보와 데이터를 포함하며, 사용자가 실행하는 SQL 문에 의해 검색 또는 변경되는 테이블 데이터를 저장하는 오라클 서버의 공유 메모리 영역

  · 하나의 SGA와 오라클 프로세스가 하나의 오라클 인스턴스를 구성

  · 오라클은 인스턴스가 시작될 때(오라클서버 시작시) 자동으로 SGA를 위한 메모리를 할당하고, 인스턴스를 종료(SHUTDOWN)하면 운영체제가 메모리를 회수한다.

  · SGA는 여러 사용자가 공유한다.

SGA(오라클 메모리 인스턴스)

 - 공유 풀(Shared Pool)

  · 구성:라이브러리 캐시(Library Cache)와 데이터 사전 캐시(Data Dictionary Cache), 그리고 버퍼로 구성

  · 공유SQL영역:SQL문장 하나를 실행하는데 이용된 정보를 가지고 있으며 동일한 SQL문장을 실행하는 프로세스들간에 정보를 공유, 완전히 동일한 문장만 같은 메모리에 위치  

  · 데이터사전 캐시:데이터베이스와 그 구조, 테이블과 뷰의 이름, 테이블이 컬럼명과 데이터 유형, 모든 사용자 권한

공유풀

 - 데이터베이스 버퍼 캐시(Data Base Buffer Cache)

  · 디스크로부터 읽어온 블록(BLOCK단위)의 데이터의 복사본을 보관하는 메모리 영역

  · 사용자가 실행한 SQL 문에 정의된 테이블이 존재하는 데이터 파일로부터 테이블을 읽어서 저장하는 공간으로 데이터 수정이 읽어나기 전의 데이터를 보관하는 BEFORE IMAGE와 수정한 후의 데이터를 보관하는 AFTER IMAGE로 구성

  · 캐시실패: 데이터를 처음 Access하면 서버 프로세스는 디스크로 부터 데이터를 읽어 캐시에 올린다.

  · 캐시적중: 데이터가 Access할때 이미 캐시에 있다면 메모리에서 직접 데이터를 읽는다. 

데이터베이스 버퍼 캐시(Data Base Buffer Cache)

 - 리두로그 버퍼(Redo Log Buffer)

  · 데이터베이스에서 일어난 모든 변화를 저장하는 메모리 공간

  · 데이터베이스에서 발생한 모든 변화는 LGWR(백그라운드 프로세스)에 의해 리두로그 파일에 저장

  · 리두로그 버퍼는 데이터베이스의 변경 사항 정보를 유지하는 SGA에 있는 Circular(순환) 번퍼임

  · 리두로그 버퍼(Redo Log Buffer)의 크기는 오라클 파라미터 LOG_BUFFER에서 지정

 

 - 라지 풀(Large Pool)
  · 데이터베이스 관리자가 필요한 경우 사용할 수 있는 선택적인 메모리 영역

  · 많은 메모리를 필요로 하는 경우 설정해서 사용

    ≫ 오라클 공유 서버의 인터페이스를 위한 세션 메모리

    ≫ I/O 서버 프로세스

    ≫ 오라클 백업과 복구

    ≫ 병렬 실행 메세지 버퍼 설정 시 

오라클 데이터베이스의 세 가지 물리적인 구성 요소

 - 프로세스
  · 백그라운드 프로세스(DBWR, LGWR, PMON, SMON, LGWR)와 사용자 프로세스, 그리고 서버 프로세스로 구성

 - 메모리
  · 공유 풀(SHARED POOL), 데이터 버퍼 캐시(DATA BUFFER CACHE), 로그 버퍼(LOG BUFFER), 그리고 라지 풀(LARGE POOL)로 구성

 - 파일
  · 데이터 파일, 컨트롤 파일, 리두로그 파일, 파라미터 파일

 

프로세스(Process)

 - 메모리에 상주해 있는 실행중인 프로그램

 - 종류

  · 사용자 프로세스(User Process)

  · 오라클 프로세스(Oracle Process)

 - 사용자 프로세스(User Process)

  · Pro*C/C++와 같은 응용 프로그램이나엔터프라이즈매니저(Enterprise Manager)와 같은 오라클 툴을 실행할 때 사용되는 프로세스

  · 사용자가 실행시킨 SQL 문을 서버 프로세스에게 전달하기 위해 사용

  · 사용자 프로세스에는 데이터베이스 접속 시 사용된 사용자의 이름과 패스워드 정보, 접속된 시간 등의 정보가 저장

 

- 오라클 프로세스(Oracle Process)

 · 오라클 데이터베이스 서버를 기동하는 데 필요한프로그램들을 의미

 

 - 서버 프로세스(Server Process)

 ≫  데이터베이스 내의 물리적인 구조(디스크에 저장된 데이터 파일)와 메모리 구조(SGA 영역)사이를 관리하는 프로세스

  - 구문분석(Parse): 구문상의 정확성, 보안 엑서스, 최적화 된 실행계획 수립

  - 실행(Execute): 문장의 실행, 데이터 읽기와 변경

  - 인출(Fetch): Select 구문일 경우 그 결과를 사용자에게 전달한다.

 

 - 백그라운드 프로세스(Background Process)

 ≫ 물리적으로 저장된 데이터들을 메모리(데이터베이스 버퍼캐시)에 올리는 역활을 하는 프로세스

  - 오라클 데이터베이스의 현재 상태를 모니터링 하거나 사용자가 실행한 SQL 문을 처리해주는 프로세스

  - 5개의 필수 백그라운드 프로세스와 그 외 다수의 프로세스 포함.

 

 ≫ 필수 백그라운드 프로세스 : 오라클 인스턴스가 가동될 때 시작하고 인스턴스가 중지되면 정지되는 프로세스

 

 ≫ 필수 백그라운드 프로세스 

  - 데이터베이스 기록기 : Database Writer(DBWR) 프로세스

  - 로그 기록기 : LGWR(Log Writer) 프로세스

  - 시스템 모니터 : SMON(System Monitor) 프로세스

  - 프로세스 모니터: PMON(Check Point) 프로세스

  - 체크 포인트 : CKPT(Check Point) 프로세스

 

≫ 기타 백그라운드 프로세스

  - 아카이버: ARCH(Archiver) 프로세스

  - RECO(Recoverer) 프로세스

  - LMDn 프로세스

  - Pnnn 프로세스

  - Dnnn 프로세스

  - Snnn 프로세스

 

학습정리.

 - 데이터 베이스(DataBase)

   기업이 지속적으로 유지 관리해야 하는 데이터의 집합

 

- 데이터베이스 관리 시스템(DataBase Management System)

  방대한 양의 데이터를 편리하게 저장하고 효율적으로 관리하고 검색할 수 있는 환경을 제공해주는 시스템 소프트웨어

 

- 프로세스

  백그라운드 프로세스(DBWR, LGWR, PMON, SMON, LGWR)와 사용자 프로세스, 그리고 서버 프로세스로 구성

 

- 메모리

  공유 풀(SHARED POOL), 데이터 버퍼 캐시(DATA BUFFER CACHE), 로그 버퍼(LOG BUFFER), 그리고 라지 풀(LARGE POOL)로 구성

 

- 파일

 데이터 파일, 컨트롤 파일, 리두로그 파일, 파라미터 파일

 

반응형