데이터베이스 사용자
DB를 이용하기 위해 접근하는 모든 사람을 의미
이용목적에 따라 크게 DB관리자, 최종 사용자, 응용 프로그래머로 나눈다.
데이터베이스 관리자(DBA)
데이터베이스 시스템을 운영, 관리
주로 데이터 정의어와 데이터 제어어를 이용해 DB에 접근한다. 큰 조직에서는 DB의 설계 업무 만 담당하는 데이터베이스 설계자를 따로 두기도 한다.
주요 업무
1. 데이터베이스 구성 요소 선정
- 사용자의 요구사항을 분석하여 DB를 구성할 데이터를 결정 = 우리 조직에 필요한 데이터는?
2. 데이터베이스 스키마 정의 물리적 저장 구조와 접근 방법 결정
- DB를 설계하고 어떤 시스템으로 접근할지를 다양하게 선택할 수 있다.
- 빅쿼리, AWS, snowflake, 하둡 등 조직 차원에서 비용까지 고려하여 결정한다.
3. 무결성 유지를 위한 제약조건 정의
- 현실 세계의 실제 데이터와 일치하는 결함이 없는 데이터만 DB에 저장할 수 있도록 필요한 규칙 정의
4. 보안 및 접근 권한 정책 결정
- 각 사용자들에게 적절한 접근 권한을 부여하고, 불법적인 접근을 방지
5. 백업 및 회복 기법 정의
- DB를 백업하거나 손상된 DB를 일관된 상태로 복구하는 방법 정의
6. 시스템 데이터베이스 관리
- 데이터 사전과 같은 시스템 데이터베이스를 관리
7. 시스템 성능 감시 및 성능 분석
- 시스템 성능을 저해할 Bottleneck 등이 발생하지 않는지 확인
- 시스템 자원의 활용도 분석 등을 통해 시스템의 성능을 감시
8. 데이터베이스 재구성
- 사용자의 요구 사항이나 사용 형태가 달라지면 변화된 내용에 맞게 재구성하여 사용자의 만족도를 높여야 함
최종 사용자
응용 프로그래머가 작성한 응용 프로그램을 이용해 DB에 접근할 수 있다. 데이터 분석가 또는 다 른 부서 실무진들이 주를 이룬다. 캐주얼 사용자와 초보 사용자로 구분할 수 있다.
[캐주얼 사용자]
DB에 대한 이론적 지식이 있으며,
주로 데이터 조작어를 이용해 원하는 데이터와 데이터에 대한 처리를 DBMS에 직접 설명
[초보 사용자]
DB를 초보 수준으로 이용할 수 있어,
데이터 조작어로 자신의 요구를 직접 표현하기보다는 메뉴나 GUI형태의 응용 프로그램을 통해 DB를 사용한다.
응용 프로그래머
C언어, Java 등과 같은 프로그래밍 언어로 응용 프로그램을 작성할 때 DB에 접근하는 데이터 조작어를 삽입하는 사용자
사용자를 대신해 DB를 구축하고 활용 및 관리하는 DBMS에 부탁할 때 어떤 언어로 부탁할까?
데이터 언어
데이터 언어는 사용자가 DB를 구축하고 이에 접근하기 위해 DBMS와 통신하는 수단이다.
데이터 정의어(DDL)
DB를 정의하는 언어이며, 데이터를 생성, 수정, 삭제하는 등의 데이터의 절체의 골격을 결정하는 역할을 하는 언어
- DDL로 정의된 스키마는 데이터사전에 저장되고, 삭제나 수정이 발생하면 내용도 데이터사전에 반영된다.
- 데이터사전에 저장된 스키마 정보는 사용자는 DBMS가 필요할 때 참고할 수 있다.
→ 스키마 구조, 제약조건 변경과 삭제
데이터 조작어(DML)
사용자가 데이터의 삽입, 삭제, 수정, 검색 등의 처리를 DBMS에 요구하기 위해 사용하는 데이터 언어
- DDL를 이용해 스키마를 정의하면 스키마에 따라 조직에 필요한 인스턴스가 저장됨
- 사용자가 실제 데이터 값을 활용하기 위해 사용하는 언어
→ 내가 원하는 데이터를 추출할 경우에 많이 사용
절차적 데이터 조작어 | 비절차적 데이터 조작어 |
사용자가 어떤 데이터를 원하고 해당데이터를 얻으려면 어떻게 처리해야 하는지 구체적으로 설명 | 사용자가 어떤 데이터를 원하는지만 설명하고, 해당 데이터를 얻으려면 어떻게 처리해야 하는지는 DBMS에 맡김 |
데이터 제어어(DCL)
DB에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 문제없이 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의하는 데 사용하는 데이터 언어
대부분 사람들은 제어어에 접근할 수 없다.
**DCL은 과거 DDL로 분류되었으나 DB 제어기능이 점차 중요해짐에 따라 독립되었음.
Transaction Control Language (TCL)
트랜잭션을 제어하는 명령어로, 트랜잭션은 DB의 논리적 연산단위를 말한다. 즉, 하나의 트랜잭션 에는 하나 이상의 SQL문장이 포함되며 분할할 수 없는 최소의 단위이다.
DBMS의 구성
컴파일러란 번역기의 개념으로 이해하면 된다. 즉, 특정 프로그래밍 언어를 다른 프로그래밍언어 로 바꾸어 주는 것
DDL 컴파일러
DDL로 작성된 스키마의 정의를 해석한다. 그리고 저장 데이터 관리자의 도움을 받아 새로운 DB 를 구축하고, 스키마의 정의를 데이터 사전에 저장한다. DDL로 작성된 기존 스키마의 삭제나 수정 요청도 처리하여, 변경된 냉용을 데이터 사전에 적용한다.
DML 프리 컴파일러
응용 프로그램에 삽입된 DML을 추출하여 DML컴파일러에 전달한다. 단, DML과 관련 없는 나머지 코드들은 해당 언어의 컴파일러에 보내진다.
DML 컴파일러
DML로 작성된 데이터의 처리(삽입, 삭제, 수정, 검색) 요구를 분석하여 런타임 데이터베이스 처리 기가 이해할 수 있도록 해석한다.
트랜잭션 관리자
DB에 접근하는 과정에서 사용자의 접근 권한이 유효한지를 검사하고, DB 무결성을 유지하기 위한 제약조건 위반 여부를 확인하고, 추가로 회복이나 병행 수행과 관련된 작업도 담당한다.
데이터 모델링
현실 세계에 존재하는 데이터를 컴퓨터 세계의 DB로 옮기는 변환 과정
데이터 모델링이 중요한 이유는?
데이터 모델링은 데이터를 이해하고 이 데이터를 저장 및 관리하기 위한 올바른 기술 선택을 할 수 있는 기회를 제공한다. 예를 들어, 건축가가 집을 짓기 전에 청사진을 설계하는 것과 같은 방 식으로, 비즈니스 이해관계자는 조직을 위한 데이터베이스 솔루션을 엔지니어링하기 전에 데이터 모델을 설계한다.
데이터 모델링의 장점
• 데이터베이스 소프트웨어 개발 오류 감소
• 데이터베이스 설계 및 생성 속도와 효율성 촉진
• 조직 전체에서 데이터 문서화 및 시스템 설계의 일관성 조성
• 데이터 엔지니어와 비즈니스 인텔리전스 팀 간의 커뮤니케이션 촉진
데이터 모델
데이터 모델링의 결과물을 표현하는 도구로 데이터 구조, 연산, 제약조건으로 구성된다.
개념적 데이터 모델
사람의 머리로 이해할 수 있도록 현실 세계를 개념적 데이터 모델링하여 DB의 개념적 구조로 표현하는 도구
현실 세계를 개념 세계로 추상화했을 때 어떤 요소로 이루어져 있는지를 표현하는 개념적 구조
논리적 데이터 모델
개념적 구조를 논리적 데이터 모델링하여 DB의 논리적 구조로 표현하는 도구 데이터를 어떤 모습으로 저장할 것인지를 표현하는 논리적 구조
예시) 아파트 짓는 일
사람들이 원하는 아파트를 건설하려면 먼저 사람들이 원하는 요구사항을 잘 반영할 수 있도록 설 계도부터 꼼꼼히 그린다.
: 개념적 데이터 모델링
☞ 설계도를 그릴 때 사용하는 방법이나 도구 : 개념적 데이터 모델
완성된 설계도를 토대로 건설하기전에 모델하우스를 지어보고 요구 사항이 제대로 반영되었는지 를 확인해야 한다.
: 논리적 데이터 모델링
☞ 모델하우스를 만들 때 사용하는 방법이나 도구 : 논리적 데이터 모델
보통 개념적 데이터 모델링과 논리적 데이터 모델링을 통틀어 DB설계라고 한다. 데이터 모델링 과정을 통해 논리적 구조가 결정되면, 컴퓨터 저장 장치에 실제로 저장되는 형태를 의미하는 물 리적 구조로 변환하는 작업을 통해 현실 세계의 데이터르 컴퓨터 세계의 데이터로 저장한다.
'DataBase > SQL' 카테고리의 다른 글
[SQL] 관계 데이터 모델 (0) | 2023.11.12 |
---|---|
[SQL] MySQL 설치방법 (0) | 2023.10.16 |
[SQL] 데이터베이스 시스템(1) (0) | 2023.09.23 |
[SQL] 데이터베이스 관리 시스템(DBMS) (0) | 2023.09.22 |
[SQL] 데이터베이스(DB)의 기본 개념 (0) | 2023.09.22 |