2023. 2. 15. 19:02ㆍ정처기 필기/2과목 - 소프트웨어 개발
데이터 입,출력
1. SQL
- 1974년 IBM 연구소에서 개발한 SEQUEL에서 유래함
- 관계대수와 관계해석을 기초로 한 혼합 데이터 언어
DDL
domain, schema, table, view, index (Create/Alter/Drop/Truncate)
DML
--> select, insert, update, delete
DCL
--> commit, rollback / 무결성, 보안, ㅎ회복, 병행 제어 등
2. 데이터 접속
- 소프트웨어의 기능 구현을 위해 프로그래밍 코드와 데이터베이스의 데이터를 연결
SQL Mapping
프로그래밍 코드 내 SQL을 직접 입력해서 DBMS의 데이터에 접속하는 기술
# JDBC, ODBC, MyBatis
ORM
객체와 관계형 데이터베이스의 데이터를 연결하는 기술
# JPA(Hibernate), Django
3. 트랜잭션
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 한꺼번에 모두 수행되어야 할 일련의 연산들
COMMIT
트랜잭션 처리가 정상적으로 종료되어 DB에 정상적으로 저장
ROLLBACK
트랜잭션 처리가 비정상 종료되어 DB의 일관성이 깨졌을 때 작업 취소
SAVEPOINT(=checkpoint)
트랜잭션 내에서 롤백할 위치인 저장점을 지정하는 명령어
4. 트랜잭션의 특징
원자성
: 트랜잭션 연산을 모두 반영하거나 모두 반영하지 말아야 함
일관성
: 트랜잭션이 실행을 성공적으로 완료할 시 일관성 있는 데이터베이스 상태를 유지
독립성
: 둘 이상 트랜잭션 동시 실행 시 한 개의 트랜잭션만 접근이 가능해서 간섭이 불가하다.
영속성
: 성공적으로 완료된 트랜잭션 결과는 영구적으로 반영됨
절차형 SQL
1. 개요
- C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나, 분기, 반복 등의 제어가 가능한 SQL
- 일반적인 프로그래밍 언어에 비해 효율이 떨어짐
- 연속적인 작업들을 처리하는데 적합
- BEGIN~END 형식으로 작성되는 블록 구조로 기능별 모듈화 가능
프로시저
: 미리 저장해 놓은 SQL 작업 수행
트리거
: 입력, 업데이트, 삭제 등 이벤트가 발생할 때마다 작업을 자동 수행
사용자 정의 함수
: 프로시저와 유사하게 SQL을 사용해 일련의 작업을 연속적으로 처리한다.
종료 시 예약어 return을 사용해 처리 결과를 단일값으로 반환
2. 테스트 / 디버깅
- 테스트 전 구문 오류 및 참조 오류 존재 여부 확인
- 오류 및 경고 메시지가 상세하지 않으므로 SHOW 명령어를 통해 내용 확인
- 삽입 및 변경 관련 SQL문은 주석으로 처리하고 디버깅 수행 (실제로 변화하지 않게)
3. 쿼리 성능 최적화
- SQL 코드 최적화
- 성능 측정 도구 : APM
- APM을 통해 최적화할 쿼리를 정하고 그 쿼리에 대해 옵티마이저가 수립한 실행 계획을 검토하여 SQL 코드와 인덱스 재구성
'정처기 필기 > 2과목 - 소프트웨어 개발' 카테고리의 다른 글
형상 관리 / 버전 관리 도구 (0) | 2023.02.15 |
---|---|
릴리즈 노트 / 디지털 저작권 관리 (0) | 2023.02.15 |
릴리즈 노트 / 디지털 저작권 관리 (0) | 2023.02.15 |
개발 지원 도구 / 소프트웨어 패키징 (0) | 2023.02.15 |
자료구조 / 데이터베이스 (0) | 2023.02.15 |