관계형 데이터베이스의 구조
관계형 데이터베이스
- 테이블(=관계, relation)의 집합
- 각 테이블에는 그 데이터베이스 안에서 고유한 이름이 주어진다.
- 테이블(=관계)에는 여러 개의 행 (가로 줄, row) 이 있는데 , 행을 튜플(tuple) 이라고 함.
- 테이블에는 세로 줄(=열, column)이 있는데, 속성(attribute)라고 함.
- 튜플은 여러 속성(값) 사이의 관계를 나타냄
- 튜플(Tuple) : 릴레이션에서 한 행(ROW)을 말한다.
- 속성(Attribute) : 릴레이션에서 열(COLUMN)의 이름을 말한다.
- 영역(Domain) : 한 속성이 가질 수 있는 값의 집합을 말한다.
- 차수(Degree) : 한 릴레이션에서 속성의 개수를 말한다.
- 카디날리티(Cardinality) : 한 릴레이션에서 튜플의 수를 말한다.
렐레이션(relation)의 특성
- 한 릴레이션에서 모든 튜플은 상이하다.
- 릴레이션에서 튜플 사이에는 순서가 정의되지 않는다.
- 릴레이션을 구성하는 속성 사이에는 순서가 없다.
- 릴레이션 내의 모든 값은 원자값(atomic value)을 갖는다.
속성의 도메인(=범위), 튜플 변수

- 학생 테이블(=학생 릴레이션)에는 학번과 이름이라는 속성이 두 개가 있다.
- 튜플은 세 개가 있다. 첫째 튜플은 (9902101, 홍길동)이고, 둘째 튜플은 (9902102, 박두리)이고, 셋째 튜플(9902103, 박돌쇠)이다.
- 학번의 도메인은 일곱자리 수이고, 이름은 20자 이내의 문자열이다.
튜플 변수(tuple variable)
- 튜플 변수는 특정 시점에 테이블 안에 있는 튜플 하나를 가리킨다.
- 관계형 데이터베이스에서 속성은 단순해야 하고, 또한 속성의 값이 하나이어야 한다.
어떤 테이블의 모든 속성이 단순하고 값이 하나인 때
- 그 테이블 또는 그 스키마는 제 1 정규형(1NF)에 있음
- 관계형 데이터베이스에서 모든 스키마는 1NF에 있어야 함
테이블 스키마와 테이블 인스턴스
- 테이블을 만들려면 테이블의 스키마부터 먼저 만든 뒤, 그 안에 튜플을 넣어야 한다.
테이블의 스키마
- 테이블의 이름
- 테이블에 들어있는 속성의 이름 목록
- 각 속성에 대한 도메인(=범위)
create table 학생 (학번 char(7), 이름 char(20));
- 테이블의 이름은 학생, 속성의 이름은 학번과 이름
- 학번의 범위는 char(7), 이름의 범위는 char(20)
테이블의 인스턴스(relation instance)
- 특정 시점에 그 테이블에 들어있는 자료를 가리킴

- 일반적으로 테이블의 스키마는 한 번 만들어진 뒤에는 거의 바뀌지 않는다.
- 테이블의 인스턴스는 상대적으로 자주 바뀐다.
(예) 입학, 편입학, 자퇴, 졸업 등
데이터베이스 스키마와 데이터베이스 인스턴스(instance)
관계형 데이터베이스는 테이블의 집합
- 데이터베이스 스키마란 테이블 스키마의 집합
- 데이터베이스를 이루는 모든 테이블의 스키마를 더한 것이 데이터베이스의 스키마
- 데이터베이스 인스턴스란 특정 시점에 각 테이블 테이블 인스턴스의 집합
관계형 대수(relational algebra)소개
데이터베이스 질의어
- 사용자가 데이터베이스에 있는 정보를 꺼내기 위하여 스는 언어
- 질이어 = 자료 조작어(DML, data manipulation language)
- 삽입(insert), 삭제(delete), 수정(update), 검색(select) 등
- 절차적 질의어 / 비절차적 질의어
관계형 데이터베이스 질의어의 이론적 바탕
- 관계 대수 (relational algebra)
- 관계 해석 (relational calculus)
- 튜플 관계 해석 (tuple relational calculus)
- 도메인 관계 해석(domain relational calculus)
관계 대수의 기본 연산(fundamental or primitive operation)
(1) 선택(selct) 연산
(2) 속성추출(project) 연산
(3) 합집합(union) dustks
(4) 차집합(set difference) 연산
(5) 카티전 곱(cartesian product) 연산
관계 대수의 기타 연산
- 기타 연산은 기본 연산만으로 표현할 수 있다.
(1) 교집합
(2) 자연 조인
(3) 나누기
관계 대수: 기본연산(primitive or fundamental ops)
선택 연산(σ, select) - 수평적 부분 집합
- 입력 테이블 1개, 결과 테이블 1개
- 조건을 만족하는 튜플만으로 이루어진 테이블을 결과로 내보낸다.
- 선택 연산을 나타내는 기호는 그리스 글자 σ (시그마)
- 선택 연산은 σp(r)로 나타냄(p: 조건, r: 입력테이블)
(문제) 학생 테이블에서 학번이 9902101인 튜플만 선택하려면?

입력 테이블은 학생, 조건은 학번 = "9902101"

속성 비추기 연산(π, project) - 수직적 부분 집합
- 입력 테이블 1개, 결과 테이블 1개
- 테이블에서 원하는 속성만으로 이루어진 테이블을 결과로 내보낸다.
- 속성 추출 연산을 나타내는 기호(π, project) 그리스 글자 π(파이: pi)
속성추출 연산은 π att1, att2, ... (R)과 같이 나타냄
- att1, att2, ...는 원하는 속성들
- R은 입력 테이블이며, 결과도 또한 테이블
