TIL 23.09.05

ν™©μ€ν•˜Β·2023λ…„ 9μ›” 5일
0

TIL

λͺ©λ‘ 보기
73/146

πŸ“ŒToday I Learned

였라클

ex29_modeling

λ°μ΄ν„°λ² μ΄μŠ€ 섀계

  1. μš”κ΅¬μ‚¬ν•­ μˆ˜μ§‘ 및 뢄석
  2. κ°œλ… 데이터 λͺ¨λΈλ§
  3. 논리 데이터 λͺ¨λΈλ§
  4. 물리 데이터 λͺ¨λΈλ§
  5. λ°μ΄ν„°λ² μ΄μŠ€ ꡬ좕

데이터 λͺ¨λΈλ§

  • μš”κ΅¬ 뢄석 기반 > μˆ˜μ§‘ν•œ 데이터 > 뢄석 > μ €μž₯ ꡬ쑰 > 도식화 > μ‚°μΆœλ¬Ό(ERD)
  • 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ 데이터 ꡬ쑰λ₯Ό μ„€κ³„ν•˜λŠ” μž‘μ—…
  • κ°œλ… + 논리 + 물리
  • κ°œλ… > μ•„μ£Ό κ°„λ‹¨ν•œ ν‘œν˜„μ˜ 섀계도 > ν…Œμ΄λΈ” 이름 + 속성 + 관계 μ •λ„λ§Œ 기술
  • 논리 > κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ κΈ°λ³Έ μ„€μ • > 속성(μžλ£Œν˜•, 길이) + 도메인 μ •μ˜ + ν‚€ ...
  • 물리 > 물리적 μ‹λ³„μž + λͺ¨λ“  것듀을 μ‹€μ œ DBMS에 λ§žμΆ°μ„œ ν˜„μ‹€ν™”

  1. ERD, Entity Relationship Diagram
    • μ—”ν‹°ν‹°μ˜ 관계λ₯Ό ν‘œν˜„ν•œ κ·Έλ¦Ό
    • λ°μ΄ν„°λ² μ΄μŠ€ λͺ¨λΈλ§ 기법 쀑 ν•˜λ‚˜
    • 손, μ˜€ν”ΌμŠ€, μ „λ¬Ένˆ΄(eXERD, ER-Win, 온라인 툴)
  2. Entity, μ—”ν‹°ν‹°
    • λ‹€λ₯Έ Entity와 λΆ„λ₯˜(ꡬ뢄)될 수 있고, λ‹€λ₯Έ Entity에 λŒ€ν•΄ 정해진 관계λ₯Ό 맺을 수 μžˆλŠ” 데이터 λ‹¨μœ„
    • λ¦΄λ ˆμ΄μ…˜ = ν…Œμ΄λΈ”(? > λ ˆμ½”λ“œ) = μ—”ν‹°ν‹° = μΈμŠ€ν„΄μŠ€ = 객체
      a. 학생 정보 관리
      - 정보 μˆ˜μ§‘: 아이디, 학생λͺ…, λ‚˜μ΄, μ£Όμ†Œ, μ—°λ½μ²˜ λ“±
      - 학생(아이디, 학생λͺ…, λ‚˜μ΄, μ£Όμ†Œ, μ—°λ½μ²˜)
      b. κ°•μ˜μ‹€ 정보 관리
      - 정보 μˆ˜μ§‘: κ°•μ˜μ‹€λͺ…, 크기, 인원 수, μš©λ„ λ“±...
      - κ°•μ˜μ‹€(κ°•μ˜μ‹€λͺ…, 크기, 인원 수, μš©λ„)
  3. Attribute, 속성
    • μ—”ν‹°ν‹°λ₯Ό κ΅¬μ„±ν•˜λŠ” ꡬ성 μš”μ†Œ
    • μ†μ„±μ˜ 집합 = μ—”ν‹°ν‹°
    • 컬럼
  4. Relationship, 관계
    • ν•˜λ‚˜μ˜ μ—”ν‹°ν‹° μ•ˆμ— λ“€μ–΄μžˆλŠ” 속성듀은 μ„œλ‘œ 관계가 μžˆλ‹€.
    • 학생(아이디, 학생λͺ…, λ‚˜μ΄, μ£Όμ†Œ, μ—°λ½μ²˜)
  5. Relational, 관계
    • 엔티티와 μ—”ν‹°ν‹°κ°„μ˜ 관계
    • ν…Œμ΄λΈ”μ˜ 관계

