πŸ’»

[SQLD] Chapter 1. 데이터 λͺ¨λΈλ§μ˜ 이해 λ³Έλ¬Έ

TIL/SQLD

[SQLD] Chapter 1. 데이터 λͺ¨λΈλ§μ˜ 이해

λ˜νš¨λ‹ˆ 2020. 4. 18. 23:32

- λ°μ΄ν„°λž€ 무엇인가?

: 컴퓨터가 μ²˜λ¦¬ν•  수 μžˆλŠ” 문자, 숫자, μ†Œλ¦¬, κ·Έλ¦Ό λ”°μœ„μ˜ ν˜•νƒœλ‘œ 된 정보

 

- λͺ¨λΈλ§μ˜ νŠΉμ§•

: 좔상화, λ‹¨μˆœν™”, λͺ…ν™•ν™”

 

- λͺ¨λΈλ§μ˜ 3가지 관점

  1. 데이터관점
  2. ν”„λ‘œμ„ΈμŠ€ 관점
  3. 데이터와 ν”„λ‘œμ„ΈμŠ€μ˜ 상관관점

- 데이터 λͺ¨λΈλ§μ΄λž€?

  • μ •λ³΄μ‹œμŠ€ν…œμ„ κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ λ°μ΄ν„°κ΄€μ μ˜ 업무 λΆ„μ„œ 기법
  • ν˜„μ‹€μ„Έκ³„μ˜ 데이터에 λŒ€ν•΄ μ•½μ†λœ ν‘œκΈ°λ²•μ— μ˜ν•΄ ν‘œν˜„ν•˜λŠ” κ³Όμ • 
  • λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΅¬μΆ•ν•˜κΈ° μœ„ν•œ 뢄석/μ„€κ³„μ˜ κ³Όμ •

- μ™œ λͺ¨λΈλ§μ„ ν•˜λŠ”κ°€?

: ν˜„μ‹€μ„Έκ³„ -> 좔상화, λ‹¨μˆœν™”, λͺ…ν™•ν™” -> 섀계도λ₯Ό ν†΅ν•œ μ‹œμŠ€ν…œμ˜ 섀계. κ°œλ…ν™”λœ μ„œλΉ„μŠ€λ₯Ό 물리적으둜 κ΅¬ν˜„ν•˜μ—¬ μ‹œμŠ€ν…œν™” ν•˜λŠ” 것

 

- 데이터 λͺ¨λΈλ§μ˜ νŠΉμ§•

  • 데이터 λͺ¨λΈμ˜ 제곡 κΈ°λŠ₯ : κ°€μ‹œν™”, λͺ…μ„Έν™”, λ¬Έμ„œν™”
  • μ€‘μš”μ„± : νŒŒκΈ‰νš¨κ³Ό 큼, κ°„κ²°ν•œ ν‘œν˜„ κ°€λŠ₯, 데이터 ν’ˆμ§ˆ μœ μ§€
  • 3단계 κ³Όμ • : κ°œλ… λͺ¨λΈλ§ -> 논리적 λͺ¨λΈλ§ -> 물리적 λͺ¨λΈλ§
  • 쒋은 데이터 λͺ¨λΈμ˜ μš”μ†Œ : μ™„μ „μ„±, μ€‘λ³΅λ°°μ œ, μ—…λ¬΄κ·œμΉ™(BR), 데이터 μž¬μ‚¬μš©, μ˜μ‚¬μ†Œν†΅ , 톡합성
  • 데이터 λͺ¨λΈλ§ 유의점 : 쀑볡, λΉ„μœ μ—°μ„±, 비일관성

- ANSI/SPARC 3단계 ꡬ쑰 : λ°μ΄ν„°λ² μ΄μŠ€ 초기 좔상화 ꡬ쑰 (데이터 λ…λ¦½μ„±μ˜ 이해), 외뢀단계, κ°œλ…μ  단계, 내뢀적 단계 

