처음 RDBMS 소프트웨어를 설치하면 데이터베이스는 비어있는 상태이다. 여기에 테이블이나 뷰, 인덱스, 프로시저 등의 데이터베이스 객체를 작성해 데이터베이스를 구축한다.
데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말
객체는 데이터베이스 내에 실체를 가지는 어떤 것을 말한다.
객체는 이름을 가진다. 객체 작성시 이름이 겹치지 않도록 하며 객체 이외에도 테이블의 열 또한 이름을 가진다. (열이나 별명은 객체가 아니다. )
이름 명명 제약사항(명명규칙)
- 기존 이름이나 예약어와 중복하지 않는다.
- 숫자로 시작할 수 없다.
- 언더스코어(_) 이외의 기호는 사용할 수 없다.
- 한글을 사용할 때는 더블쿼트로 둘러싼다.
- 시스템이 허용하는 길이를 초과하지 않는다.
이름은 객체의 종류와는 관계가 없다. (foo
라는 이름의 테이블을 만들면 다른 종류라도 동일 이름을 사용할 수 없다.)
의미없는 이름을 붙이지 않도록 한다.
데이터베이스 객체는 스키마라는 그릇 안에서 만들어진다. 따라서 객체의 이름이 같아도 스키마가 다르면 상관없다.
어떤것이 스키마가 되는지는 데이터베이스 제품에 따라 달라진다.
MySQL에서는 CREATE DATABASE 명령으로 작성한 데이터베이스
가 스키마가 된다.
Oracle에서는 데이터베이스와 데이터베이스 사용자가 계층적 스키마가 된다.
테이블: 열 정의
스키마: 테이블 정의
네임스페이스: 이름이 충돌하지 않도록 기능하는 그릇
스키마나 테이블은 네임스페이스이기도 하다.