멈추지 않고 끈질기게
[DB] 데이터베이스의 정의 본문
※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다.
※ 해당 포스팅은 하기 출처들을 참조하였습니다.
- 김연희, 데이터베이스 개론, 한빛아카데미, 2022
이번 포스팅에서는 데이터베이스의 기본 개념들에 대해 알아보겠습니다.
1. 데이터와 정보
데이터는 단순히 측정한 값(사실)을 말하며, 정보는 데이터를 가공하여 나온 유의미한 결과물을 의미합니다.
위 사진과 같은 엑셀 시트를 생각해봅시다. 학생들의 이름, 학번, 각종 과목의 점수들이 나열되어 있지만 이것만으로는 무언가 결론을 내기 어렵습니다. 단순한 데이터의 모음이기 때문입니다. 하지만 이 데이터들을 가공하여 정보를 도출해낼 수 있습니다. 예를 들어 수학 점수 기준 내림차순으로 정렬하면 반에서 수학 점수가 높은 학생들을 쉽게 판별할 수 있고, 상위 2명에게 수학 경시대회 출전을 권하는 식으로 활용할 수 있습니다. 상기 데이터로부터 '수학 점수 상위 2명'이란 정보를 도출하여 활용한 것입니다.
2. 데이터의 종류와 특징
데이터는 구조화 정도에 따라 정형데이터, 반정형 데이터, 비정형 데이터로 구분할 수 있습니다.
1) 정형 데이터(structured data)
미리 정해진 데이터 구조에 맞게 입력, 저장된 데이터를 말하며, 이 때, 정해진 데이터 구조를 스키마(schema)라고 합니다. 그림 1과 같은 엑셀 스프레드 시트가 대표적인 예가 되겠습니다. 완전히 구조화된 데이터이므로 가공이 용이하지만, 구조에 맞는 데이터만 모여있으므로 잠재적인 가치는 평범한 편에 속합니다.
2) 반정형 데이터(semi-structured data)
반정형 데이터는 데이터 안에 구조에 대한 설명을 포함하는 데이터입니다. 구조에 맞게 저장된 데이터지만, 정형 데이터와 달리 구조가 완전히 고정된 것은 아니므로 구조를 파악하는 과정(parsing)이 필요합니다. HTML, JSON, XML 문서 등이 반정형 데이터에 속합니다.
3) 비정형 데이터(unstructured data)
정해진 구조가 전혀 없는 데이터들을 말합니다. 일반적인 워드 문서나 동영상, SNS 등 현실의 다양한 데이터가 사실 비정형 데이터에 속합니다. 구조화가 전혀 되어있지 않아 가공이 어렵지만, 수집한 주체가 이미 유용한 정보를 도출할 수 있는 데이터들을 모아놨을 가능성도 높기 때문에 가치도 높습니다.
또한 데이터는 특성에 따라 범주형 데이터와 이산형 데이터로 구분할 수 있습니다. 범주형 데이터는 다시 명목형과 순서형 데이터로, 수치형 데이터는 이산형과 연속형 데이터로 구분됩니다.
1) 범주형 데이터(categorical data)
범주형 데이터란 카테고리로 구분할 수 있는 데이터를 말합니다. 게임에서 예를 들면 캐릭터의 직업, n차 전직 등이 속하게 됩니다. 이 중 순서가 없는 데이터를 명목형 데이터, 순서가 존재하는 데이터를 순서형 데이터라고 합니다. 앞의 예시에서 캐릭터의 직업이 명목형 데이터에 해당하며, 1차 전직 -> 2차 전직 -> 3차 전직과 같이 순서가 존재하는 n차 전직 데이터가 순서형 데이터에 속합니다.
2) 수치형 데이터(numerical data)
수치형 데이터란 수학적으로 크기를 비교할 수 있고 사칙연산 등이 가능한 숫자 값의 데이터를 말합니다. 게임에서 예를 들면 보유중인 아이템 개수나 현재 체력(HP)과 같은 숫자 데이터가 속합니다. 이 중 이산적인 값(셀 수 있는 형태의 값)을 가지는 데이터를 이산형 데이터, 연속적인 숫자 값을 가지는 데이터를 연속형 데이터라 합니다. 앞의 예시에서는 아이템 개수가 이산형 데이터에 속하며, HP와 같은 데이터가 연속형 데이터에 속합니다.
데이터를 구분하는 이유는 데이터의 종류에 맞는 분석 기술을 적용해야 하기 때문입니다. 수치형 데이터의 경우 수학적으로 접근하여 평균을 구하는 식으로 활용할 수 있지만, 범주형 데이터는 수학적 접근이 불가능하기 때문입니다. 또한 데이터의 모음에는 이러한 범주형 데이터와 수치형 데이터가 섞여서 존재합니다. 예를 들어 학생들의 성적을 엑셀 시트로 만들었다면 거기에는 이름, 성별과 같은 범주형 데이터와 과목별 점수같은 수치형 데이터가 한데 모여있을 것입니다. 각 데이터 타입에 맞는 접근으로 '남학생들의 수학 점수 평균'이나 '여학생들의 영어 점수 평균'과 같은 정보를 도출할 수 있습니다.
3. 데이터베이스(DataBase)의 정의
데이터베이스란 '특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합'을 의미합니다. 다양한 데이터를 한 데 통합하여 저장함으로서, 각 사용자들이 원하는 정보를 도출하기 위해 데이터를 일일히 수집할 필요 없이 데이터베이스에 접근하여 해결할 수 있습니다. 물론 데이터베이스에는 방대한 데이터가 저장되므로, 필요한 데이터를 검색하는 과정이 필요합니다(이에 관한 자세한 내용은 추후 포스팅에서 다루도록 하겠습니다).
데이터베이스는 여러 사용자가 공유할 수 있도록 다양한 데이터를 저장해야 하며, 통합해서 저장하는 데에 지장이 없도록 하기 위해 데이터의 중복을 최소화해야 합니다. 또한 데이터는 주로 컴퓨터로 처리하므로 컴퓨터로 접근할 수 있는 매체에 저장되어야 하며, 지속적인 유지, 보수가 필요합니다. 데이터베이스는 또한 다음과 같은 특징을 가집니다.
1) 실시간 접근 가능(real-time accessibility)
데이터 베이스는 사용자가 어떠한 시간에 어떤 데이터에 접근하더라도 원하는 데이터를 큰 지연없이 실시간으로 제공할 수 있어야 합니다.
2) 지속적인 변화(continuous evolution)
데이터베이스의 데이터는 현실의 변화를 반영하여 끊임없이 삽입, 수정, 삭제될 수 있어야 합니다.
3) 동시 공유 가능(concurrent sharing)
데이터베이스는 많은 사용자가 공유하므로 여러 사용자가 동시에 이용할 수 있어야 합니다. 즉, 두명 이상의 사용자가 같은 타이밍에 같은 데이터에 접근하더라도 오류 없이 데이터를 제공하여야 합니다.
4) 내용 참조 가능(content reference)
데이터베이스는 사용자가 원하는 데이터를 찾을 때 데이터의 내용을 기준으로 검색할 수 있어야 합니다. 예를 들어 '국어 점수가 50점 이하인 1학년 학생들'과 같은 내용으로 검색하면 이에 맞는 데이터를 모아 제공해야 합니다.
정보화 시대가 되면서 데이터는 그 종류도 다양해지고 크기도 방대해지고 있어, 조직을 운영하는 데에 있어 데이터베이스가 필수불가결한 요소가 되었습니다. 따라서 데이터베이스에 대해 이해하고, 이를 활용할 수 있는 능력을 갖춰야겠습니다.
'DB' 카테고리의 다른 글
[DB][SQL] 데이터의 검색 (0) | 2023.05.02 |
---|---|
[DB] 관계 데이터 모델 (0) | 2023.04.22 |
[DB] 데이터 모델링 (0) | 2023.04.17 |
[DB] 데이터베이스 관리 시스템(DBMS) (0) | 2023.04.09 |
[DB] 트랜잭션(Transaction) (0) | 2023.04.04 |