데이터를 구분하는 기준
1. 스키마 형태의 유무
(+스키마란? 데이터베이스를 구성하는 요소들 개체,속성,관계, 제약조건 등)
2. 연산가능 여부
(+연산이란? 데이터베이스와 통신하기 위해 SQL언어사용)
정형데이터
스키마 구조라는 특정한 형태를 가지고 있다.(ER모델로 관계를 정의가능)
(+스키마 구조? 어떤 데이터가 테이블에 들어가고, 안들어가고를 정의하는 필드집합)
연산이 가능하다(관계 정의가 가능하다)(트랜잭션을 수행함)
마리아/오라클/MySQL과 같은 RDBMS에 저장합니다.
비정형데이터
스키마 구조라는 형태 없음(텍스트나 영상데이터처럼 특정한 형태가 없음)
연산도 불가능합니다.하지만 필요한 형식으로 저장이 되는 유연한 구조로
몽고디비와 같은 NoSQL에 저장합니다.
반정형데이터
정형데이터처럼 특정한 형태가 있지만,
연산이 불가능함 (로그데이터, JSON데이터처럼)
기준 | 정형 | 반정형 | 비정형 |
스키마형태 유무 | 있음 | 있음 | 없음 |
연산가능(관계) 여부 | 가능 | 불가능 | 불가능 |
저장구조 | RDBMS | 파일형식 | NoSQL |
데이터베이스의 저장구조
RDBMS (Relational Database Management System)
1) 정의 : 정해져 있는 스키마에 따라 테이블에 저장되고, 관계를 통해 테이블 간 연결하는 저장구조
2) 장점
1. 명확한 데이터구조 보장
2. 데이터에 맞게 테이블을 구분해서 데이터 중복 최소화 => 데이터무결성 보장가능
3) 단점
1. 비용적 부담(오라클 시스템 사용)
2. 시스템이 복잡해질 수록 연산이 어려워서 성능저하
3. 수평적 확산 어려움
*수평적확산 VS 수직적 확산
수평적확산 : 더 많은 서버가 추가되고, 디비가 전체적으로 분산됨. 하나의 디비에서 작동되지만 여러호스트에서 작동
수직적확산 : 단순히 DB의 서버 성능을 향상시키는 것
데이터가 저장되는 방식때문에 RDBMS는 수직적확산만 지원
4) 사용목적
명확하게 정의된 스키마, 데이터 무결성 보장이 가장 중요한 데이터일때 사용하는 저장구조
NOSQL(Not Only SQL, Non Relational Database)
1) 정의
스키마라는 개념이 없음, 자유롭게 데이터를 관리할 수 있음
테이블과 같은 개념으로 컬렉션이라는 형태로 데이터를 관리함
그래서 RDBMS는 스키마구조가 아니면 그 테이블에 데이터를 저장할 수 없지만,
NoSQL은 다른 구조의 데이터를 같은 컬렉션에 저장할 수 있음
2) 장점
1. 정해진 형식이 없다보니 자유롭게 데이터 추가가능(많은 데이터에 유용)
복잡한 테이블구조를 신경쓰지 않아도 됌
2. 분산처리기능 가능 =>수평적 확산이 쉽다.
+분산형구조 : 여러대의 서버에 분산해 저자앟고, 분산시에 데이터를 상호복제해서 특정서버에 장애가 발생했을떄도 데이터유실이나 서비스 중지가 없는 형태의 구조
3) 단점
1. 자유롭게 데이터 추가해서 데이터중복 발생가능
그래서특정 데이터를 같이 사용하는 모든 컬렉션에서 , 똑같은 데이터 업데이트를 수행해야함
4) 사용목적
정확한 데이터구조를 알수 없거나 변경/확장되는 데이터를 저장할때
데이터 변경보다 조회를 많이 하는 경우
한번의 변경으로 많은 데이터를 다시 업데이트 할 필요가 없는 경우-> 데이터중복이 발생하니까)
막대한 양의 데이터를 다루는 경우(수평적으로 확장하는 경우)
RDBMS | NoSQL | |
스키마유무 | 있음 | 없음 |
관계정의 | 가능(조인가능) | 불가능(조인불가능) |
트랜잭션 지원 | 가능 | 불가능 |
데이터무결성 | 보장(데이터중복 최소화) | 보장X(데이터중복 발생) |
분산처리 | 불가능 (수평적확산 어려움) | 가능(수평적 확산 쉬움) |
출처 : RDBMS와 NOSQL차이
'🌱 Computer Science > Database' 카테고리의 다른 글
SQL 기본문법정리1(DDL/DML/DCL/TCL) (0) | 2020.01.20 |
---|---|
[Mysql아키텍쳐2] 스레드구조/IO매커니즘/InnoDB 내부구조 (1) | 2020.01.20 |
[Mysql 아키텍쳐1] 커넥션풀/Mysql엔진/스토리지엔진 (0) | 2020.01.19 |
OLAP/OLTP/DW/ETL 용어정리 (0) | 2020.01.17 |
PLSQL 트리거/프로시져/함수차이점 (0) | 2020.01.14 |
트랜잭션 특징(ACID) /Rollback /Commit (0) | 2020.01.12 |