2022. 9. 15. 00:40
728x90
Data Model
Data 추상화를 위한 도구이다. 다음의 내용이 포함된다.
- Structure of DB
- Elements and Data types
- Entity, Record, Table
- Relationships
- Operation for manipulating
- basic model operations
- user-defined operations
- Constraints
- Valid data에 대한 제약
Categories of Data Models
Conceptual | Physical | Implementation | Self-Describing |
Entity-based, Object-based라고도 불린다. 사람이 이해할 수 있는 data model이다. | 컴퓨터가 이해하기 쉬운 모델이다. 어디다 저장할지 등의 정보가 담겨 있다. | Conceptual과 Physical 사이의 연결성 구현이다. | Data와 meta data를 같이 저장하는 방식이다. XML, key-value, NOSQL 등이 있다. |
Schemas vs State
DB Schemas(Intension) | DB State(Extension) |
DB의 구조, 관계 등을 의미한다. Diagram을 이용해 표현하기도 한다. | 일정 순간에 DB의 모든 data를 저장한 것이다. DB instance, snapshot이라고도 불린다. "Instance"라는 말은 DB 구성요소에도 적용할 수 있다. 예를 들어, table instance, entity instance 등이 있다. |
Three-Schema Architecture
DBMS를 지원하기 위해서 나누어진 것으로, 근본적인 이유로는 Program-data independence와 Multiple view를 지원하기 위해서이다.
Internal schema | Conceptual schema | External schema |
물리적 저장 관계를 말한다. 일반적으로 은폐되어 있다. | 개념적인 요소와 물리적인 요소를 서로 맵핑한 구조이다. | 사용자가 보는 View에 해당한다. |
Data Independence
Three-schema architecture의 장점은 하위 layer를 변경해도, 상위 layer에 영향을 주지 않는다는 것이다.
Logical Data Independence | Physical Data Independence |
Conceptual schema를 바꾸더라도 External schema를 바꿀 필요가 없다. | Internal schema를 바꾸더라도 Conceptual schema를 바꿀 필요가 없다. |
DBMS Languages
- Data Definition Language(DDL)
- Data 구조 관련(Internal; SDL / External; VDL)
- Data Manipulation Language(DML)
- Data 조회, 갱신 등 조작 관련
- High-Level(Non-procedure) Language
- 선언적인 언어(a=4)
- Low-Level(Procedure) Language
- 어디에 접근해야하는지 전부 구현
DBMS Programming Language Interfaces
DML을 사용하는 방식은 다음과 같다.
- Embedded Approach
- Host language(C, C++ 등)으로 사용 가능하다.
- SQLJ (for Java)
- Procedure Call Approach
- DB connector를 통해서 접근하는 방식이다.
- JDBC (for Java), ODBC (for others, API)
- Database Programming Language Approach
- SQL 기반의 프로그래밍 언어
- ORACLE
- Scripting Languages
- PHP, Python을 이용해 DB program 구현
User-Friendly DBMS Interfaces
- Menu-based
- Forms-based
- Graphics-based
- Natural language(검색을 의미)
- Combinations of the above
Typical DBMS Component Modules
DBA가 DDL 기반으로 작성한 schema를 바탕으로 Query나 DML을 수행한다.
Centralized DBMS
보통 소규모에서 위와 같이 사용한다.
Basic 2-tier Client-Server DBMS
어느정도 규모가 있는 곳에서 사용한다. 공통적으로 사용되는 기능을 한대 이상의 서버를 유지하여 사용하는 Intranet 기반의 동작이다.
3-tier Client-Server DBMS
User가 직접 DB에 접근하지 못하는 구조이다. 보안상에 유리하다. 일반적으로 Web application을 생각하면 된다. 2-tier에서 중간 서버가 추가된 것으로, 중간서버가 user와 server 사이에서 조율한다. 대규모 글로벌 기업에서 주로 사용한다.
Classification of DBMSs
- Data model을 기반으로 정의하기도 한다.
- Legacy: Network, Hierarchical
- Current: Relational, Object-oriented, Object-relational
- Recent technology: Key-value storage system (NOSQL)
- Sigle-user vs Multi-user
- Centralied vs Distributed
Variations of Distributed DBMSs(DDBMSs)
Homogeneouse DDBMSs | Heterogeneous DDBMSs |
각 site에 모든 user의 data를 일치시키는 방식이다. DBMS도 동일하다. |
각 site 마다 다른 DBMS를 사용하는 방식이다. 필요하다면 서로 접근할 수도 있다. |
Distributed DB system은 client-server based DB system이라고도 불린다. 완벽하게 전체를 커버하지는 않기 때문이다.
'대학교 > 데이터베이스개론' 카테고리의 다른 글
[CS/데이터베이스개론] 6. Indexing Structures for Files and Physical Database Design (0) | 2022.10.12 |
---|---|
[CS/데이터베이스개론] 5. Basic SQL (1) | 2022.09.30 |
[CS/데이터베이스개론] 4. The Relational Data Model & Relational Database Constraints (0) | 2022.09.25 |
[CS/데이터베이스개론] 3.Data Modeling Using the Entity-Relationship(ER) Model (0) | 2022.09.15 |
[CS/데이터베이스개론] 1. Databases and Users (0) | 2022.09.06 |