λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
개인 곡뢀/DB

DBMSλ₯Ό μ‚¬μš©ν•˜λŠ” μ΄μœ μ™€ DBMS μŠ€ν‚€λ§ˆ

by syLim___ 2024. 11. 7.
728x90

βœ… 파일 μ‹œμŠ€ν…œ λŒ€μ‹  λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œμ„ μ“°λŠ” 이유

1. νŠΉμ • 파일의 νŠΉμ • 뢀뢄에 λŒ€ν•œ μ‚¬μš©μžλ³„ μ ‘κ·Ό κΆŒν•œ 지정이 κ°€λŠ₯ν•˜λ‹€.

    - 파일 μ‹œμŠ€ν…œμ€ μš΄μ˜μ²΄μ œκ°€ κ΄€λ¦¬ν•΄μ£ΌλŠ”λ°, λŒ€λΆ€λΆ„μ˜ OSλŠ” 파일 전체에 λŒ€ν•œ νŒ¨μŠ€μ›Œλ“œ 식별 κΈ°λ²•μ˜ λ³΄μ•ˆλ§Œμ„ μ œκ³΅ν•œλ‹€.

    - 즉 파일 μ‹œμŠ€ν…œμ—μ„œλŠ” 각 λ°μ΄ν„°μ˜ νŠΉμ • 뢀뢄별 μ ‘κ·Ό κΆŒν•œμ„ μ‚¬μš©μžλ§ˆλ‹€ λ‹€λ₯΄κ²Œ μ§€μ •ν•˜κΈ° μ–΄λ ΅λ‹€.

    - κ·ΈλŸ¬λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” ν…Œμ΄λΈ”, ν–‰, μ—΄ μˆ˜μ€€μ—μ„œ μ‚¬μš©μžλ³„λ‘œ 세뢀적인 κΆŒν•œ 섀정이 κ°€λŠ₯ν•˜λ‹€.

 

2. μ—¬λŸ¬ λͺ…μ˜ μ‚¬μš©μžκ°€ 데이터에 λ™μ‹œμ— μ ‘κ·Όν•˜λŠ” 상황을 잘 μ²˜λ¦¬ν•  수 μžˆλ‹€.

    - DBMSλŠ” μžμ‹  μ™Έμ˜ λ‹€λ₯Έ μ‚¬μš©μžκ°€ λ™μΌν•œ 데이터에 μ ‘κ·Όν•˜κ³  μžˆλ‹€λŠ” 것을 μ‚¬μš©μž κ΄€μ μ—μ„œ λ¬΄μ‹œν•΄λ„ λ˜λ„λ‘ λ™μž‘ν•œλ‹€. (νŠΈλžœμž­μ…˜ μ œμ–΄λ‚˜ lock 을  이용)

 

3. λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό μ €μž₯ν•˜κΈ° μœ λ¦¬ν•˜λ‹€.

    - 파일 μ‹œμŠ€ν…œμ— λŒ€μš©λŸ‰μ˜ 데이터λ₯Ό μ €μž₯ν•˜μ—¬ μ‚¬μš©ν•œλ‹€λ©΄, 데이터λ₯Ό λ””μŠ€ν¬ λ“±μ˜ μ €μž₯μž₯μΉ˜μ— μ €μž₯ ν›„, ν•„μš”ν•œ λΆ€λΆ„λ§Œ λ©”λͺ¨λ¦¬μ— κ·Έλ•Œκ·Έλ•Œ μ˜¬λ €μ•Ό ν•œλ‹€.

 

βœ… DBMS μŠ€ν‚€λ§ˆ

DBMSλŠ” 3λ‹¨κ³„μ˜ 데이터 좔상화λ₯Ό 톡해 데이터 독립성을 μ œκ³΅ν•œλ‹€.

 

데이터 λ…λ¦½μ„±μ—λŠ” 논리적 데이터 독립성과 물리적 데이터 독립성이 μžˆλŠ”λ°,

