데이터베이스의 필요성
데이터 단위
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라고 부르기도 함
- 애플리케이션 서버가 요청을 받아 처리하고 명령을 보내고, 처리된 데이터를 다시 보내는 역할
- 2계층
'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 |