관계 데이터 모델1- 관계 모델의 기본

2022. 10. 13. 08:31· Computer Science/데이터베이스
목차
  1. 관계모델(Relational Model)
  2. 관계 스키마
  3. 관계데이터를 사용하는 이유
  4. 관계 대수
  5. 제약조건
  6. 관계 제약조건
  7.  
  8. 키 제약조건

관계모델(Relational Model)

관계 데이터 모델은 데이터베이스를 관계(relation)로 간주하는 것을 의미한다. 여기서 관계는 테이블(table)을 의미한다. 이는 실제세계를 매우 자연스럽게 변환한 것이다.

 

관계데이터 모델은 수학적표기를 사용한다. 수학적 표기를 도입함으로써 2가지 장점이 생긴다.

1. 개념이 명확해진다.

2. 수학적으로 계산이 가능해 증명이 가능해진다.

 

관계 데이터 모델에서 데이터 모델은 테이블의 집합이다. 이러한 테이블은 아래와 같은 구조를 가진다.

- 관계 R⊆A1×A2...×An={(a1,a2,a3,...,an)∣ai∈Ai}

- Ai: 속성(attribute) (또는 도메인(domain), 필드(field))

- ai: 속성 값(attribute value)
- 스키마(schema): R(A1,A2,...,An)
- 튜플(tuple): (a1,a2,a3,...,an)
ex) 학생(성별,학년,학과) 에서 학생은 스키마(R)/  성별,학년,학과는 속성(Ai) / 김말똥,2학년,정컴 은 속성값(ai)
그리고 튜플이란 어떤 각 속성에 해당하는 원소 또는 실제 값들의 집합이다.
ex)
Name Manufacturer
Hite Jinro
Cass OB

Name,Manufacturer은 Attributes(속성)이다.

그리고 각 행들은 튜플을 의미한다. (Hite,Jinro) ,(Cass,OB)

스키마를 정의 하면 Beers(Name, Mnufacturer)이다.

관계 스키마

관계 스키마는 아래의 것들로 이루어진다.
  • 관계 이름 (relation name)
  • 속성과 속성의 타입 또는 순서
    (e.g. Beers(name, manufacturere) 또는 Beers(name:string, manf:string))
  • 키에 대한 정의
  • 제약조건에 대한 정의

위의 예시에서 밑줄은 해당 속성이 Key라는 것을 의미한다.

 

관계데이터를 사용하는 이유

- 매우 simple한 모델이다.

- 수학적인 이유( 수학적표기를 사용함으로써 얻는 이점)

- 표현이 쉬움

- 물리적인 독립성을 보장해주기 때문 

   => 이 모델을 사용하면 SQL이라는 표준화된 언어를 사용할 수 있다. 이는 내부적인 구현을 모르고도 어떤 DBMS에서든 같게 사용 할수      있게 해준다.

 

관계 대수

관계 대수의 기본 양식은 아래와 같다.

여기서 피연산자(Operands)와 연산자(Operator)는 각각 다음을 의미한다.

  • 피연산자 : 관계(테이블)
  • 연산자 : 관계 연산
    • - 집합 연산 : 합집합, 교집합, 차집합
    • 선택(Selection)
    • 프로젝션(Projection)
    • 조인(Join)
    • 집합(Aggregate) : 테이블에 존재하는 튜플에 대한 통계를 내는 연산자이다..

이러한 연산의 대상은 튜플 하나가 아니라 테이블 전체임을 유의해야 한다.

 

선택(Selection)은 테이블에서 특정한 조건을 만족하는 것을 뽑아내는 연산입니다. 일반적으로 B+ 트리나 동적 해시로 구현이 되어 연산을 수행하나 최악은 선형 탐색이 될 수 있는 명령이다. 아래의 예는 Student에서 score가 3.5가 넘는 학생 데이터를 추출하기 위한 명령어이다.

프로젝션(Projection)은 테이블에서 속성(Attribute)에 해당하는 내용 전체를 뽑는 방법이다. 전체를 뽑기 때문에 탐색 또한 전체로 수행되게 된다. 예를 들어, 학생들의 Student에서 score가 3.5가 넘는 학생들의 name을 추출하기 위해서는 아래와 같은 명령을 써서 추출할 수 있다.

 

조인을 설명하기에 앞서 먼저 곱집합(Cartesian Product)이란? 

- 곱집합은 임의의 두 관계 R1, R2에 대해서 R1×R2을 해서 나온 집합이다. 이를 하면, 만약 R1의 튜플이 10개이고 R2의 튜플이 20개인 경우에 곱집합에 의해 나오는 새로운 관계의 튜플 개수는 10×20=200개 이다.

일반적으로 이 값들을 모두 사용하지 않는다. . 저 중에서 만약 공통된 속성이 있으면 그 속성을 묶어서 추출해서 사용한다. 이때 속성으로 묶어서 추출하는 것이 조인이다.

 

즉, 조인은 곱집합에서 특정 조건을 만족하는 것만 뽑는 기능을 의미한다.

예를 들어, 학생에 관계된 어떤 스키마가 Student(StudentName, AdvisorProfessorID, Department, Score)라고 하고, 교수에 관계된 스키마가 Professor, ProfessorID, Department)라고 하자. 여기서 AdvisorProfessorID와 ProfessorID는 겹쳐지는 속성입니다. 따라서, 이 값이 같은 튜플끼리 합치도록 아래의 명령어를 써 보겠다.

