티스토리 뷰

스마트웹 개발/SQL활용

01-2.DCL활용

노랑맛낑깡 2021. 5. 18. 14:31

DCL 활용

업무 단위인 트랜잭션의 완료와 취소를 위한 DCL(Data Control Language) 명령문을작성할 수 있다.

CL 개요

1. DCL 유형

데이터베이스에서 데이터 이외의 오브젝트에 대해 조작할 필요가 있다. 이때 사용하는 SQL 명령을 DCL(Data Control Language)이라고 한다. DCL의 조작 대상, 오브젝트 유형은 다음과 같다.

트랜잭션 제어를 위한 명령어 TCL(Transaction Control Language)이 있다. TCL과 DCL은 대상이 달라 서로 별개의 개념으로 분류할 수 있으나, 제어 기능의 공통점으로 DCL의 일 부로 분류하기도 한다. 각 유형별 DCL 명령어는 다음과 같다.

DCL 활용

1. 사용자 권한 부여

권한은 시스템 권한과 객체 권한으로 분류한다. 각 권한을 부여하기 위한 명령어 사용법 은 다음과 같다.

2. 사용자 권한 회수

GRANT에 대응하는 권한 회수 명령은 REVOKE이며, 권한 유형별 대응하는 명령어 구조는 다음과 같다.

DCL 이론적 배경인 접근통제

1. 접근 통제 개념

데이터베이스의 보안을 구현하는 방법으로 접근 통제 방법을 사용한다. 접근 통제 정의는 아래와 같다.

2. 접근 통제 정책에 따른 유형

접근 통제 정책에는 크게 다음과 같은 2가지 유형이 있다.

3. 접근 통제와 DCL 관계

강제 접근 통제의 경우, 제3자의 종류에 따라 보다 세분화된 정책이 존재한다. 접근 통제 정책의 두 가지 가운데 데이터베이스관리시스템(DBMS)에서 채택한 접근 통제 정책은 임 의 접근 통제, DAC 방식이다. 데이터베이스관리, 특히 접근 통제 용도로 SQL에서 사용하 는 명령어가 바로 DCL(Data Control Language)인 것이다.

TCL 활용 방법

1. 트랜잭션 개념

트랜잭션은 `일 처리 단위'를 의미한다. 보다 다양한 관점에서 트랜잭션은 다음과 같은 모 습을 가진다.

 

• 트랜잭션은 논리적 연산 단위이다.

• 한 개 이상의 데이터베이스 조작이다.

• 즉, 하나 이상의 SQL 문장이 포함된다.

• 트랜잭션은 `거래'다.

• 이때 거래 결과가 모두 반영되거나 또는 모두 취소되어야 한다.

• 즉, 데이터베이스에서의 트랜잭션은 특별한, 엄격한 거래를 의미한다.

• 분할할 수 없는 최소 단위이다.

2. 트랜잭션 제어

트랜잭션을 제어한다는 것은 흐름의 구조를 바꾼다는 것이 아니라 트랜잭션의 결과를 수 용하거나 취소하는 것을 의미한다. 이러한 작업을 수행하는 TCL 관련 명령어는 다음과 같다.

데이터 사전 검색

생성된 테이블의 목록, 테이블의 구조와 제약 조건을 파악하기 위해 데이터 사전을 조회하는 명령문을 작성할 수 있다.

데이터 사전

1. 데이터 사전 개념

데이터 사전(Data Dictionary)에는 데이터베이스의 데이터를 제외한 모든 정보가 있다. 데이터 사전의 내용을 변경하는 권한은 시스템이 가지며, 사용자에게는 읽기 전용 테이블 형태로 제공되므로 단순 조회만 가능하다.

데이터를 제외한(데이터를 구성하는) 모든 정보라는 것은 데이터의 데이터를 의미한다. 따 라서 데이터 사전은 메타데이터(Meta data)로 구성되어 있다고 할 수 있다.

2. 데이터 사전 내용

데이터 사전 안에 존재하는 메타데이터의 유형은 다음과 같다.

• 사용자 정보(아이디, 패스워드 및 권한 등)

• 데이터베이스 객체 정보(테이블, 뷰, 인덱스 등)

• 무결성 제약 정보

