[λ°μ΄ν„°λ² μ΄μŠ€] 무결성 μ œμ•½μ‘°κ±΄κ³Ό ν‚€(Key)

πŸ§ͺ Computer Science/Database

ν‚€(Key)

  • νŠΉμ • νŠœν”Œμ„ 식별할 λ•Œ μ‚¬μš©ν•˜λŠ” 속성 ν˜Ήμ€ μ†μ„±μ˜ 집합
  • ν‚€κ°€ λ˜λŠ” 속성(ν˜Ήμ€ μ†μ„±μ˜ 집합)은 값이 λ°˜λ“œμ‹œ λ‹¬λΌμ„œ νŠœν”Œλ“€μ„ ꡬ뢄할 수 μžˆμ–΄μ•Ό 함
  • ν‚€λŠ” λ¦΄λ ˆμ΄μ…˜ κ°„μ˜ 관계λ₯Ό λ§ΊλŠ” 데에도 μ‚¬μš©λ¨

μŠˆνΌν‚€

  • νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” ν•˜λ‚˜μ˜ 속성 ν˜Ήμ€ μ†μ„±μ˜ 집합
  • μœ μΌμ„±μ€ λ§Œμ‘±ν•˜μ§€λ§Œ μ΅œμ†Œμ„±μ€ λ§Œμ‘±μ‹œν‚€μ§€ λͺ»ν•¨

  • 이름과 μ£Όμ†ŒλŠ” μ€‘λ³΅λœ 값이 μžˆμ„ 수 있고, ν•Έλ“œν° λ²ˆν˜ΈλŠ” ν•Έλ“œν°μ΄ μ—†λŠ” μ‚¬λžŒμ΄ μ€‘λ³΅μ˜ μš”μ†Œκ°€ 될 수 μžˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ μœ„ λ¦΄λ ˆμ΄μ…˜μ—μ„œλŠ” 고객번호 λ˜λŠ” 주민번호λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  μ†μ„±μ˜ 집합이 μŠˆνΌν‚€κ°€ 될 수 μžˆλ‹€.

후보킀

  • νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” μ†μ„±μ˜ μ΅œμ†Œ 집합
  • κΈ°λ³Έν‚€λ‘œ μ‚¬μš©ν•  수 μžˆλŠ” 속성듀을 후보킀라고 함
  • λ¦΄λ ˆμ΄μ…˜ λ‚΄μ˜ λͺ¨λ“  νŠœν”Œμ— λŒ€ν•΄μ„œ μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±μ‹œμΌœμ•Ό 함

  • μœ„ λ¦΄λ ˆμ΄μ…˜μ—μ„œ κ³ κ°λ²ˆν˜Έλ‚˜ μ£Όλ―Όλ²ˆν˜ΈλŠ” λ‹€λ₯Έ λ ˆμ½”λ“œλ₯Ό μœ μΌν•˜κ²Œ ꡬ별할 수 μžˆλŠ” κΈ°λ³Έν‚€λ‘œ μ‚¬μš©ν•  수 μžˆμœΌλ―€λ‘œ 후보킀가 될 수 μžˆλ‹€. 즉, κΈ°λ³Έν‚€κ°€ 될 수 μžˆλŠ” 킀듀을 후보킀라 ν•œλ‹€.

κΈ°λ³Έν‚€

  • μ—¬λŸ¬ 후보킀 쀑 ν•˜λ‚˜λ₯Ό μ„ μ •ν•˜μ—¬ λŒ€ν‘œλ‘œ μ‚ΌλŠ” ν‚€
  • μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±, 개체 무결성을 λ§Œμ‘±μ‹œμΌœμ•Ό 함

  • 후보킀 μ„€λͺ…에 μ‚¬μš©λœ λ¦΄λ ˆμ΄μ…˜μ—μ„œλŠ” κ³‘κ°λ²ˆν˜Έλ‚˜ μ£Όλ―Όλ²ˆν˜Έκ°€ κΈ°λ³Έν‚€κ°€ 될 수 μžˆλ‹€. ν•˜μ§€λ§Œ μœ„ λ¦΄λ ˆμ΄μ…˜μ—μ„œλŠ” 고객번호+λ„μ„œλ²ˆν˜Έλ‘œ μ‘°ν•©ν•΄μ•Ό κΈ°λ³Έν‚€κ°€ λ§Œλ“€μ–΄μ§ˆ 수 μžˆλ‹€. 이듀은 κ°œλ³„μ μœΌλ‘œ κΈ°λ³Έν‚€λ‘œ μ‚¬μš©λ  수 μ—†λ‹€(쀑볡이 μžˆμœΌλ―€λ‘œ).

λŒ€μ²΄ν‚€

  • 후보킀가 λ‘˜ 이상일 λ•Œ, κΈ°λ³Έ ν‚€λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ 후보킀
  • 보쑰킀라고도 함

  • μœ„ λ¦΄λ ˆμ΄μ…˜μ—μ„œ 고객번호λ₯Ό κΈ°λ³Έν‚€λ‘œ μ‚¬μš©ν•˜λ©΄ μ£Όλ―Όλ²ˆν˜Έκ°€ λŒ€μ²΄ν‚€κ°€ λœλ‹€.

