Computer Science 기본 지식/데이터 베이스

DB (4) 관계 데이터베이스

로파이 2021. 5. 9. 21:22

관계 데이터 모델에 따라 제작된 데이터베이스를 관계 데이터베이스(relational database)라고 한다.

관계 데이터 모델

기본 개념

관계 데이터 모델은 동일한 구조(릴레이션) 관점에서 모든 데이터를 논리적으로 구성하며 선언적인 질의어를 통해 데이터 접근을 제공한다.

관계 데이터 모델에서는 하나의 개체에 대한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장한다.

회원 릴레이션

관계 데이터베이스를 구성하는 요소

관계 데이터 모델 관계 데이터베이스
릴레이션 테이블
행 또는 튜플 레코드
열 또는 속성 필드 또는 데이터 항목
릴레이션 인스턴스 테이블 인스턴스
릴레이션 스킴 테이블 스킴
릴레이션 카디널리티 레코드의 개수
릴레이션 차수 필드의 개수

 

(1) 속성

릴레이션의 열을 속성 또는 애트리뷰트라고 한다.

 

(2) 튜플

릴레이션의 행을 튜플이라고 부른다.

 

(3) 도메인

하나의 속성이 가질 수 있는 값의 범위 또는 집합을 해당 속성의 도메인이라고 한다.

 

(4) 널 값

릴레이션에 있는 특정 튜플의 속성 값을 모르거나 적합한 값이 없는 경우에는 널이라는 특별한 값을 사용할 수 있다.

 

(5) 차수

하나의 릴레이션에서 속성의 전체 개수를 릴레이션 차수라고 한다.

 

(6) 카디널리티

하나의 릴레이션에서 튜플의 전체 개수를 릴레이션의 카디널리티라고한다.

 

(7) 키

튜플을 유일하게 구별해주는 역할을 하며 이러한 속성이나 속성 집합을 키라고한다. 키는 관계 데이터 모델에서 중요한 제약조건을 정의한다.

 

① 수퍼키

수퍼키는 유일성을 갖는 속성 혹은 속성들의 집합이다. 유일성이란 튜플을 구별하는 유일한 기본 특성으로 하나의 릴레이션에서 키로 지정된 속성의 값은 튜플마다 달라야 한다. 즉 중복되는 키값을 갖는 튜플이 존재하지 않는다.

ex) 회원 ID는 회원 릴레이션에서 튜플을 유일하게 찾을수 있는 수퍼키가 된다. 회원 이름은 중복이 가능하므로 유일한 키가 되지 못한다.

 

② 후보키

후보키는 유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다. 최소성은 키를 구성하고 있는 여러 속성 중에서 하나라도 없으면 튜플을 유일하게 구별할 수 없는 필요한 최소한 속성들로만 키를 구성하는 특성이다.

 

후보키는 기본키와 대체키로 구성된다. 후보키는 수퍼키 중 최소성을 만족하는 것이 후보키가 된다.

 

③ 기본키

관계형 데이터 모델에서는 후보키 중에서 하나만을 식별자로 선택해야 하는데 이를 기본키라고 한다.

기본키를 선택하는 조건은 다음과 같다.

1. 기본키는 널 값을 가질 수없다. 반드시 유효해야한다.

2. 값이 자주 변경될 수 있는 속성이 포함된 후보키는 기본키로 부적합하다.

3. 단순한 후보키를 기본키로 선택한다.

 

④ 대체키

대체키는 기본키로 선택되지 못한 후보키들이다.

 

⑤ 외래키

외래키는 어떤 릴레이션에 소속된 속성 또는 속성 집합이 다른 릴레이션의 기본키가 되는 키이다.

다른말로 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합이 외래키이다.

 

릴레이션의 개념

(1) 릴레이션의 개념

관계 데이터 모델에서 데이터 간의 관계를 나타내는 표 자체를 릴레이션이라고 한다. 이 릴레이션은 하나 이상의 속성들의 집합으로 이루어진다.

표(테이블)은 행 레코드와 열 필드로 구성되어 있으며 릴레이션은 릴레이션 스키마와 인스턴스로 구성되어 있다.

릴레이션 스키마: 릴레이션의 논리적 구조를 저의하는 것으로 릴레이션 이름과 해당 릴레이션을 형성하는 하나 이상의 속성을 합쳐 정의하는 개념이다.

릴레이션 인스턴스: 릴ㄹ레이션 어커런스라고도 하며, 어느 한 시점에서 릴레이션 스킴에 따라 실제 데이터로 입력된 튜플들의 집합을 의미하는 개념으로 시간에 가변적이라는 특성이 있다.

 

