개체(Object)

Object 설명
Table 행과 열로 구성된 2차원 테이블로 데이터를 저장하는 개체
View 하나 이상의 테이블로부터 유도된 데이터의 부분집합 개체
Index 빠른 검색을 위해 사용하는 개체
Sequence 순차적인  숫자 값을 생성하는 개체

 테이블(Table)

- 개체 테이블의 생성을 위해서는 CREATE TABLE, 변경을 위해서는 ALTER TABLE,  삭제를 위해서는 DROP TABLE 명령어 사용
- 아래는 테이블 생성과 관련된 하나의 예로, 기본적으로 테이블 이름과 테이블에 속한 열의 이름과 속성 정의

create table test1 (
u_id            varchar2(10),
u_date        date);
- 데이터 속성

타입 설명
NUMBER(n,m) 숫자 데이터에 대한 정의로 n은 자릿수, m은 소수 이하 자릿수 정의에 사용 
CHAR(n) 문자 데이터에 대한 정의에 사용
VARCHAR(n) 가변길이 문자 데이터에 대한 정의에 사용
DATE 날짜 데이터에 대한 정의에 사용
LONG 2GB의 가변길이 문자 데이터에 대한 정의에 사용
LOB 4GB의 텍스트, 동영상, 이미지, 사운드 등에 대한 정의에 사용

- 테이블 변경 시 기존 테이블 구조에 새로운 열을 삽입, 기존의 열을 삭제 또는 기존 열을 변경

새로운 열 추가
ALTER TABLE table-name
ADD (column-name1             data-type,
         column-name2             data-type,
         column-name3             data-type …);

열 구조 변경
ALTER TABLE table-name
MODIFY (column-name1             data-type,
                column-name2             data-type,
                column-name3             data-type …);

- 테이블 이름 변경 시 RENAME 명령을 사용하여 변경
- 테이블 내의 데이터 전체를 삭제할 경우 TRUNCATE 명령을 사용하며,
DELETE 명령과 기능은 같지만 TRUNCATE의 경우 AUTO COMMIT이 발생하여 트랜잭션을 종료할 필요가 없음.

 제약조건(Constraint)

- 제약조건은 데이터베이스 인스턴스가 항상 만족해야 할 기본규칙.
- 제약조건을 만족하지 못하면 현실 세계의 의미를 정확히 표현하지 못한 것으로 부정확하게 됨.
- 데이터베이스 스키마에 명시하고 그 스키마의 모든 데이터베이스에 데이터가 삽입, 삭제, 수정 등의 연산을 통하여 변하게 되더라도 지속적으로 만족해야 함.
- 아래 표는 오라클의 5가지 유형의 제약조건을 나타냄.

제약 조건 설명
NOT NULL 열에 NULL 값을 허용하지 않음
UNIQUE KEY 열 또는 열의 조합이 유일한 값을 가져야 함, 자동적으로 INDEX가 만들어짐
PRIMARY KEY 열 또는 열의 조합이 NULL 값이 아니며 유일성을 가져야 함,
기본적으로 NOT NULL 조건을 만족하며 테이블에 대한 식별자 생성
FOREIGN KEY 참조 무결성을 유지하기 위해 자식테이블의 열을 외래키로 선언하게 됨
CHECK 열에 들어갈 값에 대한 조건을 명시하며 조건에 맞지 않는 값은 입력될 수 없음

- 제약조건의 확인은 USER_CONSTRAINTS를 사용하여 확인.
- 제약조건의 삭제는 ALTER TABLE table-name DROP CONSTRAION constarint_name [CASCADE]; 와 같은 형식 사용해서 삭제.

 뷰(VIEW)

- SQL 질의문으로 정의되는 데이터베이스 내의 "가상의 테이블"이다.
- 사용자들에게는 데이터가 있는 테이블 처럼 보이나 실제로는 데이터는 존재하지 않음
- 사용 시 데이터데 베이스 테이블로부터  유도되어 운영
- 데이터베이스를 재구성하여 논리적 독립성을 제공
- 사용자와 관련된 데이터만을 제공하므로 데이터를 보는 관점을 단순화시킬 수 있음

생성
CREATE VIEW view-name 
    [[column-name [, column-name]…
AS subquery;
삭제
DROP VIEW view-name

 인덱스(INDEX)

- 데이터베이스의 빠른 검색을 위하여 정의되며, 한 개 이상의 열을 인덱스로 정의할 수 있음
- 인덱스 사용 시 데이터베이스 저장 공간을 더 사용하게 됨으로 활용도를 고려하여 정의
- 인덱스의 생성은 CREATE INDEX 삭제는 DROP INDEX

 시퀀스(SEQUENCE)

- 사용자가 시퀀스를 생성한 후 호출만 하면 연속적인 번호를 오라클 서버가 증가시켜 제공해 줌