정보처리기사(개념정리) - 3과목 데이터베이스 구축

2025. 7. 19. 22:17·이론공부/자격증

□ 정규화 ☆☆☆☆☆

도부이결다조(도메인 → 부분 → 이행 → 결정자 → 다치 → 조인)

  • 1NF(제1정규형) - 도메인 원자성
    • 모든 도메인이 원자값만 가져야함
    • 중첩된 테이블, 반복 그룹 제거
  • 2NF(제2정규형) - 부분적 함수 존속 제거
    • 1NF를 만족하면서, 기본키(복합키일 때만)의 일부분에만 종속된 속성 제거
    • 부분 함수 종속 제거
  • 3NF(제3정규형) - 이행적 함수 종속 제거
    • 2NF를 만족하면서, 이행적 함수 종속 제거
    • ex) A → B,  B → C, A → C인 경우, C는 B를 통해 A에 종속되므로 제거 대상
  • BCNF(보이스 - 코드 정규형) - 결정자 → 후보키
    • 3NF를 만족하면서, 모든 함수 종속에서 결정자가 반드시 후보키
    • 더 엄격한 3NF
    • 종속성 보존이 안될 수 있음
  • 4NF(제4정규형) - 다치 종속 제거
    • 3NF + 다치 종속(하나의 속성이 여러개의 독립적인 값을 가질 때) 제거
  • 5NF(제5정규형) - 조인 종속 제거
    • 4NF를 만족하면서, 조인 종속이 후보키를 통해서만 성립되도록

□ 트랜잭션의 특성 ACID ☆☆☆☆☆

  • 원자성(Atomicity) : 완전하게 수행 완료되지 않으면 전혀 수행되지 않아야 함
  • 일관성(Consistency) : 시스템의 고정 요소는 트랜잭션 수행 전후에 같아야 함
  • 격리성(Isolation 고립성) : 트랜잭션 실행 시 다른 트랜잭션의 간섭을 받지 않아야 함
  • 영속성(Durability 지속성) : 트랜잭션의 완료 결과가 데이터베이스에 영구히 기억됨

□ 데이터베이스 설계 과정 ☆☆☆☆☆

개논물(개념 → 논리 → 물리)

  • 개념 - ERD
  • 논리 - 정규화, 트랜잭션 인터페이스 설계
  • 물리 - 목표 DBMS에 종속정인 물리적 구조 설계, 저장 레코드 양식 설계, 레코드 집중의 분석/설계, 접근 경로 설계,
              트랜잭션 세부 설꼐

□ 데이터베이스 언어 ☆☆☆☆☆

  • DDL(정의어) : CREATE, DROP, ALTER
  • DML(조작어) : SELECT, INSERT, UPDATE, DELETE
  • DCL(제어어) : COMMIT, ROLLBACK, GRANT, REVOKE

□ 집합 연산자 ☆☆☆☆☆

  • UNION : 합집합 결과 중복된 행은 하나의 행으로 출력
  • UNION ALL : 합집합 결과 중복된 행도 그대로 결과로 출력
  • INTERSECT :  교집합 결과 중복된 행은 하나의 행으로 출력
  • EXCEPT : 차집합 결과 중복된 행은 하나의 행으로 출력

□ 키의 종류 ☆☆☆☆☆

  • 슈퍼키(Super Key)
    • 후보키(Candidate Key)
      • 기본키(Primary Key)
      • 대체키(Alternate Key)

□ 무결성 종류 ☆☆☆☆☆

  • 개체 무결성 : NULL 불가, 중복 불가
  • 참조 무결성 : 참조되는 값이 없으면 안된다.
  • 도메인 무결성 : 허용하는 범위만 값을 가질 수 있다. ex) 초등학교 학년에 6학년 초과의 값은 불가능하다
  • 속성 무결성
  • 키 무결성
  • 사용자 정의 무결성

□ 뷰(View) ☆☆☆☆☆

  • 장점
    • 논리적 데이터 독립성을 제공
    • 동일 데이터에 대해 동시에 여러 사용자의 데이터 관리를 간단하게 해줌
    • 접근 제어를 통한 자동 보안이 제공됨
  • 단점
    • 독립적인 인덱스를 가질 수 없음
    • 뷰의 정의를 변경할 수 없음
    • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

