시스템 카탈로그(System Catalog)
- 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스
- 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블
- 카탈로그들이 생성되면 데이터 사전에 저장되기 때문에 좁은 의미로는 카탈로그들이 데이터 사전이라고도 함
시스템 카탈로그 저장 정보
- 시스템 카탈로그에 저장되는 정보를 메타 데이터(Meta Data)라고 함
- 메타 데이터의 유형
- 데이터베이스 객체 정보 : 테이블(table), 인덱스(Index), 뷰(View) 등의 구조 및 통계 정보
- 사용자 정보 : 아이디, 패스워드, 접근 권한 등
- 테이블의 무결성 제약 조건 정보 : 기본키, 외래키, NULL 값 허용 여부 등
- 함수, 프로시저, 트리거 등에 대한 정보
카탈로그의 특징
- 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있음
- 데이터베이스 시스템에 따라 상이한 구조를 가짐
- INSERT, DELETE, UPDATE문으로 카탈로그를 갱신하는 것도 허용되지 않음
- 카탈로그는 DBMS가 스스로 생성하고 유지
- 카탈로그의 갱신 : 사용자가 SQL문을 실행시켜 기본 테이블, 뷰, 인덱스 등에 변화를 주면 시스템이 자동으로 갱신
- 분산 시스템에서의 카탈로그 : 보통의 릴레이션, 인덱스, 사용자 등의 정보를 포함할뿐 아니라 위치 투명성 및 중복 투명성을 제공하기 위해 필요한 모든 제어 정보를 가져야 함.
트랜잭션 정의
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미
- 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 사용
- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위로 사용
트랜잭션의 특성
- 원자성(Atomicity)
- 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함
- 일관성(Consistency)
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환
- 격리성,독립성(Isolation)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없음
- 영속성,지속성(Durability)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
CRUD 분석
- 생성(Create), 읽기(read), 갱신(Update), 삭제(Delete)의 앞 글자만 모아서 만든 용어이며, CRUD 분석은 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것
인덱스(Index)
- 데이터 레코드를 빠르게 접근하기 위해 키 값, 포인터 쌍으로 구성되는 데이터 구조
- 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방법을 제공
- 인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르게 수행할 수 있음
- 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적
- 인덱스가 없으면 특정한 값을 찾기 위해 모든 데이터 페이지를 확인하는 TABLE SCAN이 발생
트리 기반 인덱스
- 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것으로, 상용 DBMS에서는 트리 구조 기반의 B+ 트리 인덱스를 주로 활용
비트맵 인덱스
- 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법
- 비트맵 인덱스의 목적은 키 값을 포함하는 로우(Row)의 주소를 제공하는 것
- 다중 조건을 만족하는 튜플의 개수 계산에 적합
- 동일한 값이 반복되는 경우가 많아 압축 효율이 좋음
함수 기반 인덱스
- 컬럼의 값 대신 컬럼의 특정 함수나 수식을 적용하여 산출된 값을 사용하는 것으로 B+ 트리 인덱스 또는 비트맵 인덱스를 생성하여 사용
- 사용된 함수가 사용자 정의 함수일 경우 시스템 함수보다 부하가 더 큼
- 함수 기반 인덱스는 대소문자, 띄어쓰기 등에 상관없이 조회할 때 유용하게 사용
비트맵 조인 인덱스
- 다수의 조인된 객체로 구성된 인덱스로 단일 객체로 구성된 일반적인 인덱스와 액세스 방법이 다름
- 비트맵 조인 인덱스는 비트맵 인덱스와 물리적 구조가 동일
도메인 인덱스
- 개발자가 필요한 인덱스를 직접 만들어 사용하는 것으로 확장형 인덱스라고도 함
인덱스 설계 시 고려사항
- 새로 추가되는 인덱스는 기존 액세스 경로에 영향을 미칠 수 있음
- 인덱스를 지나치게 많이 만들면 오버헤드가 발생
- 넓은 범위를 인덱스로 처리하면 많은 오버헤드가 발생
- 인덱스를 만들면 추가적인 저장 공간이 필요
- 인덱스와 테이블 데이터의 저장 공간이 분리되도록 설계
뷰(View)
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지고 있는 가상 테이블
- 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주 됨
- 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화
뷰(View)의 특징
- 가상 테이블이기 때문에 물리적으로 구현되어 있지 않음
- 데이터의 논리적 독립성을 제공할 수 있음
- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해짐
- 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제
클러스터(Cluster)
- 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
클러스터(Cluster)의 특징
- 클러스터링 된 테이블은 데이터 조회 속도는 향상시키지만 데이터 입력, 수정, 삭제에 대한 성능은 저하
- 클러스터는 데이터의 분포도가 넓을수록 유리
- 데이터 분포도가 넓은 테이블을 클러스터링 하면 저장 공간을 절약할 수 있음
- 대용량을 처리하는 트랜잭션은 전체 테이블을 스캔하는 일이 자주 발생하므로 클러스터링을 하지 않는 것이 좋음
클러스터(Cluster) 대상 테이블
- 분포도가 넓은 테이블
- 대량의 범위를 자주 조회하는 테이블
- 입력, 수정, 삭제가 자주 발생하지 않는 테이블
- 자주 조인되어 사용되는 테이블
- ORDER BY, GROUP BY, UNION이 빈번한 테이블
분산 데이터베이스 정의
- 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스를 말함
분산 데이터베이스의 구성 요소
- 분산 처리기 : 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템을 말함
- 분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성 됨
- 통신 네트워크 : 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크를 말함
분산 데이터베이스 설계 시 고려 사항
- 작업부하의 노드별 부산 정책
- 지역의 자치성 보장 정책
- 데이터의 일관성 정책
- 사이트나 회선의 고장으로부터의 회복 기능
- 통신 네트워크를 통한 원격 접근 가능
분산 데이터베이스의 목표
- 위치 투명성(Location Transparency) : 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있다.
- 중복 투명성(Replication Transparency) : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고 시스템은 자동으로 여러 자료에 대한 작업을 수행
- 병행 투명성(Concurrency Transparency : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
- 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리
분산 데이터베이스 설계
- 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것을 목적으로 함
- 잘못 설계된 분산 데이터베이스는 복잡성 증가, 응답 속도 저하, 비용 증가 등의 문제가 발생
- 분산 설계 방법에는 테이블 위치 분산, 분할(분할 규칙 : 완전성, 재구성, 상호 중첩 배제), 할당이 있음
데이터베이스 이중화(Database Replication)
- 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것
데이터베이스 이중화 구성 방법
- 활동-대기(Active-Stanby)
- 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기 상태에 있던 DB가 자동으로 서비스를 대신 수행
- 활동-활동(Active-Active)
- 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공
클러스터링(Clustering)
- 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
- 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성(HA, High Availability)을 제공
접근통제
- 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것
- 비인가된 사용자의 접근 감시
- 접근 요구자의 사용자 식별
- 접근 요구의 정당성 확인 및 기록
- 보안 정책에 근거한 접근의 승인 및 거부
- 임의 접근통제(DAC, Discretionary Access Control) : 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여 하는 방식
- 강제 접근통제(MAC, Mandatory Access Control) : 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식
- 역할기반 접근통제(Role-Based Access Control) : 주체의 역할에 따라 접근할 수 있는 객체를 지정하는 방식
접근통제 메커니즘
- 접근통제 목록
- 능력 리스트
- 보안 등급
- 패스워드
- 암호화
'1. 자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 4과목 프로그래밍 언어 활용 - 1 (0) | 2020.08.08 |
---|---|
[정보처리기사 필기] 3과목 데이터베이스 구축 - 3 (0) | 2020.08.07 |
[정보처리기사 필기] 3과목 데이터베이스 구축 - 1 (0) | 2020.08.05 |
[정보처리기사 필기] 2과목 소프트웨어 개발 - 5 (0) | 2020.08.04 |
[정보처리기사 필기] 2과목 소프트웨어 개발 - 4 (0) | 2020.08.04 |