Home /database/ database 의 용도,역할
Post
Cancel

/database/ database 의 용도,역할



1. 데이터베이스 관련 예시


  • 주변에서 데이터를 관리하는 사례
    스마트폰 주소록, 메일 주소록, 은행이나 우체국의 예금통장, 명함 홀더, 사진 앨범, 음악 플레이어의 음악 데이터, 게임기나 온라인 게임의 데이 터, 온라인 달력, 거래처의 고객정보 등


  • 데이터베이스가 사용될 것 같은 도구나 서비스의 예
    은행이나 우체국의 예금관리, 쇼핑 사이트나 옥션 사이트, 항공기나 영화 등의 티켓 예약 서비스, iTunes Store, 메일 매거진, Dropbox나 SugarSync, EVENOTE 등의 온라인 저장소, Facebook이나 Instagram 등의 소셜 네트워크 서비스 등


  • 데이터 유출 등의 사회적 사건의 예
    • 2016년: 인터파크
      • 1,000만 명 개인정보 유출
    • 뱅크샐러드?
    • 2021년: 트위치
      • 서버 구성 오류로 인해 트위치의 중요 정보가 뚫린 이번 사건
      • 원인 : 트위치 서버 설정 변경 후 악성 서드파티 공격이 이루어졌다고 설명했다.
        (관련기사(유출 데이터 내역 등))
    • 2022년: 페이스북
      • 5억 명 이상의 페이스북 사용자의 개인 정보가 온라인에 게시된 데이터 유출
      • 원인: 회사는 ‘악의적인 행위자’가 페이스북 프로필에서 데이터를 스크랩한 것으로 믿고 있다고 말했다.
        (관련기사)



2.데이터베이스의 기본기능


1.데이터의 검색과 갱신

  • 넓은 의미에서의 갱신: 등록, 수정, 제거
  • 데이터 포맷에 유의: ex. 고유성(같아보여도 다른데이터라는 것을 알도록 관리해야함)
  • 처리성능에 유의: 데이터양이 증가하고 있음에 따라 검색 성능을 향상시키는 것에 대한 고민필요


2. 동시성 제어

  • 다수의 사용자가 동시에 파일을 열어 수정할 수 있는 것들에 대한 갱신의 무결성 정도
  • 동시에 갱신을 시도했을 때의 동작 예시
    (1) 최초로 파일을 연 사람이 파일을 열고 있을 때
      그다음으로 파일을 열려고 한 사람은 파일을 열 수 없다.
    (2) 최초로 파일을 연 사람이 파일을 열고 있을 때
       그다음으로 파일을 열려고 한 사람에게는
       파일이 ‘읽기 전용Read Only’으로밖에 열리지 않는다.
    (3) 어떤 사람도 문제없이 파일을 여는 것이 가능하고 나중에 수행된 쪽의 갱신이 반영된다.
       (더티쓰기(Dirty Write))
  • 괴로운 트레이오프의 관계
    • 데이터베이스를 복수의 사용자가 동시에 공유하고 이용하려고 한다면
      같은 데이터를 갱신하는 상황대한 제어가 필요
    • 트레이드오프 관계: 어느 사용자에게는 괜찮은 갱신 제어가 다른 사용자에게는 불편한 상황

✔️ 더티쓰기(Dirty Write) -남보다 늦게 손을 내밀어 이기는 가위바위보 같은 것 -데이터베이스에서 이런 식의 제어는 일반적으로 데이터 무결성 관점에서 기피하는 경향이 있음


3. 장애 대응

  • 데이터 소실 사건 발생 :데이터베이스에 보존된 데이터가 어떤 원인으로 소실되고 또한 복원도 되지 않는 경우에 발생
  • 데이터 소실 문제의 대책
    • 데이터 다중화
      • 데이터를 한 곳이 아니라, 복수의 장소에 분산해서 유지
      • 데이터가 완전히 소실되는 것을 막는 방법
      • 예방책
      • ‘달걀을 한 바구니에 다 담지 마라’
    • 백업
      • 데이터 소실이 발생했을 때 데이터를 복원하는 방법
      • 사후대책
  • 왜 데이터 소실 사건이 끊이지 않는가
    • 엔지니어가 항상 ‘서비스 레벨’과 ‘비용’이란 트레이드오프의 딜레마로 고민하기 때문
      즉, 알고는 있지만 돈이 없는 상황이기 때문


4. 보안

  • 데이터베이스가 사용자로부터 가능한 보이지 않게 설계되는 이유
    • 사용자는 서버를 의식할 필요가 없다.
      • 사용자에게 가까운 기술은 보통 대다수가 클라이언트 기술 중심(태블릿, 스마트폰 등)
      • 서버에 배치된 데이터베이스 등의 소프트웨어를 직접 조작하는 일은 없기 때문
    • 데이터베이스는 기밀성이 높다.
      • 데이터베이스에 들어 있는 데이터는
        기밀성이 지극히 높아서 일반에 공개할 수 없는 내용이 상당수 포함되어 있기 때문
      • 시스템을 구축하는 측에서는
        ‘데이터베이스는 절대 사용자에게는 알려지지 않아야 한다’라는 강한 의지로 시스템을 구축


3. 데이터베이스의 종류


  1. 계층형 데이터베이스
    • 현대적인 데이터베이스 역사상 최초로 등록된 것
    • 상당히 오래되었지만, 아직 현역으로도 이용
  2. 관계형 데이터베이스
    • 2차원 표 형식
    • 현재 가장 주류
  3. 객체지향 데이터베이스와 XML 데이터베이스
    • 각각 ‘객체’와 ‘XML’이라는 형식으로 데이터를 관리하는 데이터베이스
    • 관계형 데이터베이스를 대체하기를 기대했지만,
      아직 관계형 데이터베이스의 아성을 무너뜨리지는 못하였고
      틈새시장에서 기반을 쌓고 있는 정도
  4. NoSQL 데이터베이스(Not only SQL)
    • 관계형 데이터베이스에 있는 기능 일부를 버려서 성능(처리 속도)을 높이고 있음
    • 대량의 데이터를 고속으로 처리해야 하는 웹 서비스와 잘 맞아서 최근 자주 이용




(참고자료)

  • 데이터베이스 첫걸음



공부한 내용을 여러글과 책 읽은 내용을 바탕으로 정리하고 있습니다.
좋은 글로 저의 공부에 도움을 주시는 분들께 감사드립니다.

This post is licensed under CC BY 4.0 by the author.