티스토리 뷰

기술면접

7. 데이터베이스

Howu 2023. 4. 19. 14:40

SELECT 쿼리의 수행 순서

FROM WHERE GROUP BY HAVING SELECT ORDER BY

프 웨 그 해 셀 오

트리거(trigger)

  • 트리거는 특정 테이블에 대한 이벤트에 반응해 DML문이 수행되었을 때 데이터베이스에서 자동으로 동작하도록 작성된 프로그램

정규화

  • 정의: 하나의 릴레이션에 하나의 의미만 존재하도록 릴레이션을 분해하는 과정, 데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법
  • 장점: 데이터베이스 변경 시 이상현상이 발생하는 문제점을 해결할 수 있다.
  • 단점: 릴레이션 분해로 인해 릴레이션 간의 연산이 많아진다.

역정규화

  • 정의: 성능 문제가 있는 DB의 전반적인 성능을 향상시키기 위함이다.

이상 현상

  • 정의: 테이블을 설계할 때 잘못 설계하여 데이터를 삽입, 삭제, 수정 할 때 생기는 논리적 오류를 말한다.
  • 삽입, 삭제, 갱신

Sql Injection

  • 정의: 공격자가 악의적인 의도를 갖는 SQL구문을 삽입하여 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 기법
  • 방지법: 입력값을 검증하여 사용자의 입력이 쿼리에 동적으로 영향을 주는 경우 입력된 값이 개발자가 의도한 값인지를 검증, 저장 프로시저를 사용(Query에 미리 형식을 지정하여 사용)

RDBMS와 NoSQL의 차이

RDBMS

  • 장점: 스키마에 맞춰 데이터를 관리하기 때문에 데이터의 정합성을 보장할 수 있다.
  • 단점: 시스템이 커질수록 쿼리가 복잡해지고 성능이 저하된다.

NoSQL

  • 장점: 스키마 없이 key-value 형태로 데이터를 자유롭게 관리할 수 있다.
  • 단점: 데이터 중복이 발생할 수 있고 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야 한다.

트랜잭션

  • 작업의 완전성을 보장해준다.
  • 작업들을 모두 처리하거나 처리하지 못할 경우 이전 상태로 복구하여 작업의 일부만 적용되는 현상이 발생하지 않게만들어주는 기능
  • 특성
    • 원자성: 작업이 모두 반영되던지 아니면 전혀 반영되지 않아야 한다.
    • 일관성: 실행이 완료되면 언제나 일관성 있는 상태를 유지해야 한다.
    • 독립성: 둘 이상 트랜잭션이 동시에 실행될 경우 서로의 연산에 끼어들 수 없다.
    • 영속성: 완료된 결과는 영구적으로 반영되어야 한다.

옵티마이저

  • 정의 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리 경로를 생성해주는 DBMS 내부의 핵심 엔진

Join

Inner Join

  • 서로 연관된 내용만 검색하는 조인 방법

Outer Join

  • 한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없는 경우 데이터가 있는 쪽의 내용을 전부 출력하는 방법

DELETE, TRUNCATE, DROP

DELETE: 데이터는 지우지만 테이블 용량은 줄어들지 않고 원하는 데이터만 골라서 지울 수 있다.

TRUNCATE: 전체 데이터를 한 번에 삭제하는 방식. 테이블 용량이 줄어들고 인덱스 등도 삭제되지만 테이블은 삭제할 수 없고 삭제 후 되돌릴 수 없음

DROP: 테이블 자체를 완전히 삭제하는 방식으로 삭제 후 되돌릴 수 없음

 

 

 

 

'기술면접' 카테고리의 다른 글

Ajax  (0) 2023.07.07
6. 프로그래밍 공통  (0) 2023.04.19
5. 자료구조  (0) 2023.04.19
4. OS  (0) 2023.04.18
3. Spring  (0) 2023.04.18
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함