[DB] DBMS 및 DB 시스템
▶ 파일 시스템 문제점
▷ 데이터 중복성
- 같은 데이터가 여러 파일에 중복저장됨
- 저장 공간의 낭비
- 데이터 일관성 저해, 데이터 무결성 저해
① 데이터 일관성 저해
- 데이터 일관성
- 여러 데이터가 동일 사실을 나타내면 그 내용이 모두 똑같아야 함
- 데이터 중복시 일관성 유지 어려움 → 데이터 불일치
② 데이터 무결성(정확성) 저해
- 데이터 무결성
- DB에 저장된 데이터 값과 현실 세계의 실제 값이 일치하는 정확성
- 데이터가 중복되면 데이터에 대한 제어가 분산되어 데이터의 정확성을 유지하기 어려워짐
▷ 데이터 종속성
- 데이터 종속성
- 응용 프로그램과 데이터 간의 상호 의존(데이터 종속) 관계
- 데이터의 구성 방법이나 접근 방법이 변경 되면 응용 프로그램도 동시에 변경해야 됨 → 응용 프로그램 관리가 어려워짐
▷ 기타
- 동시 공용 불가
- 보안성 저해
- 회복 기능 부족
- 응용 프로그램 개발의 어려움
▶ DBMS
▷ DBMS란?⭐
- DBMS(Database Management System)
- 응용 프로그램과 데이터 사이의 중재자로서, 모든 응용 프로그램(사용자)들이 DB를 공용할 수 있게 관리해주는 SW 시스템
- 파일 시스템 문제를 해결하기 위해 제시된 SW
- 조직에 필요한 데이터 DB에 통합 저장 관리
▷ DBMS 필수 기능⭐
- 정의기능
- 데이터베이스 구조를 정의할 수 있는 기능
- 데이터 정의 언어(DDL : Data Definition Language)를 사용하여 DB생성
-
조작기능
- 데이터베이스를 접근하고 조작할 수 있는 기능
- 데이터 조작 언어(DML : Data Manipulation Language)를 사용하여 데이터의 검색, 삽입, 삭제 등 DB 연산 작업을 수행
- 제어기능
- 데이터베이스의 정확성과 보완성을 유지할 수 있는 기능
- 데이터 제어 언어(DCL : Data Control Language)를 사용
▷ DBMS의 장점
- 데이터 중복의 최소화
- 데이터 통합 구성함으로써 중복 최소화
- 제어된 중복만 허용
- 데이터의 동시 공용
- 데이터 일관성 유지
- 데이터 중복을 줄여 불일치 최소화
- 데이터 무결성 유지
- 정확성 유지 가능
- DB가 접근 처리 될 때마다 제어 기능을 통해 유효성 검사
- 데이터 보안 보장
- 표준화 용이
- 장애 발생시 회복 가능
- 데이터의 일관성과 무관성을 유지하면서 장애 발생 이전 상태로 복구
- 응용 프로그램 개발 비용 감소
- DB 구조가 변경되어도 응용 프로그램 변경할 필요X
▷ DBMS의 단점
- 운영비 증대
- 복잡한 백업과 회복
- 시스템의 취약성
- 데이터 중앙 집중 관리하기 때문에 일부 장애 → 전체 시스템 마비
▶ DB의 개념적 구성 요소
- DB는 개념적으로 개체와 관계로 구성되어 있다.
- DB = { 개체, 관계 }
▷ 개체
- 개념이나 정보의 단위
- ex) 학생, 교수, 학과
- 하나 이상의 속성으로 구성
- ex) 학생 이라는 개체는 “학번”, “이름”, “학과”라는 3개의 속성들로 구성
▷ 관계
- 개체 집합과 개체 집합 사이의 관계
- ex) “학생”개체와 “교수”개체 사이의 지도 관계
- 학번이 123인 학생의 지도 교수를 검색해라
- ex) “학생”개체와 “교수”개체 사이의 지도 관계
▷ 스키마⭐
- 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
- 개체, 속성, 관계, 제약조건 등 포함
- 인스턴스
- 정의된 스키마에 따라 DB에 실제로 정의된 값
① 외부 스키마
개별 사용자 관점에서 정의 한 DB 스키마
- 하나의 DB 시스템에는 여러개의 외부 스키마가 존재한다.
- 일반 사용자는 질의어를 이용하요 DB를 쉽게 사용한다.
② 개념 스키마
- 조직 전체의 관점에서 정의 한 DB 스키마
-
개념스키마를 단순히 스키마 라고 칭하기도 한다.
- 모든 응용프로그램이나 사용자들이 필요로하는 데이터를 통합한 조직전체의 스키마
- 개체, 관계, 제약조건 포함
- 관리에 필수적인 DB접근 권한, 보안정책, 무결성 규칙에 대한 정의도 포함
- DB당 하나만 존재 (DB전체를 기술한 것이기 때문)
③ 내부 스키마
저장장치 관점에서 정의한 DB 스키마
- DB 시스템당 하나
- 개념 스키마에 대한 물리적 저장 구조를 정의
- 레코드의 구조, 필드 크기, 인덱스의 유무, 레코드의 물리적 순서 등
- DB당 하나만 존재
▷ 3단계 DB 구조
DB의 복잡한 내부 구조를 감추고 일반 사용자가 DB를 쉽게 이해하고 이용할 수 있도록
하나의 DB를 관점에 따라 세 단계로 나누어 정의한 것
-
외부 단계
- 데이터를 이용하는 개별 사용자의 관점
- 외부 스키마
-
개념 단계
- 개별 사용자의 관점이 종합된 조직 전체의 관점
- 개념 스키마
-
내부 단계
- 물리적인 저장 장치의 관점
- 내부 스키마
▶ 데이터 독립성⭐
개념
-
데이터의 논리적/물리적 구조가 변경되더라도 응용 프로그램에 영향을 미치지 않는 특성
- 스키마를 3단계로 나눠 구성하는 이유가 된다.
- 구조가 바뀌어도 소스코드 변경이 필요 없다.
- 이름,나이 -> 나이,이름으로 필드의 위치가 변경되었을 때 DBMS가 스키마 사이 매핑 수정해주기 때문에 코드 변경할 필요가 없는 것이다!
▷ 스키마 간의 매핑
매핑?
-
3가지 스키마 사이에서는 유기적인 대응 관계(매핑)가 성립해야한다.
-
스키마 간의 매핑을 통해 구체적으로 데이터 독립성을 구현할 수 있다.
▶ DB 사용자
-
일반사용자
- 주로 DML을 통해서 DB 접근
- 데이터의 삽입, 삭제, 수정, 검색
-
응용 프로그래머
- 응용 프로그램(프로그래밍 언어 + DML)을 통해서DB 접근
-
DB 관리자(DBA)
- DDL과 DCL을 통해 DB를 정의하고 제어하는 사람
- DB 시스템을 운영/관리
📎참조
- https://codedragon.tistory.com/5245
- https://kingnamji.tistory.com/36
- https://jwprogramming.tistory.com/47
댓글남기기