[Database] 데이터베이스의 기본 (2)

2023. 4. 12. 14:09·CS/Database
목차
  1. 1. 관계
  2. 2. 키
  3. 2.1 기본키
  4. 2.2 자연키
  5. 2.3 인조키
  6. 2.4 외래키
  7. 2.5 후보키
  8. 2.6 대체키
  9. 2.7 슈퍼키
728x90
반응형

1. 관계

  • 데이터베이스에 테이블은 여러 개가 존재합니다.
  • 이러한 테이블은 서로의 관계가 정의되어 있습니다. 
  • 이러한 관계를 관계화살표로 나타냅니다.

2. 키

  • 키는 테이블 간의 관계를 더 명확하게 하고 테이블 자체의 인덱스를 위해 설정된 장치입니다.
  • 키의 종류로는 기본키, 외래키, 후보키, 슈퍼키, 대체키가 있습니다.

키의 관계

2.1 기본키

  • 기본키(primary key)는 줄여서 PK 또는 프라이머리키라고 많이 부릅니다.
  • 기본키는 유일성과 최소성을 만족하는 키입니다.
  • 이는 테이블의 데이터 중 고유하게 존재하는 속성이며 기본키에 해당하는 데이터는 중복되어서는 안 됩니다.
  • 기본키는 자연키 또는 인조키 중에 골라서 설정합니다.

2.2 자연키

  • 유저 테이블을 만든다고 가정한다면 속성은 주민번호, 이름, 성별 등이 존재할 수 있습니다.
  • 이 중 이름, 성별은 중복된 값이 들어올 수 있으므로 부적절하며 남게 되는 것은 주민번호입니다.
  • 이런 식으로 중복된 값들을 제외하며 중복되지 않는 것을 '자연스레' 뽑다가 나오는 키를 자연키라고 합니다. 
  • 자연키는 언제가는 변하는 속성을 가집니다.

2.3 인조키

  • 방금처럼 유저 테이블을 만든다고 했을 때 회원 테이블을 생성한다고 가정하면 주민번호, 이름, 성별, 등의 속성이 있습니다.
  • 여기에 인위적으로 유저 아이디를 부여합니다. 이를 통해 고유 식별자가 생겨납니다. 
  • 이렇게 인위적으로 생성한 키를 인조키라고 합니다. 
  • 자연키와는 대조적으로 변하지 않습니다. 

2.4 외래키

  • 외래키(Foreign key)는 FK라고도 하며, 다른 테이블의 기본키를 그대로 참조하는 값으로 개체와의 관계를 식별하는 데 사용됩니다.
  • 외래키는 중복되어도 됩니다.

2.5 후보키

  • 후보키(candidate key)는 기본키가 될 수 있는 후보들입니다.
  • 후보키는 유일성과 최소성을 동시에 만족하는 키입니다. 

2.6 대체키

  • 대체키(alternate key)는 후보키가 두 개 이상일 경우 어느 하나를 기본키로 지정하고 남은 후보키들을 말합니다.

2.7 슈퍼키

  • 슈퍼키(super key)는 각 레코드를 유일하게 식별할 수 있는 유일성을 갖춘 키입니다.
728x90
반응형

'CS > Database' 카테고리의 다른 글

[DataBase] 데이터베이스와 테이블 관리하기  (2) 2024.03.10
[Database] 트랜잭션과 무결성  (1) 2023.05.19
[Database] ERD와 정규화 과정  (2) 2023.05.18
[Database] 데이터베이스의 기본 (1)  (2) 2023.04.09
  1. 1. 관계
  2. 2. 키
  3. 2.1 기본키
  4. 2.2 자연키
  5. 2.3 인조키
  6. 2.4 외래키
  7. 2.5 후보키
  8. 2.6 대체키
  9. 2.7 슈퍼키
'CS/Database' 카테고리의 다른 글
  • [DataBase] 데이터베이스와 테이블 관리하기
  • [Database] 트랜잭션과 무결성
  • [Database] ERD와 정규화 과정
  • [Database] 데이터베이스의 기본 (1)
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (205) N
      • Apple (123) N
        • iOS (22)
        • visionOS (4)
        • Swift (66)
        • UIKit (2)
        • SwiftUI (23) N
        • RxSwift (2)
        • Xcode (4)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    네트워크
    운영체제
    배열
    제어문
    함수
    디자인패턴
    Optional
    swiftUI
    이니셜라이저
    visionOS
    프로세스
    combine
    스위프트
    Xcode
    Vision Pro
    UIKit
    메서드
    ios
    옵셔널
    클래스
    변수
    SWIFT
    오블완
    코딩테스트
    프로퍼티 래퍼
    Initializers
    연산자
    티스토리챌린지
    자바스크립트
    비동기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[Database] 데이터베이스의 기본 (2)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.