1. 데이터베이스 개념 & 데이터베이스 시스템
1. 데이터베이스 개념 & 데이터베이스 시스템
1. 데이터베이스 개념
1. 데이터베이스의 등장
파일 시스템
- 데이터 베이스 이전에는 파일 시스템을 사용
파일 시스템 : 응용프로그램마다 서로 다른 데이터파일 사용
ex)
수강신청 응용 프로그램 <- 파일처리코드 A -> 수강신청 데이터파일
성적처리 응용 프로그램 <- 파일처리코드 B -> 성적처리 데이터파일
졸업사정 응용 프로그램 <- 파일처리코드 B -> 졸업사정 데이터파일
- 파일 시스템의 문제점
- 데이터 종속성의 증가 - 파일 변경 시, 응용 프로그램의 파일처리코드 변경 필요
- 데이터 중복성의 증가 - 수강신청 데이터파일과 성적처리 데이터파일에 겹치는 데이터가 존재할 수 있으며, 데이터 일관성과 무결성의 유지가 어렵다
데이터 시스템의 등장
- 데이터베이스 시스템 : DB + DBMS
- DBMS
- 데이터베이스 관리 시스템 : 응용프로그램에서 DB에 접근할 수 있도록 해주는 소프트웨어 시스템
- 데이터 베이스란?
- 보다 효율적이고 체계적으로 활용하기 위해 엄격한 제약을 갖는 데이터 저장소
- 여러 사용자나 응용 프로그램들이 함께 사용할 목적으로 체계적으로 통합하여 저장한 데이터들의 저장소
- 데이터베이스의 특징
- 실시간 접근 : 사용자의 데이터 요구에 실시간 응답
- 끊임없는 변화 : 계속해서 최신 데이터로 변경
- 동시 공용 : 여러 사용자가 동시에 공용
- 내용 기반 참조 : 데이터의 저장 위치가 아닌 값(키워드)를 이용하여 데이터 접근 가능하도록
2. 데이터베이스 시스템
2-1. 데이터 베이스 시스템 구성요소
구성 요소
- 데이터 베이스 사용자 : 어떤 목적으로 사용하는가
- 데이터 언어 : 데이터베이스 접근하기 위한 명령문
- 데이터베이스 관리 시스템 : 사용자 <-> DB 사이의 처리 중재자
- 데이터베이스 서버 : DB 저장 및 처리 역할의 컴퓨터
- 데이터베이스 모델 : 데이터 저장을 위한 체계화된 구조
데이터 베이스 사용자
접근 방식
과활용 목적
에 따라 분류
- 일반 사용자
- 초급 사용자 : DB존재 아예 X
- 중급 사용자 : CRUD 정도는 O
- 응용 프로그래머 : 프로그램 개발자
- 데이터베이스 관리자(DBA) : DB 시스템 관리 총괄
데이터 언어
- 데이터베이스 접근하기 위한 명령문
- DBMS에 요청 내용을 전달하기 위한 도구
SQL - Structured Query Language
DDL : 데이터베이스 테이블 구조 담당(CREATE, ALTER, DROP)
DML : 데이터베이스 안의 데이터 조작 (C-INSERT, R-SELECT, U-UPDATE, D-DELETE)
DCL : 데이터베이스를 제어/통제 (GRANT, REVOKE, COMMIT, ROLLBACK)
데이터베이스 관리 시스템 (DBMS)
- 사용자와 데이터베이스 사이의 중재자 역할
- 다양한 사용자나 응용프로그램이 데이터베이스를 함께 사용할 수 있도록 지원
- SQL을 해석 & 실행하는 데이터베이스 시스템 구성요소 중 하나가 DBMS
- 구성요소
- 쿼리 처리기
- 런타임 데이터베이스 처리기 - 트랜잭션 관리기
- 데이터 저장 관리기 - 버퍼 관리기/파일 관리기
데이터베이스 서버
- DB 저장 및 처리 역할의 컴퓨터
데이터베이스 모델
- 데이터를 저장하기 위한 체계화된 구조의 다양한 방법
종류
- 계층형 데이터 모델 (HDM)
- 네트워크형 데이터 모델 (NDM)
- 관계형 데이터 모델 (RDM)
- 객체 지향형 데이터 모델 (OODM)
- 객체 관계형 데이터 모델 (ORDM)
데이터 모델과 DBMS의 관계
- 데이터 모델에 따라 지원하는 DBMS가 달라진다
데이터모델 데이터베이스 DBMS DBMS 예 관계형(RDM) RDB(SQL DB) RDBMS 오라클, MS SQL, MySQL 비관계형 NoSQL DB NoSQL DBMS 몽고DB, 레디스(Redis) - NoSQL DB
- 빅데이터와 비정형 데이터의 저장 및 관리 기술이 대두되며 등장
- 스키마 리스 : 유연한 구조와 확장성, 고성능에 특화
2-2. 3단계 데이터베이스
스키마
스키마란 ?
- 데이터베이스 안에 저장되는 데이터 구조와 제약조건 등을 정의한 것
- 동일 데이터베이스여도 관점에 따라 스키마는 다르다.
- ANSI에서 제시한 방법에 따라 3종류로 나뉜다.
종류 | 관점 | 대상 | 데이터베이스당 스키마의 개수 |
---|---|---|---|
외부 스키마 | 개인적 관점 | 데이터베이스 일부 | 여러 개 |
개념 스키마 | 전체 조직적 관점 | 데이터베이스 전체 | 한 개 |
내부 스키마 | 저장 장치 관점 | 추상화된 표현 (물리적 저장 방식X) | - |
- 내부스키마 : 개념 스키마에 대한 시스템 내부의 저장 방식 / 내부 레코드의 형식이나 배치방법, 인덱스 등에 대한 명세
데이터 사전
- 사용자가 외부 스키마로 접근 시, 미리 정의된 사상 관계를 통해 개념 스키마/내부 스키마로 변환이 이루어짐
- DBMS는 스키마와 스키마 사상 정보를 데이터 사전이라는 별도의 저장소에 관리
- 구성 요소
- 데이터베이스 정의, 명세
- 스키마와 스키마 간의 사상 정보, 제약 조건 등
- 데이터 베이스 객체에 관한 모든 데이터
- => DBMS가 스스로 생성+유지
- 그 자체가 하나의 데이터베이스 = 시스템 데이터 베이스 = 시스템 카탈로그
데이터 독립성
- 응용 프로그램과 데이터 사이의 독립성 제공
- 데이터의 논리적/물리적 구조가 변경되어도 응용 프로그램이 영향을 직접 받지 않음