데이터베이스 이론 학습 - 데이터베이스 기본 개념

devholic (David)·2023년 3월 19일
0
post-thumbnail

데이터 & 데이터베이스

데이터

  • 개체, 사건, 현상 또는 아이디어의 형식적인 설명
  • 기록할만한 가치가 있는 것
  • 정형화되고 기록할만한 가치가 있다고 판단되는 어떤 현상이나 사건, 아이디어에 대한 묘사

데이터베이스

  • 영속적인 데이터의 통합된 컬렉션, 모음, 집합 (영속적: 영원히 계속되는, 또는 그런 것)
  • 관심있는 정보를 대표
  • 조직의 계산된 정보 시스템을 구성하는 다양한 프로그램들
  • 데이터들은 그들을 활용하는 프로그램들과 분리되어 있다
  • 조직이나 개인이 사용하는 조작 가능한, 저장된 데이터의 모임

데이터베이스 관리 시스템 (DBMS)

  • DBMS는 소프트웨어
  • 특정 기업에 대한 정보를 포함
  • 서로 연관된 데이터들의 집합
  • 데이터에 접근하는 프로그램들의 집합
  • 데이터를 편리하고 효율적으로 사용할 수 있도록 하는 환경
  • 예시: 은행 계좌, 항공권 예약, 대학 성적, 결제 시스템

DBMS는 매우 가치있고, 상대적으로 큰 데이터들을 관리하는 데 사용된다. 종종 동시에 여러 사용자와 애플리케이션에서 접근한다.
현대의 데이터베이스 시스템은 매우 복잡한 소프트웨어 시스템으로써, 대규모며 복잡한 데이터 집합을 관리하는 것이 그 역할이다.

데이터베이스는 우리 삶의 모든 측면에 영향을 미친다!


데이터베이스 기반 시스템

  • 데이터베이스: 연관된 데이터들이 저장되어 있는 곳
  • DBMS: 데이터베이스를 다루는 시스템
  • SQL: 데이터베이스가 유일하게 이해할 수 있는 언어
  • DBA (Database Administrator): 데이터베이스를 다루는 관리자. SQL을 통해 관리
  • ODBC/JDBC: 애플리케이션 개발자가 데이터베이스에 접근할 때 사용하는 언어. ODBC는 C/C++, JDBC는 Java)
  • Web Server: 정적 페이지 제공용
  • Middleware: 웹 브라우저에서 데이터베이스로부터 데이터를 저장하거나 읽어올 수 있도록 중간에 위치한 프로그램
  • Application User: 애플리케이션을 사용하는 사용자들
  • Application Developer: 애플리케이션을 개발하는 개발자. ODBC/JDBC를 통해 데이터베이스에 접근

파일 시스템

  • 데이터베이스 기반 시스템 이전까지 쓰이던 데이터 관리 방법
  • OS의 일부
  • 디스크 안에 프로그램, 데이터, 문서 등을 저장
  • 초기에는 데이터베이스 애플리케이션이 직접 파일 시스템 위에 있었다.

문제점

  • 데이터의 중복성비일관성 초래 가능: 각 애플리케이션에 따라 파일들이 다르게 되다보니, 같은 값을 가진 파일들이 중복해서 생성될 수도 있는 결과가 초래됨. 또, 이 과정에서 잘못된 값을 기입하면 일관적이지 않은 데이터로 전락됨
  • 데이터 접근의 어려움: 새로운 일을 할 때마다 새로운 프로그램을 짜야 한다
  • 데이터의 종속성: 해당 데이터를 쓰고 싶으면 특정 언어로만 사용해야 하는 등의 문제가 발생 가능
  • 데이터 격리성 관리: 만약 여러 프로그램들이 같은 시점에 업데이트 한다면?
  • 무결성 관련 문제: 무결성 관련 조건 (ex: 금액은 0보다 커야 한다)은 코드에 묻히게 된다. 명시적으로 선언하는 것이 더 효율적이다. 이는 새로운 코드를 붙일 때 마다 번거로운 작업으로 된다.
  • 원자성 (더 이상 쪼갤 수 없는 = 하나의 작업) 관리 취약: 데이터베이스에 장애가 발생하면 비일관적인 상태가 될 수 있다.
    • A가 B에게 돈을 송금하는 과정에서 장애가 발생해 A의 돈은 빠져나갔고 B는 돈을 받지 않는 상태가 된다면?
  • 많은 사람들이 동시에 접근: 동시성 접근을 제대로 다루지 않는다면 비일관적인 상황 초래
  • 보안 문제: 다양한 파일, 접근경로, 프로그램의 이용 등으로 보안에 약하다.

DBMS의 특징

장점

  • 데이터 중복 최소화
  • 데이터 공유
  • 일관성 유지
  • 무결성 유지
  • 보안 보장
  • 표준화 용이
  • 전체 데이터 요구의 조정

단점

  • 비용 발생: 하드웨어, DBMS, 운영비, 교육비, 개발비
  • 프로그램의 복잡화: SQL 및 컴퓨터 프로그래밍 언어 활용
  • 성능상의 오버헤드

DBMS는 장점이 단점을 충분히 상회하기에, DBMS를 사용하는 것이 더 효율적이다.


DBMS의 구조

View level

  • 프로그램의 데이터 구조를 담당
  • 표현할 때도 있고, 그렇지 않을 때도 있다.
  • 예시: 연봉을 보여줄지, 보여주지 않을 지 결정

Logical level

  • 데이터베이스의 논리적 구조를 담당
  • 데이터베이스를 설계한다고 할 때, 해당 영역을 관리 (즉, 중요한 부분)
  • 저장된 데이터를 묘사하며, 데이터 간 관계를 설계

Physical level

  • 데이터베이스의 물리적 구조를 담당
  • 일반적으로 DBMS가 관리

데이터 독립성

  • 각 레벨 간의 데이터가 서로 영향을 끼치지 않도록 함
  • 물리적 데이터 독립성: physical level - logical level
  • 논리적 데이터 독립성: logical level - view level
  • 애플리케이션은 논리적 스키마에 의존한다.
  • 일반적으로 각 레벨에 있는 인터페이스와 구성 요소들은 그 영역에서 변경되더라도 다른 곳에 심각한 오류를 발생시키지 않도록 정립되어야 한다.
  • 심하게 변경하면 영향을 받을 가능성이 있다.
profile
개발이 너무 좋아요

0개의 댓글