티스토리 뷰
오라클 테이블 관리와 데이터 딕셔너리(효율적인 데이터베이스 운영)
서론
데이터베이스는 현대 사회에서 핵심적인 자원으로 간주되며, 데이터베이스의 효율적인 운영은 중요한 과제 중 하나입니다. 이번 글에서는 데이터베이스의 테이블 관리와 데이터 딕셔너리의 역할 및 활용 방법에 대해 자세히 살펴보겠습니다.
테이블 생성과 관리
데이터베이스에서 테이블을 생성할 때는 몇 가지 규칙을 따라야 합니다. 테이블과 칼럼(필드) 이름은 문자로 시작하고 30자 이내여야 하며, 대소문자 구분이 있습니다. 테이블 생성은 CREATE TABLE 명령문을 사용하며, 기본값 설정도 가능합니다.
테이블 이름 생성 규칙
- 테이블과 칼럼 이름은 문자(A-Z a-z)로 시작하고 30자 이내로 가능하다. - 문자, 숫자, 특수문자(_, $, #)를 사용할 수 있다. - 테이블 이름은 대소문자를 구분하지 않지만, 데이터 딕셔너리에는 대문자로 저장된다. - 테이블 이름은 동일한 사용자가 소유한 다른 객체의 이름과 중복될 수 없다. - 서로 다른 테이블에서 동일한 데이터를 저장하는 칼럼 이름은 가능하면 같은 이름을 사용하는 것이 좋다. ```html
예시:
CREATE TABLE address
(
id NUMBER(3),
name VARCHAR2(50),
addr VARCHAR2(100),
phone VARCHAR2(30),
email VARCHAR2(100)
);
```
서브쿼리를 이용한 테이블 생성
서브쿼리를 사용하여 다른 테이블의 구조를 복사하거나 선택적으로 칼럼을 포함하여 새로운 테이블을 생성할 수 있습니다. 서브쿼리를 사용하면 테이블 구조나 초기 데이터를 효율적으로 복사할 수 있습니다. ```html
예시:
-- 주소록 테이블에 데이터 삽입
INSERT INTO address VALUES (1, 'HGDONG', 'SEOUL', '123-3456', 'gdhong@dbcore.net');
COMMIT;
-- 서브쿼리를 이용하여 addr_second 테이블 생성
CREATE TABLE addr_second AS SELECT * FROM address;
```
테이블 이름 변경, 테이블 삭제(컬럼 추가, 수정, 삭제)
테이블을 변경하거나 삭제하기 위해 ALTER TABLE과 DROP TABLE을 사용합니다. 또한 칼럼을 추가, 변경, 삭제하여 테이블을 유연하게 관리할 수 있습니다. ```html
예시:
-- 칼럼 추가
ALTER TABLE address ADD (birth DATE);
-- 칼럼 삭제
ALTER TABLE address DROP COLUMN comments;
-- 컬럼 변경, 주소록 테이블에서 phone 칼럼의 데이터 타입의 크기를 50으로 증가
ALTER TABLE address MODIFY phone VARCHAR2(50);
-- 테이블 이름 변경
RENAME addr_second TO client_address;
-- 테이블 삭제
DROP TABLE addr_third;
```
TRUNCATE 사용하기
TRUNCATE 명령은 테이블의 데이터와 할당된 공간을 삭제하고 테이블 구조는 그대로 유지합니다. 데이터를 복구할 수 없으므로 주의가 필요합니다. ```html
예시:
-- 테이블 데이터 및 공간 삭제
TRUNCATE TABLE table명;
```
테이블, 컬럼(필드) 주석 추가하기
테이블이나 칼럼에 주석을 추가하여 해당 객체에 대한 설명을 제공할 수 있습니다. 주석은 데이터 딕셔너리를 통해 조회할 수 있습니다. ```html
예시:
-- 테이블에 주석 추가
COMMENT ON TABLE table명 IS '코멘트 내용 입력';
-- 칼럼에 주석 추가
COMMENT ON COLUMN table.column명 IS '주석 내용 입력';
```
데이터 딕셔너리
데이터 딕셔너리는 데이터베이스 자원을 관리하기 위한 중요한 도구입니다. 데이터베이스 객체 및 권한 정보를 저장하며 데이터베이스 관리와 자원 관리에 사용됩니다.
데이터 딕셔너리의 역할</h 4> - 데이터베이스의 물리적 및 논리적 구조 관리 - 사용자, 객체, 권한 정보 관리 - 무결성 제약조건 및 객체 정보 저장 - 데이터베이스 객체에 대한 공간 관리 정보 저장 - 감사 정보 관리 - 데이터베이스 버전 및 인스턴스 정보 등 저장
데이터 딕셔너리의 종류
데이터 딕셔너리는 USER, ALL, DBA의 3가지 접두어를 가진 뷰로 구성됩니다. - USER_ 데이터 딕셔너리 뷰: 일반 사용자와 관련된 정보 조회 - ALL_ 데이터 딕셔너리 뷰: 모든 사용자와 관련된 정보 조회 (OWNER 칼럼 포함) - DBA_ 데이터 딕셔너리 뷰: 데이터베이스 관리와 관련된 정보 조회 (관리자 권한 필요) ```html
예시:
-- USER_TABLES 뷰를 사용하여 테이블 정보 조회
SELECT table_name, tablespace_name, min_extents, max_extents
FROM user_tables
WHERE table_name LIKE 'ADDR%';