DBMS(Database Management System)
데이터베이스 내의 데이터에 접근할 수 있도록 해주는 시스템
ex : Oracle, MySQL
주요 기능
- 정의 : DB구조 정의 혹은 수정
- 조작 : DB에 저장된 데이터에 접근하여 사용할 수 있는 기능 제공
(삽입, 삭제, 수정, 검색)
- 제어 : 데이터를 여러 사용자가 공유해도 항상 정확하고 안전하게 유지하는 기능 제공
조작 연산 후에도 다음과 같은 특징을 갖도록 제어한다.
- 내용이 일관
- 무결성 유지
- 장애 발생시 회복 가능
- 권한에 따른 데이터 접근 허용으로 보안 유지
- 여러 사용자가 데이터 동시 접근 가능
장점
- 데이터 중복 통제
- 파일 시스템은 응용 프로그램마다 각각의 파일을 갖고 있기 때문에 각 파일들 안에 중복된 데이터가 있을 수 있음
- DBMS는 DB에 데이터를 통합하여 관리하기 때문에 중복 문제 해결
- 데이터 독립성 확보
- 파일 시스템은 파일 구조가 바뀌면 응용 프로그램도 함께 수정해야 함
- DBMS는 응용 프로그램을 대신해 DB에 접근하기 때문에 DB의 구조가 변경되어도 응용 프로그램이 영향을 받지 않음
- 데이터 동시 공유 가능
- 데이터 무결성 유지
단점
- 비용이 많이 든다
- 백업과 회복 방법이 복잡함
- 데이터 양이 많아 복잡하고 여러 사용자가 같은 DB를 공유하기 때문
- 중앙 집중 관리로 인한 취약점 존재
3단계 데이터베이스 구조
- 외부 스키마
- 개념 스키마
- 내부 스키마
스키마 : 데이터베이스의 구조와 제약 조건에 관한 명세
외부 스키마
- 일반 사용자나 응용 프로그래머가 접근하는 계층, View의 개념
- View 또는 SQL 쿼리를 통해 외부 스키마 구성
- 전체 데이터베이스 중 논리적인 부분
- 여러 개의 외부 스키마가 있을 수 있음
- 실제로 보여지는 부분
개념 스키마
- 전체 데이터베이스의 정의
- 어떤 데이터들이 기억되어야 하는지, 그 데이터들 간에는 어떤 관계가 있는지
- 통합 조직별로 하나만 존재
- 하나의 데이터베이스에는 하나의 개념 스키마
내부 스키마
- 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법 표현
- 물리 스키마 라고도 부름
- 하나의 데이터베이스에 하나의 내부 스키마
데이터의 독립성
- 특정 스키마를 변경해도 상위 수준의 스키마 정의에 영향을 주지 않는 성질
- 외부-개념 스키마와 개념-내부 스키마는 서로 독립성을 가짐
- 각 계층 구조를 유기적으로 연결(Mapping)해주기 때문
논리적 데이터 독립성
- 외부 스키마와 개념 스키마 사이의 독립성
개념 스키마가 변경되어도 외부 스키마에 영향을 미치지 않도록 함
- 논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 함
- 개념 스키마의 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향이 없음
물리적 데이터 독립성
- 개념 스키마와 내부 스키마 사이의 독립성
- 저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원
- 성능 개선을 위해 물리적 저장 장치를 재구성할 경우 개념 스키마나 외부 스키마에 영향이 없음
- 물리적 독립성은 논리적 독립성보다 구현하기 쉬움
출처
https://kosaf04pyh.tistory.com/186
https://mangkyu.tistory.com/19
https://www.bsidesoft.com/4754