Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

보근은 참고 있다

데이터베이스란 본문

Database

데이터베이스란

보근 2020. 10. 29. 19:46

 

 

 

 

 

데이터베이스

 

 데이터베이스(Database, DB)란, 여러 사람이 공유하여 사용할 목적으로 체계화하여 통합, 관리하는 데이터의 집합이다. 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.

 

 데이터베이스의 기본 기능으로 4가지가 있다.

  1. 데이터의 검색과 갱신
  2. 동시성 제어
  3. 장애 대응
  4. 보안

 

 

 

 

 

1. 데이터의 검색과 갱신

 

 DB는 검색이 가능해야 한다. 검색은 원하는 데이터를 찾는 것이다. 예를 들어, DB에게 이름에 "박"을 포함하고 있는 사람들을 검색하면, DB내의 데이터 중 "박"으로 시작하는 이름을 가진 데이터들을 얻을 수 있다.

 

 DB의 갱신이 가능해야 한다. 갱신은 넓은 의미로 등록, 수정, 제거이다. 예를 들어, 주소록에 새로 사귄 김보근 씨를 추가할 수 있어야 하고, 최보근 씨가 전화번호를 바꾸셨다면 최보근 씨의 데이터에서 전화번호를 새 것으로 변경해야 하고, 싸워서 헤어진 정보근 씨의 데이터를 지울 수 있어야 한다. 

 

 DB를 조작할 때 중요한 것은 데이터를 어떤 포맷으로 관리하느냐, 검색이나 갱신에서 효율적인 것인가이다. 예를 들어, 주소록에 동명이인 이보근 씨가 두 명 이상이 등록되어 있다고 할 때, 그 둘은 같은 인물이 아니므로 다른 인물이란 것을 알도록 관리해야 합니다.

 

 DB의 검색이나 갱신에 중요한 문제로 성능이 있다. 성능은 얼마나 빠르고 정확하게 처리 가능한가이다. 예를 들어, 수백만 명의 정보를 관리해야하는 기업이 있다고 할 때, 원활한 작업을 위해 DB는 작업에 필요한 정보를 빠르고 정확하게 넘겨주어야 한다.

 

 

 

 

 

 

 

2. 동시성 제어

 

 DB가 개인이 혼자 관리하는 주소록이라면, DB의 검색, 갱신 등도 혼자이다. 하지만, 비즈니스나 공공목적으로 이용되는 DB는 불특정다수의 사용자가 동시에 접근하는 것이 보통이다. 이때 문제되는 것은 갱신의 무결성을 어느 정도로 보장하느냐이다.

 

 간단하게 예를 들어, 사용자가 2명인 어떤 DB가 있다고 한다. 사용자 A와 사용자 B가 동시에 데이터 C를 갱신하려고 한다면 DB는 대략 다음 중 한 가지의 방식으로 동작한다. 여기선 근소하게 A가 먼저 C에 접근했다고 한다.

 

  1. 최초로 파일을 연 사람이 파일을 열고 있을 때 그 다음으로 파일을 열려고 한 사람은 파일을 열 수가 없다.
  2. 최초로 파일을 연 사람이 파일을 열고 있을 때 그 다음으로 파일을 열려고 한 사람에게는 파일이 읽기 전용으로밖에 열리지 않는다.
  3. 어떤 사람도 문제없이 파일을 여는 것이 가능하고 나중에 수행되는 쪽의 갱신이 반영된다.

 B의 입장에서 볼 때, 1번이 가장 행위 제한이 심하고, 3번이 가장 느슨하다고 볼 수 있다. B는 1번일 때 아무 것도 할 수 없지만, 3번일 때는 A가 C를 사용하고 있는 것조차 인지하지 못하고 데이터를 사용할 수 있다. 물론 A의 입장에선 정반대이다.

 이처럼 어느 사용자에게는 괜찮은 갱신 제어가 다른 사용자에게는 불편한 상황을 트레이드오프 관계라고 한다. 이렇게 복수 사용자의 갱신을 조절하기 위한 기능을 동시성 제어 또는 배타 제어라고 한다.

 

 

 

 

 

 

 

3. 장애 대응

 

 DB는 장애에 강해야 한다. 장애에 강하다는 것은 좀처럼 부숴지기 어렵고 부숴지더라도 복원할 수 있다는 것이다. 데이터베이스는 중요한 정보를 모으는 시스템의 심장이라고 할 수 있으며, 여기에 저장된 데이터가 장애로 사라져 버린다면 소프트웨어 버그가 없더라고 시스템을 정지해야 한다.

 

 데이터 소실 문제를 막기위한 대책으로 데이터 다중화 데이터 백업 등이 있다.

  • 데이터 다중화란, 데이터를 한 곳이 아니라 복수의 장소에 분산하여 유지하는 것으로, 데이터가 완전하게 소실되는 것을 막는 예방책이다.
  • 데이터 백업이란, 데이터 소실이 발생했을 때 데이터를 복원하는 방법으로 '사후대책'이라고 할 수 있다.

 데이터베이스 장애 대책이 중요하다는 것은 전문 엔지니어라면 누구나 아는 사실이지만, 데이터 소실 사건은 끊이지가 않는다. 그 이유는 엔지니어들은 항상 서비스 레벨과 비용이란 트레이드오프의 딜레마로 고민하기 때문이다.

 

 

 

 

 

 

 

4. 보안

 

 DB의 마지막 기본 기능은 보안이다. 보안이란 데이터베이스에 보존된 데이터를 어떻게 숨길 것인가이다. DB와 우리 생활과의 관계는 한 방향으로 더욱 더 강해지고 있다. 그러나 사용자들은 이런 DB의 존재를 인식하지 못한다. 그 이유는 실제로 시스템이 DB를 가능한 보이지 않게 설계하고 있기 때문이다. 이런 설계에는 크게 2가지 이유가 있다.

 

  • 사용자는 DB를 의식할 필요가 없다.
  • 데이터베이스는 기밀성이 높다.

 사용자는 DB를 의식할 필요가 없다. 사용자에게 가까운 기술은 대다수가 클라이언트 기술 중심이라 서버의 기술은 그다지 의식되지 않는다. 반대로 서버는 클라이언트의 요구를 받아 다양한 처리를 해서 응답하기만 하면 된다. 사용자로서 시스템을 사용하면서 직접 조작하는 것은 클라이언트 뿐이고, DB나 서버를 직접 조작하는 일은 없다. 만약 있다면 그것이 바로 보안 구멍이라는 시스템의 결함이라고 할 수 있다.

 

 데이터베이스는 기밀성이 높다. DB의 데이터는 일반에 공개할 수 없는 내용이 상당수 있다는 것이 이유이다. 예를 들어, 금융기관의 온라인 뱅킹 시스템이나 온라인 상거래 사이트의 쇼핑 등의 시스템에는 계좌 번호, 신용카드 번호, 주민 번호 등 알려지면 악용될 우려가 있는 정보들을 등록하고 사용하는 경우가 대다수이다. 바로 이런 데이터들이 저장되는 곳이 DB인데, 이런 DB에 사용자들이 자유롭게 접근할 수 있다면 정보 유출의 위험이 매우 커지게 된다.

 

 

 

 

 

 

 

데이터베이의 종류

 

  • 계층형 데이터베이스
  • 관계형 데이터베이스
  • 객체지향 데이터베이스
  • XML 데이터베이스
  • NoSql 데이터베이스

 

 

 

 

 

 

 

참고 : ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4

'Database' 카테고리의 다른 글

DDL, DML, DCL 이란  (0) 2020.10.30
관계형 데이터베이스, SQL이란  (0) 2020.10.29
Comments