본문 바로가기

정보처리기사

데이터베이스 정리

*로킹(Locking) ->잠금

 하나의 트랜잭션이 데이터를 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목을 액세스 할 수 없도록 하는 방법

 로킹의 단위가 커지면 관리는 하기 쉽지만 데이터베이스의 공유도, 병행성은 감소

 로킹의 단위가 작으면 로크 수가 많아 오버헤드가 커지지만 병행성 수준이 높다.

 파일, 레코드, 필드 등은 모두 로킹 단위가 될 수 있다.

 

*데이터베이스의 정의

 1. Integrated Data(통합된 데이터) : 자료의 중복을 배제한 데이터의 모임

 2. Stored Data(저장된 데이터) : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 자료

 3. Operational Data(운영 데이터) : 조직의 업무를 수행하는 데 있어서 반드시 필요한 자

 4. Shared Data(공용 데이터) : 여러 응용 시스템들이 공동으로 소유하고 유지하는 자료

 

* 트랜잭션 특성

 1. Atomicity(원자성) : 트랜잭션의 연산은 데이터베이스에 모두 반영되던지 전혀 반영되지 않아야 함

 2. Consistency(일관성) : 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 함

 3. Isolation(독립성) : 수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션이 끼어들 수 없음

 4. Durability(지속성) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장 나더라도 영구적으로 반영되어야 함

    -> 2, 3, 4 는 데이터의 무결성을 책임지기 위함

 

* 데이터베이스 설계

 1. 설계 시 고려사항

    가. 데이터베이스의 무결성 유지 : 연산 후에도 저장된 데이터가 정해진 제약조건을 항상 만족해야 함

    나. 데이터의 일관성 유지 : 응답이 처음부터 끝까지 변함없이 일정해야 함

    다. 데이터의 회복성 유지 : 장애 발생 시 발생 직전의 상태로 복구할 수 있어야 함

    라. 데이터의 보안성 유지 : 불법적인 접근으로부터 보호할 수 있어야 함

    마. 데이터의 효율성 유지 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 함

    바. 데이터베이스의 확정성 유지 : 운영에 영향을 주지 않으며 지속적으로 데이터를 추가할 수 있어야 함

 

 2. 설계 단계

    가. 개념적 설계(Conceptual Schema)

         1) 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정

         2) 스키마 모델링과 트랜잭션 모델링을 병행 수행

         3) 요구 분석 단계에서 나온 결과를 DBMS에 E-R다이어그램으로 작성한다.

         4) DBMS에 독립적인 개념 스키마를 설계한다.

    나. 논리적 설계(Logical Schema)

         1) 현실 세계에서 발생하는 자료를 컴퓨터가 처리할 수 있도록 변환하기 위한 과정

         2) 개념 세계의 데이터를 논리적 구조의 데이터로 모델화

         3) 개념적설계에서 설계한 개념 스키마를 평가 및 정제하고 DBMS에 종속적인 논리적 스키마를 설계

         4) 트랜잭션의 인터페이스를 설계

         5) 관계형 데이터베이스의 경우 테이블을 설계하는 단계

    다. 물리적 설계(Physical Schema)

         1) 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정

         2) 데이터가 컴퓨터에 저장되는 방법을 묘사

         3) 트랜잭션을 작성

         4) 꼭 포함되어야 할 것은 저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 등이다.

    라. 물리적 설계 시 고려사항

         1) 인덱스의 구조

         2) 레코드의 크기 및 개수

         3) 파일에 대한 트랜잭션의 갱신과 참조 성향

         4) 성능향상을 위한 개념 스키마의 변경 여부 검토

    마. 물리적 설계 옵션 선택시 고려 사항

         1) 반응 시간

         2) 공간 활용도

         3) 트랜잭션 처리량

 

* 스키마

 1. 스키마 정의

    가. 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술

    나. 데이터베이스를 구성하는 Entity, Attribute, Realtionship 및 제약조건 등에 관해 정의

    다. 데이터 사전에 저장되며, 다른 이름으로 메타 데이터라고도 한다.

 2. 스미카의 3계층

    가. External Schema(외부 스키마) = 서브 스키마 = 사용자 뷰

         1) 각 개인의 입장에서 논리적 구조 정의

         2) 하나의 데이터베이스에는 여러 개의 외부 스키마가 존재할 수 있고 공용 사용 가능하다.

         3) 같은 데이터베이스라도 서로 다른 관점을 정의할 수 있도록 허용

         4) 일반 사용자는 SQL을 사용하여 DB를 사용한다.

    나. Conceptual Schema(개념 스키마) = 전체적인 뷰

         1) 전체적인 논리적 구조, 모든 사용자들이 필요로 하는 데이터를 통합한 하나의 데이터베이스로만 존재

         2) 개체 간의 관계와 제약조건을 나타내고 접근 권한, 보안 및 무결성 규칙에 관한 명세를 정의

         3) 그냥 스키마라고 하면 개념 스키마를 의미한다.   

         4) 기관이나 조직체의 관점이다.

         5) 데이터베이스 관리자에 의해 구성된다.

    다. Internal Schema(내부 스키마)

         1) 물리적 저장장치의 입장

         2) 실제로 저장될 레코드의 물리적인 구조를 정의

         3) 프로그래머나 시스템 설계자가 보는 관점

         4) 실제 저장 방법을 기술

 

