CS스터디 - db

이강민·2024년 9월 9일
0

커널360

목록 보기
51/56
post-thumbnail

데이터베이스

  • DBMS 란?
    • 데이터베이스를 관리해주는 시스템

관계형 DBMS

  • 데이터를 테이블 형태로 저장
  • 데이터를 표와 같은 형태로 저장하는 DBMS
  • 테이블끼리 참조, 합치기도 가능
  • 관계형 DBMS를 다루기 한 언어가 SQL

비관계형 DBMS

  • 데이터를 테이블 형식 외의 다른 구조로 저장하는 데이터베이스 관리 시스템.
  • 키-값 쌍, 도큐먼트(Document), 그래프, 컬럼형 등 다양한 형태의 데이터 저장 방식
  • 고정된 스키마가 필요 없고, 대규모 데이터의 분산 저장과 빠른 읽기/쓰기를 지원.
  • 관계형 DBMS와 달리 테이블 간의 복잡한 관계를 정의하지 않으며, 주로 대용량 데이터를 처리하는 데 적합
  • 대표적인 NoSQL 예시: MongoDB, Cassandra, Redis, Couchbase

DML (Data Manipulation Language)

  • 목적: 데이터베이스의 데이터를 조작하는 데 사용

SELECT: 데이터 조회. 테이블에서 데이터를 선택하고 반환합니다.

SELECT * FROM employees;

INSERT: 데이터 추가. 테이블에 새로운 데이터를 삽입합니다.

INSERT INTO employees (name, position) VALUES ('Alice', 'Developer');

UPDATE: 데이터 수정. 테이블의 기존 데이터를 수정합니다.

UPDATE employees SET position = 'Senior Developer' WHERE name = 'Alice';

DELETE: 데이터 삭제. 테이블에서 데이터를 삭제합니다.

DELETE FROM employees WHERE name = 'Alice';

DDL (Data Definition Language)

목적: 데이터베이스의 구조를 정의하고 설정하는 데 사용

CREATE TABLE: 새로운 테이블 생성.

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    position VARCHAR(50)); 

ALTER TABLE: 기존 테이블의 구조를 변경.

ALTER TABLE employees ADD COLUMN hire_date DATE;

DROP TABLE: 테이블 삭제. 테이블과 그에 포함된 데이터를 모두 삭제합니다.

DROP TABLE employees;

DCL (Data Control Language)

목적: 데이터베이스에 대한 접근 권한을 제어하는 데 사용됩니다.

GRANT: 사용자에게 특정 권한을 부여.

GRANT SELECT, INSERT ON employees TO user1;

REVOKE: 사용자로부터 특정 권한을 회수.

REVOKE INSERT ON employees FROM user1;

NoSQL 이란?

(oracle)

NoSQL이라는 용어는 비관계형 데이터베이스 유형을 가리키며 이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 저장합니다. 그러나 NoSQL 데이터베이스는 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하여 질의할 수 있습니다. 이 데이터베이스가 not only SQL 데이터베이스라고 불리는 이유가 바로 이것이죠.

NoSQL 데이터베이스는 어디에 사용되나요?

높은 확장성과 가용성이 주요 장점인 NoSQL 데이터베이스는 실시간 웹 애플리케이션 및 빅 데이터에 널리 사용됩니다.
변화하는 요구 사항에 빠르게 적응함으로써 민첩한 개발 패러다임에 자연스럽게 활용되는 이점 때문에 개발자들 역시 NoSQL을 선호하죠. NoSQL 데이터베이스를 사용하면 데이터는 보다 직관적이고 이해하기 쉬운 방식 또는 애플리케이션이 사용하는 것에 가까운 방식으로 저장됩니다. NoSQL 스타일의 API를 사용하면 저장 또는 검색 시 데이터 변환의 필요성이 줄어듭니다. 또한 NoSQL 데이터베이스는 다운타임이 없는 클라우드의 이점을 완전히 누릴 수 있습니다.

트랜잭션

데이터베이스 상호 작용의 단위
논리적 작업 단위

성질

  • Atomicity
    • 원자성, 트랜잭션은 하나의 논리적인 작업 단위로 간주
    • 모든 데이터 조작 작업은 성공하거나 실패할 때까지 적용되지 않거나 롤백
  • Consistency
    • 일관성, 데이터베이스를 일관된 상태로 유지
    • 트랜잭션이 시작하기 전과 끝난 후에도 데이터베이스는 일관된 규칙과 제약 조건을 따라야함
  • Isolation
    • 격리성, 동시에 여러 트랜잭션이 실행될 때 각 트랜잭션은 서로 간섭하지 않고 격리되어야 함
    • 2개의 트랜잭션이 동시에 계좌에 돈을 인출하려 할 때 한 트랜잭션이 완료되기 전 다른 트랜잭션은 해당 계좌에 접근하지 못해야 함
  • Durability
    • 지속성, 트랜잭션이 성공적으로 완료되면 데이터베이스는 유지되어야 함
profile
AllTimeDevelop

0개의 댓글

관련 채용 정보