Join 키워드에 들어가기 앞서 RDBMS에 대해 짚어보자.
database에는 다양한 종류가 있다.
계층형 데이터베이스 (Hierarchical DBMS)
망형 데이터베이스 (Network DBMS)
관계형 데이터베이스 (Relational DBMS, RDBMS)
객체지향 데이터베이스 (Object-Oriented DBMS)
NoSQL 데이터베이스
NewSQL
현재 이 블로그에서 주로 다루고 있는 MySQL은 RDBMS!
PostgreSQL, Oracle, Microsoft SQL Server, MariaDB도 RDBMS의 일종이다.
RDBMS의 특징
- 데이터를 2차원 테이블 형태로 표현합니다.
- 테이블은 행(row)과 열(column)로 구성됩니다.
- SQL(Structured Query Language)을 사용하여 데이터를 조작하고 검색합니다.
- 테이블 간의 관계(Relationship)를 정의하여 데이터를 구성하고 관리합니다.
이 중 4번 테이블간의 관계에 대해 주목해보자.
모든 데이터를 하나의 테이블에 모두 저장한다고 생각해보자.
어떤 문제가 발생할까?
- 중복데이터로 인한 저장공간 낭비
- 여러번 구매한 고객의 이름 주소 전화번호가 계속 나올 것이다. - 데이터 수정시 해당 행을 모두 찾아서 수정하지 않으면 데이터 무결성이 깨짐
- 고객 전화번호 변경시 그 고객이 구매한 여러건의 구매한 내역 모두 다 바꿔야 ... - 주문데이터 삭제시 고객 데이터도 삭제되어버린다.
>> 따라서 고객테이블, 주문테이블, 상품테이블 처럼 비슷한 데이터를 담는 테이블을 나누어 관리할 필요가 있다.
>> 데이터 테이블가 나눠져 있어도 서로 연관된 정보는 유연하게 주고 받을 수 있는 시스템이 바로 RDBMS 인 것이다!