ERD > Entity, Attribute, Relation λ“± ν‘œν˜„ν•˜λŠ” 방법 > κ·Έλ¦Ό κ·Έλ¦¬λŠ” 방법

  1. Entity

    • μ‚¬κ°ν˜•
    • 이름을 μž‘μ„±
    • ERD λ‚΄μ˜ μ—”ν‹°ν‹°λͺ…은 쀑볡 λΆˆκ°€λŠ₯
  2. Attribute

    • ν”Όν„° μ²Έ
      - μ›μœΌλ‘œ ν‘œμ‹œ
      - μ—”ν‹°ν‹° μ—°κ²°
    • IE
      - μ—”ν‹°ν‹° λ‚΄μ˜ λͺ©λ‘μœΌλ‘œ ν‘œμ‹œ
  3. Relation

    • 엔티티와 μ—”ν‹°ν‹°μ˜ 관계
    • ν”Όν„°μ²Έ
    • IE(μƒˆλ°œ)

λΉ„λ””μ˜€ λŒ€μ—¬μ 

  1. μ—”ν‹°ν‹° μ •μ˜
    • μž₯λ₯΄
    • λΉ„λ””μ˜€
    • νšŒμ›
    • λŒ€μ—¬(?)
  2. 속성 μ •μ˜
  3. κΈ°λ³Έν‚€ μ •μ˜
  4. 관계 μ •μ˜

  1. 논리 λ‹€μ΄μ–΄κ·Έλž¨
    • κ°œλ… λͺ¨λΈ(ERD) > μŠ€ν‚€λ§ˆ μΆ”κ°€
  2. 물리 λ‹€μ΄μ–΄κ·Έλž¨
    • μ‹€μ œ κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ λͺ¨λ“  μΆ”κ°€

μ‚°μΆœλ¬Ό
a. ERD(κ°œλ… λͺ¨λΈλ§)
b. 논리 λ‹€μ΄μ–΄κ·Έλž¨
c. 물리 λ‹€μ΄μ–΄κ·Έλž¨


λͺ¨λΈλ§ μž‘μ—… > ERD > μ˜¬λ°”λ₯΄κ²Œ?? > 검증 > μ •κ·œν™” > μ•ˆμ •μ„± λ†’κ³ , μž‘μ—…ν•˜κΈ° νŽΈν•œ ERD

μ •κ·œν™”, Normalization

  • 자료의 μ†μ‹€μ΄λ‚˜ λΆˆν•„μš”ν•œ 정보λ₯Ό μ—†μ• κ³ , λ°μ΄ν„°μ˜ 일관성을 μœ μ§€ν•˜λ©°, 데이터 쒅속성을 μ΅œμ†Œν™”ν•΄μ€€λ‹€.
  • μš°λ¦¬κ°€ λ§Œλ“  ν…Œμ΄λΈ”(ERD) > λΉ„μ •ν˜•, λΉ„μ •κ·œν™” μƒνƒœ > μ •κ·œν™”
  • 제 1 μ •κ·œν™” > 제 2 μ •κ·œν™” > 제 3 μ •κ·œν™” λ“±...

κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ΄ 지ν–₯ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ μƒνƒœ
1. μ΅œλŒ€ν•œ null을 가지지 μ•ŠλŠ”λ‹€.
2. 쀑볡값을 가지지 μ•ŠλŠ”λ‹€.
3. μ›μžκ°’μ„ 가진닀.

μ •κ·œν™” λͺ©μ 
1. null μ΅œλŒ€ν•œ 제거
2. 쀑볡값 제거
3. 볡합값 제거
4. 자료의 μ‚½μž…μ΄μƒ, κ°±μ‹  이상, μ‚­μ œ 이상 ν˜„μƒ 제거

