- RDBMS(관계형)
데이터는 엄격한 스키마에 따라 테이블에 저장
관계를 통해 연결된 여러 개의 테이블에 저장
사용
데이터가 자주 수정되는 서비스
스키마의 변경이 없고, 명확한 스키마 구조를 필요로 할 때
장점
명확한 데이터 구조 보장(정해진 스키마에 따라 데이터를 저장하기 때문에)
중복 데이터 방지
단점
관계로 인한 시스템 복잡도를 고려하여 구조화해야 함
시스템이 복잡하면 쿼리문이 복잡해지고, 성능이 저하됨
- NoSQL(비 관계형)
정해진 스키마가 없고, 테이블 개념의 컬렉션에 저장
관계 설정을 하지 않음
사용
데이터가 자주 변경되지 않는 서비스
정확한 데이터 구조를 사용하지 않거나 데이터 구조의 변경, 확장을 필요로 할 때
막대한 양의 데이터를 다룰 때(수평적 확장 용이)
장점
테이블 간의 복잡한 관계를 생각하지 않아도 됨
정해진 스키마가 없어 데이터를 조정하고, 구조 변경이 유연함
수평적 확장에 용이(읽고 쓰기가 빠름)
단점
데이터 변경이 자유롭다 보니 데이터 중복, 불일치 문제
- 조인(Join)
두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색
보통 Primary Key, Foreign Key로 연결
- 이너조인(INNER JOIN)
교집합
기존 테이블과 조인한 테이블의 중복 값을 보여줌
SELECT 별칭.칼럼, 별칭.칼럼 FROM 기준테이블별칭
INNER JOIN 조인테이블 별칭
ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키
AND 기준테이블별칭.기준키 = 조인테이블별칭.기준키
// Ex)
SELECT A.NAME, B.AGE FROM EX_TABLE A // A테이블의 NAME조회, B테이블의 AGE조회
INNER JOIN JOIN_TABLE B
ON A.NO_EMP = B.NO_EMP
AND A.DEPT = B.DEPT
- 레프트조인(LEFT OUTER JOIN) / 라이트조인(RIGHT OUTER JOIN)
기존 테이블 값 + 교집합
SELECT 별칭.칼럼, 별칭.칼럼 FROM 기준테이블별칭
LEFT OUTER JOIN 조인테이블 별칭
ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키
AND 기준테이블별칭.기준키 = 조인테이블별칭.기준키
- 풀조인(FULL OUTER JOIN)
합집합
SELECT 별칭.칼럼, 별칭.칼럼 FROM 기준테이블별칭
FULL OUTER JOIN 조인테이블 별칭
ON 기준테이블별칭.기준키 = 조인테이블별칭.기준키
AND 기준테이블별칭.기준키 = 조인테이블별칭.기준키
- 셀프조인(SELF JOIN)
하나의 테이블을 여러 번 복사해서 조인
SELECT 별칭.칼럼, 별칭.칼럼
FROM 테이블명 별칭1, 테이블명 별칭2
- 인덱스(index)
테이블에 대한 종작의 속도를 높여주는 자료구조
검색 연산의 성능을 향상
고려사항
테이블의 전체 데이터 중 적은 양을 조회할 때 사용
테이블 데이터가 적을수록 인덱스 효율은 떨어짐
데이터의 유일성이 놓을수록, 데이터 범위가 넓을수록 인덱스 효율은 높음
NULL이 적은 칼럼이 인덱스 효율이 높음
- 트랜젝션
데이터베이스의 상태를 바꾸는 기능을 수행하기 위한 작업의 단위
작업의 완전성을 보장해줌
논리적인 작업을 모두 처리하거나 처리 못할 경우 원상태로 복구하여 작업의 일부만 적용되는 현상을 방지함
특성 : 원자성, 일관성, 고립성, 지속성
Ex) 계좌 송금 과정 A에서 B로 1만원 송금 시
A 계좌에서 1만원 차감 후 B계좌에 1만원 증가해야 하지만,
차감 후 에러로 인해 작업이 중단되면 A 계좌의 1만원만 차감되는 문제 발생
트랜젝션이 적용되어 있다면 원상태로 롤백(rollback)되어 일부만 적용되는 문제 방지
'면접 요약 정리' 카테고리의 다른 글
기술 면접 준비 - 네트워크 (0) | 2022.11.25 |
---|---|
기술 면접 준비 - 기초 CS 지식 (0) | 2022.11.17 |
기술 면접 준비 - JavaScript (0) | 2022.11.13 |
socket.io 정리 (0) | 2022.10.28 |
쿠키, 세션, JWT 정리 (0) | 2022.10.27 |