☝️RDB와 RDBMS의 차이점
RDB
관계형 데이터베이스
의 약자 (*Relational Database)
- 데이터를 테이블 형태로 저장하고 테이블들 간의 관계를 사용하여 데이터를 관리하는 것을 의미
- 데이터를 열과 행으로 구성된 테이블에 저장하며, 테이블은 각각 고유한 열(속성)행(레코드 또는 튜플)을 가지고 있음. 테이블 간의 관계는 공통된 속성을 통해 설정
RDBMS
- RDBMS(Relational Database Management System)
- 관계형 데이터베이스 관리 시스템의 약자
- 데이터를 저장, 관리, 조작하는 소프트웨어 시스템을 의미
- RDBMS는 RDB의 원칙을 구현,
- 사용자와 데이터베이스 사이의 인터페이스 역할을 하며, 데이터의 보안, 무결성, 백업, 복원 등의 기능을 제공합니다.
✏️RDB,RDBMS 요약
- RDB는 데이터 구조를 나타내는 모델
- RDBMS는 데이터베이스를 관리하는 소프트웨어 시스템.
Oracle, MySQL, PostgreSQL, Microsoft SQL Server 등
☝️RDBMS
✌️RDBMS란?
- 관계형 데이터베이스 관리 시스템의 약자
- 데이터는 관계형 테이터 모델에 기반하여 표 형태로 구성
- 표 형식의 데이터를 효율적으로 저장, 관리, 검색 및 수정하도록 지원
- sql문을 사용하여 데이터를 쿼리하고 조작
- sql은 데이터베이스에서 데이터를 검색, 추가, 삭제, 수정하는 데 사용되는 표준화된 언어
✌️RDBMS의 특징
- 데이터 구조화
- 데이터는 행과 열로 구성된 테이블 형식으로 구조화 이런 테이블은 관련된 데이터를 그룹화하는 데 사용
- 고수준의 테이터 조작언어를 사용하여 결합, 제약, 투영 등의 관계 조작에 의해 비약적으로 표현능력을 높일 수 있음
- 관계 조작에 의해 자유롭게 구조를 변경할 수 있음
✌️RDBMS의 장점
- 명확하게 정의된 스키마, 데이터 무결성 보장
- 관계는 각 데이터를 중복 없이 한 번만 저장
- 데이터의 일관성을 보증
- 복잡한 형태의 쿼리도 가능(Join 등)
- 데이터의 분류, 정렬, 탐색 속도가 빠르다.
- 유지보수 편함
- 정형 정보에 접근하는 가장 효율적이고 유연한 방법
스키마(Schema)란?
: 데이터의 구조, 제약 조건, 관계 등을 정의한 것. 즉 테이블, 열, 데이터 형식 등의 구조를 정의하는 청사진
데이터 무결성이란?
: DB - Key
데이터무결성이란?
- 데이터의 정확성, 일관성을 나타탬
- 데이터에 결함이 없는 상태, 데이터를 정확하고 일관되게 유지하는 것
✌️RDBMS의 단점
-
스키마에 준수하지 않는 레코드는 추가할 수 없다.
-
관계를 맺고 있어 조인문이 많은 복잡한 쿼리가 만들어질 수 있다.
-
대체로 수직적 확장만 가능
-
기작성된 스키마를 수정하기 어려움
-
시스템이 커지면 JOIN문이 많은 복잡한 쿼리가 만들어짐
-
성능 향상을 위해서는 Scale-up만을 지원해 비용 증가
-
많은 자원이 활용되어 시스템 부하가 높음
☝️NoSQL
✌️NoSQL이란?
- Not Only SQL의 약자
- 비관계형 데이터베이스
- 대량의 분산된 데이터를 저장하고 조회하는데 특화, 스키마 없이 사용가능하거나 느슨한 스키마를 제공
✌️NoSQL의 특징
- 데이터 간의 관계를 정의하지 않음
- RDBMS와 달리 데이터 간 관계를 정의하지 않는다. JOIN연산 지원하지 않음
- RDBMS에 비해 대용량 데이터 저장 가능
- 분산형 구조 : 여러 곳 서버에 데이터를 분산 저장해 특정 서버에 장애가 발생했을 때에도 데이터 유실 혹은 서비스 중지가 발생하지 않도록 함
- 고정되지 않은 테이블 스키마를 갖고있다. 스키마가 유동적이라, 데이터를 저장하는 칼럼이 각기 다른 이름과 데이터 타입을 갖는것이 허용
- MongoDB, Cassandra, Redis, Apache HBase, Neo4j등이 있다.
✌️NoSQL의 장점
- 유연성 : 스키마 선언 없이 필드의 추가 및 삭제가 자유로운 Schema-less 구조
- 확장성 : 스케일 아웃에 의한 서버 확장 용이
- 고성능 : 대용량 데이터를 처리하는 성능 뛰어남
- 가용성 : 여러 대의 백업 서버 구성이 가능. 장애 발생해도 무중단 서비스 가능
Schema-less란?
: 고정된 스키마를 사전에 정의하지 않아도 되는 것을 의미. 데이터베이스에 저장되는 각각의 데이터가 동일한 구조를 갖지 않아도 된다는 것
스케일 아웃?
: 시스템이나 서비스의 처리 능력을 향상시키기 위해 여러대의 서버나 노드를 추가하여 분산 처리를 수행 하는 것
무중단 서비스?
: 시스템이 사용 가능한 상태를 유지하면서 시스템의 유지 및 보수 작업을 수행할 수있는 것
✌️NoSQL의 단점
- 데이터 업데이트 중 장애가 발생하면 데이터 손실 발생 가능
- 많은 인덱스를 사용하려면 충분한 메모리가 필요. 인덱스 구조가 메모리에 저장
- 데이터 일관성이 항상 보장되지 않음
- key값에 대한 입출력만 지원
- 스키마가 정해져 있지 않아, 데이터에 대한 규격화가 되어 있지 않음
항상 열심히 하시는 모습 너무 멋있으십니다^^