- μ™ΈλΆ€ - 논리적 데이터 독립성(μ™ΈλΆ€μ˜ 변경에도 κ°œλ…μŠ€ν‚€λ§ˆκ°€ λ³€ν•˜μ§€ μ•ŠμŒ) - κ°œλ… - 물리적 데이터 독립성 - λ‚΄λΆ€

  1. μ™ΈλΆ€μŠ€ν‚€λ§ˆ 
    • View 단계 μ—¬λŸ¬ 개의 μ‚¬μš©μž κ΄€μ μœΌλ‘œ ꡬ성, 즉 개개 μ‚¬μš©μžκ°€ λ³΄λŠ” 개인적 DB μŠ€ν‚€λ§ˆ
    • DB의 개개 μ‚¬μš©μžλ‚˜ μ‘μš©ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ ‘κ·Όν•˜λŠ” DB μ •μ˜ 
  2. κ°œλ…μŠ€ν‚€λ§ˆ
    • λͺ¨λ“  μ‚¬μš©μž 관점을 ν†΅ν•©ν•œ 쑰직 μ „μ²΄μ˜ DBλ₯Ό κΈ°μˆ ν•˜λŠ” 것
    • DB에 μ €μž₯λ˜λŠ” 데이터와 κ·Έλ“€κ°„μ˜ 관계λ₯Ό ν‘œν˜„ν•˜λŠ” μŠ€ν‚€λ§ˆ
  3. λ‚΄λΆ€μŠ€ν‚€λ§ˆ
    • 내뢀단계, λ‚΄λΆ€ μŠ€ν‚€λ§ˆλ‘œ ꡬ성, DBκ°€ 물리적으둜 μ €μž₯된 ν˜•μ‹
    • 물리적 μž₯μΉ˜μ—μ„œ 데이터가 μ‹€μ œλ‘œ μ €μž₯λ˜λŠ” 방법을 ν‘œν˜„ν•˜λŠ” μŠ€ν‚€λ§ˆ

- 사상(Mapping) : μƒν˜Έ 독립적인 κ°œλ…μ„ μ—°κ²°μ‹œμΌœμ£ΌλŠ” 닀리λ₯Ό λœ»ν•œλ‹€. 데이터 λ…λ¦½μ„±μ—λŠ” 2κ°€μ§€μ˜ 사상이 μžˆλ‹€.

  1. 외뢀적/κ°œλ…μ  사상(논리적 사상)
    • 외뢀적 뷰와 κ°œλ…μ  뷰의 μƒν˜Έ 관련성을 μ •μ˜
    • 예) μ‚¬μš©μžκ°€ μ ‘κ·Όν•˜λŠ” ν˜•μ‹μ— 따라 λ‹€λ₯Έ νƒ€μž…μ˜ ν•„λ“œλ₯Ό κ°€μ§ˆ 수 μžˆλ‹€. κ°œλ…μ  뷰의 ν•„λ“œ νƒ€μž…μ€ λ³€ν™”κ°€ μ—†λ‹€. 
  2. κ°œλ…μ /내뢀적 사상(물리적 사상)
    • κ°œλ…μ  뷰와 μ €μž₯된 λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒν˜Έκ΄€λ ¨μ„± μ •μ˜
    • μ €μž₯된 λ°μ΄ν„°λ² μ΄μŠ€ ꡬ쑰가 바뀐닀면 κ°œλ…μ /내뢀적 사상이 λ°”λ€Œμ–΄μ•Όν•œλ‹€. κ·Έλž˜μ•Ό κ°œλ…μ  μŠ€ν‚€λ§ˆκ°€ κ·ΈλŒ€λ‘œ λ‚¨μ•„μžˆκ²Œ λœλ‹€. 

- 데이터 λͺ¨λΈλ§μ˜ μ€‘μš”ν•œ 3가지 κ°œλ… : μ—”ν„°ν‹°, 속성, 관계

 


 

