CMU의 Intro to Database System / Fall 2022를 바탕으로 정리 한 것입니다.
Lecture 1. Introduction
relation
Relation이란 속성들의 관계를 포함하고 있는 unordered set을 말한다.
tuple
tuple은 relation 안에 있는 attribute values 들의 set이다.
이 value들은 일반적으로 atomic/scalar하며, 만약 NULL값을 허용한 경우, NULL은 모든 domain의 member가 될 수 있는 special 한 값이다.
Primary key
primary key란 하나의 튜플을 유일하게 식별할 수 있는 key를 말한다.
일부 DBMS의 경우 자동으로 internal primary key를 생성하는데, MySQL의 AUTO_INCREMENT가 가장 대표적이다.
Foreign Keys
foreign key는 하나의 relation에서 다른 relation의 tuple로 mapping되는 속성을 지정한다.
Data Manipulation Languages
database에서 데이터를 저장하고 습득하기 위한 Method를 DML이라고 한다.
Procedural (Relational Algebra)
원하는 결과를 얻기 위한 strategy를 구체화하는 query를 의미한다.
Non-Procedural (Relational Calculus)
어떤 데이터를 원하는 지만 구체화하고, 이를 어떻게 구할지는 구체화하지 않는 query이다..
Relational Algebra
relation에서 tuple을 검색하고 조작하기 위한 가장 기초적인 operation이다. (Set에 기초한다)
각 opertor는 하나 혹은 그 이상의 relations를 input으로 가지며, 새로운 relation을 output으로 가진다.
-> operator를 chain하여 복잡한 operation을 수행하게 할 수 있다.
SELECT
relation으로부터 selection predicate에 만족하는 tuples의 부분집합을 가져올 수 있는 operator이다.
Projection
특정한 attribute만을 포함하는 tuple을 가지는 relation을 생성한다.
=> attributes의 순서를 변경하거나 값을 바꿀 때 사용한다.
Union
양 쪽 relation에서 한 번이라도 등장한 tuple을 모두 포함하는 relation을 생성한다.
Intersection
양 쪽 relation에 공통으로 존재하는 tuple만을 가지고 있는 reliaton을 생성한다.
Difference
첫 번째 relation에만 존재하고 두 번째 relation에 존재하지 않는 tuple만을 가지고 있는 relation을 생성한다.
Product
모든 가능한 tuple의 combination을 가지고 있는 relation을 생성한다.
Join
하나 혹은 그 이상의 공통의 값을 가진 tuple 들의 combination을 가진 relation을 생성한다.
이외에도 다음과 같은 Relational Algebra들이 존재한다.
Document Data model
obejct data model, json database, xml database.. 등의 이름으로 다양하게 불린다.
관계형 데이터 베이스를 사용할 때 작가의 앨범을 조회하려면 다음과 같은 연산과정을 거쳐야 한다.
하지만 이러한 연산과정 없이 데이터를 조회할 수 있는 것이 document data model의 특징이다.
계층형으로 데이터를 저장하며, 위 그림과 같이 하나의 json object로 변환하여 사용할 수 있다.
스키마가 유연하고 복잡한 데이터구조를 지원하면서도, select와 같은 연산 비용이 없다는 점이 장점이다.
다만 데이터 모델이 복잡해지고 높은 저장 및 대역폭을 요구한다는 점에서 단점이 존재한다.
'DB' 카테고리의 다른 글
[Database System] Database Storage2 (0) | 2023.10.07 |
---|---|
[Database System] Database Storage (0) | 2023.10.05 |
[Database System] Normalization (0) | 2023.10.05 |
[Database System] SQL과 NOSQL (0) | 2023.10.02 |
[Database System] Modern SQL (0) | 2023.09.17 |