1.
Primary Key가 무엇인지 설명해 주세요.
•
Primary Key는 테이블에서 각 행을 고유하게 식별하는 열입니다. NULL 값을 허용하지 않으며, 중복될 수 없습니다. 예를 들어, 회원 테이블에서 회원번호가 Primary Key로 사용되면, 각 회원은 고유한 번호로 구분됩니다. Primary Key는 인덱스로 자동 생성되어 검색 속도를 향상시킵니다.
2.
관계형 데이터베이스의 N:M 관계에 대해서 설명해 주세요.
•
N:M 관계는 두 테이블이 서로 여러 개의 레코드를 참조할 수 있는 관계입니다. 예를 들어, 학생 테이블과 강의 테이블이 있을 때, 한 학생은 여러 강의를 수강하고, 한 강의는 여러 학생을 포함할 수 있습니다. 이를 구현하려면 **조인 테이블(예: 수강내역)**을 생성해 두 테이블의 Primary Key를 외래 키(Foreign Key)로 참조합니다.
3.
Left Outer Join과 Inner Join의 차이를 설명해 주세요.
•
Inner Join은 두 테이블에서 교집합에 해당하는 데이터만 반환합니다. 예를 들어, 고객 테이블과 주문 테이블을 조인할 때, 주문한 적 없는 고객은 결과에서 제외됩니다.
•
Left Outer Join은 왼쪽 테이블의 모든 데이터를 포함하고, 오른쪽 테이블의 일치하는 데이터만 추가합니다. 주문한 적 없는 고객도 NULL 값과 함께 표시됩니다.
•
예시: SELECT * FROM 고객 LEFT JOIN 주문 ON 고객.ID = 주문.고객ID;
4.
RDB와 NoSQL을 비교 설명해 주세요.
•
RDB는 정해진 스키마에 따라 데이터를 테이블에 저장하며, ACID를 보장해 안정성이 높습니다. 복잡한 쿼리와 트랜잭션이 필요한 시스템(예: 은행)에 적합합니다.
•
NoSQL은 스키마 없이 유연한 데이터 모델(문서, 키-값 등)을 사용하며, 수평 확장이 용이합니다. 대량의 데이터를 빠르게 처리해야 하는 시스템(예: SNS)에 적합합니다.