Back/DB

정보처리기사DB - 2. 관계형DB

TimeSave 2022. 1. 20. 22:16

 

5. 관계형 데이터 모델

5.1 릴레이션 : 데이터를 이차원의 테이블로 표현한 것.

- 릴레이션 스키마와 릴레이션 인스턴스로 구성.

 

-> 릴레이션 스키마 : 릴레이션 이름, 각 속성의 이름 & 타입,

속성값의 도메인을 정의

; relation intension이라고도 함.

 

==> 맨 첫 행, 즉, 속성에 관한 정보가 릴레이션 스키마이다.

==> 나머지 아랫줄이 릴레이션 인스턴스.

 

-> 릴레이션 인스턴스 : 릴레이션에 들어있는 튜플들의 집합.

-> 속성(Attribute) : 테이블(릴레이션)의 열(column)

-> 튜플(Tuple) : 테이블(릴레이션)의 행(Row)

-> Degree : 속성의 숫자(아래의 경우 6)

-> Cardilanlity : 튜플의 숫자(아래의 경우 4)

출처 :  http://lyr1c.tistory.com/49

5.2 E-R 모델을 관계형 데이터 모델로 변환

- mapping rule 이 있다.

: 속성은 column으로, 식별자는 기본키로, 릴레이션 간의 관계는 기본키와 외래키로 표현.

 

관계가

- 1:1이면 ; 1개의 기본키, 1개의 외래키로 표현

- 1:N 이면 ; 1개의 기본키, 여러개의 외래키로 표현,

- M:N 이면 각 기본키를 포함한 별도의 릴레이션을 만든다

=> 교차 릴레이션(=교차 엔티티)라고 한다.

 

cf) 식별관계 : 개체의 외래키가 기본키가 되는 관계

비식별관계 : 외래키가 기본키가 아닌 관계

테이블 정의서 : 테이블에 대한 설명과 컬럼에 대한 정의 문서.

=> 물리적인 실제 릴레이션을 생성.

 

 

--------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

 

6. 키의 개념 & 종류

키 : 튜플을 찾거나 순서대로 찾는 기준으로 삼는 특정 속성.

 

6.1 슈퍼키(Super Key): 릴레이션 속성들의 집합으로 구성된 키

ex) (학번, 주민번호), (학번,주민번호,성명)

=> 유일성은 만족하지만, 최소성은 만족하지 못한다.

=> 구성된 슈퍼키는 중복없이 만들어야 한다.

 

cf) 유일성 : 튜플 당 한개만 가지는 성질. ex) 학번은 하나씩.

최소성 : 최대한 작은 속성들의 조합으로 만들어야 하는 성질.

-> index 하나로만 구분 가능하면, 이것으로 만들어야 한다.

 

6.2 후보키(Candidate Key) : 튜플을 유일하게 식별하기 위해 사용하는 속성의 부분집합. 기본키가 될 수 있는 키들.

=> 유일성과 최소성을 만족해야한다.

ex) 유일성과 최소성을 만족하는 학번, 주민번호 등..

(학번,과목명) 처럼 묶어서 유일성,최소성을 만족시키는 경우도 있다.

=> 복합키(composite key)라고 한다.

 

6.3 기본키(Primary Key) : 후보키 중, 특별히 선정된 키. NULL값을 가질 수 없다.

6.4 대체키(Alternate Key) : 기본키를 제외한 나머지 후보키.

6.5 외래키(Foreign Key) : 기본키를 참조하는 속성.

 

-------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

7. 무결성(Integrity) ; 데이터값과, 현실의 값이 일치하는 정확성.

무결성 제약조건(Constraint) : 정확하지 않은 데이터가 DB에 저장되는 것을 방지

 

- NULL무결성 : 특정 속성 값이 NULL이 되면 안 됨.

- 고유(Unique) 무결성 : 한 속성에서 각 튜플의 값들에 중복이 없는 것.

- 도메인(Domain) 무결성 : 속성의 값이 속성의 도메인에 속해야 하는 것.

- 키(Key) 무결성 : 한 릴레이션에는 키가 하나 이상 존재해야 하는 것.

- 관계(Relationship) 무결성 : 관계에 대한 적절성 여부

혹은 튜플 삽입 여부를 지정.

- 참조(Referential) 무결성 : 외래키는 NULL 혹은 기본키와 같은 값을 가져야 하는 것.

- 개체(Entity) 무결성 : 기본키를 구성하는 속성은 NULL이 불가한 것.

 

-------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

8. 관계대수 : 절차적 언어

하나 또는 두개의 릴레이션을 입력으로 받아 새로운 릴레이션을 생성하는 연산의 집합.

 

8.1 순수 관계 연산자

SELECT

- 조건을 만족하는 부분 튜플집합을 구하여 새로운 릴레이션을 만듦

- 릴레이션의 행을 구하는 것으로 수평연산이라고도 한다.

- 표기 : б<조건>(R)

PROJECT

- 제시된 속성만을 추출하여 새로운 릴레이션 생성

- 중복이 발생하면 제거한다.

- 릴레이션의 열을 추출하므로 수직연산이라 함.

- 표기 : π<속성 리스트>(R)

JOIN

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

- 결과의 차수 = 조인된 두 릴레이션 차수의 합

- CARTESIAN PRODUCT 후 => SELECT 연산을 한 것과 동일.

- 표기 : R ▷◁(JOIN 조건) S [R과 S는 릴레이션]

EX) 성적 ▷◁(이름=이름) 학적부

 

cf) natural join :

theta join :

 

DIVISION

- R(Z,Y)에 대한 S(Y)의 DIVISION은 S(Y)에 연관된 모든 R(Z)의 튜플을 선택하는 것.

- 즉, 제수의 모든값에 동시에 해당되는 튜플을 피제수의 릴레이션에서 뽑아내는 것이다.

 

- 표기 : R[속성r÷속성s]S [r과 s는 동일 값을 가지는 속성이어야 한다]

- 여기 예시가 좋다.

https://m.blog.naver.com/k97b1114/140152644090

 

8.2 일반 집합 연산자

: 수학에서 사용하는 것과 동일하다

- UNION(합집합) : 두 릴레이션 튜플의 합집합을 구하는 것.(중복제거)

 

- DIFFERENCE(차집합) : 한쪽에만 존재하는 튜플 구하기.

 

- INTERSECTION(교집합) : 두 릴레이션에 동시에 존재하는 튜플 구하기.

 

- CARTESIAN PRODUCT(교차곱) : 두 릴레이션의 결합정보를 구하기.

 

8.3 관계해석(Relational Calculus)

: E.F.Codd가 제안한, 관계데이터의 연산을 표현하는 방법.

- 튜플 관계해석 & 도메인 관계 해석이 있다고만 알아두자.

 

 

 

 

 

출처 : 시나공 2018 정보처리기사 실기(산업기사 포함), 한기준 외 3인, 길벗. 2018

 

 

'Back > DB' 카테고리의 다른 글

정보처리기사DB - 4. 정규화  (0) 2022.01.21
정보처리기사DB - 3.SQL  (0) 2022.01.20
3. DDL(Data Definition Language)  (0) 2022.01.20
정보처리기사DB - 1.DB전반  (0) 2022.01.20
2. ERD(Entity Relationship Diagram)  (0) 2022.01.20