4. 관계형 데이터베이스의 제약 조건 - 무결성
1) 무결성의 개념 및 종류
데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성
무결성 제약 조건 : 데이터베이스에 들어 있는 데이터의 정확성을 보장하기 위해 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건
종류 : 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성
2) 개체 무결성
기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없음
3) 도메인 무결성
주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
4) 참조 무결성
외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 하는, 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정
5) 사용자 정의 무결성
사용자 정의 무결성
6) 데이터 무결성 강화
데이터 무결성 강화 방법
애플리케이션 : 무결성 조건을 검증하는 프로그램
데이터베이스 트리거 : 무결성 조건을 실행하는 절차형 SQL
제약조건 : DB에 제약조건 설정
5. 관계대수 및 관계 해석
1) 관계대수
관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 어떻게 유도하는 가를 기술하는 절차적 언어
릴레이션을 처리하기 위해 연산자와 연산 규칙을 제공하는 언어
피연산자 : 릴레이션
결과 : 릴레이션
질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시
종류 : 순수 관계 연산자(Select, Project, Join, Division), 일반 집합 연산자(UNION, INTERSECTION, DIFFERENCE, CARTESIAN PRODUCT)
2) Select
시그마(σ)
릴레이션의 가로에 해당하는 튜플을 구하는 수평연산
3) Project
파이(π)
속성 값을 추출해 새로운 릴레이션을 만드는 연산.
중복 발생시 중복 제거
릴레이션에 세로에 해당하는 속성을 추출하는 수직연산
4) Join
Join의 결과로 만들어진 릴레이션의 차수는 조인된 두 릴레이션의 차수를 합한 것
Join의 결과는 Cartesian Product(교차곱)을 수행한 후 Select를 수행한 결과와 같다
* Cartesian Product(교차곱) : 두 릴레이션에 존재하는 모든 튜플을 대응 시켜 새로운 릴레이션을 만드는 연산
-> 차수 + 차수, 튜플 X 튜플
* 교차곱 쉬우니까 문제가 나오면 거저먹는 문제! 속성과 속성을 더하고, 튜플과 튜플을 곱해요!
5) Division
R[속성r / 속성s]S
R의 속성이 S의 속성 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
6) 관계해석
관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안
관계 데이터의 연산을 표현하는 방법으로, 계산 수식을 사용
관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 가짐
종류 : 튜플 관계해석, 도메인 관계해석
기능과 능력면에서 관계해석과 관계대수는 동일하며, 관계대수로 표현한 식은 관계해석으로 표현할 수 있다.
질의어로 표현한다
*관계대수는 절차적 특성이고, 관계해석은 비절차적 특성입니다!
6. 정규화
1) 정의
함수적 종속성 등의 종속성 이론을 이용해 잘못 설계된 관계형 스키마를 더 작은 속성의 세트로 나누어서 바람직한 스키마로 만들어가는 과정
하나의 종속성이 하나의 릴레이션에 표현될 수 있도록 분해해가는 과정
정규형은 차수가 높아질수록 만족시켜야할 제약조건이 늘어남
데이터베이스의 논리적 설계 단계에서 수행
논리적 처리 및 품질에 큰 영향
정규화된 데이터 모델은 일관성, 정확성, 단순성, 비중복성, 안정성 등을 보장
정규화 수준이 높을수록 유연한 데이터 구축이 가능하고 데이터의 정확성이 높아지는 반면, 물리적 접근이 복잡하고 너무 많은 조인으로 인해 조회성능이 떨어짐
2) 정규화의 목적
데이터 구조의 안정성 및 무결성 유지 -> 중복성, 종속성 배제
어떠한 릴레이션이라도 데이터베이스 내에서 표현 가능하게 만듬
효과적인 검색 알고리즘 생성가능
데이터 중복 배제 -> 이상 발생 방지 및 자료저장의 최소화가 가능
데이터 삽입 시 릴레이션을 재구성할 필요성을 줄임
데이터 모형의 단순화가 가능
속성의 배열 상태 검증이 가능
개체와 속성의 누락 여부 확인이 가능
자료 검색과 추출의 효율성 추구
3) 이상의 개념 및 종류
데이터베이스의 데이터들이 불필요하게 중복되는 현상
삽입이상 : 릴레이션에 데이터를 삽입할 때 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
삭제이상 : 릴레이션에서 한 튜플을 삭제할 때 의도와는 상관 없는 값들도 함께 삭제되는 연쇄가 일어나느 현상
갱신이상 : 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 모순이 생기는 현상
4) 정규화 원칙
정보의 무손실 표현, 스키마를 다른 스키마로 변환할 때 정보의 손실이 있으면 안됨
분리의 원칙, 하나의 독립된 관계성은 하나의 독립된 릴레이션으로 분리시켜 표현
데이터의 중복성 감소
5) 정규화 과정
1NF
릴레이션에 속한 모든 도메인이 원자값만으로 되어 있는 정규형
릴레이션의 모든 속성값이 원자값으로만 되어 있는 정규형
2NF
릴레이션 R이 1NF고, 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형(부분적 함수 종속 제거)
3NF
릴레이션 R이 2NF이고, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 종속을 만족하지 않는 정규형(A-B이고, B->C일 때 A->C를 만족하지 않음)(이행적 함수 종속 제거)
BCNF
릴레이션 R에서 결정자가 모두 후보키인 정규형
모든 BCNF가 종속성을 보존하는 것은 아님(결정자이면서 후보키가 아닌 것 제거)
*결정자 : 속성 간의 종속성을 규명할 떄 기준이 되는 값(학번에 따라 이름이 결정되는 학번->이이 일 때 학번을 결정자라고 함)
4NF
릴레이션 R에 다치 종속 A->>B가 성립하는 경우, R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형
5NF
릴레이션 R의 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형
*제일 중요한 부분입니다. 무조건 암기!
'2020 정보처리기사 필기 > 3과목 - 데이터베이스 구축' 카테고리의 다른 글
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(물리 데이터베이스 설계_1) (0) | 2020.08.21 |
---|---|
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_5) (0) | 2020.08.19 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_3) (0) | 2020.08.01 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_2) (0) | 2020.07.30 |
[2020 정보처리기사 필기 요약] 3과목 - 데이터베이스 구축(논리 데이터베이스 설계_1) (0) | 2020.07.30 |