[데이터베이스] 2강 데이터베이스의 이해(2)
[출처] 방송통신대학교 데이터베이스 강의 정리
1. 데이터베이스 언어
- DBMS는 사용자가 데이터베이스를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스를 제공
- 역할에 따라 두 종류의 언어로 구분
- 데이터 정의 언어 (DDL)
- 데이터 조작 언어 (DML)
- 데이터 정의 언어
- 데이터베이스 스키마를 정의하기 위한 언어
- 스키마 : 데이터베이스 골격을 정의
- DDL의 요구 조건
- 데이터 모델에 따라 애플리케이션 프로그램이 요구하는 데이터의 논리적 구성이나 특정 규정
- 데이터가 기억장치에 저장되도록 데이터의 물리적 구성을 규정
- 물리적 구성을 논리적 구성으로 변환이 가능하도록 데이터의 물리적 구성과 논리적 구성간의 사상을 규정
- 제약사항 기술
- 도메인 제약사항 : 속성값이 도메인 내의 값이어야 함.
- 참조 무결성 : 한 릴레이션에 나타난 값이 다른 릴레이션의 값으로 정확하게 연결됨을 보장
- 검증 : 데이터베이스가 항상 만족해야 하는 조건
- 권한 : 읽기 권한, 삽입 권한, 수정 권한, 삭제 권한 등
- 데이터 조작 언어
- 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어(검색, 삽입, 삭제, 수정)
- DML의 요구 조건
- 데이터 조작 기능이 쉬워야 함.
- 데이터 조작 기능이 정확하고 완전해야 함.
- 사용자의 요청이 시스템 내부에서 효율적으로 처리
- 종류
- 절차적 DML
- 선언적 DML (SQL등)
2. DBMS의 구성요소
- 질의 처리기 : 사용자 요청을 처리, 해석하는 모듈
- 저장 관리자 : 명령어를 처리하는 모듈 (버퍼관리자, 파일관리자, 권한 및 무결성 관리자, 트랜잭션 관리자)
3. 트랙젝션 관리
- 하나의 논리적인 작업을 처리하기 위한 일련의 데이터베이스 명령의 집합
- ACID 특성
- 데이터베이스의 일관성을 위해 반드시 만족해야 하는 조건
- 원자성(atomity) : 트랜잭션에 포함된 명령어가 일부분만 실행되지 않는다.
- 일관성(consistency) : 트랜잭션 수행이 완료되면 데이터베이스는 일관적인 상태가 된다.
- 고립성(isolation) : 한 트랜잭션의 실행은 다른 트랜잭션으로 부터 방해 받지 않는다.
- 지속성(durability) : 정상적으로 종료된 트랜잭션의 결과는 DBMS의 어떠한 오류에도 보존된다.
4. 데이터베이스 시스템 아키텍쳐
- 중앙집중 방식
- 단일 서버가 다수의 클라이언트 장치를 대신하여 작동
- 중앙 컴퓨터의 과부하로 전체적인 성능 저하
- 분산 시스템 방식
- 클라이언트 장치의 성능 향상으로 자체적인 처리 능력 보유
- 클라이언트-서버 데이터베이스 시스템
- 애플리케이션 프로그램의 부하를 분산
- 소프트웨어의 유지보수 비용을 절감
- 소프트웨어 이식성이 증가
5. 데이터베이스 사용자와 사용자 인터페이스
- 일반 사용자 : 애플리케이션 프로그램을 사용해 데이터베이스 시스템을 접근하는 비전문 사용자
- 애플리케이션 프로그래머 : 애플리케이션 프로그램을 작성하는 컴퓨터 전문가
- 전문 사용자 : 프로그램 없이 SQL, 데이터 분석 소프트웨어를 사용하여 DBMS를 조작하는 사용자
- 특수 사용자 : 전문 사용자 중 특수한 데이터베이스 애플리케이션을 작성하는 사용자
- 데이터베이스 관리자(DBA) : 데이터베이스와 DBMS, 그리고 관련 소프트웨어를 관리, 감독하는 사용자
- 역할
- 여러 사용자(애플리케이션 프로그램)가 필요로 하는 정보에 대한 요건을 결정
- 뷰 제공
- 사용자와 시스템 분석가, 프로그래머 사이의 중재자 역할을 수행
- 데이터 처리의 경제적 효율성을 극대화
- 설계
- 데이터의 논리-물리 사상과 개념-논리 사상을 명시하며 데이터 사전을 구성하고 유지
- 보안, 예비조치, 회복 절차 등을 마련하여 데이터베이스의 무결성을 유지
- 관리
- 사용자 요구에 맞지 않는 부분들을 파악
- 데이터베이스 관리를 위해 데이터 표현 방법과 시스템 문서화에 대한 기준을 결정
- 운용 및 통제
- 변화하는 사용자의 요구에 따른 효율적인 데이터 접근과 처리를 위해 최적의 물리적 저장구조, 저장 매체를 선택하고 성능을 측정
- 데이터베이스에 대한 접근을 통제
- 성능 측정
- 데이터베이스의 효율성과 경제적인 효용성을 높이기 위하여 시스템 내의 자원 사용도, 병목 현상, 장치의 성능 등을 파악하여 시스템 성능을 분석
- 물리적 저장구조를 재구성하여 효율성을 극대화