[2024.10.30] 필수 온라인 강의 Part5 데이터베이스 CH01 오리엔테이션
데이터 베이스
- 데이터베이스
- 여러사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합
- 사실상 저장해야할 모든 것
- 특히, 웹 서비스의 심장과도 같다
- 저장되는 방법에 따라 성능이 달라짐
- 저장되는 대상/저장하는 방법에 따라 웹서비스의 목적과 성능이 달라짐 - DBMS
- Data Base Management System 데이터베이스를 관리하는 시스템 == 데이터베이스를 관리하는 프로그램!
- 종류 : SQL Server, MariaDB, MySQL, ORACLE, MongoDB, SQLite, PostgreSQL 등등
- 관계형 DBMS
- 데이터를 테이블 형태(열 & 행)로 저장
- 즉, 데이터를 표와 같은 형태로 저장하는 DBMS
- 테이블끼리 참고, 합치기도 가능함
- 비 관계형 DBMS - SQL : SQL은 Structured Query Language의 약자
- 관계형 DBMS을 다루기 위한 언어
- 관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 조작하고 관리하기 위한 언어
- 종류
- DML: Data Manipulation Language
- DDL : Data Definition Language
- DCL : Data Control Language
- TCL (Transaction Control Language)로 따로 분류 - NoSQL
- 비관계형 데이터베이스
- NoSQL은 먼저 구조를 정의할 필요 없이 데이터를 저장 및 검색 확장성, 가용성이 장점
(실시간 웹 어플리케이션 & 빅데이터) e.g.) mongoDB
- MongoDB : https://www.mongodb.com/ko-kr/resources/basics/databases/nosql-explained
- NonSQL이란 무엇인가? https://www.oracle.com/kr/database/nosql/what-is-nosql/ - 트랜잭션(Transaction)
- 데이터베이스 상호작용의 단위
- 논리적 작업 단위
- e.g.) 돈을 계좌에서 인출하는 작업, 학생을 테이블에서 삭제하는 작업
- 트랜잭션(Transaction)이 지켜야 할 성질
- ACID
- A(원자성, Atomicity)
- 트랜잭션은 하나의 논리적인 작업 단위로 간주
- 모든 데이터 조작 작업은 성공하거나 실패할 때까지 적용되지 않거나 롤백
( 계좌에서 인출하고 다른 계좌로 입금하는 트랜잭션에서 하나의 작업이 실패하면 다른 작업도 취소)
- C(일관성, Consistency)
- 트랜잭션은 데이터베이스를 일관된 상태로 유지
- 트랜잭션이 시작하기 전과 끝난 후에도 데이터베이스는 일관된 규칙과 제약 조건을 따라야 함
- I(격리성, Isolation)
- 동시에 여러 트랜잭션이 실행될 때 각 트랜잭션은 서로 간섭하지 않고 격리되어야 함
- 한 트랜잭션의 작업이 다른 트랜잭션에게 영향을 미치지 않도록 보장
- 두 개의 트랜잭션이 동시에 계좌에서 돈을 인출하려 할 때, 한 트랜잭션이 완료되기 전
- 다른 트랜잭션은 해당 계좌에 접근하지 못해야 함
- D(지속성, Durability)
- 트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 저장되어야 함
'Study > CS 기초' 카테고리의 다른 글
데이터베이스 - 효율적 쿼리 (0) | 2024.11.01 |
---|---|
데이터베이스 - 생성과 관리 (2) | 2024.10.31 |
소켓 프로그래밍 (0) | 2024.10.29 |
시스템 프로그래밍 - 프로세스와 스레드 (1) | 2024.10.28 |
시스템 프로그래밍 - 오리엔테이션 (1) | 2024.10.22 |