CS 지식/DB(데이터베이스)

[DB 1편] 데이터베이스 시스템의 개념

정리왕이되자 2023. 2. 15. 21:38

데이터베이스 관련 내용은 "SQL Server로 배우는 데이터베이스 개론과 실습"을 바탕으로 정리합니다.

 

데이터베이스 시스템의 개념은 총 4개의 챕터로 정리된다.

 

1. 데이터베이스 시스템

2. 데이터베이스 시스템의 발전

3. 파일시스템과 DBMS

4. 데이터베이스 시스템의 구성

 

1. 데이터베이스 시스템

  • 데이터베이스와 데이터베이스 시스템
    • 데이터: 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값.
    • 정보: 데이터에 의미를 부여한 것.
    • 지식: 사물이나 현상에 대한 이해.
  • 데이터베이스 개념 및 특징
    • 개념
      • 통합 데이터: 여러 곳에서 사용하던 데이터를 통합해 하나로 저장한 데이터.
      • 저장 데이터: 문서로 보관된 데이터가 아니라 저장 장치에 저장된 데이터.
      • 운영 데이터: 조직의 목적을 위해 사용되는 데이터.
      • 공용 데이터: 공동으로 사용되는 데이터를 의미. 여러 명이 동시에 사용할 수 있다.
    • 특징
      • 실시간 접근성: 사용자가 요청하는 즉시 데이터 서비스함.
      • 계속적인 변화: 데이터 값은 시간에 따라 계속 변함.
      • 동시 공유: 데이터 요청 프로그램이 동시에 여러 개 있다.
      • 내용에 따른 참조: 데이터의 물리적 위치가 아니라 데이터 값에 따른 참조.
  • 데이터베이스 시스템의 구성
    • 각 조직에서 사용하던 데이터를 모아 통합해 서로 공유하여 생기는 장점을 이용하는 시스템.
    • DBMS
      • 데이터를 관리하는 소프트웨어 시스템으로 주기억장치에 존재하면서 사용자와 데이터베이스 연결.
    • DB
      • 데이터를 모아둔 토대.
      • 물리적으로는 컴퓨터 내부의 하드디스크.
    • 데이터 모델
      • 데이터가 저장되는 기법에 관한 내용.

2. 데이터베이스 시스템의 발전

  • 파일 시스템
    • 파일 단위로 파일 서버에 저장.
    • 데이터 중복 가능, 데이터 일관성 훼손 가능.
  • 데이터베이스 시스템
    • DB서버 (클라이언트 - 서버 방식)와 DBMS를 활용해 통합 관리함.
    • 데이터 일관성 유지, 복구, 동시 접근 제어등의 기능 수행.
    • 데이터 중복을 줄이고 표준화 및 무결성 유지.
  • 웹 데이터베이스 시스템
    • 웹 브라우저에서도 데이터베이스 사용 가능.
    • 웹 서버에 접속하면 웹 서버가 데이터베이스 서버에 요청 전달.
  • 분산 데이터베이스 시스템
    • 여로 곳에 분산된 DBMS 서버를 연결해 운영하는 시스템.
    • 대규모 응용 시스템에 사용된다.

 

3. 파일 시스템과 DBMS

  • 데이터를 저장하는 방법
    • 프로그램 내부에 저장
      • 데이터 정의나 데이터 값이 변경되면 다시 컴파일을 해야하기 때문에 서비스가 중단.
      • 데이터는 계속적인 변화 특성이 있기 때문이다.
    • 파일 시스템 사용
      • 프로그램과 별도로 파일에 데이터 값을 저장.
      • 파일은 프로그램과 분리되어 디스크에 저장.
      • 문제점
        • 데이터 구조 변경 시에 재 컴파일.
        • 동시 공유 불가. (하나의 파일을 두 개의 프로그램에서 사용하는 것은 OS의 도움 없이 불가능)
    • DBMS 사용
      • 데이터 정의 및 데이터 값은 DBMS에서 관리.
      • 데이터 정의, 데이터 변경 등의 작업을 할 수 있는 프로그램을 DBMS에서 제공.
      • SQL 언어 사용.
  • 파일시스템과 DBMS의 차이
  파일 시스템 DBMS
데이터 정의 응용 프로그램 DBMS
데이터 저장 파일 DB
데이터 접근 방법 응용 프로그램이 직접 파일로 접근 응용 프로그램이 DBMS에게 접근 요청
장점 파일 시스템으로 구축된 응용 프로그램은 직접 데이터가 저장될 파일을 정의 및 관리함. - SQL 언어를 통해 응용 프로그램에서 DBMS로 쉽게 접근 가능.
- 데이터 중복 방지하므로 생산성이 높아짐.
- 데이터 중복 최소화, 데이터 일관성 유지, 데이터 독립성 유지, 관리기능 제공(보안, 동시제어), 프로그램 개발 생산성 향상.
단점 - 데이터 중복의 위험 - 파일 시스템보다 CPU 나 메모리 같은 자원을 더 많이 사용함.

 

4. 데이터베이스 시스템의 구성

