Week 1 - 데이터베이스 개요

1. 내용 요약

  • 주요 내용:
      1. 데이터베이스 개요 및 구조
      1. 관계형 데이터베이스
      1. 질의어(SQL)
      1. 데이터베이스 설계(ER 다이어그램)
      1. 데이터베이스 프로그래밍

2. 데이터베이스 개요

2.1 데이터베이스의 정의

  • Database란: 관련있는 데이터의 집합으로 ‘실세계의 일부분’을 표현한 것. 의미를 가지면서 기록될 수 있는 사실들의 모임.
  • 현대 사회와 데이터베이스: 은행, 호텔 예약, 도서관 카탈로그, 온라인 쇼핑, 수강신청 등 다양한 분야에서 데이터베이스가 사용됨.

2.2 데이터베이스의 발전 과정

  • 1970~1990: 관계형 데이터베이스의 등장 (테이블 구조 기반).
  • 1990~2010: 멀티미디어 데이터베이스와 데이터 모델 확장.
  • 2010년 이후: 빅데이터 시대의 도래. NoSQL과 같은 새로운 데이터베이스 기술 등장.

2.3 데이터베이스의 예시

  • 기업 DB: 생산, 재무, 고객 정보 관리.
  • 수강신청 DB: 학생, 과목, 강사 정보.
  • 바이오 DB: 유전자, 단백질, 질병 정보.
  • 여행 DB: 호텔, 항공기, 열차 정보 관리.

3. 데이터베이스의 구성 요소

3.1 데이터

  • Data: 컴퓨터에 기록될 수 있는 의미 있는 사실. 예를 들어, 학사 데이터나 도서 데이터 등.

3.2 데이터베이스 시스템

  • Database: 관련 있는 데이터의 모임.
  • DBMS (데이터베이스 관리 시스템): 데이터베이스의 생성과 관리를 지원하는 소프트웨어.
  • Database System: 데이터베이스와 이를 관리하는 DBMS, 질의 응용 프로그램의 통합 시스템.
notion image

4. 데이터베이스 설계

4.1 개체(Entity)와 관계(Relationship)

  • 개체: 독립된 정보 단위 (예: 학생, 과목, 강사).
  • 관계: 개체들 사이의 연관성 정보 (예: 학생은 수강신청을 하고, 교수는 강의를 한다).
notion image

4.2 ER 다이어그램

  • ER 다이어그램: 개체와 그들 간의 관계를 시각적으로 표현하는 도구. 이는 데이터베이스 구조를 설계하는 중요한 단계로서, 개체와 관계를 정의함.

5. 데이터베이스 질의 및 갱신

5.1 질의 (Query)

  • 질의의 예: 특정 학생의 성적 조회, 특정 학기 강좌를 수강한 학생들의 정보 조회, 데이터베이스 과목의 선수 과목 검색 등.

5.2 갱신 (Update)

  • 갱신의 예: 새로운 강좌 개설, 수강신청 정보 삭제, 학생 정보 수정 등.

5.3 인덱스 사용

  • 검색 속도 향상: 검색이 오래 걸릴 경우 인덱스를 사용하여 검색 성능을 최적화함.

6. 데이터베이스와 파일 시스템의 차이점

  • 데이터베이스: 여러 사용자가 실시간으로 데이터를 공유할 수 있음. 데이터 중복 방지, 최신 상태 유지, 접근 권한 제어, 복구 기능 제공.
  • 파일 시스템: 데이터 공유가 불편하고 중복성이 발생하며, 변경된 데이터를 다시 전송해야 하는 불편함이 있음.
notion image

7. 데이터베이스의 특징

7.1 Self-Description

  • 메타 데이터: 데이터베이스는 자체 구조와 제약 조건에 대한 정보를 포함함 (메타 데이터).
  • 데이터 독립성: 저장 구조가 변경되더라도 응용 프로그램은 최소한의 영향을 받음.
  • 하나의 DBMS는 여러 데이터베이스를 생성하고 관리할 수 있음.

7.2 데이터 추상화

  • 사용자에게는 데이터가 테이블 형식으로 제공되며, 실제 저장 구조는 추상화되어 숨겨짐.

7.3 다양한 뷰

  • DBMS는 하나의 데이터베이스를 다양한 형태로 제공할 수 있으며, 이를 통해 사용자는 필요에 맞는 뷰를 정의할 수 있음.

8. 데이터베이스 공유와 동시성 제어

8.1 데이터베이스 공유

  • 데이터는 한 번만 저장되고 여러 응용 프로그램에서 이를 공유함으로써 중복을 방지하고 최신성을 유지함.

8.2 동시성 제어

  • 동시성 제어: 여러 사용자가 동시에 데이터에 접근할 때 데이터의 일관성을 유지하기 위한 기능. 예를 들어, 항공 예약 시스템에서 동일한 좌석을 두 명이 동시에 예약하는 문제를 해결함. 온라인 트랜젝션 처리 (OLTP)라고도 함

8.3 트랜잭션

  • 트랜잭션: 데이터베이스에서 원자성과 고립성을 보장하는 작업 단위.

9. 데이터베이스 사용자

9.1 데이터베이스 관리자(DBA)

  • 데이터베이스 시스템의 관리와 운영을 책임지는 사람.

9.2 데이터베이스 설계자

  • 데이터베이스의 구조와 관계를 설계하는 전문가.

9.3 최종 사용자

  • 캐주얼 사용자: 비정기적인 사용자.
  • 초보 사용자: 미리 정의된 프로그램을 사용하는 사용자 (예: 은행 직원, 여행사 예약 담당자).
  • 전문 사용자: 복잡한 응용 프로그램을 개발하는 사용자.

9.4 시스템 분석가/응용 프로그래머

  • 최종 사용자를 위한 응용 프로그램을 설계하고 구현하는 사람들.

10. DBMS의 장점

10.1 중복성 제어

  • 데이터 중복을 방지하고, 데이터 일관성을 유지하며 저장 공간을 효율적으로 사용.

10.2 권한 관리

  • 사용자의 데이터베이스 접근을 제어하는 기능. 로그인을 통해 데이터 접근 권한을 관리하고, 필요한 경우 권한을 부여하거나 회수할 수 있음.

10.3 데이터 무결성 유지

  • 데이터베이스는 무결성 제약 조건을 설정하여 비정상적인 데이터 입력을 방지함 (예: 나이가 70세 이상인 학생 데이터 입력 방지).

10.4 효율적인 질의 처리

  • 대규모 데이터를 빠르게 검색하고 처리할 수 있는 인덱싱 기법 제공.

11. DBMS 사용의 단점과 필요하지 않은 경우

11.1 DBMS의 단점

  • 초기 투자 비용이 높고, 추가 하드웨어가 필요할 수 있음.
  • 단순한 응용 프로그램에는 불필요한 오버헤드가 발생할 수 있음.

11.2 DBMS가 필요하지 않은 경우

  • 데이터베이스 구조가 단순하고 변경 가능성이 적은 경우.
  • 실시간 처리 요구가 엄격한 경우.
  • 다수의 사용자가 데이터에 접근할 필요가 없는 경우.

12. 데이터베이스 응용 분야

  • 80년대: 인사, 재무, 물류, 영업 등의 비즈니스 데이터 관리.
  • 90년대: 공간 데이터베이스, 설계 데이터베이스, 문서 데이터베이스.
  • 2000년대: 생명공학 데이터베이스, 빅데이터를 위한 NoSQL 및 인메모리 DBMS 등장.
 

댓글

guest