이 둘은 같은 의미이다.

 

조인에는 두가지 조인이 있다.

1. 자연(Natural) 조인 - 위에서 나오듯이 공통된 속성에 대해서 조인하는 것

2. 세타(Theta) 조인 - 조건을 통해 조인하는 것( ex. A>B)

 

조인은 매우 많은 시간이 필요할 수 있다. 따라서 시간을 염두에 두고 수행하도록 한다.

 

다음의 조인의 예이다.

 

관계 대수를 이용해서 질의문(Query)를 할 수 있다. (ex. 지도교수의 학과가 컴공이고 학생 학점이 3.5 초과인 학생을 찾아주세요)

이런 질의에 대해서 연산자를 통해 데이터를 찾는 과정의 식이 관계식이다. 이러한 관계식을 이용함으로써 컴퓨터가 쉽게 계산할 수 있다.

 

관계식은 같은 뜻이여도 다르게 표현될 수 있다.

또는

이를 보고 동치(Equivalent) 라고 한다. 이러한 동치를 하는 이유는 더 효율적인 방법을 찾기 위함이고 

비용예측을 통해서 확인이가능하다. 이는 질의 전처리기로 최적화가 된다.

 

제약조건

관계 제약조건

관계 연산에도 제약조건을 줄 수 있다.

 

 

키 제약조건

테이블에서 하나이상의 속성이 Key가 존재하고 이를 이용해 각각의 튜플을 식별할 수 있어야한다..

 

위는 ID는 같은데 dept가 다른 것은 존재하지 않는다라는 뜻이다 -> 키 제약

즉 키가 같은데 속성이 다를 경우는 없음을 뜻한다. 

 

여기서 아래 식이 사용되는데 아래 연산자는 Student라는 이름의 테이블의 이름을 Stud1으로 변경하겠다는 의미이다.

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

관계데이터모델4 - More Relation Operation  (0) 2022.12.15
관계 데이터 모델3- UML to Relational Model  (0) 2022.10.13
UML 클래스 다이어그램3 - Weak Entity Sets, E-R Model  (0) 2022.10.10
UML 클래스 다이어그램2 - 설계 예시, 제약 사항  (0) 2022.10.10
UML 클래스 다이어그램1 - 정의, 핵심 요소  (0) 2022.10.09
  1. 관계모델(Relational Model)
  2. 관계 스키마
  3. 관계데이터를 사용하는 이유
  4. 관계 대수
  5. 제약조건
  6. 관계 제약조건
  7.  
  8. 키 제약조건
'Computer Science/데이터베이스' 카테고리의 다른 글
  • 관계데이터모델4 - More Relation Operation
  • 관계 데이터 모델3- UML to Relational Model
  • UML 클래스 다이어그램3 - Weak Entity Sets, E-R Model
  • UML 클래스 다이어그램2 - 설계 예시, 제약 사항
윤재에요
윤재에요
윤재에요
yunzae.log
윤재에요
전체
오늘
어제
  • 분류 전체보기 (438)
    • Computer Science (115)
      • 데이터베이스 (50)
      • 네트워크 (18)
      • 소프트웨어 공학 (1)
      • 알고리즘 (10)
      • 자료구조 (9)
      • 컴퓨터구조 (0)
      • 운영체제 (0)
      • 데이터 통신 (16)
      • 프로그래밍언어론 (11)
    • Project (20)
      • 후크(Flutter) (1)
      • BDSR로그북(App,BackEnd) (2)
      • 나만의 주점(STM32,Arduino,androi.. (9)
      • 공다(App,BackEnd) (2)
      • 카카오쇼핑 클론코딩 (4)
      • 암호화폐자동매매 (2)
    • Problem Solving (208)
      • 자바 문법 (20)
      • 파이썬 문법,함수 (6)
      • 그리디 (5)
      • 구현 (43)
      • DFS (3)
      • BFS (17)
      • 정렬 (15)
      • 이진 탐색 (16)
      • 다이나믹 프로그래밍 (6)
      • 최단 경로 (5)
      • 그래프 (1)
      • 자료구조 (5)
      • 투포인터 (15)
      • SQL (44)
      • 구간합 (7)
    • I leaned (78)
      • 스프링,스프링부트 (31)
      • Git (6)
      • JAVA (5)
      • Etc (30)
    • 취업 (15)
      • PT면접 (6)
      • 기술면접 (9)
      • 인성면접 (0)
    • log (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

인기 글

태그

  • E-R Model
  • 재시도
  • UML
  • 힙큐
  • 기수정렬
  • 이것이 코딩테스트다
  • 최단거리
  • 제약 사항
  • 플로이드 워셜
  • 카카오테크캠퍼스
  • 다이나믹프로그래밍
  • 교환정렬
  • 효율적인화폐구성
  • 파이썬
  • 계수정렬
  • DP
  • weak entity
  • 이것이코딩테스트다
  • 개미전사
  • 그리디
  • 이것이 코딩테스트다.
  • 다이어그램
  • 부품찾기
  • 다이나믹
  • 참조 무결성
  • 최단 거리
  • Relationship model
  • 데이터베이스
  • 먀
  • 다익스트라

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
윤재에요
관계 데이터 모델1- 관계 모델의 기본
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.