Primary Key(기본 키)
관계형 데이터베이스에서 특정 레코드를 고유하게 식별하고 데이터의 무결성을 유지하는데 사용되는 필드입니다.
후보키 중 하나를 기본 키로 선택함으로써 데이터베이스에서 레코드를 식별하고 관계를 설정할 수 있습니다.
기본키의 속성은 반드시 고유한 값을 가져야 합니다. 테이블당 하나만 만들 수 있으며, Null값을 가질 수 없습니다. 또한 속성 값이 변경될 가능성이 높은 경우 기본 키로 선택하는 것은 권장되지 않습니다. 가능하다면 작은 정수 값이나 짧은 문자열과 같이 빠르게 검색할 수 있는 속성을 기본 키로 선택하는 것이 좋습니다. 복합 기본키는 피하는 것이 좋고, 기본 키가 없는 테이블은 규칙에 어긋나지만 모든 테이블에 기본 키를 두는 것이 권장됩니다.
기본 키가 없는 테이블은 데이터의 반복과 일관성 부족으로 인해 데이터 추출 속도가 느려지고 문제가 발생할 가능성이 있습니다. 따라서 기본 키를 사용함으로 데이터베이스의 효율성과 일관성을 유지하는데 도움이 됩니다.
테이블 생성 시 기본키 삽입방법
기본키
CREATE TABLE Member (
ID int NOT NULL PRIMARY KEY,
Address varchar(255),
PNumber int,
Age int;
);
UUID
CREATE TABLE Member (
ID VARCHAR(36) NOT NULL PRIMARY KEY DEFAULT UUID(),
Address varchar(255),
PNumber int,
Age int
);
Sequence
CREATE SEQUENCE member_id_seq;
CREATE TABLE Member (
ID int NOT NULL DEFAULT NEXTVAL('member_id_seq'),
Address varchar(255),
PNumber int,
Age int,
PRIMARY KEY (ID)
);
IDENTITY 컬럼
CREATE TABLE Member (
ID int NOT NULL PRIMARY KEY IDENTITY,
Address varchar(255),
PNumber int,
Age int
);
Composite Key(복합키)
CREATE TABLE Member (
ID int NOT NULL,
Address varchar(255),
PNumber int,
Age int,
PRIMARY KEY (ID, Address)
);
Foreign Key
관계형 데이터베이스에서 한 테이블의 필드가 다른 테이블의 기본키와 관련되어 있는 제약 조건입니다.
주로 다른 테이블의 기본 키를 참조하는 역할을 합니다. 이를 통해 두 테이블 상에 관계를 설정하고 데이터의 무결성을 유지합니다.
데이터 무결성
외래 키 제약은 부모 테이블에 있는 값이나 레코드를 참조하여 자식 테이블의 삽입, 수정, 삭제 작업에 제한을 둠으로 데이터의 무결성을 유지할 수 있습니다.
관계 형성
두 테이블 간의 관계를 형성하고 이해하기 쉽게 해 줍니다. 부모 테이블의 값과 연결된 자식 테이블의 레코드를 식별할 수 있도록 합니다.
데이터 무결성 제어
외래키를 사용하여 연결된 테이블 간의 데이터 일관성을 유지하고 조작할 수 있습니다. 예를 들어 부모 테이블에서 삭제되는 레코드에 대한 자식 테이블의 대응되는 레코드도 자동으로 삭제하거나 NULL로 설정할 수 있습니다.
테이블 생성 시 외래키 삽입방법
DDL
CREATE TABLE orders (
order_id INT PRIMARY KEY,
product_id INT,
/* Other columns */
FOREIGN KEY (product_id) REFERENCES products(product_id)
);
ALTER TABLE
ALTER TABLE orders
ADD CONSTRAINT fk_product
FOREIGN KEY (product_id)
REFERENCES products(product_id);
'알쓸I잡(알면 쓸모있는 IT 잡학사전)' 카테고리의 다른 글
Servlet.service() for servlet Error (0) | 2024.01.14 |
---|---|
NoSQL과 RDBS (0) | 2024.01.09 |
FetchType.Lazy Error (0) | 2023.12.29 |