스키마
- 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
- 종류
- 외부 스키마: 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의
- 개념 스키마: 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로, 하나만 존재
- 내부 스키마: 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등
데이터베이스 설계 순서
- 요구 조건 분석: 요구 조건 명세서 작성
- 개념적 설계: 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
- 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성
- 논리적 설계: 현실 세계에서 발생하는 자료를 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
- 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마 설계하는 단계
- 물리적 설계: 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
- 구현: 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성
관계형 데이터베이스의 릴레이션 구조
- 릴레이션: 데이터들을 표 형태로 표현한 것
키
- 후보키 (Candidate): 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 기본 키로 사용가능한 속성
- 유일성 만족 O, 최소성 만족 O
- 대체키 (Alternate): 후보키가 둘 이상일 때 기본키 제외한 나머지 후보키
- 슈퍼키: 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 유일성 만족 O, 최소성 만족 X
- 외래키 (Foreign): 다른 릴레이션의 기본키 참조하는 속성 또는 속성들의 집합
무결성
- 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성 의미
- 개체 무결성: 기본 키를 구성하는 어떤 속성도 null 값 또는 중복값을 가질 수 없음
- 참조 무결성: 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야 함
순수 관계 연산자
- Select: 릴레이션에 존재하는 튜플 중 선택 조건을 만족하는 튜플의 부분집합을 구해 새로운 릴레이션을 만드는 연산
- σ (시그마)
- Project: 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출해 새로운 릴레이션 만드는 연산
- 𝝅 (파이)
- Join: 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션 만드는 연산
- ⋈
- Division: Y ⊂ X인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
- ÷
일반 집합 연산자
- 합집합 (UNION): 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 중복되는 튜플은 제거
- ∪
- 교집합 (INTERSECTION): 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- ∩
- 차집합 (DIFFERENCE): 두 릴레이션에 존재하는 튜플의 차집합 구하는 연산
- -
- 교차곱 (CARTESIAN PRODUCT): 두 릴레이션에 있는 튜플들의 순서쌍 구하는 연산
- X
- 교차곱의 Degree는 두 릴레이션의 Degree의 합
- Cardinality는 두 릴레이션의 Cardinality의 곱
- X
이상 (Anomaly)
- 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 않게 발생하는 현상
- 삽입 (Insertion) 이상: 테이블에 데이터 삽입 시 의도와는 상관없이 원하지 않은 갑들로 인해 삽입할 수 없는 현상
- 삭제 (Deletion) 이상: 테이블에서 튜플 삭제 시 의도와는 상관없는 값들도 함께 삭제(연쇄 삭제)되는 현상
- 갱신 (Update) 이상: 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상
함수적 종속 (Functional Dependency)
- 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라고 할 때,
- 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어있는 경우
- X → Y
- 완전 (Full) 함수적 종속: 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서, 속성 집합 X의 어떠한 진부분 집합 Z(즉, Z ⊂ X)에도 함수적 종속이 아닌 경우
- 부분 (Partial) 함수적 종속: 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서, 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속인 경우
- 이행적 (Transitive) 함수적 종속: X → Y 이고 Y → Z 일 때 X → Z 만족하는 관계
정규화 과정 (도부이결다조)
- 제 1정규형 (1NF): 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형
- 제 2정규형 (2NF): 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형
- 제 3정규형 (3NF): 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형
- 제 4정규형 (4NF): 다중 값 종속 A →→ B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형
- 다치 종속: A, B, C 3개의 속성을 가진 테이블에서 어떤 복합 속성(A, C)에 대응하는 B 값의 집합이 A에만 종속되고, C값에 무관
- 제 5정규형 (5NF): 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형
- 조인 종속: 테이블 R의 속성에 대한 부분 집합 X, Y, ..., Z가 있을 때, 테이블 R이 자신의 프로젝션 X, Y, ..., Z를 모두 조인한 결과와 동일한 경우 테이블 R은 조인 종속을 만족한다고 함
- 반정규화 (Denormalization): 정규화된 데이터 모델 의도적으로 통합, 중복, 분리해 정규화 원칙을 위배하는 행위
트랜잭션의 특성
- 원자성 (Atomicity): 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되거나 전혀 반영되지 않도록 복구(Rollback)되어야 함
- 일관성 (Consistency): 트랜잭션의 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
- 독립성 (= 격리성, 순차성 Isolation): 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
- 영속성 (= 지속성 Durability): 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
접근 통제
- 임의 접근 통제 (DAC): 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여
- 데이터 소유자가 접근 통제 권한 지정하고 제어
- 강제 접근 통제 (MAC): 주체와 객체의 등급을 비교하여 접근 권한을 부여
- 시스템이 접근 통제 권한을 지정
- 역할 기반 접근 통제 (RBAC): 사용자의 역할에 따라 접근 권한을 부여
- 중앙 관리자가 접근 통제 권한을 지정
'공부 > 정보처리기사' 카테고리의 다른 글
4장 서버 프로그램 구현 (결합도, 응집도, 디자인 패턴) (1) | 2025.07.03 |
---|---|
3장 통합 구현 (0) | 2025.07.03 |
1장 요구 사항 확인 (0) | 2025.06.30 |
C언어 (0) | 2025.06.27 |
정처기(서브넷, 네트워크 침해 공격, 형상 관리 도구, 스케줄링) (0) | 2025.04.18 |