면접 준비 - 데이터베이스

jodbsgh·2022년 4월 12일
0

🔥"면접 준비"

목록 보기
7/10

DBMS

DBMS는 데이터베이스 내 데이터에 접근하도록 도와주는 시스템입니다.DBMS는 크게 질의처리기와 저장 시스템으로 이루어져있습니다.

PK, FK, ER 모델이란?

Primary Key : 테이블에서 각 Row(행)을 유일하게 구분하는 Column-Key
Foreign Key : 하나의 테이블에 있는 Column(열)으로는 그 의미를 표현할 수 없는 경우, 다른 테이블의 Primary-Key Column의 값을 반드시 참조해야 하는 Key
ER(Entity-Relation) 모델 : 개체-관계 모델, 데이터베이스를 설계할 때 사용하는 모델 중 하나

트랜잭션의 특징 ACID

데이터베이스의 무결성과 일관성을 위해서 트렌젝션은 4가지 특징을 만족해야되는데요.
원자성은 한 트랜젝션내 실행한 작업은 모두 성공하거나 실패해야되는 거구요.
일관성은 일관성있는 데이터베이스 상태를 유지시키는 것입니다.
격리성은 동시에 실행되는 트렌젝션은 서로 영향을 미치지 않아야 하구요.
지속성은 트랜젝션 완료시 결과가 영구적으로 반영되어야 합니다.

RDB에서 Join이 무엇인지에 대한 설명과 간단한 샘플 쿼리문을 작성해보아라.

Join이란 2개 이상의 테이블에서 조건에 맞는 데이터를 추출하기 위하여 사용

  • Inner Join : 2개 이상의 테이블에서 교집합만을 추출
  • Left Join : 2개 이상의 테이블에서 from에 해당하는 부분을 추출
  • Right Join : 2개 이상의 테이블에서 from과 join하는 테이블에 해당하는 부분을 추출
  • Outer Join : 아웃터 조인 또는 풀 조인이라고 불림, 2개 이상의 테이블에서 모든 테이블에 해당하는 부분을 추출
    Inner) SELECT user.name, course.name FROM user INNER JOIN course ON user.course=course.id;
    Left) SELECT user.name, course.name FROM user LEFT JOIN course ON user.course=course.id;
    Right) SELECT user.name, course.name FROM user RIGHT JOIN course ON user.course=course.id;
    Outer) SELECT user.name, course.name FROM user OUTER JOIN course ON user.course=course.id;
  • 가장 많이 쓰이는 Join은 Inner Join.

DDL, DML, DCL의 역할과 구문 예

  • DDL(Data Definition Language)

    : 데이터베이스를 정의하는 언어, 객체를 생성하거나 수정하거나 삭제하는 등 데이터의 전체 골격을 결정하는 역할

CREATE: 데이터베이스, 테이블 등을 생성/ ALTER: 테이블을 수정

DROP: 데이터베이스, 테이블을 삭제 / TRUNCATE: 테이블을 초기화

  • DML(Data Manipulation Language)

: 정의된 데이터베이스에 입력된 레코드를 조회하거나 수정하거나 삭제하는 등의 역할

INSERT: 데이터를 삽입/ UPDATE: 데이터를 수정 / DELETE: 데이터를 삭제

  • DCL(Data Control Language)

: 데이터베이스에 접근하거나 객체에 권한을 주는등의 역할

GRANT: DB 객체에 권한 부여 / REVOKE: 부여한 권한을 취소, 철회

NOSQL

NOSQL은 Not Only SQL의 약자로 SQL을 보완한다는 의미를 갖고 있습니다.
NOSQL은 스키마가 없어서 데이터를 조회하고 삽입하는 속도가 빠릅니다.
또한 대량의 분산 데이터를 저장하는데 특화되어있습니다.

파티셔닝

파티셔닝은 테이블을 컬러 단위로 나누는 기법인데요.
장점은 update나 insert 같은 작업이 분산되어 있어서 성능이 향상되구요.
단점은 테이블간 join 비용이 증가하게 되고, index를 별도의 파티셔닝 할 수 없다는 단점을 가지고 있습니다.

샤딩

샤딩은 테이블을 row단위로 분산해서 저장하는 방법입니다. Horizontal Partitioning 이라고도 하는데요. 샤드 key를 정하는 방법에 따라서 샤드 종류가 결정되는데. 크게 Hash Sharding과 Dynamic Sharding이 있습니다.

JDBC

JDBC(Java Database Connectivity)는 DB에 접근할 수 있도록 Java 에서 제공하는 API 이다.

  • JDBC 는 관계형 데이터베이스에 사용되는 SQL 문을 실행하기 위해 자바로 작성된 클래스와 인터페이스로 구성되어 있다
  • 특정 데이터베이스나 특정 데이터베이스 매커니즘에 구애 받지 않는 독립적인 인터페이스를 통해 다양한
    데이터베이스에 접근하는 코드를 구현(mysql, oracle, mssql 등 추상화를 통해 접근가능)할 수 있도록 제공하는
    자바 클래스의 표준 집합이다
  • JDBC 클래스는 자바 패키지 java.sql 과 javax.sql 에 포함되어 있다
profile
어제 보다는 내일을, 내일 보다는 오늘을 🚀

0개의 댓글