• 함수, 프로시저 및 트리거 등 데이터 사전 내용이 메타데이터라는 것은 모든 DBMS 제품에 공통이지만 데이터 사전을 구 현하는 방법, 관리하는 방법 등의 차이로 메타데이터의 구체적인 내용은 제품마다 다르다.

3. 데이터 사전 용도

사용자에게 데이터 사전은 단순 조회의 대상일 뿐이다. 하지만 데이터베이스 엔진을 이루 는 컴파일러, 옵티마이저 등과 같은 구성 요소에 데이터 사전은 작업을 수행하는 데 필요 한 참조 정보일 뿐만 아니라 작업의 대상이기도 하다.

데이터 사전 검색

1. 오*에서 데이터 사전 검색

오* 사용자는 뷰로 데이터 사전에 접근할 수 있다. 오*에서 데이터 사전과 관련된 뷰는 세 가지 영역이 있으며, 이때 오브젝트에 접근할 수 있는 사용자 권한에 따라 다음과 같 이 구분된다.

오*에서는 이와 같은 영역 지시자 뒤에 오브젝트명을 붙이는 형태로 뷰의 이름이 결정된 다. 여기서 오브젝트는 테이블, 뷰, 인덱스와 같은 것을 의미하므로 다음과 같은 영역별 조회문 구성이 가능하다.

2. M*-SQL에서 데이터 사전 검색

데이터 사전은 테이블 형태로 구성되어 있다. 따라서 테이블의 내용을 검색하기 위해서는 해당 테이블의 위치와 이름을 정확히 알고 있어야 한다. 여기서 위치는 데이터베이스를 의미한다. M*-SQL에서 데이터 사전은 Information_schema라는 데이터베이스 안에 존재한다. 따라서 이 안의 테이블을 조회하기 위해서는, 우선 해당 데이터베이스로 이동해서 테이블 목록을 요청해야 한다.

테이블 목록으로 데이터 사전을 구성하는 테이블이름을 확인하고, SELECT 문을 통해 해 당 테이블의 내용을 조회할 수 있다.

SQL 개요

이제까지 기본적인 SQL 활용 방법에 대해 알아보았다. DDL, DML DCL 각 용도에 따라 SQL 명령문의 사용법을 살펴보며, 데이터베이스 제품에 따라 구체적인 SQL 사용 방법에 차이가 있는 것을 역시 살펴보았다. 왜 이러한 현상이 발생하는지에 대한 이해를 위해 SQL에 대해 알아볼 필요가 있다. 또한 SQL 자체에 대한 이해는 향후 학습 과정에 도움이 되기에 이러한 과정은 반드시 필요하다.

1. SQL을 바라보는 관점

SQL을 바라보는 관점마다 SQL에 대한 다양한 정의가 가능하다. 우선 SQL을 바라보는 관 점에 대해 알아본다.

다양한 관점 가운데 위 그림과 같은 3가지 관점에 따른 정의 내용은 다음과 같다.

2. 용어 관점에서의 SQL

SQL은 Structured Query Language를 의미하며, 우리말로 옮기면 `구조적 질의어'가 된다, 구조적 질의어에 대한 다음과 같은 주장을 살펴보자.

즉, 구조적 질의어라는 말은 `非절차적 질의어'라는 것으로, 절차적으로 세세하게 묘사하 는 것이 아니라는 뜻이다. 그 어떤 절차가 아닌 수학식과 같은 하나의 표현으로 목적하는 대상을 표현하는 수단으로 이해하는 것이 적절하다.

3. 표준 관점에서의 SQL

SQL은 데이터베이스를 조작하는 언어의 표준이다. SQL에 대한 표준은 ANSI(America National Standard Institute)라는 기관이 최초로 만들었으며, 이후 국제 표준화 기구(ISO: International Standard Organization)를 통해 관리되고 있다. 지속적으로 SQL 표준은 갱신되고 있으며 다음과 같은 중요 표준 과정을 가지고 있다.

표준 SQL:2003 이후에도 SQL2006, SQL2008 및 SQL2011 등이 추가되었으나, 현재 대부분 의 DBMS 제품은 SQL:2003 표준을 지원하고 있다.

