λ°˜μ‘ν˜•

κ΅­λ―ΌλŒ€ν•™κ΅μ—μ„œ "였라클둜 λ°°μš°λŠ” λ°μ΄ν„°λ² μ΄μŠ€ 개둠과 μ‹€μŠ΅(2판)" 을 μ΄μš©ν•œ
μ‹ μΈμˆ˜ κ΅μˆ˜λ‹˜μ˜ κ°•μ˜ κ΅μ•ˆμ„ μ΄μš©ν•˜μ—¬ μˆ˜μ—… λ‚΄μš©μ„ μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€

 

1. λ°μ΄ν„°λ² μ΄μŠ€μ™€ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ

 

1. 데이터, 정보, 지식

 

데이터 : κ΄€μ°°μ˜ 결과둜 λ‚˜νƒ€λ‚œ μ •λŸ‰μ  ν˜Ήμ€ 정상적인 μ‹€μ œ κ°’

 

정보 : 데이터에 의미λ₯Ό λΆ€μ—¬ν•œ 것

 

지식 : μ‚¬λ¬Όμ΄λ‚˜ ν˜„μƒμ— λŒ€ν•œ 이해

 

2. μΌμƒμƒν™œμ˜ λ°μ΄ν„°λ² μ΄μŠ€

 

λ°μ΄ν„°λ² μ΄μŠ€ : 쑰직에 ν•„μš”ν•œ 정보λ₯Ό μ–»κΈ° μœ„ν•΄ λ…Όλ¦¬μ μœΌλ‘œ μ—°κ΄€λœ 데이터λ₯Ό λͺ¨μ•„ ꡬ쑰적으둜 톡합해 놓은 것

 

λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ€ λ°μ΄ν„°μ˜ 검색과 λ³€κ²½ μž‘μ—…μ„ 주둜 μˆ˜ν–‰ν•¨

β‡’ λ³€κ²½μ΄λž€ μ‹œκ°„μ— 따라 λ³€ν•˜λŠ” 데이터 값을 λ°μ΄ν„°λ² μ΄μŠ€μ— λ°˜μ˜ν•˜κΈ° μœ„ν•΄ μˆ˜ν–‰ν•˜λŠ” μ‚½μž…, μ‚­μ œ, μˆ˜μ • λ“±μ˜ μž‘μ—…μ„ 말함

 

 

  1. ν†΅ν•©λœ 데이터(integrated data) : 데이터λ₯Ό ν†΅ν•©ν•˜λŠ” κ°œλ…μœΌλ‘œ, 각자 μ‚¬μš©ν•˜λ˜ λ°μ΄ν„°μ˜ 쀑볡을 μ΅œμ†Œν™”ν•˜μ—¬ μ€‘λ³΅μœΌλ‘œ μΈν•œ 데이터 뢈일치 ν˜„μƒμ„ 제거
  2. μ €μž₯된 데이터(stored data) : λ¬Έμ„œλ‘œ λ³΄κ΄€λœ 데이터가 μ•„λ‹ˆλΌ λ””μŠ€ν¬, ν…Œμ΄ν”„ 같은 컴퓨터 μ €μž₯μž₯μΉ˜μ— μ €μž₯된 데이터λ₯Ό 의미

  3. 운영 데이터(operational data) : 쑰직의 λͺ©μ μ„ μœ„ν•΄ μ‚¬μš©λ˜λŠ” 데이터λ₯Ό μ˜λ―Έν•œλ‹€. 즉 업무λ₯Ό μœ„ν•œ 검색을 ν•  λͺ©μ μœΌλ‘œ μ €μž₯된 데이터

  4. 곡용 데이터(shared data) : ν•œ μ‚¬λžŒ λ˜λŠ” ν•œ 업무λ₯Ό μœ„ν•΄ μ‚¬μš©λ˜λŠ” 데이터가 μ•„λ‹ˆλΌ κ³΅λ™μœΌλ‘œ μ‚¬μš©λ˜λŠ” 데이터λ₯Ό 의미
πŸ’‘ λ°μ΄ν„°λ² μ΄μŠ€λŠ” 운영 데이터λ₯Ό ν†΅ν•©ν•˜μ—¬ μ €μž₯ν•˜λ©° 곡용으둜 μ‚¬μš©

 

3. λ°μ΄ν„°λ² μ΄μŠ€μ˜ νŠΉμ§•

 

