CS/DataBase

데이터 베이스의 사용 이유와 성능

whyWhale 2021. 4. 28.

데이터와 정보

  • 데이터
    • 단순한 관찰이나 측정 등의 수단을 통해 현실 세계로부터 수집된 사실이나 값.
  • 정보
    • 데이터 중에서도 조직화되고 체계화 된 데이터로서 의사 결정권자에 의미를 제공하는 것.

 

데이터베이스

  • 꼭 기억해야하는 데이터들의 집합.
  • 한 조직의 여러 응용 시스템들이 공유해서 사용할 수 있도록 데이터들을 통합해 체계적으로 조직한 후 저장한 운영 데이터의 집합.

 

데이터베이스 관리 시스템

  • 데이터베이스를 관리해주는 프로그램(시스템)
  • 데이터베이스의 생성, 접근방법, 처리절차,보안,물리적 구조 등을 책임지며 대량의 데이터를 체계적으로 관리하고 검색,활용할 수 있도록 한다.

 

 

※ 컴퓨터에 데이터를 기억하기 위해서는 데이터베이스를 이용하는 것 이외에도 다른 방법이 있습니다.

  • 대표적으로 파일 시스템.
  • (동영상,문서,음악..)다양한 형식의 파일을 통해 다양한 내용의 데이터를 생성,열람,수정,삭제 할 수 있다.
  • 하지만 데이터의 종속성과 중복성이라는 문제를 가진다.
    • 종속성 : 파일을 열 수 있는 적절한 응용프로그램이 필요하다.
      • 한글로 저장하고 엑셀파일로 열수는 없는 문제.
    • 중복성 : 파일을 보관하는 컴푸터가 다른 경우 파일을 내 컴퓨터에 복사해서 사용.
      • 그러면 동일한 내용의 데이터가 두개 생성된다.
      • 저장 공간의 낭비
      • 데이터 변동 갱신 모두 반영해야 하니 굉장히 비효율적.

여러명의 사람들이 데이터를 공용으로 사용할 수 있도록 데이터베이스 데이터베이스 관리 시스템이 도입.

 

데이터베이스의 사용 이유


  • 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리.(현재에도 부분적으로 사용)
  • 대이터를 각각의 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동이 되어야 한다. 이 때의 문제점은 데이터 종속성 문제와 중복성, 데이터 무결성이다.

 

특징

  • 데이터의 독립성
    • 물리적 독립성
      • 데이터베이스의 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가 하더라도 관련된 응용프로그램을 수정할 필요가 없다.
    • 논리적 독립성
      • 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄수 있다.
  • 데이터의 무결성
    • 여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 무결성을 구현하게 된다.
  • 데이터의 일관성
    • 데이터의 일관성 연관된 정보를 논리적인 구조로 관리함으로써 어떤 하나의 데이터만 변경했을 경우 발생할 수 있는 데이터의 불일치성을 배제할 수 있다.
    • 또한 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.
  • 데이터의 보안성
    • 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.
  • 데이터의 중복성
    • 중복을 최소화한 데이터베이스는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나인 자료의 중복과 데이터의 중복성 문제를 해결할 수 있다.

 

데이터베이스의 성능


데이터베이스의 성능 이슈

  • 디스크 I/O을 어떻게 줄이는가에 중점.
    • 디스크 I/O란
      • 디스크 드라이브의 플래터(원판)을 돌려서 읽어야 할 데이터가 지정된 위치로 디스크 헤더를 이동시킨 다음 데이터를 읽는 것을 의미.
    • 이 때 데이터를 읽는데 걸리는 시간은 디스크 헤더를 움직여서 읽고 쓸 위치로 옮기는 단계에 결정된다.
    • 즉 디스크의 성능은 이 디스크 헤더의 위치 이동 없이 얼마나 많은 데이터를 한 번에 기록하느냐에 따라 결정.
    • 그렇기 때문에 순차 I/O 가 랜덤보다 빠를 수 밖에 없다.
    • 하지만 현실에서는 대부분 I/O작업이 랜덤이다.
    • 랜덤 I/O를 순차로 바꿔서 실행할 수는 없을까? == 데이터베이스 쿼리 튜닝
      • 랜덤 I/O 자체를 줄여주는 것이 목적이다.

 

'CS > DataBase' 카테고리의 다른 글

모델링 IE 표기법 _ 객체 다중성 표기법  (0) 2021.07.13
인덱스  (0) 2021.05.02
교착상태  (0) 2021.05.01
트랜젝션  (0) 2021.04.29
정규화와 반정규화  (0) 2021.04.28

댓글