[SQL] SQL 공부하기 : RDBMS(관계형 데이터베이스)
∇ SQL은 무엇인가?
: SQL은 Structured Query Language의 약자이며,
관계형 데이터베이스(RDBMS)가 이해할 수 있는 구조화된 질의어입니다.
∇ 관계형 데이터베이스(RDB)는 무엇인가?
: RDB는 Relational DataBase의 약자이며,
행과 열로 구성된 테이블이 다른 테이블과 관계를 맺고 모여있는 집합체를 의미합니다.
∇ 관계형 테이블은 무엇인가?
: 관계형 테이블은 관계형 데이터베이스에 저장되는 데이터의 집합이며,
행(Row)과 열(Column)으로 구성되어있습니다.
관계는 1:1 / 1:N / N:N 세가지 형태로,
테이블 간의 연결이 가능하다는 것을 의미합니다.
√ 1:N(일대다)의 관계.
- 한 테이블의 하나의 레코드가 다른 테이블의 여러 레코드와 연결되는 관계.
ex) 한 부서에 여러 직원이 속하는 경우[부서가 부모, 직원은 자식 테이블로 취급합니다.]
한 회원이 여러 개의 주문을 한 경우
+ "자식 테이블(ex 직원)"이 "부모 테이블의 기본 키(부서테이블의 primary key)"를
"외래 키(foreign key)"로 가집니다.
√ 1:1(일대일)의 관계.
- 두 테이블에서 각 레코드가 서로 하나씩만 연결되는 관계입니다.
한 테이블의 한 레코드가 다른 테이블의 한 레코드와만 연결되는 경우를 의미합니다.
ex) 한 사람당 하나의 주민등록번호를 가지는 경우.
[한 사람은 하나의 주민번호만 가질 수 있고, 하나의 주민번호는 한 사람에게만 속합니다.]
-> 실제 사용 사례 : 부서 테이블과 직원 테이블.
+ 두 테이블이 각각의 기본 키(primary key)를 공유합니다.
√ N:N(다대다)의 관계.
- 양쪽 테이블의 여러 레코드가 서로 연결될 수 있는 관계입니다.
ex) 학생들이 여러 과목을 수강하고, 각 과목에 여러 학생이 등록하는 경우.
-> 실제 구현 : 보통 중간에 연결 테이블(join table)을 만들어 두 개의 1:N의 관계로 표현합니다.
학생 테이블:
- 각 학생의 정보를 저장합니다.
- 학생ID가 기본 키(Primary Key, PK)입니다.
과목 테이블:
- 각 과목의 정보를 저장합니다.
- 과목ID가 기본 키(PK)입니다.
수강신청 테이블 (연결 테이블):
- 학생과 과목 사이의 관계를 나타냅니다.
- 학생ID와 과목ID가 외래 키(Foreign Key, FK)로 사용됩니다.
- 이 테이블을 통해 어떤 학생이 어떤 과목을 수강하는지 알 수 있습니다.
∞
SQL은 관계형 데이터베이스에 있는 데이터를 분석하는 언어입니다.
관계형 데이터베이스(RDBMS)는 테이블이 관계를 맺고 모여있는 집합체를 의미합니다.