이상 ν˜„μƒ

  1. μ‚½μž… 이상, Insertion Anomaly
  • νŠΉμ • ν…Œμ΄λΈ”μ— 데이터λ₯Ό μ‚½μž…ν•  λ•Œ μ›ν•˜μ§€ μ•ŠλŠ” λ°μ΄ν„°κΉŒμ§€ 같이 λ„£μ–΄μ•Ό ν•˜λŠ” 상황
  1. κ°±μ‹  이상, Update Anomaly
  • λ™μΌν•œ 데이터가 2개 μ΄μƒμ˜ ν…Œμ΄λΈ”μ— λ™μ‹œ μ €μž₯
    > κ·Έ 쀑 1κ°œλŠ” μˆ˜μ •ν–ˆμ§€λ§Œ, λ‹€λ₯Έ 1개λ₯Ό μˆ˜μ • λͺ» ν•˜λ©΄, λ‘˜ 쀑 μ–΄λŠ 것이 μ˜¬λ°”λ₯Έ 데이터인지 νŒλ‹¨ν•˜μ§€ λͺ»ν•˜λŠ” 상황
  1. μ‚­μ œ 이상, Deletion Anomaly
  • νŠΉμ • ν…Œμ΄λΈ”μ—μ„œ 데이터λ₯Ό μ‚­μ œν•  λ•Œ μ›ν•˜μ§€ μ•ŠλŠ” λ°μ΄ν„°κΉŒμ§€ 같이 μ‚­μ œν•˜λŠ” 상황

ν•¨μˆ˜ 쒅속, FUnctional Dependency

  • ν•˜λ‚˜μ˜ ν…Œμ΄λΈ” λ‚΄μ—μ„œ 컬럼끼리의 관계 ν‘œν˜„
  • μ •κ·œν™”λŠ” 'λΆ€λΆ„ ν•¨μˆ˜ 쒅속'μ΄λ‚˜ '이행 ν•¨μˆ˜ 쒅속'을 λͺ¨λ‘ μ—†μ• κ³ , λͺ¨λ“  컬럼의 관계λ₯Ό 'μ™„μ „ ν•¨μˆ˜ 쒅속'으둜 λ§Œλ“œλŠ” μž‘μ—…μ΄λ‹€.
  1. μ™„μ „ ν•¨μˆ˜ 쒅속 -- κΈ°λ³Έν‚€κ°€ μ•„λ‹Œ 컬럼이 κΈ°λ³Έν‚€μ—κ²Œ 쒅속적인 μƒνƒœ
  2. λΆ€λΆ„ ν•¨μˆ˜ 쒅속
  3. 이행 ν•¨μˆ˜ 쒅속

μ •κ·œν™”

  • 1NF, 2NF, 3NF(Normal Form)

제 1 μ •κ·œν™”, 1NF

  • λͺ¨λ“  컬럼(속성)은 μ›μžκ°’μ„ 가진닀.
  • μ—¬λŸ¬ 개의 뢄리 κ°€λŠ₯ν•œ 값을 1개의 컬럼 μ•ˆμ— 넣지 말 것.
  • 1개 ν…Œμ΄λΈ” > (μ •κ·œν™”) > 2개 μ΄μƒμ˜ ν…Œμ΄λΈ”

제 2 μ •κ·œν™”, 2NF

  • κΈ°λ³Έ ν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  μ»¬λŸΌμ€ 기본킀에 μ™„μ „ ν•¨μˆ˜ 쒅속이어야 ν•œλ‹€.
  • λΆ€λΆ„ ν•¨μˆ˜ 쒅속 발견!! > λΆ€λΆ„ ν•¨μˆ˜ 쒅속 제거!!
  • 볡합킀λ₯Ό κ°€μ§€λŠ” ν…Œμ΄λΈ”μ—μ„œ λ°œκ²¬λœλ‹€.

제 3 μ •κ·œν™”, 3NF

  • κΈ°λ³Έ ν‚€κ°€ μ•„λ‹Œ λͺ¨λ“  μ»¬λŸΌμ€ 기본킀에 μ™„μ „ ν•¨μˆ˜ 쒅속이어야 ν•œλ‹€.
  • 이행 ν•¨μˆ˜ 쒅속 발견!! > 이행 ν•¨μˆ˜ 쒅속 제거!!

μ—­μ •κ·œν™”

  • μ •κ·œν™”λœ κ²°κ³Όλ₯Ό λ‹€μ‹œ μ›λž˜λŒ€λ‘œ λ˜λŒλ¦¬λŠ” μž‘μ—…
  • 2개 μ΄μƒμ˜ ν…Œμ΄λΈ” > (μ—­μ •κ·œν™”) > 1개 ν…Œμ΄λΈ”
  • μˆ˜μ—… 쀑 μ‚¬μš© κΈˆμ§€!!
profile
μ°¨κ·Όμ°¨κ·Ό ν•˜λ‚˜μ”©

0개의 λŒ“κΈ€