μ‹€μ‹œκ°„ μ ‘κ·Όμ„±(real time accessibility) : λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ‹€μ‹œκ°„μœΌλ‘œ μ„œλΉ„μŠ€, μ‚¬μš©μžκ°€ 데이터λ₯Ό μš”μ²­ν•˜λ©΄ λͺ‡ μ‹œκ°„μ΄λ‚˜ λͺ‡ 일 뒀에 κ²°κ³Όλ₯Ό μ „μ†‘ν•˜λŠ” 것이 μ•„λ‹ˆλΌ 수 초 내에 κ²°κ³Όλ₯Ό μ„œλΉ„μŠ€

 

계속적인 λ³€ν™”(continuous change) : λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 λ‚΄μš©μ€ μ–΄λŠ ν•œ μˆœκ°„μ˜ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄μ§€λ§Œ, 데이터 값은 μ‹œκ°„μ— 따라 항상 λ°”λ€œ

 

=> λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ‚½μž…(insert), μ‚­μ œ(delete), μˆ˜μ •(update) λ“±μ˜ μž‘μ—…μ„ ν†΅ν•˜μ—¬ 바뀐 데이터 값을 μ €μž₯

 

λ™μ‹œ 곡유(concurrent sharing) : λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ„œλ‘œ λ‹€λ₯Έ 업무 λ˜λŠ” μ—¬λŸ¬ μ‚¬μš©μžμ—κ²Œ λ™μ‹œμ— λ³‘ν–‰λ˜λ©°, λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Όν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ—¬λŸ¬ 개 μžˆλ‹€λŠ” 의미

 

λ‚΄μš©μ— λ”°λ₯Έ μ°Έμ‘°(reference by content) : λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯된 λ°μ΄ν„°λŠ” λ°μ΄ν„°μ˜ 물리적인 μœ„μΉ˜κ°€ μ•„λ‹ˆλΌ 데이터 값에 따라 μ°Έμ‘°

 

4. λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ ꡬ성

 

 

 

2. λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ λ°œμ „

 

정보 μ‹œμŠ€ν…œμ˜ λ°œμ „

 

1. 파일 μ‹œμŠ€ν…œ

 

  • 데이터λ₯Ό 파일 λ‹¨μœ„λ‘œ 파일 μ„œλ²„μ— μ €μž₯
    => 각 μ»΄ν“¨ν„°λŠ” LAN을 ν†΅ν•˜μ—¬ 파일 μ„œλ²„μ— μ—°κ²°λ˜μ–΄ 있고, 파일 μ„œλ²„μ— μ €μž₯된 데이터λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ 각 μ»΄ν“¨ν„°μ˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ μ—΄κΈ°/λ‹«κΈ°(open/close)λ₯Ό μš”
  • 각 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ λ…λ¦½μ μœΌλ‘œ νŒŒμΌμ„ 닀루기 λ•Œλ¬Έμ— 데이터가 쀑볡 μ €μž₯될 κ°€λŠ₯성이 있음

  • λ™μ‹œμ— νŒŒμΌμ„ 닀루기 λ•Œλ¬Έμ— λ°μ΄ν„°μ˜ 일관성이 훼손될 수 있음

2. λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ

 

 

  • DBMSλ₯Ό λ„μž…ν•˜μ—¬ 데이터λ₯Ό 톡합 κ΄€λ¦¬ν•˜λŠ” μ‹œμŠ€ν…œ

  • DBMSκ°€ μ„€μΉ˜λ˜μ–΄ 데이터λ₯Ό κ°€μ§„ μͺ½μ„ μ„œλ²„(server), μ™ΈλΆ€μ—μ„œ 데이터 μš”μ²­ν•˜λŠ” μͺ½μ„ ν΄λΌμ΄μ–ΈνŠΈ(client) 라고 함

  • DBMS μ„œλ²„κ°€ νŒŒμΌμ„ 닀루며 λ°μ΄ν„°μ˜ 일관성 μœ μ§€, 볡ꡬ, λ™μ‹œ μ ‘κ·Ό μ œμ–΄ λ“±μ˜ κΈ°λŠ₯을 μˆ˜ν–‰

  • λ°μ΄ν„°μ˜ 쀑볡을 쀄이고 데이터λ₯Ό ν‘œμ€€ν™”ν•˜λ©° 무결성을 μœ μ§€

3. μ›Ή λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ

 

 

  • λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ›Ή λΈŒλΌμš°μ €μ—μ„œ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ„œλΉ„μŠ€ν•˜λŠ” μ‹œμŠ€ν…œ

  • λΆˆνŠΉμ • λ‹€μˆ˜ 고객을 μƒλŒ€λ‘œ ν•˜λŠ” 온라인 μƒκ±°λž˜λ‚˜ 곡곡 민원 μ„œλΉ„μŠ€ 등에 μ‚¬μš©λ¨

