2. Relational_Model

관계 데이터 모델 용어 정리

속성

이름과 타입으로 구성되며 집합 안에서 유일해야 한다. Column이다.

튜플

속성, 값 쌍의 집합으로 하나의 집합에서 속성 이름은 유일하기 때문에 속성 이름은 겹치지 않는다. Row, Record이다.

관계

속성의 집합, 튜플의 집합 쌍으로 속성의 집합을 heading, 튜플의 집합을 body라고 구분한다.

(
	// Heading
	{ 이름/문자열, 나이/정수, 성별/문자 },

	// Body
	{
		{ (이름/문자열, 견우), (나이/정수, 13), (성별/문자, 남) },
		{ (이름/문자열,직녀), (나이/정수, 12), (성별/문자, 여) }
	}
)

다음과 같다.

관계대수

하나 이상의 Relation으로 새로운 Relation을 만드는 것

Projection

원하는 Attribute를 포함하는 Pair로 Tuple을 구성하는 것으로 select 절 뒤의 속성을 나열하므로써 표현 가능하다.

SELECT name, age, gender
FROM people

Selection

주어진 조건을 만족하는 Tuple만 선택, where절로 표현 가능

SELECT name, age, gender
FROM people
WHERE age < 13;

Cartesian Product

곱집합으로 원래는 각 요소의 쌍을 요소로 취하는데 관계대수에서는 Tuple을 합친다 SQL에서는 FROM 뒤의 테이블 이름 나열로 표현 가능하다.

SELECT *
FROM r1, r2;

대부분이 Join을 이용한다.

SELECT people.name, age, gender, items.name AS item_name, usage
FROM people, items
WHERE people.name = items.person_name;

Entity Relationship Model

가장 인기 있는 개념적 데이터 모델로 Entity는 개별적으로 다룰 수 있는 데이터를 의미하며 Entity Type은 같은 Attribute를 가진 Entity의 집합이다.

Entity Relationship Model에서의 Entity와 OOP에서의 Entity는 의미가 다르다. OOP에서는 연속성과 식별성이 있는 객체로, 여기서는 개별적으로 다룰 수 있는 데이터다.

ERD(Entity-Relationship Model)이란

ER 모델을 시각화하는 방법으로 논리적 설계에 들어가기 전에 그려보면 도움이 된다.

Entity

데이터베이스 정규화

Last updated