Fairy ' s
[29. March] 발표 / TIL 본문
Q 1.
RDBMS에서 스키마 디자인 중 필드값으로 배열을 넣어야 하는 경우가 발생했습니다. 선배 개발자에게 물어보니, 이 경우에는 정규화가 필요하다고 조언해줍니다. 다음은 사용자 정보가 담긴 user 테이블입니다. 사례를 통해 어떻게 테이블을 정규화할 지 고민해보세요.
ID | Name | Age | Hobby | ||
1 | 김코딩 | 19 | kimcoding@aaa.com | 코딩 | |
2 | 박해커 | 28 | hackerpark@bbb.com | 해킹 | |
3 | 최고수 | 18 | choigosu@ccc.com | [코딩, 해킹] | <=== 이 문제를 어떻게 해결할까요? |
A.
Hobby의 다중 값 속성을 제거하고 제 2 정규형을 달성하기 위해 테이블을 두 개의 테이블로 분할해야 한다.
정규화를 통해 각 테이블이 중복되지 않고 논리적으로 관련된 데이터만 포함하도록 하게 디자인 되었다.
- 1번 테이블 : User
User ID | Name | Age | |
1 | 김코딩 | 19 | kimcoding@aaa.com |
2 | 박해커 | 28 | hackerpark@bbb.com |
3 | 최고수 | 18 | choigosu@ccc.com |
- 2번 테이블 : User_Hobby
Hobby ID | Hobby |
1 | 코딩 |
2 | 해킹 |
- 3번 테이블 : Hobby
User ID | Hobby ID |
1 | 1 |
2 | 2 |
3 | 1 |
3 | 2 |
- 표 1에는 User 개인에 대한 정보가 포함되어 있다.
- 표 2에는 User들의 모든 Hobby가 ID로 정리되어 있다.
- 표 3에는 각 User ID와 Hobby ID가 연결되어 있다.
- User_Hobby 테이블은 User 테이블과 Hobby 테이블간의 매핑을 담당하는 테이블이다.
Q 2.
배치 작업의 예로는 어떤 것들이 있나요? 거래(트랜잭션), 리포트, 요금 계산은 배치 작업의 대표적인 예입니다. 이 키워드를 사용해 배치 작업을 설명해보세요.
A.
배치 작업이란 유입되는 데이터를 실시간 처리가 아닌 특정량 또는 특정기간 모아서 한번에 처리하는 것이다.
- 트랜잭션은 일반적으로 재고 업데이트 또는 급여 처리와 같은 대량의 데이터를 처리하는 데 사용된다. 재고나 급여 같은 경우 스트림 처리처럼 실시간으로 처리하는 데이터가 아닌 대량의 데이터를 모아뒀다가 한번에 처리하기 때문에 배치 작업이라고 할 수 있다.
- 리포트는 데이터에 대한 요약을 제공하고, 정기적인 간격의 날짜 별로 생성하여 처리하기 때문에 배치 작업이라고 할 수 있다.
- 요금 계산은 한번에 많은 청구서를 처리하는 데에 사용되며
'Devops Bootcamp' 카테고리의 다른 글
[30. March] 로그 파이프라인 / TIL #2 (0) | 2023.03.30 |
---|---|
[30. March] 데이터 파이프라인 / TIL #1 (0) | 2023.03.30 |
[29. March] 데이터베이스 개념 / TIL (0) | 2023.03.29 |
[24. March] WAS Web Server / TIL (0) | 2023.03.24 |
[23. March] HTTPS / TIL #2 (0) | 2023.03.23 |
Comments