정보처리기사 실기 - SQL 응용

둡둡·2023년 4월 12일

정보처리기사

목록 보기
8/12

DDL(Data Define Language)

  • 데이터 정의어 : DB 구조, 형식,접근 방식 등 데이터베이스를 구축하거나 수정하는 언어
    • 종류: CREATE, ALTER, DROP 등
    • 스키마(Schema) : 데이터베이스 구조와 제약 조건 등에 관한 전반적인 명세 기술
    • 도메인(Domain) : 사용자 정의 데이터 타입
    • 테이블(Table)
    • 뷰(View) : 하나 이상의 기본 테이블로부터 만들어지는 가상 테이블
    • 인덱스(Index) : 검색 시간을 단축시키기 위한 참조할 수 있는 데이터 구조

DCL(Data Control Language)

  • 데이터 제어어 : 데이터 보안, 무결성, 회복, 병행 제어 등을 정의하는 언어
    • 종류
      • COMMIT
      • ROLLBACK
      • SAVEPOINT : 백업 시점 설정
      • GRANT/REVOKE : 권한 부여, 권한 회수
    • TCL(Transaction Control Language) : 트랜잭션 제어어

DML(Data Manipulation Language)

  • 데이터 조작어 : 데이터를 실질적으로 관리하는 언어
    • 종류
      • SELECT ~ FROM ~
      • INSERT INTO ~ VALUES ~
      • DELETE FROM ~
      • UPDATE ~ SET ~

DML-SELECT

  • DISTINCT : 중복된 튜플 중 하나만 출력
  • LIKE : 문자 패턴 등을 검색하기 위해 사용
    • % (모든 글자 대체), _ (한 글자만), # (숫자 하나만)
  • 그룹 함수(GROUP BY)
    • COUNT, SUM, AVG, MAX, MIN, ROLLUP 등
  • 집합 연산자
    • UNION : 중복 제거
    • UNION ALL : 중복 포함
    • INTERSECT : 중복만
    • EXCEPT : 모두 포함되지 않는 데이터만

DML-JOIN

  • INNER JOIN
    • 조건 없는 이너 조인은 크로스 조인과 동일한 결과
    • CROSS JOIN : 결과 테이블 행의 수는 두 테이블 행의 수를 곱한 것과 같음
  • OUTER JOIN
    • 조건에 만족하지 않는 튜플도 결과 출력
    • LEFT, RIGHT, FULL OUTER JOIN 등

프로시저(Procedure)

  • 일련의 작업을 저장해두고 호출하여 저장한 작업을 수행하는 절차형 SQL
  • 주로 일괄(Batch) 작업 등에 사용됨
  • DECLARE ~ BEGIN/END ~

트리거(Trigger)

  • 특정 동작이 발생할 때 관련 작업을 자동으로 수행하는 절차형 SQL
  • 데이터 변경 및 무결성 유지, 로그 메시지 출력 등에 사용
  • DCL 사용 불가
  • DECLARE ~ EVENT ~ BEGIN/END

ORM(Object-Relational Mapping)

  • 객체 지향 프로그래밍의 객체와 관계형 데이터베이스를 연결하는 기술
  • ORM 프레임워크 종류: JAVA(JPA, Hibernate) 등
  • 객체 종류
    • DAO : 추상 인터페이스 제공하는 객체로 세부 내용의 노출 없이 데이터를 조작하는 객체
    • VO : 간단한 엔티티를 의미하는 고정 클래스를 가지는 객체
    • DTO : 데이터를 전송하는 객체로 저장/회수만 가능한 객체

쿼리 성능 최적화

  • 데이터 입출력 애플리케이션의 성능 향상을 위해 코드를 최적화
    • APM(Application Performance Management/Monitoring) 사용
  • 옵티마이저(Optimizer)
    • 최적의 경로를 찾아주는 모듈
    • RBO(Rule Based Optimizer) : 데이터베이스 관리자가 정의해둔 규칙에 의해 경로를 찾는 규칙 기반 옵티마이저
    • CBO(Cost Based Optimizer) : 각 DBMS에서 산출되는 비용으로 최적의 경로를 찾는 비용 기반 옵티마이저
profile
괴발개발라이프

0개의 댓글