01. 데이터베이스 개요
1) 데이터베이스 개념
“데이터베이스”는 관련 데이터들을 모아 두는 창고입니다. 즉, 여러 사용자가 정확한 의미를 공유할 수 있도록 자료를 통합하여 저장한 운영 데이터의 집합인 것입니다.
- 공유 데이터: 데이터베이스는 특정 조직의 여러 사용자가 함께 소유하며 이용하는 공용 데이터입니다. 그렇기 때문에 사용자마다 다른 사용 목적을 고려하여 데이터베이스를 구성해야 합니다.
- 통합 데이터: 데이터가 중복되면 관리하기가 어려워지기에 데이터베이스는 같은 데이터가 여러 개 존재하는 중복성을 허용하지 않습니다.
- 저장 데이터: 데이터베이스의 데이터는 컴퓨터가 주로 처리하기 때문에 컴퓨터가 접근 가능한 매체에 저장해야 합니다.
- 운영 데이터: 데이터베이스는 조직을 운영하고 주요 기능을 수행하는 데 있어서 꼭 필요하기 때문에 꾸준히 유지되어야 합니다.
2) 파일 처리 시스템의 문제
과거에는 데이터를 관리하기 위하여 "파일 처리 시스템" 이라고 하는 소프트웨어를 사용했습니다. 파일 처리 시스템이라는 말 그대로 업무별로 “분리"하여 프로그램이나 파일을 작성하고 처리하는 시스템입니다. 구매 비용이 들지 않는다는 장점이 있지만, 시스템 특징 상 데이터를 별도의 파일에 관리하기에 “같은 내용의 데이터가 여러 파일에 중복으로 저장”되고, “데이터 파일은 응용 프로그램에 종속"되며, “데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족"하고, “응용 프로그램 개발이 쉽지 않다"는 단점들이 있었습니다.
3) 데이터베이스 특징
데이터베이스는 위에서 알아 본 파일 처리 시스템의 문제점을 해결하기 위해 만들어졌습니다. 한 조직 내에서 사용하는 응용 프로그램의 데이터들이 잘 공유되도록 파일 처리 시스템과는 다르게 “통합"하여 관리합니다. 데이터베이스가 가진 특징은 다음과 같습니다.
- 실시간 접근 가능: 사용자나 응용 프로그램의 질문을 실시간으로 처리하여 응답합니다.
- 지속적인 변화: 끊임없이 새로운 데이터를 삽입하며 기존 데이터를 수정하고 삭제하여 최신 상태를 유지합니다
- 동시 공유 가능: 여러 사용자와 응용 프로그램이 동시에 데이터를 검색하며 수정하는 것이 가능합니다.
- 내용 참조 가능: 데이터를 검색할 때 저장 위치나 주소를 몰라도 원하는 값을 제시하면 관련 데이터를 제공합니다.
4) 데이터베이스 관리 시스템
파일 처리 시스템의 문제를 해결하기 위해 “데이터 통합 저장 방식"을 사용했습니다. 그러나 이 방법은 일차적인 것이고 응용 프로그램의 요구 사항을 처리하며 동시 공유, 보안, 회복 등의 기능을 제공하는 것도 필요합니다. 그렇게 하기 위하여 “데이터베이스 관리 시스템"이 만들어졌습니다.
“데이터베이스 관리 시스템”은 데이터베이스에 대한 전반적인 관리를 담당하는 소프트웨어입니다. 데이터베이스에 데이터를 통합하여 저장하고 또한 이를 관리하는 일을 합니다. 더 나아가 응용 프로그램을 대신하여 데이터베이스에 존재하는 데이터의 검색, 삽입, 삭제, 수정 등의 기능을 수행합니다.
데이터베이스 관리 시스템이 가진 기능은 다음과 같습니다.
- 자료 접근성 및 시스템 응답성 향상: 일반 이용자들도 데이터 조작을 쉽게 하도록 SQL 등을 제공하여 불특정한 조건 검색에 유용합니다.
- 중앙집중적 자료 통제: 모든 데이터가 한 곳에 저장되어 있기에 통제하기 편합니다. 전체 데이터에 대한 사용 관리를 효과적으로 수행 가능합니다.
- 데이터 중복성 최소화: 자료의 통합 저장은 중복 저장을 방지하는데 이를 통해 저장 공간의 낭비를 줄이며 불일치 자료의 발생을 차단하는 효과를 가져옵니다.
- 데이터 독립성 유지: 통합된 자료의 독립성을 보장합니다. 다른 자료에 영향을 주지 않으며 특정 자료의 구조를 변경할 수 있습니다.
- 데이터 보안성 보장: 자료가 한 곳에 저장되어 있기에 보안을 유지하기 좋습니다. 외부 사용자나 접근 권한이 없는 사용자의 불법 행위를 막기 좋습니다.
- 데이터 일관성 유지: 데이터의 표현 형태 및 개별 시스템에서 사용하는 자료 값의 불일치 결과를 제거할 수 있습니다.
- 데이터 무결성 유지: 데이터 항목별로 단일 자료 값에 대한 영역을 설정하며, 제약조건을 만족하는 값만 입력되도록 세분화된 데이터 유형 정의도 가능합니다. 참조 무결성, 데이터베이스 관리 시스템 안의 다른 데이터를 참조할 때 해당 데이터가 반드시 존재해야 함을 보장합니다.
02. 데이터 모델
1) 데이터 모델 개념
“데이터 모델”이란 데이터를 데이터베이스에 저장하는 구조를 뜻합니다. “자료구조", “연산", “제약조건"으로 구성되어 있으며, 종류에 따라 “계층형 데이터 모델”, “네트워크형 데이터 모델”, “관계형 데이터 모델”, “객체 지향형 데이터 모델”, “객체 관계형 데이터 모델”로 나뉩니다.
2) 계층형 데이터 모델
계층형 데이터 모델은 1960~1970년대에 주로 사용된 데이터 모델이며, “레코드"와 “링크"로 구성된 트리 구조입니다. “부모-자식” 형태의 정보를 링크로 연결하여 표현합니다.
3) 네트워크형 데이터 모델
네트워크형 데이터 모델 또한 1960~1970년대에 주로 사용된 데이터 모델이며, 그래프 형태로 구성한 모델입니다. 레코드는 노드로 나타내고, 레코드와 레코드는 간선으로 연결합니다. 각 레코드는 부모-자식 형태의 정보를 여러 개 가질 수 있으며, 그렇기에 노드와 노드의 관계는 n : n 관계입니다.
4) 관계형 데이터 모델
관계형 데이터 모델은 “행과 열"로 구성된 2차원 테이블 형태로 1980년대 초반에 등장하여 오늘날까지도 주로 쓰이는 데이터 모델입니다. 각 레코드는 표 형식인 “테이블"에 담기며, 레코드들 간 공통된 속성으로 연결합니다.
5) 객체 지향형 데이터 모델
객체 지향형 데이터 모델은 1980년대 후반에 등장한 모델이며, 객체 지향 프로그래밍 개념을 바탕으로 데이터와 프로그램을 독립적인 형태로 구성된 모델입니다. 복잡한 유형의 데이터를 처리하기 좋고 객체를 이용하기 좋지만, 처리 속도와 포인터 사용 등의 문제로 대중화하기에 한계가 있었습니다.
6) 객체 관계형 데이터 모델
객체 관계형 데이터 모델은 관계형 데이터 모델에 객체 지향 개념을 도입한 데이터 모델로 1990년대 후반에 등장했습니다. 객체 지향형 데이터 모델과 관계형 데이터 모델의 장점만을 모아 놓은 형태이기에 활용도가 높지만, 기술적인 문제로 인해 관계형 데이터 모델을 사용하는 경우가 많습니다.
03. 빅데이터
1) 빅데이터 등장 배경
4차 산업혁명 시대가 다가오며 ICT 기술은 점차 발전했고 그에 따라 데이터의 양 또한 기하급수적으로 늘어나게 되었습니다. 전 세계의 디지털 데이터 양은 매년 제타바이트($2^{70}$) 단위로 증가한다고 합니다. 이렇게 늘어나는 데이터 양을 기존의 데이터 관리 방법으로는 처리하기 힘들어졌습니다. 이로 인해 새로이 “빅데이터"라는 개념이 등장했으며 그에 대한 관심은 더욱 높아지고 있습니다.
2) 빅데이터 개념
“빅데이터”는 기존의 데이터베이스 관리 시스템으로 처리하기 어려운 많은 양의 정형 데이터와 비정형 데이터를 의미합니다. 빅데이터의 속성으로는 7V [규모(Volume), 속도(Velovity), 다양성(Variety), 정확성(Veracity), 가치(Value), 시각화(Visualization), 바이럴리티(Virality)] 를 정의합니다.
3) 빅데이터 처리 과정
빅데이터는 “데이터 생성과 수집”, “저장", “처리", “분석", “표현"의 과정에 따라 처리합니다.
(1) 빅데이터 소스 생성과 수집 기술
데이터는 소스 위치에 따라 “내부 데이터”와 “외부 데이터”로 분류됩니다. 데이터 수집 또한 “내부 데이터 수집"과 “외부 데이터 수집"으로 구분됩니다.
(2) 빅데이터 저장 기술
데이터 저장 관리는 데이터를 나중에도 사용할 수 있도록 안전하고 효율적으로 저장하는 것입니다. 빅데이트의 특징인 ‘대용량, 비정형, 실시간성' 이를 아우르는 저장 방식이 필요합니다.
(3) 빅데이터 처리 기술
빅데이터 처리 기술로는 Haddop, R, NoSQL 등이 있습니다.
(4) 빅데이터 분석 기술
빅데이터 분석 기술은 대부분 기존의 통계학, 전산학, 머신러닝, 데이터마이닝 분야에 사용되고 있는 것들입니다. 기존의 분석 기술 알고리즘을 대규모 데이터 처리 방식에 맞게 수정하고 개선하여 적용합니다. 대표적으로는 “텍스트마이닝", “웹마이닝", “오피니언마이닝", “소셜 네트워크 분석", “기계 학습" 등이 있습니다.
(5) 빅데이터 표현 기술
어렵고 복잡한 정보를 쉽게 이해할 수 있도록 간단한 도표, 3D 이미지 등으로 데이터 분석 결과를 표현합니다.