데이터베이스 거시적으로 보기

이선우·2024년 9월 8일
0

CS 공부

목록 보기
7/10
post-custom-banner

데이터베이스란

데이터베이스는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합

데이터베이스에 저장될 수 있는 것들

  • 학생 데이터
  • 학과 데이터
  • 결제 데이터
  • 품목 데이터 ,,,,
  • 저장해야 하는 대부분의 것들

데이터베이스란 웹 서비스의 심장과도 같다.
저장되는 대상/ 저장하는 방법에 따라 웹서비스의 목적과 성능이 달라진다

저장되는 방법 -> 데이터베이스 설계 및 모델링하는 방법

DBMS

Data Base Management System
데이터베이스를 관리하는 시스템

DBMS의 종류

  • MySQL
  • MongoDB
  • Oracle
  • SQL Server
  • PostgreSQL

관계형 DBMS와 비관계형 DBMS로 나눌 수 있다

관계형 DBMS란

  • 데이터를 테이블 형태(열 & 행)로 저장
  • 즉, 데이터를 표와 같은 형태로 저장하는 DBMS
  • 테이블끼리 참조, 합치기도 가능하다

관계형 DBMS를 다루기 위한 언어 -> SQL

SQL은 Structured Query Language
관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 조작하고 관리하기 위한 언어

ex)

CREATE TABLE employees (
	employee_id INT PRIMARY KEY,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    department VARCHAR(50)
   );
SELECT first_name, last_name
FROM employees;
DELETE FROM orders
WHERE order_id =456;

SQL의 종류

DML: Data Manipulation Language

  • SELECT, INSERT, UPDATE, DELETE
    DDL: Data Definition Language
  • CREATE, ALTER, DROP, RENAME, TRUNCATE
    DCL: Data Control Language
  • GRANT, REVOKE, TCL(COMMIT, ROLLBACK, SAVEPOINT)

cf) NoSQL
비관계형 데이터베이스
NoSQL은 먼저 구조를 정의할 필요없이 데이터를 저장 및 검색
확장성, 가용성이 장점(실시간 웹 어플리케이션 & 빅데이터)
ex) MongoDB

트랜잭션(Transaction)

  • 데이터베이스 상호작용의 단위
  • 논리적 작업 단위
    ex) 돈을 계좌에서 인출하는 작업 / 학생을 테이블에서 삭제하는 작업

트랜잭션이 지켜야 할 성질

  • ACID
  • A(원자성, Atomicity)
    트랜잭션은 하나의 논리적인 작업 단위로 간주
    모든 데이터 조작 작업은 성공하거나, 실패할 때까지 적용되지 않거나 롤백
    계좌에서 인출하고 다른 계좌로 입금하는 트랜잭션에서 하나의 작업이 실패하면 다른 작업도 취소
  • C(일관성, Consistency)
    트랜잭션은 데이터베이스를 일관된 상태로 유지
    트랜잭션이 시작하기 전과 끝난 후에도 데이터베이스는 일관된 규칙과 제약 조건을 따라야 한다
  • I(격리성, Isolation)
    동시에 여러 트랜잭션이 실행될 때 각 트랜잭션은 서로 간섭하지 않고 격리되어야 한다
    한 트랜잭션의 작업이 다른 트랜잭션에게 영향을 미치지 않도록 보장
    두 개의 트랜잭션이 동시에 계좌에서 돈을 인출하려 할 때, 한 트랜잭션이 완료되기 전에 다른 트랜잭션은 해당 계좌에 접근하지 못해야 한다
  • D(지속성, Durablility)
    트랜잭션이 성공적으로 완료되면, 그 결과는 영구적으로 저장되어야 한다
profile
백엔드 개발자 준비생
post-custom-banner

0개의 댓글