1. 이상(Anomaly)의 개념 및 종류
(1) 삽입 이상 (Insertion Anomaly) : 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원 하지 않은 값들도 함께 삽입되는 현상
(2) 삭제 이상 (Deletion Anomaly) : 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관없는 값들도 함께 삭제되는 연쇄가 일어나는 현상
(3) 갱신 이상 (Update Anomaly) : 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜 플의 정보만 갱신되어 정보에 모순이 생기는 현상
2. 정규화 과정
(1) 비정규 릴레이션
-> 도메인이 원자값
(2) 1NF
-> 부분적 함수 종속 제거
(3) 2NF
-> 이행적 함수 종속 제거
(4) 3NF
-> 결정자이면서 후보키가 아닌 것 제거
(5) BCNF
-> 다치 종속 제거
(6) 4NF
-> 조인 종속성 이용
(7) 5NF
3. 이행적 종속 / 함수적 종속
(1) 이행적 종속(Transitive Dependency) 관계 : A → B이고 B → C일 때 A → C를 만족하는 관계를 의미 한다.
(2) 함수적 종속(Functional Dependency)
- 함수적 종속은 데이터들이 어떤 기준값에 의해 종속되 는 것을 의미한다.
- 예를 들어 <수강> 릴레이션이 (학번, 이름, 과목명)으 로 되어 있을 때, ‘학번’이 결정되면 ‘과목명’에 상관없이 ‘학번’에는 항상 같은 ‘이름’이 대응된다. ‘학번’에 따라 ‘이름’이 결정될 때 ‘이름’을 ‘학번’에 함수 종속적이라고 하며 ‘학번 → 이름’과 같이 쓴다.
4. 반정규화의 개념
(1) 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로, 의도적으로 정규화 원칙을 위배하는 행위이다.
(2) 반정규화를 수행하면 시스템의 성능이 향상되고 관리 효율성은 증가하지만 데이터의 일관성 및 정합성이 저 하될 수 있다.
(3) 과도한 반정규화는 오히려 성능을 저하시킬 수 있다.
(4) 반정규화를 위해서는 사전에 데이터의 일관성과 무결 성을 우선으로 할지, 데이터베이스의 성능과 단순화를 우선으로 할지를 결정해야 한다.
(5) 반정규화 방법에는 테이블 통합, 테이블 분할, 중복 테 이블 추가, 중복 속성 추가 등이 있다.
1. 반정규화 방법
(1) 테이블 통합
- 두 개의 테이블이 조인(Join)되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행함
(2) 테이블 분할
- 테이블을 수직 또는 수평으로 분할하는 것
(3) 중복 테이블 추가
- 여러 테이블에서 데이터를 추출해서 사용해야 하거 나 다른 서버에 저장된 테이블을 이용해야 하는 경 우 중복 테이블을 추가하여 작업의 효율성을 향상시 킬 수 있음
(4) 중복 속성 추가
- 조인해서 데이터를 처리할 때 데이터를 조회하는 경로를 단축하기 위해 자주 사용하는 속성을 하나 더 추가하는 것
2. 시스템 카탈로그
(1) 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스이다.
(2) 시스템 카탈로그 내의 각 테이블은 사용자를 포함하여 DBMS에서 지원하는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블이다.
(3) 카탈로그들이 생성되면 데이터 사전(Data Dictionary) 에 저장되기 때문에 좁은 의미로는 카탈로그를 데이터 사전이라고도 한다.
(4) 시스템 카탈로그에 저장된 정보를 메타 데이터(Meta- Data)라고 한다.
(5) 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다. •INSERT, DELETE, UPDATE문으로 카탈로그를 갱신 하는 것은 허용되지 않는다.
(6) 데이터베이스 시스템에 따라 상이한 구조를 갖는다.
(7) 카탈로그는 DBMS가 스스로 생성하고 유지한다.
3. Data Directory
- 데이터 사전에 수록된 데이터를 실제로 접근하는 데 필요한 정보를 관리 유지하는 시스템이다.
- 시스템 카탈로그는 사용자와 시스템 모두 접근할 수 있지만 데이터 디렉터리는 시스템만 접근할 수 있다.
4. 트랜잭션
(1) 데이터베이스의 상태를 변환시키는 하나의 논 리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모 두 수행되어야 할 일련의 연산들을 의미한다.
(2) 데이터베이스 시스템에서 병행 제어 및 회 복 작업 시 처리되는 작업의 논리적 단위로 사용된다
(3) 사용자가 시스템에 대한 서비스 요구 시 시 스템이 응답하기 위한 상태 변환 과정의 작업 단위로 사용된다.
5. 트랜잭션의 상태
(1) 활동(Active) : 트랜잭션이 실행 중인 상태
(2) 실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태
(3) 철회(Aborted) : 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
(4) 부분 완료(Partially Committed) : 트랜잭션을 모두 성공적 으로 실행한 후 Commit 연산이 실행되기 직전인 상태
(5) 완료(Committed) : 트랜잭션을 모두 성공적으로 실행한 후 Commit 연산을 실행한 후의 상태
1. 트랜잭션의 특성
(1) Atomicity (원자성)
- 트랜잭션의 연산은 데이터베이스에 모두 반영되 도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback)되어야 함
(2) Consistency (일관성)
- 트랜잭션이 그 실행을 성공적으로 완료하면 언제 나 일관성 있는 데이터베이스 상태로 변환함
(3) Isolation (독립성, 격리성, 순차성)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
(4) Durability (영속성, 지속성)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장 나더라도 영구적으로 반영되어야 함
2. CRUD 분석
(1) ‘생성(Create), 읽기(Read), 갱신(Update), 삭 제(Delete)’의 앞 글자만 모아서 만든 용어이며, CRUD 분석은 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석하 는 것이다.
(2) CRUD 분석으로 테이블에 발생되는 트랜잭션의 주기 별 발생 횟수를 파악하고 연관된 테이블들을 분석하면 테이블에 저장되는 데이터의 양을 유추할 수 있다.
3. 인덱스(Index)
(1) 인덱스는 데이터가 저장된 물리적 구조와 밀접한 관계 가 있다.
(2) 인덱스는 레코드가 저장된 물리적 구조에 접근하는 방 법을 제공한다.
(3) 인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르 게 수행할 수 있다.
(4) 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인 덱스의 개수를 최소로 하는 것이 효율적이다.
(5) 데이터 정의어(DDL)를 이용하여 사용자가 생성, 변경, 제거할 수 있다.
(6) 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조이다.
1. 뷰(View)
(1) 사용자에게 접근이 허용된 자료만을 제한적으로 보 여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이 름을 가지는 가상 테이블이다.
(2) 뷰는 저장장치 내에 물리적으로 존재하지 않지만, 사용 자에게는 있는 것처럼 간주된다.
(3) 뷰는 데이터 보정 작업, 처리 과정 시험 등 임시적인 작 업을 위한 용도로 활용된다.
(4) 특징
- 뷰는 기본 테이블로부터 유도된 테이블이기 때문에 기 본 테이블과 같은 형태의 구조를 사용하며, 조작도 기 본 테이블과 거의 같다.
- 뷰는 가상 테이블이기 때문에 물리적으로 구현되어 있 지 않다.
- 데이터의 논리적 독립성을 제공할 수 있다.
- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다.
- 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있다.
- 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰 를 구성해야만 삽입, 삭제, 갱신 연산이 가능하다.
- 일단 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.
- 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용한다.
2. 뷰(View)의 장·단점
(1) 장점
- 논리적 데이터 독립성을 제공함
- 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용 이나 요구를 지원해 줌
- 사용자의 데이터 관리를 간단하게 해줌
- 접근 제어를 통한 자동 보안이 제공됨
(2) 단점
- 독립적인 인덱스를 가질 수 없음
- 뷰의 정의를 변경할 수 없음
- 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름
4. 파티션의 종류
(1) 범위 분할 (Range Partitioning)
- 지정한 열의 값을 기준으로 범위를 지정하여 분할 함
(2) 해시 분할 (Hash Partitioning)
- 해시 함수를 적용한 결과 값에 따라 데이터를 분할 함
(3) 조합 분할 (Composite Partitioning)
- 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
(4) 목록 분할 (List Partitioning)
- 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할함
(5) 라운드 로빈 분할 (Round Robin Partitioning)
- 레코드를 균일하게 분배하는 방식
4. 분산 데이터베이스 정의 및 구성 요소
(1) 분산 처리기 : 자체적으로 처리 능력을 가지며, 지리적으로 분산 되어 있는 컴퓨터 시스템
(2) 분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성됨
(3) 통신 네트워크 : 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네 트워크
1. 분산 데이터베이스의 목표
(1) 위치 투명성(Location Transparency) : 액세스하려는 데 이터베이스의 실제 위치를 알 필요 없이 단지 데이터베 이스의 논리적인 명칭만으로 액세스할 수 있음
(2) 중복 투명성(Replication Transparency) : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데 이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함
(3) 병행 투명성(Concurrency Transparency) : 분산 데이터 베이스와 관련된 다수의 트랜잭션들이 동시에 실현되 더라도 그 트랜잭션의 결과는 영향을 받지 않음
(4) 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확 하게 처리함
3. 암호화(Encryption)
(1) 암호화(Encryption) 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꾸는 과정
(2) 복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바 꾸는 과정
(3) 개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식
- 비밀키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화한다.
- 비밀키 암호화 기법은 대칭 암호 방식 또는 단일키 암 호화 기법이라고도 한다.
- 비밀키는 제3자에게는 노출시키지 않고 데이터베이스 사용 권한이 있는 사용자만 나누어 가진다.
- 종 류 : 전위 기법, 대체 기법, 대수 기법, 합성 기법 (DES, LUCIFER)
(4) 공개키 암호 방식(Public Key Encryption)
- 공개키 암호화 기법은 서로 다른 키로 데이터를 암호화하 고 복호화한다.
- 데이터를 암호화할 때 사용하는 키(공개키, Public Key)는 데이터베이스 사용자에게 공개하고, 복호화할 때의 키(비밀키, Secret Key)는 관리자가 비밀리에 관 리 하는 방법이다.
- 공개키 암호화 기법은 비대칭 암호 방식이라고도 하며, 대표적으로 RSA(Rivest Shamir Adleman)가 있다.
4. 접근통제 기술
(1) 임의 접근통제(DAC; Discretionary Access Control)
- 임의 접근통제는 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식이다.
- 임의 접근통제에 사용되는 SQL 명령어에는 GRANT와 REVOKE가 있다.
(2) 강제 접근통제(MAC; Mandatory Access Control)
- 강제 접근통제는 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식이다.
(3) 역할기반 접근통제(RBAC; Role Based Access Control)
- 역할기반 접근통제는 사용자의 역할에 따라 접근 권한 을 부여하는 방식이다.
- 중앙관리자가 접근 통제 권한을 지정한다.
'정보처리기사 필기 > 3과목' 카테고리의 다른 글
3과목 -5 (필기 개념 정리) (0) | 2023.01.26 |
---|---|
3과목 - 4 (필기 개념 정리) (0) | 2023.01.26 |
3과목 -3 (필기 개념 정리) (0) | 2023.01.25 |
3과목 -1 (필기 개념 정리) (0) | 2023.01.25 |