논리적 데이터 λ…λ¦½μ„±μ΄λž€ λ°μ΄ν„°μ˜ 논리적인 κ΅¬μ‘°λ‚˜ μ €μž₯ 방식에 λŒ€ν•œ 정보λ₯Ό μ‚¬μš©μžμ—κ²Œ κ°μΆ”λŠ” 것.

    (즉 λ°μ΄ν„°λ² μ΄μŠ€μ˜ 논리적 ꡬ쑰가 λ³€κ²½λ˜λ”λΌλ„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šλ„λ‘ ν•΄μ€€λ‹€.)

 

물리적 데이터 λ…λ¦½μ„±μ΄λž€ μ‹€μ œ 데이터가 물리적으둜 μ–΄λ–»κ²Œ μ €μž₯λ˜μ–΄ μžˆλŠ”μ§€ μ‚¬μš©μžμ—κ²Œ κ°μΆ”λŠ” 것

    (즉 μ‹€μ œ 물리적 데이터 μ €μž₯ 방식이 λ³€κ²½λ˜μ–΄λ„ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šλ„λ‘ ν•΄μ€€λ‹€.)

 

 

πŸ“Œ μŠ€ν‚€λ§ˆ(Schema)λž€?

- λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ°μ΄ν„°μ˜ ꡬ쑰, λ°μ΄ν„°μ˜ ν‘œν˜„ 방법, 데이터듀 κ°„μ˜ 관계, λ°μ΄ν„°μ˜ μ œμ•½ 쑰건을 ν˜•μ‹μ— 맞게 μ •μ˜ν•œ 것.

- Relation databaseμ—μ„œ μŠ€ν‚€λ§ˆλŠ” 개체(entity), 속성(attribute), 관계(relation), μ œμ•½μ‘°κ±΄(constraint)듀을 μ •μ˜ν•œλ‹€.

 

- 물리적 μŠ€ν‚€λ§ˆ, 논리적(κ°œλ…) μŠ€ν‚€λ§ˆ, μ™ΈλΆ€ μŠ€ν‚€λ§ˆ μ„Έ λ‹¨κ³„λ‘œ λ‚˜λ‰˜μ–΄ μžˆλ‹€.

 

1. 논리적 μŠ€ν‚€λ§ˆ (κ°œλ… μŠ€ν‚€λ§ˆ)

    - μ •ν•΄μ§„ λͺ¨λΈμ— 따라 μ €μž₯될 데이터λ₯Ό κΈ°μˆ ν•œλ‹€.

    - κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œ(RDBMS)의 κ°œλ… μŠ€ν‚€λ§ˆμ—λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 λͺ¨λ“  ν…Œμ΄λΈ”μ— λŒ€ν•œ λͺ…μ„Έ 정보가 λ“€μ–΄ μžˆλ‹€.

    - κ°œλ… μŠ€ν‚€λ§ˆλŠ” 주둜 ER λͺ¨λΈμ„ μ‚¬μš©ν•˜μ—¬ μ„€κ³„ν•œλ‹€.

 