4. λΆ„μ‚° λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ

 

  • μ—¬λŸ¬ 곳에 λΆ„μ‚°λœ DBMS μ„œλ²„λ₯Ό μ—°κ²°ν•˜μ—¬ μš΄μ˜ν•˜λŠ” μ‹œμŠ€ν…œ

  • λŒ€κ·œλͺ¨μ˜ μ‘μš© μ‹œμŠ€ν…œμ— μ‚¬μš©λ¨

 

3. 파일 μ‹œμŠ€ν…œκ³Ό DBMS

 

1. 데이터λ₯Ό μ €μž₯ν•˜λŠ” 방법

 

1. 데이터λ₯Ό ν”„λ‘œκ·Έλž¨ 내뢀에 μ €μž₯ν•˜λŠ” 방법

 

 

ν”„λ‘œκ·Έλž¨μ— 데이터 μ •μ˜μ™€ 데이터 값을 λͺ¨λ‘ ν¬ν•¨ν•˜λŠ” 방식

=> ꡬ쑰체λ₯Ό μ„ μ–Έν•˜κ³  main() ν”„λ‘œκ·Έλž¨μ—μ„œ ꡬ쑰체 λ°°μ—΄ λ³€μˆ˜μ— 데이터가 μ €μž₯됨

 

문제점 : μƒˆλ‘œμš΄ 데이터가 생길 λ•Œλ§ˆλ‹€ ν”„λ‘œκ·Έλž¨μ„ μˆ˜μ •ν•œ ν›„ λ‹€μ‹œ μ»΄νŒŒμΌν•΄μ•Ό 함
(데이터 ꡬ쑰 ν˜Ήμ€ 데이터 값이 λ°”λ€Œλ©΄ ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ μ»΄νŒŒμΌν•΄μ•Ό 함)

 

2. 파일 μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜λŠ” 방법

 

 

 

νŒŒμΌμ— 데이터 κ°’, ν”„λ‘œκ·Έλž¨μ— 데이터 μ •μ˜λ₯Ό ν¬ν•¨ν•˜λŠ” 방식

=> μƒˆλ‘œμš΄ 데이터가 μΆ”κ°€λ˜μ–΄λ„ ν”„λ‘œκ·Έλž¨μ„ μˆ˜μ •ν•  ν•„μš” μ—†μŒ

 

문제점 : 데이터 값이 λ°”λ€Œλ©΄ ν”„λ‘œκ·Έλž¨μ— 변경이 μ—†μ§€λ§Œ, 데이터 ꡬ쑰가 λ°”λ€Œλ©΄ ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ μ»΄νŒŒμΌν•΄μ•Ό 함

 

3. DBMSλ₯Ό μ‚¬μš©ν•˜λŠ” 방법

 

 

=> 데이터 μ •μ˜μ™€ 데이터 값을 DBMSκ°€ κ΄€λ¦¬ν•˜λŠ” 방식

(DBMSλŠ” 데이터 μ •μ˜, 데이터 λ³€κ²½ λ“±μ˜ μž‘μ—…μ„ ν•  수 μžˆλŠ” λ³„λ„μ˜ ν”„λ‘œκ·Έλž¨μ„ κ°–κ³  있음)

 

=> 데이터 κ΅¬μ‘°λŠ” DBMSκ°€ κ΄€λ¦¬ν•˜κ³ , 데이터 값은 λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯됨

 

=> 데이터 값이 λ°”λ€Œκ±°λ‚˜ 데이터 ꡬ쑰가 λ°”λ€Œμ–΄λ„ ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ μ»΄νŒŒμΌν•  ν•„μš” μ—†μŒ

 

2. 파일 μ‹œμŠ€ν…œκ³Ό DBMS의 비ꡐ

 

 

 

4. λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ˜ ꡬ성

 

1. λ°μ΄ν„°λ² μ΄μŠ€ μ–Έμ–΄

 

 

SQL

  • 데이터 μ •μ˜μ–΄ (DDL, Data Definition Language)

  • 데이터 μ‘°μž‘μ–΄ (DML, Data Manipulation Language)

  • 데이터 μ œμ–΄μ–΄ (DCL, Data Control Language)
μžμ„Έν•œ λ‚΄μš©μ€ λ‹€λ₯Έ Chapterμ—μ„œ λ‹€λ£° μ˜ˆμ •

 

