5. 관계형 데이터 모델
5.1 릴레이션 : 데이터를 이차원의 테이블로 표현한 것.
- 릴레이션 스키마와 릴레이션 인스턴스로 구성.
-> 릴레이션 스키마 : 릴레이션 이름, 각 속성의 이름 & 타입,
속성값의 도메인을 정의
; relation intension이라고도 함.
==> 맨 첫 행, 즉, 속성에 관한 정보가 릴레이션 스키마이다.
==> 나머지 아랫줄이 릴레이션 인스턴스.
-> 릴레이션 인스턴스 : 릴레이션에 들어있는 튜플들의 집합.
-> 속성(Attribute) : 테이블(릴레이션)의 열(column)
-> 튜플(Tuple) : 테이블(릴레이션)의 행(Row)
-> Degree : 속성의 숫자(아래의 경우 6)
-> Cardilanlity : 튜플의 숫자(아래의 경우 4)

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 |