본문 바로가기

데이터베이스설계

[데이타베이스설계] 관계형 모델

  • 2-1) 관계형 모델
  • 2-2) 관계형 데이터베이스에서의 Operation
  • 2-3) 관계형 데이터베이스의 Algebra

 

  • 2-1) 관계형 모델

관계형 모델은 구조와 language를 사용하여 데이터를 관리하기 위한 접근이다.

        - 모든 데이터는 관계들로 그룹화된 tuples로 표현된다.

        - 관계형 모델로 조직화된 데이터베이스를 관계형 데이터베이스라고 한다.

관계형 모델의 목적은 데이터와 query를 명시하기 위한 선언 함수를 제공하는 것이다.

        - 사용자는 데이터베이스에 포함된 정보와 사용자가 원하는 정보를 직접 명시하고 데이터베이스 관리 시스템 소프트웨어가 데이터저장을 위한 데이터 구조를 설명하고 query에 응답하기 위한 검색 절차를 수행하도록 한다.

 

Tables

        - 관계형 모델에서 관계들은 table형식으로 저장된다.

        - table은 행과 열로 구성되어 있고 row(행)은 레코드를 뜻하고 column(열)은 속성들을 뜻한다.

Tuple

        - table에서 단일 row(행) 은 tuple이라 부른다.(=단일record)

Column

        - column(열)은 특정 type에서의 data 값의 집합이다. 각 row마다 하나의 값이있는 value의 열집합.

        - column은 attribute라 불리기도 한다.

Primary key

        - 각 record에서 unique한 key이다.

Domain

        - 하나의 attribute가 취할 수 있는 값들의 집합이다. 예를들어 성별이라는 속성에서 domain은 남, 여 이다.

 

 

 


 

  • 2-2) 관계형 데이터베이스에서의 Operation

 

Insert Operation

        - insert operation은 각 attribute에 값을 넣어서 새로운 튜플을 넣어준다.

Update Operation

        - Domain 값에서 값을 update한다.

Delete Operation

        - 하나의 tuble(레코드)를 삭제한다. attribute에 조건문으로 삭제한다. (ex. CustomerName="Apple" 삭제)

Select Operation

        - attribute에 조건문으로 만족하는 레코드를 찾아서 보여준다.

 

Database Schema

        - 데이터베이스의 논리 구조이다.

Database instance

        - 특정 시간에 데이터베이스에 들어있는 데이터의 모습 (데이터베이스에서 데이터의 값은 계속 바뀐다.)

데이터베이스 instance

 

Keys

        - Primary keys : 각 행마다 유일한 고유값을 primary key라 한다. 이는 unique identifier(식별자)라고 한다.

 

 

 

 


 

  • 2-3) 관계형 데이터베이스의 Algebra

 

절차적 언어는 1개 혹은 두개의 연산자를 통해 새로운 relation의 연산자를 생성한다.

6가지 basic 연산자는 다음과같다.

 

1) select

select operation은 주어진 문법을 만족하는 튜플을 선택하여 보여준다.

select

시그마 : predicate (술어, 문법)

p : prepositional logic (선택 문법)

r : table의 이름

 

        - 선택문법으로 =, >, < 와 같은 비교 연산자를 사용할 수 있다.

        - (and, or, not)문법들을 결합하여 더 큰 문법으로 만들 수 있다.

 

2) Project

특정 속성이 인자로 들어오고 이 인자(속성)들에 해당하는 열을 return 하는 연산자이다.

table에서 인자로 들어오지 않은 열은 지우고 이때 중복된 행은 결과에서 지워진다.

project

관계형 algebra(대수) 연산의 결과는 relation이므로 아래와 같이 중첩시켜서 구성할 수 있다.

 

3) Cartesian-Product

두 relation의 정보를 결합한다.

Catesian Product

 

 

4) Join Operation

Catesian Product인 X는 두 relation에 해당하는 모든 tuple의 조합을 결합한 결과이다.

이때 특정 조건을 만족하는 tuple만 보고싶을 수 있다.

두 realation을 조합한 것 중 두 relation이 같은 tuple만 보려할 때 'theta join' 을 사용한다.

Cartesian Product를 수행한 후 selection을 수행한다.

Join

 

5) Union Operation

rUs 로 나타내고 r과 s는 같은 개수의 속성을 갖고 있어야 한다. 또한 속성이 같은 type의 value이여야 한다.

Union
Example

 

6) Set-Intersection Operation

Union에서와 마찬가지로 r과 s는 같은 개수의 domain과 각 속성은 같은 type이여야 한다.

Example

 

7) Set Difference Operation

마찬가지로 r과 s는 같은 개수의 domain을 가지면서 속성의 type이 같아야한다.

Set Difference