(세종대학교) 데이터베이스 보안 - 수업 정리 내용
1.1. 데이터베이스 (DB) 개념
1.1.1. 데이터베이스 관련 용어
- 데이터
- 현실 세계에서 단순하게 관찰되거나 측정되어 수집된 사실이나 값
- 정보
- 데이터를 처리하여 생성된 의미있는 새로운 결과물
- 정보 시스템
- 데이터 처리를 수행하여 의사 결정자에게 유용한 정보를 만들어주는 시스템
- 데이터베이스
- 정보 시스템 내에서 조직 운영에 필요한 데이터를 수집하여 저장 및 관리하는 것
1.1.2. 데이터베이스의 필요성
- 데이터베이스
- 정보 처리를 위해 조직 운영에 필요한 데이터 보관
- 데이터 중복, 관리의 어려움 등의 문제 해결
- 이유
- 기술적 측면 이유
- 데이터 중복으로 인한 데이터 일관성 유지 어려움
- 데이터 접근에 대한 관리 및 통제 필요
- 데이터 파일과 프로그램 간의 종속성으로 인해 비효율적
- 데이터가 여기저기 흩어져 있어 보안 유지 어려움
- → 기존 파일 시스템의 제한점 극복 위해 필요
- 조직적 측면 이유
- 데이터를 조직의 자산으로 관리
- 데이터의 공유
- 데이터의 일관성 및 무결성 유지
- 데이터의 최신성 및 유용성 유지
- 기술적 측면 이유
1.1.3. 데이터베이스 정의
- 데이터 베이스
- 특정 조직의 여러 사용자가 데이터를 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합
- 통합 데이터
- 데이터 중복 최소화를 통해 중복으로 인한 데이터 불일치 현상 제거 및 데이터 통합
- 저장 데이터
- 컴퓨터를 통해 접근할 수 있는 저장 매체에 저장된 데이터
- 공유 데이터
- 여러 사용자가 함께 소유하고 이용할 수 있는 고용 데이터
- 운영 데이터
- 조직의 목적 달성을 위해 사용되는 데이터
- 조직의 주요 기능 수행에 필요한 데이터
1.1.4. 데이터베이스 보안
- 보안 필요성
- 공유 데이터
- 여러 사용자 사용 가능 → 허가된 사용자만 접근할 수 있도록 통제
- 운영 데이터
- 조직의 목적 달성 → 유출 및 무결성 훼손 방지
- 저장 데이터
- 물리적 저장 매체에 저장 → 외부 요인에 의한 물리적 손실 방지
- 공유 데이터
- 데이터 베이스 보안
- 조직 내에 허가된 사용자만이 데이터베이스에 접근하도록 하여 데이터 유출을 방지하고, 권한이 있는 사용자로부터 데이터의 무결성이 훼손되지 않도록 통제하는 것
- 분류
- 물리적 환경에 대한 보안
- 외부 요인으로 인한 데이터베이스의 물리적 손실 방지
- ex) 백업 시스템 구축
- 외부 요인으로 인한 데이터베이스의 물리적 손실 방지
- 권한 관리를 통한 보안
- 허가 받은 사용자만이 허용된 권한 내에서 데이터베이스 사용
- ex) 접근 제어
- 인증 (Authentication) : 데이터 사용자 확인 (누기인지)
- 권한 부여 (Authorization) : 인증된 사용자에게 데이터 접근 범위 부여 (어디까지 가능한지)
- ex) 접근 제어
- 허가 받은 사용자만이 허용된 권한 내에서 데이터베이스 사용
- 운영 관리를 통한 보안
- 권한이 있는 사용자가 데이터베이스를 사용하는 동안 데이터의 무결성이 유지되도록 제약조건 정의, 위반하지 않도록 통제
- DBMS를 통해 제약 조건 정의 및 설정
- 해쉬, 맥 기술을 활용하여 보안 제공
- 권한이 있는 사용자가 데이터베이스를 사용하는 동안 데이터의 무결성이 유지되도록 제약조건 정의, 위반하지 않도록 통제
- 물리적 환경에 대한 보안
1.2. 데이터베이스 시스템
1.2.1. 파일 시스템
- 개념
- 데이터를 파일 형태로 관리하는 시스템
- 파일의 생성, 수정, 검색, 삭제 기능 제공
- 응용 프로그램별로 필요한 데이터를 별도의 파일로 관리 (데이터 종속성)
- → 파일 시스템의 특징이자 문제점
- 데이터베이스가 등장하기 이전에 데이터 관리를 위해 사용
- 데이터 종속성으로 인한 문제점
- 데이터 파일 저장 방법, 구조 등 변경 → 응용 프로그램도 변경 필요
- 응용 프로그램별 데이터 파일 생성 → 데이터 중복 발생
- 중복 데이터 간의 값 불일치로 일관성 훼손
- 중복 데이터에 대한 동등한 보안 수준 유지 불가
- 중복 데이터의 무결성 훼손 방지 수단 부재
- 제어 분산 → 낮은 효율성 및 정확성
- 저장 공간 비용 증가 → 낮은 경제성
1.2.2. 데이터베이스 시스템
- DBMS를 통해 데이터를 통합 관리하는 시스템
- 구성 요소
- 데이터 베이스
- 조직에서 사용하던 데이터를 통합하여 저장한 공유 데이터
- 실시간 서비스로 실시간 접근성 보장
- 사용자가 데이터 요청 시, 수 초 내에 제공
- 저장된 데이터 값은 지속적인 변화 발생
- 파일 시스템 문제점 극복
- 데이터 통합에 따른 데이터 중복 최소화
- 동시 공유 보장
- 저장된 데이터 값에 따라 참조
- 사용자에 따라 접근할 수 있는 데이터의 속성을 다르게 관리 가능
- Database Management System(DBMS)
- 사용자와 데이터베이스를 연결시켜주는 소프트웨어
- 데이터의 무결성 보장
- 장애 발생 시 회복 기능 지원
- 데이터베이스 통합하여 데이터 종속성 및 중복성 문제 해결
- 데이터 관련 기능 제공
- Oracle, mysql 등 다양한 종류
- 데이터 모델
- 눈에 보이지 않는 추상화된 모델
- 데이터 저장 기법 관련
- 데이터의 관계, 접근 및 처리 과정
- 데이터 모델링의 결과물을 표현하는 도구
- 개념적, 논리적, 물리적 모델로 구분
- 데이터 베이스
1.2.3. 파일시스템 vs DBMS
- 특징
- DBMS 장점
- 데이터 복구, 보안, 동시성 제어, 데이터 관리 기능 등 제공
- 데이터 무결성 유지 및 데이터 표준 준수 용의
- 무결성 유지를 위한 다양한 제약 조건
- 보안 기술 활용 데이터 저장
- 대부분 SQL 준수
1.3. 데이터베이스 추상화 레벨
- 추상화
- 구축하려는 데이터베이스가 무엇인지 파악하고 도출해내는 과정
1.3.1. 스키마와 인스턴스
- 스키마
- 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
- 데이터베이스 내의 속성들의 집합
- 릴레이션의 테이블명을 포함한 속성들의 집합
- 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
- 인스턴스 (Instance)
- = 튜플들의 집합
- 스키마에 따라 데이터베이스에 실제로 저장된 값
1.3.2. 데이터베이스 추상화 레벨
- 관점에 따라 다양하게 구축
- 3단계 데이터베이스 구조
- 하나의 데이터베이스에 대해 서로 다른 관점의 여러 사용자들이 효율적으로 사용할 수 있도록 만듦
- ANSI - SPARC Architecture
- 물리 레벨 - 내부 단계 (Internal Level)
- 데이터베이스 추상화 레벨에서 최하위 단계
- 저장 장치의 관점 표현
- 하나의 내부 스키마 존재
- 내부 스키마(= 정의 스키마)
- 저장 장치에 실제로 데이터베이스가 저장되는 방법 정의
- 내부 스키마(= 정의 스키마)
- 논리 레벨 - 개념 단계 (Conceptual Level)
- 데이터베이스의 전체 구조를 추상하여 논리적으로 정의하는 단계
- 모든 사용자/응용프로그램의 전체적인 관점 표현
- 테이블 내 모든 속성 포함
- 하나의 개념 스키마 존재
- 개념 스키마(=아키텍쳐 구조)
- 물리적 저장 구조의 세부사항을 숨기고 데이터 유형, 속성, 관계, 제약조건 등 정의
- 개념 스키마(=아키텍쳐 구조)
- 뷰 레벨 - 외부 단계 (External Level)
- 여러 개 존재 가능 → 사용자 다양
- 개별 사용자/프로그램 관점 표현
- 하나의 데이터베이스에 여러 외부 스키마 존재 가능
- 외부 스키마 (서브 스키마)
- 관심있는 부분을 설명하고 나머지 세부사항을 모두 숨기는 특성
- 각 사용자가 생각하는 데이터베이스 모습을 한정된 논리적 구조 표현
- 외부 스키마 (서브 스키마)
1.4. 데이터 모델
1.4.1. 데이터 모델
- 데이터 모델
- 데이터 모델링 결과물 표현 도구
- 데이터 모델링
- 현실에 존재하는 데이터를 컴퓨터로 표현하기 위해 단순화 및 추상화하여 데이터베이스화
- 개념적 데이터 모델링
- 현실 세계의 중요 데이터를 추출하여 개념세계로 옮기는 작업
- (특징 추출)
- 논리적 데이터 모델링
- 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업
- (데이터베이스화)
1.4.2. 데이터 모델 종류
- 물리적 데이터 모델
- 컴퓨터의 저장 장치에 데이터가 어떠한 형태로 저장되는지에 대한 물리적 구조
- 저수준 데이터 모델
- 데이터베이스가 최적의 성능 내도록 DBMS 특성에 맞게 구성
- 개념적 데이터 모델
- 사용자들이 데이터를 인식하는 방식에 대한 개념 제공
- 개체, 속성, 관계로 구성
- 고수준 데이터 모델
- 엔티티-관계 모델(E-R model) 사용
- 논리적 데이터 모델
- 저수준 데이터 모델과 고수준 데이터 모델의 중간
- 일반 사용자가 생각하는 데이터베이스 구조
- 관계형 데이터 모델
- 계층형 데이터 모델
- 네트워크형 데이터 모델
1.4.3. 관계형 데이터 모델
- 개념
- 널리 사용되고 있는 논리적 데이터 모델
- 2차원 테이블 형태로 데이터 표현
- 구성 요소
- 릴레이션 (=테이블)
- 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
- 파일 관리 시스템 관점에서 파일에 대응
- 릴레이션 스키마와 릴레이션 인스턴스로 구성
- 속성 (=스키마)
- 릴레이션의 열의 해당
- 파일 관리 시스템 관점에서 필드에 대응
- 데이터베이스를 구성하는 가장 작은 논리적 단위
- 튜플 (=인스턴스)
- 릴레이션의 행에 해당
- 파일 관리 시스템 관점에서 레코드에 대응
- 릴레이션 (=테이블)
- 용어
- 도메인
- 하나의 속성이 가질 수 있는 값의 집합
- 나중에 값의 적합성 판단
- NULL
- 속성 값이 존재하지 않거나 모르는 상태
- 차수
- 릴레이션 내 속성의 전체 개수
- 카디널리티
- 릴레이션 내 튜플의 전체 개수
- 도메인
1.5. 데이터베이스 설계
1.5.1. 데이터베이스 설계
- 사용자의 다양한 요구사항 고려하여 데이터베이스를 설계하는 과정
- 요구사항 분석 → 개념적 모델링 → 논리적 모델링
- 데이터베이스 설계
- 정규화를 이용한 설계
- E-R모델과 릴레이션 변환 규칙을 이용한 설계
- E-R 다이어그램
- 개념적 데이터 모델링의 결과물
- 기호를 사용하여 현실세계의 데이터 및 관계 표현
- 표기법 : 피터첸, Barker
1.5.2. E-R 모델 기반 데이터베이스 설계
- 설계 단계
- 요구사항 분석
- 데이터베이스 용도 파악 → 요구사항 명세서
- 개념적 설계
- DBMS에 독립적인 개념적 구조 설계 → 개념적 스키마 (E-R 다이어그램)
- 논리적 설계
- DBMS에 적합한 논리적 구조 설계 → 논리적 스키마 (릴레이션 스키마)
- 물리적 설계
- DBMS로 구현 가능한 물리적 구조 설계 (물리적 스키마)
- 구현
- SQL문을 작성한 후 이를 DBMS에서 실행하여 생성
- 요구사항 분석
- 1단계 - 요구사항 분석
- 사용자의 요구사항을 수집 및 분석하여 개발할 데이터베이스의 용도 파악
- 필요한 데이터 식별 및 처리 방법 고려 후 요구사항 명세서 산출
- 식별 가능한 개체의 구성 확인!!
- 2단계 - 개념적 설계
- DBMS에 독립적인 개념 스키마를 설계하는 단계
- 요구사항 분석 결과물을 개념적 데이터 모델링 수행, 개념적 구조로 표현
- 개체와 속성 추출 → 관계 추출 → E-R 다이어그램 작성
- 3단계 - 논리적 설계
- 개념적 설계 단계에서 생성한 E-R 다이어 그램을 논리적 구조로 표현하여 DBMS에 적합한 릴레이션 스키마로 변환하는 단계
- E-R 모델과 관계 데이터 모델과 표현 차이 존재로 쉽지 않음
- 5가지 변환 규칙
- 모든 개체는 릴레이션으로 변환
- 다대다 관계는 릴레이션으로 변환
- ex) 주문 (상품과 고객 다대다 관계)
- 일대다 관계는 외래키로 표현
- 일대일 관계는 외래키로 표현
- 다중 값 속성은 릴레이션으로 변환
- 개념적 설계 단계에서 생성한 E-R 다이어 그램을 논리적 구조로 표현하여 DBMS에 적합한 릴레이션 스키마로 변환하는 단계
'학교수업 > 데이터베이스' 카테고리의 다른 글
데이터베이스 보안 - 4주차. 구조화 질의어 (SQL) (3) | 2025.04.12 |
---|---|
데이터베이스 보안 - 3주차. 관계형 데이터베이스 (RDB) (0) | 2025.04.12 |
데이터베이스 보안 - 2주차. 데이터베이스 관리 시스템 (DBMS) (2) | 2025.04.12 |