데이터베이스 보안 1주차 - DB개요

·2023년 4월 9일
post-thumbnail

📑 1주차 - 데이버 베이스 개요 (DB전반)

  • 데이터 베이스 개념
  • 파일 시스템(FS) vs DBS
  • 데이터 베이스 추상화 레벨
  • 데이터 모델
  • 데이터베이스 설계

📑 데이터란?

현실 세계에서 관찰되거나 측정되어 수집된 사실 또는 값 (공유, 통합, 저장, 운영)

  1. 통합 데이터 : 데이터 중복 최소화를 통해 불일치 현상을 제거하고 데이터를 통합한 것
  2. 저장 데이터 : 컴퓨터를 통해 접근할 수 있는 저장 매체에 저장된 데이터 -> 외부 요인에 의한 물리적 손실 방지
  3. 공유 데이터 : 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터 -> 허가된 사용자의 접근 필요
  4. 운영 데이터 : 조직의 목적 달성을 위해 사용되는 데이터 -> 유출 및 무결성 훼손

🍎 정보란?

이러한 데이터를 처리하여 의미가 있는 새로운 결과물로 만들어 낸 것

  • 정보 시스템 : 데이터 처리를 수행하여 의사 결정자에게 유용한 정보를 만들어주는 시스템. 정보 시스템 내에서 조직 운영에 필요한 데이터를 수집하여 저장 및 관리하는 것 => 데이터 베이스

🍎 데이터 베이스 보안

  1. 물리적 환경에 대한 보안 - 외부 요인으로 인한 DB의 물리적 손실 방지 ex) 백업 시스템 구축
  2. 권한 관리에 대한 보안 - 허가 받은 사용자가 허가 권한 내에서 사용 ex) 접근 제어(인증, 권한부여)
  3. 운영 관리를 통한 보안 - 권한이 있는 사용자가 DB를 사용하는 동안 데이터의 무결성이 유지되도록 제약조건의 정의, 위반x를 위한 통제 ex) DBMS, 해쉬, 맥 기술

🍎 파일 시스템?

데이터를 파일 형태로 관리하는 시스템. 파일의 생성, 수정, 검색, 삭제 기능 제공. 응용 프로그램별로 필요한 데이터 별로 관리, 데이터베이스 등장 전 데이터 관리를 위해 사용

  • 데이터 종속성 : 응용프로그램과 파일 간 상호 의존적 관계로 인해 DB 파일 저장 방법이나 구조가 변경되면 응용 프로그램도 같이 변경이 되어야 함

🍎 데이터 베이스 시스템

: DB, DBMS, DM(데이터 모델)로 구성

  • 데이터 베이스 : 공유 데이터. 실시간 서비스로 실시간 접근성 보장, 저장된 데이터 값은 지속적 변화 발생, 파일 시스템 문제점 극복(데이터 통합에 따른 데이터 중복 최소화), 동시 공유 가능. 저장된 데이터 값에 따라 참조(사용자에 따라 접근할 수 있는 데이터의 속성을 다르게 관리 가능)

  • DBMS: 사용자와 데이터베이스 연결 시스템, 무결성 보장, 장애 발생 시 회복 기능 제공, DB 통합, 데이터 종속성 및 중복성 문제 해결. 데이터 생성, 관리, 운영, 보안 기능 제공. ORACLE, MYSQL 등 다양한 종류 가능.

  • 데이터 모델: 추상화 모델, 데이터 저장 기법 관련(데이터 관계, 접근 및 처리 과정), 개념적, 논리적, 물리적 모델로 구분.

🍎 파일 시스템 VS DBMS

🍎 Abstraction(추상화)?

구축하려는 데이터베이스가 무엇인지 파악, 도출해내는 과정

  • schema : DB에 저장되는 데이터 구조와 제약 조건의 정의. DB 내 속성의 집합. 릴레이션의 테이블명을 포함한 속성들의 집합
  • instance : 튜플들의 집합. 스키마에 따라 DB에 실제로 저장된 값

🍎 DB 추상화 레벨(3단계 DB 구조)

