(2022.04.03)
데이터베이스 강의들으면서 정리하기 3탄
2주차(3/15 강의)
정리할 내용 목차
- DataBase System (DBS)
- DataBase - schema & instance
- DataBase 3단계 구조
- DataBase mapping
- DataBase - system database & user database
- DataBase management system 구성
DataBase System (DBS)
: DB에 data를 저장하고 관리해서 조직에 필요한 information을 생성해주는 시스템
DataBase - schema & instance
- schema : DB에 저장되는 데이터 구조와 제약조건을 정의한 것
- instance : schema에 따라 DB에 실제로 저장된 값
DataBase 3단계 구조
- 외부단계 external level
- 개념단계 conceptual level
- 내부단계 internal level
각 단계별로 다른 추상화 abstraction 제공
내부--> 외부 : abstraction level high
1) External schema
- 개별 사용자 관점
- 사용자에게 필요한 DB를 정의한 것
- DB 하나에 external schema 가 여러 개 존재할 수 있음
- 논리적 구조로 사용자마다 다름: 각 사용자가 생각하는 DB의 모습
- (external schema = sub schema)
2) Conceptual schema
- 조직 전쳬 관점
- DB 전체의 논리적 구조를 정의한 것
- DB 하나에 conceptual schema 가 하나만 존재
- 전체 DB에 어떤 data가 저장되는지, data들 간에는 어떤 관계, 어떤 제약 조건이 존재하는지, data에 대한 보안 정책이나 접근 권한
3) Internal schema
- 물리적 저장장치 관점
- DB 하나에 intermal shema 가 하나만 존재
- record 구조, field 크기, record 접근 경로 등 물리적 저장 구조를 정의
DataBase mapping
--> database 를 3단계 구조로 나누고, 단계별로 schema를 유지하며, schema 사이의 대응관계를 정의하는 목적은
데이터 독립성의 실현이이다.
data independency : 하위 schema를 변경하더라도 상위 schema가 영향을 받지 않는 특성
schema 사이의 대응관계 (mapping) 는 두 가지가 있다.
- 외부/개념 mapping (application interface) --> 논리적 데이터 독립성
- 개념/내부 mapping (storage interface) --> 물리적 데이터 독립성
DataBase - system database & userdatabse
- Data Dictionary
- Data Directory
- User database
1. data dictionary
- system catalog 라고도 한다.
- DB에 저장되는 data에 관한 정보 (meta data)를 담고 있는 system database 이다.
- schema, mapping information, 제약조건 등을 저장한다.
- DBMS가 스스로 생성하고 유지한다.
- 일반 사용자도 접근이 가능하지만, 저장내용을 검색만 할 수 있음
2. data directory
- data dictionary 에 저장되어있는 data 에 실제로 접근하는 데 필요한 위치 정보를 저장하는 system database 이다.
- 일반 사용자의 접근은 허용되지 않음
3. user database
- 사용자가 실제로 이용하는 data가 저장되어 있는 일반 database
DataBase User
: DB를 이용하기 위해 접근하는 모든 사람을 의미한다.
이용목적에 따라 구분해본다면, 아래와 같다.
- 데이터베이스 관리자
- 최종 사용자 (일반 사용자)
- 응용 프로그래머
1. database administrator 데이터베이스 관리자
- database system을 운영하고 관리
- 주로 데이터 정의어와 데이터 제어어를 이용
2. end user 최종사용자
- database에 접근하여 data를 조작
- 주로 데이터 조작어를 사용
- 캐주얼사용자와 초보 사용자로 구분
3. application programmer 응용프로그래머
- data 언어를 삽입하여 응용프로그램 작성
- 주로 데이터 조작어를 사용
data language
: 사용자와 DBMS 간의 통신 수단
사용목적에 따라 구분하면 아래와 같다.
- 데이터 정의어 DDL
- 데이터 조작어 DML
- 데이터 제어어 DCL
1. 데이터 정의어 Data Definition Language
- 새로운 DB 구조를 정의하고, 기존 DB 구조를 변경하는 명령어 집합
- schema를 정의, 수정, 삭제하기 위해 사용
- CREATE, ALTER, DROP
2. 데이터 조작어 Data Manipulation Language
- DB 안의 데이터를 실제 조작하는 명령어 집합
- DBMS에게 data의 삽입, 삭제, 수정, 검색 등의 처리를 요청하기 위해 사용
- INSERT, UPDATE, DELETE, SELECT
(procedural과 nonprocedural 로 나뉨)
- 절차적 데이터 조작어: 사용자가 어떤(what) 데이터를 원하는지, 그 데이터를 얻기 위해 어떻게(how) 처리해야하는지 설명
- 비절차적 데이터 조작어: 사용자가 어떤(what) 데이터를 원하는지만 설명 (선언적 언어- declarative language)
3. 데이터 제어어 Data Control Language
- DB를 제어하고 통제하기 위해 사용하는 명령어 집합
- 내부적으로 필요한 규칙이나 기법을 설정하여 DBMS가 DB를 올바르게 관리하도록
- 사용 목적: 무결성, 보안, 회복, 동시성 제어
- GRANT, REVOKE, CREATE USER, COMMIT, ROLLBACK
DataBase management system 구성
- DB 관리와 사용자의 data 처리 요구를 수행한다.
- database를 효율적으로 관리하고, database에 대한 data 요청을 처리하는 소프트웨어 시스템
구성요소는 아래와 같다.
- 질의 처리기 query processor
- 저장 데이터 관리자 stored data manager
1. 질의 처리기
- 사용자의 데이터 처리 요구를 해석하여 처리한다.
2. 저장 데이터 관리자
- 디스크에 저장된 DB와 data dictionary를 관리하고 접근한다.
DataBase server
- DB가 구동되는 server의 역할을 하는 컴퓨터를 말한다.
- 클라이언트/서버 컴퓨팅 환경으로 사용자는 클라이언트 컴퓨터를 통해 접근한다. DB 처리는 주로 시스템 부하가 크기 때문에 DB system을 독립된 컴퓨터 안에서 서버형태로 운영한다. DB 서버 안에는 DB가 물리적으로 저장되고, DBMS가 설치되면서 다양한 요청이 처리된다.
- 이전에는 DB 전용 컴퓨터가 필요했으나, 컴퓨터 성능이 발전되면서 일반 컴퓨터를 DB 서버로 활용하는 것이 가능해졌다.
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 관계 데이터 연산 (0) | 2022.04.07 |
---|---|
[데이터베이스] 관계형 데이터 모델 (0) | 2022.04.07 |
[데이터베이스] Data Modeling (0) | 2022.04.05 |
[데이터베이스] DBMS (0) | 2022.03.11 |
[데이터베이스] 데이터베이스 기본 개념 (0) | 2022.03.11 |