[교재] 데이터베이스 첫걸음 1장 - 데이터베이스란?
1장 데이터베이스란 - 용도와 역할
- 대량의 데이터를 효율성 높게 보존하여 이용하기 쉽게 애플리케이션을 제작하려면 데이터 관리에 특화된 데이터베이스가 매우 중요
- 문자나 숫자 같은 언어 데이터뿐만 아니라 그림이나 동영상 같은 비언어 데이터도 데이터베이스로 관리
데이터베이스의 기본 기능
데이터의 검색과 갱신
- 검색: 원하는 데이터 찾기. 참조 또는 추출
- 갱신: 새로운 데이터 등록, 기존 데이터 수정, 불필요한 데이터 제거
동시성 제어 (또는 배타 제어)
- 데이터베이스를 복수의 사용자가 동시에 공유하고 이용하려고 한다면 같은 데이터를 갱신하는 상황에 대한 제어 필요
- trade off 관계: 어느 사용자에게는 괜찮은 동시성 제어가 다른 사용자에게는 불편할 수 있음
- 일반적인 동시성 제어
- 최초로 파일을 연 사람이 파일을 열고 있다면 다른 사람은 파일을 열 수 없음
- 최초로 파일을 연 사람이 파일을 열고 있다면 다른 사람은 파일을 읽기 전용으로만 열 수 있음
- Dirty Write
- 모든 사람이 파일을 여는 것이 가능하고 나중에 수행된 쪽의 갱신이 반영됨 -> 데이터 무결성에 문제 발생
장애 대응
- 데이터 다중화: 데이터를 복수의 장소에 분산하여 유지. 데이터가 완전히 소실되는 것을 막는 예방책
- 백업: 데이터 소실 시 데이터 복원법. 사후대책
보안
- 데이터베이스는 사용자로부터 가능한 보이지 않게 설계
- 사용자가 서버의 데이터베이스 등을 조작하는 것은 시스템 결함 -> 보안 구멍
- 데이터베이스의 데이터는 기밀성이 높아 일반에 공개할 수 없는 내용이 상당수 포함됨
데이터베이스의 종류
- 계층형 데이터베이스: 데이터를 계층 구조로 관리
- 관계형 데이터베이스: 데이터를 2차원 표 형식으로 관리
- 객체지향 데이터베이스: 데이터를 객체 형식으로 관리
- XML 데이터베이스: 데이터를 XML 형식으로 관리
- NoSQL 데이터베이스
- NoSQL: Not only SQL
- 관계형 데이터베이스의 일부 기능을 버려 성능(처리속도)를 높임
- 대량의 데이터를 고속으로 처리해야 하는 웹 서비스와 잘 맞음
- 자세한 내용은 NoSQL이란? 글 참고