μ™Έλž˜ν‚€

  • λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έν‚€λ₯Ό μ°Έμ‘°ν•˜λŠ” 속성
  • μ™Έλž˜ν‚€λ‘œ μ§€μ •λ˜λ©΄ μ°Έμ‘° ν…Œμ΄λΈ”μ˜ 기본킀에 μ—†λŠ” 값은 μž…λ ₯ν•  수 μ—†μŒ(μ°Έμ‘° λ¬΄κ²°μ„±μ˜ 쑰건)

  • μ£Όλ¬Έ λ¦΄λ ˆμ΄μ…˜μ—μ„œλŠ” 고객 λ¦΄λ ˆμ΄μ…˜μ˜ 기본킀인 κ³ κ°λ²ˆν˜Έμ™€ λ„μ„œ λ¦΄λ ˆμ΄μ…˜μ˜ 기본킀인 λ„μ„œλ²ˆν˜Έλ₯Ό μ°Έμ‘°ν•˜μ—¬ μ‚¬μš©ν•œλ‹€. 이 λ•Œ, μ£Όλ¬Έ λ¦΄λ ˆμ΄μ…˜μ—μ„œλŠ” κ³ κ°λ²ˆν˜Έμ™€ λ„μ„œλ²ˆν˜Έκ°€ μ™Έλž˜ν‚€κ°€ 되고, μ£Όλ¬Έλ²ˆν˜Έκ°€ κΈ°λ³Έν‚€κ°€ λœλ‹€.


무결성 μ œμ•½μ‘°κ±΄

  • 데이터 무결성은 λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 λ°μ΄ν„°μ˜ 일관성과 정확성을 μ§€ν‚€λŠ” 것을 말함
  • 도메인 무결성 μ œμ•½μ‘°κ±΄
  • 개체 무결성 μ œμ•½μ‘°κ±΄
  • 무결성 μ œμ•½μ‘°κ±΄

도메인 무결성 μ œμ•½μ‘°κ±΄

  • λ¦΄λ ˆμ΄μ…˜ λ‚΄μ˜ νŠœν”Œλ“€μ΄ 각 μ†μ„±μ˜ 도메인에 μ§€μ •λœ κ°’λ§Œμ„ κ°€μ Έμ•Ό ν•œλ‹€.
  • 데이터 ν˜•(Type), 널(Null/Not Null), κΈ°λ³Έ κ°’(Default), 체크(Check) 등을 μ‚¬μš©ν•˜μ—¬ 지정
  • 예λ₯Ό λ“€μ–΄ VARCHAR ν˜•μœΌλ‘œ μ„ μ–Έλœ λ³€μˆ˜μ—λŠ” INT 값이 올 수 μ—†λ‹€λŠ” 것을 의미

개체 무결성 μ œμ•½μ‘°κ±΄

  • μ‚½μž…: κΈ°λ³Έν‚€ 값이 κ°™μœΌλ©΄ μ‚½μž… κΈˆμ§€
  • μˆ˜μ •: κΈ°λ³Έν‚€ 값이 같은 κ²½μš°λ‚˜ μˆ˜μ • 값이 Null인 경우 μˆ˜μ • κΈˆμ§€
  • μ‚­μ œ: νŠΉλ³„ν•œ 확인이 ν•„μš”ν•˜μ§€ μ•ŠμœΌλ©΄ μ¦‰μ‹œ μˆ˜ν–‰

μ°Έμ‘° 무결성 μ œμ•½μ‘°κ±΄

  • λΆ€λͺ¨λ¦΄λ ˆμ΄μ…˜μ— μ‚½μž…: 정상 진행
  • μžμ‹λ¦΄λ ˆμ΄μ…˜μ— μ‚½μž…: λΆ€λͺ¨ ν…Œμ΄λΈ”μ— μ™Έλž˜ν‚€ 값이 μ—†μœΌλ―€λ‘œ μ‚½μž… κΈˆμ§€
  • λΆ€λͺ¨λ¦΄λ ˆμ΄μ…˜μ˜ μ‚­μ œ: μžμ‹ ν…Œμ΄λΈ”μ„ 같이 μ‚­μ œν•  수 μžˆμ–΄μ„œ κΈˆμ§€ν•˜κ±°λ‚˜ μΆ”κ°€μž‘μ—… ν•„μš”
  • μžμ‹λ¦΄λ ˆμ΄μ…˜μ˜ μ‚­μ œ: λ°”λ‘œ μ‚­μ œ κ°€λŠ₯
  • μˆ˜μ •: μ‚­μ œμ™€ μ‚½μž…μ˜ 연속 μˆ˜ν–‰μœΌλ‘œ 각 μ‚­μ œμ™€ μ‚½μž…μ˜ μ œμ•½μ„ κ³ λ €ν•˜μ—¬ 진행