오라클 데이터베이스 개념과 구조
* 학습 목표
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는 여러 사용자가 공유한다.
- 공유 풀(Shared Pool)
· 구성:라이브러리 캐시(Library Cache)와 데이터 사전 캐시(Data Dictionary Cache), 그리고 버퍼로 구성
· 공유SQL영역:SQL문장 하나를 실행하는데 이용된 정보를 가지고 있으며 동일한 SQL문장을 실행하는 프로세스들간에 정보를 공유, 완전히 동일한 문장만 같은 메모리에 위치
· 데이터사전 캐시:데이터베이스와 그 구조, 테이블과 뷰의 이름, 테이블이 컬럼명과 데이터 유형, 모든 사용자 권한
- 데이터베이스 버퍼 캐시(Data Base Buffer Cache)
· 디스크로부터 읽어온 블록(BLOCK단위)의 데이터의 복사본을 보관하는 메모리 영역
· 사용자가 실행한 SQL 문에 정의된 테이블이 존재하는 데이터 파일로부터 테이블을 읽어서 저장하는 공간으로 데이터 수정이 읽어나기 전의 데이터를 보관하는 BEFORE IMAGE와 수정한 후의 데이터를 보관하는 AFTER IMAGE로 구성
· 캐시실패: 데이터를 처음 Access하면 서버 프로세스는 디스크로 부터 데이터를 읽어 캐시에 올린다.
· 캐시적중: 데이터가 Access할때 이미 캐시에 있다면 메모리에서 직접 데이터를 읽는다.
- 리두로그 버퍼(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)로 구성
- 파일
데이터 파일, 컨트롤 파일, 리두로그 파일, 파라미터 파일
'Study > OracleDB' 카테고리의 다른 글
7강 오라클 SQL 조건연산자 (4) | 2022.09.05 |
---|---|
6강 오라클 SQL 연산자 (0) | 2022.09.05 |
5강 오라클 select 모든 기능 특정열 선택 (0) | 2022.09.05 |
4강 오라클 select기능과 타입 (0) | 2022.09.05 |
3강 SQL과 SQL*Plus의 개념 (0) | 2022.09.05 |