개체(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)
- 사용자가 시퀀스를 생성한 후 호출만 하면 연속적인 번호를 오라클 서버가 증가시켜 제공해 줌
'Database' 카테고리의 다른 글
CHAPTER 08. 저장 프로시저와 함수 (0) | 2021.03.13 |
---|---|
CHAPTER 07. PL/SQL (0) | 2021.03.12 |
CHAPTER 05. 데이터 갱신과 트랜잭션 제어 (0) | 2021.03.10 |
CHAPTER 04. 조인(JOIN)과 부질의(SubQuery) (0) | 2021.03.08 |
CHAPTER 03. 검색문(SELECT) (0) | 2021.03.05 |