* 시스템 카탈로그

 1. 시스템 그 자체에 관련 있는 스키마 및 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스

 2. 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블

 3. 정의어의 결과로 구성되는 정보를 저장한다.

 4. 카탈로그들이 생성되면 자료 사전에 저장된다. 좁은 의미로는 카탈로그를 자료 사전이라 한다.

 5. 카탈로그에 저장된 데이터를 메타 데이터라고도 한다.

 6. 일반 사용자도 질의어를 통해 시스템 카탈로그의 내용을 검색할 수 있다.

 

* 릴레이션의 특징

 1. 튜플들은 모두 상이하다.

 2. 튜플 사이에는 순서가 없다.

 3. 튜플들의 삽입, 삭제로 릴레이션은 시간에 따라 변한다.

 4. 속성들 간에도 순서가 중요하지 않다.

 5. 속성의 명칭은 유일해야 한다. 하지만 속성을 구성하는 값은 동일한 값이 있을 수 있다. 

 

* 관계 대수

 1. 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어

 2. 피연산자 릴레이션, 결과도 릴레이션

 3. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.

 4. 순수 관계 연산자와 일반 집합 연산자가 있다.

    가. 순수 관계 연산자 : SELECT, PROJECT, JOIN, DEVISION

    나. 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), 교차곱

 

* 관계 해석

 1. 코드(E. F. Codd)가 수학의 Prediacte Calculus(프레디킷(술어) 해석)에 기반을 데이터베이스를 위해 제안했다.

 2. 원하는 정보가 무엇이라는 것만 정의하는 비절자척 특성을 지닌다.

 3. 원하는 정보를 정의할 때는 계산 수식을 사용

 4. 튜플 관계 해석과 도메인 관계해석이 있다.

 5. 관계 해석과 관계 대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다.

 6. 질의어로 표현한다.

 

* 관계 데이터베이스의 릴레이션 구조

 1. 튜플 -> 릴레이션을 구성하는 행, 튜플의 수는 카디널리티 = 기수 = 대응수

 2. 속성(Attribute) -> 릴레이션을 구성하는 열, 속성의 수 degree = 차수

 3. 도메인 -> 하나의 에트리뷰트가 취할 수 있는 가장 작은 원자 값들의 집합, 남 과 여처럼 합법 여부 검사에도 이용

 4. 릴레이션 인스턴스 -> 데이터 타입이 이미 정의되어 구체적인 데이터 값을 갖고 있는 것을 말한다.

 

* 분산 데이터베이스

 1. 장점

    가. 지역 자치성이 높다.

    나. 자료의 공유성 향상

    다. 분산 제어 가능

    라. 시스템 성능이 향상

    마. 효용성과 융통성이 높다.

    바. 신뢰성 및 가용성이 높다.

    사. 점증적 시스템 용량 확장이 용이하다.

 2. 단점

    가. DBMS가 수행할 기능이 복잡하다.

    나. 데이터베이스 설계가 어렵다.

    다. 소프트웨어 개발 비용이 증가한다.

    라. 처리 비용이 증가한다.

    마. 잠재적 오류가 증가한다.

 

* 데이터 모델의 구성 요소

 1. 개체(Entity) -> 교수, 학생 등등

 2. 속성(Attribute) -> 교수 번호, 교수 성명, 교수 번호 등등 그 개체를 구성하는 항목

 3. 관계(Relationship) -> 개체 간의 관계 또는 속성 간의 관계

 

* 데이터 모델

 1. 연산(Operation) -> 개체 인스턴스를 처리하는 작업에 대한 명세, 데이터베이스를 조작하는 기본 도구

 2. 구조(Structure) -> 논리적으로 표현된 개체 타입들 간의 관계, 데이터 구조 및 정적 성질을 표현

 3. 제약조건(Constraint) -> 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약조건을 표시

 

