Reference
🙇🏻♂️ 스스로 다시 보려고 기록하는 내용입니다
-한국방송통신대학교

데이터 단위
- bit
- byte
- KB
- MB
- GB
- TB
- PB(petabyte)
- EB(exabyte)
- ZB(zettabyte)
데이터 관리 장치의 필요

- 필요한 데이터를 신속히 검색하기 위해
- 대량의 데이터를 저장 및 관리하는
- 보조 장치
데이터 관리의 역사
- 각각 파일 만들어 사용 (전통적 데이터 관리 방식)
- 데이터베이스 개발 전 데이터 관리에 사용
- 업무 별 애플리케이션이 개별 데이터를 데이터 파일에 저장 / 관리하는 시스템
발생 가능한 문제
-
데이터 종속 : 저장된 데이터가 특정한 하드웨어 / 소프트웨어 / 사용자에게만 사용될 수 있도록 제한 -> 물리적 데이터 종속
-
데이터 중복 : 동일한 사항은 중복 데이터가 형성됨 -> 일관성 & 보안성 & 경제적 문제 발생
- 일관성 : 한 사실에 대해 한개의 데이터 값 유지하면 데이터의 정확성이 떨어짐 (불필요한 데이터)
- 보안성 : 같은 데이터에 같은 수준 보안 유지
- 경제성 : 데이터에 대해 최소한의 저장 공간만을 점유
-
무결성 훼손 : 실세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약조건) 포함, 파일 시스템은 데이터 무결성을 보장하기 위한 기능을 제공하지 않음
- 현상에 대한 값 ( 예 : '홍길동'의 수강과목 )
- 가능범위의 예 : 1학기 최대 수강과목 18학점
- 데이터의 정확성 보장
- 데이터의 값과 값에 대한 제약조건을 동시에 만족
-
동시 접근의 문제 : 동일 데잍에 다수 사용자의 접근 허용시 일관성 훼손
데이터베이스 사용의 의미
- 사용자가 직접 디스크에 접근하지 않고 데이터베이스만 디스크에 접근할 수 있음
- 영역 분리 ( 사용 / 관리 )

데이터베이스의 특징
- 데이터베이스 시스템의 자기 기술성
- 데이터와 데이터의 정의 및 설명(메타데이터)을 스스로 보유한다.
- 프로그램과 데이터의 격리 및 추상화
- 데이터에 대한 개념적인 표현 제공
- 덕분에 사용자의 접근성 향상하는 것 같다.
- 다중 뷰 제공
- 데이터베이스의 일부만을 표현할 수 있는 기능 제공
- 각 사용자가 관심을 갖는 부분에 집중이 가능한 것 같다.
- 데이터 공유와 다수 사용자 트랜잭션 처리
- 다수의 데이터 조작 요청시
- 동시성 제어 기능 활용하여
- 데이터의 일관성을 보장한다.
- 동시에 작업까지 수행한다.
데이터베이스 시스템의 구성
- value
- data (값 + 두 개 이상의 설명)
- meta_data (데이터에 포함)
예) value : 22일 / data : 22일, 월요일, 피곤한 날 / meta_data : 월요일, 피곤한 날
DBMS의 3단계 구조
외부 (뷰)
- 외부 - 개념 레이어
개념
- 개념 - 내부 레이어
내부


다수 사용자 트랜잭션 처리
트랜잭션 : 하나의 논리적 작업 처리를 위한 일련의 데이터베이스 명령 집합
- 하나의 트랜잭션 전부 처리 전까지 다음 트랜잭션 처리 대기
- 동시에 접근 불가
데이터베이스 관련 용어
- 데이터 : 어떠한 사실에 대한 정량적, 정성적 특징을 나타낼 수 있는 값과 값에 대한 설명
- 데이터베이스 : 특정 기관의 애플리케이션 시스템에서 사용되는 데이터의 집합
- DBMS : 데이터베이스에 저장된 데이터의 구성, 저장, 관리 사용을 위한 소프트웨어 패키지
(데이터베이스 != DBMS)
- 데이터베이스 시스템 : 정보를 데이터베이스에 저장 / 관리하여 사용자에게 요구된 형태의 정보를 제공하는 컴퓨터 기반 시스템
데이터베이스의 구성요소
데이터베이스 언어
DBMS는 사용자가 데이터베이스를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스를 제공한다. (역할에 따라 두 종류의 언어로 구분)
- 데이터 정의 언어 (DDL) : 데이터베이스 객체 생성 / 수정 / 삭제 목적 언어
- 데이터 조작 언어 (DML) : 구조화된 데이터에 사용자가 접근 및 조작(검색, 삽입, 삭제, 수정)을 지원하는 언어
- 현대 데이터 베이스 언어(SQL)는 자연어와 유사한 형태라고 한다.
데이터베이스 시스템 아키텍처
1. 중앙 집중식
- 단일 서버가 다수의 클라이언트 장치를 대신하여 작동
- 중앙 컴퓨터 과부하 + 전체적인 성능 저하
2. 분산 시스템
- 클라이언트 장치의 성능 향상 -> 자체적인 처리 능력 보유
- 클라이언트 - 서버 데이터베이스 시스템
- 애플리케이션 프로그램의 부하 분산
- 소프트웨어 유지보수 비용 절감 및 이식성 증가

3계층 구조는 처음엔 시간과 비용이 많이 들지만 유지보수가 용이하다고 한다.
시스템에 정해진 답은 없으니 특징에 맞춰 어떤 것이 좋을지 결정해야 한다.
나의 생각 : 훌륭한 설계를 위해선 적절한 트레이드 오프가 필연적이니
각각의 특징을 파악하는 것을 기본으로 생각하는 인간이 되자 👊