안녕하세요!
오늘은 스키마에 대해서 알아보자 합니다.
흔히 백엔드 개발자 분들이 데이터베이스를 작업을 해줄 때 스키마란 걸 얘기를 할 때가 있습니다.
이러한 스키마들은 보통 데이터베이스에서의 자료 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의하는 구조인데 데이터베이스 관리 시스템이 주어진 설정에 따라 데이터 베이스 스키마를 생성하며, 데이터 베이스 사용자가 자료를 저장,조회,삭제,변경을 할 때 자신이 생성한 데이터 베이스 스키마를 참조합니다!!
<위키 백과>
간단하게 얘기하면 데이터 베이스를 어떻게 설계할지에 대한 계획 즉, 구조와 제약 조건을 정하는 것 입니다.
스키마는 구조를 바라보는 입장에 따라서 3가지가 존재합니다:)
그 3가지는 외부 스키마, 개념 스키마, 내부 스키마 이렇게 세 가지가 있는 데
외부 사용자가 바라보는 스키마를 의미하고 사용자들이 사용할 데이터들을 보여주고, 여러 사용자가 바라보는 관점에 따라 여러 스키마가 존재합니다.
전체적인 개념을 정의하는 것을 의미합니다. 전체 데이터 베이스가 어떤 구조로 되었는지 구체적으로 어떤 데이터가 있고 그 데이터들은 어떤 테이블에 있고, 각 테이블 마다 어떤 관계가 존재하는 지를 정의해줍니다.
실제 데이터의 내부를 정의하는 것을 의미합니다. 데이터의 내부 즉, 데이터 필드의 이름이 무엇이고, 해당 필드는 몇 Byte이며 인덱스가 있는 지 등을 정의 해주고 이것은 데이터를 물리적으로 어떻게 저장할지에 대해 정의하는 것이므로 저장 스키마라고도 합니다.