상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - SQLite에서 외래 키(foreign key)란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
S<a href='https://sangseek.com/sangseeks/QL/ko'>QL</a>ite에서 <a href='https://sangseek.com/sangseeks/외래 키/ko'>외래 키</a>(foreign key)는 데이터베이스의 두 테이블 간의 관계를 정의하는 중요한 개념입니다. 외래 키는 한 테이블의 열(column)이 다른 테이블의 기본 키(primary key) 또는 고유 키(unique key)를 참조하도록 설정된 경우를 말합니다. 이를 통해 데이터의 무결성을 유지하고, 데이터 간의 관계를 명확하게 표현할 수 있습니다. 외래 키의 역할 1. 데이터 무결성 유지 : 외래 키는 참조 무결성을 보장합니다. 즉, 외래 키로 지정된 열의 값은 반드시 참조하는 테이블의 기본 키에 존재해야 합니다. 이를 통해 잘못된 데이터 입력을 방지할 수 있습니다. 2. 관계 표현 : 외래 키를 사용하면 두 테이블 간의 관계를 명확하게 정의할 수 있습니다. 예를 들어, `주문` 테이블이 `고객` 테이블을 참조하는 경우, 주문이 어떤 고객에 의해 이루어졌는지를 쉽게 알 수 있습니다. 3. Cascade 동작 : 외래 키는 특정 동작이 발생할 때 관련된 데이터에 대한 자동적인 처리를 지원합니다. 예를 들어, 부모 테이블에서 행이 삭제될 때 자식 테이블의 관련 행도 자동으로 삭제되도록 설정할 수 있습니다. 이를 통해 데이터의 일관성을 유지할 수 있습니다. 외래 키의 정의 SQLite에서 외래 키를 정의하는 방법은 다음과 같습니다. 테이블을 생성할 때 `FOREIGN KEY` 제약 조건을 사용하여 외래 키를 설정할 수 있습니다. ```sql CREATE TABLE Customers ( CustomerID INTEGER PRIMARY KEY, CustomerName TEXT <a href='https://sangseek.com/sangseeks/NOT NULL/ko'>NOT NULL</a> ); CREATE TABLE Orders ( OrderID INTEGER PRIMARY KEY, OrderDate TEXT NOT NULL, CustomerID INTEGER, FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID) ); ``` 위의 예제에서 `Orders` 테이블의 `CustomerID` 열은 `Customers` 테이블의 `CustomerID` 열을 참조하는 외래 키입니다. 이 설정을 통해 `Orders` 테이블에 삽입되는 모든 `CustomerID` 값은 `Customers` 테이블에 존재해야 합니다. 외래 키의 동작 SQLite에서 외래 키의 동작은 다음과 같은 옵션을 통해 설정할 수 있습니다: 1. NO ACTION : 기본값으로, 부모 테이블의 행이 삭제되거나 수정될 때 자식 테이블의 행에 아무런 영향을 미치지 않습니다. 2. RESTRICT : 부모 테이블의 행이 삭제되거나 수정될 때, 자식 테이블에 해당 외래 키를 참조하는 행이 존재하면 작업을 거부합니다. 3. CASCADE : 부모 테이블의 행이 삭제되거나 수정될 때, 자식 테이블의 관련 행도 자동으로 삭제되거나 수정됩니다. 4. SET NULL : 부모 테이블의 행이 삭제되거나 수정될 때, 자식 테이블의 외래 키 열을 NULL로 설정합니다. 5. SET DEFAULT : 부모 테이블의 행이 삭제되거나 수정될 때, 자식 테이블의 외래 키 열을 기본값으로 설정합니다. 외래 키 사용 시 주의사항 - 외래 키 지원 활성화 : SQLite에서는 외래 키 제약 조건이 기본적으로 비활성화되어 있습니다. 이를 활성화하려면 데이터베이스 연결 후 다음 명령어를 실행해야 합니다. ```sql PRAGMA foreign_keys = ON; ``` - 성능 고려 : 외래 키 제약 조건은 데이터 무결성을 보장하지만, 데이터 삽입, 수정, 삭제 시 성능에 영향을 줄 수 있습니다. 따라서 데이터베이스 설계 시 성능과 무결성 간의 균형을 고려해야 합니다. 결론 SQLite에서 외래 키는 데이터베이스 설계에서 중요한 역할을 하며, 데이터 간의 관계를 명확하게 정의하고 데이터 무결성을 유지하는 데 필수적입니다. 외래 키를 적절히 활용하면 데이터베이스의 구조를 보다 체계적으로 관리할 수 있으며, 데이터의 일관성을 보장할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기