데이터베이스시스템 개념 정리

mollog·2021년 2월 17일
0
post-custom-banner

데이터베이스, 디비라는 용어를 현업에서 많이 듣는데 정확한 개념이 모호했고 이번 학습을 통해 간단하게 개념 정리를 하도록 합니다. 😶

용어 정리

데이터

어떤 특징을 나타낼 수 있는 값과 그 값의 설명을 의미합니다.

데이터베이스

데이터들의 집합을 의미합니다.

데이터베이스 매니지먼트 시스템 (DBMS)

데이터베이스에 저장된 데이터의 구성, 저장, 관리를 위한 소프트웨어 패키지를 의미합니다. 우리가 개발할 때 이야기하는 디비라는 용어를 정확하게 말하면 DBMS라고 합니다.

데이터베이스 시스템

정보를 데이터베이스에 저장하고 관리해서 사용자에게 맞는 정보를 제공하는 시스템을 의미합니다.


데이터베이스 매니지먼트 시스템 (DBMS), 왜 만들어졌을까

DBMS가 나오기 이전에 컴퓨터에서 정보를 기록하고 관리하는 수단은 오로지 파일 처리 시스템으로만 이루어졌다고 합니다.


수강 업무는 수강 파일 데이터만, 성적 업무는 성적 파일 데이터만, 학적 업무는 학적 파일의 데이터만 관여합니다.

언뜻보면 깔끔해보이지만, 이런 심플한 구조로 데이터를 주고 받으며 생기는 문제점은 크게 4가지가 있습니다.

  1. 데이터는 어플리케이션에 종속적이다.
  • 다른 어플리케이션과의 공유가 불가해 데이터 구조 변경이 일어나면 해당 어플리케이션까지 전면 수정이 되어야 합니다. 😣 (유지보수하는 입장에서 너무 힘들다)
  1. 데이터 중복으로 인해 생기는 부수 비용이 들어갈 수 있다.
  • 같은 데이터가 이곳 저곳에 들어가면 그만큼 추가적인 저장 공간이 요구되고 그에 따른 추가 비용이 발생합니다. (사장님이 싫어해요)
  1. 데이터의 무결성이 훼손될 수 있다.
  • 데이터가 가질 수 있는 가능 범위에 제한이 없어서 데이터의 값이 일정한 형식의 조건을 만족하지 않는 부정확한 데이터로 변질될 수 있습니다. 사람의 이름은 세글자~다섯글자까지이고 한글로 이루어져있지만 무결성이 훼손된다면 사람의 이름에 123이 들어갈 수도 있습니다. 😅
  1. 다수 사용자의 동시 접근으로 인한 이상한 값이 도출될 수 있다.
  • 은행 어플리케이션이라고 하면 A가 본인 계좌에서 1만원을 빼고, 동시에 B가 같은 계좌에 2만원을 넣는다면... 동시성이 제어되지 않은 경우 A가 예측할 계좌 값과 B가 예측할 계좌 값이 다르게 나올 수 있습니다.

그렇다면 DBMS을 도입하고부터 어떻게 바뀌었을까?

DBMS의 장점

어플리케이션과 데이터는 독립적인 관계를 갖는다

업무을 실행하는 어플리케이션이 직접 데이터에 접근하는 것이 아니라, DBMS라는 매니저를 통해 일을 하게 됩니다. 이 유능한 매니저를 통하기 때문에 어플리케이션은 날 것의 데이터를 조금 더 개념적인 의미로 해석할 수 있습니다.

데이터 자체적으로 의미를 갖는다

이전의 데이터 방식이 단순히 숫자 12만을 의미했다면 DBMS를 도입하고부터는 12에 '일'이라는 의미가 부여되면서 '12일'이라는 메타데이터를 갖게 되고 우리는 아, 숫자 12는 달력 날짜의 12일을 의미하는구나로 알게 됩니다.

다중 뷰를 제공하여 동시성을 제어한다

DBMS는 A가 데이터를 처리하는 동안 다른 B, C 사용자가 같은 데이터에 접근할 수 없도록 막아줍니다. 이를 트랜잭션이라고도 합니다.

DBMS의 구조는 어떻게 생겼을까

크게 외부 단계, 개념 단계 내부 단계로 나뉘어져 있습니다.
내부 단계는 각각의 데이터가 어떤 저장 장치에 저장되어 있는지를 표현하고,
개념 단계는 전체 데이터 구조를 파악하는 역할을 하며,
외부 단계는 필요한 데이터를 추출해서 뷰에 보여주는 역할을 하는 단계입니다.

데이터베이스의 언어를 알아야하는 이유

DBMS는 앞서 말했듯 어플리케이션과 데이터의 중간에 껴서 데이터를 사용자에게 효율적으로 전달하는 역할을 합니다. 따라서 사용자는 데이터베이스, 즉 데이터를 쉽게 다룰 수 있도록 DBMS에 요청하기 위한 언어를 알아야 합니다.

post-custom-banner

0개의 댓글