Programming/SQL

[SQL 입문] Database와 DBMS

aram 2022. 8. 16. 21:57

- 파일 시스템을 저장소로 사용했을 때 경우

  • 데이터가 프로그램에 종속
  • 파일의 구성방법, 접근방법, 프로그램 언어를 알아야 데이터를 처리 가능
  • 시간이 지나면 데이터에 관한 일관성 보장x
  • 동일한 데이터에 대해서 서로 다른 값으로 보관
  • 데이터의 무결성(일관성 + 정확성) 보장 어려움
  • 공유X
  • 데이터의 사용 편의성 낮음
  • 데이터 중복 저장으로 저장공간 낭비, 동기화를 위한 갱신 비용도 증가함
  • 보안 관리에 대한 일관성 없음 > 동일 데이터에 대한 보안 등급 상이
    (우리 부서에는 등급이 높아서 못 보는 데이터를 보안 등급이 더 낮은 부서에서 볼 수 있는 문제 발생 가능)

>> 이런 문제들을 보완하기 위해 Data를 한 곳(Database)에 저장

 

- Database(DB 데이터베이스)

  • 지속적으로 관리하고 저장해야 하는 데이터의 논리적인 저장소
  • 설계를 통해서 정형 데이터 저장소 개념
  • 데이터를 모아 둔 토대

- DBMS(DataBase Management System 데이터베이스 관리 시스템)

  • 정보의 저장과 관리를 전담하는 특수한 소프트웨어
  • Database에 대한
    물리적인 독립성(내용≒데이터값에 따른 참조),
    접근의 독립성(실시간 접근성),
    데이터에 대한 독립성(계속적인 변화: 삽입, 수정, 삭제 등의 작업을 통해 시간에 따라 바뀐 데이터 값을 저장) 보장
  • 데이터 중복을 최소화해서 저장
  • 데이터에 대한 일관된 보안 관리
  • 장애 발생 시, 데이터 보호&복구 가능
  • 다양한 메모리 컴포넌트와 프로세스들 (스레드들)로 구성
  • 저장된 데이터는 여러 형태로 표현 가능
  • OS, 프로그램과 무관하게 동시 공유 가능

- 프로그램(프로세스)

  • 프로세스(감독) 내에서 실행단위는 스레드(일꾼)

 

- DB 운영 목적

  • OLTP(Online Transaction Processing 온라인 트랜잭션 처리) 
    •  동시에 발생하는 다수의 트랜잭션(transaction)실행하는 데이터 처리 유형
      (온라인 뱅킹, 쇼핑, 주문 입력 또는 텍스트 메시지 전송 등)
    • Transaction(Unit of Work)
      :  분리되어 수행할 수 없는 하나의 작업단위 
      ex) 계좌이체 하는 도중에 정전 또는 서버 에러 발생
      > system STOP 
      >  내 통장에는 이체 완료, BUT 상대방 통장에는 돈이 안 감
      > 이런 대형 사고 발생되지 않도록 하는 게 Transaction
      => 실행 도중 하나라도 실행x 이면 전체 작업 종료
    • 특성: 원자성, 고립성(동시변경 허용x), 일관성(하나를 구매하면 하나가 사라져야 함), 영속성(데이터베이스를 꺼도 그 정보가 남아있어야함.)
  • OLAP(Online Analytical Processing 온라인 분석 처리)
    •  Analystic : 데이터 마이닝 수행 & 분석
    • 대규모 비즈니스 데이터베이스를 구성하고 복잡한 분석을 지원하는 기술
    • 의사결정을 위해 필요로 하는 자료를 컴퓨터가 추출 & 분석하여 제공하는 기술
    • DateMart, DW, DSS

 

## History ##

- 1960년대

  • 계층형 DBMS : 데이터 참조관계를 계층 구조로 저장 관리
    (참조 관계는 물리적인 포인터 사용, 1:M 참조관계만 가능)
  • 망형 DBMS : 데이터 참조관계를 network 구조로 저장 관리
    (참조 관계는 물리적인 포인터 사용, N:M 참조관계만 가능 > 수정을 한다면 연관된 모든 데이터를 수정해야함)
더보기

* 포인터 사용 : 관계(relationship) 표현

포인터로 가리켜서 참조 관계 표현

- 1970년대

  • Edgar.F.Codd 박사 : 수학의 관계 대수를 이용하여 데이터 참조 관계를 모델링 > 데이터 무결성 보장
  • RDBMS(Relational 관계형 DBMS) : oracle - E.F.Codd 박사 논문 기반으로 탄생

-1980년대

  • rdbms 표준 언어 SQL(ANSI) 제정

-1990년대

  • OLTP 사용 가능(www 등장), 객체지향 DB (ODBMS) - 가변적인, 내가 정의한 데로 만들어짐 > ORDBMS로 발전
  • 분산DB, 병렬 처리 등 출현(VLDB, Grid  컴퓨팅을 이용한 DB > 더 많은 데이터 처리)
  • oracle, idm db2, postgresql, mysql, maria, db

- 2000년대

  • BigDate 등장으로 구글의 Big Table, 하둡의 Hbase, mongodb, cassandra 등
  • nosql(not only sql)
    : 비정형과 반정형 데이터 저장, Batch,DataMining, once write many read 목적, 트랜잭션 처리 목적이 아님

 

- 모델링

  • Database와 table을 생성하기 전 모델링 진행
  • 종류
    1. 개념 모델링 - 관리대상 entity 도출, entity의 관계 도출, 속성 도출
    2. 논리 모델링 - 정규화
    3. 물리 모델링

 

- RDBMS(Relational 관계형 DBMS)

  • E.F Codd 논문 기반
  • 테이블(table)이라는 최소 단위 구성, 테이블은 하나 이상의 열(column)과 행(row; record)로 구성
  • 관리 대상
    • Entity 속성(= attribute = column)으로 설계
    • 속성값으로 구성된 Entity 인스턴스 = Tuple = Round = Row
    • Entity간의 참조관계 : (사원의)부서 → (부서의)부서번호
사원Entity(자식Entity) 부서Entity(부모Entity)
속성: 사원 번호 
사원이름
입사날짜
직무
급여
부서(##)
속성 : (##)부서번호
부서이름
부서의장(관리자)
위치 
업무
  • Entity => Table
    : Column + Record로 구성
    : Database에서 물리적인 데이터 저장 기본 객체
    : 행과 열의 2차원 구조로 표현
  • Attribute => Column
  • 부서번호 : 주식별키 Primary Key(PK) Attribute
     => 키를 삭제할 때 자식(부서)에게 참조되어 있으면 삭제 불가(RESTRICTED)
  • 부서: 외래키 Foreign Key(FK) Attribute
      => 여기에는 Null 이거나 부서번호(부모)만 참조가능

 

- DB connect 인증 방법

1. db에 일방향 암호화 저장된 password 인증 방법

2. os 인증 시에 db 인증도 함께 받는 방법

3. third party 인증(홍체, 지문, 목소리, 정맥, 얼굴인식 등)

 

- DB connection 과정

1. 인증

2. 세션 생성(논리적으로 연결 상태를 관리하게 위함)

3. user가 요청한 sql 처리할 serve process를 invoke하고 주소를 return

  • delicated serve mode 1:1 처리 방식 >> 대출 창구(전담창구)
  • shared server mode 1:M 처리 방식 >> 입출금 창구(번호표를 뽑고 한 창구에서 여러면 빠르게 처리)

    > Oracle Database: https://datacadamia.com/db/oracle/connection_manager

 

* 내용참고&출처 : 태그의 수업을 복습 목적으로 정리한 내용입니다.

728x90