[직무면접]Database 정리

gisung2215·2021년 6월 19일
0

👍직무면접

목록 보기
1/1
post-thumbnail

데이터베이스

데이터베이스란?

여러 사람이 공유하여 사용할 목적으로 통합 관리되는 데이터의 집합.
이러한 데이터베이스를 관리하는 시스템을 데이터베이스 시스템, DBMS라 한다.

데이터베이스의 특징

  • 독립성

    • 물리적 독립성:
      데이터베이스 사이즈를 늘리더라도 관련된 응용 프로그램을 수정할 필요가 없다.

      응용 프로그램과 독립적으로 데이터를 저장 및 관리한다.

    • 논리적 독립성:

      데이터베이스는 논리적 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.

  • 무결성

    여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로, 유효성 검사를 통해 데이터 무결성을 구현하게 된다.

  • 일관성

    다양한 제약조건을 통해 데이터를 일관되게 유지한다.

  • 중복 최소화

    통합 관리를 통해 데이터 중복을 최소화한다.

데이터 무결성

무결성이란, 데이터의 정확성과 일관성을 유지하고 보증하는 것을 가리키며 데이터베이스 시스템의 중요한 기능이다.

  • 개체 무결성(Entity Integrity)

    모든 테이블은 기본 키를 가져야 하며 기본키로 선택된 열은 고유하고 빈값은 허용되지 않는다.

  • 참조 무결성(Referential Integrity)

    모든 외래 키 값은 NULL 이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 즉, 참조할 수 없는 외래키 값은 가질 수 없다.

  • 범위 무결성(Domain Integrity)

    정의된 범위에서 관계형 데이터베이스의 모든 열이 선언되야 한다.

데이터베이스 언어 요소

  • DML(데이터 조작 언어)

    데이터 조작을 윈한 언어

    • SELECT
    • INSERT
    • UPDATE
    • DELETE
  • DDL(데이터 정의 언어)

    데이터 테이블 구조 정의를 위한 언어

    • CREATE
    • DROP
    • ALTER
    • TRUNCATE
  • DCL(데이터 제어 언어)

    데이터에 대한 액세스를 제어하기 위한 언어

    • GRANT
    • REVOKE

JOIN

조인이란, 2개 이상의 테이블에서 조건에 맞는 데이터를 검색하기 위해 사용하는 쿼리문을 의미합니다.

(출처:https://www.dofactory.com/sql/join)

Transaction

트랜잭션은 작업의 완전성 을 보장해주는 것이다. 즉, 논리적인 작업 셋을 모두 완벽하게 처리하거나 또는 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상이 없도록 한다.

트랜잭션 특징

  • 원자성(Atomicity)

    트랜잭션의 연산이 데이터베이스에 모두 반영되던지 아니면, 전혀 반영되지 않아야한다.

  • 일관성(Consistency)

    트랜잭션이 수행된 이후에도 데이터베이스는 언제나 일관성 있는 데이터를 보장해야 한다는 것을 의미합니다.

  • 독립성(Isolation)

    여러 트랜잭션이 동시에 수행되더라도 각각의 트랜잭션은 서로 간섭없이 독립적으로 수행되어야 한다는 것을 의미합니다.

  • 지속성(Duration)

    성공적으로 완료된 트랜잭션의 결과는 데이터베이스에 영구적으로 저장되어야 한다는 것을 의미합니다.

트랜잭션 주의점

트랜잭션의 범위를 최소한으로 유지해야한다. 일반적으로 데이터베이스 커넥션의 갯수는 제한적이다. 그런데 각 단위 프로그램이 커넥션을 소유하는 시간이 길어진다면, 사용 가능한 여유 커넥션의 갯수가 줄어들게 된다. 그러다 어느 순간에는 각 단위 프로그램에서 커넥션을 가져가기 위해 기다려야 하는 상황이 발생할 수도 있는 것이다.

교착상태

?????????

Index

데이터베이스 인덱스란 테이블의 동작 속도(검색 속도)를 높여주는 자료구조를 의미합니다. 마치 책의 앞 부분에 존재하는 목차와 같습니다. 데이터베이스는 인덱스를 따로 저장하며 관계형 DB의 경우에는 테이블로 인덱스를 관리합니다.

Index에 사용되는 자료구조

  • Hash Table
  • B+ Tree

Index 사용하기 전에 고려할 점

인덱스 설정하기에 앞서 해당 테이블에서 어떤 쿼리가 자주 사용되는지 확인해야한다. SELECT를 제외한 다른 연산의 경우 성능 감소를 가져올 수 있다.

정규화

정규화란 데이터베이스의 갱신 이상 현상을 없애고, 데이터 중복을 최소화를 위해 테이블을 둘 이상의 테이블로 분리하는 작업을 만한다. 갱신 이상에는 삽입 이상, 삭제 이상, 수정 이상이 있다.

  • 삽입 이상
  • 삭제 이상
  • 수정 이상

정규형

특정 조건을 만족하는 테이블의 스키마 형태를 말하며, 제 1 정규형, 제 2 정규형, 제 3 정규형, BCNF 정규형이 있다.

NoSQL

NoSQL이란 전통적인 관계형 모델에서 벗어나서 다양한 데이터 모델을 사용하여 데이터의 관리와 접근을 지원하는 데이터베이스를 의미합니다

NoSQL의 장단점

0개의 댓글