1. 물리 레벨

  • 내부 단계(internal level) : DB 추상화 레벨에서 최하위 단계. 저장 장치의 관점에서 이해하여 표현. 하나의 내부 스키마 존재(저장 장치에서 실제로 DB가 저장되는 방법 표기 -> 레코드 구조, 필드 크기, 접근 경로 등)

2. 논리 레벨

  • 개념 단계(conceptual level) : DB 전체 구조를 추상하여 논리적으로 정의하는 단계. 모든 사용자 및 응용프로그램의 전체적인 관점에서 이해하고 표현. 하나의 개념 스키마 존재(물리적 저장 구조의 세부사항을 숨기고 데이터 유형, 속성, 관계, 제약조건 등 정의)

3. 뷰 레벨

  • 외부 단계(external level)

🍎 데이터 모델

: 현실에 존재하는 데이터를 컴퓨터로 표현하기 위해 단순화 및 추상화하여 DB화하는 것을 DB모델이라 함. 데이터 모델링의 결과물을 표현하는 도구로써 물리적, 개념적, 논리적 데이터 모델로 구분할 수 있음.

🍎 데이터 모델링

: 현실 세계에 존재하는 데이터를 컴퓨터 내 DB로 변환하는 과정

  • 개념적 모델링 : 현실 세계의 중요 데이터를 추출, 개념 세계로 옮기는 작업. 사용자들이 데이터를 인식하는 방식에 대한 개념을 제공. 개체, 속성, 관계로 구성 => 고수준 데이터 모델
  • 엔티티-관계 모델(E-R Model 사용)
  • 논리적 모델링 : 개념 세계의 데이터를 DB로 저장하는 구조로 표현하는 작업 => 저수준 데이터 모델

🍎 데이터 모델의 종류

  • 논리적 데이터 모델
  1. 저수준 데이터 모델과 고수준 데이터 모델의 중간
  2. 일반 사용자가 생각하는 DB 모습 또는 구조
  3. 관계형, 계층형, 네트워크형 데이터 모델

❤️ 관계형 데이터 모델 : 널리 사용되고 있는 논리적 DM. 2차원 테이블 형태로 표현.

  • relation : 하나의 개체에 관한 데이터를 2차원 테이블 구조로 저장. FMS 관점에서 파일 대응. 릴레이션 스키마와 릴레이션 인스턴스로 구성.
    속성(릴레이션 스키마): 릴레이션 열에 해당. 필드.
    DB를 구성하는 가장 작은 논리적 단위
    튜플(릴레이션 인스턴스): 릴레이션 행에 해당, 레코드에 해당
  • Domain: 하나의 속성이 가질 수 있는 값의 집합. 속성 값을 입력 및 삭제 시 적합성 판단 기준
  • NULL: 속성 값이 존재하지 않거나 아직 모르는 상태
  • Degree: 릴레이션 내 속성의 전체 개수
  • Cardinality: 릴레이션 내 튜플의 전체 개수

🍎 데이터베이스 설계

정규화를 이용한 설계, E-R 모델과 릴레이션 반환 규칙을 이용한 설계

  • E-R 다이어그램 : 개념적 데이터 모델링의 결과물. 기호를 사용하여 현실세계의 데이터 및 관계 표현.
    표기법 : 피터 첸. IE 등.

🍎E-R 모델 기반 DB 설계 단계

1. 요구사항 분석: DB 용도 파악 -> 요구사항 명세서

2. 개념적 설계 : DBMS에 독립적인 개념 구조 설계 -> 개념적 스키마(E-R 다이어그램)

3. 논리적 설계 : DBMS에 적합한 논리적 구조 설계
-> 모든 개체는 릴레이션으로 변환
-> 다대다 관계는 릴레이션으로 변환
-> 일대다 관계는 외래키로 표현
-> 일대일 관계는 외래키로 표현
-> 다중값 속성은 릴레이션으로 변환

4. 물리적 설계 : DBMS로 구현 가능한 물리적 구조 설계 -> 물리적 스키마

5. 구현 : SQL문 작성, DBMS에서 실행 및 DB 생성

profile
화이트해커 엘입니다😉

0개의 댓글