컴공생의 발자취

[정보처리기사 실기] 데이터베이스 개념 정리 본문

🎫 자격증/정보처리기사

[정보처리기사 실기] 데이터베이스 개념 정리

MNY 2023. 10. 8. 23:43
728x90
반응형

2. 데이터 입출력 구현

스키마(Schema)

  • 데이터베이스 구조와 제약 조건에 관한 전반적인 명세를 기술한 것
  • 종류
    • 외부 스키마 : 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의한 것
    • 개념 스키마 : 데이터베이스의 전체적인 논리적 구조
    • 내부 스키마 : 물리적 저장장치의 입장에서 본 데이터베이스 구조

데이터 모델

  • 절차 : 요개논물
    • 구 사항 분석
    • 념적 설계 : 현실세계에 대한 인식을 추상적 개념으로 표현하는 과정
    • 리적 설계 : 특정 DBMS가 지원하는 논리적 자료 구조로 변환(Mapping)시키는 과정
    • 리적 설계 : 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
    • 구현 : 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
  • 표시 요소
    • 연산(Operation) : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
    • 구조(Structure) : 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계
    • 제약 조건(Constraint) : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

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

  • 튜플(Tuple) : 릴레이션을 구성하는 각각의 행
  • 카디널리티(Cardinality) = 기수, 대응수 : 튜플의 수
  • 속성(Attribute) = 컬럼(Column) : 데이터베이스를 구성하는 가장 작은 논리적 단위
  • 디그리(Degree) = 차수 : 속성의 수
  • 도메인(Domain) : 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자(Atomic) 값들의 집합

