IT 도서 리뷰/개발자가 되기 위해 꼭 알아야 하는 IT 용어

[PART3] 데이터베이스/자료구조 - TERMS 01

goldenkiwi-coder 2025. 2. 4. 21:41

[ TERMS 01 ]  데이터베이스

데이터베이스가 무엇인지 설명하는 이미지(출처 : https://techtfq.com/blog/learn-what-is-database-types-of-database-dbms-omQVL)

1. 데이터베이스(Database)의 정의

 데이터베이스는 다수의 사람이 공유하고 관리하는 데이터의 집합을 의미한다. 일반적으로 컴퓨터 시스템에 저장되는 구조화된 정보 또는 조직화된 데이터의 모음이다.

 

2. 데이터베이스는 어떻게 접하게 될까?

 공공기관에서 수집하는 교통 데이터를 통해 버스와 열차의 현재 위치와 도착 예정시간을 확인 가능하다. 여러 서비스 기업들은 고객들의 데이터를 분석해 맞춤형 콘텐츠를 제공한다.

 데이터 베이스는 개인도 활용가능하다. 엑셀이나 스프레드시트와 같은 프로그램을 통해 필요한 데이터를 입력하고 이것을 효율적으로 관리하여 데이터베이스화 할 수 있다.  대표적으로는 개인이 작성하는 가계부가 있다. 이러한 데이터를 바탕으로 도식화하여 나타낼 수도 있다.

 

3. 데이터베이스 알아보기

>  개념

 데이터는 관찰 혹은 측정을 통해 얻을 수 있는 값(Value)이나 사실(Fact)로 숫자, 문자, 그림, 소리 등 가공되지 않은 1차 자료이다. 데이터는 정형, 비정형으로 구분할 수 있다.

  • 정형 데이터 : 일정한 체계를 가지고 있는 데이터로 사용자가 쉽게 이해하고 시스템에 바로 적용할 수 있다. SQL 기반 관계형 데이터베이스에 사용되는 데이터이다.
  • 비정형 데이터 : 일정한 체계가 없는 데이터로 사진이나 비디오, 오디오 등이 여기에 해당한다. 체계가 없기 때문에 검색이나 분석이 어렵지만 정형 데이터에 비해 유연하다는 장점이 있다. 특정한 틀이 없는 NoSQL 데이터베이스에 사용된다.

 

>  등장 배경

 1950년대 미국에서 군대를 효율적으로 데이터를 관리하기 위해 데이터베이스가 등장했다. 데이터베이스는 다수의 사람들이 공유하여 사용할 목적으로 데이터를 일정한 형식으로 구조화해 통합하고 관리하는 데이터의 집합이다. 데이터의 관리 효율을 높이기 위해 중복을 제거하고 구조화한 것이다. 데이터의 구조화란 데이터를 속성별로 정리하는 것을 의미한다.

  • 구조화되어 있지 않은 데이터 : 짱구네 가족은 엄마, 아빠, 동생, 흰둥이로 이루어져 있다. 아빠의 이름은 신형식이고 나이는 35세 키는 180cm이다. 엄마의 이름은 봉미선이며 나이는 29이고 신장은 159cm이다. 짱아는 8개월된 여자이고 키는 71cm이다. 흰둥이는 4살된 수컷 강아지로 키는 25cm이다.
  • 구조화된 데이터 : 아래의 표는 구조화되지 않은 짱구네 가족 데이터를 표 형식으로 구조화 한것이다. 이렇게 흩어져 있던 데이터들을 엑셀 같은 프로그램을 활용해 표로 구조화하면 체계적으로 분류하고 보관할 수 있다. 데이터베이스 안의 데이터는 다음과 같은 특징을 갖는다.
    1. 공유 데이터(Shared data) : 개인이 아닌 공동으로 사용하기 위해 저장된 데이터이다.
    2. 통합 데이터(Integrated data) : 흩어져 있는 데이터의 중복은 관리가 어려워 중복을 허용하지 않는다. 따라서 중복을 최소화하여 중복으로 발생할 수 있는 불일치 현상을 제거해야 한다.
    3. 저장 데이터(Stored data) : USB와 같이 컴퓨터가 접근 가능한 매개체에 저장해야 한다.
    4. 운영 데이터(Operational data) : 조직의 목적을 달성하기 위해 사용되는 데이터이다.
이름 나이 성별
신형식 35살 180cm
봉미선 29살 159cm
신짱구 5살 105cm
신짱아 8개월 71cm
흰둥이 4살 25cm 수컷

 

 데이터베이스 관리 시스템(DBMS)은 사용자가 데이터베이스를 효율적으로 관리하기 위한 소프트웨어로 데이터의 생성, 조회, 수정, 삭제 기능(CRUD)을 제공한다. 데이터베이스 관리 시스템은 크게 관계형 데이터베이스 관리 시스템(RDBMS, Relational DataBase Management System 또는 SQL)과 비관계형 데이터베이스 관리 시스템(Non- RDBMS, Non- Relational DataBase Management System 또는 NoSQL)로 구분할 수 있다.

 

>  관계형 데이터베이스 관리 시스템

 정형화된 데이터를 분석하기 위해 표(테이블)로 데이터를 표현하는 소프트웨어로 'SQL 시스템'이라고도 한다. 하나의 고성능 컴퓨터에 데이터를 저장하며, SQL언어를 사용한다. 현재 사용되는 대부분의 데이터베이스는 관계형 데이터베이스 모델을 기반으로 하며, 잘 알려진 데이터베이스 관리시스템으로는 Oracle IBM DB2, MS-SQL, MySQL등이 있다.

  • 특징
    1. 무결성(Integrity) : 중복 데이터가 서로 다른 값을 가지고 있다면 실제 값으로 반영해 데이터를 정확하게 유지해야 한다.
    2. 일관성(Consistency) : 모든 데이터가 일정한 형식을 갖춰 일관성을 갖는다.
    3. 경제성(economic efficiency) : 데이터의 중복을 제거해 기억 공간이 절약된다.
    4. 보안성(Security) : 데이터를 암호화하여 보호할 수 있다.
  • 대표적인 관계형 데이터베이스 : MySQL

MySQL은 전 세계에서 가장 많이 사용되는 오픈 소스형 관계형 데이터베이스 시스템이다. 표로 자료를 구조화해 검색이 쉽고 빠르다는 장점이 있으며 여러 사람이 동시에 접근이 가능해 기업에서 많이 사용하고 있다. 다른 종류의 데이터를 여러 개 불러와 동시에 처리할 수 있다. 데이터베이스에 쉽게 접근하기 위한 GUI(Graphical User Interface) 도구로 SQLyog(윈도우 특화)와 SQL workbench(모든 운영체제 가능)등이 있다.

MySQL workbench의 이미지 (출처 : https://tableplus.com/blog/2018/10/mysql-workbench-vs-sqlyog-vs-tableplus.html)
SQLyog의 이미지(출처 : https://tableplus.com/blog/2018/10/mysql-workbench-vs-sqlyog-vs-tableplus.html)

 

>  비관계형 데이터베이스 관리 시스템

 비관계형 데이터베이스 관리 시스템은 NoSQL 데이터베이스라 불리기도 한다. NoSQL은 Not Only SQL의 약자로 SQL만을 사용하지 않는 소프트웨어를 뜻한다. 즉 정형화된 데이터와 비정형 데이터를 통합 관리 분석하기 위한 데이터베이스 시스템이다. 2000년대 후반 SNS서비스가 활성화되면서 영상과 사진같은 복잡한 데이터가 증가와 기존 관계형 데이터베이스 시스템이 하나의 표에 많은 데이터가 들어가면 성능 저하 현상으로 인해 등장하였다. 대용량 데이터 처리가 가능하다는 점이 NoSQL이 각광받은 이유이다. NoSQL에는 몽고디비(MongoDB), 네오포제이(neo4j), 레디스(Redis), 카산드라(Cassandra)등이 있다.

  • 특징
    1. 스키마 리스(Shema-less) : 데이터 구조를 미리 정의할 필요가 없어 형식적인 데이터를 저장할 때 용이하다.
    2. 대용량성(Capacity) : 비디오나 사진과 같은 대용량 데이터를 저장할 때 용이하다.
    3. 분산 저장(Distributed data storage) : 데이터 용량이 커지면 이를 처리하기 위해 여러 서버에 분산 저장하고 데이터를 복제한다.
    4. 경제성 (economic efficiency) : 데이터 저장 용량이 커지면 관계형 데이터베이스는 성능이 더욱 좋은 단일 서버가 필요하여 비용이 많이 들지만 비관계형 데이터베이스는 여러 대의 저렴한 서버를 이용하기 때문에 비용이 훨씬 저렴하다.
  • 표적인 비 관계형 데이터베이스 : 몽고디비(MongoDB)

 몽고디비는 대표적인 NoSQL 데이터베이스 관리 시스템으로 Document 기반 데이터베이스 관리 시스템인 몽고디비는 JSON 구조로 파일을 구성해 사용자의 필요에 따라 데이터를 유연하게 바꿀 수 있다는 장점이 있다. 또한 데이터베이스를 여러 개의 서버에 나누어 저장할 수 있어 데이터를 불러올 때 걸리는 시간이 줄어들고, 한아의 서버에서 파일이 소실되더라도 복구할 수 있어 안정성이 높다.

관계형 데이터베이스와 비교하였을때의 몽고디비의 저장방식을 설명하는 이미지 (출처 : https://www.mongodb.com/ko-kr/resources/basics/databases/nosql-explained)

 

4. 데이터베이스를 알아야 하는 이유

 현재의 시대는 4차 산업혁명의 시대이며, 핵심 자원은 데이터이다. 인공지능, 블록체인 등을 이해하기 위해서는 데이터를 이해해야하고 어떻게 관리되고 활용되는지 알아야 한다. 유튜브의 알고리즘 기능, 카메라 앱의 안면인식 서비스 등의 기능을 이해하기 위한 최소한의 지식이다.

 

5. 데이터베이스 더 알아보기

>  함께 알아두면 좋은 용어

  • 스키마
  • 샤딩
  • 데이터마이닝
  • 스택/큐
  • ERD(Entity Relationship Diagram)
  • UML(Unified Modeling Language)