λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
⭐ Personal_Study/Database

ν”„λ‘œμ νŠΈ μ‹œ DB 섀계 방법

by ν¬μŠ€νŠΈμ‰μ΄ν¬ 2023. 3. 8.

Project DB 섀계

1. DB μ„€κ³„μ˜ λͺ©μ 

βœ” ν”„λ‘œμ νŠΈ, λͺ…μ„Έμ„œ λ“±μ˜ 정보 μš”κ΅¬μ‚¬ν•­μ— λŒ€ν•œ μ •ν™•ν•œ 이해

βœ” λΆ„μ„μž, 개발자, μ‚¬μš©μž κ°„μ˜ μ›ν• ν•œ μ˜μ‚¬ μ†Œν†΅ μˆ˜λ‹¨

βœ” 데이터 μ€‘μ‹¬μ˜ 뢄석 방법

βœ” ν˜„ν–‰ μ‹œμŠ€ν…œλ§Œμ΄ μ•„λ‹Œ μ‹ κ·œ μ‹œμŠ€ν…œ 개발의 기초 제곡

βœ” 섀계λ₯Ό λŒ€μΆ©ν•˜λ©΄ κΈ°λŠ₯이 좔가될 λ•Œλ§ˆλ‹€ DB와 κ΄€λ ¨λœ 이미 개발된 ν”„λ‘œκ·Έλž¨λ„ ν•¨κ»˜ λœ―μ–΄κ³ μ³μ•Όν•˜λŠ” 경우 λ°œμƒ!!

2. 섀계λ₯Ό μœ„ν•œ μš”κ΅¬ 사항 뢄석

βœ” 데이터 λ² μ΄μŠ€μ— λŒ€ν•œ μ‚¬μš©μžμ˜ μš”κ΅¬ 사항을 μˆ˜μ§‘ν•˜κ³  λΆ„μ„ν•΄μ„œ μ•„λž˜μ™€ 같은 μš”κ΅¬μ‚¬ν•­ (κΈ°λŠ₯) λͺ…μ„Έμ„œ μž‘μ„±

μ˜ˆμ‹œ: μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έ μƒ˜ν”Œ: 항곡사 DB

νšŒμ›μœΌλ‘œ κ°€μž…ν•˜λ €λ©΄ 아이디, λΉ„λ°€λ²ˆν˜Έ, μ„±λͺ…, μ‹ μš©μΉ΄λ“œ 정보λ₯Ό μž…λ ₯ν•΄μ•Ό ν•œλ‹€.
νšŒμ›μ˜ μ‹ μš©μΉ΄λ“œ μ •λ³΄λŠ” μ—¬λŸ¬ 개λ₯Ό μ €μž₯ν•  수 μžˆλ‹€.
μ‹ μš©μΉ΄λ“œ 번호, μœ νš¨κΈ°κ°„μ„ μ €μž₯ν•  수 μžˆλ‹€
νšŒμ‚¬κ°€ λ³΄μœ ν•œ 비행기에 λŒ€ν•΄ λΉ„ν–‰κΈ° 번호, μΆœλ°œλ‚ μ§œ, μΆœλ°œμ‹œκ°„ 정보λ₯Ό μ €μž₯ν•˜κ³  μžˆλ‹€.
λΉ„ν–‰κΈ° μ’Œμ„μ— λŒ€ν•œ μ’Œμ„ 번호, λ“±κΈ‰ 정보λ₯Ό μ €μž₯ν•˜κ³  μžˆλ‹€.
νšŒμ›μ€ μ’Œμ„μ„ μ˜ˆμ•½ν•˜λŠ”λ°, νšŒμ› ν•œ λͺ…은 μ’Œμ„μ„ ν•˜λ‚˜λ§Œ μ˜ˆμ•½ν•  수 있고, ν•œ μ’Œμ„μ€ νšŒμ› ν•œ λͺ…λ§Œ μ˜ˆμ•½ν•  수 μžˆλ‹€.

3. κ°œλ…μ  섀계

βœ” μž‘μ„±ν•œ μš”κ΅¬ 사항 λͺ…μ„Έμ„œμ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΅¬μ„±ν•˜λŠ”λ° ν•„μš”ν•œ 개체, 속성, 개체 κ°„μ˜ 관계λ₯Ό μΆ”μΆœν•˜μ—¬ ERD 생성

  1. 개체(Entity)와 속성(Attribute) μΆ”μΆœ
    • λŒ€λΆ€λΆ„ λͺ…μ‚¬λ‘œ 선별
  2. 개체 κ°„μ˜ 관계(Realtionship) μΆ”μΆœ
    • λŒ€λΆ€λΆ„ λ™μ‚¬λ‘œ 선별 (개체 κ°„μ˜ 관계λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 동사)
    • 관계에 μ†ν•œ 속성
    • 1:1, 1:N, N:M
    • ν•„μˆ˜μ μΈ μ°Έμ—¬, 선택적인 μ°Έμ—¬

3.1 κ°œμ²΄μ™€ 속성 μΆ”μΆœ

βœ” μš”κ΅¬μ‚¬ν•­μ—μ„œ 개체(Entity)λŠ” λŒ€λΆ€λΆ„ λͺ…μ‚¬λ‘œ 이루어져 μžˆμ§€λ§Œ, 속성(Attribute)와 κ΅¬λ³„ν•˜μ—¬ μΆ”μΆœ