* 순차 파일(Sequential File) = 순서 파일

 1. 특징

    가. 데이터들을 순서대로 기록

    나. 변동 사항이 크지 않고 기간 별로 일괄 처리를 주로 하는 경우에 적합

    다. 주로 순차 접근이 가능한 자기 테이프에서 사용

 2. 장점

    가. 기록 밀도가 높아 기억공간을 효율적으로 사용할 수 있다.

    나. 키 순서대로 편성되어 취급이 용이하다.

    다. 매체 변환이 쉬워 어떠한 매체에도 적용 가능하다.

    라. 처리 속도가 빠르다.

 3. 단점

    가. 삽입, 삭제 시에 파일 전체를 복사해야 하므로 시간이 많이 소요된다.

    나. 검색 시 처음부터 순차적으로 하기 때문에 검색 효율이 낮다.

 

* 색인 순차 파일(Index Sequential File)

 1. 특징

    가. 순차 처리, 직접 처리, 랜덤 처리가 모두 가능하도록 키  값 순으로 정렬시켜 기록, 키 항목만을 모은 색인을 구성

    나. 색인을 이용한 순차적인 접근 방법을 제공하여 ISAM이라고도 한다.

    다. 참조 시에 색인을 탐색한 후 색인의 주소 값으로 직접 참조할 수 있다.

    라. 자기 디스크에 많이 사용되며 순차 처리에서 사용하는 자기 테이프에는 사용할 수 없다.

 2. 구성

    가. 기본 구역(Prime Area) : 실제 레코드들을 기록하는 부분으로 키 값 순으로 저장한다.

    나. 색인 구역(Index Area) : 기본 구역에 있는 레코드들의 위치를 찾아가는 색인이 기록되는 부분

         1) 트랜 색인 구역

         2) 실린더 색인 구역

         3) 마스터 색인 구역

    다. 오버플로우 구역(Overflow Area) : 기본 구역에 빈 공간이 없어서 삽입이 불가능할 때를 대비한 예비 구역

         1) 실린더 오버플로 구역

         2) 독립 오버플로 구역

 3. 장점

    가. 순차, 랜덤, 직접 처리가 가능하므로 목적에 따라 융통성 있게 처리할 수 있다.

    나. 효율적인 검색이 가능하고 삭제, 삽입 용이

 4. 단점

    가. 색인 구역과 오버플로우 구역을 구성하기 위한 추가 기억 공간이 필요

    나. 정렬되어 있어야 하므로 추가, 삭제가 많으면 효율이 떨어진다.

 

* 데이터베이스 언어

 1. DDL -> 테이블과 같은 데이터 구조 정의, 생성, 변경, 삭제, 이름 변경

    가. CREATE

    나. ALTER -> 테이블 컬럼을 수정

    다. DROP

    라. RENAME

    마. TRUNCATE

    TCARD

 2. DML -> 데이터의 삽입, 수정, 삭제, 조회 

    가. SELECT

    나. UPDATE

    다. DELETE

    라. INSERT

    SUDI

 3. DCL -> 권한 주기, 회수, 데이터 접근

    가. GRANT

    나. REVOKE

 4. TCL(트랜잭션 제의어)

    가. COMMIT  ->  트랜잭션의 원자성(Atomicity)가 보장됨

    나. ROLLBACK  ->

    다. SAVEPOINT

 

* 계층형 데이터 모델

 1. 데이터의 논리적 구조도가 트리 형태, 개체가 트리의 노드 역할을 한다.

 2. 개체 들의 속성 관계를 표시하기 위해 개체를 노드로 관계를 링크로 연경 한다.

 3. 개체 간의 관계를 부모와 자식 간의 관계로 표현

 4. 개체 타입 간에 상위 하위 관계가 존재하며 일대다 대응 관계만 존재한다. 1:M

 5. 래코드 삭제 시 연쇄 삭제가 된다.

 6. 개체 타입들 간에는 사이클이 허용되지 않는다.

 7. 계층형 모델에서는 개체를 세그먼트라 부른다.

 8. 대표적인 DBMS는 IMS이다.

 

* 망(그래프, 네트워크)형 모델

 1. CODASYL이 제안한 것으로 CODASYL DBTG 모델이라고도 한다.

 2. 그래프를 이용해서 데이터 논리구조를 표현 했다.

 3. 상위와 하위 레코드 사이에서 다대다(N:M) 대응관계를 만족하는 구조이다.

 4. 상위의 레코드를 Owner, 하위 레코드를 Member라고 하여 Owner - Member 관계라고도 한다.

 5. 레코드 타입 간의 관계를 1:1, 1:N, N:M이 될 수 있다.

 6. 대표적인 DBMS는 DBTG, EDBS, TOTAL 등이 있다.

 

* CASCADE -> 참조하는 다른 모든 개체를 함께 삭제.

 

