본문 바로가기

데이터베이스 DataBase

chapter 05 데이터베이스 응용

데이터베이스 프로그래밍 : DBMS에 데이터를 정의하고 저장된 데이터를 읽어와 데이터를 변경하는 프로그램을 작성하는 과정. 단, 일반 프로그래밍과 달리 데이터베이스 언어인 SQL을 포함. SQL 전용 언어를 사용하는 경우 SQL Server는 T-SQL, Oracle은 PL/SQL이라는 언어를 사용함. 일반 프로그래밍 언어에 SQL을 삽입하여 사용하는 경우, 호스트 언어가 JAVA, C, C++ 등 일반 프로그래밍 언어인 경우 삽입된 SQL 문은 DBMS의 컴파일러가 처리. 웹 프로그래밍 언어에 SQL을 삽입하여 사용할 경우 호스트 언어가 JSP, PHP 등 웹 스크립트 언어인 경우. 4GL을 사용할 경우 데이터베이스 관리 기능과 비주얼 프로그래밍이 가능한 GUI 기반 소프트웨어 개발 도구 사용 Delphi, Power Builder.

 

삽입 프로그래밍 : 일반 프로그래밍 언어에 SQL 문을 삽입하여 프로그래밍 하는 것.

 

호스트 언어 : SQL 문이 삽입된 프로그래밍 언어.

 

T-SQL : Transact-SQL의 줄임말로 SQL Server의 SQL 전용 언어. Oracle은 PL/SQL 사용 SQL 문에 변수, 제어, 입출력 등의 프로그래밍 기능을 추가하여 SQL 만으로 문제 해결. SQL Server에 프로시저로 저장할 수 있고 필요할 때마다 호출해 사용 가능.

 

프로시저 : 일반 프로그래밍 언어의 함수와 비슷한 개념으로, 작업 순서가 정해진 독립된 수행단위. 프로시저 정의 과정은 쿼리 창에 프로시저를 정의 -> (구문분석) -> 실행 클릭 -> 실행 결과 메시지 창 -> 저장 프로시저 폴더에 객체 생성됨. EXEC 명령에 의해 실행되는 독립된 프로그램.

 

프로시저 정의 : CREATE PROCEDURE 문을 사용. 변수와 매개변수는 @기호로 식별, 매개변수는 저장 프로시저가 호출될 때 그 프로시저에 전달되는 값, 변수는 저장 프로시저나 트리거 내에서 사용되는 값, 설명문은 /*…*/에 기술 혹은 설명문이 한 줄인 경우 – 이중 대시 이용.

 

BEGIN-END : T-SQL 문을 블록화시킴. 중첩 가능. BEGIN { SQL문 } END.

 

IF-ELSE : 조건의 검사 결과에 따라 문장을 선택적으로 수행 IF <조건> SQL 문 [ ELSE SQL 문 ]

 

WHILE : 조건이 참일 경우 WHILE 문의 블록을 실행 WHILE < 조건 > { SQL 문 | BREAK | CONTINUE }

 

RETURN : 프로시저를 종료. 상태값을 정수로 반환 가능. RETURN [ < 정수 > ].

 

커서 : 실행 결과 테이블을 한 번에 한 행씩 처리하기 위하여 테이블의 행을 순서대로 가리키는데 사용. T-SQL 커서는 마이크로소프트 사에서 구현한 커서로 DECLARE, OPEN, FETCH, CLOSE, DEALLOCATE 등이 있음.

 

DECLARE : 커서를 생성.

 

OPEN : 커서의 사용을 시작.

 

FETCH : 행 데이터를 가져옴.

 

CLOSE : 커서의 사용을 끝냄.

 

DEALLOCATE : DBMS에서 커서를 제거.

 

트리거 : 데이터의 변경(INSERT, DELETE, UPDATE)문이 실행될 때 자동으로 따라서 실행되는 프로시저. 보통 데이터의 변경 문이 처리되는 세 가지 시점, 실행 전(BEFORE), 대신하여(INSTEAD OF), 실행 후(AFTER)에 동작. SQL Server는 실행 후(AFTER)와 대신하여(INSTEAD OF) 트리거만 이용. 데이터의 변경이 일어날 때 부수적으로 필요한 작업인 데이터의 기본 값 제공, 데이터 제약 준수, SQL 뷰의 수정, 참조 무결성 작업 등을 수행. 삽입과 갱신 트리거의 경우, 처리 대상 테이블의 새로운 열 값은 Inserted 라는 이름의 의사 테이블에 저장. 갱신과 삭제 명령에 대해서도 갱신되거나 삭제되는 테이블의 이전 열 값은 Deleted라는 이름의 의사테이블에 저장.

 

사용자 정의 함수 : 사용자가 직접 필요한 기능을 함수로 만들어 사용하는 것. SELECT 문에 의해 호출되어 프로시저나 SQL 문에 그 값을 제공하는 용도로 사용. 단일 값을 돌려주는 스칼라 함수, 뷰와 같이 SELECT 문의 결과 값을 테이블 형태로 돌려주는 인라인 테이블 함수, 결과 칼럼을 사용자가 정의하여 돌려주는 다중문 테이블 함수가 존재. CREATE FUNCTION 문으로 정의함.

'데이터베이스 DataBase' 카테고리의 다른 글

chapter 07 정규화  (0) 2013.09.06
chapter 06 데이터 모델링  (0) 2013.09.04
chapter 04 SQL 고급  (0) 2013.08.30
chapter 03 SQL 기초  (0) 2013.08.24
chapter 02 관계 데이터 모델  (0) 2013.08.21