데이터 베이스의 기본 기능
데이터의 검색과 갱신
1.
넓은 의미에서의 갱신은 등록, 수정, 제거
2.
데이터 포맷에 유의
a.
검색이나 갱신에 있어 효율적인 포맷으로 관리
b.
고유성의 원칙을 지켜야한다. (2명의 동명이인이 다른 사람으로)
3.
처리 성능에 유의
a.
방대한 데이터를 읽어 검색 요건에 해당하는 데이터만을 추리는 작업은 시간이 오래 걸림
b.
이를 어떻게 향상시킬지
동시성 제어
데이터 베이스는 동시에 복수의 사용자로부터 검색이나 갱신처리를 받음
갱신의 무결성을 어느 정도로 보장하는가
•
데이터 베이스를 복수의 사용자가 동시에 공유하고 이용하려고 한다면 같은 데이터를 갱신하는 상황에 대한 제어가 필요.
•
트레이드 오프 관계
◦
어느 사용자에게는 괜찮은 갱신 제어 - 다른 사용자에게는 불편한 상황
◦
복수의 사용자 갱신을 조절하기 위한 기능 = 동시성 제어 or 베타 제어
•
Dirty Write
◦
어떤 사람도 문제 없이 파일을 여는 것이 가능
◦
나중에 수행된 쪽의 갱신이 바로 반영되는 경우
◦
일반적으로 데이터 무결성 관점에서 기피
장애 대응
•
좀처럼 부서지기 어렵고 부서졌다 하더라도 복원할 수 있는 것
•
데이터 소실 문제의 대책
1.
데이터 다중화 : 데이터를 한 곳이 아니라 복수의 장소에 분산해서 유지하는 것 ⇒ 예방책
2.
백업 : 데이터 소실 이후, 데이터 복원 ⇒ 사후 대책
•
데이터 소실이 문제가 되지만, 왜 항상 이러한 문제가 일어날까?
◦
엔지니어가 항상 서비스 레벨과 비용이란 트레이드 오프의 딜레마로 고민하기 때문
보안
•
데이터 베이스에 보존된 데이터를 어떻게 숨길 것인가?
데이터 베이스는 사용자로부터 가능한 보이지 않게 설계됨
1.
사용자는 서버를 의식할 필요 X
•
사용자로서 시스템을 사용하면 직접 조작하는 것은 어디까지나 클라이언트 뿐이고, 서버에 배치된 데이터 베이스 등의 소프트웨어를 직접 조작할 일은 없다.
2.
데이터 베이스는 기밀성이 높다
•
일반에 공개할 수 없는 데이터를 가지고 있을 확률이 높기 때문
•
보안의 강도는 편의성과 트레이드 오프 관계를 만든다
데이터 베이스의 종류
1.
계층형 데이터베이스
•
데이터를 계층구조로 관리
2.
관계형 데이터베이스
•
2차원 표 형식으로 데이터를 관리
3.
객체지향 데이터 베이스와 XML 데이터 베이스
•
객체와 XML 형식으로 데이터를 관리하는 데이터베이스
4.
NoSQL 데이터 베이스
•
관계형 데이터베이스의 기능 일부를 버려서 처리 성능을 높임
•
대량의 데이터를 고속으로 처리