DB 란 무엇인가?

Hyun-jin Won·2021년 9월 24일
0

MySQL로 SQL 시작하기

목록 보기
2/24

개요

A database is an organized collection of structured information, or data, typically stored electronically in a computer system. A database is usually controlled by a database management system (DBMS).
Oracle - What Is a Database?

우리는 프로그래밍에 입문하게 되면서, 주로 데이터들은 변수나 객체형태로 데이터를 저장하고 사용하게 된다. 물론 그렇게 사용해야 되는 경우도 있지만 해당 데이터들은 결국 프로그램이 종료되면 사라지는 '휘발성'데이터이다. Database(DB)는 이러한 정보, 데이터들을 컴퓨터 시스템이 영구적으로 저장하는 것을 말한다.

그렇다면 엑셀도 Database?

결과적으로 엑셀 또한 DB라고 말할 수 있다. 어찌되었든 데이터를 특정 집합으로 영구적으로 저장하고 있으니 말이다. 하지만 우리는 여기서 한가지 더 제한을 둔다. 바로 DBMS의 존재가 그것이다.

DBMS와 SQL


DBMS는 Database Management System의 약자로서 DB의 데이터를 효율적으로 관리하는 소프트웨어를 지칭한다.

예로 들어 당신이 엑셀파일에서 특정 데이터를 찾거나 수정해야 한다고 가정하자.
우리는 이 경우 find기능을 통해서 해당 데이터를 검색하거나, 특정 위치까지 눈으로 비교하며 마우스를 드래그하여 해당 요소를 찾고, 이를 선택한 후 타이핑하여 수정하고 저장할 것이다.

이와 같이 특정요소를 찾고, 이룰 수정, 저장, 관리하는 기능을 맡는 소프트웨어가 DBMS,
마우스, find 기능과 같이 이러한 명령을 전달하고 수정하는 행동을 정의 한 명령어가 SQL이다.

정말로 그럼 엑셀도 Database 인가요?

사람마다 생각이 다르겠지만, 내 생각은 그렇다. 엑셀도 database의 범주에 들어간다고 생각한다. 물론 실제 개발에 반영할 생각은 없다. 실제로 DBMS는 위에서 설명한 기능 외에도 PK, FK, CASCADE 등 데이터에 대한 규칙 등을 정의 하는 등 여러 기능이 존재한다. 엑셀이 간단한 테스트로도 동작할 수 있지만, SQLite, h2 등의 다른 가벼운 DB도 존재하기 때문에 이를 사용하지는 않을 것 같다.

왜 DBMS를 사용하는 건가요?

우리가 특정 툴을 선택하서 사용하는 것은 주로 이유가 있기 때문이다.
왜 우리는 DBMS 같은 소프트웨어를 통해서 Database를 관리할까?

Use libraries as much as possible - nobody gets ahead by reinventing the wheel needlessly.
Should I write my own code or use libraries? - Quore

생산성

당신이 만약 자바 개발자이고, 파라매터의 값으로 배열을 받았을 때 이를 오름차순으로 정렬하는 함수를 만들라고 한다면 어떻게 개발할 것인가? 직접 개발하는 사람도 있겠지만 주로 Collections.sort 를 이용할 것이다. 여러분들이 정렬을 직접 구현할 수 없는 것은 아니지만 이 것을 사용하는 이유 중 가장 큰 이유는 빠르게 개발하기 위해서일 것이다.

Database의 행동에는 검색, 추가 ,삭제 갱신 등의 공통적인 기본 동작이 있다. 우리가 이런 것들을 일일히 구현하는 것보다 이미 이런 기본 동작이 구현되어 있는 DBMS 를 사용함으로서 빠르게 다른 개발에 집중 할 수 있다.

기능성

DBMS는 DB를 다루는 많은 기능을 제공합니다.
복수의 유저에 요청에 대응하고, 많은 데이터를 저장하고 조회하는 기능, 에러에 대한 대응 등과 같은 기능과, 이를 유저가 제한하고 확장시킬 수 있습니다. 이러한 기능은 유저가 Database를 좀 더 유연하고 다양하게 개발 할 수있게 도와줍니다.

신뢰성

DBMS는 상당히 오랫동안 사용된 소프트웨어가 많습니다. 이는 즉 긴 기간동안 여러 다양한 곳에서 사용되면서 검증되었음을 의미하며, 실제로도 많은 DBMS가 여러 상황이나, 부하, 문제점에 대해 대응할 수 있도록 설계되었습니다. 또한 데이터를 지속적으로 백업하고, 복구 하는 기능 등 또한 존재하기 때문에 이를 통한 개발은 신뢰 받을 수 있습니다.

profile
삽질을 주체하지 못하는 잉간

0개의 댓글