Pink Transparent Star

이외 개발 스터디/정보처리기사

[ 정보처리기사 ] 2과목 - 데이터 입출력 구현 4

채유나 2024. 3. 29. 21:00
728x90

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

- 애플리케이션 성능 모니터링

- 실시간 데이터를 사용해 애플리케이션의 성능과 최종 사용자의 디지털 경험을 추적하는 관행

- 접속자, 지원현황, 트랜잭션 수행내역, 장애진단 등 다양한 모니터링 기능을 제공하는 도구

 

 

 

728x90