1. 데이터베이스 개요
1. 데이터베이스 개요
1. 데이터베이스 개요(23.10.12)
데이터와 정보
- 데이터 : 현실 세계로부터 단순한 관찰이나 측정을 통해서 수집된 사실이나 값
- 정보 : 적절한 의사결정을 위한 지식으로서 유효한 데이터의 해석 또는 데이터간의 관계
- 정보는 데이터를 처리해서 얻어진 결과 $I = P(D)$
- 데이터에서 정보를 추출하는 방법을 데이터처리, 넓은 의미로 정보처리라고 함
데이터베이스 관리 시스템
- DBMS(Database Management System)
- 데이터의 방대한 집합체를 유지 관리하고 이용하는데 도움을 주도록 설계된 소프트웨어
- 데이터의 종속성과 중복성의 문제를 해결하기 위해 제안된 시스템
데이터베이스 관리 시스템의 기능
- 데이터 정의(Data Definition) 기능
- 데이터 모델과 데이터베이스를 물리적 저장 장치에 저장하는데 필요한 명세 포함
- 논리적 구조와 물리적 구조의 매핑을 명세
- 데이터 조작(Data Manipulation) 기능
- 사용자와 데이터베이스 사이의 인터페이스를 위한 수단 제공
- 사용하기 쉽고 자연스러워야 하며, 명확하고 완전해야 함
- 공용이라는 이유로 접근이나 처리가 비효율적 이어서는 안됨
- 데이터 제어(Data Control) 기능
- 데이터의 갱신, 삽입, 삭제 작업이 정확히 실행되며, 무결성 제공
- 보안과 권한 검사
- 동시 사용자에 대한 병행성 제어
데이터 모델
- 개념적 데이터 모델
- 논리적 데이터 모델
- 물리적 데이터 모델
데이터 독립성
- 외부 스키마
- 각각의 사용자 수준에서 데이터 접근을 개별화하기 위한 권한을 부여
- 모든 데이터를 저장하는 테이블은 하나이기 때문에 개념 스키마와 물리적 스키마도 하나이지만, 같은 물리적 스키마를 기반으로 여러 개의 외부 스키마를 만들고 서로 다른 접근 권한을 설정하여 각 사용자 또는 업무 그룹별 업무 형태에 맞는 데이터만을 사용할 수 있도록 하는 스키마
- 논리적 스키마
개념 스키마(Conceptual Schema)
는논리적 스키마(Logical Scheme)
라고도 부르며, 해당 데이터베이스 관리 시스템의 데이터 모델이 따라 저장될 데이터를 기술하는 스키마
- 물리적 스키마
- 물리적 스키마는 사용할 파일 조직과 검색을 위한 인덱스 등의 보조 데이터 구조등 상세한 저장 내역을 담고 있다.
- 물리적 스키마는 개념 스키마에 명세되어 있는 테이블들이 디스크에 어떻게 실제로 저장될 지를 요약
- 각 추상화 단계 별로 응용 프로그램의 데이터 구성 및 저장 방식으로부터 격리
- 논리적 데이터 독립성(Logical Data Independency)
- 데이터의 논리적인 구조, 저장 방식/공간의 변화로부터 보호
- 물리적 데이터 독립성(Physical Data Independency)
- 디스크 파일 내부에서 데이터가 실제로 어떻게 배치되어 있는지 등의 정보를 감춤
데이터 베이스 질의
- 데이터베이스로부터 정보를 얻는 방식의 쉬움 정도에 따라 데이터베이스의 가치가 좌우됨
- 데이터를 얻기 위한 일반적인 질문(Query)의 전산학적인 구현
- DBMS는 일반적으로 질의(Query)를 만들 수 있는 질의어(Query Language)를 제공
- 데이터 조작어(DML: Data Manipulation Language)
- 데이터 정의어(DDL: Data Definition Language)
- 데이터 제어어(DCL: Data Control Language)
데이터 베이스 병행성
- 데이터베이스에는 수 많은 사용자가 동일한 데이터에 동시 접근함
- 각 사용자의 요구사항을 상호 독립적으로 수행
- DBMS는 다른 사용자가 동일한 데이터에 접근하고 있다는 것을 사용자 관점에서 무시해도 되도록 동작
- 시스템의 장애 순간에도 일관성을 유지할 수 있도록 동작
- 장애 발생 순간에 동작에 참여중이던 데이터에 대한 일관성 유지
- 시스템이 재시동된 후 모든 데이터를 일관성 있는 상태로 유지해야 함
Transaction
- 분해가 불가능한 프로그램의 실행단위
- ACID
Atomicity (원자성)
관련 작업이 전부 처리되거나 아예 처리되지 않아야 함
Consistency(일관성)
트랜잭션 이전과 이후에 데이터베이스의 상태는 이전과 같이 유효해야 함
Isolation(격리성)
모든 트랜잭션은 다른 트랜잭션들로부터 독립되어 동작해야 함
Durability(지속성)
트랜잭션이 성공적으로 수행되었다면 완료의 효과는 지속되어야 함
- 원자성과 지속성을 위해 데이터베이스 로그(Log)와 로그 우선 기록(Write Log Ahead)을 사용
- 격리성을 위해 잠금 규약(Locking Protocol)을 사용
- 일관성을 위해 제약 조건(Constraint)을 사용
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.