SQL 첫걸음 - 6장 데이터베이스 객체(1/6)
1. 데이터베이스 객체
데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말. 객체는 데이터베이스 내에서 실체를 가짐. 객체는 이름을 가진다. 데이터베이스 내에서 객체를 작성할 때는 이름이 겹치지 않도록 함.
cf. 데이터베이스 객체의 명명규칙(제약 사항)
1) 기존 이름이나 예약어와 중복하지 않는다.
2) 숫자로 시작할 수 없다.
3) 언더스코어(_) 이외의 기호는 사용할 수 없다.
4) 한글을 사용할 때는 더블쿼트(MySQL에서는 백쿼트)로 둘러싼다.
5) 시스템이 허용하는 길이를 초과하지 않는다.
6) 이름은 객체의 종류와는 관계가 없다.
- 예를 들어 foo라는 이름의 테이블을 한번 만들면, 같은 종류의 테이블은 물론이고 뷰와 같은 다른 종류의 객체 역시 똑같은 이름으로 작성할 수 없음.
2. 스키마
데이터베이스 객체는 스키마라는 그릇 안에 만들어짐. 따라서 객체의 이름이 같아도 스키마가 서로 다르다면 상관없음.
출처 : SQL 첫걸음
이 같은 특징 때문에 데이터베이스 객체는 ‘스키마 객체’라 불리기도 함. 실제로 데이터베이스에 테이블을 작성해서 구축해나가는 작업을 ‘스키마 설계’라고 부름. 이때 스키마는 SQL명령의 DDL을 이용하여 정의. 어떤 것이 스키마가 되는지는 데이터베이스 제품에 따라 다름. MySQL에서는 CREATE DATABASE 명령으로 작성한 ‘데이터베이스’가 스키마가 됨. 한편 Oracle 등에서는 데이터베이스와 데이터베이스 사용자가 계층적 스키마가 됨. 테이블 안에는 열을 정의할 수 있고, 스키마 안에는 테이블을 정의할 수 있음. 각각의 그릇 안에서는 중복하지 않도록 이름을 지정. 이처럼 이름이 충돌하지 않도록 기능하는 그릇을 ‘네임스페이스(namespace)’라고 부르기도 함.
=> 스키마나 테이블은 네임스페이스이기도 함.
출처 : https://smilejh.tistory.com/