2. λ°μ΄ν„°λ² μ΄μŠ€ μ‚¬μš©μž

 

1. 일반 μ‚¬μš©μž

 

ν”„λ‘œκ·Έλž˜λ¨Έκ°€ κ°œλ°œν•œ ν”„λ‘œκ·Έλž¨μ„ μ΄μš©ν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Όν•˜λŠ” 일반인

 

2. μ‘μš©ν”„λ‘œκ·Έλž˜λ¨Έ

 

일반 μ‚¬μš©μžκ°€ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“œλŠ” μ‚¬λžŒ

(일반 μ‚¬μš©μžλ₯Ό μœ„ν•œ μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ™€ 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μ‘μš© λ‘œμ§μ„ 개발)

 

3. SQL μ‚¬μš©μž

 

μ‘μš© ν”„λ‘œκ·Έλž¨μœΌλ‘œ κ΅¬ν˜„λ˜μ–΄ μžˆμ§€ μ•Šμ€ 업무λ₯Ό SQL을 μ‚¬μš©ν•˜μ—¬ 처리

(SQL을 μ‚¬μš©ν•˜μ—¬ 업무λ₯Ό μ²˜λ¦¬ν•˜λŠ” IT λΆ€μ„œμ˜ λ‹΄λ‹Ήμžλ₯Ό 생각해보면 됨)

 

4. λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μž(DBA, Database Administrator)

 

λ°μ΄ν„°λ² μ΄μŠ€ 운영 쑰직의 λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ„ μ΄κ΄„ν•˜λŠ” μ‚¬λžŒ

(데이터 섀계, κ΅¬ν˜„, μœ μ§€λ³΄μˆ˜μ˜ μ „ 과정을 λ‹΄λ‹Ή)

 

3. DBMS

 

 

4. 데이터 λͺ¨λΈ

 

 

  • 계측 데이터 λͺ¨λΈ(hierarchical data model)

    => 포인터 μ‚¬μš©

  • λ„€νŠΈμ›Œν¬ 데이터 λͺ¨λΈ(network data model)

    => 포인터 μ‚¬μš©

  • 관계 데이터 λͺ¨λΈ(relational data model) : κ°€μž₯ 많이 μ‚¬μš©λ¨

          => 속성 κ°’ μ‚¬μš©       

  • 객체 데이터 λͺ¨λΈ(object data model)

 

          => κ°μ²΄μ‹λ³„μž μ‚¬μš©


  • 객체-관계 데이터 λͺ¨λΈ(object-relational data model)

    => 관계 데이터 λͺ¨λΈκ³Ό 객체 데이터 λͺ¨λΈμ˜ μž₯점을 κ²°ν•©ν•œ λͺ¨λΈ

 

