λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

였라클 μƒ˜ν”Œ ν…Œμ΄λΈ” 및 데이터 λ§Œλ“€κΈ° (슀크립트 제곡)

by 5566 2023. 8. 12.

1. μ„œλ‘ 

였라클 λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ§Žμ€ 쑰직 및 κΈ°μ—…μ—μ„œ 데이터 관리와 처리λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λŠ” κ°•λ ₯ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μƒμ„±ν•˜λŠ” 과정이 ν•„μš”ν•œλ°, μ˜€λΌν΄μ—μ„œλŠ” μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ œκ³΅ν•˜μ—¬ μ‚¬μš©μžλ“€μ΄ ν…ŒμŠ€νŠΈλ‚˜ ν•™μŠ΅ λͺ©μ μœΌλ‘œ ν™œμš©ν•  수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€.

이 κΈ€μ—μ„œλŠ” 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ” 및 데이터λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄ μ‚¬μš©ν•  수 μžˆλŠ” 슀크립트λ₯Ό μ œκ³΅ν•˜κ² μŠ΅λ‹ˆλ‹€. 슀크립트λ₯Ό 톡해 λ°μ΄ν„°λ² μ΄μŠ€μ— μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μƒμ„±ν•˜λ©΄, ν•΄λ‹Ή 데이터λ₯Ό ν™œμš©ν•˜μ—¬ λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 있게 λ©λ‹ˆλ‹€. λ”°λΌμ„œ 이 κΈ€μ—μ„œλŠ” ν•΄λ‹Ή 슀크립트의 μ‚¬μš©λ²•κ³Ό ν™œμš© λ°©μ•ˆμ— λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

μ΄μ œλΆ€ν„° μˆœμ„œλŒ€λ‘œ 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ” 및 데이터λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ 슀크립트λ₯Ό μ„€λͺ…ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

2. 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό λ°μ΄ν„°λž€?

μ˜€λΌν΄μ€ μ‚¬μš©μžλ“€μ΄ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 효율적으둜 ν•™μŠ΅ν•˜κ³  ν…ŒμŠ€νŠΈν•  수 μžˆλ„λ‘ μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μƒ˜ν”Œ ν…Œμ΄λΈ”μ€ ν…Œμ΄λΈ” ꡬ쑰와 λ”λΆˆμ–΄ 일뢀 데이터λ₯Ό ν¬ν•¨ν•˜κ³  있으며, μ‚¬μš©μžλŠ” 이λ₯Ό ν† λŒ€λ‘œ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”μ—λŠ” λ‹€μ–‘ν•œ μ’…λ₯˜μ˜ 데이터가 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 고객, μ œν’ˆ, μ£Όλ¬Έ, 직원 λ“± λ‹€μ–‘ν•œ ν…Œμ΄λΈ”μ΄ 있으며, 이듀 κ°„μ˜ 관계λ₯Ό 보여주기 μœ„ν•΄ μ™Έλž˜ ν‚€ μ œμ•½ 쑰건도 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ ¨ μž‘μ—…μ„ ν…ŒμŠ€νŠΈν•˜κ±°λ‚˜ ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό ν™œμš©ν•˜λ©΄ μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ§€ μ•Šκ³ λ„ μ‹€μ œ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό κ°€μ •ν•˜μ—¬ μž‘μ—…ν•΄ λ³Ό 수 μžˆμ–΄ ν…ŒμŠ€νŠΈ 및 ν•™μŠ΅μ˜ νš¨μœ¨μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터가 ν¬ν•¨λ˜μ–΄ 있기 λ•Œλ¬Έμ— μƒˆλ‘œμš΄ ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜κ³  데이터λ₯Ό μ‚½μž…ν•˜λŠ” 과정을 κ±°μΉ˜μ§€ μ•Šμ•„λ„ λ©λ‹ˆλ‹€.

λ‹€μŒ μž₯μ—μ„œλŠ” 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ” 및 데이터λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ μŠ€ν¬λ¦½νŠΈμ— λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

3. 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ” 및 데이터 λ§Œλ“€κΈ° 슀크립트 제곡

μ˜€λΌν΄μ€ ν…ŒμŠ€νŠΈ 및 ν•™μŠ΅ λͺ©μ μœΌλ‘œ μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ 슀크립트λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ 슀크립트λ₯Ό μ‚¬μš©ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ— μƒ˜ν”Œ ν…Œμ΄λΈ”μ„ λ§Œλ“€κ³  초기 데이터λ₯Ό μ‚½μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‚¬μš©μžλ“€μ€ μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ§€ μ•Šκ³ λ„ ν…ŒμŠ€νŠΈλ‚˜ ν•™μŠ΅μ„ 진행할 수 μžˆμŠ΅λ‹ˆλ‹€.