(2) 릴레이션의 특징

 

1. 튜플의 유일성

하나의 릴레이션에는 중복되는 튜플이 존재할 수 없다.

2. 튜플의 무순서

하나의 릴레이션에서 튜플 사이의 순서는 중요하지 않다.

3. 속성의 무순서

하나의 릴레이션에서 속성 사이의 순서는 중요하지 않다.

4. 속성의 원자성

속성 값을 원자 값만 사용할 수 있다. 모든 속성의 값은 더 이상 분해되지 않는 하나의 값이어야 한다.

 

관계 데이터 모델의 제약 조건

 

정보를 정확하게 처리하기 위해서 데이터베이스 관계 안에 정보들이 정확해야한다.

  • 관계 스키마를 정의할 때 무결성을 유지하도록 제약조건을 정확하게 정의한다.
  • 데이터베이스 응용 프로그램이 자료를 입력, 갱신, 삭제하는 경우에는 정의된 무결성 제약조건을 충족하는 경우에만 실행을 허용한다.
종류 설명
도메인 제약조건 속성 자료값은 소속 도메인의 원자 값이어야 한다.
개체 무결성 제약조건 속성은 널 값이 아니며 유일해야한다.
키 제약조건 키 값은 유일하게 튜플을 식별해야한다.
참조 무결성 제약조건 외부키 값은 반드시 기본키의 도메인 값이어야 한다.
의미 무겨성 제약조건 조건을 명시한 제약조건은 지켜야 한다.

 

개체 무결성 제약조건

개체 무결성 제약조건은 기본키를 구성하는 모든 속성은 널 값을 가지면 안된다는 규칙이다.

 

참조 무결성 제약조건

참조 무결성 제약조건은 외래키에 대한 규칙으로 외래키는 자신이 참조하는 릴레이션에 기본키로서 존재해야한다. 따라서 외래키로 항상 다른 릴레이션의 유일한 튜플을 참조할 수 있어야한다.

 

관계 연산의 정의

원하는 데이터를 얻기 위해 필요한 처리 요구를 수행하는 것, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 한다.

 

관계 대수 (Relational Algebra)

원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어이다.

 

관계 해석 (Nonprocedural Language)

원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어이다.

 

관계 대수 연산자

일반 집합 연산자와 순수 관계 연산자로 나뉜다.

구분 연산자의 종류 기호 설명
관계 연산자 셀렉트
릴레이션의 수평적 부분 집합
프로젝트
릴레이션의 수직적 부분 집합
조인
두 릴레이션의 수평적 합집합
디비전
R div S 수행시 R에서 S의 속성들의 도메인이 일치하는 R의 튜플들을 찾아내는 연산
집합 연산자 합집합
합집합
교집합
교집합
차집합 - 차집합
카디션 프로덕트 X 두 릴레이션이 가능한 모든 튜플들의 집합

 

관계 연산자 예시

SELECT

셀렉트 연산은 조건 수식을 참으로 만드는 튜플을 선택하는 것이다.

나이가 30 이상인 튜플들을 찾는 SELECT 연산

PROJECTION

릴레이션에서 선택한 속성에 해당하는 값으로 결과 릴레이션을 구성한다. 주어진 릴레이션의 일부 열로만 구성되어 해당 릴레이션의 수직적 부분 집합으로 생성하는 것과 같다.

회원 ID와 적립금 속성으로만 릴레이션을 구성

 

JOIN

여러 릴레이션을 조합하여 하나의 결과 릴레이션을 생성한다.

두 릴레이션의 조인

DIVISION

두 개의 릴레이션 R과 S가 있을 때 S 릴레이션이 모든 조건을 만족하는 경우의 튜플들을 릴레이션 R에서 분리해내어 프로젝션하는 연산을 의미한다. 두 릴레이션 R과 S의 디비전 연산은 릴레이션 S의 모든 튜플과 관련 있는 릴레이션 R의 튜플로 결과 릴레이션을 구성한다.

 

모든 조건을 만족하는 튜플들을 구할 때 많이 사용한다.  

 

모든 판매처에 가입되어 있는 회원의 회원 번호와 이름을 구하는 질의

'Computer Science 기본 지식 > 데이터 베이스' 카테고리의 다른 글

DB (6) 정규화  (0) 2021.05.13
DB (5) SQL 언어  (0) 2021.05.12
DB (3) 개체-관계 모델링  (0) 2021.05.09
DB (2) 데이터베이스 시스템  (0) 2021.05.09
DB (1) 기초 용어  (0) 2021.05.08