Primary key 와 foreign key 비교

SQL에서 Primary Key와 Foreign Key는 데이터베이스에서 관계형 데이터를 구성하는 데 중요한 역할을 합니다.

Primary Key는 테이블 내의 각 행을 고유하게 식별하는 데 사용되는 열 또는 열의 집합입니다. Primary Key는 테이블 내에 있는 다른 열들과 중복되지 않으며, Null 값을 가질 수 없습니다. Primary Key를 지정하면 해당 테이블에서 행을 쉽게 찾을 수 있으며, 다른 테이블과의 관계를 맺을 때 사용할 수 있습니다.

Foreign Key는 다른 테이블의 Primary Key를 참조하는 열입니다. 다른 테이블의 Primary Key와 일치하는 값을 Foreign Key로 지정함으로써 두 테이블 사이에 관계를 맺을 수 있습니다. Foreign Key는 데이터의 무결성을 보장하고 데이터를 일관성 있게 유지하는 데 도움을 줍니다. 예를 들어, 주문 테이블에서는 고객 테이블의 Primary Key인 고객 ID를 참조하는 Foreign Key가 존재할 수 있습니다. 이렇게 하면 고객 테이블에서 해당하는 고객 정보를 변경하거나 삭제해도 주문 테이블에서 해당 정보를 참조할 수 있으므로 데이터 일관성이 유지됩니다.

즉, Primary Key는 테이블 내의 각 행을 고유하게 식별하고 참조할 때 사용하고, Foreign Key는 다른 테이블의 Primary Key와 관계를 맺고 데이터 일관성을 유지하는 데 사용됩니다.

 

Primary key 와 Unique Key 비교

Primary Key와 Unique Key는 모두 테이블 내에서 중복을 허용하지 않는 열 또는 열의 집합을 지정하는 데 사용됩니다. 하지만 둘은 몇 가지 차이점이 있습니다.

먼저, Primary Key는 테이블에서 각 행을 식별하는 데 사용됩니다. Primary Key는 테이블에서 유일해야 하며, Null 값을 가질 수 없습니다. 또한, 하나의 테이블에는 Primary Key가 하나만 지정될 수 있습니다. 그리고 Primary Key는 해당 테이블의 다른 테이블과의 관계를 맺을 때 사용됩니다.

반면에, Unique Key는 해당 열의 값을 고유하게 유지하기 위해 사용됩니다. Unique Key는 Primary Key처럼 Null 값을 가질 수 없으며, 테이블에 중복 값을 가지는 행을 삽입하는 것을 방지합니다. 또한, 하나의 테이블에는 여러 개의 Unique Key가 지정될 수 있습니다.

즉, Primary Key는 테이블의 각 행을 고유하게 식별하는 데 사용되고, 해당 테이블과 다른 테이블 간의 관계를 맺을 때 사용됩니다. Unique Key는 해당 열의 값을 고유하게 유지하는 데 사용되고, 여러 개의 Unique Key가 테이블 내에 지정될 수 있습니다.

 

출처 : 챗 gqt님

기본 키 (Primary Key) #

  • Data-Table에 있는 유일하게 구분되는 Data-Key를 기본 키(Primary Key)라 부른다.
  • Primary Key는 유일한 값이기 때문에 중복된 값을 가질 수 없다.
  • Primary Key는 공백을 가질 수 없습니다.

외래 키 (Foreign Key) #

  • 한 Table과 참조되는 다른 Table 간의 연결되는 Primary Key Column을 Foreign Key라 합니다.
  • Foreign Key는 다른 Primary Key를 참조하는 속성 또는 속성들의 집합을 의미한다.
  • Foreign Key는 참조관계의 기본 키와 같은 속성을 가진다.

후보 키 (Candidate Key) #

  • Primary Key와 Foreign Key와 같은 각 Data를 식별하기 위해 사용되는 속성들의 집합입니다.
  • Candidate Key는 유일성과 최소성을 모두 만족합니다.
  • 유일성(Unique) : 하나의 Key 값으로 하나의 Data를 식별하는 성질
  • 최소성(Minimality) : 모든 Data를 유일하게 식별하는 속성으로만 구성되는 성질

슈퍼 키 (Super Key) #

  • 하나 이상의 속성이 하나의 Data를 구별하면 그것은 슈퍼 키 (Super Key)라 정의한다.
  •  

출처 : http://www.incodom.kr/Primary_Key_%26_Foreign_Key

'DB > DB 필요한 지식' 카테고리의 다른 글

SQL 인젝션이란?  (0) 2023.04.09
클라이언트와 서버  (0) 2023.04.08
포트 포워딩이란?(port forwarding)  (0) 2023.04.08

DB와 DBMS는 데이터 관리와 관련된 용어이다.

비슷하지만 다른 개념인것이다 -> DB != DBMS

  • DB (Database)는 데이터베이스를 의미한다. 데이터베이스는 여러 개의 테이블이나 관련된 객체들의 집합으로 구성되며, 데이터를 구조화하고 조직화한 것이다.
  • DBMS (Database Management System)는 데이터베이스 관리 시스템을 의미. DBMS는 데이터베이스를 생성, 수정, 검색, 삭제하는 데 사용되는 소프트웨어다. DBMS는 데이터를 저장, 관리 및 보호하기 위한 다양한 기능을 제공한다. 또한, 여러 사용자가 동시에 데이터베이스에 접근하여 데이터를 공유하고 관리할 수 있도록 도와준다.

즉, DB는 데이터를 구조화하고 저장하는 데 사용되는 개념적인 개체이며, DBMS는 데이터베이스를 관리하기 위한 소프트웨어이다다. DBMS는 데이터베이스의 구성, 유지, 관리 및 보호를 담당하며, DB와 DBMS는 서로 밀접하게 연관되어 있다. 데이터베이스를 사용하려면 반드시 DBMS가 필요하며, DBMS는 데이터베이스의 구축 및 운영에 필수적인 역할을 한다.

다음은 'DB'를 관리하는 'DBMS' 프로그램들의 순위이다

오라클을 가장 많이 쓰고 그 다음은 mysql ....등등이다

예전에는 오라클과(보통 기업용,유료) MySQL(민간용,무료) 로 나누어져 있었다고 한다

그런데 오라클이 MySQL을 인수하면서 오픈소스를 지향하는 이들이 나가 만든것이

MariaDB라는 것이다 나는 배우는 학생이라 MariaDB를 사용하지만 MySQL과 상속관계 이므로

거의 비슷하게 쓴다고 보면 된다.

Database Model도 중요한데 다음 글에서 알아보자.

내가 주로 다룰 모델은 관계형 데이터베이스 관리 시스템(RDBMS) 이다.

'DB' 카테고리의 다른 글

DBMS,Spring 3월 23일 5회차  (0) 2023.03.30
DBMS,Spring 3월 22일 4회차  (0) 2023.03.30
DBMS,Spring 3월 21일 3회차  (0) 2023.03.30
DBMS,Spring 3월 17일 2회차  (0) 2023.03.30
DBMS,Spring 3월 16일 1회차  (0) 2023.03.30

+ Recent posts