구리

[기술면접] CS 기술면접 - Database 본문

카테고리 없음

[기술면접] CS 기술면접 - Database

guriguriguri 2021. 11. 19. 23:39

공부한 것을 바탕으로 정리하는 것이지만 잘못된 부분이 있을 수 있습니다. 오류는 댓글로 알려주시면 감사하겠습니다!

 

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란?

  • 조직에서 업무처리를 위해 다수의 응용시스템 혹은 다수의 사용자들이 공용으로 사용하기 위해 저장된 운영 데이터 집합

무결성이란?

  • 데이터의 정확성, 일관성, 유효성이 유지되는 것을 말하며 무결성의 종류는 다음과 같다.
    1. 개체 무결성 : 기본키는null 값이 올 수 없으며, 중복될 수 없음
    2. 참조 무결성 : 외래키는 null 값이 올 수 없으며, 부모 테이블의 기본키에 종속되어야 함
    3. 그 외에도 도메인 무결성, 유니크 무결성 등이 있음

트랜잭션 성질 (ACID)

  • Atomicitiy (원자성) : 모든 작업이 커밋되거나 롤백되는 특성
  • Consistency (일관성) : 데이터는 정해진 특성에 의해서만 저장되어야 함
  • Isolation (고립성) : 트랜잭션 수행중에는 다른 트랜잭션에 의해 영향을 받아서도, 주어서도 안됨
  • Durability (지속성) : 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장함

 

GROUP BY란?

  • 집계함수로 컬럼의 데이터들을 그룹화하여 집계할 수 있음
  • EX) SELECT 선택 FROM 테이블 WHERE 조건 GROUP BY 그룹화할 컬럼

JOIN이란?

  • 2개 이상의 테이블에서 테이블 간의 데이터를 검색하여 결과 집합을 만드는 것

JOIN 다이어그램