νšŒμ›μœΌλ‘œ κ°€μž…ν•˜λ €λ©΄ 아이디, λΉ„λ°€λ²ˆν˜Έ, μ„±λͺ…, μ‹ μš©μΉ΄λ“œ 정보λ₯Ό μž…λ ₯ν•΄μ•Ό ν•œλ‹€.
νšŒμ›μ˜ μ‹ μš©μΉ΄λ“œ μ •λ³΄λŠ” μ—¬λŸ¬ 개λ₯Ό μ €μž₯ν•  수 μžˆλ‹€.
μ‹ μš©μΉ΄λ“œ 번호, μœ νš¨κΈ°κ°„μ„ μ €μž₯ν•  수 μžˆλ‹€
νšŒμ‚¬κ°€ λ³΄μœ ν•œ *
λΉ„ν–‰κΈ°**에 λŒ€ν•΄ *λΉ„ν–‰κΈ° 번호, μΆœλ°œλ‚ μ§œ, μΆœλ°œμ‹œκ°„
정보λ₯Ό μ €μž₯ν•˜κ³  μžˆλ‹€.
λΉ„ν–‰κΈ° μ’Œμ„μ— λŒ€ν•œ μ’Œμ„ 번호, λ“±κΈ‰ 정보λ₯Ό μ €μž₯ν•˜κ³  μžˆλ‹€.
νšŒμ›μ€ μ’Œμ„μ„ μ˜ˆμ•½ν•˜λŠ”λ°, νšŒμ› ν•œ λͺ…은 μ’Œμ„μ„ ν•˜λ‚˜λ§Œ μ˜ˆμ•½ν•  수 있고, ν•œ μ’Œμ„μ€ νšŒμ› ν•œ λͺ…λ§Œ μ˜ˆμ•½ν•  수 μžˆλ‹€.

3.2 개체 κ°„μ˜ 관계(Relationship) μΆ”μΆœ

βœ” 개체 κ°„μ˜ 관계(Relationship)은 μ—¬λ €κ°€μ§€λ‘œ λΆ„λ₯˜ν•΄μ„œ μ •μ˜λœλ‹€.

νšŒμ›μœΌλ‘œ κ°€μž…ν•˜λ €λ©΄ 아이디, λΉ„λ°€λ²ˆν˜Έ, μ„±λͺ…, μ‹ μš©μΉ΄λ“œ 정보λ₯Ό μž…λ ₯ν•΄μ•Ό ν•œλ‹€.
νšŒμ›μ˜ μ‹ μš©μΉ΄λ“œ μ •λ³΄λŠ” μ—¬λŸ¬ 개λ₯Ό μ €μž₯ν•  수 μžˆλ‹€.
μ‹ μš©μΉ΄λ“œ 번호, μœ νš¨κΈ°κ°„μ„ μ €μž₯ν•  수 μžˆλ‹€
νšŒμ‚¬κ°€ λ³΄μœ ν•œ 비행기에 λŒ€ν•΄ λΉ„ν–‰κΈ° 번호, μΆœλ°œλ‚ μ§œ, μΆœλ°œμ‹œκ°„ 정보λ₯Ό μ €μž₯ν•˜κ³  μžˆλ‹€.
λΉ„ν–‰κΈ° μ’Œμ„μ— λŒ€ν•œ μ’Œμ„ 번호, λ“±κΈ‰ 정보λ₯Ό μ €μž₯ν•˜κ³  μžˆλ‹€.
νšŒμ›μ€ μ’Œμ„μ„ μ˜ˆμ•½ν•˜λŠ”λ°, νšŒμ› ν•œ λͺ…은 μ’Œμ„μ„ ν•˜λ‚˜λ§Œ μ˜ˆμ•½ν•  수 있고, ν•œ μ’Œμ„μ€ νšŒμ› ν•œ λͺ…λ§Œ μ˜ˆμ•½ν•  수 μžˆλ‹€.

3.3 κ°œλ… 섀계 기반으둜 ERD 생성

[μ°Έκ³ ] ERD ν‘œμ€€ 기호

4. 논리적 섀계

βœ” λͺ¨λ“  κ°œμ²΄λŠ” λ¦΄λ ˆμ΄μ…˜(Table)둜 λ³€ν™˜

βœ” N:Mκ΄€κ³„λŠ” λ¦΄λ ˆμ΄μ…˜(Table)둜 λ³€ν™˜

βœ” 1:N κ΄€κ³„λŠ” μ™Έλž˜ν‚€λ‘œ ν‘œν˜„

βœ” 1:1 κ΄€κ²ŒλŠ” μ™Έλž˜ν‚€λ‘œ ν‘œν˜„

βœ” 닀쀑 속성 값은 독립 λ¦΄λ ˆμ΄μ…˜(Table)둜 λ³€ν™˜

4.1 λͺ¨λ“  κ°œμ²΄λŠ” λ¦΄λ ˆμ΄μ…˜ Table둜 λ³€ν™˜

4.2 N:Mκ΄€κ³„λŠ” λ¦΄λ ˆμ΄μ…˜(Table)둜 λ³€ν™˜

4.3 1:N κ΄€κ³„λŠ” μ™Έλž˜ν‚€λ‘œ ν‘œν˜„

4.4 1:1 κ΄€κ²ŒλŠ” μ™Έλž˜ν‚€λ‘œ ν‘œν˜„

4.5 닀쀑 속성 값은 독립 λ¦΄λ ˆμ΄μ…˜(Table)둜 λ³€ν™˜

5. 물리적 μŠ€ν‚€λ§ˆ κ΅¬ν˜„

βœ” ERDλ₯Ό μ‹€μ œ ν…Œμ΄λΈ”λ‘œ 생성

  • WorkBench 같은 DB Toolμ΄λ‚˜ SQL 슀크립트 μ‚¬μš©

'⭐ Personal_Study > Database' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

λ°˜μ •κ·œν™”  (0) 2023.03.07
M:N Relationship  (0) 2022.10.16
N:1 Relationship  (1) 2022.10.08
Relational Database  (0) 2022.10.08
DML (Data Manipulation Language)  (0) 2022.10.08

λŒ“κΈ€