본문 바로가기
정보처리기사 실기

[정보처리기사 실기] 2. 데이터 입출력 구현

by DevJaewoo 2021. 10. 4.
반응형

데이터베이스 개요

 

▶ DBMS

더보기

 

다수의 사용자들이 Database 내의 데이터에 접근할 수 있도록 해주는 소프트웨어 도구의 집합으로, 데이터의 중복성과 종속성을 해결해준다.

 

▶ DBMS 고려사항 5가지

더보기

 

  • 가용성
  • 상호호환성
  • 성능
  • 기술지원
  • 구축비용

 

▶ DBMS 접속 기술 3가지

더보기

 

  • JDBC: Java를 통해 다양한 종류의 Database에 접속하며, Java SE에 포함되어있는 표준 API이다. 접속하려는 DBMS에 대한 드라이버가 필요하다.
  • ODBC: Database에 접근하기 위한 표준 개방형 API로, 언어에 관계없이 사용한다. 접속하려는 DBMS의 종류를 몰라도 된다.
  • MyBatis: JDBC를 개선 SQL Mapping 기반 오픈 접속 프레임워크로, SQL 문장을 분리하여 XML 파일을 만들고, Mapping을 통해 SQL을 실행한다.

 

논리데이터 저장소 설계

 

▶ 데이터 모델

더보기

 

현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델

 

▶ 데이터 모델링 절차

더보기

 

  • 요구 조건 분석: 요구조건 명세서 작성
  • 개념적 데이터 모델링: E-R 다이어그램 작성, 독립적 개념 스키마 설계
  • 논리적 데이터 모델링: 논리 스키마와 트랜잭션 인터페이스 설계, 정규화 수행
  • 물리적 데이터 모델링: 물리적 구조의 데이터로 변환, 반정규화 수행
  • 구현: DBMS의 DDL로 DB 생성

 

▶ 데이터 모델의 구성요소 3가지

더보기

 

  • 개체 (Entity, ■): 데이터로 표현하고자 하는 현실 세계의 대상체
  • 속성 (Attribute, ●): 개체에 관한 정보
  • 관계 (Relationship, ◆): 개체 간의 연관성

 

▶ 관계 데이터 언어 2가지

더보기

 

  • 관계대수: 원하는 정보와 그 정보를 어떻게 유도할지를 기술한 절차적 언어
  • 관계해석: 원하는 정보가 무엇인지만을 정의하는 비절차적 언어

 

▶ 관계대수 순수 관계 연산자 4가지

더보기

 

  • Select (σ): 릴레이션에서 특정 조건을 만족하는 튜플 선택
  • Project (π): 릴레이션에서 속성 리스트에 제시된 속성 선택
  • Join (⋈): 공통 속성을 중심으로 2개의 릴레이션을 하나로 합침
  • Division (÷): 두 개의 릴레이션에 모두 있는 속성을 가진 튜플 중 우항에 있는 속성만 구함

 

▶ 관계대수 일반 집합 연산자 4가지

더보기

 

  • UNION (∪): 합집합
  • INTERSECTION (∩): 교집합
  • DIFFERENCE ( - ): 차집합
  • CARTESIAN PRODUCT (×): 교차곱

 

 

▶ 이상현상 정의 및 종류 3가지

더보기

 

데이터의 중복성으로 인해 테이블 조작 시 발생하는 비합리적인 현상

 

 

  • 삽입 이상: 릴레이션에 데이터 삽입 시 원치 않는 값도 함께 삽입되는 현상
  • 갱신 이상: 튜플에 있는 속성값 갱신 시 일부 튜플의 정보만 갱신되어 정보에 모순이 생기는 현상
  • 삭제 이상: 튜플 삭제 시 원치 않는 정보까지 삭제되는 현상

 

 

▶ 정규화(Normalization) 정의 및 단계 6가지

더보기

 

관계형 데이터베이스 설계 시 데이터의 중복을 최소화하기 위해 테이블을 무손실 분리하는 과정

 

 

  • 1NF: 테이블의 모든 도메인이 원자값이어야 한다.
  • 2NF: 부분 함수적 종속 관계를 갖지 않아야 한다. (완전 함수적 종속 관계)
  • 3NF: 이행적 함수 종속 관계를 갖지 않아야 한다.
  • BCNF: 모든 결정자가 후보키여야 한다.
  • 4NF: 다치 종속을 제거해야 한다.
  • 5NF: 조인 종속을 제거해야 한다.

 

▶ 반정규화(De-Normalization)

더보기

 

시스템 성능 향상개발 운영의 단순화를 위해 정규화 원칙을 의도적으로 위배하는 행위

 

▶ 시스템 카탈로그

더보기

 

다양한 객체에 관한 정보를 포함한 시스템 데이터베이스로, 데이터 사전이라고도 한다.

 

▶ 메타데이터

더보기

 

데이터에 대한 데이터라는 뜻으로, 시스템 카탈로그에 저장되며 모이면 데이터 사전이 된다.

 

▶ 데이터 디렉토리

더보기

 

데이터 사전에 수록된 데이터에 접근하기 위해 필요한 정보를 관리 유지하는 시스템

 

물리 데이터 저장소 설계

 

▶ 무결성(Integrity) 종류 6가지

더보기

 

  • 개체 무결성: 기본키의 값은 NULL이나 중복된 값을 가질 수 없다. (고유 무결성 + NULL 무결성)
  • 참조 무결성: 외래키의 값은 참조 릴레이션의 기본키 값과 같거나 NULL이어야 한다.
  • 도메인 무결성: 특정 속성의 값은 해당 속성의 도메인에 속한 값이어야 한다.
  • 고유 무결성: 특정 속성이 고유한 값을 가지도록 조건이 주어진 경우, 해당 속성값은 모두 달라야 한다.
  • NULL 무결성: 특정 속성에 NULL이 올 수 없다는 조건이 주어진 경우, 해당 속성값은 NULL에 될 수 없다.
  • 키 무결성: 한 릴레이션에는 최소한 하나의 키가 존재해야 한다.

 

▶ 인덱스(Index)

더보기

 

검색 속도 향상을 위해 [키값:포인터] 쌍으로 구성된 데이터 구조

 

▶ 뷰(View)

더보기

 

사용자에게 허용된 정보만 보여주기 위해 하나 이상의 테이블로부터 유도된 논리적 가상 테이블

 

▶ 클러스터(Cluster)

더보기

 

데이터 접근 효율성 향상을 위해 동일한 성격의 데이터동일한 데이터 블록에 저장하는 물리적 저장 방법

 

▶ 파티셔닝(Partitioning) 정의 및 종류 3가지

더보기

 

대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나눈 것

 

 

  • 범위 분할: 연속적인 숫자 또는 날짜를 기준으로 파티셔닝
  • 해시 분할: 파티션 키의 해시 함수 값으로 파티셔닝
  • 조합 분할: 범위 분할 이후 해시 함수를 적용하여 다시 분할하는 파티셔닝

 

 

▶ 옵티마이저 정의 및 종류 2가지

더보기

 

SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 내부의 핵심엔진

 

  • RBO (Rule Based Optimizer): 규칙 기반 옵티마이저
  • CBO (Cost Based Optimizer): 비용 기반 옵티마이저

 

반응형