데이터 베이스 시스템(DBMS: Database Management System)
큰 마음 먹고 공부 시작! 누구누구 따라서 아이콘도 만들어봤다ㅎ
1. 개념
데이터를 전산화하여 보관하는 시스템. 모든 데이터를 담는 것이 아니라 베이스의 체계와 규격에 맞는 데이터를 모아 구조적으로 통합해 놓은 것이다.
아래 도식처럼 응용 프로그램(Application Program)과 이 프로그램을 사용하는 유저(End-User)를 연결한다.
1-2. 기능
-
데이터 정의(Definition): 데이터의 구조를 정의하고 데이터 구조에 대한 삭제, 변경 등의 기능을 수행한다. 소스 형식의 데이터 정의(외부 스키마, 개념 스키마, 내부 스키마 및 모든 관련 매핑)를 수락하고 이를 적절한 개체 형식으로 변환한다. DDL을 사용한다.
-
데이터 조작(Manipulation): 기존의 데이터를 삽입, 수정, 삭제하거나 추가하는 등 사용자의 요청을 처리한다.
-
데이터 최적화와 실행(Optimization and execution): 요청을 효율적으로 처리하는 방법을 결정하고 런타임 매니저의 통제 하에 수행한다.
-
데이터 보안과 무결성(security and integrity): DBA로 정의된 보안과 무결성을 위반하지 않도록 감시한다. 제어(Control)기능이라고도 하는데 갱신, 삽입, 삭제 작업을 정확하게 수행하여 무결성이 유지되도록 하고 정당한 사용자가 허가된 데이터만 접근하도록 검사한다.
-
데이터 복구와 동시성(recovery and concurrency): 데이터를 복구할 수 있도록 하고 여러 사용자가 동시에 접근할 때 정확하게 처리하여야 한다.
-
데이터 딕셔너리(data dictionary (system catalog)): 시스템에 있는 다른 개체의 메타 데이터(데이터에 대한 데이터)의 정의를 포함하는 시스템 데이터베이스이다.-not raw data- 모든 스키마와 매핑, 상호 참조 정보 등
-
성능(performance): 유저 인터페이스(user interface)를 DBMS에 제공한다.
2. 구성 요소(Component)
- 데이터(Data)
그냥 정보만 나열한 데이터가 아니라 사람들에게 공유되며(shared), 중복 없이 통합된 데이터(integrated)이다.
영구 데이터(Persistent Data)라고도 하는데 일시적으로 쓰이고 사라지는 데이터(ephemeral data)와 다르게 오직 DBMS의 명시적인 요구에 의해서만 삭제될 수 있다. 즉, DBMS 소프트웨어를 거쳐야만 처리될 수 있다.
- 하드웨어(Hardware)
데이터를 저장하는데 사용되는 저장 장치. 프로세서와 메인 메모리와 관련된 물리적 개념이다.
ex) I/O장치, 드라이브 등등
- 소프트 웨어(Software)
DBMS. 유저들이 하드웨어에 직접 손댈 필요 없이 쉽게 데이터를 다를 수 있도록 돕는다.
- 유저(User)
앱 개발자(application programmer), 사용자(end-user), 데이터베이스 관리자(DBA: DataBase Administrator) 등이 있다.
3. 데이터 모델
1) 개체(Entities)
독립적이고(independent) 그 자체로 구별가능한(distinguishable) 대상체(object)
2) 관계(Relationship)
개체 간 혹은 속성 간의 관계를 말한다. 각 집합의 원소들은 일대일, 일대다, 다대다의 관계를 가질 수 있다.
- 단항 관계(unary relationship) : 한 집합이 한 개의 다른 집합과 대응하는 관계. bill of material.
+ bill of material
특정 제품이 어떤 부품으로 구성되는지에 대한 정보이다. 겉보기엔 단순히 제품 하나로 보이지만 그것의 구성 요소들은 다양할 수 있다.
예를 들어 "스미스는 맨해튼 프로젝트에 몽키 렌치를 공급한다"라는 데이터가 저장되어있다고 하자. 이 하나의 데이터는 "스미스는 몽키 렌치를 공급한다", "Manhanttan 프로젝트에서 몽키 렌치를 사용한다", "맨해튼 프로젝트는 스미스가 공급한다" 등의 많은 정보를 담고 있다.
- 이항 관계(binary relationship): 한 집합이 두 개의 다른 집합과 대응하는 관계.
- 삼항 관계(ternary relationship) : 한 집합이 세 개의 다른 집합과 대응하는 관계.
관계는 기본 개체만큼 많은 데이터의 한 요소이다.
개체(관계)는 우리가 기록하고자 하는 정보의 속성(properties)을 갖는 것으로 볼 수 있다.
ex) '공급자'(개체) - 위치, 이름, 도시 등의 속성
3) 데이터 모델(Data model)
데이터들을 표현하기 위해서 단순화, 추상화 하여 체계적으로 표현한 개념적 모형이다.
데이터, 데이터의 관계, 데이터의 의미 및 일관성, 제약조건 등을 기술하기 위해 개념적 도구, 즉 오브젝트(object)와 연산(operator)을 사용한다. 오브젝트는 데이터 구조를 모델링할 수 있게 해주고, 연산은 오브젝트의 행동을 모형화하게 한다.
사용자는 데이터 모델을 알아야하지만 모델의 물리적 구현은 알 필요가 없다.
4. 데이터 베이스를 사용하는 이유
1) Data independence: 데이터의 독립성이 보장
2) Integrity: 데이터를 통합하여 관리
3) Security: 보안
4) Reduction of redundancy: 데이터의 중복을 피할 수 있다.
5) Avoidance of inconsistency: 데이터의 일관성을 유지할 수 있다.
6) Data sharing: 저장된 자료를 공동으로 이용할 수 있다.
7) Transaction support: 동시에 수행되는 트랜잭션들이 상호 방해를 받지 않고 효율적으로 수행한다. 즉, 다수 사용자용 DBMS에서 여러 사용자가 동시에 DB를 접근할 수 있도록 지원하고 데이터의 일관성을 보장하는 것이다.
ex) 항공 회사의 여러 에이전트들이 동일한 좌석을 예약하는 경우에도 DBMS는 하나의 좌석이 한 에이전트에게만 지정하도록 한다.
8) Standars: 데이터를 표준화할 수 있다.
'Programing > [DB]SQL' 카테고리의 다른 글
[DB] E-R 모델을 이용한 데이터베이스 디자인(2), UML (0) | 2020.10.11 |
---|---|
[DB] E-R 모델을 이용한 데이터베이스 디자인(1) (0) | 2020.09.28 |
[DB]데이터베이스 개념(3) - DBA, DC Manager, 클라이언트/서버, 분산처리 (0) | 2020.09.14 |
[DB] 데이터베이스 개념(2) - 독립성, 구조, 매핑, DBA 등 (0) | 2020.09.13 |