2. 물리적 μŠ€ν‚€λ§ˆ

    - κ°œλ… μŠ€ν‚€λ§ˆμ— λͺ…μ„Έλ˜μ–΄ μžˆλŠ” ν…Œμ΄λΈ”λ“€μ΄ μ‹€μ œλ‘œ λ””μŠ€ν¬μ— μ–΄λ–»κ²Œ μ €μž₯λ˜μ–΄μ•Ό ν•˜λŠ”μ§€ κΈ°μˆ ν•œλ‹€.

 

    - κ°œλ… μŠ€ν‚€λ§ˆμ—μ„œ μ„€κ³„λœ ν…Œμ΄λΈ”μ€ 데이터가 μ–΄λ–€ μžλ£Œκ΅¬μ‘°μ— μ €μž₯될 것인지(예λ₯Ό λ“€λ©΄ B-Tree에 μ €μž₯될 것인지, Heap에 μ €μž₯될 것인지)에 λŒ€ν•œ κ³ λ €κ°€ μ—†λ‹€. λ°˜λ©΄μ— 물리적 μŠ€ν‚€λ§ˆμ—μ„œλŠ” ν…Œμ΄λΈ” 데이터가 μ–΄λ–€ μžλ£Œκ΅¬μ‘°μ— μ €μž₯될 것인지가 κ³ λ € λ˜μ–΄ μžˆλ‹€.

 

    - μΆ”κ°€λ‘œ, κ°œλ… μŠ€ν‚€λ§ˆλŠ” 데이터가 μ–΄λ–€ λ°μ΄ν„°λ² μ΄μŠ€μ— 배포될 것인지에 λŒ€ν•œ κ³ λ € 없이 μ„€κ³„λ˜λŠ” 것이 λŒ€λΆ€λΆ„μ΄λΌ νŠΉμ • μ†μ„±μ˜ 도메인을 "μ •μˆ˜", "λ¬Έμžμ—΄" 이런 μ‹μœΌλ‘œλ§Œ λ‚˜νƒ€λ‚Έλ‹€. λ°˜λ©΄μ— 물리적 μŠ€ν‚€λ§ˆμ—μ„œλŠ” ν…Œμ΄λΈ”μ˜ ν•„λ“œ 도메인을 νŠΉμ • λ°μ΄ν„°λ² μ΄μŠ€μ— λ§žλŠ” νƒ€μž…μΈ "int", "nvarchar(20)" λ“±μœΌλ‘œ λ‚˜νƒ€λ‚Έλ‹€.

 

    - 검색 속도λ₯Ό 높이기 μœ„ν•œ 보쑰 자료ꡬ쑰인 인덱슀λ₯Ό κ²°μ •ν•˜λŠ” 것 λ˜ν•œ 물리적 μŠ€ν‚€λ§ˆ 섀계 λ‹¨κ³„μ—μ„œ ν•΄μ•Ό ν•œλ‹€.

 

3. μ™ΈλΆ€ μŠ€ν‚€λ§ˆ

    - 각 μ‚¬μš©μž μˆ˜μ€€μ—μ„œ 데이터 접근을 κ°œλ³„ν™”ν•˜κΈ° μœ„ν•œ κΆŒν•œμ„ λΆ€μ—¬ν•œλ‹€.

    - λ™μΌν•œ 물리적 μŠ€ν‚€λ§ˆλ₯Ό 기반으둜 μ—¬λŸ¬ 개의 μ™ΈλΆ€ μŠ€ν‚€λ§ˆλ₯Ό λ§Œλ“€λ©΄, μ‚¬μš©μžλ³„λ‘œ μ„œλ‘œ λ‹€λ₯Έ μ ‘κ·Ό κΆŒν•œμ„ μ„€μ •ν•˜μ—¬ νŠΉμ • μ‚¬μš©μžλŠ” μžμ‹ μ—κ²Œ λ§žλŠ” λ°μ΄ν„°λ§Œμ„ μ‚¬μš©ν•  수 μžˆκ²Œλ” ν•  수 μžˆλ‹€.

    - μ™ΈλΆ€ μŠ€ν‚€λ§ˆλŠ” μ—¬λŸ¬ 개의 뷰둜 λ§Œλ“€μ–΄μ§€λŠ” 것이 μΌλ°˜μ μ΄λ‹€.

    - μ™ΈλΆ€ μŠ€ν‚€λ§ˆλ₯Ό λ§Œλ“€λ©΄ νŠΉμ • μ‚¬μš©μž 그룹에 ν•„μš”ν•œ 데이터가 쀑볡 μ €μž₯λ˜λŠ” 것을 막을 수 있고, 데이터 λΆˆμΌμΉ˜μ„±μ„ 없앨 수 μžˆλ‹€.

 

 

 

728x90