03. 데이터베이스 기초 활용하기
📌 데이터베이스
✅ 개념
- 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합
- 데이터에 대한 효과적인 관리를 위해 자료의 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장 중요
- 정의
- 통합된 데이터
- 저장된 데이터
- 운영 데이터
- 공용 데이터
✅ 특성
- 실시간 접근성 : 쿼리에 대해 실시간 응답 가능
- 계속적인 변화 : 항상 최신 데이터 유지
- 동시 공용 : 다수의 사용자가 같은 내용 데이터 이용 가능 해야함
- 내용 참조 : 사용자가 요구하는 데이터 내용으로 데이터 찾음
✅ 종류
- 파일 시스템
- 종류
- ISAM : 자료 내용은 주 저장부, 색인은 자료 위치와 함께 색인부
- VSAM : 대형 운영체제에서 사용
- 관계형 데이터베이스 관리시스템(RDBMS)
- 가장 보편화된 DBMS
- 테이블의 일부를 다른 테이블과 상하 관계로 표시하며 상관관계 정리
- 변화하는 업무나 데이터 구조에 대한 유연성 Good
- 종류 : Oracle, SQL Server, MySQL, Maria DB 등
- 계층형 데이터베이스 관리시스템(HDBMS)
- 데이터를 상하 종속적인 관계로 계층화하여 관리
- 데이터에 대한 접근 속도가 빠르지만, 종속적인 구조로 변화하는 데이터 구조에 유연하게 대응하기 쉽지 않다
- 종류 : IMS, System2000 등
- 네트워크 데이터베이스 관리 시스템(NDBMS)
- 네트워크 망 형태로 표현
- 트리 구조나 계층형 DB보다는 유연하지만 설계 복잡
- 종류 : IDS, IDMS 등
✅ 데이터베이스 관리 툴
- 기능
- DB 생성, 삭제
- SQL 명령어 작성 및 실행
- 상태 모니터링
- 사용자 계정 관리
- DB 내보내기/가져오기
- 환경설정
📌 DBMS
: 데이터 관리의 복잡성 해결 + 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등 기능 지원하는 SW
✅ 유형 (키컬도그)
- 키-값(Key-Value) DBMS
- 키 기반 Get / Put / Delete 제공, 메모리 기반에서 성능 우선 시스템 및 빅데이터 처리 가능 DBMS
- Unique 한 키에 하나의 값
- e.g. Redis, DynamoDB
- 컬럼 기반 데이터 저장(Column Family Data Store) DBMS
- Key안에 (Column, Value) 조합으로 된 여러 필드를 갖는 DBMS
- 테이블 기반, 조인 미지원, 컬럼 기반으로 구글의 Bigtable 기반으로 구현
- e.g. HBase, Cassandra
- 문서 저장(Document Store) DBMS
- 값의 데이터 타입이 문서 (XML, JSON)
- 복잡한 계층 구조 표현 가능
- e.g. MongoDB, Couchbase
- 그래프 DBMS
- 시맨틱 웹과 온톨로지 분야에서 활용되는 그래프로 데이터 표현
- 노드와 엣지로 특징되는 요소 특화
- 노드 간 관계 구조화 하여 저장
- e.g. Neo4j, AllegroGraph
✅ 특징
- 데이터 무결성 : 동일한 내용에 대해 서로 다른 데이터가 저장되는 것 허용 X
- 데이터 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터 일정
- 데이터 회복성 : 장애 발생 시 특정 상태로 복구되어야 함
- 데이터 보안성 : 불법적인 노출, 변경, 손실로부터 보호되어야 함
- 데이터 효율성 : 응답시간, 저장 공간 활용 등이 최적화 되어 사용자, SW, 시스템 등의 요구조건 만족시켜야 함
✅ 상용 DBMS 및 오픈 소스 기반 DBMS
- 상용 DBMS : 특정 회사에서 유료로 판매, 유지보수와 지원 원활
- 오픈소스 기반 DBMS : 오픈 소스 라이선스 정책 준용 범위 내에서 사용 자유로움
📌 데이터베이스 기술 트렌드
✅ 빅데이터
- 개념 : 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서는 수십 페타바이트(PB) 크기의 데이터
- 특성 (3Vs)
- 양(Volume)
- 다양성(Variety)
- 속도(Velocity)
- 빅데이터 수집, 저장, 처리 기술
- 비정형/반정형 데이터 수집 e.g. 척와, 플럼, 스크라이브
- 정형 데이터 수집 e.g.ETL, FTP, 스쿱, 하이호
- 분산 데이터 저장/처리 e.g. HDFS, 맵 리듀스
- 분산 데이터베이스 e.g. HBase
✅ NoSQL(Not Only SQL)
: 데이터 저장에 고정된 테이블 스키마가 필요하지 않고, 조인 연산 사용X, 수평적으로 확장이 가능한 DBMS
- 특성(BASE)
- Basically Available
: 언제든지 데이터는 접근할 수 있어야 함, 가용성 중시
- Soft-State
: 노드의 상태는 외부에서 전송된 정보를 통해 결정, 특정 시점에는 데이터의 일관성이 보장X
- Eventually Consistency
: 일정 시간이 지나면 일관성 유지
- 유형(키컬도그)
✅ 데이터 마이닝
- 개념
- 대규모로 저장된 데이터 안에서 통계적 규칙이나 패턴을 찾아내는 기술
- 데이터의 숨겨진 정보를 찾아내어 서비스와 제품에 도입하는 과정
- 주요 기법
- 분류 규칙
- 과거 데이터로부터 특성을 찾아내 분류모형을 만들어 새로운 레코드의 결과 값을 예측하는 기법
- 마케팅, 고객 신용평가 모형에 활용
- 연관 규칙
- 항목들 간의 종속관계 찾아내는 기법
- 제품이나 서비스의 교차판매, 매장 진열, 사기 적발 등 다양한 분야에서 활용
- 연속 규칙
- 연관 규칙에 시간 관련 정보 포함
- 이력데이터 시계열적으로 분석
- 데이터 군집화
- 유사한 특성을 지닌 몇 개의 소그룹으로 분할, 분류규칙과 유사
- 정보 없는 상태에서 데이터 분류
- 분석대상에 결괏값X, 판촉활동이나 이벤트 대상 선정하는데 활용