목차
- DataBaseSystem이란?
- Database System은 필요성과 요구사항
- DBMS의 구성요소는?
- DBMS의 구조와 사용자 종류
Data Base System이란?
데이터 베이스 시스템 = 데이터 베이스 + 데이터 베이스 관리 소프트웨어
로 구성된다고 이야기할 수 있다.
전체적인 구조도는 다음과 같다.
DBMS는 왜 필요한가?(기존 파일 시스템의 문제)
1. 데이터 추상화의 어려움 & 종속성 문제
- 기존의 파일 시스템은 OS로 인해 관리된다.
- 이로 인해 특정 데이터를 찾기 위해서는 이러한 파일 시스템의 구조도를 바탕으로 데이터의 위치를 명시 해줘야했다.
- 이는 사용자가 프로그램을 짤 때 자기가 사용하고자 하는 파일 시스템의 물리적 구조도를 명시해줘야한다는 단점을 내포하게 된다.
- 이는 사용자가 만드는 프로그램이 데이터베이스의 물리적 구조와 결합도가 커지는 문제가 생기게 된다는 단점을 내포하게 된다.
- 따라서 데이터 베이스의 물리적 구조의 변경이 사용자의 프로그램에 많은 영향을 미칠 수 밖에 없게 된다.
- 또한 데이터 베이스 관리자는 자신의 데이터 베이스의 구조도를 사용자에게 숨기기 어렵다는 단점을 내포하게 된다.
→ 데이터 추상화가 가능해져야한다.
2. 데이터 중복성 및 무결성 문제
- 파일에 같은 정보가 복수개 들어가는 것을 방지 할 수 없다.
- 이는 데이터의 일관성을 해치게 만들고 공간을 낭비하게 된다.
- 이와 비슷하게 데이터를 저장할 때 해당 데이터의 속성에 맞지 않는 데이터가 들어가는 것을 방지하지 못한다.
- 자료형 문제, 범위 문제, 고유성 문제
→ 저장장치에 데이터 베이스를 생성하고 관리할 수 있어야한다.
3. 접근 관리 문제
- 많은 사용자가 데이터 베이스에 접근하려고 할 때 이를 관리할 수 없다.
- 이러한 동시성 제어 등이 빠지게 되면 데이터의 일관성을 해치게 된다.
→ 많은 사용자에게 데이터를 공유 시킬 수 있어야한다.
→ 트랜잭션 관리를 해야한다.(동시성 제어)
4. 데이터 복구 문제
- 시스템 fail로 인해 데이터 베이스의 데이터의 일관성을 해치게 될 수 있다.
- 기존의 OS로는 이러한 상황에 대한 완벽한 복구는 사실상 불가능 하기 때문에 문제가 발생한다.
→ System fail로 부터 복구를 할 수 있어야한다.
5. Query 처리 문제
- 특정 데이터를 찾기 위한 query에 대해 OS가 최적화 되어있지 않다.
- 이런 문제로 여러 데이터, 복잡한 데이터를 찾을 때 오랜 시간이 걸릴 수 밖에 없게 되는 문제가 존재하게 된다.
→ 데이터 베이스에서 검색이나 업데이트를 위한 query 언어가 필요하다.
→ 이러한 쿼리에 대한 최적화가 진행되어야한다.
6. 데이터 보안 문제
- 사용자에 따라 데이터의 접근 권한을 관리해줘야한다.
- 기존의 OS가 이러한 문제까지 관리하는 것은 현실적으로 불가능해진다.
→ 다양한 인터페이스를 사용자의 종류에 맞게 제공할 수 있어야한다.
데이터 베이스의 구성 요소
Database = Schema + Instance
- Database Schema
- 데이터 베이스의 구조와 제약을 설명한다.
- 데이터 베이스의 설계 당시 상세화가 되어야한다.
- 바뀌지 않는다.
- Database Instance
- 데이터 베이스의 내용
- 동적으로 바뀔 수 있다.
Database Catalog
데이터 베이스의 설명을 담고 있는 곳으로 meta-data로도 불리게 된다.
이는 DBMS와 데이터 베이스의 구조도를 알고 싶은 사용자에게 제공된다.
Database Query Language의 종류
- DDL(Data Definition Language)
- Schema, table, view등을 결정한다.
- CREATE, DROP, ALTER
- DML(Data Manipulation Language)
- Database Instance들을 검색하고 수정할 때 사용한다.
- SELECT, INSERT, DELETE, UPDATE
ANSI : 3-Schema Architecture
- 다중 사용자의 view를 만족하기 위해 application program과 physical database가 분리되어있다.
- 따라서 각 계층 사이에는 이들을 연결시켜주는 mapping이 필요하다.
About
Physical schema(internal schema)
- 데이터 베이스의 내부 구조를 묘사한다.
- ex) Customer 테이블 데이터는 이진트리로 저장되어있다.
Conceptual schema
- 사용자별 데이터 베이스의 개념적 구조도를 묘사한다.
- ex) Customers : {cid, cname, age}
External schemas(=Views)
- 특정 사용자의 요구에 맞게 데이터가 추출되서 묘사되는 것
- ex) 성인 손님들
데이터 독립성
특정 계층의 변화가 상위 계층에 영향을 안 미치는 것을 데이터의 독립성이라고 한다.
- Logical Independence
- conceptual schema가 변경되어도 이를 활용하는 external schema는 달라지지 않는 것을 의미한다.
- Physical Independence
- physical schema가 변경되어도 이를 활용하는 conceptual schema가 변화되지 않는 것을 의미한다.
데이터 베이스 사용자 class
- Database Administrator
- Database Designer
- Application Programmer
- Casual end user
- Naive end user
해당 내용은 성균관대학교 김응모 교수님 데이터 베이스 개론 수업을 듣고 정리한 것입니다.
긴 글 읽어주셔서 감사합니다.
틀린 부분이 있으면 댓글을 달아주시면 감사하겠습니다.
📧 : may3210@g.skku.edu
'Computer Science > 데이터베이스' 카테고리의 다른 글
Relational Model (0) | 2022.04.04 |
---|---|
EER Modeling (0) | 2022.04.02 |
ER Modeling (0) | 2022.03.31 |