가자공부하러!

데이터베이스(2) - 관계형 데이터베이스와 관계 연산 본문

공부/정보처리기사(실기)

데이터베이스(2) - 관계형 데이터베이스와 관계 연산

오피스엑소더스 2019. 5. 25. 17:14

1. 관계형 데이터 모델

2. 키의 개념 및 종류

3. 무결성

4. 관계대수



1. 관계형 데이터 모델


1. 관계형 데이터 구조 : 릴레이션

  > 릴레이션? : 데이터를 원자 값(Atomic Value)으로 갖는 이차원의 테이블

- 릴레이션의 구조는 물리적인 저장 구조를 나타내는 것이 아닌 논리적 구조이다.

ㄴ 그러므로 다양한 정렬 기준을 통해 릴레이션을 표현할 수 있다.

  > 릴레이션 구성 : 릴레이션 스키마 + 릴레이션 인스턴스(Relation Schema + Relation Instance)

- 릴레이션 스키마 : 구조를 나타냄

- 릴레이션 인스턴스 : 실제 값

  > 릴레이션의 열을 속성(Attribute)이라 하고 행을 튜플(Tuple)이라 한다.

  > 도메인?

- 릴레이션에서 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합

- 실제 애트리뷰트 값이 나타날 때 그 값의 합법 여부를 시스템이 검사하는데에도 이용된다.


2. ER 모델을 관계형 데이터 모델로 변환

  > 개념적 데이터 모델인 ER 모델 -> 변환 -> 논리적 데이터 모델인 릴레이션 스키마

      - 매핑 룰(Mapping Rule) 이라고도 한다

  > 관계형 데이터 모델의 표현 방법

- ER모델의 개체 -> 개체 릴레이션(관계형 데이터 모델)

- ER모델의 관계 -> 관계 릴레이션(관계형 데이터 모델)

- 속성 -> 컬럼

- 식별자 -> 기본키

- 릴레이션간 관계 -> 기본키와 외래키

  > 표 만들기임

 

2. 키의 개념 및 종류


1. 슈퍼키(Super Key)

  > 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키

- 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.

  > 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 못한다.

- 슈퍼키는 꼭 필요한 최소의 속성만으로 구성되지는 않지만 유일하다


2. 후보키(Candidate Key)

  > 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합

- 유일성과 최소성 모두 만족


3. 기본키(Primary Key)

  > 후보키 중에서 특별히 선정된 키로, 중복된 값을 가질 수 없다.

- 유일성과 최소성 모두 만족

  > NULL값을 가질 수 없고 튜플을 식별하기 위해 반드시 필요하다.


4. 대체키(Alternate Key)

  > 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미


5. 외래키(Foreign Key)

  > 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합

  > 릴레이션 간의 관계를 표현할 때 활용됨

- 해당 릴레이션의 외래키는 참조 릴레이션의 기본키와 동일한 키 속성을 가진다.


3. 무결성


1. 무결성?

  > DB에 저장된 데이터 값과 그것이 표현하는 실제 값이 일치하는 정확성을 의미

  > 무결성 제약조건?

- 정확하지 않은 데이터가 DB에 저장되는 것을 방지하기 위한 제약조건


2. 무결성의 종류

  > NULL 무결성 : 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정

  > 고유(Unique) 무결성 : 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값이 서로 달라야 한다는 규정

  > 도메인(Domain) 무결성 : 특정 속성의 값이 미리 정해진 도메인에 속한 값이어야 한다는 규정

  > 키(Key) 무결성 : 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정

  > 관계(Relationship) 무결성 : 

ㄴ 특정 튜플 삽입 가능 여부를 지정한 규정

ㄴ 한 릴레이션과 다른 릴레이션의 튜플들 간 관계의 적절성 여부를 지정한 규정

  > 참조 무결성 : 외래키 값은 NULL이거나 참조릴레이션의 기본키값과 동일해야 한다는 규정

  > 개체 무결성 : 기본 릴레이션의 기본키를 구성하는 어떤 속성도 NULL 일 수 없다는 규정


4. 관계대수


1. 관계대수?

  > 관계형 DB에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어

  > 하나 또는 두개의 릴레이션을 입력받아서 새로운 릴레이션을 결과로 출력하는 연산들의 집합

  > 관계대수에 포함된 연산의 종류

- 기본 연산 : SELECT, PROJECT, JOIN, DIVISION 등

- 집합 연산 : UNION, DIFFERENCE, INTERSECTION, CARTESIAN PRODUCT 등

 

2. 순수 관계 연산자

  > SELECT

- 릴레이션에 존재하는 튜플 중 특정 조건을 만족하는 튜플들의 부분집합을 구하여 새로운 릴레이션 생성

- 수평연산 : 릴레이션의 행에 해당하는 튜플을 구하는 연산자이기 때문

  > PROJECT

- 속성값을 추출하여 새로운 릴레이션 생성

- 연산결과에 중복이 발생하면 중복 제거

- 수직연산 : 릴레이션의 열에 해당하는 속성을 추출하는 연산자이기 때문

  > JOIN

- 공통 속성을 중심으로 2개의 릴레이션을 하나로 합쳐서 새로운 릴레이션 생성

- JOIN 연산 결과 릴레이션의 차수는, 조인된 두 릴레이션의 차수의 합과 같다

- 조인의 종류

ㄴ 세타 조인 : 비교 연산자(>, <, = 등)를 세타로 일반화하여 표현될 수 있는 조인

ㄴ 자연 조인 : 조건이 = 일 때 중복된 속성을 제거

  > DIVISION

- R[속성r / 속성s]S

- 속성r과 속성s는 동일 속성 값을 가지는 속성이어야 한다.

- 릴레이션 R 에서 속성 r을 제외한 릴레이션을 추출한다.

- 단, 릴레이션 S의 속성 s의 모든 튜플과 연간되어있는 튜플만 추출한다.

- 쉽게 말해 릴레이션 R에 있는 값 중 릴레이션 S의 속성(들) s를 모두 가지고 있는 튜플에서 속성(들)r을 제외하고 추출

 

3. 일반 집합 연산자

  > 수학적 집합 이론에서 사용하는 연산자

- 합집합(UNION) : 두 릴레이션의 튜플의 합집합 추출. 중복 되는튜플은 제거.

- 교집합(INTERSECTION) : 두 릴레이션의 튜플의 교집합 추출.

- 차집합(DIFFERENCE) : 두 릴레이션 튜플의 차집합 추출

- 교차곱(CARTESIAN PRODUCT) : 두 릴레이션 튜플들의 결합된 정보 연산

ㄴ 곱이라 보면 됨.

ㄴ 릴1(튜플1,튜플2), 릴2(튜플A,튜플B) 일 때 

ㄴ 릴1 X 릴2 == 릴3(튜플1-튜플A, 튜플1-튜플B, 튜플2-튜플A, 튜플2-튜플B) 이런식

* 합병조건을 만족해야 수행 가능한 연산 : UNION, DIFFERENCE, INTERSECTION


4. 관계해석

  > 관계 데이터의 연산을 표현하는 방법(튜플 관계해석, 도메인 관계해석)

  > 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지님.

  > 질의어로 표현

 

 

 













Comments