- 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
- 특정 시간에 데이터베이스에 들어있는 데이터의 모습 (데이터베이스에서 데이터의 값은 계속 바뀐다.)
Keys
- Primary keys : 각 행마다 유일한 고유값을 primary key라 한다. 이는 unique identifier(식별자)라고 한다.
- 2-3) 관계형 데이터베이스의 Algebra
절차적 언어는 1개 혹은 두개의 연산자를 통해 새로운 relation의 연산자를 생성한다.
6가지 basic 연산자는 다음과같다.
1) select
select operation은 주어진 문법을 만족하는 튜플을 선택하여 보여준다.
시그마 : predicate (술어, 문법)
p : prepositional logic (선택 문법)
r : table의 이름
- 선택문법으로 =, >, < 와 같은 비교 연산자를 사용할 수 있다.
- (and, or, not)문법들을 결합하여 더 큰 문법으로 만들 수 있다.
2) Project
특정 속성이 인자로 들어오고 이 인자(속성)들에 해당하는 열을 return 하는 연산자이다.
table에서 인자로 들어오지 않은 열은 지우고 이때 중복된 행은 결과에서 지워진다.
관계형 algebra(대수) 연산의 결과는 relation이므로 아래와 같이 중첩시켜서 구성할 수 있다.
3) Cartesian-Product
두 relation의 정보를 결합한다.
4) Join Operation
Catesian Product인 X는 두 relation에 해당하는 모든 tuple의 조합을 결합한 결과이다.
이때 특정 조건을 만족하는 tuple만 보고싶을 수 있다.
두 realation을 조합한 것 중 두 relation이 같은 tuple만 보려할 때 'theta join' 을 사용한다.
Cartesian Product를 수행한 후 selection을 수행한다.
5) Union Operation
rUs 로 나타내고 r과 s는 같은 개수의 속성을 갖고 있어야 한다. 또한 속성이 같은 type의 value이여야 한다.
6) Set-Intersection Operation
Union에서와 마찬가지로 r과 s는 같은 개수의 domain과 각 속성은 같은 type이여야 한다.
7) Set Difference Operation
마찬가지로 r과 s는 같은 개수의 domain을 가지면서 속성의 type이 같아야한다.
'데이터베이스설계' 카테고리의 다른 글
[데이타베이스설계] Intermediate SQL (0) | 2019.12.11 |
---|---|
[데이타베이스설계] SQL (3) (0) | 2019.12.11 |
[데이타베이스설계] SQL (2) (0) | 2019.12.09 |
[데이타베이스설계] SQL (1) (0) | 2019.12.09 |
[데이타베이스설계] 데이타베이스 (0) | 2019.11.28 |