(세종대학교) 데이터베이스 보안 - 수업 정리 내용
3.1. 관계형 데이터베이스 (RDB) 개요
3.1.1. RDB 정의 및 예시
- 정의
- 1970년대 IBM의 커드가 제안한 관계형 모델을 바탕으로 개발
- 관계형 모델 : 실제 세계의 데이터를 수학적 논리 관계 개념을 사용하여 행열로 표현한 표와 행열의 상관관계로 정의하는 데이터 모델
- 1970년대 IBM의 커드가 제안한 관계형 모델을 바탕으로 개발
- 예시
- 관계형 데이터베이스를 제안하는 다양한 DBMS 존재
- 상용 프로그램
- 오라클, MS SQL server, IBM의 DB2 등
- 프리웨어
- MariaDB, PostgreSQL, SQLite 등
3.1.2. RDB 특징
- 특징에 대한 장점
- 단순한 표 형태로 데이터 저장
- 사용자가 이해하기 쉬움
- SQL 이용하여 저장된 데이터 관리
- 쉬운 데이터 이용
- 응용 프로그램 변경 없이 데이터 항목 쉽게 확장 가능
- 다양한 보안 기능 제공 (사용자 권한 분리 가능)
- 데이터 공유 환경에서 효과적
- 단순한 표 형태로 데이터 저장
- 특징에 대한 단점
- 처음 설계한 데이터베이스 구조 변경 또는 확장
- 변경 또는 확장된 구조 최적화 하거나, 유지 및 관리에 상대적으로 많은 비용 소요
- 처음 설계한 데이터베이스 구조 변경 또는 확장
3.1.3. RDB 모델링
릴레이션 예시
- 릴레이션 = 테이블, 스키마 = 속성 = 열, 인스턴스 = 속성에 맞는 특정 값 (데이터) = 행
릴레이션 구성
- 릴레이션 스키마
- 릴레이션의 논리적 구조
- 릴레이션 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의
- ex) 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
- 릴레이션 내포 (Relation Intension)
- 자주 변하지 않는 정적인 특징
- 변화 발생 시, 최적화 과정 필요
- 릴레이션 인스턴스
- 특정 시점에 존재하는 튜플들의 집합
- 릴레이션 외연 (Relation Extension)
- 튜플의 삽입/삭제/수정이 자주 발생하는 동적인 특징
- 릴레이션 스키마
데이터베이스 구성
데이터베이스 스키마
- 데이터베이스 전체 구조
- 데이터베이스에서 가지고 있는 데이터 보여주는 구조
- 데이터베이스를 구성하는 릴레이션 스키마 모음
- 데이터베이스 전체 구조
데이터베이스 인스턴스
- 데이터베이스를 구성하는 인스턴스 모음
- 릴레이션 특징
- 튜플의 유용성
- 하나의 릴레이션에 동일한 튜플 존재 불가 (기본키 같이 하나라도 달라야함)
- 튜플의 무순서
- 하나의 릴레이션에서 튜플 순서 무의미
- 속성의 무순서
- 하나의 릴레이션에서 속성 순서 무의미
- 속성의 원자성
- 속성 값으로는 하나만 들어올 수 있음
- 튜플의 유용성
3.2. 키 (Key)의 종류
3.2.1. 키
- 키
- 릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합
3.2.2. 키의 특성
- 유일성
- 하나의 릴레이션에서 모든 튜플은 서로 다른 값을 가져야함
- 최소성
- 반드시 필요한 최소한의 속성들만으로 구성
3.2.3. 키 종류
- 슈퍼키 (super key)
- 유일성을 만족하는 속성 또는 속성들의 집합
- 후보키 (candidate key)
- 유일성을 만족하며 최소성을 만족하는 속성 또는 속성들의 집합
- 기본키 (primary key)
- 후보키 중 하나
- 대체키 (alternate key)
- 후보키 중 기본키가 아닌 키
- 외래키 (foreign key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
- 관계
- 참조하는 릴레이션 : 외래키를 가진 릴레이션
- 참조되는 릴레이션 : 외래키가 참조하는 기본키를 가진 릴레이션
- 외래키 속성과 참조하는 기본키의 속성(이름)은 달라도 도메인(속성의 범위)은 동일해야함
- 하나의 릴레이션에 여러 개의 외래키 존재 가능
- 외래키를 기본키로 사용 가능
- 같은 릴레이션의 기본키 참조하는 외래키 정의 가능
3.3. 무결성 제약 조건
3.3.1. 무결성 제약 조건
- 개념
- 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙
- 무결성
- 데이터에 결함이 없는 상태
- = 데이터가 정확하고 유효하게 유지된 상태
- 데이터베이스의 상태가 변해도 무결성 제약조건은 반드시 지켜져야함
- 종류
- 도메인 무결성 제약 조건
- 도메인 제약
- 릴레이션 내 튜플들이 각 속성의 도메인에 지정된 값만을 가져야 함
- 속성 값과 관련된 무결성으로, SQL 문에서 형식, 널, 기본 값, 체크 등을 사용하여 지정 가능
- 개체 무결성 제약 조건
- 기본키 제약
- 기본키는 NULL 값을 가져서는 안되며, 릴레이션 내 오직 하나의 값만 존재해야함
- 참조 무결성 제약 조건
- 외래키 제약
- 자식 릴레이션 외래키 = 부모 릴레이션 기본키와 도메인
- 자식 릴레이션 값 변경 → 부모 릴리에션의 제약을 받는 거
- 부모 릴레이션 도메인과 다른 값으로 삽입, 수정 안됨
- 자식 릴레이션에서 참조하는 값을 부모 릴레이션에서 삭제, 수정 거부
- 도메인 무결성 제약 조건
3.4. 관계 대수 (1)
3.4.1. 관계 대수 개념 및 종류
개념
- 절차 언어 (Procedural Language)
- 원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 언어
- 릴레이션을 처리하는 연산자들의 모임
- 폐쇄 특성 (Closure Property)
- 피연산자도 릴레이션이고 연산의 결과도 릴레이션
- 절차 언어 (Procedural Language)
종류
순수 관계 연산자
- 릴레이션의 구조와 특성 이용
- Select, Project, Join, Division
일반 집합 연산자
- 릴레이션이 튜플의 집합이라는 점을 이용하여 두 릴레이션 간 연산 수행
- Union, Intersection, Difference, Cartesian product
3.4.2. Select 연산자
정의
- 릴레이션에서 조건을 만족하는 튜플만 선택하여 결과 릴레이션 구성
- 결과 릴레이션은 연산 대상 릴레이션의 수평적 부분집합 (수평적 연산자)
- 하나의 릴레이션을 대상으로 연산 수행
표현법
특징
- 교환 법칙 성립
3.4.3. Project 연산자
정의
- 릴레이션에서 선택한 속성의 값으로 결과 릴레이션을 구성
- 수직적 연산자
- 하나의 릴레이션을 대상으로 연산 수행
표현
특징
3.4.4. Division 연산자
- 정의
- 릴레이션2의 모든 튜플과 관련이 있는 릴레이션1의 튜플로 결과 릴레이션 구성
- 릴레이션1이 2의 모든 속성 포함해야함
- 릴레이션2의 모든 튜플과 관련이 있는 릴레이션1의 튜플로 결과 릴레이션 구성
- 표현법 : 릴레이션1÷릴레이션2
3.5. 관계 대수 (2)
3.5.1. Cartesian Product 연산자
- 정의
- 두 릴레이션 R과 S의 Cartesian Product
- R×S로 표현
- 두 튜플 모두 연결하여 만들어진 새로운 튜플로 결과 릴레이션 구성
- 결과 릴레이션의 특성
- 차수 = R 차수 + S 차수
- 카디널리티 = R 카디널리티 x S 카디널리티
- 두 릴레이션 R과 S의 Cartesian Product
- 특징
- 교환적 특징
3.5.2. Union 연산자
- 정의
- 합병 가능한 두 릴레이션 R과 S의 합집합
- R∪S로 표현
- R 또는 S에 속하는 모든 튜플로 결과 릴레이션 구성
- 결과 릴레이션 특성
- 차수는 R,S 차수와 동일
- 카디널리티 ≤ R 카디널리티 + S 카디널리티
- 합병 가능한 두 릴레이션 R과 S의 합집합
- 특징
- 교환적 특징
- 결합적 특징
3.5.3. Intersection 연산자
- 정의
- 합병 가능한 두 릴레이션 R과 S의 교집합
- R∩S로 표현
- 공통으로 속하는 튜플로 결과 릴레이션 구성
- 결과 릴레이션 특성
- 차수 동일
- 카디널리티는 두 릴레이션의 어떤 카디널리티보다 같거나 적음
- 합병 가능한 두 릴레이션 R과 S의 교집합
- 특징
- 교환적 특징
- 결합적 특징
3.5.4. Difference 연산자
- 정의
- 합병 가능한 두 릴레이션 R과 S의 차집합
- R-S로 표현
- S에는 없는 R의 튜플로 결과 릴레이션 구성
- 결과 릴레이션 특성
- 차수는 동일
- R-S의 카디널리티 ≤ R의 카디널리티 (반대는 반대)
- 합병 가능한 두 릴레이션 R과 S의 차집합
- 다른 연산자와 달리 특징 없음
3.5.5. Join 연산자
- 정의
- 조인 속성을 이용해 두 릴레이션 조합
- 조인 속성의 값이 같은 튜플만 연결
- 조인 속성은 공통으로 가지고 있는 속성
- 동등 조인
- 표현법
- 릴레이션1 ⋈ 릴레이션2
'학교수업 > 데이터베이스' 카테고리의 다른 글
데이터베이스 보안 - 4주차. 구조화 질의어 (SQL) (3) | 2025.04.12 |
---|---|
데이터베이스 보안 - 2주차. 데이터베이스 관리 시스템 (DBMS) (2) | 2025.04.12 |
데이터베이스 보안 - 1주차. 데이터 베이스 개요 (0) | 2025.04.11 |