□ 릴레이션 ☆☆☆☆☆

  • 구성
    • 릴레이션 = 테이블
    • 튜플(Tuple) = 행, 레코드
    • 카디널리티(Cardinality) = 튜플(행)의 수
    • 속성(Attribute) = 열, 필드
    • 차수(Degree) = 속성(열)의 수
  • 특징
    • 튜플의 유일성 : 똑같은 튜플 포함안됨
    • 튜플의 무순서성 : 튜플 사이 순서 없음
    • 속성의 무순서성 : 속성간 순서가 중요하지 않음
    • 속성의 원자성 : 속성의 명칭은 유일 구성값은 동일값 가능
    • 속성 값은 원자값

□ 스키마 ☆☆☆☆

  • 외부스키마 : 사용자나 응용 프로그래머가 접근할 수 있는 정의를 기술
  • 개념스키마 :
    • 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스를 정의
    • 범기관적 입장에서 데이터베이스를 정의
    • 개체 간의 관계와 제약 조건을 나타내고, 데이터베이스 접근 권한, 보안 및 무결성 규칙 명세
  • 내부스키마 :
    • 데이터의 실제 저장 방법을 기술
    • 물리적 저장 장치의 입장에서 본 데이터베이스 구조로써 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타냄

□ 데이터 모델의 구성 요소 ☆☆☆

  • 구조(Structure) : 논리적인 개체 타입들 간의 관계, 데이터 구조 및 정적 성질을 표현
  • 연산(Operation) : 실제 데이터를 처리하는 작업에 대한 명세로, 조작하는 기본 도구
  • 제약 조건(Constraint) : DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건

□ 관계대수 연산 ☆☆☆

  • 일반 집합 연산자 : 합집합, 교집합, 차집합, 카티션 프로덕트
  • 순수 관계 연산자 :
    • SELECT( σ ) : 튜플 집합을 검색
    • PROJECT( π ) : 속성 집합을 검색
    • JOIN( ⨝ ) : 두 릴레이션의 공통 속성을 연결
    • DIVISION( ÷ ) : 두 릴레이션에서 특정 속성을 제외한 속성만 검색

□ 데이터베이스 장애 ☆☆☆

  • 장애 유형
    1. 트랜잭션 장애 : 특정 트랜잭션 수행 중 오류가 발생하여 정상적으로 완료되지 못하는 경우
    2. 시스템 장애 : DBMS는 중단되지만 저장장치는 손상되지 않은 경우
    3. 미디어 장애 : 디스크 자체에 물리적 손상이 발생한 경우
    4. 교착 상태 : 두 개 이상의 트랜잭션이 서로 자원을 기다리며 무한 대기 상태에 빠진 경우
    5. 소프트웨어 장애 : DBMS 자체나 연동된 어플리케이션의 버그로 인한 장애
    6. 인적 실수 : 실수로 인한 조작
  • 갱신 전략
    1. 즉각 갱신 기법(Immediate Update) :
      • 트랜잭션의 연산을 수행하여 데이터를 갱신할 때 실제 데이터 베이스에 반영하는 기법
      • 갱신한 모든 내용을 로그에 보관
      • 취소(Undo), 재시도(Redo) 모두 사용 가능
    2. 연기 갱신 기법(Deffered Update) :
      • 트랜잭션을 완료할 때 까지 데이터베이스에 갱신을 연기하는 기법
      • 트랜잭션 수행으로 갱신할 내용은 로그에 보관
      • 트랜잭션이 부분완료 시점에 로그의 기록을 실제 데이터베이스 반영
      • 장애가 발생하여 Rollback하여도 취소(Undo) 불필요
      • 재시도(Redo) 작업을 통해 최근의 정상적인 데이터베이스로 회복한 후 트랜잭션 재실행 가능
    3. 검사점 기법(Check Point) : 트랜잭션 중간에 검사점을 로그에 보관하여 트랜잭션 전체를 취소하지 않고 검사점까지 취소할 수 있는 기법
    4. 그림자 페이지 대체 기법(Shadow Paging)
      • 트랜잭션의 연산으로 갱신할 필요가 있을 때 복사본인 그림자 페이지를 보관하는 기법
      • 트랜잭션을 취소할 때 그림자 페이지를 이용하여 회복
      • 로그(Log), 취소(Undo), 재시도(Redo)가 불필요

