개발자 끄적끄적

데이터 베이스 개념 본문

데이터 베이스

데이터 베이스 개념

햏치 2023. 3. 3. 22:59

<제1장 데이터와 데이터베이스>

데이터베이스(database)
- 정보를 필요에 따라 모아놓은 것
- 조직이나 개인이 사용하는 '조작 가능한', '저장된' 데이터의 모임
->조작 가능한 : 컴퓨터로, '저장된' 디스크 등

ex) 사장실의 파일 캐비닛
- 주소록, 계약서 등을 관리(각각 하나의 데이터베이스를 구성), 각각의 파일을을 모아 놓으면 데이터베이스(database)라고 한다
->여러 테이블이 모이면 데이터베이스가 구성된다

- 편리한 사용을 위해 '정렬, 분류'
  - 파일 삽입, 삭제, 검색, 갱신 등

- '컴퓨터(=조작가능한)'를 이용하여 이러한 작업을 대행할 수 있다




<데이터, 정보, 베이스(1)>
- 데이터, 정보 그리고 지식
  1. 데이터(data) => 사실, 값, 객관적
    - 실세계의 실체를 묘사하는 '값'
    - '정형화(어떤 타입을 갖는 값)'되고 '기록할 만한 가치가 있다고 판단되는(조직의 입장에서 관리할 필요가 있다고 판단되는)'
      어떤 현상이나 사건, 아이디어에 대한 묘사
    - 값이 객관적이어야한다(키가 170cm이다(O), 키가 보통이다(X)//주관적인 데이터) -> 수치화된 값으로 표현되어야 한다 


  2. 정보(information) => 데이터를 기반으로 표현, 객관적
    - '데이터는 사실'들 '그 자체에 대한 일차적인 표현'
    - 사실들과 이들로부터 유도될 수 있는 유추된 '사실들'
    - 데이터(학점에 대한 데이터)를 통해 처리 -> 정보(학점을 그래프로 나타냄) 또한 사실이며 객관적이다
    - 하지만, 두 가지 정보(동일한 사실)에대해서 다르게 판단할 수 있다 -> 지식



  3. 지식(knowledge) => 정보를 바탕으로 판단, 주관적, 추론, 규칙, 반복(판단)
    - 데이터와 정보에 비해 좀 더 '상위 수준의 개념'
    - 수동적이고 정적인 데이터나 정보에 비해, '이들을 처리하는 "방법"'이나 
      어떤 근거에 의한 판단을 내리는데 필요한 '분석과 판단에 관한 "법칙"' 등을 포함한다
    - ex) 삼성전자의 주식이 3일 후에는 오를 것이다, 이번주 내내 비가 왔으니 다음주도 비가 올 것이다
      현실세계 ->(추출)-> 데이터 ->(처리) -> 정보 -> (추론) -> 지식

    - Time flies like an arrow
    앞에서 해석 -> Time(주어) flies(동사) like~(전치사) => 시간은 화살처럼 난다
    뒤에서 해석 -> an arrow(주어) like(동사) flies Time(명사)  => 시간 파리는 화살을 좋아한다(문법적으로 틀리진 않지만 통용적으로 사용X 또는 앞문장과 뒷문장의 연결성을 가지고 판단한다는 의미)



<데이터, 정보, 데이터베이스(4)>
- 데이터 베이스(기지)의 정의 => 데이터를 모아놓은 기지
  - 관련된 데이터의 모임 또는 집합
    ex) 학생 데이터 : 교과목, 수강 데이터, 성적 데이터 등
  - 정형화(format 된 형태)되고 조작 가능한(수치화된 또는 처리하기에 용이한) 컴퓨터에 저장된 데이터의 모임
  - 특정 목적을 위해 계산, 저장, 검색, 정렬 등의 "데이터 처리" 작업을 수행
    ex) 성적 처리, 마케팅을 위한 상품 판매 분석 등 
  - 데이터베이스란 어떤 특정 조직의 응용 시스템에 사용되는 조작 가능한 저장 데이터의 모습   



<데이터, 정보, 데이터베이스(5)> 
  - 일시적 데이터와 영구적 데이터
    - 일시적(transient) 데이터 => 휘발성 데이터(Volatile data), 메인메모리에 저장되어있다
      - 해당 프로세스가 실행되는 동안만 일시적으로 존재
      - ex) 프로그램의 변수

    - 영구적(persistent) 데이터 => 비휘발성 데이터(Non-volatile data)
      - 어떤 프로세스의 생명주기에 종속적이지 않고 스스로 존재
      - 비휘발성 매체에 저장, 디스크에 존재(전원이 꺼지더라도 저장되어있다)

    - 일반적인 데이터베이스는 지속적인 데이터 모임을 뜻한다



<데이터베이스 관리 시스템(1)>
  - 데이터베이스 관리 시스템
    - DBMS(DataBase Managment System)
      - 컴퓨터에 저장되는 데이터베이스를 관리해주는 소프트웨어 시스템
 
    - DBMS 종류
      - 외산 : Oracle, MS SQL-Server, DB2, Sybase, dBase, FoxPro, MS Access
      - 국산 : 큐브리드(CUBRID), 티베로(Tibero), 티맥스소프트, ALTIBASE
      - 공개 S/W : MySQL, PostgresSQL(큐브리드)



<데이터 베이스의 관리 시스템(3)> - 창고와 DBMS의 관계 예시
물건 : 데이터
창고 : 데이터베이스(디스크)
창고관리인 : DBMS(사용자와 데이터베이스를 연결해주는 인터페이스 역할)
직원 : 응용 프로그램 또는 사용자




