![[기술 면접] 3. RDB와 NoSQL을 비교해서 설명해주세요. 1 제목을 입력해주세요 복사본 8 001](https://i0.wp.com/allhoneytip.com/wp-content/uploads/2023/08/%EC%A0%9C%EB%AA%A9%EC%9D%84-%EC%9E%85%EB%A0%A5%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94__%EB%B3%B5%EC%82%AC%EB%B3%B8-8-001-optimized.png?resize=300%2C300&ssl=1)
지난 시간에 이어서, 이번엔 RDB(Relation DataBase)와 NoSQL(Not Only SQL)에 대해 알아보겠습니다. 자주 등장하는 내용이며, 프로젝트 기획 시에 DB를 선택할 수 있는 기본 지식이니 꼼꼼하게 알아보도록 합니다.
![[기술 면접] 3. RDB와 NoSQL을 비교해서 설명해주세요. 2 RDB NoSQL](https://i0.wp.com/allhoneytip.com/wp-content/uploads/2023/08/image-13-optimized.png?resize=728%2C383&ssl=1)
Q: RDB와 NoSQL을 비교해서 설명해주세요.
RDB는 사전에 엄격하게 정의된 Schema를 기반으로 정형 데이터만 저장할 수 있으며, NoSQL은 Schema 없이 비정형 데이터를 저장할 수 있도록 지원합니다.
RDB는 중복을 허용하지 않기 때문에 UPDATE가 많을 때 유리하며, NoSQL은 중복으로 인해 데이터 UPDATE 시 모든 컬렉션에서 수정이 필요하기 때문에 UPDATE가 적고 조회가 많을 때 유리합니다.
Q: NoSQL은 언제 사용해야 하나요?
정확한 데이터 구조가 정해지지 않은 경우, 데이터 UPDATE가 잘 이루어지지 않고, 조회가 많은 경우, 또 Scale out이 가능하므로 데이터 양이 매우 많은 경우에 사용하면 좋습니다.
Q: RDB는 언제 사용해야 하나요?
데이터 구조가 명확하여 변경될 여지가 없는 경우나 중복이 없으므로 UPDATE가 잦은 경우에 사용하면 좋습니다.
Q: RDB에서 N:M 관계에 대해서 설명해주세요.
양쪽 entitiy 모두가 서로에게 1:N 관계를 갖는 구조를 말합니다. 보통 새로운 Mapping Table을 사용하여 관계를 맺습니다.
Q: 1:N 관계에 대해서 설명해주세요.
RDB에서 하나의 Entity(table)가 관계를 맺는 Entitiy의 여러 객체를 가지는 구조를 말합니다.
Q: LEFT OUTER JOIN, INNER JOIN 차이를 설명해주세요.
JOIN은 두 개 이상의 테이블을 서로 연결하여 하나의 결과물을 출력합니다. LEFT OUTER JOIN은 왼쪽 TABLE의 모든 행에 대해서 JOIN을 하고, INNER JOIN은 두 테이블에 모두 있는 내용만 JOIN하는 방식입니다.
마치며
이번 시간엔 RDB와 NoSQL에 관련된 질문들에 대해 알아보았습니다. 추가로 RDB 관계, JOIN과 관련된 간단한 질문도 알아보았는데요, 인지하고 있던 내용이지만, 말로 표현해본 적이 없다면, 바로 대답이 안 나올 가능성이 큽니다. 이번 기회를 통해 한 번 정리하는 계기가 되었으면 하네요.
다음 시간엔, 트랜잭션(Transaction)에 대해 알아보도록 하겠습니다.
![[기술 면접] 3. RDB와 NoSQL을 비교해서 설명해주세요. 3 image 14](https://i0.wp.com/allhoneytip.com/wp-content/uploads/2023/08/image-14-optimized.png?resize=1024%2C562&ssl=1)
답글 남기기