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

2023. 4. 12. 14:09·CS/Database
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)  (3) 2023.04.09
'CS/Database' 카테고리의 다른 글
  • [DataBase] 데이터베이스와 테이블 관리하기
  • [Database] 트랜잭션과 무결성
  • [Database] ERD와 정규화 과정
  • [Database] 데이터베이스의 기본 (1)
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (219)
      • Apple (137)
        • iOS (24)
        • visionOS (5)
        • Swift (71)
        • UIKit (2)
        • SwiftUI (25)
        • RxSwift (2)
        • Xcode (5)
        • Metal (2)
      • 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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바