목차
03 데이터베이스 시스템
01 데이터베이스 시스템의 정의
데이터베이스에 데이터를 저장하고, 저장된 데이터를 관리하여 조직에 필요한 정보를 생성해주는 시스템
- 데이터베이스: 데이터를 저장해두는 곳, 저장된 데이터의 집합
- 데이터베이스 관리 시스템: 데이터베이스에 저장된 데이터를 관리
- 데이터베이스 시스템: 데이터베이스와 데이터베이스 관리 시스템을 이용해 조직에 필요한 정보를 제공하는 ‘전체 시스템’
→ 데이터베이스 시스템의 핵심 구성 요소 = 데이터베이스, 데이터베이스 관리 시스템
+사용자, 데이터 언어, 컴퓨터 등
02 데이터베이스의 구조
1. 스키마
schema
데이터베이스에 저장되는 데이터 구조와 제약조건을 정의
ex. 고객- 고객번호(INT), 이름(CHAR(10)), 나이(INT), 주소 (CHAR(20))
인스턴스: 정의된 스키마에 따라 데이터베이스에 실제로 저장된 값
2. 3단계 데이터베이스 구조
3단계 데이터베이스 구조(3-level database architecture) (미국의 표준화 기관 ANSI/SPARC)
- 외부 단계: 개별 사용자 관점
- 개념 단계: 조직 전체의 관점
- 내부 단계: 물리적인 저장 장치의 관점
내부 → 외부: 추상화 레벨이 높아짐
외부 단계
각 사용자는 데이터베이스 전체에 관심x
사용자마다 업무 내용, 사용 목적이 달라 필요한 데이터 내용이 다르다
개별 사용자가 데이터베이스를 어떻게 보는가를 표현 - 사용자마다 생각하는 데이터베이스의 구조가 다름
외부 스키마 = 외부 단계에서 사용자에게 필요한 데이터베이스를 정의, 각 사용자가 생각하는 데이터베이스의 모습
서브 스키마라고도 한다
개념 단계
데이터베이스를 이용하는 사용자들의 관점을 통합, 데이터베이스를 ‘조직 전체의 관점’에서 이해하고 표현
개념 스키마 = 데이터베이스 관리 시스템/관리자의 관점에서 모든 사용자에게 필요한 데이터를 통합하여 전체 데이터베이스의 논리적 구조를 정의
조직 전체의 관점에서 생각하는 데이터베이스의 모습
데이터, 데이터에 대한 보안 정책, 접근 권한에 대한 정의 포함
그러나 데이터를 물리적으로 저장하는 방법, 데이터 저장장치와 독립적
하나의 데이터베이스에는 하나의 개념 스키마만 존재
내부 단계
데이터베이스를 디스크나테이프 같은 저장 장치의 관점에서 이해
내부 스키마 = 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의
파일에 데이터를 저장하는 레코드의 구조, 레코드를 구성하는 필드 크키, 레코드 접그 ㄴ경로등 정의
하나의 데이터베이스에 하나만 존재
3. 데이터 독립성
각각의 스키마는 데이터베이스를 바라보는 관점이 다를 뿐 모두 같은 데이터베이스를 표현
→ 세 가지 스키마 사이에는 유기적인 대응 관계가 성립해야 한다
사상 / 매핑 : 스키마 사이의 대응 관계
- 논리적 데이터 독립성 (외부-개념)
개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것
전체 데이터베이스의 논리적인 구조가 변경되어도 관련된 외부/개념 사상 정보(대응 관계)만 적절히 수정해주면 직접 관련이 없는 외부 스키마는 변경할 필요가 없다
응용 인터페이스라고도 함
- 물리적 데이터 독립성 (개념-내부)
내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것 → 결과적으로 외부 스키마도 영향받지 않음
4. 데이터 사전
저장된 데이터를 올바르게 관리하고 이용하기 위해 필요한 부가 정보 저장 (스키마, 사상 정보)
- 데이터 사전(data dictionary) /시스템 카탈로그(system catalog)
데이터베이스에 저장되어 있는 데이터를 정확하고 효율적으로 이용하기 위해 참고해야 하는 스키마, 사상 정보, 다양한 제약조건 등을 저장
데이터에 대한 데이터 = 메타 데이터라고도 함
시스템 데이터베이스라고도 한다 - 데이터를 저장하는 데이터베이스의 일종
- 데이터 디렉터리: 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보 관리
데이터 사전: 사용자도 접근 가능
데이터 디렉터리: 시스템만 접근 가능
03 데이터베이스 사용자
1. 데이터베이스 관리자
데이터베이스 시스템을 운영 / 관리
조직 내의 사용자를 위해 데이터베이스를 설계, 구축, 제어
- 주요 업무
- 데이터베이스 구성 요소 선정
- 데이터베이스 스키마 정의
- 물리적 저장 구조와 접근 방법 결정 (인덱스를 만들 기준 필드)
- 무결성 유지를 위한 제약조건 정의
- 보안 및 접근 권한 정책 결정
- 백업 및 회복 기법 정의
- 시스템 데이터베이스 관리
- 시스템 성능 감시 및 성능 분석
- 데이터베이스 재구성
2. 최종 사용자
데이터를 조작(삽입 삭제 수정 검색)하기 위해 데이터베이스에 접근하는 사람들 (일반 사용자)
주로 데이터 조작어 사용
- 캐주얼 사용자: 이론적 지식 O, 데이터 조작어 사용
- 초보 사용자: 초보 수준으로 이용, 데이터 조작어보다는 메뉴나 GUI로 이용
3. 응용 프로그래머
프로그래밍 언어로 응용 프로그램을 작성할 때 데이터베이스에 접근하는 데이터 조작어를 삽입하는 사용자
주로 데이터 조작어 사용
04 데이터 언어
1. 데이터 정의어
DDL: Data Definition Language
새로운 데이터베이스를 구축하기 위해 스키마를 정의하거나 기존 스키마의 정의를 삭제, 수정하기 위해 사용
- 새로 만들려는 데이터베이스의 스키마를 설명, 이미 정의된 스키마의 구조나 제약조건을 변경/삭제
정의된 스키마는 데이터 사전에 저장, 반영
2. 데이터 조작어
DML: Data Manipulation Language
데이터의 삽입 삭제 수정 검색 등의 처리를 데이터베이스 관리 시스템에 요구
스키마에 따라 조작에 필요한 실제 데이터 값(인스턴스)이 저장
사용자가 실제 데이터 값을 활용하기 위해 사용함
- 절차적 데이터 조작어
- 사용자가 어떤 데이터를 원하고 해당 데이터를 얻으려면 어떻게 처리해야 하는지를 구체적으로 설명
- 비절차적 데이터 조작어선언적 언어
- 사용자가 어떤 데이터를 원하는지만 설명 → 어떻게 처리해야 하는지는 데이터베이스 관리 시스템에 맡긴다
3. 데이터 제어어
DCL: Data Control Language
데이터베이스에 저장된 데이터를 여러 사용자가 무결성과 일관성을 유지하며 문제없이 공유할 수 있도록, 내부적으로 필요한 규칙이나 기법을 정의
다음 특성을 보장
- 무결성: 데이터베이스에 정확하고 유효한 데이터만 유지
- 보안: 허가받지 않는 사용자가 데이터에 접근하는 것을 차단, 허가된 사용자가 접근 권한이 있는 데이터에만 접근할 수 있게 함
- 회복: 장애가 발생해도 데이터의 일관성 유지
- 동시성: 여러 사용자가같은 데이터에 동시에 접근하여 처리할 수 있게 함
05 데이터베이스 관리 시스템의 구성
1. 질의 처리기
사용자의 데이터 처리 요구를 해석하여 처리하는 역할
구성 요소
- DDL 컴파일러 - 데이터 정의어로 작성된 스키마의 정의 해석
- DML 프리 컴파일러 - 응용 프로그램에 사입된 데이터 조작어를 추출하여 DML 컴파일러에 전달
- DML 컴파일러 : 데이터 조작어로 작성된 데이터의 처리(삽입 삭제 수정 검색) 요구를 분석하여 해석
- 런타임 데이터베이스 처리기: 저장 데이터 관리자를 통해 데이터베이스에 접근, DML 컴파일러로부터 전달받은 데이터 처리 요구를 데이터베이스에서 실제로 실행
- 트랜잭션 관리자: 데이터베이스에 접근하는 과정에서 사용자의 접근 권한이 유효한지 검사, 데이터베이스 무결성을 유지하기 위한 제약조건 위반 여부를 확인
2. 저장 데이터 관리자
디스크에 저장된 데이터베이스와 데이터 사전을 관리, 여기에 실제로 접근하는 역할
'CS > DataBase' 카테고리의 다른 글
[데이터베이스 개론] 5. 관계 데이터 모델 (1) | 2022.09.29 |
---|---|
[데이터베이스 개론] 4. 데이터 모델링 (0) | 2022.09.27 |
[데이터베이스 개론] 2. 데이터베이스 관리 시스템 (1) | 2022.09.20 |
[데이터베이스 개론] 1. 데이터베이스 기본 개념 (0) | 2022.09.19 |
[DB/자바] JDBC (Java Database Connectivity) (MySQL) (0) | 2022.09.14 |