Computer Science/데이터베이스(DataBase)

relational DataBase vs non-relational DataBase

yunajoe 2023. 1. 8. 17:36

웹서비스를 구현하는데 있어서는 
필요한 데이터가 무엇인지?
데잉터를 적절한 형태로 저장
데이터의 형태와 구조를 처음부터 잘 잡아놔냐 한다 

========================================

릴레이셔널 데이터 베이스
>> SQLite3, MySQL, PostgreSQL 
넌리레이셔널 데이터베이스
>> MongoDB, Cassandra 

‘릴레이션(Relation)’은 ‘테이블’을 뜻하는데요. 
릴레이셔널 데이터베이스는 데이터를 테이블에 저장하고 
논 릴레이셔널(non-relational) 데이터베이스는 테이블에 저장하지 않습니다.

그럼 논 릴레이셔널 데이터베이스는 데이터를 어떻게 저장할까요?

사실 하나의 방법이 정해져있지는 않는데요. 가장 많이 사용하는 방법 중 하나는 문서(document) 형태로 데이터를 저장하는 겁니다. 데이터를 문서 형태로 저장하는 데이터베이스를 document-oriented database라고도 부릅니다. 문서도 다양한 형식이 있는데 그중에 JSON 형식이 가장 보편적입

레이셔널 데이터베이스는 모두 SQL을 사용한다는 공통점이 있었는데요. 논 릴레이셔널 데이터베이스는 SQL을 사용하지 않기 때문에 논 릴레이셔널 데이터베이스를 NoSQL(non-SQL) 데이터베이스라고 자주 부릅니다. 
NoSQL 데이터베이스들이 공통적으로 사용하는 하나의 언어는 없고 데이터베이스 프로그램마다 다릅



. 릴레이셔널 데이터베이스의 장점은 데이터의 일관성, 
그리고 SQL을 통한 복잡한 데이터 조회 기능이라면 
NoSQL 데이터베이스의 장점은 퍼포먼스(데이터 조회 속도)와 데이터 형식의 자유도

 NoSQL 데이터베이스의 장점은 퍼포먼스(데이터 조회 속도)와 데이터 형식의 자유도입니다. 그래서 NoSQL 데이터베이스는 ‘빅 데이터’ 또는 구조가 없는 데이터(unstructured data), 예를 들면 오디오, 비디오 데이터를 저장할 때 많이 사용합니다. 하지만 이런 경우가 아니라면 NoSQL 데이터베이스를 사용해도 데이터 조회 속도의 차이는 미세하고 오히려 데이터의 일관성을 관리하기가 굉장히 어려워지기 때문에 릴레이셔널 데이터베이스를 많이 사용
=========================
데이터베이스: 컴퓨터에 체계적으로 저장되는 데이터의 모음 
DBMS: 실제로 데이터베이스를 만들고, 관리하고, 사용할 떄 쓰는 프로그램 
SQL: DBMS를 통해  데이터베이스와 소통할때 사용하는 언어 
(SQLite, MYSQL, ... Postsql..) 

==========================

한 테이블를 개체라고 한다
사진2

사진1

속성은 Atrritute(어트리뷰트) 라고 하며, 데이터 타입 & 제약 조건이 이 있다.
Primary Key => 사용자가 지정한, 로우를 식별할 수 있는 컬럼, 또는 컬럼의 조합(id) 

테이블은 서로 관계가 있다. 
Foreign Key 
=> 테이블 간의 관계를 나타냄 
=> 다른 테이블의 Primary Key를 참조함 

사진3