일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- 썸네일 #이미지
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #t.g #target group #alb #application #load #balancer #web #server
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 스토리지 #objects storage #events #upload #알림
- aws #아키텍트 #과정 #vpc #인프라 구축 #auto scailling #lauch template #ec2 instace #private #subnet
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #endpoint #cloudwatch #monitoring
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #alb #application #load #balancer #security #group #igw #ec2 #vpc #virtual #private #cloud
- aws #아키텍트 #과정 #vpc #인프라 구축 #amazon sns #server #less #architecture
- aws #아키텍트 #과정 #vpc #인프라 구축 #rds #replica #복제본 #aurora #database #고가용성
- aws #아키텍트 #과정 #vpc #인프라 구축 #db #장애조치 #reand only #replica #events
- 비트 #바이트 #이진수
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- aws #아키텍트 #과정 #vpc #인프라 구축 #second nat #gateway #routing table #route53 #고가용성 #private subnet #
- 쓰레드 #쓰레드풀 #프로세스
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #고가용성 #테스트 #alb #application #load balancer #application
- aws #아키텍트 #과정 #vpc #인프라 구축 #s3 #bucket #객체 #스토리지 #isci #이미지 #업로드
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #trigger #python3.9 #패키지 #
- aws #아키텍트 #과정 #vpc #인프라 구축
- 업로드 #lambda #함수 #모바일 이미지 #썸네일 이미지
- aws #아키텍트 #과정 #vpc #인프라 구축 #aurora #database #rds #rdbs #load #balancer #web #page #haproxy
- aws #아키텍트 #과정 #vpc #인프라 구축 #haproxy #round robin #process #high ability #auto scailling #app server #launch template
- aws #아키텍트 #과정 #vpc #인프라 구축 #sqs #message #queue #sns구독
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- aws #아키텍트 #과정 #vpc #인프라 구축 #ec2 #instance #launch #template #생성 #ami #amazone #machine #image
- 프로세스 #CPU #시공유 #커널
- aws #아키텍트 #과정 #vpc #인프라 구축 #alb #load balancer #t.g #target #group #haproxy #high ability #db #replica #region
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- Today
- Total
요리사에서 IT개발자로
(스파르타 코딩클럽) NoSQL과 RDBMS의 특징과 차이점 본문
NoSQL(Not Only SQL) 과 RDBMS(Relation Databases Management System)
Database
여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임.
데이터베이스가 등장하기 이전에는 파일 시스템을 사용해서 데이터를 관리했다고 한다.
파일 시스템을 이용하면
파일 단위로 저장할 때, 데이터 종속성 문제와 중복성, 데이터 무결성 문제가 존재하기에
이런 문제점을 해결해주는
데이터베이스가 등장하고 데이터베이스를 사용하였다.
데이터 베이스는 데이터를 효율적으로 처리하기 위해 개발된것.
여러사람에 의해서 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합
자료항목의 중복을 없애고
자료를 구조화 하여
저장함으로
자료 검색과 갱신의 효율을 높일 수 있다.
업무가 확대 되어도 새로 파일을 준비할 필요가 없다.(장점)
DBMS
데이터 베이스를 데이터의 집합이라고 정의하면
이런 데이터 베이스를 관리하고 운영하는 소프트웨어
DBMS(Databases Management System)라고 한다.
다양한 데이터가 저장되어 있는 데이터베이스는
여러 명의 사용자나 응용프로그램과 공유하고 동시에 접근이 가능해야한다.
여러명의 예금 계좌 정보를 모아놓은 것이 Database
은행이 가지고 있는 예금 계좌 데이터베이스에는 어러명이 동시에 접근할 수 있다.
예금 계좌 주인, 은행 직원, 인터넷 뱅킹, ATM기기 등에서 모두 접근이 가능한 것처럼
이 모든것이 가능한 이유가 바로 DBMS가 있기 때문이다.
RDBMS란
DBMS앞에 R(Relational)이 추가 되어 관계형 데이베이스 관리 시스템 이라고 한다.
RDMS는 RDB를 관리하는 시스템이며RDB는 관계형 데이터 모델을 기초로
모든 데이터를 2차원 테이블 형태로 표현하는 데이터 베이스.
관계형 데이터베이스를
생성, 수정, 삭제를
관리할 수 있는 소프트웨어라고 정의한다.
관계형 데이터베이스(RDBMS)에서는 이런 관계를 나타내기 위해
외래키(foreign key)라는 것을 사용한다.
이러한 테이블간의 관계에서
외래키를 이용한 테이블간 join이 가능하다는게 RDBMS의 가장 큰 특징이다.
회원 Table과 주문 Table이 있다는 가정하에 외래키는 무엇일까?
[회원 Table]의 회원 번호와 [주문 Table]의 주문 회원 번호가 참조하므로
주문 회원 번호가 외래키(foregin key)가 되고,
외래키가 포함되었기 때문에 [주문 Table]은 회원테이블의 자식 테이블이 된다.
[회원 Table]은 회원 번호로 외래키 값을 제공하기에 부모테이블이 된다.
RDBMS의 특징으로는
- Data를 Column과 Row형태로 저장한다.
- 데이터의 분류, 정렬, 탐색 속도가 비교적 빠름.
- SQL(Structured Query Language, 구조화 질의어)라는 정교한 검색 Query를 통해서 데이터를 다룬다.
- Trasactional(작업의 완전성을 보장)
- 반드시 Schema 규격에 맞춰야 한다.(유연한 데이터 저장X)
- 부하의 분산이 어렵다. (수직 확장만 가능하다)
대표적 MySQL, SQLite, PostgreSQL, Oracle 등이 있다.
RDBMS의 장단점
장점
- 정해진 스키마에 따라 데이터를 저장해야 하기에 명확한 데이터 구조를 보장한다.
- 또한 관계는 각 데이터를 중복없이 한번만 저장할 수 있다.
단점
- 테이블, 테이블 간의 관계를 맺고 있어 시스템이 커질경우 Join문이 많은 복잡한 쿼리가 만들어 질 수 있다.
- 성능 향상을 위해서 서버의 성능을 향상 시켜야 하는 Scal-up만을 지원한다. 비용이 기하 급수적으로 늘어날 수 있다.
- 스키마로 인해서 데이터가 유연하지 못하다. 스키마가 변경되면 번거롭고 어렵다.
NoSQL(Not Only SQL)
RDBMS와 달리 테이블 간의 관계를 정의하지 않는다.
테이블간의 Join도 불가능하다.
NoSQL은 빅테이터의 등장으로인해서 데이터와 트래픽이 기하급수적으로 증가함에따라서
RDBMS에 단점인 성능을 향상시키기 위해
장비가 좋아야하는 Scal-up의 특징이 비용을 기하급수적으로 증가되기에
데이터의 일관성을 포기하고 여러 대의 데이터의 분산하여 저장하는 Scal-Out을 목표로 등장하였다.
NoSQL로 보통 Document 기반의 MongoDB를 많이 알지만
MongoDB는 NoSQL한 종류로 NoSQL은 다양한 형태(4가지)의 저장 기술을 지원한다.
이 다양한 형태의 저장기술은 RDBMS 스키마에 맞추어서
데이터를 관리해야 된다는
한계를 극복, 수평적 확장성(Scale-out)을 쉽게할 수. 있다.(장점)
NoSQL의 장단점
장점
- NoSQL에서는 스키마가 없기에 유연하고 자유로운 데이터 구조를 가질 수 있다. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수있다.
- 데이터 분산이 용이하고 성능 향상을 위한 Scale-up뿐만이 아니라 Scale-out또한 가능하다.
단점
- 데이터 중복이 발생할 수 있고 중복된 데이터가 변경될 경우에 수정을 모든 컬렉션에서 수정해야한다.
- 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않고 데이터 구조 결정이 어려울 수 있다.
- 데이터가 여러 컬렉션에 중복되어 있어 데이터를 Update하는 경우 모든 컬렉션에서 수행해야하기에 느리다.
- Key값에 대한 입,출력만 지원
스키마란
DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조
RDBMS와 NoSQL의 차이
https://hstory0208.tistory.com/20
'TIL' 카테고리의 다른 글
(스파르타 코딩클럽)브라우저의 작동방식 (4) | 2024.07.23 |
---|---|
(스파르타 코딩클럽) CORS란 (0) | 2024.07.23 |
(스파르타 코딩클럽) HTTP 메서드란 (0) | 2024.07.22 |
(스파르타 코딩클럽) RDBMS 정규화 (0) | 2024.07.19 |
(스파르타 코딩클럽) mvc 패턴이란 (0) | 2024.07.19 |