관계형 데이터베이스의 제약 조건 - Key
Key의 개념
- key는 데이터베이스에서 조건에 맞는 튜플을 찾거나 정렬할 때 튜플을 서로 구분할 수 있는 기준이 되는 속성
Key의 종류
- 후보키
-> 기본키로 사용할 수 있는 속성
-> 유일성과 최소성의 성질을 만족
- 기본키
->후보 키 중에서 선정된 Main Key로 중복된 값을 가질 수 없음
->후보 키의 부분집합
-> NULL 값을 가질 수 없음(=개체 무결성)
-> NULL 값 : 정보의 부재를 나타내기 위해 사용하는 값. 0의 값이 아님
- 대체키
->후보 키가 둘 이상일 때 기본키를 제외한 나머지 후보키
- 슈퍼키
-> 한 가지 속성일 땐 Key가 될 수 없지만 여러 속성이 뭉쳐서 Key의 속성을 가짐
-> 유일성의 성질을 만족
- 외래키
-> 다른 릴레이션의 기본 키를 참조한 것
->외래 키의 값은 참조한 릴레이션의 기본키 값과 동일해야 함(=참조 무결성)
관계형 데이터베이스의 제약조건 - 무결성
무결성의 개념
- 무결성은 데이터베이스의 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성을 의미
무결성의 종류
- 개체 무결성 : 기본키를 구성하는 어떤 속성도 NULL 값이나 중복 값이면 안됨
- 도메인 무결성 : 속성의 값이 도메인에 속한 값이어야 함
- 참조 무결성 : 외래 키의 값은 참조한 릴레이션의 기본키 값과 동일해야 함
- 사용자 정의 무결성 : 속성 값들은 사용자가 정의한 제약 조건에 만족해야 함
무결성 강화
- 애플리케이션
-> 무결성 조건을 검증하는 코드를 데이터를 조작하는 프로그램 내에 추가
-> 사용자 정의 같은 복잡한 무결성 조건의 구현이 가능
- 데이터베이스 트리거
-> 트리거 : 데이터베이스 시스템에 이벤트가 발생할 때마다 자동으로 수행되는 절차형 SQL
- 제약 조건
-> 데이터베이스 제약 조건을 설정하여 무결성을 유지
관계 대수 및 관계 해석
관계 데이터 언어
- 관계 대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해 유도하는 것을 기술하는 절차적 언어
- 관계 해석 : 관계 데이터의 연산을 표현하는 비절차적 언어
관계 대수의 연산자
- Select
-> 조건을 만족하는 튜플을 구하여 새로운 릴레이션을 만드는 연산
-> 수평 연산이라고 함
-> 연산자의 기호는 시그마(σ)를 사용
-> 표기 형식 : σ<조건>(R) (여기서 R은 릴레이션을 의미)
-> ex) σ평균>80 (성적) : 성적 릴레이션에서 평균값이 80 이상인 튜플을 구함
- Project
-> 속성만 추출하여 새로운 릴레이션을 만드는 연산
-> 수직 연산이라고 함
-> 연산 결과에 중복이 발생하면 제거
-> 연산자의 기호는 파이(π)를 사용
-> 표기 형식 : π<조건>(R)
-> ex) π이름, 평균(성적) : 성적 릴레이션에서 이름, 평균 속성을 추출
- Join
-> 두 릴레이션을 합쳐서 새로운 릴레이션을 만드는 연산
-> Join의 결과로 만들어진 릴레이션의 차수는 두 차수의 합
-> Join의 결과는 교차곱(Cartesian Product)을 수행 후 Select 한 것과 같음
-> 연산자의 기호는 ⋈를 사용
-> 표기 형식 : R⋈키 속성 r=키 속성 sS
-> ex) 성적⋈이름=이름 명부 : 성적 릴레이션과 명부 릴레이션을 이름 속성을 기준으로 합침
-> 자연 조인 : Join의 조건이 같을 때 동일한 속성이 두 번 나타나 중복된 속성을 제거하여 한번만 표기하는 방법
-> 자연 조인이 성립되려면 두 릴레이션의 속성명과 도메인이 같아야 함
- Division
-> R ⊃ S인 두 릴레이션이 있을 때, R의 속성이 S의 속성의 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
-> 연산자의 기호는 ÷를 사용
-> 표기 형식 : R [속성 r ÷ 속성 s] S
-> ex) 성적 [평균 ÷ 기준] 기준
- 일반 집합 연산자
-> 합집합(∪) : 두 릴레이션의 튜플의 합집합. 중복되는 튜플은 제거
-> 교집합(∩) : 두 필레이션의 튜플의 교집합.
-> 차집합(-) : 두 릴레이션의 튜플의 차집합.
-> 교차곱(×) : 두 릴레이션의 튜플들의 순서쌍. 차수(Degree)는 서로 더한 값 카디널리티(Cardinality)는 서로 곱한 값
필기 정리
'2020(개정) 이후 정보처리기사 > 3과목 : 데이터베이스 구축' 카테고리의 다른 글
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(2) (0) | 2020.02.26 |
---|---|
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(1) (2) | 2020.02.25 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(4) (0) | 2020.02.18 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(2) (1) | 2020.02.15 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(1) (0) | 2020.02.12 |