Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩 자율학습 html + css + 자바스크립트]
- Do it
- cpu 성능 향상 기법
- HTML
- 이벤트
- 코딩자율학습
- 코딩 자율학습 html + css + 자바스크립트
- 코딩 자율학습
- CSS
- https://api.jquery.com/
- propschildren
- css배경
- TS
- 혼자 공부하는 컴퓨터구조+운영체제
- do it! 한권으로 끝내는 웹 기본 교과서 html+css+자바스크립트 웹 표준의 정석
- 메모리와 캐시 메모리
- Git
- JavaScript
- 자바스크립트
- react
- 코딩
- 이벤트버블링
- css필수 속성
- typescript
- JS
- do it! html+css+자바스크립트 웹 표준의 정석
- 비대칭키 암호화
- css박스 모델
- 브라우저 렌더링 원리
- CPU
Archives
- Today
- Total
게으른 나에게
[CS] - 데이터베이스 본문
데이터 베이스 개념
데이터베이스(Database)는 체계적으로 정리된 데이터의 집합.
여러 사용자와 애플리케이션이 데이터를 효율적으로 저장, 관리, 검색할 수 있도록 지원하는 시스템.
데이터 베이스 정의
- 통합 데이터: 중복된 데이터에 대해서 데이터를 통합하여 자료의 중복을 최소화한 데이터의 모임으로 구성
- 저장 데이터: 컴퓨터가 접근할 수 있는 매체에 데이터 저장
- 운영 데이터: 조직의 목적을 위해 존재하고 활용되는 데이터
- 공유 데이터: 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터
데이터 베이스 기능 특징
- 실시간 접근성 : 사용자 데이터 실시간 응답
- ex) 쇼핑몰 - 상품 검색 / 주문
- 동시 공용 : 서로 다른 데이터 동시 사용 + 같은 데이터 동시 사용
- ex) 쇼핑몰 - 여러 고객이 동시에 상품 조회 / 구매
- 계속 변화 : 항상 최신의 데이터 유지 (삽입, 삭제, 수정)
- ex) 데이터 삽입, 삭제, 갱신
- 내용 기반 참조 : 데이터 내용으로 데이터 위치나 주소로 찾음
- ex) C언어 포인터, URL 주소
DBMS (Database Management System)
데이터 베이스를 관리하는 소프트 웨어
데이터 베이스 종류
- 관계형 데이터베이스: MySQL, PostgreSQL, Oracle, Microsoft SQL Server
- 비관계형 데이터베이스: MongoDB, Redis, Cassandra, Firebase, DynamoDB, HBase
1) 관계형 데이터베이스 (RDBMS)
- 데이터를 테이블(table) 형태로 저장하며, 각 테이블은 행(row)과 열(column)로 구성됨.
- 데이터 간 관계(relation) 를 설정하여 정규화를 통해 중복을 최소화함.
- SQL(Structured Query Language) 을 사용하여 데이터를 관리하며, 트랜잭션을 보장하는 ACID(Atomicity, Consistency, Isolation, Durability) 속성을 유지함.
ACID
속성 | 설명 | 예시 |
Atomicity (원자성) | 트랜잭션이 완전히 수행되거나(Commit), 전혀 수행되지 않아야(Rollback) 하는 성질. 즉, 중간 단계에서 실패하면 전체가 취소됨. | 계좌 이체 중 오류 발생 시, 돈이 빠져나갔지만 상대 계좌에 입금되지 않는 문제를 방지. |
Consistency (일관성) | 트랜잭션이 성공적으로 수행되면 데이터베이스가 항상 일관된 상태를 유지해야 함. 트랜잭션 전후 데이터 규칙이 유지됨. | 은행 계좌의 총 금액이 트랜잭션 후에도 변하지 않아야 함. |
Isolation (고립성) | 여러 트랜잭션이 동시에 실행되더라도 서로 간섭하지 않고 독립적으로 수행되어야 함. | A가 상품을 구매하는 동안, B가 같은 상품을 구매하면 재고가 올바르게 유지됨. |
Durability (지속성) | 트랜잭션이 완료(Commit)되면 데이터는 영구적으로 저장되어야 하며, 시스템 장애가 발생해도 유지되어야 함. | 전원이 꺼져도 주문이 취소되지 않고 데이터베이스에 저장됨. |
✅ 장점
- 데이터 무결성 보장 (정확하고 신뢰할 수 있는 데이터 저장)
- 트랜잭션 보장 (ACID 속성)
- 강력한 SQL 쿼리를 활용한 복잡한 데이터 분석 가능
❎ 단점
- 데이터가 지나치게 크거나, 분석쿼리를 자주 돌려야 하는 환경에서 속도 떨어짐
- 확장 비용이 커질 수 있음
2) NoSQL 데이터베이스
- 관계형 DB처럼 테이블과 행 대신 다양한 데이터 모델(Key-Value, Document, Column, Graph) 을 활용.
- SQL을 사용하지 않고, 트랜잭션보다는 수평적 확장성(Scalability) 에 중점을 둠.
- 일반적으로 BASE(Basically Available, Soft state, Eventually consistent) 모델을 따르며, 데이터 일관성보다는 가용성을 중시함.
✅ 장점
- 높은 확장성과 가용성 (수평적 확장이 가능해 대량의 데이터를 효율적으로 처리 가능)
- 스키마가 유연하여 데이터 구조 변경이 쉬움
- 빠른 읽기/쓰기 성능
❎ 단점
- 데이터의 일관성(정합성)이 항상 보장되지 않고, 기존 SQL과 호환되지 않음 (BASE 모델을 따르기 때문)
- 대용량 데이터나 분산 처리에 매우 빠르게 대응이 가능 (페이스북, 스냅챗과 같은 SNS에서 쓰임)
- 데이터 중복이 발생할 수 있음
데이터 베이스 VS NoSQL
데이터 베이스 | NoSQL |
관계형 데이터베이스 관리 시스템 | 비관계형 데이터베이스 관리 시스템 |
미리 정의된 스키마가 있는 구조화된 데이터에 적합 (스키마 고정) | 비정형 및 반정형 데이터에 적합 (스키마 유연) |
JOIN 및 복잡한 쿼리 지원 | JOIN 및 복잡한 쿼리를 지원하지 않음 |
정규화된 데이터 구조 사용 | 비정규화된 데이터 구조 사용 |
다중행 트랜잭션에 더 적합 | 비정형 데이터에 더 적합 |
수직적 확장이 가능 | 수평적 확장이 가능 |
ACID 지원 | BASE 지원 |
'My Study > CS' 카테고리의 다른 글
[소프트웨어] - MVC(Model-View-Controller) 패턴 (0) | 2025.03.24 |
---|---|
[컴퓨터 아키텍처] - CPU와 GPU (1) | 2025.03.23 |
[네트워크] - HTTP와 HTTPS (1) | 2025.03.23 |
[네트워크] - TCP와 UDP (0) | 2025.03.23 |
[소프트웨어 공학] - 애자일 개발 방법론 (2) | 2025.03.22 |