정의
원하는 기능을 동작시키기 위해 마땅히 저장해야하는 정보의 집합입니다.어떤 데이터가 저장되는지에 따라 서비스의 정체성이 달라지고, 저장 방식에 따라 성능이 달라질 수 있습니다.
이렇게 중요한 요소를 제대로 관리할 수단으로 DBMS가 존재합니다.
DBMS
데이터베이스 관리 시스템입니다.
DBMS (DataBase Management System)
ㅇ
develop-enchantment.tistory.com
파일 대신 데이터 베이스를 사용하는 이유
데이터를 단순 나열하여 저장하면, 한계점이 있습니다.아래와 같은 .txt 파일이 있다고 예를 들겠습니다.
# 학과.txt
학과 이름 = 컴퓨터과학, 학과 코드 = 123, 학생 = 김민철, 박성훈, ... ,
학과 이름 = 생명자원학과, 학과 코드 = 234, 학생 = 김철수, 김영희, ... ,
학과 이름 = 경영학과, 학과 코드 = 345, 학생 = 김영호, 이명은, ... ,
# 학생.txt
이름 = 강민철, 나이 = 22, 사는 곳 = 서울, 학과 = 컴퓨터과학, 학번 = 32156
이름 = 이명은, 나이 = -1, 사는 곳 = 부산, 학과 = 경영학과, 학번 = 21343
이름 = 김철수, 나이 = 28, 사는 곳 = 대전, 학과 = 생명자원학과, 학번 = 21331
📌 데이터 일관성 및 무결성 제공이 어렵습니다.
DBMS는 서버와 같습니다. 보통 여러 명의 사용자, 프로그램이 동시다발적으로 데이터베이스를 이용합니다.
이로 인해 레이스 컨디션 문제가 발생하고 이로인해 데이터의 일관성이 훼손되기 쉽습니다.
동기화 도구를 사용해도 일일히 모든 접근에 사용하는 것은 효율적이지 않습니다.
또한 무결성을 일일히 검사하기 어려워 무결성을 보장하기 어렵습니다.
학생.txt 에서 '이명은'이라는 학생의 나이가 잘못된 값이 저장되어 있지만, 파일 기반으로 저장할 경우 이런 잘못된 값을 검출하기 어렵습니다.
📌 불필요한 중복 저장이 많아집니다.
다량의 데이터를 관리할 때 중복 저장은 큰 저장 공간 낭비로 이어질 수 있습니다.
파일로 다량의 데이터를 관리할 경우 불필요한 중복 저장이 발생하기 쉽습니다.
📌 데이터 변경 시 연관 데이터 변경이 어렵습니다.
학과.txt 파일에서 학과 이름이 컴퓨터과학에서 컴퓨터학과로 변경이 되었습니다.
그렇다면 학과.txt 파일에서 컴퓨터과학을 모두 찾아 일일히 변경해야 수고가 생깁니다.
📌 정교한 검색이 어렵습니다.
파일도 데이터 검색은 가능하지만, 데이터가 많을 경우 파일 내 문자열 검색에 국한됩니다.
예를 들어 나이가 25살 이상인 경영학과인 서울 거주자라는 정교한 검색의 경우 파일만으로는 어렵습니다.
📌 백업 및 복구가 어렵습니다.
데이터베이스는 여러 명의 사용자가 동시다발적으로 이용하기 때문에 백업과 복구 기능을 제공합니다.
하지만 파일은 제공하지 않거나 데이터베이스에 비해 부족한 수준입니다.