□ 분산 데이터베이스 ☆☆☆

  • 구성요소
    • 분산처리기 : 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템
    • 분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이테비으가 구성
    • 통신 네트워크 : 분산처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크
  • 목표
    • 위치 투명성
    • 중복(복제) 투명성
    • 장애 투명성
    • 병행 투명성
    • 분할 투명성

□ 시스템 카탈로그(데이터 사전, 메타 데이터) ☆☆

  • 시스템 자신이 필요로 하는 여러 가지 객체(기본 테이블, 뷰, 인덱스, 데이터베이스, 패키지, 접근권한 등)에 관한 정보를 포함하고 있는 시스템 데이터베이스
  • 시스템 카탈로그 자체도 시스템 테이블로 구성되어 있어 SQL문을 이용하여 내용 검색이 가능하다.
  • 사용자가 시스템 카탈로그를 직접 갱신할 수 없다.
  • SQL문으로 여러가지 객체에 변화를 주면 시스템이 자동으로 갱신한다.

□ 파일의 구조 ☆☆

  • 순차 파일(Sequential File) : 입력되는 데이터들을 논리적인 순서에 따라 물리적 연속 공간에 순서대로 기록하는 방식(=순서 파일)
  • 색인 순차 파일(Indexed Sequential File) : 레코드들을 키값 순으로 정렬시켜 기록하고 레코드의 키 항목만을 모은 인덱스를 구성하여 편성하는 방식
  • 직접 파일(Direct File) : 파일을 구성하는 레코드들을 특정 순서 없이 임의의 물리적 저장 공간에 기록하는 방식(DAM 파일)
  • 역 파일(Inverted File) : 특정항목을 여러개의 색인으로 만들어 항목별 특성에 맞게 작업할 수 있도록 하는 방식
  • 다중 리스트 파일(Multi-List File) : 각 키에 대하여 색인을 만든 다음 각 데이터 레코드들 간에 다중 리스트를 구축하여 구성하는 방식
  • 다중 링 파일(Multi-Ring File) : 같은 특성을 가진 레코드들을 일련의 포인터로 연결하여 구성하는 방식

□ 파티션(Partition)의 종류 ☆☆

  • 범위(Range) 파티션 : 범위에 따라 분할
  • 목록(List) 파티션 : 특정 열 값의 목록에 따라 분할
  • 해시(Hash) 파티션 : 해시 함수를 사용하여 분할
  • 컴포지트(Composite) 파티션 : 두 개 이상의 유형을 조합하여 분할

□ OLAP(Online Analytical Processing) ☆

  • roll-up
  • slicing &  dicing
  • drill-ip & down
  • privot
  • drill-through

'이론공부 > 자격증' 카테고리의 다른 글

네트워크관리사 2급  (3) 2025.08.06
정보처리기사(개념정리) - 5과목 정보시스템 구축관리  (3) 2025.07.29
정보처리기사(개념정리) - 4과목 프로그래밍 언어 활용  (0) 2025.07.23
정보처리기사(개념정리) - 2과목 소프트 웨어 개발  (1) 2025.07.16
정보처리기사(개념정리) - 1과목 소프트 웨어 설계  (4) 2025.07.14
'이론공부/자격증' 카테고리의 다른 글
  • 정보처리기사(개념정리) - 5과목 정보시스템 구축관리
  • 정보처리기사(개념정리) - 4과목 프로그래밍 언어 활용
  • 정보처리기사(개념정리) - 2과목 소프트 웨어 개발
  • 정보처리기사(개념정리) - 1과목 소프트 웨어 설계
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 이론공부 N
        • 자격증 N
        • 개념
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java기초
    java 멤버
    java enhance switch
    데이터 타입
    Java this
    프로그래머스 java 기초트레이닝
    자료구조
    java super
    Java 생성자
    프로그래머스 java 기초 트레이닝
    java 메서드
    java
    java arrays.copyofrnage()
    java two-pointer
    java 유클리드 호제법
    java 세수의합
    데이터 크기
    개발로드맵
    java 제어자
    java 에라토스테네스의 체
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
정보처리기사(개념정리) - 3과목 데이터베이스 구축
상단으로

티스토리툴바