본문 바로가기

back-end/sql

SQL/ 릴레이션의 개념

릴레이션 relation

"행과 열로 구성된 테이블"

 

데이터

음료1, 코카콜라, 코카콜라 컴퍼니, 3000
음료2, 펩시, 펩시코, 2500
음료3, 스프라이트, 코카콜라 컴퍼니, 2800
음료4, 칠성사이다, 롯데칠성음료, 2000
음료5, 나랑드사이다, 동아오츠카, 1500

 

테이블(릴레이션) 형태

음료 릴레이션

음료 번호 음료 이름 제조 회사 가격
1 코카콜라 코카콜라 컴퍼니 3000
2 펩시 펩시코 2500
3 스프라이트 코카콜라 컴퍼니 2800
4 칠성사이다 롯데칠성음료 2000
5 나랑드사이다 동아오츠카 1500

 

위 릴레이션의 경우

음료 번호={1, 2, 3, 4, 5},
음료 이름={코카콜라, 펩시, 스프라이트, 칠성사이다, 나랑드사이다},
제조 회사={코카콜라 컴퍼니, 펩시코, 롯데칠성음료, 동아오츠카},
가격={3000, 2500, 2800, 2000, 1500}

4개의 집합을 가진다고 볼 수 있다.

 

1. 릴레이션 내에서 생성되는 관계 - 관련 있는 실제 데이터들의 집합

각 행은 4개의 집합에서 각각 원소들이 하나씩 선택되어 만들어진 것으로 각 원소들은 관계를 맺는다. 

2, 펩시, 펩시코, 2500

 

2. 릴레이션 간에 생성되는 관계 - 한 릴레이션에서 다른 릴레이션으로 식별 가능한 값을 이용해 연결

음료(음료번호, 음료이름, 제조회사, 가격)
주문(음료번호, 고객번호, 판매가격, 주문일자)
고객(고객번호, 이름, 주민번호, 주소, 핸드폰)

음료 릴레이션의 음료번호와 고객 릴레이션의 고객번호를 주문 릴레이션에 저장해 표현한다.

 


릴레이션 스키마와 인스턴스

 

음료 릴레이션

  • 속성attribute : 릴레이션 스키마의 열
  • 차수degree: 속성의 개수
  • 투플 tuple : 릴레이션의 행
  • 카디널리티cardinality: 투플의 수
  • 도메인domain: 속성이 가질 수 있는 값(타입)의 집합

 

스키마 schema

관계 데이터베이스의 릴레이션이 어떻게 구성되는지 어떤 정보를 담고 있는지에 대한 기본적인 구조를 정의한다.

테이블의 첫 행(header)에 나타나, 각 데이터의 특징을 나타내는 속성, 자료 타입 등의 정보를 명시한다.

 

음료 릴레이션의 스키마를 다음과 같이 표기할 수 있다.

음료(음료번호, 음료이름, 제조회사, 가격)

 

인스턴스 instance

정의된 스키마에 따라 테이블에 실제로 저장되는 데이터의 집합을 말한다.

각 투플의 속성 값은 릴레이션 스키마에서 정의한 도메인의 값으로 구성되어야 하며 서로 중복되지 않아야 한다.

 


릴레이션의 특징

 

 

1. 속성은 단일 값을 가져야 한다.

 

2. 속성은 서로 다른 이름을 가져야 한다.

 

3. 한 속성의 값은 모두 같은 도메인 값을 가져야 한다.

 

4. 속성의 순서는 영향을 미치지 않는다.

 

5. 중복된 투플은 허용되지 않는다.

 

6. 투플의 순서는 영향을 미치지 않는다.

'back-end > sql' 카테고리의 다른 글

SQL/ 조인 JOIN  (0) 2022.06.13
SQL/ SQK Keywords  (0) 2022.06.13
SQL/ 데이터 모델링  (0) 2022.06.13
SQL/ 키 Key  (0) 2022.06.10