ㅇTL

DB 01 본문

2-2/데베시

DB 01

정노르레기 2021. 9. 27. 23:38

목표

 

개념 정리

  • Data = 의미가 있는, 저장될 수 있는 fact (ex. names, addresses ..)
  • Database = 논리적으로 관련된 데이터의 집합 ex) 전화번호부
  • Mini-world = 전체 world에서 일부의 측면만을 나타낸 것, db 빌드의 대상 ex) 한양대의 김상욱교수 정보
  • DBMS(database management system) = 프로그램의 집합.-> software package임! , db 관리를 쉽도록 해주는 software
  • Database system = DBMS(software) + database(데이터 집합)

구조 of database system

Database system의 Users (DB에 공헌하는 사람들)

( 디비 구성시, 요구사항 분석(어떤 데이터가 된리되어야하는가. 어떤기능 필요한다)->디비 구조화(디비구축)->프로그래밍)

  • system analyst : end users(한양인->학생 교수..) 의 요구사항 분석 (어떤 데이터가 관리되어야 하는가, 어떤기능 제공돼야하는가)
  • database designer : 앞에서 정한 데이터 중 저장할 데이터 결정하고, db 구조를 디자인함(=구축) 
  • application programmer : db 확정 후 투입(당근 dbms 잘알아야함). 프로그램만듬

여기까지 개발업체 

  • Database administer (DBA) (한양인 -> 울학교 직원) : 데이터베이스 시스템이 잘 운영되고 있나 모니터링
  • end users(우리) : db application program을 통해 db에 접근하는 사람들

workers behind the scene

  • Operators and maintenance personnel : 전체 시스템을 관장하는 사람. 종합적으로. 데베시의 하드웨어 소프트웨어 환경 모두를 관리하는 사람 (우리학교의 정보통신처)

     DBMS를 만드는 사람들 

  • DBMS system designer and implementer: DBMS 컴포넌트 모듈과 인터페이스를 소프트웨어 패키지로서  디자인하고 implement한다.
  • Tool developer: DBMS위에 올라가는 software를 만든다. = 디비에 편리하게 접근할 수 있는 software tool을 만든다

DB의 특징 (db를 dbms로 관리하는 것의 특징들)

  •  자기 자신을 기술하는 성질을 가짐 (self-descriding nature)

- meta-data: 구조를 describe함/db관리를 위해 필요한 data임 (db는 프로그램 형태가 아니고, 메타데이터 형태로 자기 구조를 관리함)

- system catalog: 메타데이터가 저장되는 곳

- dbs는 유저 데이터 뿐 아니라 메타 데이터도 저장 관리 한다!

 

  • program과 data가 나눠짐 (insulation) (=data의 변경에 프로그램이 영향거의 받지 x)

-자기 자신 기술 성질 때문에 이게 가능해짐 (구조를 프로그램이 아니라 data가 가지고 있기 때문이다.)

-> 데이터 구조의 변화가 생겨도 프로그램은 영향받지x(-> 어플리케이션 관리 쉬워짐)

-p-d간의 높은 독립

 

  • abstraction(추상화)

- 데이터 구조의 detail을 숨김 (몇바이트를 어디...)

- physical view를 제공하기보다, conceptual view를 제공함 (-> 쉽게 관리 가능)

 

  • data의 여러가지 뷰를 제공함 (= 원래 저장과는 다르지만, 그걸로 부터 유추해온 가상의 table = view)

-뷰 = 실제의 디비에서 가져온, 가공된 virtual data

-다른 관점에 따라 같은 db를 다른 뷰로 보여줌 (다른 뷰 제공!)

 

  • 데이터 공유

-여러 유저가 동시에 디비에 접근 가능

-concurrency(동시성) control mechanisms을 제공함 (그래서 동시 접근이 가능)

 


DBMS의 특징

  • controlling redundancy (중복)

-redundancy = 여러 경로(location)에 같은 데이터가 존재하는 것 (여러 테이블에 같은 데이터 존재)

-문제점: 공간 낭비, 데이터 일관성 x

  • 권한 없는 접근 막음

- 권한에 의해 관리되는 software 임

  • 프로그램 object의 영구적인 저장

프로그램의 종료와 관계없이 데이터를 영구적으로 저장한다 (당연. db는 디스크에 있으니까~)

  • 여러 유저 인터페이스 존재

다양한 방법으로 db에 접근이 가능함. 유저의 지식에 따라서 선택 가능

ex) Query language(sql), GUI ...

  • data간의 복잡한 관계 보여줌

entity간의 관계들을 표현하는 다양한 방식을 제공함 (표현가능)

  • enforcing integrity(무결성, 결함x) constraints

- integrity: 데이터가 만족시켜야 하는 제약 조건

(어떤 조건? 이걸 정의 가능, 그리고 이게 만족되는지 정정하는 기능 제공)

-DBMS: 이 인테그리티 조건을 정의할 수 있도록 하는 기능 제공, 이게 만족되는지 정정하는 기능 제공

  • Back up and recovery (아주 중요한 컴포넌트. 복잡도 높음)

: 문제가 생겼을 때 회복될 수 있도록 하는 기능

-backup : 계속 db의 카피를 만든다 (나중에 문제가 생겻을 때를 대비해서)

-revovery : db를 backup 데이터로부터 회복시킨다. (추가 남은 시간 데이터 복구 -> 그것도 알아서 함)

 


DBMS의 장점

- application만드는 시간이 줄음 (데이터 관리 프로그래밍 안해도 됨)

- 항상 최신 데이터로의 접근 가능(시간차로 인한 문제x). 유저의 디비 업데이트는 항상 모든 유저에게 보임

-  규모가 클수록 DBMS를 사용하는 것이 유리해짐 ( 부담이 줄고, 더 많은 돈을 아낄 수 있게 됨.)

 


DBMS 단점

  • DBMS의 overhead

- 초기 비용이 너무 크다 (hardware 잘돌아가는거 필요, software 이거 자체가 비싸고, 배워야함)

- 돌아가는데 시간이 많이 든다

  • 언제 안쓰나요?

- 업데이트를 (거의) 하지 않는 application (ex: 검색 엔진)

- 마감 시간이 엄격하게 정해져 있을 때 (require strict real-time requirement) (미사일 10초 안 처럼 빨리 처리해야 하는 경우)

  (-> 오버헤드 감수 불가)

- 여러 유저가 접근하는 게 아닐 때

-> 디비엠에스를 쓰는게 오버헤드가 너무 크기 때문에, 사용할 필요가 없다. 사용하지 않는 게 낫다. (이런 고기능이 필요 없슴)

'2-2 > 데베시' 카테고리의 다른 글

DB 03 - ER model -> conceptual modeling  (0) 2021.10.12
DB 02  (0) 2021.09.28