- μ—”ν„°ν‹°(Entity) 

 

  • 업무에 ν•„μš”ν•˜κ³  μœ μš©ν•œ 정보λ₯Ό μ €μž₯ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ '집합' 적인 것 : 싀체, 객체
  • 관심사, μ €μž₯이 되기 μœ„ν•œ μ–΄λ–€ 것. λͺ…사
  • 업무 ν”„λ‘œμ„ΈμŠ€μ— μ˜ν•΄ 이용, 2개 μ΄μƒμ˜ 속성, μΈμŠ€ν„΄μŠ€μ˜ 집합(2개 이상), 1개 μ΄μƒμ˜ 관계
  • νŠΉμ§• 
    • μ—…λ¬΄μ—μ„œ ν•„μš”λ‘œ ν•˜λŠ” 정보
    • 식별이 κ°€λŠ₯ν•΄μ•Ό 함 (μœ μΌν•œ μ‹λ³„μž, μ €μž₯되기 μœ„ν•΄, μœ μΌκ°’μœΌλ‘œ κ΅¬λ³„λ˜κΈ° μœ„ν•΄)
    • 업무 ν”„λ‘œμ„ΈμŠ€μ— μ˜ν•΄ 이용
    • 속성을 포함(2개 이상) ν•΄μ•Ό ν•˜λ©° 관계가 쑴재
  • λΆ„λ₯˜
    • μœ λ¬΄ν˜•μ— 따라 => μœ ν˜•(사원, λ¬Όν’ˆ) / 사건(μ£Όλ¬Έ, 청ꡬ) / κ°œλ…(쑰직, μž₯μ†Œ)
    • λ°œμƒ μ‹œμ μ— 따라 => κΈ°λ³Έ/ν‚€(사원, λΆ€μ„œ) / 쀑심(μ ‘μˆ˜, 계약) / ν–‰μœ„(μ£Όλ¬Έλ‚΄μ—­, 계약진행)

 


 

- 속성(Attribute)

 

  • μ‚¬λ¬Όμ˜ μ„±μ§ˆ, νŠΉμ§•, μ΅œμ†Œμ˜ 데이터 λ‹¨μœ„
  • μ—…λ¬΄μ—μ„œ ν•„μš” 
  • μΈμŠ€ν„΄μŠ€μ˜ κ΅¬μ„±μš”μ†Œ

- μ†μ„±μ˜ λͺ…μΉ­ λΆ€μ—¬

 

  • ν•΄λ‹Ήμ—…λ¬΄μ—μ„œ μ‚¬μš©ν•˜λŠ” 이름을 λΆ€μ—¬ ν•œλ‹€. 
  • μ„œμˆ μ‹ 속성λͺ…은 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μ•½μ–΄μ‚¬μš©μ€ 가급적 μ œν•œν•œλ‹€.
  • 전체 데이터λͺ¨λΈμ—μ„œ μœ μΌμ„± ν™•λ³΄ν•˜λŠ” 것이 μ’‹λ‹€. 

- μ—”ν„°ν‹°, μΈμŠ€ν„΄μŠ€μ™€ 속성, μ†μ„±κ°’μ˜ 관계

 

 

  • ν•œ 개의 μ—”ν„°ν‹°λŠ” 두 개 μ΄μƒμ˜ μΈμŠ€ν„΄μŠ€μ˜ 집합이닀.
  • ν•œ 개의 μ—”ν„°ν‹°λŠ” 두 개 이상이 속성 값을 κ°–λŠ”λ‹€.
  • ν•œ 개의 속성은 ν•œ 개의 속성값을 κ°–λŠ”λ‹€. 

- 도메인(Domain)

  • 속성이 κ°€μ§ˆ 수 μžˆλŠ” κ°’μ˜ λ²”μœ„λ₯Ό λ§ν•œλ‹€.

 


 

- 관계(Relationship)

  • μΈμŠ€ν„΄μŠ€ μ‚¬μ΄μ˜ 논리적 μ—°κ΄€μ„±μœΌλ‘œ νŽ˜μ–΄λ§μ΄λΌ ν•˜λ©° νŽ˜μ–΄λ§μ˜ 집합을 Relationship 이라 함
  • λΆ„λ₯˜ : μ‘΄μž¬μ— μ˜ν•œ 관계 / ν–‰μœ„μ— μ˜ν•œ 관계
  • κ΄€κ³„μ°¨μˆ˜(1:1, 1:m, m:m), 선택사양(ν•„μˆ˜,μΆ©λΆ„)


 

