티스토리 뷰
트랜잭션
트랜잭션은 데이터베이스에서 수행되는 하나 이상의 작업의 논리적인 단위이다.
ACID 라는 속성을 가지고 있다.
원자성(Atomicity)
하나의 연산이라도 실패하면 트랜잭션 전체가 실패
일관성(Consistency)
트랜잭션이 실행되기 전과 후에 데이터베이스는 항상 일관된 상태
격리성(Isolation)
여러 트랜잭션이 동시에 실행될 때, 각 트랜잭션은 다른 트랜잭션의 작업에 영향을 받지 않고 독립적으로 수행되는 것처럼 보여야 한다.
지속성(Durability)
트랜잭션이 성공적으로 완료되면 그 결과는 영구적으로 유지되어야 한다.
정규화란?
정규화란 데이터베이스에서 이상 현상과 중복을 방지하기 위해 분리하는 작업이다.
장점은 이상현상(삽입, 갱신, 삭제) 문제점을 해결하고 구조 확장시 구조를 변경하지 않아도 되거나 일부만 변경하면 된다.
단점은 분해로 인해 릴레이션 간 조인 연산이 많아진다. 그렇기 때문에 응답이 느릴 수 있다.
1정규형(원자값을 갖는다), 2정규형(완전 함수적 종속을 만족한다), 3정규형(이행적 함수 종속이 없어야한다)이 있다.
역정규화하는 이유?
정규화를 거치면서 조인 연산이 많아지는데 이것으로 인해 성능 저하가 발생할 수 있다.
이때 성능 향상을 위해 역정규화를 실행한다.
인덱스란?
테이블의 하나 이상의 열(컬럼)에 대한 검색 속도를 향상시키기 위해 사용되는 데이터 구조이다. 인덱스는 특정 검색 조건을 만족하는 레코드의 위치를 빠르게 찾기 위해 사용된다.
검색속도향상, 정렬 및 그룹화, 고유성 보장을 위해 사용한다.
인덱스는 DB에서 많은 읽기 작업이 발생하는 경우 유용하다.
하지만 쓰지 작업이 많은 경우는 인덱스를 사용하는 것이 성능에 좋지 않다.
쓰기 작업할 때마다 인덱스로 업데이트해야하기 때문이다.
DB 옵티마이저란?
옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 DBMS 내부의 핵심 엔진이다.
쿼리 실행 속도를 향상시키고 시스템 성능을 최적화하기 위해 중요한 역할을 한다.
데이터베이스 언어(DDL, DML, DCL)란?
DDL(데이터 정의어)
데이터베이스 구조를 정의, 수정, 삭제하는 언어
ex) alter, create, drop
DML(데이터 조작어)
데이터베이스 내의 자료 검색, 삽입, 갱신, 삭제를 위한 언어
ex) select, insert, update, delete
DCL(데이터 제어어)
데이터에 대해 무결성을 유지, 병행 수행 제어, 보호와 관리를 위한 언어
ex) commit, rollback, revoke
RDMBMS 와 NoSQL의 차이
RDBMS
관계형 DB로 모든 데이터를 2차원 테이블 형태로 표현한다.
데이터 구조가 명확하고 변경될 여지가 없으며 스키마가 중요한 경우 사용하는 것이 좋다.
장점 : 스키마에 맞춰 데이터를 관리하기 때문에 접합성 보장
단점 : 시스템이 커질수록 쿼리가 복잡해지고 성능이 저하된다.
NoSQL
비관계형 DB로 데이터 간의 관계를 정의하지 않고 스키마가 없어 자유롭게 데이터 관리를 할 수 있다. 데이터 관리할 시 컬렉션 형태로 관리한다.
정확한 데이터 구조를 알 수 없고 데이터가 변경,확장 될 수 있는 경우 사용하는 것이 좋다.
장점 : 스키마가 없이 Key-Value 형태로 데이터를 관리해 자유롭게 관리할 수 있다.
단점 : 데이터 중복이 발생할 수 있고 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야 한다.
조인의 종류
inner join(내부조인)
서로 연관된 내용만 검색하는 조인 방법으로 A와 B의 교집합을 말한다.
outer join(외부조인)
한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없는 경우 데이터가 있는 쪽의 내용을 전부 출력하는 방법으로 A와 B의 합집합을 말한다.
'코딩 > SQL' 카테고리의 다른 글
[SQL - SELECT] 3 (0) | 2024.05.10 |
---|---|
[SQL - SELECT] 2 (0) | 2024.04.29 |
date_format (0) | 2024.04.04 |
SQL 용어 정리 (1) (1) | 2024.01.07 |
[13주 5일차] 스토어드 프로시저 (1) | 2024.01.05 |
- Total
- Today
- Yesterday