Programing/[DB]SQL

[DB] 데이터베이스 개념(1) - DBMS와 구성요소, 데이터 모델

바오밥 하단 2020. 9. 12. 06:55

데이터 베이스 시스템(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: 데이터를 표준화할 수 있다.