- μ‹λ³„μž(Identifier)

  • μ‹λ³„μžλŠ” μ—”ν„°ν‹°μ—μ„œ μΈμŠ€ν„΄μŠ€λ“€μ„ ꡬ뢄할 수 μžˆλŠ” κ΅¬λΆ„μž. 즉, μΈμŠ€ν„΄μŠ€λ₯Ό μ§€μΉ­ν•˜λŠ” 이름
    • 학ꡐ μ—”ν„°ν‹°μ—μ„œ 학ꡐλͺ…μ΄λž€ μ»¬λŸΌμ€ μ‹λ³„μžκ³  μ‹€μ œ 학ꡐλͺ…인 ‘μ„œμšΈλŒ€’ λŠ” ν•˜λ‚˜μ˜ μΈμŠ€ν„΄μŠ€μž„
  • νŠΉμ§• : μœ μΌμ„±, μ΅œμ†Œμ„±, λΆˆλ³€μ„±, μ‘΄μž¬μ„±
  • μ‹λ³„μž λΆ„λ₯˜

  • μ‹λ³„μž 관계 λΆ„λ₯˜ 
    • μ‹λ³„μž 관계 : λΆ€λͺ¨μ˜ PK κ°€ μžμ‹μ—κ²Œ μƒμ†λ˜λŠ” 관계. Null값이 였면 μ•ˆλœλ‹€. 
    • λΉ„μ‹λ³„μž 관계 : λΆ€λͺ¨μ˜ PK κ°€ μžμ‹μ˜ 일반 μ†μ„±μœΌλ‘œ μƒμ†λ˜λŠ” 관계

- μ‹λ³„μž κ΄€κ³„λ‘œλ§Œ μ„€μ •ν•  경우의 문제점

  • μ‹λ³„μžκ΄€κ³„λ‘œλ§Œ μ—°κ²°λœ λͺ¨λΈμ˜ 경우 μ£Όμ‹λ³„μž 속성이 μ§€μ†μ μœΌλ‘œ μ¦κ°€ν•œλ‹€.
  • μ£Όμ‹λ³„μž μ¦κ°€λ‘œ λ³΅μž‘μ„±κ³Ό 였λ₯˜κ°€λŠ₯성을 μœ λ°œμ‹œν‚¬ 수 μžˆλ‹€.

- λΉ„μ‹λ³„μž κ΄€κ³„λ‘œλ§Œ μ„€μ •ν•  경우의 문제점

  • λΉ„μ‹λ³„μž κ΄€κ³„λ‘œ μ„€μ •ν•  경우 속성이 μžμ‹μ—”ν„°ν‹°λ‘œ μƒμ†λ˜μ§€ μ•ŠλŠ”λ‹€. 
  • 속성이 μžμ‹μ—”ν„°ν‹°λ‘œ μƒμ†λ˜μ§€ μ•Šμ•„ λΆ€λͺ¨μ—”ν„°ν‹°κΉŒμ§€ μ‘°μΈλ˜λŠ” ν˜„μƒμ΄ λ°œμƒ
  • λΆˆν•„μš”ν•œ 쑰인이 λ°œμƒλ˜κ³  SQLꡬ문도 κΈΈμ–΄μ Έ μ„±λŠ₯ μ €ν•˜ ν˜„μƒ λ°œμƒ

- μ‹λ³„μž 관계 μ„€μ • 고렀사항

 

 

λ°˜μ‘ν˜•

'TIL > SQLD' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[SQLD] Chapter 3. SQL κΈ°λ³Έ  (0) 2020.05.02
[SQLD] Chapter 2. 데이터 λͺ¨λΈκ³Ό μ„±λŠ₯  (0) 2020.04.26
Comments