본문 바로가기

카테고리 없음

SMART FACTORY -NO.7 데이터 입.출력/ 절차형 SQL

반응형

데이터 입출려의 개요 

 

*데이터 입출력은 단순 입력과 출력 뿐만 아니라 데이터를 조작한느 모든 행위를 의미하며 이와 같은 작업을 위해 SQL을 사용한다 

*데이터 입출력을 소프트웨어에 구현하기 위해 개발 코드 내에 SQL코드를 삽입하거나 객체와 데이터를 연결하는 것을 데이터 접속(DATA MAPING)이라고 한다.

*SQL을 통한 데이터 베이스의 조작을 수행할때 하나의 논리적인 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 트랜잭션이(TRANSACTION)라고 한다.

 

SQL (STRUCTURED QUERY LANGUAGE)

 

1974 IBM - > SEQUEL -> SQL  관계형 데이터베이스(RDB) 지원하는 언어로 채택

 

*관계대수와 관계 해석을 기초로한 혼합데이터 언어이다 

 

$관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이고 

관계해석은 관계데이터의 연산을 표현하는 방법 원하는 정보를 정의할 때는 계산 수식을 사용합니다. 

 

질의어지만 질의 기능만 있는 것이 아니라 데이터 구조의 정의 데이터 조작 데이터 제어 기능을 모두 가지고 있다 .

 

정의어 DDL  -DATA DEFINE LANGUAGE 

SCHEMA /DOMAIN /TABLE /VIEW /INDEX 정의 하거나 변경 똔느 삭제할때 사용하는 언어 이다. 

 

조작어 DML - DATA MANIPULATION LANGUAGE 

데이터베이스 사용자가 응용 프로그램이나 질의어를 통해 저장된 데이터를 실질적으로 처리하는데 사용되는 언어이다. 

 

제어어 DCL - DATA CONTROL LANGUAGE 

데이터의 보안 /무결성/회복/병행수행제어 등을 정의하는데 사용되는 언어이다.

 

데이터 접속(DATA MAPPING)

데이터 접속은 소프트웨어의 기능 구현을 위해 프로그래밍 코드와 데이터 베이스의 데이터를 연결한느 것을 말하며  관련기술로는 SQL MAPPING 과 ORM 이 있다. 

 

SQL MAPPING - 프로그래밍 코드 내에 SQL을 직접 입력하여 DBMS의 데이터에 접속하는 기술로 JDBC .ODBC/Mybatis

 

ORM (OBJECT -RELATIONAL MAPPING) -객체지향 프로그래밍의 객체와 관계형 데이터 베이스의 데이터를 연결하는 기술로 관련 프레임 워크에는 JPA ,Hibernate ,Django 등이 있다. 

 

트랜잭션 (Transaction)

트랜잭션은 데이터 베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행 되어야할 일련의 연산들을 의미한다. 

 

트랜잭션을 제어하기 위해서 사용하는 명령어를 TCL  -> COMMIT , ROLLBACK ,SAVEPOINT 가 있다 .

 

COMMIT -> 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터 베이스에 반영하는 명령어

 

ROLLBACK -> 하나의 틀랜잭션 처리가 비정사으로 종료되어 데이터베이스의 일관성이 깨졋을 때 트랜잭션이 행한 모든 변경 작업을 취소하고 이전 상태로 되돌리는 연산 

 

SAVEPOINT -> 트랜잭션 내에 ROLLBACK 할 위치인 저장점을 지정하는 명령어

 

 

 

 

 

절차형 SQL

 

절차형 SQL은 C , JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나 분기 반복 등의 제어가 가능한 SQL을 의미한다. 

 

*절차형 SQL 은 일반적인 프로그래밍 언어에 비해 효율은 떨어지지만 단일 SQL문장으로 퍼리하기 어려운 연속적인 자업들을 처리하는데 적합하다.

*절차형 SQL을 활용하여 다양한 기능을 수행하는 저장 모듈을 생성할 수 있다.

*절차형 SQL은 DBMS 엔진에서 직접 실행되기 때문에 입 출력 패킷이 적은 편이다. 

 

BEGIN ~ END 형식으로 작성되는 블록 구조로 되어 있기 때문에 기능별 모듈화가 가능하다. 

절차형 SQL의 종류에는 프로시저 트리거 사용자 장의 함수가 있다.

 

프로시저 (PROCDURE) : 특정 기능을 수행하는 일종의 트랜잭션 언어로 호출을 통해 실행되어 미리 저장해 놓은 SQL작업을 수행한다. 

트리거 (TRIGGER) : 데이터 베이스 시스템에서 데이터의 입력 ,갱신,삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행된다. 

사용자 정의 함수  : 프로시저와 유사하게 SQL을 사용하여 일련의 작업을 연속적으로 처리하며 종료시 예약어 RETURN을 사용하여 처리 결과를 단일 값으로 반환한다. 

 

절차형 SQL의 테스트와 디버깅 

절차형 SQL은 디버깅을 통해 기능의 적합성 여부를 검증하고 실행을 통해 결과를 확인하는 테스트 과정을 수행한다.

 

*절차형 에스큐엘은 테스트전에 생성을 통해 구문 오류나 참조 오류의 존재 여부를 확인 

*많은 코드로 구성된 절차형 에스큐엘은 특성상 오류 및 경고 메시지가 상세히  출력되지 않으므로 SHOW 명령어를 통해 내용을 확인하고 문제를 수정한다.

 

정상적으로 생성된 절차형 에스큐엘은 디버깅을 통해 로직을 검증하고 결과를 통해 최종적으로 확인한다. 

 

절차형 에스큐엘의 디버깅을 실제로 데이터 베이스에 변화를 줄 수 있는 삽입 및 변경 관련된 SQL문을 주석으로 처리하고 출력문을 이용하여 화면에 출력하여 확인한다.

 

쿼리 성능 최적화

쿼리 성능 최적화는 데이터 입력 출력 애플리케이션의 성능 향상을 위해 SQL 코드를 최적화 하는 것이다. 

쿼리 성능을 퇴적화 하기 전에 선능 측정 도구인 APM을 사용하여 최적화 할 쿼리를 선정해야 한다. 

최적화 할 쿼리에 대해 옵티마이저(SQL이 효율적으로 수행되도록 최적의 경로를 찾아주는 모듈)가 수립한 실행 계획을 검토하고 SQL코드와 인덱스를 재구성한다. 

 

APM - APPLCATION PERFORMANCE MANAGEMENT APM은 애플리케이션의 성능 관리를 위해 접속자 자원현환 트랜잭션 수행내역 장애진단 등 다양한 모니터링 기능을 제공한는  도구 입니다. 

 

 

 

 

 

반응형