반응형
관계형 데이터베이스(Relation Database)
(1) 관계형 데이터베이스의 등장
- 1970년대 E.F. Codd박사의 논문에서 처음 소개된 데이터베이스이다.
- 릴레이션(Relation)과 릴레이션의 조인 연산을 통해서 합집합, 교집합, 차집합 등을 만들 수 있다.
- 현재 기업에서 많이 사용하는 데이터베이스로 Oracle, MS-SQL, MySQL 등의 다양한 데이터베이스 관리 시스템이 있다.
(2) 데이터베이스와 데이터베이스 관리 시스템의 차이점
- 데이터베이스는 데이터를 어떠한 형태의 자료구조로 사용하느냐에 따라서 나누어진다.
- 데이터베이스의 종류는 계층형, 네트워크형 데이터베이스, 관계형 데이터베이스 등이 있다.
- 계층형 데이터베이스는 트리(Tree) 형태의 자료구조에 데이터를 저장하고 관리하며, 네트워크는 오너(Owner)와 멤버(Member) 형태로 데이터를 저장한다.
- 계층형 데이터베이스는 1대N 관계를 표현한다.
- 네트워크 데이터베이스는 1대N과 함께 M대N 표현도 가능하다.
- 관계형 데이터베이스는 릴레이션에 데이터를 저장하고 관리한다.
- 관계형 데이터베이스는 릴레이션을 사용해서 집합연산과 관계 연산을 할 수 있다.
- 데이터베이스 관리 시스템(Database Management System)은 계층형 데이터베이스, 네트워크 데이터베이스, 관계형 데이터베이스 등을 관리하기 위한 소프트웨어를 의미하며, 일명 DBMS라고 한다.
- DBMS의 종류에는 Oracle, MS-SQL, MySQL, Sybase 등이 있으며 모두 관계형 데이터베이스를 지원한다.
(3) 관계형 데이터베이스 집합 연산과 관계 연산
- 관계형 데이터베이스의 특징은 릴레이션을 사용해서 집합 연산과 관계 연산을 할 수 있다.
▶ 집합 연산
집한 연산 | 설명 |
합집합 (Union) |
- 두 개의 릴레이션을 하나로 합하는 것이다. - 중복된 행(튜플)은 한 번만 조회된다. |
차집합 (Difference) |
- 본래 릴레이션에는 존재하고 다른 릴레이션에는 존재하지 않는 것을 조회한다. |
교집합 (Intersection) |
- 두 개의 릴레이션 간에 공통된 것을 조회한다. |
곱집합 (Cartesian product) |
- 각 릴레이션에 존재하는 모든 데이터를 조합하여 연산한다. |
▶ 관계 연산
관계 연산 | 설명 |
선택 연산 (Selection) |
릴레이션에서 조건에 맞는 행(튜플)만을 조회한다. |
투영 연산 (Projection) |
릴레이션에서 조건에 맞는 속성만을 조회한다. |
결합 연산 (Join) |
여러 릴레이션의 공통된 속성을 사용해서 새로운 릴레이션을 만들어 낸다. |
나누기 연산 (Division) |
기준 릴레이션에서 나누는 릴레이션이 가지고 있는 속성과 동일한 값을 가지는 행(튜플)을 추출하고 나누는 릴레이션의 속성을 삭제한 후 중복된 행을 제거하는 연산이다. |
테이블(Table)의 구조
- 관계형 데이터베이스는 릴레이션에 데이터를 저장하고 릴레이션을 사용해서 집합 연산 및 관계 연산을 지원하여 다양한 형태로 데이터를 조회할 수 있다.
- 릴레이션은 최종적으로 데이터베이스 관리 시스템에서 테이블(Table)로 만들어진다.
- 기본키(Primary key)는 하나의 테이블에서 유일성(Unique)과 최소성, Not Null을 만족하면서 해당 테이블을 대표하는것이다.
- 테이블은 행과 칼럼으로 구성된다. 그 중에서 행은 하나의 테이블에 저장되는 값으로 튜플(Tuple)이라고도 한다.
- 외래키(Foreign key)는 다른 테이블의 기본키를 참조(조인)하는 칼럼이다.
- 왜래키는 관계 연산 중에서 결합 연산(Join)을 하기 위해서 사용한다.
반응형
'Certificate > SQLD' 카테고리의 다른 글
[SQLD]옵티마이저(Optimizer)와 실행 계획 (0) | 2021.11.15 |
---|---|
[SQLD]SQL(Structured Query Language) 종류 (0) | 2021.11.13 |
[SQLD]분산 데이터베이스 (0) | 2021.11.11 |
[SQLD]반정규화(De-Normalization) (0) | 2021.11.10 |
[SQLD]정규화(Normalization) (0) | 2021.11.09 |