데이터베이스를 알기 전에,
"이론을 세우는 데 기초가 되는 사실. 또는 바탕이 되는 자료" - Naver 사전
"프로그램을 운용할 수 있는 형태로 기호화·숫자화한 자료" - 옥스포드 컴퓨터 용어 사전
"어떤 값을 포함하고 있는 가공되지 않은 1차 자료" - 위키
관점에 따라서 정의가 조금씩 다르긴 하지만 여기서 공통적으로 알 수 있는 건, 데이터가 뭔가 원천이 되는 자료라는 점이다.
또는 정보 라고 말하는 사람도 있을 텐데, 적어도 컴퓨터 사이언스에서의 정보와 데이터는 서로 다른 의미를 내포한다.
관찰이나 측정을 통해 수집된 데이터를 실제 문제에 도움이 될 수 있도록 해석하고 정리한 지식 - 옥스포드 컴퓨터 용어 사전
여기서 집중할 것은 해석하고 정리에 포커스를 두면 좋다.
즉 데이터는 가공되지 않은 (당장은)무의미한 자료, 정보는 의미있고 쓸모있는 내용으로 가공된 자료로 생각하면 좋다.
그리고 우리는 데이터
를 정보
로 처리하는 과정도 다루게 된다.
: 어떤 특정한 조직에서 여러 명의 사용자 또는 응용 시스템들이 공유하고 동시에 접근하여 사용할 수 있도록 구조적으로 통합하여 저장한 운영 데이터의 집합
사용자에게 필요한 것은 데이터가 아닌 정보다. 그럼 데이터를 바로바로 처리해서 정보를 얻으면 데이터베이스가 굳이 필요할까?
우리가 장을 보고 그날 모든 재료를 사용하지 않는 것처럼, 여러 재료를 사두고 냉장고에 보관하는 것처럼, 데이터도 정보로 가공되기 전에 냉장고처럼 보관이 필요하다.
그래서 데이터베이스는 원하는 정보를 얻기 위한 필수 사항이다.
Database 줄여서 DB는 엄격한 틀이 정해져 있는 것부터 나름 유연한 틀을 가진 것으로 나눠져 있다. 하나의 DB가 두가지 형태를 띄는 것은 아니고, 각 틀을 전문적으로 지원하는 DB가 존재한다.
음,,, 그냥 냉장고와 김치 냉장고 정도로 이해하면 될 것 같다.
아무튼 나름 구조적인 형태를 유지하기 위해 데이터 저장 규칙이 존재한다.
여러가지의 데이터를 통합하여 저장하는데 중복된 정보가 있다는 이를 그대로 저장하면 용량 낭비가 발생하는 비효율적인 현상이 발생한다.
그래서 데이터베이스는 이러한 중복된 정보에 대해서 데이터를 통합하여 자료의 중복을 최소화한 데이터의 모임으로 구성한다.
우리가 사진이나 동영상 파일을 하드디스크나 SSD에 저장하는 것처럼, 데이터베이스도 컴퓨터가 접근할 수 있는 매체에 데이터를 저장한다.
데이터 베이스는 운영 데이터이다. 이는 조직 고유 업무를 수행하기 위하여 지속적으로 유지해야 하는 데이터를 의미한다. 즉, 임시적으로 처리하는 데이터들이 아닌 시스템을 운영하기 위해서 필요한 데이터인 것이다.
데이터 베이스는 공유 데이터이다. 어느 하나의 프로그램에 종속된 것이 아니라, 다수의 사용자나 프로그램이 공동으로 소유하고 유지하는 개념이다.
DB가 갖는 데이터의 특징을 통해 DB의 특징을 알 수 있다.
query(질의)에 대하여 실시간 처리로 응답해야한다.
DB는 삽입, 삭제, 갱신에 의해 계속적으로 변하고 정확한 데이터를 유지할 수 있다.
자신이 원하는 데이터를 동시 공유할 수 있다.
데이터의 위치나 주소가 아닌, 원하는 데이터의 내용에 따라 참조가 가능해야 한다.
위에서 개발자는 데이터를 정보로 처리하는 작업도 수행한다고 언급했다.
조금 비슷하게 했다...
아무튼 개발자는 저장된 데이터들을 가공하여 정보로 처리해야하는 데, 이를 도와주는 친구가 DBMS라는 녀석이다.
직접 DB에 접근하는 것이 아닌, DBMS의 도움으로 데이터를 다루고 변화시키고 이것 저것 할 수 있게 된다.
엥 어캐함? Java처럼 언어같은게 있나?
DBMS도 Java, C++, JS와 같이 이를 조작하고 관리할 수 있는 언어가 있다.
이를 SQL, Structured Query Language라고 하는데 Full-Name에서 알 수 있 듯, 언어이다.
SQL에 대해서는 이전 포스트 - 1과 이전 포스트 - 2를 참고하면 된다.
그럼 DBMS가 왜 나왔을까?
: 데이터와 응용 프로그램 간의 상호 의존 관계
종속성이 높은 경우에는 데이터 구성 방법이나 접근 방식이 달라지면 응용 프로그램에도 영향을 주게 된다.
이미 생성된 데이터의 구성 등을 변경하기 위해서는 해당 파일에 접근하는 모든 응용 프로그램도 같이 변경해야 한다. 이는 데이터 종속성이 높은 경우에 해당하며, 개발된 응용 프로그램에서 많은 상황에서 심각한 문제가 될 수 있다.
파일시스템에서는 데이터 파일과 응용 프로그램이 일대일로 대응되어야 하기 때문에 데이터 내용이 같아도 구조가 다르면 별도의 파일을 만들어야 한다.
따라서 파일 시스템에서는 한 시스템 내에 같은 데이터가 중복되어 저장되고 관리되는 경우가 많다.
그래서!
종속성과 중복성을 해결하기 위해 나온 것이 DBMS이다.
DBMS는 사용자 또는 응용 프로그램과 데이터베이스 사이에 위치하여 데이터베이스를 공유할 수 있도록 관리해주는 소프트웨어로 컴퓨터에 저장된 대량의 데이터를 체계적으로 관리하고 사용자가 원하는 정보를 효과적으로 검색하도록 하는 기능을 제공한다.
DBMS는 여러 종류가 있는데, 그 중에서 가장 많이 사용하는 RDBMS와 NoSQL에 대해서는 요기!를 참고하면 될 듯 하다.
Inpa Dev - DB-📚-데이터베이스-기초-개념
chappi.log - DB정리는-할껀데-핵심만-할껍니다.-데이터베이스란
GOAT