데이터베이스에 대한 중요성을 알게 되고 이를 정리하기 위해 글을 작성한다.
데이터와 정보
데이터: 현실 세계에서 단순히 관찰하거나 측정하여 수집한 사실이나 값(실제 값 그 자체)
정보: 의사 결정에 유용하게 활용할 수 있도록 데이터를 처리한 결과물(가공한 값)
정보시스템: 조직 운영에 필요한 데이터를 수집하여 저장해 두었다 필요할 때 유용한 정보를 만들어 주는 수단
데이터베이스: 정보 시스템 안에 데이터를 저장하고 있다 필요할 때 제공하는 역할
데이터베이스
정의
특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합
특징
- 실시간 접근
- 계속 변화
- 동시 공유
- 내용 기반 참조
형태에 따른 데이터의 분류
정형 데이터- 구조화된 데이터(엑셀의 스프레드 시트)
반정형 데이터- 구조에 따라 저장된 데이터, 데이터 내용 안에 구조에 대한 설명이 함께 존재(xml, json)
비정형 데이터- 정해진 구조가 없이 저장된 데이터 (소셜 데이터의 텍스트, 영상)
특성에 따른 데이터 분류
범주형 데이터: 범주로 구분할 수 있는 값을 가진 데이터(크기 비교, 산술적 연산 가능 x)
- 명목형 데이터: 순서가 없는 값(성별, 혈액형)
- 순서형 데이터: 순서가 있는 값(학년, 학점)
수치형 데이터: 크기 비교와 산술적인 연산이 가능한 숫자 값을 가진 데이터
- 이산형 데이터: 개수를 셀 수 있는 숫자 값을 가지는 데이터(고객수, 판매량)
- 연속형 데이터: 측정을 통해 얻어지는 연속적인 값을 가진 데이터(키, 몸무게)
데이터 베이스 관리 시스템의 등장 배경
파일 시스템
- 데이터를 파일로 관리하기 위해 파일을 생성, 삭제, 수정, 검색하는 기능을 제공하는 소프트웨어
- 응용 프로그램마다 필요한 데이터를 별도의 파일로 관리함
문제점
- 데이터 중복성
- 데이터의 일관성과 데이터의 무결성 유지가 어려움
- 응용 프로그램이 데이터 파일에 종속적임
- 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족
- 응용 프로그램 개발이 어려움
DBMS
- 데이터베이스 관리 시스템
- 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어
- 조작에 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리함
- DBMS 서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시 접근 제어 등의 기능을 수행
- 데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지함
주요 기능
- 정의 기능 - 데이터베이스 구조를 정의하거나 수정할 수 있다.
- 조작 기능 - 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있다.
- 제어 기능 - 데이터를 항상 정확하고 안전하게 유지할 수 있다.
장점
- 데이터 중복 가능성이 낮음
- 데이터의 일관성이 유지됨
- 데이터 정의와 프로그램의 독립성 유지 가능
- 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등을 수행
- 짧은 시간에 큰 프로그램을 개발할 수 있음
단점
- 비용이 많이 든다 - DBMS 설치로 인한 구매 비용, 동시 접속자 허용 수에 따라 제품 가격 증가
- 백업과 회복이 복잡 - 데이터 양이 많아 구조 복잡, 대용량 트래픽으로 인한 장애 발생 시 원인파악 어려움
- 중앙 집중 관리로 인한 취약점 - 모든 데이터가 베이터베이스에 통합 -> DBMS에 집중
데이터 정의 - 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행함
데이터 조작 - 데이터를 조작하는 소프트웨어가 요청하는 데이터의 삽입, 수정, 삭제 작업을 지원함
데이터 추출 - 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출함
데이터 제어 - DB 사용자를 생성하고 모니터링하며 접근을 제어함. 백업, 회복, 동시성제어 등 기능을 지원함
데이터 모델
포인터 사용 - 계층 데이터 모델, 네트워크 데이터 모델
속성값 사용 - 관계 데이터 모델
객체식별자 사용 - 객체 데이터 모델
데이터베이스 관리 시스템의 발전 과정
1세대
- 네트워크 DBMS - 데이터베이스를 그래프 형태로 구성
- 계층 DBMS - 데이터베이스를 트리 형태로 구성
2세대
- 관계 DBMS - 데이터베이스를 테이블 형태로 구성
3세대
- 객체지향 DBMS - 객체를 이용해 데이터베이스를 구성
- 객체관계 DBMS - 객체지향 DBMS + 관계 DBMS
4세대
- NoSQL DBMS - 비정형 데이터를 처리하는데 적합하고 확장성이 뛰어남 - 안정성과 일관성 유지를 위한 복잡한 기능 포기, 데이터 구조를 미리 정해두지 않는 유연성을 가능
- NewSQL DBMS - 관계 DBMS의 장점 + NoSQL의 확장성 및 유연성
확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용
고성능의 DB(Scale Up), 여러 DB 시스템 추가 (Scale Out)
유연성: NoSQl DB는 일반적으로 유연한 스키마를 제공하여 보다 빠르고 반복적인 개발을 가능하게 해 줌
확장성: NoSQL DB는 일반적으로 고가의 강력한 서버를 추가하는 대신 분산형 하드웨어 클러스터를 이용해 확장하도록 설계
고성능: NoSQL DB는 특정 데이터 모델 및 액세스 패턴에 대해 최적화되어 뛰어난 성능을 얻게 해 준다.
고기능성: NoSQL DB는 각 데이터 모델에 맞춰 특별히 구축된 뛰어난 기능을 API와 데이터 유형을 제공해 줌
'CS' 카테고리의 다른 글
관계 데이터 모델 (0) | 2023.04.14 |
---|---|
데이터베이스 시스템(DBS) (0) | 2023.04.14 |
HTTP 상태 코드 (2) | 2023.01.04 |
5주차 CS 스터디 Operating System&Spring (1) | 2022.11.08 |
4주차CS스터디Network&Spring (0) | 2022.10.27 |