정보처리기사

정보처리기사, 실기 요약 정리 (2. 데이터베이스)

greenyellow-s 2025. 3. 20. 11:31
728x90
반응형

데이터베이스 (DBMS, DataBase Management System)

특정 조직 내 필요한 데이터들의 모임, 공용으로 소유/유지/이용하는 공용 데이터

 

 

 

스키마 (Schema)

외부 스키마 사용자 관점의 스키마
하나의 DB에 여러 개의 전체적인 논리적 구조
개념 스키마 사용자와 DB 관리자 관점의 스키마
 DB 전체적인 논리적 구조
내부 스키마 DB 설계자/개발자 관점의 스키마
 개념 스키마를 물리적 저장 장치에 구현하는 방법을 정의

 

 

데이터 독립성

논리적 독립성 : 응용 프로그램 영향 없이 데이터 논리 구조 변경

물리적 독립성 : 응용 프로그램 및 논리 구조 영향 없이 데이터의 물리적 구조 변경

 

 

 

데이터 언어

DDL 데이터 베이스 구조/제약 조건 정의
ex. ALTER, CREATE, DROP
DML 데이터 처리/조작에 사용되는 언어
ex. INSERT, UPDATE, DELETE
DCL 데이터의 보안, 권한, 무결성, 권한 검사, 병행 제어를 위한 언어
ex. GRANT, REVOKE

 

 

 

데이터베이스 설계 순서 ★ 순서 중요

요구조건 분석 데이터베이스의 사용 용도 / 요구사항 / 요구조건 명세서 작성
념적 모델 현실 개념 → 추상적 개념으로 표현
 개념 스키마 / 트랜잭션 모델링 / E-R 모델
리적 모델 컴퓨터가 처리할 수 있는 구조로 표현 (관계 모델)
 종속적인 논리 스키마 설계 / 트랜잭션 인터페이스 설계 / 정규화
리적 모델 실제 저장 방법 및 접근 경로 표현
저장 레코드의 형식/순서/접근 경로 설계
구현 DBMS에서 SQL로 작성한 명령문 실행 후 데이터베이스 실제 생성

 

데이터 모델링 : 현실 내 복잡한 데이터 구조를 단순/추상화하여 체계적으로 표현

 

 

 

데이터 모델 구성 요소

개체 독립적이고 구별 가능한 모든 것
속성 개체가 가진 고유의 특성
관계 두 개체 간의 의미 있는 연관성 및 연결 구조
→ 일대일, 일대다, 다대다

 

 

 

E-R 다이어그램 표기법

개체 속성 다중값
관계 기본키 ⍜ (속성 안에 밑줄) 개체-속성 연결

 

 

 

관계형 데이터베이스 용어 ★ 

 

릴레이션(Relation) = 표(Table)

학번 이름 과목 점수
101010 가나다 수학 56
101011 라마바 수학 78

 

속성(Attribute) = 열 = 필드

차수(Degree) = 속성의 개수 = 4개

 

튜플(Tuple) = 행 = 레코드

기수(Cardinality) = 튜플의 개수 = 2개

 

도메인(Domain) : 하나의 속성에서 취할 수 있는 원자 값들의 집합 (ex. 성별 : 남/여)

릴레이션 인스턴스 : 릴레이션에 실제로 저장된 데이터 집합

 

 ★ 속성 어트리뷰트는 같은 의미 이고 카드널리티 튜플의 개수이다.

 

 

 

릴레이션 특징

- 튜플과 속성은 유일하며 순서는 무의미

- 튜플은 삽입/삭제 등에 의해 계속 변함 / 튜플은 서로 상이한 값을 가짐

- 속성의 값은 분해 불가 (원자성) / 동일할 수 있음

- 튜플을 식별하기 위해 속성(필드)의 일부를 key로 설정

- 속성은 Null 값을 가질 수 있으나, 기본키에 해당되는 속성은 Null 값을 가질 수 없음

 

 

 

키(Key) ★ 

후보키(Candidate Key) 기본키로 사용 가능한 속성
모든 튜플에 대해 유일성/최소성을 만족시켜야함

유일설 : 하나의 키 값으로 하나의 튜플 유일하게 식별
최소성 : 모든 레코드 식별하는데 최소한의 속성으로만 구성
기본키(PK) 후보키 중에서 선택되어, 중복된 값과 Null 값을 가질 수 없음

유일성 최소성 만족
대체키(Altemate Key) 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
슈퍼키(Super Key) 한 릴레이션 내 속성들의 집합으로 구성된 키

유일성 만족, 최소성 불만족
외래키(FK) 다른 릴레이션의 기본키를 참조하는 속성/속성들의 집합

 

 

 

무결성 (Integrity) ★ 

