관계형 데이터베이스
- 관계형 데이터베이스는 2차원적인 표(Table)를 이용해서 데이터 상호 관계를 정의하는 데이터베이스입니다.
- 코드(E. F. Codd)에 의해 처음 제안
- 간결하고 보기 편리하며 다른 데이터베이스로의 변환이 용이하지만 성능이 다소 떨어짐
관계형 데이터베이스의 릴레이션 구조
p.s : 엔터티와 릴레이션의 구분
- 엔터티는 모델링 단계에서
- 릴레이션은 이터베이스의 물리적 구조에서 사용되는 개념으로, 엔터티를 실제 테이블 형태로 구현한 것
튜플 (Tuple)
- 릴레이션을 구성하는 각각의 행
- 튜플의 수 = 카디널리티 (Cardinality)
속성 (Attribute)
- 속성은 데이터베이스를 구성하는 가장 작은 논리적 단위 입니다.
- 속성은 개체의 특성을 기술합니다.
- 속성의 수 = 디그리 (Degree)
도메인 (Domain)
- 하나의 속성이 취할 수 있는 같은 타입의 원자 값들의 집합 ex) 성별 속성의 도메인은 "남", "여"로, 그 외의 값은 입력될 수 없습니다.
릴레이션 (Relation)
- 2개 이상의 인스턴스를 가져야한다.
- 인스턴스는 2개이상의 속성값을 가져야한다.
키 (Key)
- 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
키의 종류
- 후보키 (Candidate Kry)
- 기본키 (Primary Key)
- 대체키 (Alternate Key)
- 슈퍼키 (Super Key)
- 외래키 (Foreign Key)
후보키 (Candidate Key)
- 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
- 기본키로 사용할 수 있는 속성들을 말한다.
- 후보키는 유일성과 최소성을 모두 만족해야 한다.
유일성 (Unique) | 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야 함 |
최소성 (Minimality) | 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함 |
기본키 (Primary Key)
- 후보키 중에서 특별히 선정된 주키(Main Key)이다.
- 기본키는 중복된 값을 가질 수 없다.
- 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다.
- NULL값을 가질 수 없다
대체키 (Alternate Key)
- 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키
- 보조키라고도 함
슈퍼키 (Super Key)
- 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
- 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.
- 슈퍼키는 유일성은 만족하지만, 최소성은 만족하지 못한다
- 슈퍼키의 예시)
학생테이블 : {학생ID, 이름}: 학생ID에 이름을 추가해도 여전히 각 학생을 유일하게 식별할 수 있습니다.
외래키 (Foreign Key)
- 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
제약 조건 - 무결성
무결성
- 무결성은 데이터베이스에서 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성을 의미한다.
- 무결성 제약조건은 데이터의 정확성을 보장하기 위해 부정확한 자료가 저장되는 것을 방지하기 위한 제약조건이다.
무결성의 종류
종류 | 내용 |
개체 무결성 | 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정 |
참조 무결성 | 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야함. 즉, 참조할수 없는 외래키 값을 가질 수 없다는 규정 |
NULL 무결성 | 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정 |
도메인 무결성 | 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정 |
데이터 무결성 강화
- 데이터 품질을 확보하기 위해 애플리케이션, 데이터베이스 트리거, 제약 조건을 이용하여 데이터 무결성을 강화해야한다.
- 애플리케이션 - 데이터 생성, 수정, 삭제 시 무결성 조건을 검증하는 코드를 프로그램 내에 추가함
- 데이터베이스 트리거 - 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL을 추가함
- 제약조건 - 데이터베이스에 제약 조건을 설정하여 무결성을 유지함
관계대수
- 관계대수는 관계형 데이터베이스에서 데이터를 처리하고 쿼리하는 방법을 수학적으로 정의한 언어
- 순수 관계 연산자와 일반 집합 연산자가 있다.
순수 관계 연산자
종류 | 특징 | 기호 |
Select | - 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산 - 릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평 연산이라고도 함 |
σ (시그마) |
Project | - 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산 - 결과에 중복이 발생하면 중복이 제거됨 - 릴레이션의 열에 해당하는 속성을 추출하는 것이므로 수직 연산자라고도 함 |
𝝅 (파이) |
Join | - 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산 - Join의 결과는 Cartesian Product (교차곱)을 수행한 다음 Select를 수행한 것과 같음 |
⋈ |
Division | - 관계대수에서 Division 연산은 두 관계(R와 S) 사이의 특정 조건을 만족하는 튜플을 찾는 데 사용됩니다. Division 연산은 R의 모든 튜플이 S에 있는 튜플과 결합될 수 있는 R의 튜플을 반환합니다. | ÷ |
일반 집합 연산자
- 합집합 ( UNION ) ∪ : 두 릴레이션에 존재하는 튜플의 합집합을 구하고 중복되는 튜플은 제거
- 교집합 ( INTERSECTION ) ∩ : 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- 차집합 ( DIFFERENCE ) - : 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
- 교차곱 ( Cartesian Product ) x : 디그리 = 두 릴레이션의 디그리를 더한 것, 카디널리티 = 두 릴레이션의 카디널리티를 곱한 것
관계해석
- 관계해석은 관계 데이터의 연산을 표현하는 방법이다.
- 관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 술어해석에 기반을 두고 관계 데이터베이스를 위해 제안함
'정보처리기사' 카테고리의 다른 글
[정보처리기사] - 트랜잭션 / 클러스터 (0) | 2024.07.14 |
---|---|
[정보처리기사] - 정규화 / 반정규화 (1) | 2024.07.13 |
[정보처리기사] - 데이터베이스 (0) | 2024.07.05 |
[정보처리기사] - 다이어그램 (0) | 2024.07.03 |
[정보처리기사] - 요구사항 확인 (0) | 2024.07.01 |