본문 바로가기

Study/용어익히기

헷갈리는 IT 용어 이해하기__6. 데이터베이스

#데이터

예를 들어 생각해보자. 쇼핑몰에서는 '회원명', '아이디', '주문 상품 명', '상품 가격' 등이 데이터다.
가만히 살펴보면 이 데이터는 모두 서로 관계가 있는 텍스트. 이렇게 관계가 이어진 텍스트는 관리가 어렵다. 만약 '홍길동'이라는 사람의 '생일'을 수정해야한다면? 그 많은 텍스트 중 이름이 '홍길동'이라는 사람을 찾아서, 그의 '생일'을 수정해야하는데, 만약에 동명이인이있다면, 그에 따른 코드도 따로 짜서 관리해야하고.. 여간 복잡한게 아니다. 이렇게 복잡하게 관리될 데이터는 기본적으로 단 1%의 결점도 없어야 한다. 이러한 점을 데이터의 무결성이라고 한다. 그래서 이렇게 복잡한 데이터를 완벽하게 관리하는 것은 힘들다.

이런 머리아픈 문제를 해결하기 위해 고안된 방법 중 하나가 '관계형 데이터베이스'이다.
이는 현재 가장 많이 쓰이고있는 데이터 관리 시스템으로 매우 중요한 개념이다.
형태는 엑셀과 같은 형태를 가지고 있다.
시트 1에 유저 시트를 만들고, 1행에 '이름','성별','생일','주소' 와 같은 구조를 정해야 한다. 그래야 그 밑에 유저 데이터를 쌓을 수 있다.
그리고 다른 시트에 상품 데이터를 만들고, 1행에 '상품명','가격','수량','옵션명' 와 같은 구조를 정해야 한다. 그리고 그 아래 상품 데이터를 쌓는다.

이렇게 쌓인 데이터들은 각 행의 번호로 기억되고, 연결되어 있기 때문에 따로 주문 데이터까지 수정할 필요가 없다.
각각 데이터는 고유 번호를 가져 철저히 관리할 수 있다. 이러한 관리 기법이 관계형 데이터 베이스이다.

# 엑셀로 빗댄 관계형 데이터 베이스 이해하기

엑셀의Sheet - 데이터 베이스의 테이블(Table)
엑셀 파일 자체 - 데이터 베이스(Database) 혹은 스키마(Schema)


# 그럼 데이터를 엑셀에 넣는거야? NO!!

그렇다고 실제 개발자들이 엑셀에 데이터를 저장하지 않는다. 이 데이터들을 파일로 만들어서 저장하고 관리해주는 실제 소프트웨어는 따로 있다.
관계형 데이터베이스의 철학으로 만들어진 관리 시스템(소프트웨어)을 관계형 데이터 베이스 관리 시스템(RDBMS)이라고 부른다.
MS SQL, Oracle DB, MySQL, MariaDB 등 세상에는 수많은 관계형 데이터베이스 관리 시스템이 있다.

# 데이터는 그럼 서버에만 저장해? NO!!

차분히 생각해보자. 데이터는 어디에 저장될까? 보조기억장치다. 반면 데이터베이스 관리 시스템은 소프트 웨어죠. 그 말은 CPU와 메모리만 있다면 데이텅베이스 관리 시스템을 실행 할 수 있다는 말.
결론적으로, 데이터는 클라이언트와 서버 모두 저장 할 수있다.

#클라에서 관리하는 데이터

클라에서는 보통 변하지 않을 데이터들을 관리한다.

알람 앱을 예로 들어보자.
알람 앱은 인터넷이 연결되지 않아도 동작한다. 서버와 통신하지 않고도 정상적으로 작동한다. 알람 어플리케이션 같이 서버가 필요하지 않는 앱의 데이터는 클라이언트에 있다.

#서버에서 관리하는 데이터

어떤 스마트폰에서 접속해도 똑같이 보이는 데이터 . 데이터가 서버에 있기 때문에 데이터를 변경한다면, 다른 모든 기기에 변경된 데이터가 표시된다.

-> 더 명확하게 구분하려면 API문서를 읽는 것이 더 중요하다.


참고 : 최원영, 비전공자를 위한 이해할 수 있는 IT 지식, 티더블유아이지, 2020