Primary Key(기본 키)
테이블에 하나만 존재할 수 있는 기본 Key, 한 테이블에서 특정 레코드를 유일하게 구별할 수 있는 고유식별 속성을 나타낸다.
다른 레코드 값과 중복될 수 없고 NULL이 허용 안된다.
테이블을 만들 때
CREATE TABLE tableName(
column1 datatype NOT NULL PRIMARY KEY,
column2 datetype);
테이블을 수정할 때
ALTER TABLE table_name
ADD PRIMARY KEY (column_name);
기본키로 설정하는 컬럼이 NOT NULL이어야 한다.
Foreign Key(외래 키)
부모 테이블의 키를 참조하는 키이며 테이블들 간의 관계를 나타내기 위해서 사용된다.
참조하는 테이블에 존재하지 않는 값에 대한 참조를 허용하지 않는다. 데이터의 정확성과 신뢰성 즉 데이터 무결성을 보장 한다.
테이블을 만들 때
CREATE TABLE tableName(
column1 datatype,
column2 datatype
FOREIGN KEY(colum) REFERENCES parentTable(key)
);
테이블을 수정할 때
ALTER TABLE tableName
ADD FOREIGN KEY (columnName) REFERENCES parentTable(key);
Unique Key(유니크 키)
데이터의 무결성을 보장, 유니크 키로 설정된 컬럼에 중복된 값을 입력할 수 없게 한다.
하나의 테이블에 여러 개의 유니크 키를 설정할 수 있다. 기본 키와 차이점은 유니크 키는 NULL 값을 허용한다.
유니크 키는 주로 기본 키를 설정한 후 고유한 식별자가 있는 경우 유니크 키로 설정한다.
예시: Email (중복허용x, NULL 가능)
테이블을 만들 때
CREATE TABLE tableName(
column1 datatype UNIQUE,
column2 datatype UNIQUE,
column3 datatype
);
테이블을 수정할 때
ALTER TABLE tableName
ADD UNIQUE (columnName);
Index Key(인덱스 키)
검색 속도를 향상하기 위한 용도로 활용.
테이블마다 여러 개의 인덱스 키 설정가능, 중복 값과 NULL 값이 허용된다
테이블을 만들 때
CREATE TABLE tableName(column1 datatype,
column2 datatype,
column3 datatype,
INDEX index1Name (column1),
INDEX index2Name (column2)
);
테이블을 수정할 때
ALTER TABLE tableName
ADD INDEX indexName (columnName);
슈퍼키
튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합, 튜플을 유일하게 식별할 수 있는 값이면 모두 슈퍼키가 될 수 있음
후보키
튜플을 유힐하게 식별할 수 있는 속성의 최소 집합
2개 이상의 속성으로 이루어진 키를 복합키(composite key)라고 함
대리키
기본키가 보안을 요구하거나, 마땅한 기본키가 없을 때 일련번호 같은 가상의 속성을 만들어 기본키로 만들수 있음 대리키는 사용자가 직관적으로 값의 의미를 알기 어려움
대체키
기본키로 선정되지 않은 후보키
'DBMS' 카테고리의 다른 글
사용자 정의 함수 (0) | 2024.04.30 |
---|---|
트랜잭션(transaction) (0) | 2024.04.23 |
간단한 sql 구문(INSERT, SELECT, UPDATE, DELETE) (0) | 2024.04.16 |
JOIN 정리 (0) | 2024.03.22 |
인덱스(INDEX) (1) | 2024.03.21 |