-
SQL문법기초(4주차)_데이터언어, 데이터모델링카테고리 없음 2024. 4. 9. 22:51
데이터베이스 시스템을 구성하는 중요 요소 중 하나는 사용자이다.
데이터베이스 사용자는 데이터베이스를 이용하기 위해 접근하는 모든 사람을 의미하며 이용 목적에 따라 데이터베이스 관리자, 최종 사용자, 응용 프로그래머로 나눌 수 있다.
데이터베이스 관리자는 데이터베이스 시스템을 운영, 관리한다.
데이터베이스 관리자의 주요 업무는 다음과 같다.
- 데이터 베이스 구성 요소 선정
: 데이터 베이스를 새롭게 설계하는 경우, GA4 바뀌면서 데이터베이스 자체가 새롭게 추가해야 하는 경우, 어떤 개발 영역으로 인해 API호출 시 데이터를 적재하는 곳이 생기거나,, 다른 기업들과 서로 협업하면서 발생할 수 있는 경우 요구 사항에 따른 데이터베이스를 구성할 데이터를 결정한다.
- 데이터베이스 스키마 정의
: 데이터 타입, 인스턴스를 나타내는 컬럼의 영역 등 스키마를 정의해야 한다.
- 물리적 접근 방법 결정
: 결함이 없는 데이터만 데이터베이스에 저장할 수 있도록 필요한 규칙을 정의하고 이 규칙에 따라 제어해 데이터의 정확성과 유효성을 유지한다.
- 백업 및 회복 기법 정의
: 시스템 장애에 대비하여 데이터베이스를 백업하거나, 손상된 데이터베이스를 일관된 상태로 복구하는 방법을 정의한다.
- 시스템 데이터베이스 관리
: 데이터 사전같은 시스템 데이터베이스를 관리한다.
- 시스템 성능 감시 및 성능 분석
: 시스템 성능을 저해하는 병목 현상이 발생하지 않는 지 확인하고, 시스템 자원의 활용도 분석 등을 통해 시스템의 성능을 감시한다.
- 데이터베이스 재구성
: 사용자의 요구 사항이나 사용 형태가 달라지면, 변화된 내용에 맞게 데이터베이스를 재구성한다.
시스템의 전체 성능을 향상시켜야 하거나 시스템 장비가 교체된 경우에도 재구성해야 한다.
응용 프로그래머는 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터베이스에 접근하는 데이터 조작어를 삽입하는 사용자로 최종 사용자는 응용 프로그래머가 작성한 응용 프로그램을 이용해 데이터베이스에 접근할 수 있다.
데이터베이스 관리 시스템에서 데이터베이스를 구축하고 활용 및 관리할 때 사용하는 언어가 바로 데이터 언어이다.
데이터 언어는 데이터베이스 관리 시스템의 정의, 조작, 제어 기능을 이용하기 위한 수단으로 사용 목적에 따라 데이터 정의어, 데이터 조작어, 데이터 제어어로 나눈다.
이는 하나의 데이터 언어를 기능에 따라 내부적으로 나눈 것일 뿐 독립적으로 존재하는 언어들은 아니다.
- 데이터 정의어는 스키마를 정의해 데이터 사전에 저장하고, 삭제나 수정또한 가능하다.
- 데이터 조작어는 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 요구하기 위해 사용되며 데이터 정의어를 통해 저장된 데이터 값(인스턴스)를 활용하기 위해 사용한다.
데이터 조작어는 설명 방식에 따라 절차적 데이터 조작어와 비절차적 데이터 조작어로 나뉜다.
> 절차적 데이터 조작어는 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 할지를 구체적으로 설명한다.
> 비절차적 데이터 조작어는 사용자가 어떤 데이터를 원하는지만 설명한다. 즉, 해당 데이터를 얻으려면 어떻게 처리해야 하는지는 데이터베이스 관리 시스템에게 맡겨버린다.
- 데이터 제어어는 데이터를 여러 사용자가 무결성과 일관성을 유지하며 공유할 수 있도록 내부적으로 필요한 규칙이나 기법을 정의하는데 사용하는 데이터 언어이다.
데이터베이스 관리 시스템은 사용자와 데이터베이스 사이에 위치하며, 기능에 따라 크게 질의 처리기와 저장 데이터 관리자로 구분할 수 있다.
** DDL 컴파일러 : 데이터 정의어로 작성된 스키마의 정의를 해석하고 저장 데이터 관리자의 도움을 받아 새로운 데이터베이스를 구축하고, 스키마의 정의를 데이터 사전에 저장한다.
데이터 정의어로 작성된 기존 스키마의 삭제나 수정 요청도 처리하여, 변경된 내용을 데이터 사전에 적용한다.
** DML 프리 컴파일러 : 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달한다.
단, 데이터 조작어와 관련없는 나머지 코드들은 해당 언어의 컴파일러에 보내진다.
** DML 컴파일러 : 데이터 조작어로 작성된 데이터의 처리(삽입, 삭제, 수정, 검색) 요구를 분석하여 런타임 데이터베이스 처리기가 이해할 수 있도록 해석한다.
** 런타임 데이터베이스 처리기 : 저장 데이터 관리자를 통해 데이터베이스에 접근하여,DML 컴파일러로부터 전달받은 데이터 처리 요구를 데이터베이스에서 실제로 실행한다.
** 트랜잭션 관리자 : 데이터베이스에 접근하는 과정에서 사용자의 접근 권한이 유효한지를 검사하고, 데이터베이스 무결성을 유지하기 위한 제약조건 위반 여부를 확인한다.
회복이나 병행 수행과 관련된 작업도 담당한다.
** 저장 데이터 관리자 : 디스크에 저장된 데이터베이스와 데이터 사전을 관리하고, 여기에 실제로 접근하는 역할을 담당한다.
디스크에 저장된 데이터에 접근하는 것은 운영체제의 기본 기능이므로 저장 데이터 관리자는 운영체제의 도움을 받아 데이터베이스에 대한 접근을 수행한다.
현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정을 데이터 모델링이라 한다.
현실의 코끼리를 데이터베이스에 저장한다고 가정해보자.
만약 코끼리에 대한 데이터를 표 형태로 저장하기로 결정하였다면 사람의 머릿속에 코끼리를 연상시킬 수 있는 중요한 데이터를 찾아 개념 세계로 옮기는 단계와 이를 컴퓨터 세계에 저장하는 구조를 결정해 표현하는 단계로 나누어 진행해야 한다.
데이터 모델은 데이터 모델링의 결과물을 표현하는 도구로, 개념적 데이터 모델과 논리적 데이터모델이 있다.
개념적 데이터 모델은 사람의 머리로 이해할 수 있도록 현실 세계를 개념적 데이터 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구이고 논리적 데이터 모델은 개념적 구조를 논리적 데이터 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구이다.
개념적 데이터 모델에서 데이터 구조는 현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지를 표현하는 개념적 구조이고 논리적 데이터 모델은 데이터 구조느느 어떤 모습으로 저장할 것이지를 표현하는 논리적 구조이다.
데이터 모델링과 데이터 모델의 개념을 아파트를 짓는 일을 통해 좀 더 이해해보자면 사람들이 원하는 아파트를 건설하려면 먼저 사람들이 원하는 요구 사항을 잘 반영할 수 있도록 설계도부터 꼼꼼히 그려야 한다.
그런 다음, 완성된 설계도를 토대로 건설하기 전 모델 하우스를 지어보고 요구 사항이 제대로 반영되었는지를 확인하는데 여기서 사람들의 요구 사항을 반영하여 설계도를 그리는 과정이 개념적 데이터 모델링이고, 설계도를 그릴 때 사용되는 방법이나 도구나 개념적 데이터 모델이다.
보통 개념적 데이터 모델링과 논리적 데이터 모델링을 통틀어 데이터베이스 설계라고 한다.
데이터 모델링을 통해 논리적 구조가 결정되면, 컴퓨터 저장 장치에 실제로 저장되는 형태로 물리적 구조를 변환하는 작업을 통해 저장된다.