관계형 데이터베이스란,
"관계있는" 여러 개의 테이블을 연결해놓은 것.
애초에 데이터베이스라는 것이 여러 개의 테이블이다.
이 테이블들간의 어떤 관계를 설정하여 연결하면
그게 관계형 데이터베이스다. (RDB, Relationship DataBase)
예시로, 어떤 가게에서 주문을 한다고 가정하자.
이 상황에서 생각할 수 있는 테이블들은 아래와 같다.
[사람]
| MEMBER_ ID | 이름 |
| 1 | 김철수 |
| 2 | 박짱구 |
| 3 | 최유리 |
| ... | ... |
[상품]
| PRODUCT_ID | 상품명 | 가격 |
| 1 | 볼펜 | 1,000원 |
| 2 | 연필 | 800원 |
| 3 | 지우개 | 500원 |
| ... | ... | ... |
이 상황에서, 김철수가 볼펜 하나를 구매하는 상황을 생각해볼 수 있다.
이 문장과 동치는, 이 테이블에서 관계가 발생했다는 것,
그리고 관계형 데이터베이스를 생각해볼 수 있다는 것이다.
"사람" 테이블에서 "MEMBER_ID"가 "1"이고 "이름"이 "김철수"인 사람이,
"상품" 테이블에서 "PRODUCT_ID"가 "1"이고 "상품명"이 "볼펜"이고, "가격"이 "1,000원"인 상품을
"주문" 했다.
쓸데없이 말이 길게 느껴지는 이유는, 불필요한 정보가 포함되었기 때문이다.
저 표를 보면, MEMBER_ID가 1인 사람의 이름이 김철수 라는 사실을 누가 모르겠는가?
따라서 이렇게 바꿀 수 있다.
"사람" 테이블에서 "MEMBER_ID"가 "1"이고 "이름"이 "김철수"인 사람이,
--> "사람" 테이블에서 "MEMBER_ID"가 "1"인 사람이
이름을 뺀 이유는, 동명이인을 고려한 것이고 학창시절 출석번호를 생각하면 된다.
같은 맥락으로 "상품"테이블도, "PRODUCT_ID"로만 부른다면
복잡한 문장은 아래와 같이 바뀐다.
"사람" 테이블에서 "MEMBER_ID"가 "1"인 사람이,
"상품" 테이블에서 "PRODUCT_ID"가 "1"인 상품을
"주문" 했다.
여기에서 MEMBER_ID와 PRODUCT_ID는 각각 사람, 상품 테이블의 기본키이다.
기본키는 다른 객체와 중복되지 않으면서
관계형 데이터베이스는, 두 테이블을 연결짓는 사건 또한 테이블로 정의한다.
따라서 앞서 텍스트로 표현했던 "주문" 이라는 사건 또한 아래 테이블로 정의할 수 있다.
'데이터베이스' 카테고리의 다른 글
| [데이터베이스] 1. 데이터베이스 기본용어 (0) | 2026.01.07 |
|---|