데이터베이스 개요

데이터베이스의 필요성

 

데이터 단위

bit (*8) byte (*1024) kilobyte (*1024) megabyte (*1024) gigabyte (*1024) terabyte TB (*1024) petabyte PB (*1024) exabyte EB (*1024) zettabyte ZB (*1024) yottabyte YB

(아직 지구에 YB 단위 저장할 수 있는 곳은 없음)

 

데이터의 양적 증가 → 관리 필요성 증대

1년에 대략 60ZB의 데이터가 쌓이고 있음 (128GB 아이패드를 쌓았을 때 달까지 3번 반 왕복 가능)

 

DBMS: DataBase Management System

기존에는 데이터 관리 위해 파일 사용: 파일 처리 시스템 File Processing System

데이터를 파일에 나누어 저장하고 운영 → 데이터 종속, 중복 등 여러 문제점 발견

 

데이터의 종속: 데이터가 특정 프로그램에 종속

데이터의 독립성

① 물리적: 기억장치 등 물리적 구조 변경되더라도 유지

② 논리적: 데이터의 논리적 구조 변하더라도 유지

∴ DBMS의 등장으로 데이터가 프로그램으로부터 완전히 독립됨

 

데이터의 중복: 여러 데이터가 여러 파일에 모두 저장되어야 함 (일관성, 보안성, 경제성 등 문제 발생)

데이터의 무결성을 보장하는 데에도 많은 비용과 시간 소모

동시 접근을 막는 데에도 어려움 있음

 

 

 

데이터베이스의 특징

 

program-data independency

데이터 추상화를 통해 데이터에 접근하기 쉬워짐 (개념만 알면 상세하게 몰라도 데이터에 접근 및 조작 가능)

 

자기 기술성 self-describing

DBMS는 메타데이터까지 포함하고 있음(시스템 카탈로그, 데이터 사전 등에)

+ 값과 그 값을 수식하는 메타데이터가 더해진 것을 데이터라고 부름 

 

뷰 view

필요한 특정 부분만을 볼 수 있음

 

다중 사용자 요청 처리

트랜잭션을 통해서 여러 사용자가 동시에 데이터 변경해도 일관성이 보장됨

 

3단계 구조 (단계 간 사상에 의해 서로 연관성을 가짐) 

  • 내부 단계
    • raw level의 데이터 구조, 표현 방식, 물리적 순서 등이 정의되어 있음
    • 가장 낮은 추상화 단계
    • 실제 어떤 데이터가 어떤 파일에 몇 kb로 저장되어 있는지 등

⭐ 개념-내부 사상: 개념 단계의 데이터 스키마와 디스크 내부와의 대응 정의 → 물리적 데이터 독립성 확보

  • 개념 단계
    • 이 데이터는 어떤 의미로 저장되어 있는지
    • 데이터베이스의 전체 구조 추상화
    • 데이터 간의 관계만 기술

⭐ 외부-개념 사상: 뷰와 개념 스키마 간 대응 관계 정의 → 논리적 데이터 독립성 확보 

  • 외부 단계
    • 추상화의 최상위 단계
    • 사용자가 필요한 부분만 view를 통해 볼 수 있게 함

 

 

 

데이터베이스 시스템 아키텍처

 

중앙집중식 관리 구조

  • 중앙 서버에 부하 집중
  • 저렴함 

 

클라이언트-서버 구조

  • 프로그램의 부하 분산, 성능 향상, 유지보수 비용 절감 
  • 가장 많이 사용되고 있음
  • 종류
    • 2계층
      • 사용자 인터페이스, 프로그램 등이 클라이언트로 이동 
      • query server, transaction server, sql server라고 부르기도 함
    • 3계층
      • 클라이언트와 서버 사이에 Application server 추가됨
      • WAS라고 부르기도 함
      • 애플리케이션 서버가 요청을 받아 처리하고 명령을 보내고, 처리된 데이터를 다시 보내는 역할 

'TIL > DB' 카테고리의 다른 글

[DB] 관계형 모델  (0) 2024.05.07
데이터베이스 모델링  (0) 2024.04.07
[Java] Oracle DB 연결하기  (0) 2023.04.19
[Oracle] join  (0) 2023.04.11
[Oracle] 함수  (1) 2023.04.04