데이타베이스 시스템
Database system
: 데이타를 데이타베이스로 저장 관리하여 정보를 생성하는 컴퓨터 중심 시스템(computer-centered system)
-구성 요소
- 3-level Database
- Data Languages
- Users 사용자
- DBMS
- Database A dministrator 관리자
- Database Computer 시스템을 하드웨어적으로 효율적으로 만들 수 있게 구축한 컴퓨터(필수x)
1. 3단계 데이타베이스
-DB의 3단계(3-level) 표현
- DB에 대한 3단계 관점(View)_개인, 기관 전체, 저장장치
- 외부 단계(external level)
- 내부 단계(internal level)
- 개념 단계(conceptual level)
스키마(schema)
DB의 구조(개체, 관계)와 제약조건(constraints)을 명세
3-level DB 구조에 기반: 외부 스키마, 개념 스키마, 내부 스키마
외부 스키마(external schema)
-개개 사용자 관점에서 정의한 DB 스키마
-전체 DB의 한 논리적인 부분
-subschema
개념 스키마(conceptual schema)
-범 기관적인 관점에서 정의한 DB 스키마
-모든 응용에 대한 전체적인 통합된 데이타 구조
-schema
내부 스키마(internal schema)
-저장장치 관점에서의 정의한 DB 스키마
-개념 스키마에 대한 저장구조(storage structure)를 정의
3 단계 STUDENT database 예
개념 스키마 변경 → 외부 스키마 맵핑만 잘 연결 → 외부 스키마 변경 x
3 단계간의 사상(Mapping)
external/conceptual 단계 간의 사상
-외부 스키마와 개념 스키마간의 대응 관계를 정의
-응용 인터페이스(application interface)
-논리적 데이타 독립성을 제공
conceptual/internal 단계 간의 사상
-개념 스키마와 내부 스키마간의 대응 관계를 정의
-저장 인터페이스(storage interface)
-물리적 데이타 독립성을 제공
*Note
-구체적 데이타 독립성(data independency)의 구현 방법
-스키마는 컴파일되어 카탈로그(catalog)에 저장
-스키마 다이어그램(schema diagram): 스키마를 그래픽 형태로 표현한 것
Note
-카탈로그(catalog)
- 시스템 내의 모든 객체들에 대한 정의나 명세에 대한 정보를 수록
- 시스템 DB, 메타 데이타베이스(meta-database)
- DB 관리자(DBA)가 사용하는 도구
- 사용자와 시스템 모두 사용
- 데이타 사전(data dictionary)이라고도 함
-데이타 디렉토리(data directory)
- DB에 저장된 데이타를 참조(reference)하는데 필요한 정보를 수록
- 시스템만 사용
2. 데이타 언어(Data Language)
데이타베이스를 정의(definition), 조작(manipulation), 제어(control)하기 위한 시스템과의 통신 수단
언어; 의사소통 도구/ 데이타 언어; 사용자와 데이터베이스 사이 의사소통 도구
dbms 필수기능 3가지: 정의 /조작/ 제어 → 가능하게 해주는 언어 = 데이타 언어
데이타 정의어(DDL)
- DDL: Data Definition Language
- 데이타베이스 구조를 정의(definitions)하고 변경(alteration)하는데 사용
뼈대(구조)를 세우는 일/ 변경하는 일(잘 만들 경우 변경이 거의 이루어지지 x)
ㄴ3단계 구조: 논리적 구조-맵핑-물리적 구조
건축; 공터에 건물 짓는다; 땅에 어떤 형태의 건물 들어갈 수 있는지 조감도 그리기 → 허가 받기 위해 설계도(층별/방별 등 모든 건축 하기 위한 준비과정) 제출 → 허가 시 건축
-데이타 정의의 내용
- 논리적 데이타 구조의 정의
- 스키마, 외부 스키마 명세
- 물리적 데이타 구조의 정의데이타 저장 정의어(Data Storage Definition Language)
- 내부 스키마 명세
- 논리적 데이타 구조와 물리적 데이타 구조 간의 사상을 정의
데이타 조작어(DML)
DML: Data Manipulation Language
구조 사용하는 일/ex. 공간 사용할 사람 입주
사용자(응용 프로그램)와 DBMS 사이의 통신 수단
데이타 처리 연산(operations)의 집합(데이타의 검색, 삽입, 삭제, 변경 연산)
절차; 언어 자체에 순서를 넣는 것 → o → 절차/ x → 비절차
-절차적(procedural) DML
- 저급 데이타 언어(low-level data language)
- what과 how를 명세
- 한번에 하나의 레코드만 처리(one record at a time)
- 응용 프로그램 속에 삽입(embedded)되어 사용
- DML 예비 컴파일러(precompiled)에 의해 처리
ㄴ주언어가 따로 있고 그 속 데이터 언어가 잘 실행될 수 있도록
-비절차적(non-procedural) DML << 학기 중 배우는 것
- (사람 이해할 수 있는) 고급 데이타 언어(high-level data language)
고급일수록 순서(절차) 지시(언급)x 직접 소통
- “what”만 명세(declarative)하고 “how”는 시스템에 위임
ㄴwhat; 내가 찾는 데이터 조건 명시/ how; 방법(절차) 순서 찾는 것은 언급x dbms 알아서(권한 위임) ⇒ 내가 원하는 것에 집중 + 처리 방법 시스템 위임
ex. 네비게이션 목적지 길 여러가지_최적의 길을 찾아달라 → 비절차적/ 동호대교 반드시 건너면 좋겠어(다리지정) → 절차적
- 한번에 여러 개의 레코드를 처리(set of records at a time)
- 질의어(Query Language)
; 질문하고 대답하는 형식/ sql; 형식이 정해져 있는 질의어
독자적이고 대화식: command 타입
프로그램의 추상적 표현
*Note
-데이타 부속어(DSL, Data Sublanguage) ≠ host language
- host program 속에 삽입되어 사용되는 DML
- 비절차적 또는 절차적 DML
-데이타 언어의 완전성(completeness of data language)
- 사용자가 원하면 어떤 객체도 추출할 수 있고, 관계도 표현할 수 있는 능력
정의 → 사용자가 데이터 삽입, 정의 → 검색 무조건 가능o
데이타 제어어(DCL)
DCL: Data Control Language
공용 데이타베이스 관리를 위해 데이타 제어(data control)를 정의하고 기술
-데이타 제어 내용
- 데이터 보안(security)
- 데이터 무결성(integrity)
- 데이터 회복(recovery)
- 병행 수행(concurrency)
DB 관리 목적으로 DBA가 사용
다수 사용자 동시 접속 하나의 집중된 데이터 공용 → 무결성 깨질 위험o
사용자 눈치 채지x 시스템이 직렬적으로 차례로 처리하도록 돕는 데이터 제어어
학생 개체 안 여러 학생 삽입_각각의 속성 값 맞는 범위
; 학년 속성_1~4/ 5, 6, 7 가능성 → 잘못된 데이터/ 삭제 → 다른 사용자가 참조 → 무결성 깨짐 ⇒ 시스템 주시 → 경고 띄우기/ 제어하기
DDL(설계자/ DBA), DML(사용자), DCL(DBA) ⇒ 데이터 제어어
3. 사용자(Users)
: 데이타베이스를 이용하기 위해 접근하는 사람
-일반 사용자(end user)
- 비절차적 DML(query language) ~> 데이타베이스 접근
- menu, form, graphics
- 데이타의 insertion, deletion, update, retrieval
-응용 프로그래머(application programmar)
- 응용 프로그램(host 언어 + DML(DSL)) ~> DB 접근
- host 언어: PL/I, COBOL, PASCAL, C, Java
-DB 관리자(DBA: database administrator)
- DDL과 DCL을 ~> DB 정의하고 제어하는 사람
4. DBMS
DBMS는 Database를 관리하고 사용자가 요구하는 모든 연산을 수행
사용자와 데이터 사이 중재자 역할하는 소프트웨어
dbms 조작기능 3가지: 정의/ 조작/ 제어
- 사용자의 접근 요구(access request)를 접수/분석
- 시스템이 이해할 수 있는 형태로 사용자 요구를 변환(transform)
- 외부/개념/내부/저장 구조간의 사상(mapping)을 수행하여 저장 데이타를 접근
- 저장 DB에 대해 필요한 연산(operation)을 실행
DBMS의 구성요소
데이터 언어: DDL/ DML/ DCL ~> DBMS 접근/ 요구사항 접수 → 언어 분석 → 언어 별 처리 구조
정의 → 카탈로그 저장 검색 → 저장/ 데이타베이스 검색 → 거꾸로 가져다주기
서브 구성요소 중 저장 데이터 관리자; 저장 데이터베이스 접근
ㄴ물리적 저장 데이터베이스 → 단독활동x 운영체제 안 파일(파일매니저/ 버퍼매니저) 도움 받아 저장체제에 접근
DDL 컴파일러(DDL compiler)
-DDL로 명세된 schema를 내부 형태로 변환하여 catalog에 저장
-메타 데이타베이스(meta-database): 데이타의 데이타
ㄴ학생이라는 개체 정의 → 구조에 맞춰 실제 학생 데이터 삽입
⇒ 구조의 부분을 카탈로그로 저장 → 구조에 맞춰 삽입/ 삭제/ 갱신
질의어 처리기(query processor)
-질의문을 parsing, analysis, compile 하여 DB를 접근하기 위한 object code를 생성
질의어 → 질의어 처리기 (parsing, analysis, compile) → 런타임 데이타베이스 처리기(실시간 데이터 접근하여 동작할 수 있도록) → 저장 데이터 관리자 → 저장 데이터베이스 삽입/ 삭제/ 검색
예비 컴파일러(precompiled)
-응용 프로그램에 삽입된 DML(DSL)을 추출하고 그 자리에 procedure call로 대체
-추출된 DML은 DML 컴파일러로 전달
-수정된 응용 프로그램은 host 프로그램 컴파일러로 전달
예비 컴파일러 → 함수로 변경 → DML 컴파일러 → ... → 결과값 → host language 컴파일러
DML 컴파일러(DML compiler)
-DML 명령어를 object code로 변환
런타임 데이타베이스 처리기(runtime database processor)
-실행 시간에 데이타베이스를 접근
-DB 연산(operations)을 저장 데이타 관리자(stored data manager) ~> 수행
실시간으로 동작하며 (24시간) 즉각 접근 → 처리
트랜잭션 관리자(transaction manager)
데이터 베이스 작업 단위
all or nothing 작업 중 만약 장애 발생 → 처음으로 돌아오기
ㄴex. 금융; 인터넷 뱅킹_계좌이체(하나의 트랜잭션) → 2가지: 어머니 계좌 출금/ 내 계좌로 입금; 출금 → 입금 전 문제 ⇒ DBMS 중간 문제 발생 → 출금 되기 전 상태로 되돌림 (transaction manager)
런타임 데이터베이스 처리기가 소통
-데이터 베이스가 실행할 때 트랜잭션 단위로 작업을 수행
-DB 접근 과정에서 무결성(integrity)과 권한(authorization) 제어
-병행 제어(concurrency control)와 회복(recovery) 작업
저장 데이타 관리자(stored data manager)
-디스크에 있는 사용자 DB나 카탈로그 접근을 제어
-기본 OS module(file manager, disk manager)을 이용
- file manager ~> 화일의 페이지 결정
- disk manager가 데이타 전송을 수행
- 메모리 내에서는 buffer manager가 관리
5. 데이타베이스 관리자(DBA)
DBA: Database Administrator
DB 시스템의 관리, 운영에 대한 모든 책임을 지는 사람
DBA의 업무
-DB 설계와 운영
- DB의 구성요소(components)를 결정_개체와 관계 결정
- 스키마 정의_3단계 스키마
- 저장 구조와 접근 방법 설정
- 보안 정책 수립, 권한 부여, 유효성 검사 DCL
- 백업(backup), 회복(recovery) 절차의 수립
- DB의 무결성 유지
- 성능 향상과 새로운 요구에 대응한 DB의 재구성
- Catalog의 유지 관리
-행정 및 불평 해결
- 데이타의 표현과 시스템의 문서화(지식을 글로 표현)에 표준 설정
- 사용자의 요구 및 불평 해석
-시스템 감시(monitoring) 및 성능 분석
- 시스템 성능의 청취
- 자원의 효율적 이용도, 한 자원에 집중하는 병복현상(bottleneck), 장비 성능 등
- 사용자 요구의 변화, 데이타 사용 추세, 각종 통계의 종합 분석
6. 하드웨어: 데이타베이스 컴퓨터
필수적x 특수 목적 하드웨어 필요한 경우 요구 but 일반적인 데이터 시스템 요구x
-대규모 Database(VLDB)
DB 규모의 대형화
- GB(gigabyte): 1024MB
- TB(terabyte): 1024GB
- PB(petabyte): 1024TB
- EB(exabyte): 1024PB
-DB기능만으로 효율적으로 수행하기 위한 특수 목적의 하드웨어
- backend computer(후위 컴퓨터) 벡엔드 시스템
- 지능형 저장 장치
- 내용식 메모리(associative memory)
- 병렬 처리(parallel processing)
데이타베이스 컴퓨터 구성도
데이타베이스 시스템 구성도
3장 내용 종합 설명 그림
독립성 → 3단계 스키마 → 맵핑
데이터 언어(ddl/dml/dcl)
사용자
잘 활용하도록 도와주는 소프트웨어: dbms
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이타베이스론] CH6. SQL (0) | 2022.05.20 |
---|---|
[데이타베이스론] CH5. 관계 대수와 관계 해석 (0) | 2022.05.20 |
[데이타베이스론] CH4. 관계 데이터베이스 (0) | 2022.05.20 |
[데이타베이스론] CH2. 데이타베이스 관리시스템 (0) | 2022.05.20 |
[데이타베이스론] CH1. 데이타베이스 환경 (0) | 2022.05.20 |