데이터베이스 보안 2주차 - DBMS

·2023년 4월 14일
post-thumbnail

📑 2주차 - 데이버베이스 관리 시스템 (DBMS)

🤍 데이터베이스 시스템 환경

🍎 데이터 정의어 컴파일러(DDL Compiler)

: 데이터 정의어로 작성된 스키마 정의 해석, 저장 데이터 관리자의 도움을 받아 새로운 데이터베이스 구축 및 스키마의 정의를 데이터 사전에 저장

🍎 데이터 조작어 프리컴파일러(DML Compiler)

:응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에 전달. 데이터 조작어와 관련 업는 나머지 코드는 해당 언어의 컴파일러로 전달

🍎 데이터 조작어 컴파일러(DDL Compiler)

: 데이터 조작어로 작성된 데이터의 삽입, 삭제, 수정, 검색 등과 같은 데이터 처리 요구를 분석하여 런타임 DB 처리가 가능할 수 있도록 해석

🍎 런타임 데이터베이스 처리기

: 저장 데이터 관리를 통해 데이터베이스에 접근, DML 컴파일러부터 전달받은 데이터 처리 요구를 DB에서 실행

🍎 트랜잭션 관리자

: 데이터베이스에 접근하는 과정에서 사용자의 접근 권한 유효 여부 검사. 데이터베이스의 무결성 유지를 위한 제약조건 위반 여부 확인

🍎 저장 데이터 관리자

: 디스크에 저장되어 있는 데이터베이스와 데이터 사전 관리 및 접근

🍎 데이터 사전

: DB에 저장되어 있는 데이터에 관한 정보 저장 공간. 시스템 카탈로그, 정확하고 효율적인 데이터 이용을 위해 참고해야 하는 스키마, 스키마 간 매핑 정보, 제약조건 저장
메타데이터 => 데이터에 대한 데이터

💐 데이터베이스 시스템 유틸리티

1) 적재(Loading) : 텍스트 파일이나 순차 파일과 같은 기존의 데이터 파일들을 데이터베이스에 적재하기 위해 사용
-변환도구 : 기존의 데이터베이스와 새 데이터베이스의 저장상태 정보가 주어지면 적절한 적재 프로그램 생성

2) 백업(Backup) : 데이터베이스 전체 또는 일부를 대용량 저장 매체에 복사해서 DB 사본 생성. 치명적 디스크 고장 발생 시 DB 복구 목적으로 사용

3) 파일 재조직(File Reorganization) : 성능을 향상시키기 위해 DB 파일의 구조를 다룬 파일 구조로 재조직, 새로운 접근 경로 설정

4) 성능 모니터링 : DB 사용을 모니터링하여 DB 관리자에게 사용 통계 제공. DB 관리자는 통계에 근거하여 성능 향상을 위해 파일 재조직 여부 또는 인덱스 추가/삭제 여부의 결정 가능

5) etc => 파일 정렬, 데이터 압축, 사용자 접근 모니터링, 네트워크와의 인터페이스

🤍 DBMS 개요

🍎 DBMS의 장점

  • 데이터 중복 통제, 일관성 유지(데이터의 동시 공유), 데이터 보안 향상, 데이터 무결성 유지, 장애 발생 시 회복 가능
    데이터 삽입, 수정 등의 연산 수행 시 유효성 검사를 하여 데이터 무결성 유지

🍎 DBMS의 단점

  • 많은 비용의 발생, 복잡한 백업과 회복 방법, 중앙 집중 관리로 인한 취약점,
    OS와 함께 설치되는 파일 시스템과 달리 따로 설치해야 하므로 별도의 비용 발생
    동시 사용자 수에 따라 가격 증가

1세대 - 네트워크 DBMS
: DB를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델 사용, DB 구조가 복잡하고, 변경의 어려움. ex) IDS
1세대 - 계층 DBMS
: db를 트리 형태로 구성하는 데이터 모델 사용. 네트워크 DBMS보다 구조가 단순. 구조적 표현의 한계와 변경의 어려움을 가지고 있음. ex) IMS

2세대 - 관계 DBMS
: DB를 테이블 형태로 구성. ex) oracle, MS SQL, Acess, Informix, MySQL, MariaDB

3세대 - 객체지향 DBMS
: 1980년대 후반에 등장. 객체 개념을 이용해 DB를 구성하는 모델. 새로운 유형의 데이터 저장과 복잡한 분석 및 처리 지원. ex) O2, ONTOS, GemStone

3세대 - 객체관계 DBMS
: 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델.

4세대 - NoSQL DBMS
: 비정형 데이터 저장 및 처리에 적합. 안정성과 일관성 유지. 데이터 구조를 미리 정하지X, 분산처리 컴퓨팅 환경에서 주로 사용 ex) MongoDB, Hbase, Cassandra, Radis, Neo4i, OrientDB

NewSQL 등장배경 - NoSQL이 관계 DBMS 완전 대체의 불가능. 관계 DBMS가 제공하는 안정성과 일관성 유지 기업. 기업 처리 데이터 중 정형 데이터의 비율이 높음.
-안정성과 일관성을 유지하며 SQL 이용, 데이터 처리를 편리하게 요청
ex) google Spanner, VoltDB, NuoDB

🤍 데이터베이스 사용자 및 DBMS 기능