*Anomaly(이상)

 1. 개념

    가. Nomalization(정규화)를 하지 않아서 데이터들이 중복되어 릴레이션 조작 시 발생하는 곤란한 현상

    나. 애트리뷰튜들 간에 존재하는 여러 종속 관계를 하나의 릴레이션에 표기하기 때문에 이상이 발생한다.

 2. 종류

    가. Insertion Anomaly(삽입 이상) 

    나. Deletion Anomaly(삭제 이상)

    다. Update Anomaly(갱신 이상)

 

* Synonym(동의어)

 - 같은 Home Adreess를 갖는 레코드들의 집합, 해싱에서 동일한 홈 주소 때문에 충돌이 일어난 레코드들의 집합

 

* Null은 아무것도 없는 값. 공백이나 0(Zero)를 의미하는 것이 아니다.

 

* SQL에서 DELETE 명령은 WHERE 조건절이 없이 사용할때도 테이블 구조까지 제거하는

  DROP TABLE 명령과는 다르다.

 

* 관계 해석 "모든 것에 대하여(for all)은 A를 뒤집은 것

 

* 정규화 과정

 - 비정규 릴레이션 -> 1NF : 도메인이 원자값

 - 1NF -> 2NF : 부분적 함수 종속 제거 : 완전 함수적 종속되어야 함

 - 2NF -> 3NF : 이행적 함수 종속 제거

 - 3NF -> BCNF : 결정자이면서 후보키가 아닌 것 제거

 - BCNF -> 4NF : 다치 종속

 - 4NF -> 5NF : 조인 종속성 이용

 

* 해싱 함수

 1. 제곱(Mid-Square)방법

 2. 숫자분석(Digit Analysis)방법

 3. 제산(Division) 방법

 4. 폴딩(Folding) : 레코드 키를 여러 부분으로 나누고 나눈 부분의 각 숫자를 더하거나 XOR한 값을 홈주소로 삼음

 % 체인 방법은 없다.

 

* 병행제어 기법의 종류

 1. 로킹 기법

     - 주로 데이터 액세스를 상호 배타적으로 함. 트랜잭션들이 어떤 로킹 단위를 허락해야만 로킹 단위를 액세스

       하기 전에 lock을 요청해서 lock이 허락돼야만 그 로킹 단위를 액세스 할 수 있음

 2. 타임 스탬프 순서 기법 

     - 동시성 제어를 위한 직렬화 기법으로 트랜잭션 간의 순서를 미리 정하는 방법

 3. 최적 병행수행 기법(검증 기법, 확인 기법, 낙관적 기법)

 4. 다중 버전 기법

 

* 이진 트리 최대 노드 수 -> 2^k - 1

 

* 2단계 로킹 규약

 - 새로운 Lock은 수행할 수 있지만 Unlock은 수행할 수 없는 확장 단계

 - 새로운 Unlock은 수행할 수 있지만 Lock은 수행할 수 없는 축소 단게

 - 직렬성을 보장한다는 장법

 - 교착상태를 예방할 수 없다는 단점

 

* 개채 무결성 제약

 - 기본키에 속해 있는 애트리뷰트는 널값이나 중복 값을 가질 수 없다.

 

* 한번 생성한 뷰는 정의를 변경할 수 없으므로 변경하려면 제거하고 다시 만드는 수밖에 없다

 

* NoSQL

 - Not Only SQL의 약자

 - 비정형 데이터의 저장을 위해 유연한 데이터 모델을 지원한다.

 - 정통적인 관계형 데이터베이스 관리 시스템과는 다른 비관계형 DBMS이다

 - 비정규화를 전제로 하고 있어 갱신 시에 저장 공간이 적게 든다

 

* 즉각 갱신 기법

 - 로그를 필요로 한다.

 - 트랜잭션이 데이터를 갱신하면 트랜잭션이 부분 완료되기 전이라도 즉시 실제 데이터베이스에 반영하는 방법

 - 장애가 발생하여 회복 작업할 경우를 대비하여 갱신된 내용들은 Log에 보관시킨다.

 - 회복 작업을 할 경우 Redo와 Undo 모두 사용 가능하다.

 

* Linear Serach(선형 탐색)

 - 평균 검색 횟수 -> (n+1)/2

 - 최대 검색 횟수 -> n

 

* 해싱 테이블의 오버플로우 처리 기법

 - 개방 주소법, 폐쇄 주소법, 재해싱

'정보처리기사' 카테고리의 다른 글

업무 프로세스 실무 응용 정리  (0) 2019.10.02
정보처리기사 필기 합격 후기  (0) 2019.09.01
전자계산기 구조 정리  (4) 2019.07.31
운영체제 정리  (0) 2019.07.31
소프트웨어 공학 정리  (2) 2019.07.31