ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 고급 데이터베이스 기능
    정보처리기능사/SQL 2018. 11. 12. 11:44

    1. 내장 SQL (Embedded SQL)


    내장 SQL의 정의

    응용 프로그램 내에 데이터베이스에서 사용하는 데이터를 정의하거나 질의하는 SQL 문장을 내포하여 프로그램이 실행될 때 함께 실행되도록, 호스트 프로그램 언어에 삽입된 SQL


    *호스트 프로그램 언어: PASCAL, COBOL, C, Visual Basic 같은 프로그래밍 언어


    내장 SQL의 특징

    - 내장 SQL 실행문은 호스트 언어에서 실행문이 나타날 수 있는 곳이면 프로그램의 어느 곳에서나 사용할 수 있다.

    - 일반 SQL문은 수행 결과로 여러 개의 튜플을 반환하는 반면, 내장 SQL은 단 하나의 튜플만을 반환한다.

    - 내장 SQL문에 의해 반환되는 튜플은 일반 변수를 사용하여 저장할 수 있다.

    - 호스트 변수와 데이터베이스 필드의 이름은 같아도 된다.

    - 내장 SQL문의 호스트 변수의 데이터 타입은 이에 대응하는 데이터베이스 필드의 SQL 데이터 타입과 일치하여야 한다.

    - 삽입 SQL문이 실행되면 SQL 실행 상태가 SQL 상태 변수에 전달된다.


    2. 스토어드 프로시저(Stored Procedure)


    스토어드 프로시저의 개념

    - 프로시저란 특정한 작업을 수행하는 SQL문을 논리적으로 그룹화한 것을 말한다. 프로시저는 그 자체만으로도 완전한 프로그램의 축소판이라고 할 수 있다.

    - 스토어드 프로시저는 연속된 SQL문들을 하나로 모아 SQL 서버에 미리 컴파일해서 저장해 놓은 것을 말하는데, 클라이언트로부터 호출문을 통해 복잡한 SQL의 일괄 작업을 수행하는 데 적합하다.

    - 스토어드 프로시저의 구성은 다음과 같다.

    > 선언부: 타입, 커서, 상수, 변수, 내포된 서브 프로그램을 선언하는 부분

    > 실행부: 코드 실행을 제어하고 데이터를 조작하는 문장들을 작성하는 부분

    > 예외 처리부: 스토어드 프로시저 실행중에 발생하는 예외를 처리하는 부분


    3. 뷰(View)


    뷰의 의미

    - 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된, 이름을 가지는 가상 테이블

    - 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주된다.


    뷰의 특징

    - 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조로 되어 있으며, 조작도 기본 테이블과 거의 같다.

    - 가상 테이블이기 때문에 물리적으로 구현되어 있지 않다.

    - 실제 내용을 사용자 편의에 따라서 사용하는 외부 스키마에 해당하는 논리적 구조를 갖으며, 데이터의 논리적 독립성을 어느 정도 제공한다.

    - 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해진다.

    - 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 효율적인 기법으로 사용할 수 있다.

    - 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능하다.

    - 일단 정의된 뷰는 다른 뷰의 정의에 기초가 될 수 있다.

    - 하나의 뷰를 삭제하면 그 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제된다.


    4. 시스템 카탈로그(System Catalog)


    시스템 카탈로그의 의미

    - 시스템 그 자체에 관련이 있는 다양한 객체에 관한 정보를 포함하는 시스템 데이터베이스

    - 데이터베이스에 포함되는 모든 데이터 객체에 대한 정의나 명세에 관한 정보를 유지 관리하는 시스템 테이블

    - 데이터 정의어의 결과로 구성되는 기본 테이블, 뷰, 인덱스, 패키지, 접근 권한 등의 데이터베이스 구조 및 통계 정보를 저장

    - 카탈로그들이 생성되면 자료 사전(Data Dictionary)에 저장되기 때문에 좁은 의미로는 카탈로그를 자료 사전이라고도 한다.

    - 카탈로그에 저장된 정보를 메타 데이터(Meta-Data) 라고 한다.


    시스템 카탈로그의 특징

    - 카탈로그 자체도 시스템 테이블로 구성되어 있어 일반 이용자도 SQL을 이용하여 내용을 검색해 볼 수 있다.

    - INSERT, DELETE, UPDATE 문으로 카탈로그를 갱신하는 것은 허용되지 않는다.

    - 카탈로그는 DBMS가 스스로 생성하고, 유지한다.


    5. 트랜잭션(Transaction)


    - 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위로, 데이터베이스 관련 연산의 가장 기본적인 단위

    - 데이터베이스 시스템에서 복구 및 병행 수행 시 처리되는 작업의 논리적 단위

    - 하나의 트랜잭션은 데이터베이스에 접근하고 갱신하는 하나의 질의문 또는 여러 질의문으로 구성된다.

    - 일반적으로 회복의 단위로 Commit 되거나 Rollback 된다.

    - 원자성, 일관성, 격리성, 영속성의 특징을 가진다.


    * 원자성(Atomicity): 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다는 성질

    * 일관성(Consistency): 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다는 성질

    * 격리성, 독립성(Isolation): 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다는 성질

    * 연속성(Durabiility): 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다는 성질

    '정보처리기능사 > SQL' 카테고리의 다른 글

    DML - INSERT, DELETE, UPDATE  (0) 2018.11.09
    DML - SELECT  (0) 2018.11.09
    DDL  (0) 2018.11.09
    SQL의 개념  (0) 2018.11.09

    댓글

Designed by Tistory.