SQL ( Structured Query Language )
: 국제 표준 데이터 베이스 언어
▪ 관계대수와 관계해석을 기초로 함
📌 관계대수 ( Relation Algebra )
- 기존 테이블(릴레이션)들로부터 새로운 테이블을 생성하는 절차적 언어
- 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술
📌 관계해석 ( Relational Calculus )
- 관계 데이터 모델의 제안자인 코드가 수학의 Predicate Calculus ( 술어 해석 )에 기반을 두고 관계 데이터베이스를 위해 제안
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성
- 링크
🔷 DDL ( Data Definition Language ) :
▪ 데이터 정의어
▪ 데이터 베이스를 정의하는 언어
▪ 데이터를 생성, 수정, 삭제하는 등의 데이터의 전체의 골격을 결정
[ 명령어 ]
- create : 데이터베이스, 테이블 등을 생성
- alter : 테이블 수정
- drop : 데이터베이스, 테이블 삭제
- truncate : 테이블 초기화
🔷 DML ( Data Manipulation Language ) :
▪ 데이터 조작어
▪ 정의된 데이터베이스에 입력된 레코드를 조회, 수정, 삭제하는 언어
[ 명령어 ]
- select : 데이터 조회
- insert : 데이터 삽입
- update : 데이터 수정
- delete : 데이터 삭제
🌟 DDL 의 삭제는 테이블의 구조를 삭제하는 것이고 DML의 삭제는 데이터를 삭제하는 것이다.
🔷 DCL ( Data Control Language )
▪ 데이터 제어어
▪ 데이터베이스에 접근하거나 객체에 권한을 주는 등의 역할을 하는 언어
[ 명령어 ]
- grant : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한 부여
- revoke : 특정 데이터베이스 사용자에게 특정 작업에 대한 수행 권한 취소, 박탈
- commit : 트랜잭션의 작업을 저장 완료
- rollback : 트랜잭션의 작업을 취소, 원상 복구
데이터 접속 ( Data Mapping )
: 소프트웨어의 기능 구현을 위해 사용하는 프로그램의 코드와 DB의 데이터를 연결하는 것
🔸 SQL Mapping :
▪ 프로그래밍 코드 내에 SQL을 직접 입력해 DBMS의 데이터에 접속하는 기술
▪ 종류 : JDBC, ODBC, MyBatis 등
🔸 ORM ( Object - Relational Mapping ) :
▪ 객체지향 프로그래밍의 객체와 관계형 DB의 데이터를 연결하는 기술
▪ 종류 : JPA, Hibernate, Django 등
트랜잭션 ( Transaction )
▪ DB 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 작업 수행의 단위
▪ ACID 원칙을 기반으로 설계
▪ 트랜잭션을 제어하기 위해 사용하는 명령어 : TCL ( Transaction Control Language )
▪ TCL의 종류
- COMMIT
- ROLLBACK
- SAVEPOINT
트랜잭션의 특징
▪ 원자성 ( Automicity ) : 수행이 될 때 완벽히 수행이 되거나 전혀 수행이 되지 않아야함
▪ 일관성 ( Consistency ) : 항상 값이 일관성 있어야함
▪ 격리성 ( Isolation ) : 트랜잭션을 사용할 때 다른 트랜잭션에서 접근 할 수 없음 ( 독립성 )
▪ 영속성 ( Durability ) : 오류없이 결과를 나타내야함
절차형 SQL
: C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행, 분기, 반복 등의 제어가 가능한 SQL
▪ 종류 : 프로시저, 트리거, 사용자 정의 함수
🔸 프로시저 ( Procedure ) :
▪ 특정 기능을 수 행하는 일종의 트랙잭션 언어, 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행
▪ 하나의 함수처럼 실행하기 위한 쿼리의 집합
🔸 트리거 ( Trigger ) :
▪ DB 시스템에서 데이터의 입력, 갱신, 삭제 등의 이벤트가 발생할 때마가 관련 작업이 자동 수행
🔸 사용자 정의 함수 :
▪ 프로시저와 유사하게 SQL을 사용해 일련의 작업을 연속적으로 처리, 종료시 Return 사용해 처리 결과를 단일값으로 반환
절차형 SQL의 테스트와 디버깅
▪ 디버깅을 통해 기능의 적합성 여부를 판단
- 테스트 : 실행을 통해 결과 확인
- Show : 내용을 확인하고 문제를 수정
📌 디버깅 :
- 오류 작는 작업
쿼리 성능 최적화
: 데이터 입출력 성능을 향상을 위해 SQL 코드를 최적화 하는것
▪ 쿼리 최적화 전, APM을 사 용해 최적화 할 쿼리 선정
▪ 최적화 할 쿼리에 대해 옵티마이저가 수립한 실행 계획 확인, SQL 코드와 인덱스를 재구성
📌 옵티마이저 ( optimizer )
- SQL을 수행할 최적의 경로를 찾아주는 DBMS 내부의 핵심 엔진
- 링크
📌 APM
- 애플리케이션 성능 모니터링
- 실시간 데이터를 사용해 애플리케이션의 성능과 최종 사용자의 디지털 경험을 추적하는 관행
- 접속자, 지원현황, 트랜잭션 수행내역, 장애진단 등 다양한 모니터링 기능을 제공하는 도구
'이외 개발 스터디 > 정보처리기사' 카테고리의 다른 글
[ 정보처리기사 ] 2과목 - 통합 구현 (0) | 2024.04.02 |
---|---|
[ 정보처리기사 ] 2과목 - 데이터 입출력 구현 3 (0) | 2024.03.29 |
[ 정보처리기사 ] 2과목 - 데이터 입출력 구현 1 (0) | 2024.03.28 |
[ 정보처리기사 ] 1과목 - 인터페이스 설계 (0) | 2024.03.28 |
[ 정보처리기사 ] 1과목 - 애플리케이션 설계 2 (1) | 2024.03.27 |