개체 무결성 기본키를 구성하는 어떤 속성도 NULL/중복 값 가질 수 없음
도메인/속성 무결성 릴레이션 내 튜플들이 각 속성의 도메인에 지정된 값만 가짐
참조 무결성 외래키는 NULL 또는 참조 릴레이션의 기본키 값과 동일

릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
사용자 정의 무결성 속성 값들의 사용자가 정의한 제약 조건에 만족
데이터 무결성 강화 데이터 특성에 맞는 적절한 무결성을 정의하고 강화

 

 

 

접근 통제 기술 (AC, Access Control) ★ 

임의 접근 통제
DAC
사용자의 신원/신분에 따라 접근 권한 부여

데이터 소유자가 권한 지정/제어
강제 접근 통제
MAC
주체와 객체의 등급 비교시스템이 접근 권한 부여
역할 기반 접근 통제
RBAC
사용자의 역할에 따라 접근 권한 부여

중앙관리자가 지정

 

 

 

뷰(View)

- 기본 테이블에 기반을 둔 이름을 가지는 가상 테이블

- 논리적으로 존재 → 물리적으로 존재 ✕

- 논리적 데이터 독립성을 제공하지만 독립적 인덱스를 보유할 수 없다. (Alter 변경 불가 / 삽입, 삭제, 갱신, 연산 제약)

 

 


정규화

이상현상이 발생하지 않도록 중복성/종속성을 최소화 하기 위한 작업

논리적 설계 단계에서 수행

 

 

이상형상 종류 ★ 

삽입 이상 데이터 삽입 시 불필요한 데이터가 함께 삽입
삭제 이상 튜플 삭제 시 필요한 데이터도 함께 삭제
갱신 이상 일부만 수정되어 데이터 불일치 → 정보 모순 발생

 

 

 

정규화 과정 ★ 

제 1 정규형 모든 도메인이 원자 값만으로 되어 있음
제 2 정규형 기본키가 아닌 모든 속성이 기본키에 대한 완전 함수적 종속 만족
부분적 함수 종속을 제거
제 3 정규형 이행적 함수 종속 관계를 만족하지 않아야함

X → Y, Y  Z 이면 X  Z
BCNF 모든 결정자가 후보키인 정규형
제 4 정규형 다치 종속이 성립하는 경우 릴레이션의 모든 속성이 함수적 종속 관계를 만족
제 5 정규형 조인 종속이 릴레이션의 후보키를 통해서만 성립

 

 

반정규화 ★ 

정규화 과정 진행 후, 시스템 성능 향상 및 운영 편의성을 위해 의도적으로 데이터 중복/통합/분리를 허용하여 정규화 원칙을 위반

 

 

 

함수적 종속 

완전 함수적 종속 종속자가 기본키에만 종속
부분 함수적 종속 기본키가 여러 속성으로 구성되어 있을 때 기본키를 구성하는 속성 중 일부만 종속

기본키가 2개 이상이고 기본키가 아닌 속성이 모든 기본키에 종속된게 아니라 하나에만 종속되어 있는 경우
이행적 함수 종속 X → Y, Y → Z 이면 X → Z

직접적인 관계 없이 중간 단계를 거쳐 종속되는 경우
직원ID → 부서번호, 부서 번호 → 부사장 이게 한 릴레이션에 있는 것

 

 

 

관계 대수 - 절차적 언어 ★ 

 

순수 관계 연산자

σ Select
Project
▹◁ Join
÷ Division

 

세타 조인 비교 후 조건을 만족하는 튜플만 반환
동등 조인 '=' 등호로 일치라는 결과를 반환
자연 조인 동등 조인의 결과에서 중복된 속성을 제거한 결과

 

일반 집합 연산자

U Union 합집합
Intersection 교집합
Difference 차집합
X Cartessian Product 교차곱

 

 

 

관계 해석 - 비절차적 언어 ★ 

논리 연산자 V OR
  AND
  NOT
정량자 전칭 정량자
For All
  존재 정량자
There Exists

 

 

 

트랜잭션 ★ 

데이터베이스 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업 단위

원자성
Atomicity
트랜잭션 연산이 정상적으로 수행되거나 (Commit),
어떠한 연산도 수행되지 않아야 함 (Rollback)
일관성
Consistency
시스템의 고정 요소는 트랜잭션 수행 전/후로 동일해야 함
독립성
Isolation
개발 트랜잭션은 다른 트랜잭션의 간섭 및 영향 받지 않아야 함
영속성
Durability
완료된 트랜잭션 결과는 영구적으로 기록되어야 함

 