DB 시스템 = DB + DBMS + 데이터 모델 + 데이터베이스 언어 + 데이터베이스 사용자

  • 데이터베이스 언어
    • SQL 사용
      • 데이터 정의어(DDL): 테이블 구조 정의. <CREATE, ALTER, DROP>
      • 데이터 조작어(DML): 데이터 검색, 수정, 삭제, 삽입. <SELECT, UPDATE, DELETE, INSERT>
      • 데이터 제어어(DCL): 데이터 사용 권한 <GRANT, REVOKE>
    • SQL의 핵심은 query를 한다는 것.
  • 데이터베이스 사용자
    • 일반 사용자: 응용 프로그래머가 개발한 프로그램을 사용해 DB 접근.
    • 응용 프로그래머: 일반 사용자가 사용하는 프로그램을 개발. C/JSP+SQL 데이터 사용 로직 및 사용자 인터페이스 개발.
    • SQL 사용자: 응용 프로그램을 이용하지 않고 SQL 사용하여 데이터 모니터링 및 업무 처리.
    • DBA: 조직 DB 총괄, 데이터 설계, 구현, 유지보수 담당, 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사.
  • DBMS 
    • 사용자와 DB를 연결해주는 소프트웨어.
    • DB 생성, 공유, 관리하는 총체적인 역할.
    • DDL/DML 컴파일러: SQL 번역.
    • 질의 처리기: 번역된 SQL 처리하기.
    • 인덱스: 데이터에 빠르게 접근하기 위해 생성.
    • 데이터 사전: 데이터에 관한 정보를 저장.
    • DBMS의 기능
      • 데이터 정의
      • 데이터 조작
      • 데이터 제어
      • 데이터 추출
  • 데이터 모델
    • DB 시스템에 데이터를 저장하는 이론적인 방법
    • 종류
      • 계층 데이터 모델, 네트워크 데이터 모델: 포인터 사용. (속도는 빠르지만 구현이 어려움)
      • 관계 데이터 모델: 속성 값 사용. (속도는 느리지만, 구현이 용이)
      • 객체 데이터 모델, 객체-관계 데이터 모델: 식별자 사용.
  • DB의 개념적 구조
    • ANSI에서 제안한 3 Layer DB structure
    • 스키마: 조직, 구조.
    • 3 Layer DB Structure.

  • 외부 단계
    • 일반 사용자, 응용 프로그래머.
    • 여러 개 존재.
    • 서브 스키마로도 부른다.
  • 개념 단계
    • DBA
    • 전체 DB를 정의함. 하나만 존재.
    • 데이터와의 관게, 제약사항, 무결성, 독립적 기술.
  • 내부 단계
    • 물리장치에 DB가 실제로 저장되는 방법.
    • 오직 하나.
    • 인덱스, 데이터 레코드, 데이터 압축.
    • DB가 실제 하드디스크에 저장되는 구조.
  • mapping : 각 단계 간 대응 관계
    • 외부/개념 단계
      • 외부 스키마가 개념 스키마의 어떤 부분에 대응되는 지 확인.
    • 개념/내부 단계
      • 개념 스키마가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 구현되어 있는 지 대응.
  • 데이터 독립성: 각 단계 내의 변경이 다른 단계와 상호 간섭이 없도록 하는 것.
    • 논리적 독립성
      • 개념 스키마가 변경되더라도 외부 스키마에 영향을 주지 않는다.
    • 물리적 독립성
      • 내부 스키마에 변경이 생기더라도 개념 스키마에 영향을 주지 않음.

✔️ 데이터베이스 관련 기술면접

Q. 데이터베이스를 사용하는 이유는 무엇인가?

- 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. 데이터를 각각 파일 단위로 저장하며 이러한 일들을 처리하기 위한 독립적인 애플리케이션과 상호 연동 되어야 한다. 이때 문제점은 데이터 종속성, 중복성, 무결성이다.

 

Q. 데이터베이스의 특징은?

1. 데이터 독립성

- 물리적 독립성: 데이터베이스 사이즈를 늘리거나 성능 향상을 위해 데이터 파일을 늘리거나 새롭게 추가하더라도 관련된 응용 프로그램을 수정할 필요가 없다.

- 논리적 독립성: 데이터베이스는 논리적인 구조로 다양한 응용 프로그램의 논리적 요구를 만족시켜줄 수 있다.

 

2. 데이터 무결성

여러 경로를 통해 잘못된 데이터가 발생하는 경우의 수를 방지하는 기능으로 데이터의 유효성 검사를 통해 데이터의 무결성을 구현한다.

 

3. 데이터 보안성

- 인가된 사용자들만 데이터베이스나 데이터베이스 내의 자원에 접근할 수 있도록 계정 관리 또는 접근 권한을 설정함으로써 모든 데이터에 보안을 구현할 수 있다.

 

4. 데이터 일관성

연관된 정보를 논리적인 구조로 관리함으로서 어떤 하나의 데이터만 변경한 경우 발생할 수 있는 데이터 불일치성을 배제할 수 있다. 또한, 작업 중 일부 데이터만 변경되어 나머지 데이터와 일치하지 않는 경우의 수를 배제할 수 있다.

 

5. 데이터 중복 최소화

데이터베이스는 데이터를 통합해서 관리함으로써 파일 시스템의 단점 중 하나인 자료의 중복과 데이터 중복성 문제를 해결할 수 있다.