5. λ°μ΄ν„°λ² μ΄μŠ€μ˜ κ°œλ…μ  ꡬ쑰

 

 

 

  • μ™ΈλΆ€ μŠ€ν‚€λ§ˆ

    => 일반 μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ ‘κ·Όν•˜λŠ” 계측, 전체 λ°μ΄ν„°λ² μ΄μŠ€ μ€‘μ—μ„œ ν•˜λ‚˜μ˜ 논리적인 뢀뢄을 의미

    => μ—¬λŸ¬ 개의 μ™ΈλΆ€ μŠ€ν‚€λ§ˆ(external schema)κ°€ μžˆμ„ 수 있음

    => μ„œλΈŒ μŠ€ν‚€λ§ˆ(sub schema)라고도 ν•˜λ©°, λ·°(view)의 κ°œλ…μž„

  • κ°œλ… μŠ€ν‚€λ§ˆ (= λ°μ΄ν„°λ² μ΄μŠ€ 1개)

    => 전체 λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜λ₯Ό 의미

    => 톡합 μ‘°μ§λ³„λ‘œ ν•˜λ‚˜λ§Œ μ‘΄μž¬ν•˜λ©° DBAκ°€ 관리함

    => ν•˜λ‚˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€μ—λŠ” ν•˜λ‚˜μ˜ κ°œλ… μŠ€ν‚€λ§ˆ(conceptual schema)κ°€ 있음

  • λ‚΄λΆ€ μŠ€ν‚€λ§ˆ (κ°œλ… μŠ€ν‚€λ§ˆλ₯Ό μ°Έκ³ ν•˜μ—¬ DB의 λ‚΄μš©μ„ ν•˜λ‚˜μ”© μ „λΆ€ μ •μ˜ν•¨ ex. 데이터 μš©λŸ‰ λ“±)

    => 물리적 μ €μž₯ μž₯μΉ˜μ— λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ‹€μ œλ‘œ μ €μž₯λ˜λŠ” λ°©λ²•μ˜ ν‘œν˜„

    => λ‚΄λΆ€ μŠ€ν‚€λ§ˆ(internal schema)λŠ” ν•˜λ‚˜

    => 인덱슀, 데이터 λ ˆμ½”λ“œμ˜ 배치 방법, 데이터 μ••μΆ• 등에 κ΄€ν•œ 사항이 포함됨

  • μ™ΈλΆ€/κ°œλ… μŠ€ν‚€λ§ˆ

    => μ‚¬μš©μžμ˜ μ™ΈλΆ€ μŠ€ν‚€λ§ˆμ™€ κ°œλ… μŠ€ν‚€λ§ˆ κ°„μ˜ λ§€ν•‘(사상)

    => μ™ΈλΆ€ μŠ€ν‚€λ§ˆμ˜ 데이터가 κ°œλ… μŠ€ν‚€λ§ˆμ˜ μ–΄λŠ 뢀뢄에 ν•΄λ‹Ήλ˜λŠ”μ§€ λŒ€μ‘μ‹œν‚΄

  • κ°œλ…/λ‚΄λΆ€ μŠ€ν‚€λ§ˆ

    => κ°œλ… μŠ€ν‚€λ§ˆμ˜ 데이터가 λ‚΄λΆ€ μŠ€ν‚€λ§ˆμ˜ 물리적 μž₯치 어디에 μ–΄λ–€ λ°©λ²•μœΌλ‘œ μ €μž₯λ˜λŠ”μ§€ λŒ€μ‘ μ‹œν‚΄

 

 

  • 데이터 독립성

    • 논리적 데이터 독립성(logic data independence)

      => μ™ΈλΆ€ 단계(μ™ΈλΆ€ μŠ€ν‚€λ§ˆ)와 κ°œλ… 단계(κ°œλ… μŠ€ν‚€λ§ˆ) μ‚¬μ΄μ˜ 독립성

      => κ°œλ… μŠ€ν‚€λ§ˆκ°€ λ³€κ²½λ˜μ–΄λ„ μ™ΈλΆ€ μŠ€ν‚€λ§ˆμ—λŠ” 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šλ„λ‘ 지원

      => 논리적 ꡬ쑰가 λ³€κ²½λ˜μ–΄λ„ μ‘μš© ν”„λ‘œκ·Έλž¨μ—λŠ” 영ν–₯이 없도둝 ν•˜λŠ” κ°œλ…

      => κ°œλ… μŠ€ν‚€λ§ˆμ˜ ν…Œμ΄λΈ”μ„ μƒμ„±ν•˜κ±°λ‚˜ λ³€κ²½ν•˜μ—¬λ„ μ™ΈλΆ€ μŠ€ν‚€λ§ˆκ°€ 직접 λ‹€λ£¨λŠ” ν…Œμ΄λΈ”μ΄ μ•„λ‹ˆλ©΄ 영ν–₯이 μ—†μŒ

    • 물리적 데이터 독립성(physical data independece)

      => κ°œλ… 단계(κ°œλ… μŠ€ν‚€λ§ˆ)와 λ‚΄λΆ€ 단계(λ‚΄λΆ€ μŠ€ν‚€λ§ˆ) μ‚¬μ΄μ˜ 독립성

      => μ €μž₯μž₯치 ꡬ쑰 λ³€κ²½κ³Ό 같이 λ‚΄λΆ€ μŠ€ν‚€λ§ˆκ°€ λ³€κ²½λ˜μ–΄λ„ κ°œλ… μŠ€ν‚€λ§ˆμ— 영ν–₯을 λ―ΈμΉ˜μ§€ μ•Šλ„λ‘ 지원

      => μ„±λŠ₯ κ°œμ„ μ„ μœ„ν•˜μ—¬ 물리적 μ €μž₯ μž₯치λ₯Ό μž¬κ΅¬μ„±ν•  경우 κ°œλ… μŠ€ν‚€λ§ˆ, μ‘μš© ν”„λ‘œκ·Έλž¨ 같은 μ™ΈλΆ€ μŠ€ν‚€λ§ˆμ— 영ν–₯X

      => 물리적 독립성은 논리적 독립성보닀 κ΅¬ν˜„ν•˜κΈ° 쉬움
λ°˜μ‘ν˜•