MYSQL에 데이터타입에 JSON을 지원하게 되었다. → 관계 객체형으로 쓰일 수 있다. 오늘날 big 데이터 시장에서 중요한 시사점을 갖는다.
1. 계층형(Hierachical) 데이터베이스 관리 시스템(HDBMS): 데이터가 계층적이며 상하 종속적인 관계로 구성- 장점 : 데이터의 엑세스 속도가 빠르고, 데이터의 사용량을 쉽게 예측 할 수 있다.- 단점 : 상하 종속적인 관계로 구성되어 있어 초기 셋팅 후 변화하는 프로세스를 수용하기가 쉽지 않다.
2. 망형(Network) 데이터베이스 관리 시스템 (NDBMS): 데이터 구조를 네트워크상의 노드 형태로 논리적이게 표현한 데이터 모델로서 각각의 노드를 서로 대등한 관계로 구성한 시스템(여기서 노드란 시스템을 의미하는 것이 아니라 자료를 말한다.)- 장점 : 계층형데이터베이스관리 시스템의 문제점인 상하 종속적인 관계는 해결되었다.- 단점 : 구성과 설계가 복잡하고 궁극적으로 데이터의 종속성을 해결하지 못하였다.
3. 관계형(Relational) 데이터베이스 관리시스템(RDBMS): 수학적 논리 관계를 테이블의 형태로 구성한 구조로서 테이블 내의 컬럼 중 일부를 다른 테이블과 중복해 각 테이블간의 상관관계를 정의- 장점 : 업무 변화에 대한 적응력 높아 변화하는 업무에 쉽게 활용하며 유지보수 편리하다. 따라서 생산성도 향상된다.- 단점 : 다른 DBMS 보다 더 많은 자원이 필요로해 시스템의 부하가 높다.
4. 객체지향(Object Oriented) 데이터베이스 관리 시스템(ODBMS): 멀티미디어 데이터의 원활한 처리와 RDBMS의 비지니스형 데이터 타입만 처리되는 기본적인 제한점을 극복하고자 고안
(※비지니스형 데이터 타입?? 문자, 숫자,날짜형 데이터)
데이터웨어하우스 = 데이터 창고
- 사용자의 의사결정에 도움을 주기 위해 다양한 시스템에서 데이터를 추출, 변환, 요약하여 능동적으로 사용자에게 제공될 수 있는 데이터베이스 집합체
- 기본적으로 관계형 데이터베이스(RDB)가 있는 상태에서 데이터웨어하우스(DW)를 구성한다. DB와 차원이 다른 데이터를 저장, 무형식의 데이터가 많으므로 DW에서 유용한 정보를 뽑아내는 과정이 중요하다. 예를 들면 음악이나 동영상 파일 중 필요한 부분을 추출해서 사용자에게 보여줄 수 있다.
- 데이터 원산지(DB)에서 데이터를 조달해 오면, 이 데이터를 예쁘게 어떻게 쌓을 것인지가 DW 설계의 목적이다. 이러한 설계는 노하우가 없으면 하기 힘든데, 미리 많이 쌓아본 설계가 BI(Business Intellingence) 프로그램이라 한다. 이러한 프로그램을 문제를 해결해 줬다고 하여 솔루션이라 부른다.
- DW는 ERP 기능과 비슷하다.
장점
- 더욱 좋은 의사 결정 가능
- 많은 소스로부터 데이터 통함
- 데이터 품질, 일관성, 정확성
- Raw Data를 관리하는 트랜잭션 데이터베이스와 데이터 웨어를 분리 관리, 두 데이터를 관리하는 서비스의 성능을 향상
- 히스토리 관리
기타 DBMS 종류
- Maria DB : MySQL이 sun으로 넘어가면서 당시 MySQL 출신들이 따로 나와 MySQL 기반으로 한 오픈 소스 DBMS
- PostgreSQL : ORDBMS, 엔터프라이즈급이나 차세대 DBMS에서 제공하는 기능들을 제공
- MongoDB : 많이 쓰이는 NoSQL, 다양한 인덱신 지원
- Couchbase : memcahed + CouchDB, 단순히 In-memory DB인 memcached에 persistence를 붙여 DB로 만든것이 membase이고 여기에 CouchDB를 결합하여 persistence layer를 CouchDB로 대체시킨 것이 Couchbase. 맵&리듀스 방식을 사용한다.
- memcached : memcached는 레디스와 다르게 순수한 메모리 DB다.
- Redis : REmote DIctionary System. NoSQL로도 분류된다. 레디스는 memcached와 다르게 데이터를 디스크에 저장할 수 있다..
information_schema
- 데이터가 많을 경우 목록화 시킬 필요가 있는데, 이러한 요구에 생겨난 것이 메타데이터이다.
- MySQL은 메타데이터들을 묶어 테이블을 만들고, 테이블을 모아 데이터베이스를 만드는데, 그 데이터베이스가 바로 information_schema이다.
- MySQL 서버가 운영하는 모든 다른 데이터베이스에 대한 정보를 저장하는 장소이다.
- 대부분의 infomation_schema 안에 table 들은 읽기 권한만 가지고 있어서 인위적인 수정을 불가능하다.
performance_schema
- DBMS의 곳곳에 숨어있는 여러 수집 도구용 코드들을 통해 성능 데이터를 수집하여 메모리에 쌓아두고, 이를 사용자가 SQL을 통해 집계 조회, 집계해 볼 수 있도록 만든 도구
- 위의 information 스키마는 가장 중요한 메타 정보들을 담고 있기에 사용자에게 권한을 주더라도 삭제할 수 없지만, performance 스키마는 물리적 테이블로 구성되어있어서 삭제도 가능하다
'study > TIL🐥' 카테고리의 다른 글
ORM/NoSQL (0) | 2020.12.27 |
---|---|
DAO란? (0) | 2020.12.27 |
데이터웨어하우스(DW)란? (0) | 2020.12.27 |
인텔리제이의 장점 (0) | 2020.12.26 |
String 객체 생성의 차이 (0) | 2020.12.26 |