티스토리 뷰

ETC

신입 웹개발자(백엔드) 면접 질문 - DB

비용러브 2022. 2. 10. 13:46

1. PK, FK, ER 모델이란?

2. 참조 무결성이란?

3. RDBMS란?

4. DB에서의 commit와 rollback 이란?

5. DBMS( DataBase Management System )

6. DB정규화란?

7. DB정규화의 목적?

8. 데이터베이스의 정규화에 대하여 설명

9. SQL?

10. PLSQL이란?

11. Inner 조인, outer 조인

 


 

1. PK, FK, ER 모델이란?

- PK ( Primary Key ) : 테이블에서 각 Row를 유일하게 구분하는 Column-Key

- FK ( Foreign Key ) : 하나의 테이블에 있는 Column으로는 그의미를 표현할 수 없는 경우, 다른 테이블의 Primary-Key

Column 의 값을 반드시 참조하여 표현해야 하는 Column

- ER 모델 ( Entity Relation Model )

: 요구사항으로부터 얻어낸 정보들을 개체(Entity), 애트리뷰트(Attribute),관계성(Relation)으로 기술하는 데이터 모델

ex)

-개체(Entity)

: 개체란 단독으로 존재하는 객체를 의미하며, 동일한 객체는 존재하지 않는다.

ex) 학생 정보가 학번,이름,학년이 있을 때, 3개의 정보가 모두 같은 학생이 오직 한 명이면 이를 개체라고 한다.

    ====> 즉, 학생 한명이 개체가 되는 것이다. (=튜플)

 

 (1) 애트리뷰트, 속성( Attribute )

    : 개체가 갖는 속성을 의미한다.

    ex ) Student에서 학번, 이름, 학년 같은 정보를 속성이라 한다.

    - ER 다이어그램에서 Attribute는 원으로 표현

 

 (2) 관계 ( Relation )

   : Entity Type간의 관계를 의미한다.

   ex ) 수강을 뜻하는 Takes는 학생과 과목간의 "수강"이라는 관계를 갖는다

         이 때 Takes를 Relation Type이라고 하며, Relation Type 역시 속성을 가지고 있다.

    - ER 다이어그램에서는 Relation은 마름모로 표현한다.

 

2. 참조 무결성이란?

- 기본키와 참조키 간의 관계가 항상 유지됨을 보장한다.

- 참조되는 테이블의 행을 이를 참조하는 참조키가 존재하는 한 삭제될 수 없고, 기본키도 변경할 수 없다.

ex ) RESTRICTED(변경 또는 삭제 연산을 취소) , CASCADE(참조하고 있는 개체도 변경 또는 삭제) , SET NULL(참조하고 있는 개체의 값을 NULL로 설정)

 

3. RDBMS란?

- 모든 데이터를 2차원 테이블로 표현

- 테이블은 ROW( record , tuple )과 COLUMN( field , item )으로 이루어진 기본 데이터 저장 단위

- 상호관련성을 가진 테이블(table)의 집합

- 만들거나 이용하기도 비교적 쉽지만, 무엇보다 확장이 용이하다는 장점이 있음

- 데이터베이스의 설계도를 ER(Entity Relationship)모델

- ER모델에 따라, 데이터베이스가 만들어지며, 데이터베이스는 하나 이상의 테이블로 구성됨.

ER모델에서 엔티티를 기반으로 테이블이 만들어짐

 

4. DB에서의 commit와 rollback 이란?

commit은 쿼리문에서 update, delete, insert를 수행했을 때, 그 쿼리문 수행결과에 대해서 확정을 짓는 것.

Rollback은 사용자가 update, delete, insert등을 실수로 수행했을 때, 데이터를 원복시키기 위해 사용하는 것.

 

5. DBMS( DataBase Management System )

데이터베이스를 관리하며 응용 프로그램들이 데이터베이스를 공유하며 사용할 수 있는 환경을 제공하는 소프트웨어. 데이터베이스 내의 정보를 검색하거나 데이터베이스에 정보를 저장하기 편리하고 효율적인 환경을 제공하는 것이 목적이다. 

 

6. DB정규화란?

자료의 손실이나 불필요한 정보의 도입 없이 데이터의 일관성, 데이터 중복을 최소화하고 최대의 데이터 안정성 확보를 위한 안정적 자료 구조로 변환하기 위해서 하나의 테이블을 둘 이상을 분리하는 작업이다.

 

7. DB정규화의 목적?

자료 저장에 필요한 저장 공간을 최소화하고 자료의 삽입, 갱신 및 삭제에 따른 이상 현상을 제거하고 (데이터 무결성 유지), 자료 구조의 안정성 최대화를 위해서다.

 

8. 데이터베이스의 정규화에 대하여 설명

데이터베이스 정규화는 논리적 데이터베이스 설계에 있어서 테이블들을 구조화 하는 기법 중 하나 이다.

어느 테이블이든 어느 정도는 정규화 될 수 있는데 데이터베이스 이론에서 테이블의 정규화된 정도를 정규형이라는 용어를 써서 표현한다.

9. SQL?

SQL은 구조화 질의어라고 한다. 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)를 포함한 데이터베이스용 질의 언어의 일종으로 데이터베이스를 사용할 때 데이터베이스에 접근할 수 있는 데이터베이스 하부 언어를 말한다.

 

10. PLSQL이란?

SQL이 확장된 개념으로 DML문과 Query문, 절차형 언어 등을 사용해서 절차적 프로그래밍을 가능하게 하는 트랜잭션 언어이다. 블록구조로 수행속도를 높일 수 있다

 

11.  Join의 종류

  - INNER JOIN(내부조인)

    : 키 값이 있는 테이블의 컬럼 값을 비교 후 조건에 맞게 값을 가져오는 것이다.

    ex) EQUI JOIN

 

  - CROSS JOIN(교차조인, Cartesian Product- 카디션 곱)

    : 조인되는 두 테이블을 곱집합을 반환한다.

 

  - OUTER JOIN

    : 조인하는 여러 테이블에서 한 쪽에는 데이터가 있고 한 쪽에는 데이터가 없는 경우, 데이터가 있는 쪽 테이블의 내용을 전부 출력하는 방법이다.

    ex) LEFT OUTER JOIN, RIGHT OUTER JOIN

'ETC' 카테고리의 다른 글

프론트엔드 개발자 면접 질문  (0) 2022.02.10
Python 개발자 면접 질문  (0) 2022.02.10
개발자 면접 시나리오  (0) 2022.02.10
신입 웹개발자(백엔드) 면접 질문  (0) 2022.02.10
백엔드 개발자 면접 질문  (0) 2022.02.10
댓글