2021. 2. 10. 22:30ㆍMySQL/MySQL로 배우는 데이터베이스 개론과 실습
01. 관계 데이터 모델의 개념
1. 릴레이션
릴레이션은 행과 열로 구성된 테이블을 말한다.
도서 (도서번호, 도서 이름, 출판사, 가격) 주문(도서번호, 고객번호, 판매 가격, 주문 일자) 고객(고객번호, 이름, 주민번호, 주소, 핸드폰)
도서의 도서번호와 주문의 도서번호은 릴레이션 관계 주문의 고객번호와 고객의 고객번호는 릴레이션 관계
관계 데이터 모델을 다른 데이터 모데로 가 구분하는 큰 특징이 이런 릴레이션 관계!
2. 릴레이션 스키마와 인스턴스
- 릴레이션은 스키마와 인스턴스로 이루어짐
- 스키마는 관계 데이터베이스의 릴레이션이 어떻게 구성되는지 기본적인 구조를 정의한다.
- 스키마는 테이블의 첫 행인 헤더에 나타나며 각 데이터의 특징을 나타내는 속성, 자료 타입 등의 정보를 담고 있다.
- 인스턴스는 정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합을 의미한다.
위 그림을 보면
- 전체 = '릴레이션'
- 도서번호, 도서이름, 출판사, 가격은 릴레이션의 데이터 구조 = '스키마'
- 각 스키마에 저장된 데이터를 = 인스턴스
- 하나의 열(세로) = 속성
- 전체 열의 수 = 차수
- 하나의 행(가로) = 투플
- 전체 행의 수 = 카디날리티
3. 릴레이션의 특징
- 속성은 단일 값을 가진다.
- 속성은 서로 다른 이름을 가진다.
- 한 속성의 값은 모두 같은 도메인 값을 가진다.
- 속성의 순서는 상관없다.
- 릴레이션 내의 중복된 투플은 허용하지 않는다.
- 투플의 순서는 상관없다.
02. 무결성 제약조건
데이터베이스에 저장된 데이터는 결함이 없어야 하며 질의에 대해 신뢰성 있는 답을 제공해야 한다.
대학에서 수강인원이 40명인데 41명이 수강신청되는 경우 무결성 제약조건을 위배한 것이다.
1. 키
키는 릴레이션에서 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합이다.
키가 되는 속성은 반드시 값이 달라서 투플들을 서로 구별할 수 있어야 한다.
키는 릴레이션 간의 관계를 맺는 데도 사용된다.
- 슈퍼 키
- 슈퍼 키는 투플을 유일하게 식별할 수 있는 하나의 속성, 속성 집합
- 후보 키
- 후보 키는 투플을 유일하게 식별할 수 있는 속성의 '최소 집합'
- 기본키 (PK, primary key)
- 여러 후보키 중 하나를 선정하여 대표로 삼는 키를 말한다.
- 대리 키
- 기본키가 보안을 요하거나, 여러 개의 속성으로 구성되어 마땅한 기본키가 없을 경우 사용.
- 대체키
- 기본키로 선정되지 않은 후보 키를 말한다.
- 외래 키 (FK, foreign key)
- 외례키는 다른 릴레이션의 기본키를 참조하는 속성
2. 무결성 제약조건
데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것
- 도메인 무결성 제약조건
- 릴레이션 내에 투플들이 각 속성의 도메인에 지정된 값만 가져야 한다는 조건 (interge r면 정수 값만)
- 개체 무결성 제약조건
- 릴레이션은 기본키를 지정하고, 기본키는 Null 값을 가져서는 안 되며 하나의 값만 존재하는 조건
- 참조 무결성 제약조건
- 릴레이션 간의 참조 관계를 선언하는 제약조건 (부모가 intege r면 자식도 integer)
- 참조 무결성 제약 조건 4가지
- Restricted : 자식 릴레이션에서 참조하고 있을 경우 부모 릴레이션의 삭제 작업을 거부
- Cascade : 자식 릴레이션의 관련 투플을 같이 삭제함
- default : 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경함
- null : 자식 릴레이션의 관련 투플을 NULL 값으로 설정함
03. 관계 대수
∧ : (and) ∨: (or) ¬ : (not)
⋈
1. 셀렉션 σ(sigma) : 투플 추출
마당 서점에서 판매하는 도서 중 8,000원 이하인 도서를 검색하시오.
σ가격 ≤ 8000 (도서)
가격이 8,000원 이하이고 도서번호가 3 이상인 도서 검색하시오.
σ가격 ≤ 8000 ∧ 도서번호 ≥3
2. 프로젝션 π(pie) : 속성 추출
신간도서 안내를 위해 (이름, 주소, 핸드폰)의 카탈로그 주소록을 만드시오.
π이름, 주소, 핸드폰 (고객)
3. 합집합 ∪: 두 개의 릴레이션을 합한다.
마당 서점은 A와 B지점이 있다. 두 지점의 도서는 각 지점에서 관리하며 릴레이션 이름은 각각 도서 A, 도서 B이다. 마당 서점의 전체 도서를 하나의 릴레이션으로 보이시오.
도서A ∪ 도서B
4. 교집합 ∩ : 두 릴레이션이 공통으로 가지는 튜플을 반환한다.
마당서점의 두 지점에서 동일하게 보유하고 있는 도서 목록을 보이시오
도서A ∩ 도서B
5. 차집합 - : A에는 속하고 B에는 속하지 않은 튜플을 반환한다.
마당서점의 두 지점 중 지점 A에서만 보유하고 있는 도서 목록을 보이시오
도서 A - 도서 B
6. 카티전 프로덕트 x : 두 릴레이션을 하나로 합친다.
고객 릴레이션과 주문 릴레이션의 카티전 프로덕트를 구하시오
고객 X 주문
7. 조인 : 두 릴레이션의 공통 소성 중 속성 값이 같은 튜플을 수평으로 결합한다.
8. 디비전 % : B릴레이션의 모든 값을 포함하는 A의 튜플을 추출한다.
위 그림과 같이 A(x, y) B(y) 릴레이션이 있을 때
A % B를 하게 되면 B속성 1을 가지는 A 튜플을 모두 추출한다.
결과는 1,3