SQL2 표준을 구현한 제품은 관계형 데 이터베이스를 지원한다. 이러한 관점에서 SQL:2003 구현 제품은 SQL2 이후에 추가된 객 체 지향과 XML 기능을 지원하고 있으므로 `객체 관계형 데이터베이스' 제품이라고 한다. 즉, 현존하는 대부분의 DBMS는 객체를 지원하고 있다. 하지만 아직 객체의 사용은 활성 화되지 않은 상태이며, 객체 관계형 데이터베이스를 도입하고 객체를 뺀 관계형 데이터베 이스로 사용하고 있는 것이 지금의 현실이다. 따라서 본 학습모듈, SQL 활용의 내용은 SQL2를 기준으로 한다.

4. 용도 관점에서의 SQL

`SQL은 데이터베이스를 조작하는 언어다.'라고 SQL을 정의할 수 있다. 그렇다면 데이터베 이스와 데이터베이스관리시스템이 무엇인지 알아보도록 하자.

(1) 데이터베이스 개념

데이터베이스는 `연관된 데이터의 모음'이라 이해할 수 있으며, 보다 엄격하게 `데이터 를 일정한 형태로 저장해 놓은 것'을 의미한다. 이러한 데이터 모음을 조작하는 것이 SQL이다. 하지만 SQL이 직접 데이터를 조작하는 것이 아니라, SQL과 데이터베이스의 중간에 데이터베이스관리시스템을 통해 데이터베 이스를 조작하게 된다. 과거에는 데이터베이스 시스템 이전에 파일 시스템을 이용하여 데이터를 관리하였다. 파일 시스템을 통하여 데이터의 공유는 가능하였지만, 동시에 데이터의 입력, 수정 및 삭제와 같은 조작이 불가능하고 동일한 내용이 복사되어 사용, 관리되는 문제를 해결 할 수 없었다. 이와 같은 문제를 해결하기 위하여 파일 관리 시스템이 아닌 파일 시스 템을 개선한 데이터 관점의 데이터베이스관리시스템(DBMS)이 탄생하게 된 것이다.

(2) 데이터베이스 관리시스템

데이터베이스관리시스템은 다음과 같은 관점에서 이해할 수 있다.

이들 관점을 이용하여 DBMS를 정의하면, `조직의 목적을 위해 존재하는 운영 데이터 를 통합 저장하여 공동으로 사용 가능하도록 관리하는 시스템'이라고 할 수 있다.

(3) 데이터베이스 관리시스템 구조

DBMS는 대용량 공유 메모리와 프로세스로 구성된다. DBMS를 구성하는 메모리는 용도 별 공유 영역을 구분하며, 기능별 프로세스가 이들 메모리 영역을 이용하는 구조이다. 공유 메모리 영역이나 프로세스 이름은 제품별 또는 버전별 차이가 있을 수 있지만, 일반적인 구성으로 공유 메모리와 용도별 프로세스로 구성되어 있다는 사실을 알 수 있다. 이와 같이, 메모리와 프로세스로 구성된 DBMS의 모습은 실행 중에 형성되기에 DBMS `인스턴스'라는 용어가 사용된다. 즉, DBMS `인스턴스'는 메모리와 프로세스로 구성되어 있다. DBMS는 디스크에 저장된 데이터를 관리하는 시스템이다. 파일 또는 파일 시스템 자체 는 DBMS에 포함되지 않으나, 이를 관리하는 `저장 데이터 관리자'와 같은 기능을 통해 파일을 관리한다. 일반적인 DBMS의 구조는 다음과 같다.

앞서 SQL은 `데이터베이스를 조작하는 언어'라는 정의와 조작하는 과정에 개입하는 데이터베이스관리시스템에 대해 알아보았다. 다시 이 개념을 통합하여 SQL은 `DBMS 를 이용하여 DB를 조작하기 위한 그리고 언어 형태를 가진 수단이다.'라고 정의할 수 있다.

 

 

 

 

 

 

 

출처 : NCS 학습모듈

'스마트웹 개발 > SQL활용' 카테고리의 다른 글

02.고급 SQL 작성하기  (0) 2021.05.18
01.기본 SQL 작성하기.  (0) 2021.05.11
댓글
© 2018 webstoryboy