티스토리 뷰
데이터 무결성과 제약 조건
데이터 무결성(Data Integrity)
- 관리하는 데이터 베이스에 부적절한 데이터가 유입되어 결점이 생기지 않도록 해야 하며, 이를 위한 기본 규칙을 데이터 무결성이라고 함.
- 종류
유형 | 설명 |
개체 무결성 (Entity Integrity) | Primary Key로 선택된 열은 Unique 하고 Not null 해야 함 |
참조 무결성 (Reference Integrity) | Primary Key와 Foreign Key의 관계에서 Foreign Key로 부터 참조되는 행은 삭제될 수 없으며 변경될 수 없음 |
영역 무결성 (Domain Integrity) | Data Type, 범위, 기본값에 관한 제한 |
참조 무결성 예시
ko.wikipedia.org/wiki/%EC%B0%B8%EC%A1%B0_%EB%AC%B4%EA%B2%B0%EC%84%B1
- 아티스트 테이블의 artist_id 와 앨범 테이블의 artist_id가 primary / foreign 관계
- 앨범 테이블의 두번째 행과 관계 변수를 갖는 아티스트 테이블의 행(artist_id : 4, artist_name : Aerosmith)이 삭제되면서 참조 무결성이 깨지고 있음
영역 무결성 예시
- 나이 Column에 음수값이 입력
- 성별 Column에 정의되지 않은 값이 입력
제약 조건(Constraint)
- 데이터 무결성을 지키기 위해, 테이블을 설계할 때 규칙(제약)을 정해놓는 방법
- 종류
이름 |
설명 |
기본 키 (Primary Key) |
UNIQUE + NOT NULL 만족, 테이블의 각 행의 식별자 |
외래 키 (Foreign Key) |
부모 테이블의 참조 열 값을 반드시 참조해야 하며, 참조되는 열은 UNIQUE한 값 or PRIMARY KEY |
고유값 (Unique) |
UNIQUE한 값 (NULL허용) |
NOT NULL |
NULL 불허 |
범위 (CHECK) |
범위나 조건에 지정된 값만 허용 |
|
|
기본 키 설정
1. CREATE TABLE 테이블이름
(
필드이름 필드타입 PRIMARY KEY,
...
)
2. CREATE TABLE 테이블이름
(
필드이름 필드타입,
...,
[CONSTRAINT 제약조건이름] PRIMARY KEY (필드이름)
)
- 기본 키 설정의 두가지 방법
http://www.tcpschool.com/mysql/mysql_constraint_primaryKey
외래 키 설정
CREATE TABLE 테이블이름
(
필드이름 필드타입,
...,
[CONSTRAINT 제약조건이름]
FOREIGN KEY (필드이름)
REFERENCES 테이블이름 (필드이름)
)
- Foreign Key로 설정할 칼럼명과 참조할 테이블과 해당 테이블의 칼럼명을 입력
http://www.tcpschool.com/mysql/mysql_constraint_foreignKey
고유값 설정
1. CREATE TABLE 테이블이름
(
필드명 필드타입 UNIQUE,
...
)
2. CREATE TABLE 테이블이름
(
필드이름 필드타입,
...,
[CONSTRAINT 제약조건이름] UNIQUE (필드이름)
)
http://www.tcpschool.com/mysql/mysql_constraint_unique
NOT NULL 설정
CREATE TABLE 테이블이름
(
필드이름 필드타입 NOT NULL,
...
)
http://www.tcpschool.com/mysql/mysql_constraint_notNull
범위 설정
CREATE TABLE 테이블이름
(
필드이름 필드타입,
...,
CHECK (필드이름과 조건)
)
- 예시
= 나이가 7세 이상, CHECK(age >= 7)
= 성별값은 'M' or 'F'로 구분, CHECK(gender IN ('M', 'F'))
기본값 설정
CREATE TABLE 테이블이름
(
필드이름 필드타입 DEFAULT 기본값,
...
)
http://www.tcpschool.com/mysql/mysql_constraint_default
- Total
- Today
- Yesterday
- Query
- git
- SQL
- mysql
- 깃
- set operator
- 업스트림
- 스태시
- 브랜치 삭제
- rebase
- 영역 무결성
- Advanced Functions
- String Functions
- 리베이스
- Aggregation Functions
- Merge
- DB execution
- SQL 연산자
- git add
- 제약 조건
- DDL
- 병합
- DML
- Data Integrity
- 원격 브랜치
- 브랜치 추적
- Numeric Functions
- db
- TCL
- Date Functions
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |