시작 23.04.10 ~ 계속해서 업데이트 예정
스터디원 : birdie, 고뭉남, 로이, 하나, 코어
정보는 개인이나 조직이 올바른 의사 결정을 내리는데 중요한 판단 기준이 되기 때문에, 현대 사회에서 개인이나 조직의 성공 여부를 결정짓는 중요한 요소이다. 즉 현재 상황을 정확하게 반영하는 가치 있는 정보를 많이 보유하는 것이 중요하다. 그렇다면 정보란 무엇인지 먼저 살펴보도록 하자.
정보와 데이터를 같은 의미로 사용하는 경우가 있는데, 이 둘은 명확이 구분되는 개념이다.
데이터는 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값으로, 자료라고도 한다.
정보는 데이터를 의사결정에 유용하게 활용할 수 있도록 처리하여 체계적으로 조직한 결과물이다.
예를 들어, 서울의 날씨를 측정하기만 하는 것은 데이터이지만, 데이터를 바탕으로 평균 기온을 구하는 것은 정보다.
위의 예시와 같이 데이터에서 정보를 추출하는 과정, 방법을 정보처리라고 한다.
즉 정보처리는 데이터를 상황에 맞게 분석하거나 해석하여, 데이터 간의 의미 관계를 파악하는 것이다.
한빛 인터넷 쇼핑몰 주문 내역의 정보 처리를 통해 제품별 총 판매액과 분기펼 총 판매액을 추출할 수 있다.
이렇게 추출한 정보를 통해 다음과 같은 전략을 세울 수 있다.
"에어컨이 잘 팔리니, 더 발전시켜서 판매액을 증대시켜야겠다."
"청소기가 잘 안팔리니, 프로모션을 진행해야겠다."
"4분기에 판매액이 떨어지니, 4분기에 이벤트를 진행해서 판매액을 늘려야겠다."
정보 시스템
조직 운영에 필요한 데이터를 수집하여 저장해두었다가, 의사 결정이 필요할 때 처리하여 유용한 정보를 만들어주는 수단을 정보 시스템이라고 한다.
데이터베이스
데이터베이스라는 용어는 1963년 '컴퓨터 중심의 데이터베이스 개발과 관리' 심포지엄에서 공식적으로 처음 소개되었다.
쉽게 말해 관련 있는 데이터를 모아두는 창고이다.
일반적으로 데이터베이스는 특정 조직의 여러 사용자가 '공유'하여 사용할 수 있도록 '통합'해서 '저장'한 '운영'데이터의 집합 이라고 정의한다.
공유 데이터
- 데이터베이스는 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있어야 하기 때문에, 사용 목적이 다른 사용자들을 두루 고려하여 데이터베이스를 구성해야 한다.
통합 데이터
- 데이터베이스는 데이터 중복성을 허용하지 않는다. 즉 데이터의 중복을 최소화하고, 통제가 가능한 중복만 허용하는 데이터이다.
저장 데이터
- 데이터베이스의 데이터는 주로 컴퓨터가 처리하므로, 컴퓨터가 접근할 수 있는 매체에 데이터베이스를 저장해야 한다.
운영 데이터
- 데이터베이스는 조직을 운영하고 조직의 주요 기능을 수행하기 위해 꼭 필요하다. 일시적으로 사용하고 마는 것이 아닌, 지속적으로 유지해야 하는 데이터이다.
데이터베이스의 특징
데이터베이스는 실시간 접근이 가능하다
- 데이터베이스는 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 한다.
데이터베이스는 계속 변화한다.
- 데이터베이스는 동적인 특징이 있어, 데이터를 삽입, 삭제, 수정하여 현재의 정확한 데이터를 유지해야 한다.
데이터베이스는 동시 공유가 가능하다
- 동시 공유는 여러 사용자가 서로 다른 데이터를 동시에 사용하는 것뿐 아니라, 같은 데이터를 동시에 사용하는 것도 지원해야 한다.
데이터베이스는 내용으로 참조가 가능하다
- 데이터베이스는 저장된 주소나 위치가 아닌 데이터의 내용, 즉 값으로 참조할 수 있다.
데이터베이스의 가장 중요한 목적은 데이터를 모아두는 것이다.
데이터를 모아두기 위해, 데이터의 유형을 다양한 기준으로 분류해보자.
형태에 따른 데이터 분류
데이터는 구조화된 형태에 따라 정형 데이터, 반정형 데이터, 비정형 데이터로 분류할 수 있다.
정형 데이터
정형 데이터는 구조화된 데이터, 즉 미리 정해진 구조에 따라 저장된 데이터이다.
```JSON
{```
특정에 따른 데이터 분류
데이터 속에 숨겨진 가치 있는 정보를 추출하기 위해서 데이터 특성에 맞는 저장 및 분석 기술을 적용할 필요가 있다. 따라서 데이터의 저장 및 처리 기술을 공부하기 전에 여러 기준으로 데이터를 분류하고 데이터에 대해 이해하는 것이 무엇보다 중요하다.
데이터베이스를 사용하여 데이터를 관리하기 전에는, 파일 시스템이라는 소프트웨어를 사용해서 데이터를 관리해왔다.
파일 시스템은 데이터를 파일로 관리하기 위해 파일을 생성, 삭제, 수정하는 기능을 제공하는 소프트웨어이다.
파일 시스템은 별도의 구매 비용이 들지 않는다는 장점이 있지만, 응용 프로그램마다 파일을 따로 유지하는 특징 때문에 다음과 같은 문제가 발생한다.
1. 같은 내용의 데이터가 여러 파일에 중복 저장된다.
파일 시스템은 응용 프로그램별로 파일을 유지하므로 같은 데이터가 여러 파일에 저장될 수 있다. 즉 데이터 중복성의 문제가 발생한다.
데이터가 중복되면 저장 공간이 낭비될 뿐만 아니라, 데이터 일관성과 데이터 무결성을 유지하기가 어렵다.
2. 응용 프로그램이 데이터 파일에 종속적이다.
응용 프로그램은 파일에 직접 접근하여 데이터를 처리해야 하므로, 사용하는 파일의 데이터를 구성하는 방법이나, 물리적인 저장 구조에 맞게 작성되어야 한다. 그래서 사용하는 파일의 구조를 변경하면 응용 프로그램도 함께 변경해야 하는데 이러한 특징을 데이터 종속성이라 한다.
3. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족하다.
일반 파일 시스템은 응용 프로그램 하나가 사용 중인 파일을 다른 으용ㅇ 프로그램이 접근하여 사용할 수 있는 동시 공유 기능을 제공하지 않는다. 또한 파일 시스템에서 응용 프로그램에 장애가 발생하면, 데이터를 일관된 상태로 회복하기 어렵다.
4. 응용 프로그램을 개발하기 쉽지 않다.
파일 시스템에서는 파일에 접근하여 데이터를 관리하는 모든 작업을 응용 프로그램이 담당해야 하기 때문에 사용자 요구에 맞는 응용 프로그램을 개발하는데 어려움이 많다.
새로운 응용 프로그램을 개발하려면 파일에서 데이터 읽기, 데이터 삽입, 기존 데이터 삭제 등의 기본적인 데이터 관리 기능을 모두 포함해야 한다.
파일 시스템의 근본 원인은 데이터 중복성과 데이터 종속성으로 요약할 수 있다.
이와 같이 데이터를 통합하여 저장한다면 위의 문제를 1차적으로 해결할 수 있다.
하지만 통합 저장된 데이터를 관리하고 모든 응용 프로그램이 공통으로 요구하는 데이터에 대한 기본 처리를 담당하면서 동시 공유, 보안, 회복 등의 복잡한 기능을 제공해주는 새로운 무엇이 여전히 필요하다.
-> 이를 만족하는 것이 데이터베이스 관리 시스템이다.
더 자세히 들어가기에 앞서 데이터베이스와 데이터베이스 관리 시스템의 정확한 개념을 먼저 확인하자.
데이터베이스
데이터베이스 관리 시스템(DBMS)
데이터베이스 관리 시스템이 제공하는 주요 기능은 다음 세 가지로 요약할 수 있다.
기능 | 정의 |
---|---|
정의 기능 | 데이터베이스 구조를 정의하거나 수정할 수 있다. |
조작 기능 | 데이터를 삽입 삭제 수정 검색하는 연산을 할 수 있다. |
제어 기능 | 데이터를 항상 정확하고 안전하게 유지할 수 있다. |
제어기능은 DMBS의 조작 기능 후에도 데이터의 일관성, 무결성을 유지해준다.
장점 | 단점 |
---|---|
데이터 중복을 통제할 수 있다 | 비용이 많이 든다 |
데이터 독립성이 확보된다. | 백업과 회복 방법이 복잡하다 |
데이터를 동시 공유할 수 있다 | 중앙 집중 관리로 인한 취약점이 존재한다 |
데이터 보안이 향상된다 | |
데이터 무결성을 유지할 수 있다 | |
표준화할 수 있다 | |
장애 발생 시 회복이 가능하다 | |
응용 프로그램 개발 비용이 줄어든다 |
데이터베이스 관리 시스템은 발전 과정에 따라 다음 4세대로 나누어 볼 수 있다.
1980년대 초반부터 계속 사용되어 온 관계 DBMS가 2세대에 속한다.
관계 DBMS는 테이터베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다.
ex) 오라클, MS SQL 서버, 액세스, 인포믹스, MySQL, 마리아DB 등
1980년대 후반에 등장한 객체지향 DBMS는 객체지향 프로그래밍에서 도입한 객체라는 개념을 이용해 데이터베이스를 구성하는 객체지향 데이터 모델 사용
ex) 오투, 온투스, 젬스톤
1990년대 후반에 등장한 객체관계 DBMS
-> 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델을 사용한다. 즉 객체지향 DBMS와 관계 DBMS의 개념을 통합한 것이다.
ex) 오라클
일반적으로 단순하고 이해하기 쉬운 구조인 관계 DBMS가 많이 사용된다.
객체관계 DBMS의 사용도 늘고 있어서 2세대와 3세대 DBMS가 공존하는 추세이다.
3세대 DBMS가 등장한 뒤에도 대표적인 데이터베이스 관리 시스템은 여전히 RDBMS라는 인식이 일반적이었다.
그런데 수많은 사람들이 소셜 네트워크 서비스를 폭발적으로 이요하면서, 사진, 동영상, 검색 로그와 같은 비정형 데이터가 대량으로 생산되었다. 이와 더불어 클라우드 컴퓨팅, 빅데이터의 개념이 등장하면서 RDBMS에 대한 확신이 흔들리게 되었다.
RDBMS는 빠른 속도로 증가하는 비정형 데이터를 처리하는데 비효율적
-> 하드웨어 발전만으로는 커버하기 힘들다.
이러한 시대적 흐름이 NoSQL DBMS 등장을 이끌었다.
NoSQL DBMS는 RDBMS의 강점인 안정성과 일관성 유지를 위한 복잡한 기능을 포기하고, 데이터 구조를 미리 정해두지 않기 때문에 비정형 데이터를 처리하는데 적합하다.
구글, 페이스북, 트위터 같은 SNS를 제공하는 회사들이 NoSQL의 필요성을 강조하면서 더 주목받게 되었다.
ex) 몽고디비, H베이스, 카산드라, 레디스, 오리엔트 DB
원래 SQL은 관계 DBMS를 위한 표준 질의어다. NoSQL에서 SQL은 관계 DBMS를 의미하는 것으로 생각하면 된다.
NoSQL의 많은 장점에도 불구하고, 일반 기업들은 관계 DBMS가 제공하는 안정성과 일관성을 여전히 중요하게 평가하고 있다. 그 이유는 기업에서 정형 데이터가 차지하는 비율이 높기 때문이다. 따라서 정형 데이터를 정확하게 처리하기 위해서 기존의 관계 DBMS를 그대로 유지해야 하고, 비정형 데이터를 처리하려면, NoSQL을 추가로 도입해야 하는 부담이 발생한다.
-> 이러한 불편함이 NewSQL DBMS의 등장을 이끌었다.
즉 RDBMS의 장점과 NoSQL의 확장성 및 유연성을 모두 지원한다.
ex) 구글 스패너, 볼트DB, 누오DB
그렇지만 NewSQL이 RDBMS나 NoSQL을 완전히 대신할 수 있는 것은 아니다.
NewSQL은 시장에 진입한지 얼마 되지 않았으므로, 앞으로 큰 발전 가능성이 있지만,
당분간은 RDBMS와 NosQL, NewSQL이 상호 보완하면서 공존할 것이다.
대박 잘보고갑니다