관계형 데이터 베이스
임의의 데이터베이스 내에 존재하는 여러 테이블 들이 서로 관계를 가지며 운영되는 것을 의미한다
데이터베이스의 테이블 간의 관계를 분명하게 설정하고, 제약 조건들을 사용하여 정확한 데이터들을 설정
키
열쇠는 무언가를 열거나 잠글 때 사용 하는 것으로, 같은 것이 하나도 없다.
이와 같이 키(Key)라는 것은 무언가를 식별하는 고유한 식별자(identifier) 기능을 한다.
즉, 키는 데이터베이스에서 조건에 만족하는 관계의 행을 찾거나 순서대로 정렬할 때 다른 행과 구별할 수 있는 유리한 기준이 되는 속성의 집합이다.
종류
무결성
데이터베이스에 저장된 값들이 정확하고 일관성 있는 데이터임을 나타내는 의미
데이터베이스는 무결성이 보장되도록 여러 개체에 규정을 부여하여 운영한다.
제약조건
제약조건(constraint)은 결점이 없이 정확하고 유효한 데이터가 데이터베이스에 저장될 수 있도록 하기 위하여 데이터를 조작하는데 한계를 규정한 것이다.
CONSTRAINT
Constraint는 제약조건을 설정할 때 쓰인다.
Constraint 뒤에 제약조건의 id를 설정할 수 있다.
Constraint 를 생략할 시 제약id를 자동으로 생성해준다.
<기본형식>
Constraint 제약id 제약내용(COLUMN 명);
무결성
도메인 무결성
속성이 정의되어 있는 영역을 벗어나지 않도록 규정하는 것
값의 범위를 정해 놓는 제약.
CHECK 제약을 사용해서 조건에 맞는 데이터만 입력 받을 수 있다
입력 값을 지정하지 않았을 때 열의 값이 기본값으로 입력되도록 지정하는 값
NULL을 허용하지 않기 때문에 반드시 값이 입력되어야 한다
개체 무결성
하나의 테이블에 중복된 레코드가 존재하지 않도록 규정하는 것, 기본키 제약이라고도 부른다.
값의 중복을 허용하지 않는 제약.
고유제약은 값이 유일해야 하는 제약이기 때문에 NULL도 한번만 입력가능
열에 유일한 값만 입력 되도록 제약을 주는 것으로 NULL값을 허용하지 않음
UNIQUE와 NOT NULL이 합쳐진 것
참조 무결성
행을 입력, 수정, 삭제할 때 연관되는 다른 테이블과의 데이터가 정확하게 유지되도록 규정하는 것
다른 테이블의 데이터를 참조할 때 없는 값을 참조할 수 없도록 제약을 주는 것
참조될 테이블이 먼저 만들어지고 값이 입력되어야 한다. 이때, 참조될 열의 값은
참조될 테이블에서 PRIMARY KEY로 설정되어 있어야한다.
DICTIONARY
스키마, 사용자, 객체, 권한, 룰, 데이터베이스의 정보 등등, 오라클 데이터베이스를 운영하는데 필요한 정보를 관리하는 별도의 객체들을 일컫는다.
Data Dictionary는 기본 테이블과 뷰의 두가지 형태가 있는데, 기본 테이블은 데이터베이스에 관한 정보를 갖고 있는 테이블로 오라클 서버만 기록할 수 있고 데이터가 은폐되어 있으므로 사용자가 직접 접근할 수 없다.
뷰는 기본 테이블의 내용을 보여주는 방식으로, 사용자는 뷰를 마치 테이블 처럼 사용할 수 있다.
TABLE LEVERL테이블의 각열을 생성할 때 제약을 언제 생성하는지에 따라서 2가지의 레벨 제약으로 나뉜다
제약변경제약조건을 주지 않아 추가하거나, 제약조건을 변경, 삭제하는 경우 alter이용하여 변경가능
ALTER TABLE 테이블명 ADD CONSTRAINT 제약 이름 제약 조건;
ALTER TABLE 테이블명 MODIFY 컬럼조건;
ALTER TABLE 테이블명 DROP CONSTRAINT 제약이름
제약 비활성
제약 조건을 삭제하지 않고도 제약 조건을 비활성화하여 사용을 잠시 보류할 수 있도록 하는 기능이다.
ALTER TABLE 테이블명 DISABLE CONSTRAINT 제약조건;
ALTER TABLE 테이블명 ENABLE CONSTRAINT 제약조건;
CASCADE CONSTRAINTS
데이터베이스 내의 임의의 다른 테이블과 PRIMARY KEY 또는 FOREIGN KEY 로서의 관계가 여전히 존재하는 경우 PRIMARY KEY가 존재하는 테이블을 마음대로 제거할 수 없다.
이럴 경우 삭제하는 방법으로 CASCADE가 쓰인다
<기본형식>
DROP TABLE 테이블 이름 CASCADE CONSTRAINTS
'Programming > [DB]' 카테고리의 다른 글
[DB] SUBQUERY (0) | 2018.04.20 |
---|---|
[DB] JOIN (0) | 2018.04.20 |
[DB] 데이터베이스의 분석 설계 과정 (0) | 2018.04.19 |
[DB] TRANSACTION (0) | 2018.04.19 |
[DB] DML (0) | 2018.04.19 |