Study/DB

[SQL 첫걸음] 6장.데이터베이스 객체 작성과 삭제 - 25.데이터베이스 객체

momo02 2018. 9. 11. 21:11
반응형

저자 : 아사이 아츠시

출판 : 한빛미디어 

발매 : 2015.11.01



1. 데이터베이스 객체

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

- 객체는 데이터베이스 내에서 실체를 가짐.

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


cf. 데이터베이스 객체의 명명규칙(제약 사항)

  • 기존 이름이나 예약어와 중복하지 않는다.

  • 숫자로 시작할 수 없다.

  • 언더스코어(_) 이외의 기호는 사용할 수 없다.

  • 한글을 사용할 때는 더블쿼트(MySQL에서는 백쿼트)로 둘러싼다.

  • 시스템이 허용하는 길이를 초과하지 않는다. 

- 이름은 객체의 종류와는 관계가 없다. 예를 들어 foo라는 이름의 테이블을 한번 만들면, 같은 종류의 테이블은 물론이고 뷰와 같은 다른 종류의 객체 역시 똑같은 이름으로 작성할 수 없음.




2. 스키마

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

출처 : SQL 첫걸음

- 이 같은 특징 때문에 데이터베이스 객체는 '스키마 객체'라 불리기도 함. 실제로 데이터베이스에 테이블을 작성해서 구축해나가는 작업을 '스키마 설계'라고 부름. 이때 스키마는 SQL명령의 DDL을 이용하여 정의.

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

MySQL에서는 CREATE DATABASE 명령으로 작성한 '데이터베이스'가 스키마가 됨. 

한편 Oracle 등에서는 데이터베이스와 데이터베이스 사용자가 계층적 스키마가 됨.

- 테이블 안에는 열을 정의할 수 있고, 스키마 안에는 테이블을 정의할 수 있음. 각각의 그릇 안에서는 중복하지 않도록 이름을 지정.

이처럼 이름이 충돌하지 않도록 기능하는 그릇을 '네임스페이스(namespace)'라고 부르기도 함. => 스키나마 테이블은 네임스페이스이기도 함. 

반응형