키(Key)

  • 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
  • 종류
    • 후보키(Candidate Key) : 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합. 유일성최소성을 모두 만족시켜야 함.
      • 유일성(Unique) : 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함.
      • 최소성(Minimality) : 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함.
    • 기본키(Primary Key) : 후보키 중에서 특별히 선정된 주키(Main Key)
      • NULL값을 가질 수 없다.
    • 대체키(Alternate Key) : 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
    • 슈퍼키(Super Key) : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키. 유일성은 만족하나, 최소성은 만족하지 못함.
      • 유일성(Unique) : 하나의 키 값으로 하나의 튜플들만을 유일하게 식별할 수 있어야 함.
    • 외래키(Foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

관계 대수

  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
  • 일반 집합 연산자 : 합교차카
    • 합집합(Union) : ∪
    • 교집합(Intersection) : ∩
    • 차집합(Difference) : -
    • 카티션 프로덕트(Cartesian Product) : X
  • 순수 관계 연산자 : 셀프조디
    • Select : σ
    • Project : π
    • Join :  ▷◁
    • Division : ÷

관계 해석

  • 관계 데이터의 연산을 표현하는 방법

이상 현상(Anomaly)

  • 원인 : 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적인 현상
  • 종류 : 삽삭갱
    • 입 이상(Insertion Anomaly) : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
    • 제 이상(Deletion Anomaly) : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
    • 신 이상(Update Anomaly) : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

함수적 종속

  • X -> Y의 관계를 갖는 속성 X와 Y에서 X를 결정자(Determinant)라 하고, Y를 종속자(Dependent)라고 한다.
  • 완전 함수적 종속 : <수강> 테이블은 (학번, 과목번호)가 기본키인데, 성적은 학번과 과목번호가 같을 경우에는 항상 같은 성적이 나오므로(즉, 성적은 학번과 과목번호에 의해서만 결정되므로) 성적은 기본키(학번, 과목번호)에 완전 함수적 종속이 되는 것이다.
  • 부분 함수적 종속 : 반면에 학년은 과목번호에 관계없이 학번이 같으면 항상 같은 학년이 나오므로(즉, 기본키의 일부인 학번에 의해서 학년이 결정되므로) 학년은 부분 함수적 종속이라고 한다.

정규화(Normalization)

  • 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성 정확성을 유지하기 위해 무손실 분해하는 과정
  • 정규화 단계 : 원부이결다조
    • 1정규형(1NF) : 자값으로 구성
    • 2정규형(2NF) : 분 함수 종속 제거(완전 함수적 종속 관계)
    • 3정규형(3NF) : 행 함수 종속 제거
    • 보이스-코드 정규형(BCNF) : 정자 후보 키가 아닌 함수 종속 제거
    • 4정규형(4NF) : 치(다중 값) 종속 제거
    • 5정규형(5NF) : 인 종속 제거

트랜잭션(Transaction)

  • 인가받지 않은 사용자로부터 데이터를 보장하기 위해 DBMS가 가져야 하는 특성
  • 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
  • 트랜잭션의 특성 : ACID
    • 원자성(Atomicity) : 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영되지 않도록 복구(Rollback) 되어야 한다.
    • 일관성(Consistency) : 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환된다.
    • 독립성(Isolation) : 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우, 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
    • 지속성(Durability) : 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
  • 트랜잭션의 상태 : 활부완실철
    • 동(Active) : 초기 상태, 트랜잭션이 실행 중일 때 가지는 상태
    • 분 완료(Partially Commited) : 마지막 명령문이 실행된 후에 가지는 상태
    • 료(Committed) : 트랜잭션이 성공적으로 완료된 후 가지는 상태
    • 패(Failed) : 정상적인 실행이 더 이상 진행될 수 없을 때 가지는 상태
    • 회(Aborted) : 트랜잭션이 취소되고 데이터베이스가 트랜잭션 시작 전 상태로 환원된 상태

인덱스

  • 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
  •  종류 : 순해비함 단결클
    • 서 인덱스 : 데이터가 정렬된 순서로 생성되는 인덱스
    • 시 인덱스 : 해시 함수에 의해 직접 데이터에 키 값으로 접근하는 인덱스
    • 트맵 인덱스 : 각 컬럼에 적은 개수 값이 저장된 경우 선택하는 인덱스
    • 수기반 인덱스 : 수식이나 함수를 적용하여 만든 인덱스
    • 일 인덱스 : 하나의 컬럼으로만 구성한 인덱스
    • 합 인덱스 : 두 개 이상의 컬럼으로 구성한 인덱스
    • 러스터드 인덱스 : 기본 키(PK) 기준으로 레코드를 묶어서 저장하는 인덱스

데이터 마이닝(Data Mining)

  • 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
  • 주요 기법 : 분연 연데
    • 류 규칙(Classification) : 과거 데이터로부터 특성을 찾아내어 분류모형을 만들어 이를 토대로 새로운 레코드의 결과값을 예측하는 기법
    • 관 규칙(Association) : 데이터 안에 존재하는 항목들 간의 종속 관계를 찾아내는 기법
    • 속 규칙(Sequence) : 연관 규칙에 시간 관련 정보가 포함된 형태의 기법
    • 집화(Clustering) : 대상 레코드들을 유사한 특성을 지닌 몇 개의 소그룹으로 분활하는 작업

8. SQL 응용

프로시저(PROCEDURE) ★★★

  • 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
  • 구성 : 디비컨 SET
    • 선언부(DECLARE)
    • 시작/종료부(BEGIN/END)
    • 제어부(CONTROL)
    • SQL
    • 예외부(EXCEPTION)
    • 실행부(TRANSACTION)

트리거(TRIGGER) ★★★

  • 데이터베이스 시스템에서 데이터의 삽입(Inster), 갱신(Update), 삭제(Delete) 등의 이벤트(Event)가 발생할 때 관련 작업이 자동으로 수행되게 하는 절차형 SQL
  • 트리거의 구문에는 DCL(데이터 제어어)을 사용할 수 없으며, DCL이 포함되 프로시저나 함수를 호출하는 경우에는 오류가 발생한다.
  • 구성 : 디이비컨 SE
    • 선언부(DECLARE)
    • 이벤트뷰(EVENT)
    • 시작/종료부(BEGIN/END)
    • 제어부(CONTROL)
    • SQL
    • 예외부(EXCEPTION)

사용자 정의 함수 ★★★

  • 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리하지만, 종료 시 처리 결과로 단일값만을 변환하는 절차형 SQL
  • 데이터베이스에 저장되어 SELECT, INSERT, DELETE, UPDATEDML 문의 호출에 의해 실행된다.
  • 예약어 RETURN을 통해 단일값을 반환하며, 출력 파라미터가 없다.
  • 사용자 정의 함수 구성 : 디비컨 SER
    • 선언부(DECLARE)
    • 시작/종료부(BEGIN/END)
    • 제어부(CONTROL)
    • SQL
    • 예외부(EXCEPTION)
    • 반환부(RETURN)

커서 ★★★

  • 쿼리문의 처리 결과가 저장되어 있는 메모리 공간을 가리키는 포인터(Pointer)
  • 커서의 수행
    • 열기(Open)
    • 패치(Fetch)
    • 닫기(Close)

11. 응용 SW 기초 기술 활용

병행 제어(Concurrency Control)

  • 다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호 작용을 제어하는 기법
  • 미보장 시 문제점 : 갱현모연
    • 신 손실(Lost Update) : 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류
    • 황 파악 오류(Dirty Read) : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류
    • 순성(Inconsistency) : 두 트랜잭션이 동시에 실행되어 데이터베이스의 일관성이 결여되는 오류
    • 쇄복귀(Cascading Rollback) : 복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 오류
  • 기법의 종류 : 로낙타다
    • 킹(Locking) : 같은 자원을 액세스하는 다중 트랜잭션 환경에서 DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법
    • 관적 검증(Optimistic Validation) : 트랜잭션이 어떠한 검증도 수행하지 않고 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행하여 데이터베이스에 반영하는 기법
    • 임 스탬프 순서(Time Stamp Ordering) : 트랜잭션과 트랜잭션이 읽거나 갱신한 데이터에 대해 트랜잭션이 실행을 시작하기 전에 타임 스탬프(Time Stamp)를 부여하여 부여된 시간에 따라 트랜잭션 작성을 수행하는 기법
    • 중버전 동시성 제어(MVCC : Multi Version Concurrency Control) : 트랜잭션의 타임스탬프와 접근하려는 데이터의 타임 스탬프를 비교하여 직렬 가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법

회복 기법(Recovery)

  • 트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업
  • 복 기법의 종류 : 회로체크
    • 그 기반 회복 기법(Log Based Recovery) 
      • 연기 갱신 회복 기법(Deferred Update) : 트랜잭션이 완료되기 전까지 데이터베이스에 기록하지 않는 기법
      • 즉각 갱신 회복 기법(Immediate Update) : 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법
    • 크 포인트 회복 기법(Checkpoint Recovery) : 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전 상태로 복원시키는 회복기법
    • 림자 페이징 회복 기법(Shadow Paging Recovery) : 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법

 

728x90
반응형