Transact-SQL은 IF-THEN-ELSE같은 control-of-flow를 지원한다.
SQL을 잘 구사하려면 물론 SQL Server 구조와 동작에 대한 기본 지식이 필요하다. SQL의 특징을 잘 알고 사용을 하여야 효과적인 data access가 가능하여 지는 것이다.
SQL은 기본적으로 set-oriented processing을 기반으로 하는 언어이다. Set-oriented란 필요한 범위의 데이타를 한꺼번에 처리하는 방식이다. 이것은 파일 처리에서 하나의 레코드씩 순차적으로 처리하였던 방식과 비교가 된다. 그러나 대부분의 프로그래머가 파일 프로세싱 사고방식에 젖어서 SQL을 파일 처리 방식인 순차적 방식으로 코딩하는 사례가 대단히 많다. 결과적으로 액세스 성능이 저하되게 되지만 이것을 하드웨어 용량을 증설하여 해결하는 소위 무식한 처리를 하는 경우가 다반사임은 안타까운 일이다. RDBMS와 SQL을 사용하는 프로그래머는 RDBMS와 SQL의 특성을 파악하고 그에 맞는 사고의 전환으로 비싸게 구입한 내것을 알뜰하게 사용하고 자신의 기술을 축적하는 마음의 자세를 가지는것이 중요할 것이다.
DML(Data Manipulation Language)
-------------------------------------------------------
- 데이타를 입력/수정/삭제/검색하는 데이타 액세스용 언어이다.
- SELECT
- INSERT
- UPDATE
- DELETE
DDL(Data Definition Language)
------------------------------------------------------
- 데이타베이스 구조를 정의하고 데이타베이스 내의 객체를 생성/삭제 유지하는데 사용되는 언어들이다.
- ALTER TABLE
- CREATE PROCEDURE
- CREATE TABLE
- CREATE TRIGGER
- CREATE VIEW
- DROP DEFAULT
- DROP PROCEDURE
- DROP TABLE
DCL(Data Control Language)
---------------------------------------------------------
- 데이타베이스 객체를 액세스 하는 권한을 통제하는데 사용하는 언어들이다.
- GRANT
- REVOKE
Control of Flow
Control-of-Flow는 SQL의 원래 취지와는 부합하지 않는다. SQL은 비절차적인 언어로써 원하는 것을 요청하면 그 방법은 RDBMS가 결정하여 처리하여주는 방식이다. 그러나 다양한 혀현실세계는 절차적인 수행을 반드시 필요로 하는 부분이 있고, 이를 지원하기 위하여 부가된것이 Control-of-Flow 지원 keyword들이다.
따라서 이 절차적인 언어는 불가피한 경우가 아니면 사용하지 않는것이 RDBMS를 사용하는데 있어서 효과적인 방향이라는것을 명심하여야 한다.
Posted by 홍반장