Database

김세영·2021년 4월 14일
0

Database - 0

데이터베이스는 요즘 시대에 빠져서는 안될 필수 요소입니다.
기업 정보, 제조, 은행 및 금융, 학교, 항공사 뿐만 아니라 정말 많은 곳에서 사용하고 있습니다.

데이터베이스의 목적

초창기 데이터베이스는 파일 시스템의 바로 위에 생성되었습니다.
이는 여러 가지 문제점을 초래하였는데, 다음과 같습니다.

  • Data Redundancy and Inconsistency

    • 똑같은 데이터가 여러 파일에 중복으로 저장되어 있으면,
      데이터 하나를 변경할 때 다른 데이터들을 일일이 변경해주어야 합니다.
      이를 놓치면 데이터에 큰 영향을 미치게 됩니다.
  • Difficulty in accessing data

    • 새로운 작업을 하고 데이터에 접근할 때마다, 프로그램을 새로 작성해야 합니다.
  • Data isolation

    • 파일과 파일의 형식이 복잡합니다.
  • Integrity problems

    • 무결성 제약 조건은 데이터베이스의 완전성을 높이기 위한 데이터의 조건으로, 데이터베이스 관리 시스템이 체크합니다.
      이 무결성 제약 조건이 명확하게 제시되어 있는 것이 아닌, 프로그램 코드 상에 파묻혀 있습니다.
      또한 새로운 제약 조건을 추가하거나, 기존의 것을 수정하기가 어려웠습니다.
  • Atomicity of updates

    • 데이터를 업데이트 하는 도중에 어떠한 이유로 업데이트가 실패하게 되면,
      부분적으로만 업데이트가 적용되어 데이터 불일치 문제가 발생하게 됩니다.
  ex) 	A에서 B로 100만원을 송금한다고 가정해봅시다. 
  	A가 100만원을 입력하고 송금 버튼을 눌렀는데, 오류가 발생하였습니다.
    	이 때 A의 계좌에서는 100만원이 감소하였지만 B의 계좌에서는 100만원을 받지 못하는 현상이 생길 수 있습니다.
  • Concurrent access by multiple users

    • 프로그램 성능 향상을 위해선 여러 사용자가 동시에 데이터에 접근할 수 있어야 합니다.
      이를 제대로 처리하지 못한다면, 데이터 불일치 문제가 발생하게 됩니다.
  ex)	A, B의 공동계좌에 75만원이 있다고 가정해봅시다.
  	A와 B가 동시에 50만원을 출금한다고 했을 때, 동기화를 제대로 처리해주지 못하면 
    	데이터상 오류가 발생하게 됩니다.
  • Security Problems

    • 일부 데이터에 대해 사용자 권한을 부여하기가 어렵습니다.

위의 문제들을 해결하기 위하여 Data Model이 도입되었습니다.

profile
초보 iOS 개발자입니다ㅏ

0개의 댓글