본문 바로가기

Javascript/Node.js

SQL vs NoSQL

SQL DB과 NoSQL DB

파일시스템 vs DBMS 

1. 파일 시스템

(1) 데이터 중복

(2) 응용 프로그램이 개별 데이터를 직접 관리

(3) 응용 프로그램이 데이터를 쓰는 방식이 다름

(4) 데이터가 특정 응용 프로그램에 종속도미

 

2. DBMS

(1) 하나의 소프트웨어가 데이터 관리 방식이므로 데이터 중복 제거

(2) 여러 프로그램이 하나의  DBMS를 통해 데이터 공유

(3) 각각의 응용 프로그램의 데이터가 하나의 소프트웨어로 관리되어 데이터 관리방식이 통합됨

(4) 응용프로그램과 별도로 DBMS에 의해 보관됨

 

3. RDBMS 

(1) 테이블 : 데이터를 2차원 표 형태로 저장하고 관리

(2) 행(row,record,tuple) : 저장하려는 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태

(3) 열(attribute, field) : 저장하려는 데이터를 대표하는 이름과 공통 특성을 정의

(4) 기본키(primary key): 여러 키 중 가장 중요한 키, 중복되지 않아야 함, 테이블의 행을 식별할 수 있는 유일한 값

                                        Null 값을 가질 수 없음

(5) 후보키(Candidate key) : 기본키가 될 수 있는 모든 키

(6) 보조 키: 후보 키 중에서 기본키로 지정되지 않은 열  

(7) 외래키(Foreign Key) : 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키

(8) 복합키(Composite Key) : 여러 열을 조합하여 기본 키 역할을 할 수 있게 만든 키

SQL

1.   요점

(1) SQL DB는 데이터 베이스를 나타내지만 SQL은 데이터베이스가 아닌 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 프로그래밍 언어

(2) SQL(Structured Query Language), RDB(Relational DataBase), RDBMS(Relational DataBase Management System)

(3) 스키마(구조)가 존재하고, 수직적 확장 가능

(4) 대표적으로 Oracle, MySQL, Postgresql 등이 있음

오라클 DB 예시

2.  ORM

(1) ORM(Object-Relational Mapper)

(2) 테이블로 이루어진 데이터베이스를 다룰 때 사용하는 SQL을 다른 언어에서 쉽게 사용

 

3. SQL  분류

(1) DQL(Data Query Language) : RDBMS에 저장한 데이터를 원하는 방식으로 조회

 

(2) DML(Data Manipulation Language) : RDBMS 내 테이블의 데이터를 저장,수정,삭제 

- SELECT, INSERT, UPDATE, DELETE

 

(3) DDL(Data Definition Language) : RDBMS 내 데이터 관리를 위해 테이블을 포함한 여러 객체를 생성, 수정, 삭제 하는 명령어

- CREATE, ALTER, DROP

 

(4) TCL(Transaction Control Language) : 트랜잭션 데이터의 영구 저장,취소 

 

(5) DCL(Data Control Language) : 데이터 사용 권한
- GRANT, REVOKE

 

NoSQL

1.  요점

(1) NoSQL DB는 데이터 베이스를 나타내지만 NoSQL는 데이터베이스가 아닌 관계형 데이터베이스보다 제한이 없고 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공

(2) NoSQL(Not only SQL)

(3) 스키마 X, 수평적 확장 가능

(4) 대표적으로 MongoDB

 

 

2.  ODM

(1) ODM(Object-Document Mapper)

(2) 문서(document)와 collection으로 이루어진 NoSQL 데이터베이스를 다룰 수 있도록 해줌

 

3. NoSQL DB 들의 공통점 및 특징

(1) 관계형 모델을 사용하지 않음, 그러나 관계형 데이터베이스와 비슷한 그래프 데이터 베이스를 사용하는 경우는 있음

(2) 대부분의 NoSQL DB들은 오픈 소스 

(3) 스키마가 없어 데이터베이스의 구조가 유동적임

 

'Javascript > Node.js' 카테고리의 다른 글

Javacsript & Node.js  (0) 2022.11.15
MVC  (0) 2022.11.14
HTTP  (0) 2022.11.06
이메일 템플릿 함수 및 생성시간 함수 만들기  (0) 2022.11.06
Node.js 기초 이론  (0) 2022.11.01