데이터베이스 객체란 테이블이나 뷰, 인덱스 등 데이터베이스 내에 정의하는 모든 것을 일컫는 말이다.
객체지향 프로그래밍의 '객체'와는 다른 데이터베이스 내의 객체라는 의미로 '데이터베이스 객체'라 부른다.
객체는 데이터베이스 내에 실체를 가지는 어떤 것을 말한다.
객체의 종류에 따라 데이터베이스에 저장되는 내용도 달라진다.
SELECT나 INSERT 등은 클라이언트에서 객체를 조작하는 SQL 명령으로, 실체가 없기 때문에 객체라 부를 수 없다.
객체는 이름을 가지기 때문에 데이터베이스 내에 객체를 작성할 때에는 이름이 겹치지 않도록 해야 한다.
객체에 이름을 붙일 때 다음과 같은 제약사항이 있다.
- 기존 이름이나 예약어와 중복하지 않는다
- 숫자로 시작할 수 없다
- 언더스코어( _ ) 이외의 기호는 사용할 수 없다
- 한글을 사용할 때는 더블 쿼트 ( " " )로 둘러싼다
- 시스템이 허용하는 길이를 초과하지 않는다
또한, 객체의 이름은 어떤 데이터가 저장되어있는지 파악하는 기준이 되는 경우가 많기 때문에 의미 없는 이름을 붙이지 않도록 하는 것이 좋다.
스키마
데이터베이스 객체는 스키마라는 그릇 안에 만들어지기 때문에 객체의 이름이 같아도 스키마가 서로 다르면 상관없다.
그래서 데이터베이스 객체는 '스키마 객체'라 부르기도 한다.
데이터베이스 테이블을 작성해서 구축해 나가는 작업을 '스키마 설계'라 부른다.
이때 스키마는 SQL 명령의 DDL을 이용하여 정의한다.
어떤 것이 스키마가 되는지는 데이터베이스 제품에 따라 달라지며, MySQL에서는 CREATE DATABASE 명령으로 작성한 데이터베이스가 스키마가 된다.
테이블과 스키마는 무엇인가를 담는 그릇 역할을 한다는 점에서 비슷하다.
테이블 안에 열을 정의할 수 있고, 스키마 안에 테이블을 정의할 수 있다.
각각의 그릇 안에서는 중복하지 않도록 이름을 지정하는데, 이처럼 이름이 충돌하지 않도록 기능하는 그릇을 '네임스페이스(namespace)'라 부르기도 한다.
즉, 스키마나 테이블은 네임스페이스이기도 하다.
'Language > MySQL' 카테고리의 다른 글
[MySQL] 제약 (0) | 2022.11.23 |
---|---|
[MySQL] 테이블 작성, 삭제, 변경 (0) | 2022.11.22 |
[MySQL] 상관 서브쿼리 (0) | 2022.11.20 |
[MySQL] 서브쿼리 (0) | 2022.11.17 |
[MySQL] 그룹화 - GROUP BY (0) | 2022.11.15 |