일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- BFS
- TypeScript
- Graph
- java
- 알고리즘
- 안드로이드
- Data Structure
- react
- Database
- network
- 리트코드
- DFS
- 동적 계획법
- git
- Python
- 백준
- CS
- frontend
- Algorithm
- 다이나믹 프로그래밍
- 그레이들
- LeetCode
- 프로그래머스
- Javascript
- 자바
- DP
- vscode
- VIM
- Redux
- db
- Today
- Total
늘 겸손하게
Database 질문 리스트 본문
질문 리스트
1. 데이터베이스에 대해 설명해주세요
2. 엔터티가 무엇인가요?
3. 릴레이션이 무엇인가요?
4. 릴레이션은 관계형 데이터베이스에서, NoSQL 데이터베이스에서 각각 무엇이라 부르나요?
5. 관계형 데이터베이스에서 데이터베이스는 여러 개의 테이블로 구성됩니다. 테이블은 뭐로 구성되나요? 또, NoSQL 데이터베이스에서 데이터베이스는 여러 개의 컬렉션으로 구성됩니다. 컬렉션은 뭐로 구성되나요?
6. 속성이 무엇인가요?
7. 도메인이 무엇인가요?
8. 필드와 레코드에 대해 설명해주세요
9. 데이터베이스에서 슈퍼키와 후보키는 각각 어떤 조건을 만족해야 하나요?
10. 기본키가 무엇인가요?
11. 외래키가 무엇인가요?
12. 후보키가 무엇인가요?
13. 대체키가 무엇인가요?
14. 슈퍼키가 무엇인가요?
15. ERD가 무엇인가요?
16. 정규화 과정이 무엇인가요?
17. 정규형 원칙을 설명해주세요
18. 제 1 정규형이 무엇인가요?
19. 제 2 정규형이 무엇인가요?
20. 제 3 정규형이 무엇인가요?
21. 보이스/코드 정규형 (BCNF) 에 대해 설명해주세요
22. 트랜잭션이 무엇인가요?
23. 트랜잭션의 특징을 설명해주세요.
24. 인덱스가 무엇인가요?
25. 조인이 무엇인가요?
26. 조인의 종류에는 어떤것이 있나요?
정답
1. 데이터베이스에 대해 설명해주세요
데이터베이스는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음입니다.
해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 부릅니다.
2. 엔터티가 무엇인가요?
여러가지 속성을 지닌 명사를 의미합니다. 하나의 엔터티는 다른 엔터티와 구분됩니다.
3. 릴레이션이 무엇인가요?
데이터베이스에서 정보를 구분하여 저장하는 기본 단위입니다. 엔터티를 데이터베이스에서 릴레이션으로 저장합니다.
4. 릴레이션은 관계형 데이터베이스에서, NoSQL 데이터베이스에서 각각 무엇이라 부르나요?
관계형 데이터베이스에서 릴레이션은 '테이블', NoSQL 데이터베이스에서는 '컬렉션'이라고 부릅니다.
5. 관계형 데이터베이스에서 데이터베이스는 여러 개의 테이블로 구성됩니다. 테이블은 뭐로 구성되나요? 또, NoSQL 데이터베이스에서 데이터베이스는 여러 개의 컬렉션으로 구성됩니다. 컬렉션은 뭐로 구성되나요?
테이블은 여러 개의 레코드로 구성됩니다. 컬렉션은 여러 개의 도큐먼트로 구성됩니다.
6.속성이 무엇인가요?
릴레이션이 관리하는 데이터의 종류를 속성이라 부릅니다. 예로, '차'라는 엔터티의 속성을 뽑아보면 차 넘버, 바퀴 수, 차 색깔, 차종 등이 있을겁니다. 테이블의 칼럼 헤드에 들어가는 정보들입니다.
아래와 같은 테이블이 있다면 이 테이블의 속성은 '차 넘버', '차 색깔', '차 종' 입니다.
차 넘버 | 차 색깔 | 차 종 |
1111 | 빨강 | 마티즈 |
2222 | 파랑 | 벤츠 |
3333 | 노랑 | 아우디 |
7. 도메인이 무엇인가요?
특정 속성이 가질 수 있는 값의 집합을 도메인이라고 부릅니다.
8. 필드와 레코드에 대해 설명해주세요
필드는 특정 유형의 데이터를 저장하는 열(column)으로 생각할 수 있습니다.
레코드는 개별적인 데이터, 행(row) 데이터라고 생각할 수 있습니다. 각 레코드는 테이블 내에서 단일 행(row)으로 저장됩니다.
아래와 같은 테이블에서 필드는 '차 넘버', '차 색깔', '차 종' 입니다.
아래와 같은 테이블에서 레코드는 ('1111', '빨강', '마티즈'), ('2222', '파랑', '벤츠') 입니다.
차 넘버 | 차 색깔 | 차 종 |
1111 | 빨강 | 마티즈 |
2222 | 파랑 | 벤츠 |
3333 | 노랑 | 아우디 |
9. 데이터베이스에서 슈퍼키와 후보키는 각각 어떤 조건을 만족해야 하나요?
슈퍼키는 유일성을 만족해야 합니다. 후보키는 유일성, 최소성을 모두 만족해야 합니다.
유일성이란, 레코드을 유일하게 식별할 수 있는 속성을 의미합니다.
최소성이란, 최소한의 집합 크기로 레코드를 식별할 수 있는 속성을 의미합니다. 키에서 한 개의 필드를 제거해도 레코드들을 유일하게 식별 가능하면 최소성을 만족하지 못하는 것입니다.
10. 기본키가 무엇인가요?
Primary Key로 부르며 모든 레코드를 유일하게 식별 가능하고 최소성을 만족하는 후보키들 중 사용하기로 선택한 키를 기본키라 합니다.
11. 외래키가 무엇인가요?
외부 테이블의 기본키를 그대로 가져와 사용하는 기본키를 외래키라고 부릅니다.
12. 후보키가 무엇인가요?
키 중 유일성과 최소성을 만족하는 키들을 후보키라 부릅니다. 기본키가 될 수 있는 후보들입니다.
13. 대체키가 무엇인가요?
후보키들중 기본키로 선택되지 못한 키들, 기본키를 대체 가능한 키를 대체키라 부릅니다.
14. 슈퍼키가 무엇인가요?
키들중 유일성을 만족하는 키들을 슈퍼키라 부릅니다.
15. ERD
Entity Relationship Diagram
16. 정규화 과정이 무엇인가요?
릴레이션(테이블 or 컬렉션) 간의 잘못된 종속 관계로 인해 데이터베이스 이상 현상이 일어나서 이를 해결하거나, 저장 공간을 효율적으로 사용하기 위해 릴레이션을 여러 개로 분리하는 과정을 말합니다.
17. 정규형 원칙을 설명해주세요
같은 의미를 표현하는 릴레이션이지만 좀 더 좋은 구조로 만들어야 한다.
자료의 중복성은 감소해야 한다.
독립적인 관계는 별개의 릴레이션으로 표현해야 한다.
각각의 릴레이션은 독립적인 표현이 가능해야 하는 것을 말합니다.
18. 제 1 정규형이 무엇인가요?
테이블의 도메인을 더 이상 분해할 수 없는 원자값(Atomic Value)으로만 구성되도록 분리하는 것을 제 1 정규형이라 합니다.
19. 제 2 정규형이 무엇인가요?
제 1 정규형을 지키며 부분 함수 종속성을 제거하는 과정을 말합니다.
부분 함수 종속성이란 기본키의 일부분만으로 기본키가 아닌 열의 값을 결정하는 경우 발생합니다.
제 2 정규형을 준수하려면 모든 비기본키 열이 전체 기본 키에 대해 완전 함수 종속적이어야 합니다. 즉, 비기본키 열의 값은 기본 키 전체에 의해 결정되어야 합니다.
20. 제 3 정규형이 무엇인가요?
제 2 정규형이고 기본키가 아닌 모든 속성이 이행적 함수 종속(transitive FD)을 만족하지 않는 상태를 말합니다.
이행적 함수 종속이란 A -> B와 B -> C가 존재하면 논리적으로 A -> C가 성립하는데, 이때 집합 C가 집합 A에 이행적으로 함수 종속이 되었다고 합니다.
21. 보이스/코드 정규형 (BCNF) 에 대해 설명해주세요
제 3 정규형이고, 결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태를 말합니다.
22. 트랜잭션이 무엇인가요?
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위.
즉, 여러 개의 쿼리를 하나로 묶는 단위를 말합니다.
23. 트랜잭션의 특징을 설명해주세요.
트랜잭션은 ACID 특징을 가집니다.
A는 Atomacity(원자성)을 의미합니다. 트랜잭션이 전부 일어나거나 하나도 일어나지 않음을 보장합니다. 이를 위해 롤백이 있습니다.
커밋은 쿼리가 성공적으로 처리되었다고 확정하는 명령어입니다.
롤백은 트랜잭션 실행 이전으로 되돌리는 기능입니다. 원자성을 보장하기 위한 기능입니다.
C는 Consistancy(일관성)를 의미합니다. 일관성이란 데이터의 추가, 변경, 삭제는 정해진 규칙대로만 적용되어야함을 의미합니다. 즉, '허용된 방식'으로만 데이터를 변경해야 함을 의미합니다.
I는 Isolation(독립성)를 의미합니다. 다수의 병렬 트랜잭션들이라도 순차적으로 실행되어야 함을 의미합니다. 트랜잭션 수행 시 서로 끼어들지 못함을 의미합니다.
D는 Durability(지속성)을 의미합니다. 성공적으로 수행된 트랜잭션은 데이터베이스에 영구적으로 반영되어야 함을 의미합니다. 이는 데이터베이스에 시스템 장애가 발생해도 원래 상태로 복구하는 회복 기능이 있어야 함을 의미합니다. 데이터베이스는 이를 위해 체크섬, 저널링, 롤백 등의 기능을 제공합니다.
24. 인덱스가 무엇인가요?
인덱스는 데이터 탐색을 빠르게 하기 위한 작은 자료구조입니다. 책의 마지막 장에 있는 찾아보기와 동일합니다.
인덱스를 통해 데이터 검색 속도를 향상 시킬 수 있습니다. 인덱스가 없다면 full search가 이루어집니다.
인덱스는 보통 B-tree라는 자료구조로 이루어져 있습니다. B-tree는 루트 노드, 리프 노드, 그리고 루트 노드와 리프 노드 사이에 있는 브랜치 노드로 나뉩니다.
25. 조인이 무엇인가요?
두 개 이상의 테이블을 기준에 맞춰 합쳐서 새로운 테이블을 만들어내는 것을 말합니다.
26. 조인의 종류에는 어떤것이 있나요?
inner join, left join, right join, full outer join 등이 있습니다.
inner join은 두 테이블의 교집합 테이블을 생성합니다.
left join은 왼쪽 테이블의 모든 행이 결과 테이블에 표기됩니다.
right join은 오른쪽 테이블의 모든 행이 결과 테이블에 표기됩니다.
full outer join은 두 개의 테이블을 기반으로 조인 조건에 만족하지 않는 행까지 모두 표기합니다.
'Computer Science > Database' 카테고리의 다른 글
CS - Database - 트랜잭션과 무결성 (0) | 2023.05.06 |
---|---|
CS - Database - ERD (0) | 2023.05.06 |
CS - Database - Database (0) | 2023.05.01 |
CS - Database - Index(인덱스) (0) | 2022.10.10 |
CS - Database - Anomaly (0) | 2022.10.10 |