728x90
반응형
출처: 심준호 교수님, 데이터베이스설계와 질의 수업,
R. Ramakrishnan and J.Gehrke, Database Management Systems, 3rd ed.
데이터베이스 시스템 3판
DBMS란?
데이터베이스 관리 시스템(DataBase Management System)은 대규모의 데이터를 유지관리하고 이용하는 데에 도움이 되도록 설계된 소프트웨어
DBMS의 장점
- 데이터 독립성: 세부사항을 은닉하는 데이터의 추상적인 관점을 제공
- 효율적인 데이터 접근
- 데이터 무결성과 보안성: 데이터가 항상 DBMS를 통해 접근하면, DBMS는 무결성 제약조건을 집행할 수 있다. 또한, DBMS는 여러 부류의 사용자들에게 무슨 데이터가 보여질 수 있는지를 주관하는 접근제어를 집행할 수 있다.
- 데이터 관리: 여러 사용자들이 데이터를 공유할 때, 데이터에 대한 관리를 중앙 집중화한다.
- 동시접근 및 손상복구: DBMS는 오직 한 사용자에 의해 데이터가 접근된다고 생각할 수 있도록, 데이터의 동시 접근을 계획한다. 시스템의 붕괴로 인한 영향으로부터 사용자를 보호한다.
Data Models
데이터 모델: 데이터가 모아진 것. 많은 저수준의 저장에 대한 내용들을 감추고, 고수준의 데이터를 기술하는 구성자들의 집합이다.
오늘날 대부분의 DBMS는 relational data model(관계 데이터 모델)에 기반한다.
- relation: rows와 columns로 이루어진 table.
- schema: 어떤 데이터 모델(columns, fields)에 의거한 데이터의 기술.
관계모델에서 한 relation의 schema는 relation의 이름, 각 필드의 이름과 타입을 명세한다. - 무결성 제약조건: 한 relation에 있는 record들이 반드시 만족해야 하는 조건들
Data Models의 역사
- 1960년대 초반: Network Model
- General Electric 사의 Charles Bachman에 의해 설계
- CODASYL에서 표준화가 이루어졌다.
- 1960년대 말: Hierarchical Model
- IMB에서 Information Management System(IMS) 라는 DBMS 설계
- SABRE 시스템을 통해, 여러 사람이 컴퓨터 네트워크를 통해 같은 데이터를 접근하도록 했다.
- 1970년대: Relational Model
- IBM의 Edgar Codd에 의해서 개발되었다.
- IBM의 System R 프로젝트의 일환으로 SQL이 개발되었다.
- 1980~1990년대: Extended(Object) Relational Model, Object-Oriented Model
- 1990년대 말: Data Warehousing, Data Mining, Distributed Db, Web Database, ERP, …
- Entity-Relationship Model(ER)
- Semantic Data Model vs Record-based Mode
DBMS의 추상화 단계
: 개념 스키마, 외부 스키마, 물리적 스키마에 관한 정보는 시스템 카탈로그에 저장된다.
: 다수의 views, 하나의 Conceptual(logical) schema와 physical schema로 이루어진다.
: 3단계로 구성하는 이유는 data independency 때문이다. Conceptual schema가 바뀌더라도 직접적인 영향이 없는 건 그대로 사용하고자 Level을 나눈 것이다.
Conceptual Schema (개념 스키마, 논리적 스키마)
- DBMS의 데이터 모델의 의해 저장되는 데이터를 기술하며, DDL이 사용된다.
- RDBMS에서는 각 개체 집합과 각 관계 집합을 기술한다.
Physical Schema (물리적 스키마)
- 추가적인 저장의 세부사항들을 명시한다. 보조 데이터 구조인 인덱스 생성을 위해 어떤 파일 조직들을 사용할 것인지를 결정한다.
- 개념 스키마로 기술되어 있는 relation들이 디스크와 테이프 등과 같은 보조기억장치에 실제로 어떻게 저장되는가를 명시한다.
External Schema (외부 스키마)
- 개별 사용자들이나 사용자 그룹들 수준에서 주문에 따라 데이터 접근이 되며, 특정 사용자 그룹의 목적에 맞게 만들어진다.
- 개념 스키마로부터 만들어지고 DDL을 사용하며 하나 이상의 뷰와 relation으로 이루어진다. view 내에 있는 레코드들은 DBMS에 저장되지 않는다.
Example) University Database
- Conceptual Schema:
- Students (sid: string, name: string, login: string, age: integer, gpa: real)
- Courses(cid: string, cname: string, credits: integer)
- Enrolled(sid: string, cid: string, grade: string)
- Physical Schema:
- Relations 들은 unordered files로 저장된다.
- Students의 첫번째 컬럼에 Index를 생성한다.
- External Schema(View):
- Courseinfo(cid: string, fname: string, enrollment: integer)
📌 파일 시스템과 DBMS의 비교
- 파일 시스템 같은 경우에는 관련된 프로그램을 모두 수정해야 하는데, 이런 경우 dependency가 높기 때문에 이를 줄이고자 schema를 분리하게 되었다.
728x90
반응형
'데이터베이스' 카테고리의 다른 글
[Redis] Docker에 Redis 설치하기 (0) | 2024.09.02 |
---|---|
[데이터베이스설계와질의] 트랜잭션(transaction)이란? (0) | 2023.11.06 |
[데이터베이스] 외래키(FK) 식별관계와 비식별관계 (0) | 2023.10.17 |
[MariaDB] 데이터베이스 한국어 사용 가능 (2) | 2023.10.04 |
[MariaDB] 데이터베이스 생성, 계정생성, 권한 부여 (0) | 2023.07.06 |