Database 관련
1. Database의 특징
실시간 접근성, 계속적인 변화, 동시공용, 내용에 의한 참조
- 실시간 접근성 : 수시적이고 비정현적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 한다.
- 계속적인 변화 : 데이터베이스의 상태는 동적이다. 즉 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신의 데이터를 유지한다.
- 동시공용 : 데이터베이스는 서로 다른 목적을 가진 여러 응용자들을 위한 것이므로 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.
- 내용에 의한 참조 : 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.
2. RDBMS와 NoSQL의 차이에 대해 설명해 보세요.
Schema 유무, 데이터 분산 용이
RDBMS는 정해진 스키마가 존재하고, NoSQL은 정해진 스키마가 없다는 것이 가장 큰 차이입니다. NoSQL은 정해진 스키마가 없을 때 데이터 구조 변화가 자유롭고 데이터 분산이 용이하다는 장점이 있지만, 데이터 중복이 발생하거나 데이터 변경시에 연산이 오래 걸린다는 단점이 있습니다.
RDBMS는 데이터베이스를 이루는 객체들의 릴레이션을 통해서 데이터를 저장하는 데이터베이스입니다. SQL을 사용해 데이터의 저장, 질의, 수정, 삭제를 할 수 있으며 데이터를 효율적으로 보관하는 것을 목적으로 하고 구조화가 굉장히 중요합니다. 장점으로는 명확한 데이터 구조를 보장하고, 중복을 피할 수 있습니다. NOSQL은 RDBMS에 비해 자유로운 형태로 데이터를 저장합니다. 또한 수평확장을 할 수 있고 분산처리를 지원합니다. 다양한 형태의 NOSQL 데이터베이스가 있고, 대표적으로 key-value store, bigtable, dynamo, document db, graph db 등이 있습니다.
3. DB에서 인덱스를 잘 사용하면 어떤 장점이 있을지 설명해 보세요.
DB의 인덱스를 잘 사용하는 것은 데이터를 검색하는 시점에 성능 차이에 큰 영향을 미칩니다. 대용량 데이터를 담고 있는 DB 테이블에서 필요한 데이터를 빨리 찾기 위해 인덱스가 필요합니다. 인덱스가업거나 적절한 익덱스를 찾기 못할 경우 데이터가 담겨있는 데이틀 전체를 읽어야 하게 데이터 조회 시간이 오래 걸립니다. 인덱스는 DB 데이터의 주소를 갖고 있는 것을 의미하며, 원하는 데이터를 빠르게 찾을 수 있다는 장점을 가지고 있습니다.
4. 트랜잭션에 대해 설명해 보세요.
ACID, Commit, Rollback
데이터베이스에서는 트랜잭션을 조작함으로써 사용자가 데이터베이스에 대한 완전성을 신뢰할 수 있도록 하고 있습니다. 트랜잭션이란 더 이상 나눌수 없는 가장 작은 하나의 단위를 이야기 합니다. 모든 데이터베이스는 자체적으로 트랜잭션을 지원하는데 하나의 명령을 실행 했을때 데이터베이스가 온전히 그 명령을 실행되었다는것을 Commit 이라 하고, Rollback은 하나의 트랜잭션이 어디선가 비정상으로 종료 되었을때 이트랜잭션 내에서 진행된 모든 과정을 취소하는 것이다. 또한 트랜잭션의 특징인 ACID(원자성, 일관성, 격리성, 지속성)를 통해 Database는 항상 정확하고 일관된 상태를 유지할 수 있게 해준다.
5. 정규화에 대해서 설명해 보세요.
정규화는 데이터의 중복방지, 무결성을 충족시키기 위해 데이터베이스를 설계하는 것을 의미합니다.
- 제1 정규형(1NF, 원자성) : 모든 속성은 반드시 하나의 값만 가져야 한다.
- 제2 정규형(2NF, 부분 종속) : 모든 속성은 반드시 모든 기본키에 종속되어야 한다.(기본키 일부에만 종속되어서는 안된다)
- 제3 정규형(3NF, 이행 종속) : 기본키가 아닌 모든 속성간에는 서로 종속될 수 없다.
'BE Study' 카테고리의 다른 글
| Node.js + MongoDB App 만들기 (1) (0) | 2022.12.16 |
|---|---|
| 백엔드 면접 스크립트 - Node.js (0) | 2022.12.06 |
| 백엔드 면접 스크립트 - 운영체제 (0) | 2022.10.21 |
| 백엔드 면접 스크립트 - Network (0) | 2022.10.21 |
| 브라우저에서 네이버를 검색하고 화면이 출력 될 때 까지 내부적인 동작 (DNS 작동) (0) | 2022.10.13 |
