βš™οΈ Engineer Information Processing_

[정보 처리 기사] 제 3κ³Όλͺ© - λ°μ΄ν„°λ² μ΄μŠ€ ꡬ좕

CodeLoge 2025. 5. 15. 21:52

πŸ‘‰ λ°μ΄ν„°λ² μ΄μŠ€ ꡬ좕 2μž₯

 

βœ… 데이터 사전 (System Catalog)

βœ”οΈ μ‹œμŠ€ν…œ λ‚΄λΆ€μ—μ„œ λͺ¨λ“  데이터 객체의 μ •μ˜μ™€ λͺ…μ„Έλ₯Ό κ΄€λ¦¬ν•˜λŠ” μ‹œμŠ€ν…œ ν…Œμ΄λΈ”

 

• λ©”타데이터 (Metadata) μ €μž₯μ†Œ

• SQL둜 λ‚΄μš© 검색 κ°€λŠ₯

• μ‹œμŠ€ν…œμ΄ μžλ™ 생성/μœ μ§€ → μΌλ°˜ μ‚¬μš©μžλŠ” 직접 μˆ˜μ • λΆˆκ°€

 λ°μ΄ν„° 디렉토리 (Data Directory) : 데이터 사전에 μ ‘κ·Όν•˜κΈ° μœ„ν•œ μœ„μΉ˜ 정보 포함

 

βœ… 인덱슀 (INDEX)

βœ”οΈ λΉ λ₯Έ 쑰회 및 검색을 μœ„ν•œ λ³„λ„μ˜ μˆœμ„œ 데이터 ꡬ쑰

 

• ν…Œμ΄λΈ” μ‚­μ œ μ‹œ ν•¨κ»˜ μ‚­μ œλ¨

• μ‚¬μš©μžκ°€ 직접 생성/μ‚­μ œ κ°€λŠ₯

• CREATE INDEX, DROP INDEX μ‚¬μš©

 

• μ’…λ₯˜ :

- ν΄λŸ¬μŠ€ν„° (Clustered)

- λ„Œν΄λŸ¬μŠ€ν„° (Non-clustered)

- 트리 기반 / ν•¨μˆ˜ 기반

- λΉ„νŠΈλ§΅ / λΉ„νŠΈλ§΅ 쑰인

- 도메인 인덱슀

 

βœ… νŠΈλžœμž­μ…˜ (Transaction)

βœ”οΈ λ°μ΄ν„°λ² μ΄μŠ€ μƒνƒœλ₯Ό λ³€ν™”μ‹œν‚€λŠ” 논리적 μž‘μ—… λ‹¨μœ„

• COMMIT : 정상 μ’…λ£Œ ν›„ λ³€κ²½ λ‚΄μš© 영ꡬ μ €μž₯

• ROLLBACK : 였λ₯˜ λ°œμƒ μ‹œ 이전 μƒνƒœλ‘œ 볡ꡬ

 

• Atomicity (μ›μžμ„±) : μ „λΆ€ μˆ˜ν–‰ λ˜λŠ” μ „λΆ€ λ¬΄μ‹œ

• Consistency (일관성) : μ „/ν›„ μƒνƒœ 일관성 μœ μ§€

• Isolation (독립성) : λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ κ°„μ„­ X

• Durability (μ˜μ†μ„±) : μ™„λ£Œλœ κ²°κ³ΌλŠ” 영ꡬ 보쑴

 

βœ… λ·° (View)

βœ”οΈ κΈ°λ³Έ ν…Œμ΄λΈ”μ— κΈ°λ°˜ν•œ 가상 ν…Œμ΄λΈ” (논리적 쑴재, μ‹€μ œ 데이터 X)

 

• μ‚­μ œ μ‹œ κ΄€λ ¨ 뷰도 ν•¨κ»˜ μ‚­μ œ

• μž₯점 : λ³΄μ•ˆ/데이터 독립성/관리 용이

• λ‹¨μ  : 인덱슀 λΆˆκ°€, ALTER, INSERT, DELETE, UPDATE μ œμ•½

 

βœ… λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€

βœ”οΈ λ…Όλ¦¬μ μœΌλ‘œλŠ” ν•˜λ‚˜μ§€λ§Œ 물리적으둜 μ—¬λŸ¬ 컴퓨터에 λΆ„μ‚°λœ DB

 

• κ΅¬μ„± : λΆ„μ‚° 처리기 / DB / 톡신 λ„€νŠΈμ›Œν¬

 

• νˆ¬λͺ…μ„± 제곡 :
- μœ„μΉ˜ (Location)
- 쀑볡 (Replication)
- 병행 (Concurrency)
- λΆ„ν•  (Division)
- μž₯μ•  (Failure)

 

→ μ‚¬μš©μžλŠ” DBκ°€ λΆ„μ‚°λ˜μ—ˆλŠ”μ§€ 인식할 ν•„μš” μ—†μŒ

 

βœ… λ‘œν‚Ή λ‹¨μœ„ (Locking)