μ•„λž˜λŠ” μ˜€λΌν΄μ—μ„œ μ œκ³΅ν•˜λŠ” μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ μŠ€ν¬λ¦½νŠΈμž…λ‹ˆλ‹€:

-- HR μƒ˜ν”Œ μŠ€ν‚€λ§ˆ 생성
@ORACLE_HOME/demo/schemas/hr/main/hr_cre.sql

-- HR μƒ˜ν”Œ 데이터 μ‚½μž…
@ORACLE_HOME/demo/schemas/hr/seed/hr_popul.sql

μœ„μ˜ 슀크립트λ₯Ό μ‹€ν–‰ν•˜λ©΄ HR μƒ˜ν”Œ μŠ€ν‚€λ§ˆλ₯Ό μƒμ„±ν•˜κ³ , ν•΄λ‹Ή μŠ€ν‚€λ§ˆμ— λŒ€ν•œ 초기 데이터λ₯Ό μ‚½μž…ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μŠ€ν¬λ¦½νŠΈμ—μ„œ ORACLE_HOME은 였라클 μ„€μΉ˜ 디렉토리λ₯Ό λ‚˜νƒ€λ‚΄λ©°, ν•΄λ‹Ή κ²½λ‘œμ—μ„œ 슀크립트 νŒŒμΌμ„ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.

슀크립트λ₯Ό μ‹€ν–‰ν•˜κΈ° 전에, SQL*Plus λ˜λŠ” SQL Developer와 같은 였라클 ν΄λΌμ΄μ–ΈνŠΈ 도ꡬλ₯Ό μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ— λ‘œκ·ΈμΈν•΄μ•Ό ν•©λ‹ˆλ‹€. λ˜ν•œ κ΄€λ¦¬μž κΆŒν•œμ„ 가진 μ‚¬μš©μžλ‘œ λ‘œκ·ΈμΈν•΄μ•Ό 슀크립트λ₯Ό μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 슀크립트λ₯Ό μ‹€ν–‰ν•  λ•ŒλŠ” μœ„μ˜ 슀크립트λ₯Ό μˆœμ„œλŒ€λ‘œ μ‹€ν–‰ν•΄μ•Ό μ •μƒμ μœΌλ‘œ μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

이제 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ 슀크립트λ₯Ό μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό ν…ŒμŠ€νŠΈν•˜κ±°λ‚˜ ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ μž₯μ—μ„œλŠ” μƒ˜ν”Œ 데이터λ₯Ό ν™œμš©ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

4. 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ” 및 데이터 ν™œμš© λ°©μ•ˆ

였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό λ°μ΄ν„°λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ ν•™μŠ΅ν•˜κ±°λ‚˜ ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•œ ν›Œλ₯­ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. μ΄λŸ¬ν•œ μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό ν™œμš©ν•˜μ—¬ λ‹€μ–‘ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜μ—μ„œλŠ” λͺ‡ 가지 λŒ€ν‘œμ μΈ ν™œμš© λ°©μ•ˆμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

1. 데이터 λͺ¨λΈλ§ 및 μŠ€ν‚€λ§ˆ 섀계

μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터 λͺ¨λΈλ§ 및 μŠ€ν‚€λ§ˆ 섀계λ₯Ό μ—°μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. ν…Œμ΄λΈ” κ°„μ˜ 관계λ₯Ό μ•Œμ•„λ³΄κ³ , μ™Έλž˜ ν‚€λ₯Ό μ„€μ •ν•˜κ³ , μ œμ•½ 쑰건을 μ„€μ •ν•˜λŠ” λ“± μ‹€μ œ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό κ°€μ •ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μŠ€ν‚€λ§ˆλ₯Ό 섀계할 수 μžˆμŠ΅λ‹ˆλ‹€.

2. SQL λ¬Έ μž‘μ„± 및 쿼리 μ‹€ν–‰

μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ SQL λ¬Έ μž‘μ„± 및 쿼리 싀행을 μ—°μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μ–‘ν•œ 필터링, 쑰인, κ·Έλ£Ήν™”, μ •λ ¬ λ“±μ˜ μž‘μ—…μ„ μ‹€μ œ 데이터λ₯Ό μ΄μš©ν•˜μ—¬ μˆ˜ν–‰ν•΄λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— μ΅μˆ™ν•΄μ§€κ³  SQL λ¬Έ μž‘μ„± λŠ₯λ ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

3. 데이터 μ‘°μž‘ 및 νŠΈλžœμž­μ…˜ 관리

μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°μ˜ μΆ”κ°€, μˆ˜μ •, μ‚­μ œ λ“±μ˜ 데이터 μ‘°μž‘ μž‘μ—…μ„ μ—°μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, νŠΈλžœμž­μ…˜ 관리에 λŒ€ν•œ 이해λ₯Ό μœ„ν•΄ λ°μ΄ν„°μ˜ 일관성과 격리성을 ν™•μΈν•˜κ³  볡ꡬ κΈ°λŠ₯을 ν…ŒμŠ€νŠΈν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. 데이터 뢄석 및 λ³΄κ³ μ„œ μž‘μ„±

μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터 뢄석 및 λ³΄κ³ μ„œ μž‘μ„±μ„ μ—°μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‹€μ–‘ν•œ 집계 ν•¨μˆ˜, κ·Έλ£Ήν™”, μ„œλΈŒμΏΌλ¦¬ 등을 ν™œμš©ν•˜μ—¬ 데이터λ₯Ό λΆ„μ„ν•˜κ³  μš”μ•½ν•  수 있으며, κ²°κ³Όλ₯Ό μ‹œκ°ν™”ν•˜μ—¬ λ³΄κ³ μ„œλ₯Ό μž‘μ„±ν•˜λŠ” κ²½ν—˜μ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. μ„±λŠ₯ νŠœλ‹ 및 인덱슀 관리

μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„±λŠ₯ νŠœλ‹ 및 인덱슀 관리 μž‘μ—…μ„ μ—°μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 쿼리 μ‹€ν–‰ κ³„νšμ„ ν™•μΈν•˜κ³  인덱슀λ₯Ό μƒμ„±ν•˜κ±°λ‚˜ μ‚­μ œν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μ„±λŠ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

μœ„μ˜ 방법듀은 였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ 효율적으둜 ν•™μŠ΅ν•˜κ±°λ‚˜ ν…ŒμŠ€νŠΈν•  수 μžˆλŠ” λͺ‡ 가지 λŒ€ν‘œμ μΈ λ°©μ•ˆμž…λ‹ˆλ‹€. 이λ₯Ό ν† λŒ€λ‘œ μžμ‹ μ—κ²Œ ν•„μš”ν•œ μž‘μ—…μ— 맞게 ν™œμš©ν•΄ λ³΄μ„Έμš”.

5. κ²°λ‘ 

였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό λ°μ΄ν„°λŠ” λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ ν•™μŠ΅ν•˜κ±°λ‚˜ ν…ŒμŠ€νŠΈν•˜λŠ” 데 μœ μš©ν•œ λ„κ΅¬μž…λ‹ˆλ‹€. 이λ₯Ό ν™œμš©ν•˜μ—¬ 데이터 λͺ¨λΈλ§, SQL λ¬Έ μž‘μ„±, 데이터 μ‘°μž‘, 데이터 뢄석 및 λ³΄κ³ μ„œ μž‘μ„±, μ„±λŠ₯ νŠœλ‹ 및 인덱슀 관리 λ“± λ‹€μ–‘ν•œ μž‘μ—…μ„ μ—°μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό ν™œμš©ν•˜λ©΄ μ‹€μ œ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•˜μ§€ μ•Šκ³ λ„ 효과적으둜 ν•™μŠ΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, λ‹€μ–‘ν•œ μ‹œλ‚˜λ¦¬μ˜€λ₯Ό κ°€μ •ν•˜μ—¬ μ‹€μ œ 상황을 λͺ¨λ°©ν•˜κ³ , λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— λŒ€ν•œ 이해와 λŠ₯λ ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

ν–₯ν›„ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•Œ, μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό ν™œμš©ν•˜μ—¬ κ·Έ 효과적인 ν™œμš© λ°©μ•ˆμ„ 읡힐 수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μ‹€μ œ 데이터λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³ λ„ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ ν…ŒμŠ€νŠΈν•  수 μžˆμ–΄ μ•ˆμ „ν•˜κ³  효율적인 μž‘μ—… ν™˜κ²½μ„ ꡬ좕할 수 μžˆμŠ΅λ‹ˆλ‹€.

였라클 μƒ˜ν”Œ ν…Œμ΄λΈ”κ³Ό 데이터λ₯Ό 적극적으둜 ν™œμš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ— λŒ€ν•œ 이해와 λŠ₯λ ₯을 κΈ°λ₯΄μ„Έμš”. κ·Έλ ‡κ²Œ ν•¨μœΌλ‘œμ¨ λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ ¨ μŠ€ν‚¬μ„ ν–₯μƒμ‹œν‚€κ³ , 효율적이고 μ•ˆμ •μ μΈ λ°μ΄ν„°λ² μ΄μŠ€ μž‘μ—…μ„ μˆ˜ν–‰ν•  수 있게 될 κ²ƒμž…λ‹ˆλ‹€.

λŒ“κΈ€