데이터베이스 시스템의 구성
• DBMS(DataBase Management System) : 데이터를 관리하는 소프트웨어 시스템
• 데이터베이스 : 데이터를 모아둔 토대(base)
• 데이터 모델 : 데이터가 저장되는 기법 → 어떤 방식으로 데이터를 저장, 처리할 것인가?
■ 데이터베이스 언어
• SQL
- 데이터 정의어 DDL(Data Definition Language) → 테이블 구조 정의
- 데이터 조작어 DML(Data Manipulation Language) → 데이터 검색, 삽입, 삭제, 수정
- 데이터 제어어 DCL(Data Control Language) → 데이터 사용권한 관리
■ 데이터베이스 사용자
• 일반 사용자
- 데이터를 다루는 업무를 하는 사람
- 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근
• 응용 프로그래머
- 일반 사용자가 사용할 수 있도록 프로그램을 만드는 사람
- 프로그램 언어와 SQL을 사용하여 일반 사용자를 위한 UI와 데이터를 관리하는 로직 개발
• SQL 사용자
- SQL을 사용하여 업무를 처리하는 IT부서의 담당자
- 응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 사용하여 처리
• 데이터베이스 관리자(DataBase Administrator, DBA)
- 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄하는 사람
- 에티어 설계, 구현, 유지보수의 전 과정을 담당
- 사용자 통제, 보안, 모니터링, 데이터 파악, 관리, 이동 및 복사 등 제반 업무 수행
■ DBMS의 기능
• 데이터 정의 : 데이터의 구조를 정의하고 데이터 구조에 대한 삭제 및 변경 기능을 수행
• 데이터 조작 : 데이터를 조작하는 소프트웨어가 요청하는 데이터의 삽입, 수정, 삭제 지원
• 데이터 추출 : 사용자가 조ㅚ하는 데이터 혹은 응용 프로그램의 데이터 추출
• 데이터 제어 : 사용자를 생성하고 모니터링하며 접근을 제어, 백업, 회보그 동시성 제어 지원
■ 데이터 모델
데이터 모델 : 데이터베이스 시스템에서 데이터를 저장하는 이론적인 방법
데이터 모델의 종류
• 계층 데이터 모델(hierarchical data model)
• 네트워크 데이터 모델(network data model)
• 객체 데이터 모델(object data model)
• 관계 데이터 모델(relational data modal) -> 가장 많이 쓰이는 모델
• 객체-관계 데이터 모델(object-relational data model) -> 관계 데이터 모델과 객체 데이터 모델의 장점을 결합한 모델
데이터 모델을 구분하는 기준 → 게이터들 간에 관계를 표현하는 방법
• 포인터 사용 : 계층 데이터 모델, 네트워크 데이터 모델
- 데이터에 포인터 값을 넣는 방법
- 프로그램 속도는 빠르나 응용 프로그램 개발 속도는 느림
• 속성값 사용 : 관계 데이터 모델
- 키값을 데이터에 직접 저장하는 방법
- 개념이 쉽고 프로그램 개발이 빠름
• 객체식별자 사용 : 객체 데이터 모델
- 객체의 고유 식별자인 oid를 저장하는 방법
■ 데이터베이스의 개념적 구조
• 외부 스키마
- 일반 사용자나 응용프로그래머가 접근하는 계층
- 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미
- 서브 스키마라고도 하며, 뷰(view)의 개념
• 개념 스키마
- 전체 데이터베이스의 정의를 의미
- 통합 조직별로 하나만 존재하며 DBA가 관리함
- 하나의 데이터베이스에는 하나의 개념 스키마가 존재함
• 내부 스키마
- 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법의 표현
- 내부 스키마는 하나
- 인덱스, 데이터레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함
- 외부(내부)스키마가 변경되더라도 내부(외부)스키마는 바뀌지 않도록 해줌
• 외부/개념 매핑
- 사용자의 외부 스키마와 개념 스키마 간의 매핑
- 외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당되는지 대응시킴
• 개념/내부 매핑
- 개념스키마의 데이터 → 내부 스키마의 물리적 장치 => 위치와 방법을 대응
데이터 독립성
: 하위 단계의 내용을 추상화 → 상위 단계에 해당 세부 사항을 숨김
→ 한 단계 내의 변경에 대해서 다른 단계와 상호 간섭이 없도록 하는 것
• 논리적 데이터 독립성
- 외부 단계(외부 스키마)와 개념 단계(개념 스키마) 사이의 독립성
- 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원
- 논리적 구조가 변경되어도 응용프로그램에는 영향이 없도록하는 개념
- 개념스키마의 테이블을 생성, 변경하여도 외부 스키마가 다루는 테이블이 아니면 영향 X
• 물리적 데이터 독립성
- 개뇨념 단계(개념 스키마)와 내부 단계(내부 스키마) 사이의 독립성
- 내부 스키마가 변경(저장장치 구조 변경)되어도 개념 스키마에 영향을 미치지 않도록 지원
- 성능 개선을 위하여 저장 장치를 재구성할 경우 개념 스키마나 외부 스키마에 영향X
- 물리적 돋립성은 노리적 독립성보다 구현하기 쉬움
'Study Fundamental > DataBase' 카테고리의 다른 글
06. 무결성 제약조건 (0) | 2021.10.20 |
---|---|
05. 관계 데이터 모델의 개념 (0) | 2021.10.20 |
03. 파일 시스템과 DBMS의 비교 (0) | 2021.10.06 |
02. 정보 시스템의 발전 (0) | 2021.10.06 |
01. 데이터베이스와 데이터베이스 시스템 (0) | 2021.10.06 |