3. 데이터베이스 시스템의 구성
구성
1) 데이터 베이스 - 하드디스크에 저장된 데이터
2) DBMS(데이터베이스 관리 시스템) - 주기억장치에 저장된 소프트웨어
3) 데이터 모델 - 논리적인 개념으로 데이터가 저장되는 기법
데이터베이스 언어 (SQL)
1) SQL : 데이터 정의어, 데이터 조작어, 데이터 제어어로 구성
2) 데이터 정의어 : DBMS에 저장된 테이블 구조 정의
3) 데이터 조작어 : 데이터를 검색 , 삽입, 삭제, 수정하는 데 사용하는 언어
질의문 (query) - 데이터 검색
질의문 구조 : SELECT - FROM - WHERE
ex. 질의문 사용 예제
[Book 테이블에서 가격이 10,000원 이상인 도서이름(bookname)과 출판사(publisher)를 검색하시오.]
SELET bookname.publisher
FROM Book
WHERE price >= 10000;
데이터 제어어 : 데이터의 사용 권한을 관리
데이터베이스 사용자
1) 일반 사용자 : 응용 프로그래머가 작성한 프로그램을 이용하는 사람
- 특별한 지식 없이 데이터베이스에 접근하여 데이터의 검색, 삽입, 삭제, 수정 작업을 한다.
2) 응용 프로그래머 : 데이터베이스를 이용하여 문제를 해결하는 프로그램을 작성하는 사람
- 프로그래밍 언어와 SQL을 이용하여서 일반 사용자를 위한 사용자 인터페이스와 데이터를 관리하는 응용 로직 개발
3) SQL 사용자 : SQL을 이용하여 프로그램을 작성하는 사람
- 응용프로그램이 구현되어 있지 않은 업무를 SQL를 사용하여 처리
- 주로 데이터를 모니터링하는 업무를 하거나 보고서 형태로 만들어 상부에 보고하는 업무
4) 데이터베이스 관리자(DBA) : 조직의 데이터베이스 운영을 총괄하는 사람
- 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람
- 데이터 설계, 구현, 유지보수의 전 과정을 담당
- 데이터베이스 사용자 통제, 보안, 성능 모니터링, 데이터 전체 파악 및 관리, 데이터 이동 및 복사 등 제반 업무를 담당
DBMS
: 사용자와 데이터베이스를 연결시켜주는 소프트웨어
데이터베이스 사용자가 데이터베이스를 생성, 공유, 관리할 수 있도록 지원해주는 총체적인 역할 수행
1) 시스템 구성
- 주기억장치에 저장된 DBMS : SQL을 번역하는 DML/DDL 컴파일러, 응용 프로그램에 삽입된 SQL을 번역하는 Embedded DML 컴파일러로 구성
- 질의처리기 : 번역된 SQL을 처리하는 알고리즘
- 트랜잭션 관리자
- 파일 관리자
- 버퍼 관리자 등 ...
2) DBMS 기능
- 데이터 정의 : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
- 데이터 조작 : 데이터 조작하는 소프트웨어(응용 프로그램)가 요청하는 데이터의 검색, 삽입, 수정, 삭제 작업을 지원
- 데이터 추출 : 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터를 추출
- 데이터 제어 : 데이터베이스 사용자를 생성하고 모니터링하며 접근을 제어
백업과 회복, 동시성 제어 등의 기능을 지원
데이터 모델
: 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법에 관한 것, 데이터베이스에서 데이터가 어떻게 구조화되어 저장되는지 결정
1) 데이터 모델 종류
계층 데이터 모델, 네트워크 데이터 모델, 객체 데이터 모델, 관계 데이터 모델 (가장 널리 쓰임), 객체-관계 데이터 모델 (현재 발전 중)
2) 데이터들 간의 관계 표현 방식 (데이터 모델을 구분하는 가장 큰 기준)
- 포인터 사용 : 계층 데이터 모델, 네트워크 데이터 모델
포인터 타입을 이용하여서 데이터 A가 저장된 포인터 값을 데이터 B에 저장하는 방법
데이터를 직접 찾아가서 프로그램 속도는 빠르나 포인터를 다루는 프로그래밍을 해야 하기 때문에 응용 프로그램 개발 속도 면에서는 느림
- 속성 값 사용 : 관계 데이터 모델
데이터 A의 속성인 값을 데이터 B에 직접 저장하는 방법
포인터를 사용한 것에 비해 속도는 상대적으로 느리지만 개념이 쉽고 프로그램 개발이 빠름 (주로 이 방법 사용)
- 객체식별자 사용 : 객체 데이터 모델
테이블 A를 객체 개념으로 보고 객체의 고유 식별자인 오브젝트 아이디(oid)를 테이블 B에 저장하는 방법 (객체지향 개념 도입)
데이터베이스의 개념적 구조
: 3단계 데이터베이스 구조
1) 외부 단계 : 일반 사용자나 응용 프로그래머가 접근하는 계층 (전체 데이터베이스 중에서 하나의 논리적이 부분)
여러 개의 외부 스키마 존재 가능성
외부 스키마 (서브 스키마) : view의 개념, 전체 데이터베이스의 일부분
스키마 : 조직이나 구조
2) 개념 단계 : 전체 데이터베이스의 정의를 의미
통합 조직별로 하나씩만 존재, DBA가 관리 (즉 하나의 데이터베이스에 하나의 개념 스키마)
개념 스키마 : 저장장치에 독립적으로 기술되어 있고 데이터와 관계, 제약사항, 무결성에 대한 내용이 포함
3) 내부 단계 : 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법을 표현
내부 스키마 (하나만 존재) : 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항 포함
- 저장 방법
외부/개념 매핑 : 사용자의 외부 스키마와 개념 스키마 간의 매핑 (사상)으로 외부 스키마의 테이터가 개념 스키마의 어느 부분에 해당하는지 대응시킴
개념/내부 매핑 : 개념 스키마의 데이터가 내부 스키마의 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킴
데이터 독립성 (3단계 데이터베이스 구조의 특징)
: 3단계 데이터베이스 구조에서 하위 단계의 내용을 추상화하여 상위 단계에 그 세부 사항을 숨김으로써 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것
1) 논리적 데이터 독립성
: 외부 단계와 개념 단계 사이의 독립성 (개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원한다)
논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념
2) 물리적 데이터 독립성
: 개념 단계와 내부 단계 사이의 독립성 (내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원한다)
물리적 독립성은 논리적 독립성보다 구현하기 쉽다.
'Computer > Database' 카테고리의 다른 글
# My SQL로 배우는 데이터베이스 개론과 실습 연습문제 2 # (0) | 2021.10.22 |
---|---|
# MySQL로 배우는 데이터베이스 개론과 실습 - 1장 연습문제 # (0) | 2021.10.22 |
04 관계 데이터 모델 (2) (0) | 2021.10.20 |
03 관계 데이터 모델 (1) (0) | 2021.10.20 |
01. 데이터베이스 시스템 (1) (0) | 2021.10.19 |