🍎 사용자(이용 목적에 따라)

  • 데이터베이스 관리자(DBA) : DB 시스템 운영 및 관리

  • DBA의 주요 업무
  1. DB 구성 요소 선정 - 사용자의 요구사항 분석, DB 구성 데이터 결정
  2. DB 스키마 정의 - 스키마 설계, DDL를 이용해 DBMS 구현
  3. 물리적 저장 구조와 접근 방법 결정 - 레코드 구조 설계
  4. 무결성 유지를 위한 제약조건 정의 - 결함이 없는 데이터만 저장할 수 있도록 규칙 정의
  5. 보안 및 접근 권한 정책 결정 - 허가되지 않은 사용자의 DB 불법 접근 방지
  6. 백업 및 회복 기법 정의
  7. 시스템 DB 관리 - 데이터 사전 등
  8. 시스템 성능 감사 및 성능 분석 - 병목현상 발생 여부 등

🍎 DB의 재구성

  • 최종 사용자: DB 접근 및 데이터 조작
  • Casual user: DB에 대한 이론적 지식 보유, 주로 DML을 이용해 원하는 데이터와 데이터 처리를 DBMS에 요청
  • Navie user: 초보 수준으로 DB 이용, 메뉴나 GUI 형태의 응용 프로그램을 통해 DB 사용

🍎 응용 프로그래머

: 데이터 언어 삽입 및 응용 프로그램 작성. 프로그래밍 언어로 응용 프로그램 작성 시 DML 삽입 사용자.

🍎 DBMS의 기능

  • DB 구조나 접근 방법 변경 시 사용자가 미리 알거나 응용 프로그램 변경의 불필요 -> 데이터의 독립성 확보
  • 정의 기능 - 조직에 필요한 데이터 저장에 적합한 DB 구조 정의 및 수정
  • 조작 기능 - DB에 저장된 데이터에 접근하여 사용할 수 있는 기능 제공. 사용자의 요구에 따라 데이터 삽입, 삭제, 수정, 검색하는 연산을 효율적으로 처리
  • 제어 기능 - 무결성 유지를 위한 규칙 설정, 보안 관련 정책 결정

🤍 데이터베이스 언어(SQL)

🍎 DBMS 언어 - DBMS에 초점이 맞춰진 언어.

SQL(structured query language)이라 지칭. DB 생성 및 처리 문법만 가지고 있어 데이터 부속어라 지칭하기도 함.

🍎 SQL 기능별 분류

  1. 데이터 정의어(DDL) : 스키마 정의, 수정 및 삭제. 정의된 스키마는 데이터 사전에 저장, 삭제나 수정 발생 시 내용 반영. 테이블 구조의 정의(CREATE, ALTER,DROP)
  2. 데이터 조작어(DML) : 데이터 삽입, 삭제, 수정, 검색 등의 처리 요구
    DDL을 통해 스키마가 정의되면 실제 데이터 값이 인스턴스에 저장되고 DML을 통해 그 데이터 값을 활용한다.
  • 데이터 검색 SELECT : 테이블 조건에 맞는 튜플 검색
  • 데이터 삽입 INSERT: 테이블에 새로운 튜플 삽입
  • 데이터 수정 UPDATE: 테이블에서 조건에 맞는 튜플 내용 변경
  • 데이터 삭제 DELETE: 테이블에서 조건에 맞는 튜플 삭제
  1. 데이터 제어어(DCL): 내부적으로 필요한 규칙이나 기법 정의. 데이터 보안 기능 제공(사용자별 데이터 접근 및 사용 권한의 부여 및 취소), 변경 데이터에 대한 복구 기능 제공
    DCL을 통해 무결성, 보안, 회복, 동시성의 확보
  • 권한 부여 GRANT: DB 사용자의 사용 권한 부여
  • 권한 제거 REVOKE: DB 사용자의 권한 취소
  • 복구 ROLLBACK: DB 조작 작업이 비정상적으로 종료되었을 시 원래 상태로 복구

🤍 DBMS 종류 및 특징

  • Oracle : 1979년 개발 관계형 DBMS. 단일 데이터베이스 내 문서, 그래프, 관계형 키-값과 같은 여러 데이터 모델 지원. 최근에는 클라우드 컴퓨팅에 초점. 다양한 OS에서 사용 가능. 다양한 언어 사용 가능.
    향상된 데이터 보호, 백업, 복구 등의 지속적 릴리즈를 통한 강력한 보안 제공
    방대한 양의 데이터 수용 및 처리
    다중 모델 솔루션 사용
    멀티 테넌시 기능을 이용한 DB 압축 및 관리
    인메모리 데이터 처리 기능과 결합, 동기식 데이터 처리를 위한 강력한 엔진 생성
    강력한 기술 지원과 문서 제공
    단) 많은 비용. 높은 하드웨어 사양의 필요.(강력한 인프라, 디스크 공간 다. 지속적 hw 업데이트), 방대한 양의 제공 문서 => Oracle DBA 자격증을 보유한 전문가 필요

  • MySQL : 가장 널리 사용되는 관계형 DB 시스템 중 하나. 1995 MySQL AB에서 개발한 RDBMS. Solaris, Window 등에서 사용 가능. 다양한 프로그래밍 언어 지원
    오픈 소스로 무료 사용 가능. 간단한 구문으로 다루기 쉬움(단순한 구조, 명령줄에서 작업 바로 실행 가능), 저사양 hw로도 사용 가능
    단) 오픈 소스로 사용 시 기술 지원의 어려움. 확장성이 낮음. 일부 표준 SQL 기능 미지원(기존 DB를 다른 DB로 전환 시 문제 발생)

  • MS-SQL: 완전히 상업적. 가장 널리 사용되는 관계형 DBMS 중 하나. SQL 표준 확장인 T-SQL 언어 사용. windows, linux OS에서 사용 가능.
    강력한 기술 지원과 문서 제공
    단) 비용적인 측면에서 많은 단점을 가짐

profile
화이트해커 엘입니다😉

0개의 댓글