[DB]데이터베이스의 이해
📚데이터베이스의 탄생
데이터베이스는 네크워크, 정보 수집 및 분석 기술 등의 발전으로 다뤄야할 데이터량이 많아지면서 데이터를 편리하고 효과적으로 저장하고 조작할 수 있도록 만들어진 기술입니다.
📚데이터베이스 시스템의 개요
데이터베이스 관리 시스템(DBMS)은 한 조직의 연관된 데이터의 집합을 다수의 사용자가 공용으로 사용하기 위해 통합 저장하는 소프트웨어 패키지입니다.
DBMS와 함께 사용자에게 서비스 형태로 제공되는 애플리케이션이 포함된 시스템을 데이터베이스 시스템이라고 합니다.
📚데이터베이스 관리 시스템의 목적
DBMS가 사용되기 전에 대부분의 시스템은 파일 처리 시스템을 기반으로 운용되었습니다. 하지만 파일 처리 시스템은 데이터의 종속, 데이터의 중복, 데이터의 무결성 훼손 및 동시 접근 이상과 같은 문제점들을 가지고 있습니다.
📄데이터의 종속
데이터가 특정 프로그램에 종속된다면 데이터 구조가 변경될 때 프로그램의 구조도 변경되어야 하므로 프로그램 유지보수에 많은 비용이 소요됩니다. DBMS는 데이터를 프로그램과 완전히 독립시켜 종속으로 인한 문제를 해결합니다.
📄데이터의 독립성
- 논리적 데이터 독립성
- 물리적 데이터 독립성
📄데이터의 중복
하나의 사항에 대한 데이터가 여러 파일에 중복되어 저장되는 문제를 데이터 중복성이라고 합니다.
- 일관성 문제
- 보안성 문제
- 경제성 문제
📄데이터의 무결성 훼손
데이터베이스에서 관리되는 데이터의 정확성을 보장하는 것을 데이터 무결성이라고 합니다.
📄동시 접근 이상
한 데이터에 대한 수정이 동시에 발생한 경우 비정상적인 데이터 수정이 일어날 수 있습니다.
📚데이터베이스 관리 시스템의 특징
DBMS는 파일 처리 시스템의 데이터 종속, 무결성 훼손 및 동시 접근 이상 등의 문제가 발생하지 않도록 새로운 기능과 장치를 제공합니다.
📄프로그램과 데이터의 독립성 및 추상화
DBMS에서는 데이터 파일의 구조가 프로그램으로부터 분리되어 시스템 카탈로그에서 별도 관리됩니다.
📄자기 기술성
DBMS는 데이터 자체뿐만 아니라 데이터에 대한 정의나 의미까지 관리합니다.
📄다중 뷰
DBMS는 사용자의 역할과 권한에 맞는 데이터에 접근할 수 있도록 데이터베이스에 대해 필요한 부분만을 추출해서 제공할 수 있는 뷰기능을 지원합니다.
📄다수 사용자 요청 처리
DBMS에는 다수 사용자가 동일한 데이터를 동시에 접근 및 변경하는 경우에도 문제가 발생하지 않도록 트랜잭션과 동시성 제어 기법이라는 기능이 내장되어 있습니다.
📚데이터베이스 관리 시스템의 구조
📄데이터 추상화
- 내부 단계: 가장 낮은 추상화 단계, 내부 스키마에 의해 기술. 원시 수준의 데이터 정의
- 개념 단계: 전체 구조를 추상화하는 단계, 개념 스키마를 통해 기술
- 외부 단계: 추상화의 최상위 단계, 외부스키마, 뷰에 의해 기술
📄단계 간 사상
- 외부-개념 사상: 논리적 데이터 독립성 확보
- 개념-내부 사상: 물리적 데이터 독립성 확보
📚데이터베이스 언어
📄데이터 정의 언어(DDL)
데이터베이스 스키마와 데이터에 대한 부가적인 특징을 표현합니다.
📄데이터 조작 언어(DML)
DDL에 의해 구조화된 데이터에 사용자가 데이터를 삽입, 수정, 삭제, 검색할 수 있도록 지원하는 언어입니다.
- 절차적 DML: 사용자가 필요한 데이터를 어떻게 구할 것인지를 구체적으로 명시하는 유형.
- 비절차적 또는 선언적 DML: 사용자가 요구하는 데이터가 무엇인지만 기술하는 유형.
📚데이터베이스 시스템 아키텍처
📄중앙집중식 데이터베이스 관리 시스템 구조
메인프레임 컴퓨터 하나로 DBMS의 모든 기능, 응용프로그램, 사용자 인터페이스 등을 모두 처리하는 구조입니다. 중앙 서버에 많은 부하가 집중되어 병목현상으로 인한 성능저하 및 오류 발생시 전체 시스템이 중단되는 문제가 있습니다.
📄클라이언트-서버 구조
중앙집중식의 문제를 해결하기 위해 클라이언트-서버 환경이 발전하였습니다.
- 2계층 클라이언트-서버 구조
단순함과 기존 시스템과의 하위 호환성이 장점입니다. 클라이언트 쪽으로 사용자 인터페이스와 프로그램이 이동하였고, 서버 쪽으로 DBMS가 이동하였습니다.
- 3계층 클라이언트-서버 구조
클라이언트와 데이터베이스 서버 사이에 애플리케이션 서버를 추가하였습니다. 이 서버는 데이터베이스 서버에 저장된 데이터에 접근하는데 사용되는 비즈니스 규칙들을 저장하는 역할을 수행합니다.
📚데이터베이스 사용자 및 관리자
📄데이터베이스 사용자
데이터를 사용 및 처리하고자 하는 사람들입니다.
- 일반 사용자
- 애플리케이션 프로그래머
- 전문 사용자
- 특수 사용자
📄데이터베이스 관리자
데이터베이스와 DBMS, 관련 소프트웨어를 관리하고 감독하는 사람들입니다. 데이터베이스 관리자(DBA)의 임무는 아래와 같습니다.
- 설계
- 관리
- 운용 및 통제
- 성능 측정
Leave a comment