일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 암묵적 타입 변환
- Render Queue
- TypeScript
- Headless 컴포넌트
- JavaScript
- AJIT
- zustand
- Custom Hook
- msw
- 타입 단언
- linux 배포판
- Recoil
- CS
- Sparkplug
- prettier-plugin-tailwindcss
- Compound Component
- 클라이언트 상태 관리 라이브러리
- 명시적 타입 변환
- 좋은 PR
- 프로세스
- helm-chart
- Microtask Queue
- jotai
- 회고
- useLayoutEffect
- mocking
- type assertion
- Redux Toolkit
- react
- docker
Archives
- Today
- Total
구리
[기술면접] CS 기술면접 - Database 본문
공부한 것을 바탕으로 정리하는 것이지만 잘못된 부분이 있을 수 있습니다. 오류는 댓글로 알려주시면 감사하겠습니다!
JDBC란?
- Java Database Connection의 약자로, Java를 통해 DB에 접근할 수 있는 프로그래밍
DB 언어 종류
- DDL (Data Definition Language) - 정의어로 DB 구조를 정의, 수정, 삭제하는 언어 (create, alter, drop)
- DML (Data Manipulation Language) - 조작어로 DB 내의 자료 검색, 삽입, 갱신, 삭제를 위한 언어 (select, insert, update, delete)
- DCL (Data Control Language) - 제어어로 데이터에 대해 무결성 유지, 보호와 관리를 위한 언어 (commit, rollback, grant)
Index란?
- 추가적인 쓰기 작업, 저장 공간을 활용하여 DB 테이블의 검색 속도를 향상시키기 위한 자료구조
- Index 생성시 고려 사항
- 테이블 전체 데이터 중 적은 양의 데이터를 조회시 사용
- 데이터 유일성 높을수록, 데이터 범위 높을수록 인덱스 효율 상승
Transaction이란?
- DB 상태를 변화시키기 하나의 논리적 작업 단위로 하나의 트랜잭션에는 여러 개의 연산이 수행될 수 있음
RDBMS / NoSQL 차이
RDBMS
- 2차원 행,열로 데이터 관계를 관리하는 데이터베이스
- 장점 : 스키마에 맞춰 데이터를 관리하기에 데이터의 정합성을 보장할 수 있음 (Schema : DB의 전체적 구조, 제약 조건에 대한 명세)
- 단점 : 시스템이 커질수록, 쿼리가 복잡해지고 성능이 낮아짐, 수평적 확장이 어려움
NoSQL
- RDBMS가 비대해짐에 따라 관계가 복잡해져 이를 극복하기 위해 등장한 데이터베이스
- 장점 : 스키마 없이 key-value 형태로 데이터를 관리, 더 자유롭게 관리할 수 있음
- 단점 : 중복 데이터 추가 가능, 이에 대한 관리 필요
DB란?
- 조직에서 업무처리를 위해 다수의 응용시스템 혹은 다수의 사용자들이 공용으로 사용하기 위해 저장된 운영 데이터 집합
무결성이란?
- 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말하며 무결성의 종류는 다음과 같다.
- 개체 무결성 : 기본키는null 값이 올 수 없으며, 중복될 수 없음
- 참조 무결성 : 외래키는 null 값이 올 수 없으며, 부모 테이블의 기본키에 종속되어야 함
- 그 외에도 도메인 무결성, 유니크 무결성 등이 있음
트랜잭션 성질 (ACID)
- Atomicitiy (원자성) : 모든 작업이 커밋되거나 롤백되는 특성
- Consistency (일관성) : 데이터는 정해진 특성에 의해서만 저장되어야 함
- Isolation (고립성) : 트랜잭션 수행중에는 다른 트랜잭션에 의해 영향을 받아서도, 주어서도 안됨
- Durability (지속성) : 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장함
GROUP BY란?
- 집계함수로 컬럼의 데이터들을 그룹화하여 집계할 수 있음
- EX) SELECT 선택 FROM 테이블 WHERE 조건 GROUP BY 그룹화할 컬럼
JOIN이란?
- 2개 이상의 테이블에서 테이블 간의 데이터를 검색하여 결과 집합을 만드는 것