정보처리기사 실기 요점정리

8장. SQL 응용

▶ 수험서 : 2021 시나공 정보처리기사 실기

※ 시나공 교재를 토대로 작성하였으며 [ ] 안에 번호는 교재의 섹션입니다.

※ 부족한 내용은 구글링 및 수제비 카페를 참고하여 작성하였습니다.

 

 

 

[124] 프로시저

- 프로시저 : SQL을 사용하여 작성한 일련의 작업을 저장해두고 원할 때마다 저장한 작업을 수행하도록 하는 절차형 SQL이다.
- 절차형 SQL : 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL

 

 

[125] 트리거

- 트리거 : 삽입, 갱신, 삭제 등의 이벤트가 발생할 때 관련 작업이 자동으로 수행되게 하는 절차형 SQL이다.

 

 

[128] 커서

- 커서 : 쿼리문의 처리결과가 저장되어 있는 메모리 공간을 가리키는 포인터이다.
- 커서의 수행 : 열기(Open) → 패치(Fetch) → 닫기(Close)
- 명시적 커서의 수행 : 선언(Declare) → 열기(Open) → 패치(Fetch) → 닫기(Close)

 

 

[129] DBMS 접속

- 웹 응용 프로그램은 웹 응용 시스템을 통해 DBMS에 접근한다. 웹 응용 시스템은 웹 서버, 웹 애플리케이션 서버로 구성된다.


- DBMS 접속 기술 : DBMS에 접근하기 위해 사용하는 API 또는 API의 사용을 편리하게 도와주는 프레임워크
  * JDBC : Java 언어로 다양한 종류의 데이터베이스에 접속할 때 사용하는 표준 API, 썬 마이크로시스템 개발
  * ODBC : 개발 언어에 관계없이 데이터베이스에 접근하기 위한 표준 개방형 API, 마이크로소프트사 개발
  * MyBatis : JDBC 코드를 단순화하여 사용할 수 있는 SQL Mapping 기반 오픈 소스 접속 프레임워크


- 동적 SQL(Dynamic SQL) : 다양한 조건에 따라 SQL 구문을 동적으로 변경하여 처리할 수 있는 SQL 처리방식이다.

 

 

[130] SQL 테스트

- 디버깅 : 오류를 잡기 위해 소스 코드를 한 줄 한 줄 추적해 가며 변수 값의 변화를 검사하는 작업이다.
- TCL(Transaction Control Language) : 트랜잭션을 제어하는 COMMIT, ROLLBACK, SAVEPOINT 명령을 가리키는 용어

 

 

[131] ORM(Object-Relational Mapping)

- ORM : 객체지향 프로그램의 객체와 관계형 데이터베이스의 데이터를 연결하는 기술이다.


- ORM 프레임워크 : ORM을 구현하기 위한 구조와 여러 기능들을 제공하는 소프트웨어
  * Java기반 : JPA, Hibernate, EclipseLink
  * C++기반 : ODB, QxOrm
  * Python기반 : Django, SQLAlchemy, Storm
  * .NET기반 : NHibernate, DatabaseObjects
  * PHP기반 : Doctrine, Propel

 

 

[132] 쿼리 성능 최적화

- 옵티마이저 : 작성된 SQL이 가장 효율적으로 수행되도록 최적의 경로를 찾아주는 모듈이다.
- RBO : DBA가 사전에 정의해둔 규칙에 의거하여 경로를 찾는 규칙 기반 옵티마이저
- CBO : 각 DBMS마다 고유의 알고리즘에 따라 산출되는 비용으로 최적의 경로를 찾는 비용 기반 옵티마이저