COMMIT 정상 종료
ROLLBACK 비정상 종료 후 변경 작업 취소하고 이전 상태로 원복
REDO 시작과 완료에 대한 기록이 있는 트랜잭션들의 작업을 재작업
UNDO 시작은 있지만 와료 기록이 없는 트랜잭션들이 작업한 내용을 모두 취소

 

 

 

데이터 회복 기법 ★ 

즉시 갱신 기법
Immediate Update
변경되는 내용을 바로 적용
Redo / Undo 모두 수행
지연 갱신 기법
Deferred Update
바로 적용 X 지연시킨 후 부분 완료 시 로그의 내용을 토대로 저장
Undo 없이 Redo만 수행
검사 시점 기법
Check point
검사 시점 지정하여 검사 시점가지 부분 수행 후 완료된 내용을 중간중간 저장
그림자 페이징 기법
Shadow paging
로그 미사용 / 각 페이지 마다 복사하여 보관
변경 내용은 원본 페이지에만 적용하여 장애 발생 시 해당 페이지 사용/회복

 

 

로킹 단위 (Locking) : 로킹의 대상이 되는 객체의 크기

데이터베이스 병행 제어 위해 트랜잭션이 접근하고자 하는 데이터를 잠가 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법

로킹 단위 → 로크의 수 → 로킹 오버헤드   병행성(공유도)

로킹 단위  → 로크의 수  → 로킹 오버헤드   병행성(공유도)

 

 

 

병행제어 기법 종류

로킹 기법 일관성과 무결성 유지하기 위한 트랜잭션의 순차적 진행을 보장
낙관적 검증 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행
타임 스탬프 기법 부여된 시간에 따라 트랜잭션 수행
다중 버전 동시성 제어 (MVCC) 직렬 가능성이 보장되는 적절한 버전을 선택해 접근하도록 함

 

 

 

분산 데이터베이스 ★ 

논리적으로는 하나의 시스템에 존재하나,

물리적으로는 연결된 다수의 컴퓨터에 분산되어 있는 데이터 베이스

 

목표 : 위치 투명성 / 중복 투명성 / 병행 투명성 / 분할 투명성 / 장애 투명성

 


데이터 베이스 관련 용어

인덱스 검색 속도 향상을 위한 저장 위치 자료
클러스터 자주 사용하는 테이블 데이터동일 위치에 저장하여 데이터 접근 효율 향상
데이터베이스 이중화 서비스 장애 대비하여 데이터베이스 중복(복제)하여 관리
파티셔닝 대용량 데이터베이스를 여러 세션으로 분할

범위 분할 : 파티션 키 값을 범위로 분할
해시 분할 : 해시 함수 적용 후 반환된 값으로 파티션 분할
합성 분할 : 범위 분할 후 해시 함수 적용하여 다시 분할
복구 시간 목표(RTO) 서비스 중단 후 복원까지 최대 시간
→ 서비스를 사용할 수 없는 최대 허용 시간
복구 시점 목표(RPO) 마지막 데이터 복구 후 허용되는 최대 시간
허용 가능한 최대 데이터 손실량 결정

 

 

 

알고리즘

- 선형 검색 : 하나씩 순서대로 비교하며 원하는 결과값을 찾아내는 검색

- 이진 검색 : 검색 수행 전에 데이터 집합이 정렬되어야 함

 

 

알고리즘 시간 복잡도

복잡도 알고리즘 설명
O(1) 해시 함수 자료 크기 무관 일정한 속도
O(log₂N) 이진 탐색 로그형 복잡도
O(n) 순차 탐색 선형 복잡도
입력 자료를 하나씩 처리 (정비례)
O(N log₂N) 힙 / 합병(병합) 정렬 선형 로그형 복잡도
O(N²)  선택 / 버블 / 삽입 / 퀵 정렬 대부분의 경우 힙/합병 보다 복잡도가 큼

 

 

정렬 알고리즘

삽입 이미 정렬된 파일에 새로운 레코드를 순서에
맞게 삽입하여 정렬
1pass
[9,6,7,3,5] → 맨앞 9와 6 비교
→ 9와 6 교환 → [6,9,7,3,5]
선택 N개의 레코드 중 최소값을 찾아 첫번째에 배치,
나머지 N-1개 레코드 중 최소값을 찾아 두번째 배치 → 이를 반복
1pass
[9,6,7,3,5] → 최소값 3
→ 맨 앞 9와 교환 → [3,6,7,9,5]
버블 인접한 두 개의 레코드 키 값 비교 후 크기에 따라 레코드 위치 교환 1pass
[9,6,7,3,5] → 맨 앞 9를 가장 인접한 숫자와 비교
→ 9와 6 교환 → [6,9,7,3,5]
→ 9와 7 → [6,7,9,3,5]  [6,7,3,9,5]  [6,7,3,5,9]

 

728x90
반응형