βœ”οΈ νŠΈλžœμž­μ…˜ κ°„ 병행 μ œμ–΄λ₯Ό μœ„ν•œ 데이터 잠금 기법

 

• λŒ€μƒ : DB / 파일 / λ ˆμ½”λ“œ

• λ‘œν‚Ή λ‹¨μœ„κ°€ μž‘μ„μˆ˜λ‘ 병행성↑ / μ˜€λ²„ν—€λ“œ↑

 

• λ³‘ν–‰μ œμ–΄ 기법 :

- λ‘œν‚Ή 기법

- 낙관적 검증 (Optimistic)

- νƒ€μž„μŠ€νƒ¬ν”„ 기법

- 닀쀑버전 λ™μ‹œμ„± μ œμ–΄ (MVCC)

 

βœ… SQL (Structured Query Language) λΆ„λ₯˜

 

πŸ’‘

1️⃣ DDL (Data Definition Language)  λ°μ΄ν„° ꡬ쑰 μ •μ˜ 및 μˆ˜μ •

• CREATE : ν…Œμ΄λΈ”, λ·°, 인덱슀, 도메인, μŠ€ν‚€λ§ˆ 생성

• ALTER : ν…Œμ΄λΈ” ꡬ쑰 λ³€κ²½ (컬럼 μΆ”κ°€, 이름 λ³€κ²½ λ“±)

• DROP : ν…Œμ΄λΈ”, λ·°, 인덱슀 λ“± 제거

 

• μ˜΅μ…˜ ν‚€μ›Œλ“œ :

- CASCADE : μ°Έμ‘°ν•˜κ³  μžˆλŠ” λͺ¨λ“  κ°œμ²΄λ„ ν•¨κ»˜ μ‚­μ œ

- RESTRICT : λ‹€λ₯Έ κ°œμ²΄κ°€ μ°Έμ‘° 쀑일 경우 μ‚­μ œ μ·¨μ†Œ

 

πŸ’‘

2️⃣ DML (Data Manipulation Language)  λ°μ΄ν„° μ‚½μž…, μˆ˜μ •, μ‚­μ œ, 쑰회 λ“± μ‘°μž‘

• SELECT : 데이터 검색

• INSERT : μƒˆλ‘œμš΄ νŠœν”Œ(ν–‰) μ‚½μž…

• UPDATE : κΈ°μ‘΄ 데이터 μˆ˜μ •

• DELETE : νŠΉμ • 쑰건에 λ§žλŠ” 데이터 μ‚­μ œ

 

• νŠΉμˆ˜ 문법 μ˜ˆμ‹œ:

- IN / BETWEEN / LIKE / IS NULL / NOT

- ORDER BY : 기본은 ASC(μ˜€λ¦„μ°¨μˆœ), DESC μ‚¬μš© μ‹œ λ‚΄λ¦Όμ°¨μˆœ

 

πŸ’‘

3️⃣ DCL (Data Control Language) 데이터 μ ‘κ·Ό μ œμ–΄, λ³΄μ•ˆ 및 볡ꡬ 관리

• GRANT : μ‚¬μš©μžμ—κ²Œ κΆŒν•œ λΆ€μ—¬ → GRANT κΆŒν•œ ON 개체 TO μ‚¬μš©μž [WITH GRANT OPTION]

• REVOKE : μ‚¬μš©μž κΆŒν•œ 회수 → REVOKE [GRANT OPTION FOR] κΆŒν•œ ON 개체 FROM μ‚¬μš©μž

• COMMIT : λͺ¨λ“  μž‘μ—…μ„ 영ꡬ μ €μž₯

• ROLLBACK : μž‘μ—…μ„ μ·¨μ†Œν•˜κ³  이전 μƒνƒœλ‘œ 볡ꡬ

• SAVEPOINT : λ‘€λ°±ν•  쀑간 지점 μ§€μ •

 

βœ… 데이터 회볡 기법

βœ”οΈ νŠΈλžœμž­μ…˜ μ‹€νŒ¨/μ‹œμŠ€ν…œ μž₯μ•  μ‹œ 데이터 볡ꡬλ₯Ό μœ„ν•œ μ „λž΅

 

• μ¦‰μ‹œ κ°±μ‹  (Immediate Update) → μˆ˜ν–‰ μ¦‰μ‹œ DB 반영, Undo + Redo ν•„μš”

• μ§€μ—° κ°±μ‹  (Deferred Update) → λ‘œκ·Έμ— 기둝 ν›„ 일정 μ‹œμ  반영, Redo만 ν•„μš”

• κ²€μ‚¬ μ‹œμ  기법 (Checkpoint) → 쀑간 μ €μž₯ 지점 μ„€μ •, ν•΄λ‹Ή μ‹œμ λΆ€ν„° 볡ꡬ

• 그림자 νŽ˜μ΄μ§• (ShadowPaging) → 둜그 λ―Έμ‚¬μš©, νŽ˜μ΄μ§€ λ³΅μ‚¬λ³ΈμœΌλ‘œ 볡ꡬ