<DBMS가 제공하는 기능(1)>
1. 정보를 표현할 수 있는 틀(DDL)
  - DBMS가 정보를 관리할 수 있는 양식
  - 현실 세계의 정보를 컴퓨터에 저장시키는 양식이므로, '다양한 정보의 표현'이 가능해야 한다

2. 데이터의 공유기능
  - DBMS가 관리하는 데이터는 여러 응용프로그램이 필요에 따라 이용할 수 있도록 제공된다
   -> 데이터의 중복 제거 : 데이터를 공유함으로써 비효율성과 일관성(Consistency)문제를 제거

  - 동시성 문제(Concurrency Problem)
   - 다른 프로그램 또는 프로세스가 동시에 같은 데이터에 작업을 하려할 때 
     즉, 동일한 데이터를 다른 운영체제에서 다룬다면 비일관적인 상태로 빠진다
  - 다중 사용자 환경에서 하나의 트랜잭션이 동시에 실행되는 다른 트랜잭션에 의해 영향을 받는다
    -> DBMS는 하나의 단위 프로그램이 일을 마칠 때까지 해당 데이터를 독점하도록 하는 방법 등으로 문제를 막는다



<DBMS가 제공하는 기능(2)>
- 데이터 무결성 유지 기능
  - 데이터 무결성(Integrity)
    - 데이터베이스 내의 데이터가 얼마나 정확한가를 뜻한다
      ex) 나이가 200 또는 -23 (?)
        - 데이터 중복으로 인한 불일치 문제

- 데이터 독립성
  - 응용 프로그램과 데이터 간의 '독립성'
    - 응용 프로그램은 데이터가 디스크에 구체적으로 어떻게 저장되어 있는 지 몰라도된다
    - 데이터 종속적(Data-Dependent)
      - 데이터의 구조가 저장형태를 고려한 응용프로그램 구현으로 나중에 데이터의 저장형태나 구조를 바꾸려고 할 때 
        응용프로그램도 바꾸지 않으면 안된다



<DBMS가 제공하는 기능(3)>
- 효율적인 자원관리가 기능
  - 많은 양의 데이터를 다루는데 적합한 효율적이고 효과적인 방법들을 사용
  - 디스크 상에 데이터를 배치시키거나 디스크의 데이터를 처리를 위해 주기억장치로 불러들이는 작업

- 데이터 보안성과 안정성 유지 기능
  - DBMS가 관리하는 모든 데이터에 대해 자체적인 보안 기능(사용자에게 접근 기능을 구분하여 제공)제공
  - 보안성 : 사람으로부터 데이터의 보호
  - 안정성 : 컴퓨터 장애나 고장 등으로부터의 보호
    - 예기치 못한 상황이 발생할 때 체계적인 수습이 가능해야 한다



<파일과 데이터베이스(1)>
- 파일 시스템의 데이터 관리 기능
  - 파일 시스템(File Sysytem)
    - 운영체제(OS, OS의 목적 : 컴퓨터의 자원을 효율적으로 관리)의 중요한 부분으로 데이터나 프로그램을 디스크에 읽고 쓸 수 있도록 해주는 프로그램
  - 프로그램에서 다루는 데이터를 직접 하나의 파일에 저장하여 관리하는 경우의 문제점
    - 프로그램 이외의 방법으로도 데이터 조작 가능
    - 프로그램과 데이터 형식이 묶여 있다 -> 파일의 구조가 바뀌면 프로그램의 구조도 바뀌어야한다
    - 동시 접근의 문제 
    - 보안 문제 -> 읽기, 쓰기, 삭제 권한으로 인해 보안문제가 발생할 수 있다
    - 장애 복구 문제 -> 정전이 일어날 때 주기억장치에서 쓰던 것들이 다 사라지고 없어진다
    -> DBMS는 데이터베이스를 다루는 데 있어서 필요한 공통의 기능들을 제공하는 소프트웨어 시스템이다



<파일과 데이터베이스(2)>
- 파일 시스템을 이용하면 DBMS
  - 파일 시스템 : 기본적인 저장 기능만을 제공
  - DBMS : 데이터베이스 관리에 필요한 다양한 기능

사용자 -> 응용프로그램 <-> 데이터 관리 조작(DBMS) <-> 데이터 읽기 쓰기(DBMS)




<데이터베이스 시스템과 사용자>
응용프로그램 개발자 -> (응용 프로그램 개발) -> 응용프로그램(연결) -> DBMS
최종사용자(일반 사용자) -> (사용) -> 응용프로그램(연결) -> DBMS
최종 사용자(숙련된 사용자) -> (사용) -> DBMS
DBMS 개발자 -> (DBMS개발) -> DBMS 
데이터베이스 관리자(DBA) -> (관리) -> DBMS




<데이터베이스 시스템과 사용자(2)>
- 최종 사용자(End User, General User)
  - 응용 프로그램이 제공하는 사용자 인터페이스(User Interface)를 이용하며, 해당 응용분야의 업무를 처리하는 사람
  - 숙력된 최종 사용자는 응용프로그램을 이용하지 않고 DBMS에서 직접 사용

- 응용 프로그램 개발자
  - applicaction programmer
  - DBMS를 이용한 응응프로그램을 개발하는 사람
 
- 데이터베이스 관리자
  - DataBase Administrator(DBA)
  - DBMS 및 이와 관련된 하드웨어 또는 소프트웨어를 중앙에서 관리 감독하는 사람

- DBMS 개발자
  - DBMS developer
  - DBMS를 구성하는 모듈들을 설게하고 구현하는 사람

'데이터 베이스' 카테고리의 다른 글

SQL의 구성(DDL, DML)  (1) 2023.03.25
오라클 소개  (0) 2023.03.17
관계형 데이터베이스  (0) 2023.03.10