본문 바로가기
CS/DataBase

데이터베이스 첫걸음 정리 - 25장. 데이터베이스 객체

by yongckim 2022. 9. 24.
728x90
반응형

처음 RDBMS를 설치하면 데이터베이스는 비어있는 상태입니다.

여기에 테이블이나, 뷰, 인덱스, 프로시저 등의 데이터베이스 객체를 작성해 데이터베이스를 구축합니다.

이번에는 데이터베이스 객체를 생성하거나 삭제하는 등의 관리방법에 대해 알아보겠습니다.

데이터베이스 객체

데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말입니다.

단순히 객체라고 하면, C++이나 자바에서 사용하는 객체지향 프로그래밍의 “객체"와 혼돈하는 경향이 있는데, 데이터베이스 내의 객체라는 의미로 “데이터 베이스 객체"라고 부릅니다.

 

객체는 데이터베이스 내에 실체를 가지는 것을 말하며 객체의 종류에 따라 데이터베이스에 저장되는 내용도 달라집니다.

대표적으로 객체에 해당하는 것을 테이블로, 테이블의 경우 행과 열이 저장됩니다.

 

SELECT, INSERT와 같은 것들은 클라이이언트에서 객체를 조작할때 사용하는 SQL 명령입니다.

데이터베이스 내에 존재하는 것이 아니기 때문에 이들은 객체라고 부를 수 없습니다.

이름 제약사항

객체는 이름을 가지며 데이터베이스 내에서 객체를 작성할 때는 이름이 겹치지 않도록 합니다.

 🤔 객체 이외에도 테이블의 열 또한 이름을 가집니다.
그 밖에 SELECT 명령에서 열에 별명을 붙일 수도 있습니다.
다만 열이나 별명은 객체가 아니며 한 가지 동일한 점은 이름을 붙일 때 임의의 규칙에 맞게 지정해야 한다는 사실입니다.

 

이름을 붙일 때는 다음과 같은 제약 사항을 따릅니다.

  • 기존 이름이나
  • 숫자로 시작할 수 없다.
  • 언더스코어(_)이외의 기호는 사용할 수 없다.
  • 한글을 사용할 때는 더블쿼트(MySQL에서는 백쿼트)로 둘러싼다.
  • 시스템이 허용하는 길이를 초과하지 않는다.

어떤 데이터가 저장되어 있는지 파악되는 기준이 되기 때문에 객체의 이름은 중요합니다.

이 때문에 객체의 이름을 의미없는 문자나 숫자로 붙이는 것은 피해야합니다.

그리고 객체의 이름은 종류와는 관계없이 유니크해야합니다.

예를 들어, product라는 이름의 테이블을 만들면, 테이블은 물론이고 뷰와 같은 다른 종류의 객체역시 똑같은 이름으로 작성할 수 없습니다.

스키마

데이터베이스 객체는 스키마라는 그릇 안에 만들어집니다. 따라서 객체의 이름이 같아도 스키마가 서로 다르다면 상관없습니다.

이와 같은 특징 때문에 데이터베이스 객체는 “스키마 객체”라 부르기도 하며 실제로 데이터베이스에 테이블을 작성해서 구축해나가는 작업을 “스키마 설계”라고 부릅니다.

이때 스키마는 SQL 명령의 DDL로 정의합니다.

 

어떤 것이 스키마가 되는지는 데이터베이스 제품에 따라 다릅니다.

MySQL의 경우는 CREATE DATEBASE 명령으로 작성한 “데이터베이스”가 스키마가 됩니다.

Oracle의 경우는 데이터베이스와 데이터베이스 사용자가 계층적 스키마가 됩니다.

 

테이블과 스키마는 무엇인가를 담는 그릇역할은 한다는 점에서 비슷합니다.

테이블 안에는 열을 정의할 수 있고 스키마 안에는 테이블을 정의할 수 있습니다.

각각의 그릇 안에서는 중복하지 않도록 이름을 지정합니다.

이처럼 이름이 충돌하지 않도록 기능하는 그릇을 네임 스페이스라고 부르기도 합니다.

정리

  • 데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말입니다.
  • SELECT, INSERT와 같은 것들은 클라이이언트에서 객체를 조작할때 사용하는 SQL 명령으로, 데이터베이스 내에 존재하는 것이 아니기 때문에 이들은 객체라고 부를 수 없습니다.
  • 데이터 베이스 객체는 이름을 가지며 데이터베이스 내에서 객체를 작성할 때는 이름이 겹치지 않는 것이 좋습니다.
  • 데이터베이스 객체는 스키마라는 그릇 안에 만들어집니다. 따라서 객체의 이름이 같아도 스키마가 서로 다르다면 상관없습니다.
  • 충돌하지 않도록 기능하는 그릇네임 스페이스라고 부릅니다.
반응형