목차
1RDB와 NoSQL
1. RDB란?
2. RDB의 장단점
3. NoSQL란?
4. NoSQL의 장단점
5. RDB와 NoSQL의 차이점
1. RDB(Relational Database)란?
목차로 이동
데이터를 데이터를 테이블 형태로 저장한다.
RDB는 관계형 데이터 베이스로 Primary Key와 foreign key를 사용하여 테이블간의 join을 통해 관계를 형성하여 관리 할 수 있다는게 특징입니다.
쉽게 생각하면 엑셀 표에 데이터를 저장하는 것과 동일하다고 보면됩니다.
실제로 각 데이터 항목들은 행(row)에 저장되고, 항목의 속성은 열(column)이라고 표현한다. 열은 항목의 속성인 만큼 입력되는 데이터의 유형이 정해진다.
용어 정리
- 열(column) : 필드(field) 라고도 부르며, 항목의 속성(명칭)을 나타낸다. 필드 마다 각각 정수, 텍스트 같은 데이터 유형을 정할 수 있다.
|- 행(row) : 레코드(record) 라고도 부르며, 각 데이터 항목을 저장한다.
|- 스키마(schema) : 필드는 데이터 유형뿐만 아니라 제약사항도 지정할 수 있는데 이러한 제약사항을 스키마라고 부른다. 예를들어 필드는 중복 값을 해당 행에 저장할 수 없다거나, 반드시 값을 가져야 한다(not null)는 조건 등을 걸 수 있다.
결론부터 말하자면 각 테이블의 행과 행이 연결되는 관계를 맺을 수 있기 때문이다.
테이블 간의 관계는 일 대 일(1:1), 일 대 다(1:N), 다 대 다(N:N) 의 관계가 있다.
관계형 데이터베이스 모델에서는 테이블을 분리하여 행과 행을 연결할 수 있다.
테이블을 분리하고 관계를 형성해 데이터를 효율적으로 관리할 수 있다.
( 테이블을 분리하고 중복 데이터를 제거하는 과정을 정규화 라고 한다.)
. SQL은 RDBMS에서 사용하는 프로그래밍 언어라고 보면 된다. SQL을 통해 RDBMS에서 데이터를 검색하고, 추가하고, 업데이트하고, 삭제하는 작업 등 데이터를 관리한다.
SQL의 종류로는 데이터 정의 언어, 데이터 조작 언어, 데이터 제어 언어 가 있는데 결국 RDBMS를 다루려면 모두 알아야하기 때문에 종류가 나뉘어 진다라는 정도만 알면 될 것 같다.
트랜잭션(transaction)이란
트랜잭션은 데이터베이스 관리시스템(DBMS)에서 하나의 작업의 단위이다.
트랜잭션의 기능을 제대로 수행하기 위해서는 네 가지 특성을 만족해야하는데 ACID 특성이라고 부른다.
원자성 (Atomicity) : 원자성이란 트랜잭션이 수행하는 연산들을 모두 정상적으로 처리하거나 모두 처리하지 않아야 한다는 all-or-nothing 방식을 의미한다.
일관성 (Consistency) : 일관성은 트랜잭션이 성공적으로 수행된 이후에도 데이터베이스의 데이터는 일관된 상태를 유지해야 한다는 의미이다.
격리성 (Isolation) : 격리성은 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션이 간섭하지 못하도록 하여 각각의 트랜잭션이 독립적으로 수행되어야 한다는 의미이다.
지속성 (Durability) : 지속성은 트랜잭션이 성공적으로 완료된 이후에 데이터베이스의 데이터들이 영구적으로 보존되어야 한다는 의미이다.
3. NoSQL란?
목차로 이동
RDBMS에 단점인 성능을 향상시키기 위해서는 장비가 좋아야 하는 Scale-Up의 특징이 비용을 기하급수적으로 증가시키기 때문에 데이터 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 Scale-Out을 목표로 등장하였습니다.
NoSQL은 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능합니다.
NoSQL에서는 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있습니다. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있습니다.
데이터 분산이 용이하며 성능 향상을 위한 Saclue-up 뿐만이 아닌 Scale-out 또한 가능합니다.
4. NoSQL의 장단점
목차로 이동
NoSQL의 장점
RDBMS에 비해 저렴한 비용으로 분산처리와 병렬 처리 가능
비정형 데이터 구조 설계로 설계 비용 감소
Big Data 처리에 효과적
가변적인 구조로 데이터 저장이 가능
데이터 모델의 유연한 변화가 가능
NoSQL의 단점
❗스키마(Schema)란?
목차로 이동
스키마는 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것이다. 스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 개체의 특성을 나타내는 속성(Attribute), 개체 사이에 존재하는 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관하여 기술한다.
📌쉽게 말해 DB 내에 데이터가 어떤 구조로 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 한다.