정보처리기사,

2과목: 요약 정리(1) - 데이터 입출력 구현

Aug 10, 2020 · 2 mins read

데이터베이스

정의: 통합(중복x), 저장(컴퓨터에), 운영(필수 데이터), 공유

특징: 실시간 접근성, 내용에 의한 참조, 동시 공유, 계속적인 변화(최신 데이터 삽입, 삭제, 갱신 등을 반복)

DBMS

  • 장점: 독립성이 확보, 일관성 유지, 무결성
  • 단점: 전문가 부족, 비용 비쌈, 서버의 부담

  • 정의 기능: 구현언어(DDL) -> 구조에 대한 정의
  • 조작 기능: 구현언어(DML) -> 데이터 검색, 삽입, 삭제, 갱신
  • 제어 기능: 구현언어(DCL) -> 접근 권한(권한 부여, 취소), 병행 제어

스키마

  • 정의: DB 구조, 제약조건 등을 기술

  • 외부 스키마: 각 사용자 관점(사용자 뷰) -> 여러 개
  • 개념 스키마: 논리적 구조 -> 개체간의 관계와 제약조건 명시(단일)
  • 내부 스키마: 물리적 저장구조를 정의(단일)

    데이터베이스 설계
  • 요구조건 분석: 사용자, 조건 등을 파악 -> 요구조건 명세
  • 개념적 설계: 그림 표현(ex. E-R 다이어그램)
  • 논리적 설계: 모델링, 스키마 설계
  • 물리적 설계: 저장 장치에 물리적 구조, 데이터를 변환
  • 데이터베이스 구현

SQL(Structured Query Language) '1974년 IBM에서 개발한 DB 언어'

  • DDL: 데이터 정의어(SCHEMA, DOMAIN, TABLE, VIEW, INDEX –스키마– 를 정의(Create)하거나 수정(Alter) 또는 삭제(Drop)할 때 사용하는 언어)
    • CREATE, ALTER, DROP
  • DML: 데이터 조작어(사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터를 실질적으로 처리하는 데 사용되는 언어)
    • INSERT, DELETE, UPDATE
  • DCL: 데이터 제어어(데이터의 보안, 무결성, 회복, 병행 수행 제어 등을 정의하는 데 사용되는 언어)
    • GRANT(권한부여), REVOKE(권한부여취소), COMMIT(정상적으로 완료), ROLLBACK(이전으로 복귀)

데이터 접속(Data Mapping)

  • SQL Mapping: 프로그래밍 코드 내에 SQL을 직접 입력하여 DBMS의 데이터에 접속(ex. JDBC, ODBC, MyBatis)
  • ORM: 객체와 디비를 연결(ex. JPA, Hibernate, Django)

    트랜잭션(Transaction)
  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • 특징: 원자성(완벽하게 실행되어야 함), 일관성, 독립성(다른 트랙잭션이 접근 불가), 영속성(트랜잭션 실행이 완료되면 이는 영속적이다)
  • 트랜잭션을 제어하기 위해 TCL 명령어를 사용(COMMIT, ROLLBACK, SAVEPOINT)

절차형 SQL

  • 특징: 플그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
  • 프로시저: 특정 기능을 수행하는 일종의 트랜잭션 언어
  • 트리거: 이벤트(입력, 갱신, 삭제) 발생때마다 관련 작업이 자동으로 수행된다.
  • 사용자 정의 함수: 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리, 종료 시 예약어 Return을 사용하여 처리 결과를 단일값으로 반환함.

절차형 SQL의 테스트와 디버깅

  • 테스트: 실행-결과 확인(Show)
  • 디버깅: 기능 적합성 여부 판단

쿼리 성능 최적화

  • 데이터 입출력 성능을 향상 시키기 위해 SQL 코드 최적화(APM 사용하여 최적화 할 쿼리를 선정)
  • 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획을 검토하고 SQL 코드와 인덱스를 재구성
옵티마이저: DBMS에 내장되어 작성된 SQL이 효율적으로 수행되도록 최적의 경로를 찾아 주는 모듈.


APM: 애플리케이션의 성능 관리를 위해 접속자, 자원 현황, 트랜잭션 수행 내역, 장애 진단 등 다양한 모니터링 기능을 제공하는 도구.



Written by