일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 비둘기목
- structured_array
- 기러기목
- Python
- 가마우지과
- 딥러닝 공부
- Birthday paradox
- 생일문제
- keras
- 비둘기과
- ADsP
- 맑은소리 스피치학원
- 직박구리과
- 백로과
- SimpleCraft
- 오리과
- django
- 한국의새
- 솔딱새과
- 흰날개해오라기
- 계수정렬
- IBK기업은행 인턴
- AI역량평가
- 한국의 새
- 딥러닝공부
- AI전략게임
- 참새과
- 딱다구리과
- 참새목
- python3
- Today
- Total
진박사의 일상
[데베시] 2강 본문
목표 : 데이터베이스 시스템의 개념과 구조
- 데이터모델(카테고리), 스키마&인스턴스(3단계 스키마 구조), 데이터 독립, 데이터베이스 언어와 인터페이스
데이터 모델
- DB의 구조(데이터의 특성)를 기술하는 개념의 집합
- 데이터 추상화를 가능하게 함
- concept의 수준별 모델 : Physical Model, Conceptual Model, Representational Models
Physical Data Models (물리 데이터 모델)
- 컴퓨터 저장 매체에 데이터가 어떻게 물리적으로 저장되는가에 대한 상세를 기술
- 물리적 저장 방식에 가까움 -> Low-level Data Model
- 레코드와 관련된 정보 : Type, Index, Access path
Conceptual Data Models(개념 데이터 모델)
- 사람의 입장으로 데이터가 개념적으로 어떻게 표현되는지 기술
- 사람이 인식하는 방식에 가까움 -> High-level Data Model
- 예시 : Entity-relationship model(ER model)
Representational Data Models(표현 데이터 모델)
- 물리 모델과 개념 모델의 중간에 위치 -> 사람이 이해하기 쉬움, 데이터가 저장소에 저장되는 방식과도 유사
- 그래서 Implementation data models(구현 데이터 모델)이라고도 함.
- 대부분의 상업적 DBMS에서 사용
- 예시 : Relatoinal model(우세), Network model, Hirerarchical model
Schemas and Instances
- Database Schema (or meta-data or intension) : 모델에 의해 표현된 DB 구조의 기술.
데이터베이스가 설계될 때부터 데이터베이스 디자이너에 의해 정의됨. DB life cycle 동안 거의 변하지 않음.
- Schema diagram : 스키마의 요소를 그림으로 표현
- Database Instance : 실제 DB에 특정 시점에 저장된 데이터. database state, snapshot, occurrence, extension 등으로 불림. DB의 insertions, updates, deletions 등에 의해 자주 바뀜
Three-Schema Architecture
- 목적 : 응용 프로그램이 DB 구조에 종속되지 않도록 막기 위해 설계됨. (독립성을 위해)
- Database designer : 어떤 데이터가 저장될지 고름, DB의 구조와 특징(즉, 스키마)을 정의
- Internal Level : 전체 DB의 물리적 저장소 구조를 기술 -> 물리 데이터 모델로 표현
- Conceptual Level : 사용자를 위해 전체 DB를 논리 구조로 기술
Entities, Data types, Relations, User Operatioins, Constraints 등으로 구성
물리적 저장소 구조의 상세를 숨김 -> 상위 데이터 모델(개념적, 표현적 데이터 모델)로 표현
- External or View level : 특정 유저 그룹이 관심 있는 논리적 DB 구조의 일부를 기술
전체 DB의 나머지 부분을 숨김 -> 상위 데이터 모델(개념적, 표현적 데이터 모델)로 표현
각 레벨 사이의 Mapping을 통해 변환, 각 레벨은 서로 독립적이라 각 레벨의 스키마의 구조가 바뀌어도 다른 레벨에는 영향이 없음.
External과 Internal Schema는 DB를 서로 다른 방식으로 표현
-> Internal Schema는 물리적으로 DB가 저장된 방식을 기술
-> External Schema는 논리적, 개념적으로 DB의 구조를 기술
Mapping mechanism - 스키마 레벨 사이에서 연결
1. 사용자 쿼리는 External Level Schema
2. External Level 쿼리 -> Conceptual Level 쿼리로 매핑
3. Conceptual Level 쿼리 -> Internal Level Schema로 매핑
4. 저장된 DB에서 결과를 가져옴
5. External View로 결과를 매핑
Data Independence
- 정의 : 상위 레벨의 스키마를 변경하지 않으면서 DB 시스템의 한 레벨의 스키마를 변경할 수 있도록 함.
- 종류 : Logical data independence, Physical data independence
- 특징 : DBMS의 가장 중요한 특징 중 하나, 응용 프로그램을 관리하는 overhead를 확실하게 감소시켜줌.
Logical Data Independence
- Conceptual Schema를 변경할 때 External Schema가 바뀌지 않음 -> External Schema를 참조하는 응용 프로그램을 다시 작성할 필요가 없음.
Physical Data Independence
- Internal Schema를 변경할 때 Conceptual Schema 변경 X -> External Schema, 응용 프로그램을 변경될 필요 없음
DBMS Languages
- DBMS에 의해 제공되며 DB를 조작, 관리하는 언어
- Data Definition Language(DDL) : DB의 External/Conceptual Schema를 정의하는 언어
- Data Manipulation Language(DML) : 사용자가 data의 검색, 삽입, 삭제, 수정에 사용하는 언어
- Storage Definition Language(SDL) : DB의 Internal Schema를 관리하는 언어
- View Definition Language(VDL) : 특정 사용자의 뷰를 명시하는데 사용되는 언어
- Procedural DML(절차적 DML) : 사용자 쿼리를 절차적으로 정의. 데이터를 검색하는 방법에 초점 -> 상세한 step을 명시
- Non-procedural DML(비절차적 DML) : 사용자 쿼리를 선언적으로 정의. 검색해야 할 데이터에 초점.
DBMS Interfaces
- Menu-based Interfaces : 메뉴에서 제공하는 쿼리를 통해 DB에 접근, 웹 어플리케이션에 사용
- Graphical User Interface : DB 스키마에 대한 그래픽을 조작해 DB에 접근, 초심자용 어플리케이션
- Forms-based Interface : 폼을 채워서 DB 접근
- Natural Language Interface : 자연어 인터페이스로 DB 접근
- Interfaces for DBAs : 데이터베이스 관리자를 위한 인터페이스
DBMS Component Modules
Stored data manager : 저장소에 저장된 모든 데이터(User Data + 시스템 카탈로그의 Meta Data)를 향하는 접근을 통제.
DDL Compiler : DDL에 의해 정의된 Schema를 처리, 스키마에 관한 메타데이터를 DBMS의 시스템 카탈로그에 저장
Runtime Database Processor : 사용자의 query를 처리하기 위해 DB에 접근
Query Compiler(Interactive SQL) : high-level의 DBMS queries를 파싱 -> 내부 구조가 이해할 수 있는 구조로 컴파일링.
Precompiler : 전체 프로그램 중 SQL의 DML 명령어 부분을 추출
DML Compiler : DML 명령어들을 DB 접근을 위한 object code로 컴파일
Database System Utilites
- Database Utilities : DBA가 DB 시스템을 쉽게 관리하도록 도움
- Loading : DBMS 외부에 존재하는 data file을 DB로 자동 변환해 로딩, 새로운 DB 만드는데 유용
- Backup : DB의 백업 카피를 생성, 문제가 생겼을때 백업으로 복원
- Database storage reorganization : DB 파일을 다른 파일 구조로 재구조화. DBMS 성능을 높이는데 도움.
- Perfomance monitoring : DB 사용을 모니터링하고 DBA에게 통계 자료를 제공. 다른 포맷으로 reorganize할지 말지에 대한 결정을 내리는데 도움.
Classification of DBMS
- Relational Model(관계형 모델) : DB를 tables의 모음으로 표현, table은 records의 세트로 구성, 가장 인기
- Network Model(네트워크 모델) : 데이터를 record type과 1:N set type으로 표현, 거의 사용 x
- Hierarchical Model(계층형 모델) : 계층형 tree 구조로 표현, 거의 사용 x
- Object Model(객체지향 모델) : DB를 classes의 모음으로 표현, 데이터는 class에 속한 objects로 표현, 모델링 특징이 뛰어남(상속, 복잡한 오브젝트 등)
- 사용자의 수에 따른 구별 : single user DBMS(ex Excel), Multi-user (일반적)
- site 수에 따른 구별 : Centralized DBMS(중앙 집중형), Distributed DBMS(분산된, Homogeneous(같은 모델), Heterogeneous(서로 다른 모델))
- 목적에 따른 구별 : General purpose & Special purpose
'프로그래밍 > 공부' 카테고리의 다른 글
빅데이터 가명익명조치기술 전문 교육 2일차 요약 (0) | 2021.09.22 |
---|---|
컴퓨터 일반 요약 공부 - Part1. -2- (0) | 2021.09.16 |
빅데이터 가명익명조치기술 전문 교육 1일차 (0) | 2021.09.14 |
[컴퓨터보안] 2강 - 2장 Cryptographic Tools (0) | 2021.09.13 |
[컴퓨터보안] 1강 - 1장 Computer Security (0) | 2021.09.12 |