본문 바로가기
경주사랑컴퓨터학원/데이터베이스

데이터베이스 언어(정의어, 조작어, 제어어)-경주시데이터베이스교실

by 경주사랑신문 2023. 2. 14.

데이터베이스를 정의하고 접근하기 위해서는 시스템과의 통신 수단이 필요한데 이것이 데이터 언어(data language)이다. 데이터베이스 관리 시스템을 통해 사용할 수 있는 데이터 언어는 데이터 정의어, 데이터 조작어, 데이터 제어어로 나눌 수 있다.

경주사랑데이터베이스교실

 

1. 데이터 정의어

데이터 정의어(DDL-Data Description Language)는 데이터베이스를 정의하거나 그 정의를 수정할 목적으로 사용하는 언어이다. 기본적으로 데이터베이스 관리자나 설계자가 데이터베이스 스키마를 컴퓨터가 이해할 수 있도록 기술하는데 사용된다.이렇게 기술된 데이터베이스 스키마는 DDl 컴파일러가 컴파일하여 데이터 사전(data dictioary)이나 시스템 카탈로그에 저장하여 놓고 필요한 경우에 시스템이 활용하도록 한다. 데이터베이스를 3단계로 엄격히 구분하는 시스템에서는 당연히 각 단계마다 정의어가 있으나 3단계로 엄격히게 구분하지 않는 시스템에서는 이 데이터 정의어를 외부스키마와 개념 스키마를 나타내는데 사용한다. 여기에는 각 스키마에 사용되는 개체의 정의, 속성, 개체간의 관계, 제약 조건, 스키마 간의 사상(mapping)의 명세도 포함된다.

2. 데이터 조작어

데이터 조작어(DML Data Manipulation Language)는 사용자가 데이터를 처리 할 수 있게 하는 도구로서 사용자와 데이터베이스 관리 시스템간의 인터페이스를 제공한다. 데이터의 삽입, 삭제, 변경, 검색 등의 기본적인 데이터 처리를 할 수 있다.

가. 절차적 데이터 조작어
절차적 데이터 조작어(procedural DML)는 사용자가 무슨 데이터를 언하며 어떻게 접근해야 하는지를 나타내야 되는 초급 데이터 언어이다. 이런 유형의 조작어는 데이터베이스로 부터 한 번에 하나의 레코드를 검색하여 호스트 언어와 함께 처리하는 특성을 가지고 있다. 따라서 이것은 독자적으로 사용하지 못하고 호스트 프로그램밍 언어로 작성된 응용 프로그램 속에 삽입(embedded)되어 사용된다. 따라서 이와 같은 언어는 비전문가가 사용하기 매우 어렵다.

나. 비절차적 데이터 조작어
비절차적 데이터 조작어(nonprocedual DML)는 사용자가 무슨 데이터를 원하는지만 나타내고 어떻게 접근할 것인가는 나타낼 필요 없는 고급데이터 언어이다.

이런 언어는 데이터베이스로 부터 한번에 여러 개의 레코드를 검색하여 처리하는 특성을 가지고 있다. 우을러 어떻게 그 데이터를 검색하는지는 데이터 베이스 관리 시스템에게 맡김으로써 독자적으로 사용할 수 있다. 보통 일반 사용자가 터미널을 통해 대화식으로 사용하는데 필요에 따라 호스트 프로그램 속에 삽입하여 사용할 수 있다. 특별히 독자적이고 상호작용 형테로 터미널에서 많이 사용되고 있는 고급 명령어 형태의 독립된 조작어를 질의어(query language)라고 한다. 주로 데이터 검색만을 뜻하지만 검색은 물론 삽입, 삭제, 변경뿐만 아니라 데이터 정의 등 광범위한 기능을 가진 독립된 언어의 의미로 사용되고 있다.

3. 데이터 제어어

여러 사용자가 데이터베이스를 올바르게 공유하고 정확하게 유지하기 위해서는 내부적으로 여러 가지 규정이나 기법을 정해 놓고 이것을 통해 제어 해야만 한다. 이 데이터 제어를 정의하고 기술하는 언어응 데이터 제어어(DCL Data Control Language)라 한다.

주로 데이터베이스 관리자가 사용하며 데이터 보안(security)이나 무결성(integrity), 데이터 회복(recovery), 병행수행(concurrency) 등의 제어가 가능한 명령어를 포함한다. 이 언어는 통상 데이터 정의어의 일부로 포함되어 왔으나 데이터 제어 기능이 매우 중요해지고 제어 기법이 개발됨에 따라 별도의 언어로 구분되게 되었다.

데이터 언어가 이와 같이 정의어, 조작어, 제어어로 나누어지지만 현실적으로는 이들이 별도의 언어로 존재하지 않고 하나의 통합된 언어 속에서 기능적으로만 구별되어 있다. 따라서 데이터베이스 언언의 각 명령어는 사용될 목적과 기능에 따라서 선별하여 사용할 수 밖에 없다.

경주사랑정보처리학원