본문 바로가기

DB

[DB][데이터베이스] 1. Database Systems / 데이터베이스 시스템

반응형
  1. 데이터베이스 시스템의 정의
  2. 데이터베이스 시스템의 목적
  3. 데이터의 View
  4. 관계형 데이터베이스
  5. 데이터베이스 언어
  6. 데이터베이스 설계
  7. 데이터베이스 시스템의 역사
by Prof. Chang Hwan Lee

1. 데이터베이스 시스템의 정의

- Data Base (DB): 계산된 데이터 집합

- Data Base Management System (DBMS): 데이터에 접근하는 소프트웨어 (오라클, ....)

- Data Base System (DBS): 특정 기업의 정보를 포함 (DB + DBMS + 하드웨어 + 네트워크 + …)

 

- 데이터가 있는 곳에는 DB Application이 있다.

  ex) 은행 - 고객정보, 계좌, 신용카드거래, …)

 

- 데이터(Data)를 가공하여 정보(Information)이 된다.

  - Data는 정보의 벽돌 / Information은 데이터의 의미

  ex) Data: 투어 중인 밴드의 티켓 판매 / Information: 지역, 장소별 판매 레포트 -> 어느 장소가 적절한지

 


2. 데이터베이스 시스템의 목적

 

[Fig 1] File system vs Database system

 

- File System의 단점 (-> DB의 장점)

  - 데이터의 의존성

    - 매번 바뀌는 데이터로 프로그램 수정이 이루어진다

  - 데이터의 중복과 불일치

      - 각 유저는 다른 데이터 포맷을 쓰고, 여러 File 포맷에서 다른 Files에 중복이 일어난다

  - 데이터 접근에 어려움

      - 한 쿼리문은 한 프로그램이 된다 (SQL vs C)

  - 무결성 문제

      - 제약 조건을 추가하거나 수정하기 어렵다

      ex) account balance > 0

      - 업데이트의 Atomicity

           - 인출-입금 등과 같은 명령에서 중간의 Failures가 없도록 atomic하게 All or None을 구현해야 한다

      - 다중 사용자의 동시 접근

           ex) 두 사용자가 동시에 reading, updating

      - 보안문제

 

- 그럼 DB의 단점은?

  - DBMS에 대한 의존성

  - 비쌈

  - 느림

 


3. 데이터의 View

 

[Fig 2] 3 Level of DB Architecture

 

- DB Architecture3 Level (Levels of Abstraction)

  - Physical Level: 어떻게 저장되어 있는지 -> HW, OS

  - Logical Level: DB의 데이터와, 데이터 사이의 Relationships

      - 사람이 이해하기 편한 데이터 구조 (table, tree, graph, class, …)

  - View Level: one user/applicationone view

      - Logical Level의 부분

      - 데이터 유형의 세부 정보나 보안 정보를 숨긴다

 

  - SchemaInstance

     

[Fig 3] Schema / Instance

 

  - Physical Data의 의존성

      - Physical schema(level)를 수정해도, Logical schema(level)Application은 변하지 않는다

 


4. 관계형 데이터베이스

- Object-oriented (class) model

  - 복잡한 데이터를 표현할 수 있지만, DB 언어로 비효율적이다

 

- Hierarchical model (Tree)

 

[Fig 4] Hierarchical model

 

  - 각 부모가 자식을 가지는 구조이다

  - 장점

    - 간단하다

    - 보안성 / 무결성

    - 데이터 독립성

    - 효율성

  - 단점

    - 쿼리 언어에 효율적이지 못하다

 

- Network model (Graph)

 

[Fig 5] Network model

 

  - 각 record가 여러 부모를 가지는 구조이다

  - 장점

    - 데이터의 유동성 있는 접근

    - 보안성 / 무결성

    - 데이터 독립성

    - 효율성

  - 단점

    - 구조적 독립성에 결함이 있다

 

- NoSQL/Hadoop/MapReduce는 한 서버에 저장하기에 데이터가 너무 많아 인터넷 밖에서 처리해야 한다

- DB Design model/toolE-R data model

 

-> Relational Database Model (가장 많이 쓰임)

  - 공통의 Entity 특성을 공유하는, 관련 Tables

  - 구조적 독립성

    - Logical Data Independence는 physical schema를 변경하지 않고 데이터를 변경할 수 있는 DBMS 속성이다.

    - 이로 인해, 기존 application program을 다시 작성하지 않고도, 새 E-R을 CRUD 할 수 있다.

  - 관리가 수월하다 / 임시 쿼리 기능 SQL / DMS

  - HW, SW 오버헤드 / “islands of information”

 


5. 데이터베이스 언어

1. DDL; Data Definition Language

 

create table account ( 
  account-number char(10), 
  balance integer
)

 

  - datametadate (schema, 구조와 접근방법, 제약조건, 인증정보, …)

2 DML; Data Manipulation Language

  - Procedural: 사용자가 필요한 데이터와 방법을 지정하는 언어 (C, C++, Java, …)

- Declarative; non-procedural: 절차가 아닌 필요한 데이터를 지정하는 언어 (SQL, Prolog, …)

  - 쉽고 편리하지만 not optimal 하다

 

- SQL

 

select instructor.ID, department.building 
from instructor, department 
where instructor.dept name = “physics”

 

  - ApplicationDB(1) SQL에 내장된 확장언어나 (2) API (ODBC/JDBC)로 접근한다

  - 또한 SQL 쿼리가 내장된 언어(C, C++, Java, …)로 입출력, 네트워크 통신 등 작업을 하게 된다

  - Application programs: 이런 식으로 DB와 상호작용하는 프로그램

 


6. 데이터베이스 설계

- 우리는 Logical Design을 결정하고, Physical DesignDBA(Administer)DB performance로 고민한다

- The Entity-Relationship Model (가장 많이 쓰임)

  ex) Entity: 고객, 계좌 / Relationship: 계좌 A-101SNUPI가 개설했다

  - E-R software diagram으로 만들면, 자동적으로 DBbuild된다 (logical level)

 

- Storage manager: OS 데이터(DB, Application program) 와 쿼리 간에 인터페이스 제공

(Transaction Management: DB의 일관성을 보장하기 위해 동시 transaction의 상호작용을 제어)

(Database Users: 시스템과의 사용 방식에 따라 분류)

- Database Administrator: Physical schema 정의, 수정, …

- DB Architecture는 컴퓨터 시스템(Centralized/Client-server/Parallel; multi-processor/Distributed) 에 영향을 받는다

 


7. 데이터베이스 시스템의 역사

 

[Fig 6] History of Database Systems
[Fig 7] History of Database Systems

반응형