1.3.3 데이터베이스와 스키마
RDBMS는 데이터를 테이블에 저장합니다. 그리고 SQL을 사용한 작업은 주로 테이블을 대상으로 하므로 테이블을 만들어야 데이터를 사용할 수 있습니다. 그런데 MySQL은 데이터베이스나 스키마 안에 테이블을 보관하므로 테이블을 만들기 전에 먼저 데이터베이스 또는 스키마를 만들어야 합니다.
여기에서 말하는 데이터베이스는 앞에서 설명한 데이터베이스와 개념이 좀 다릅니다. 쉽게 말해서 MySQL의 데이터베이스는 테이블을 포함해 각종 데이터베이스 객체(데이터를 저장하거나 데이터와 관련 있는 구조체)를 담아 놓는 논리적인 저장 공간입니다.
MySQL을 커다란 공장이라고 생각해 볼까요? 공장에서 생산한 각종 제품을 창고에 보관하겠죠. 창고 안에는 다시 제품을 종류나 특성에 맞게 보관할 수 있는 별도의 선반이 마련되어 있습니다. 여기서 제품을 데이터라고 본다면 선반이 테이블, 창고가 데이터베이스에 해당합니다.
그럼 스키마(schema)는 무엇일까요? MySQL에서 스키마는 데이터베이스와 의미가 같습니다. 일종의 동의어라고 보면 됩니다. 공장 안에 여러 개의 창고를 둘 수 있듯이, MySQL에서는 여러 개의 데이터베이스나 스키마를 생성할 수 있습니다.
TIP
데이터베이스나 스키마는 RDBMS 제품마다 그 개념이 조금씩 다릅니다. MySQL에서 둘은 같은 개념이지만, 오라클과 SQL Server에서는 서로 다른 개념입니다.