Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- load linked
- cache optimization
- moesi
- cache coherence
- transactional memory
- Cache
- pipelined cache
- way prediction
- nonblocking cache
- Subquery
- speculative execution
- register renaming
- sequential consistency
- cache coherence miss
- multibanekd cache
- dependence
- pipline hazards
- store conditional
- sql
- directory based coherence protocol
- 관계형 모델
- atomic exchange
- mesi
- pipelined
- dynamic scheduling
- structural hazard
- theta join
- relational model
- ISA
- branch prediction
Archives
- Today
- Total
공대생의 공부흔적
[DB#1] 데이터 모델 (Data Model) 본문
참고: Database Systems: The Complete Book (2nd edition)
데이터 모델
데이터나 정보를 표현하기 위한 방법으로, 일반적으로 다음 세 부분으로 구성되어 있다.
- 데이터 구조: 데이터를 구현하기 위한 관념적 모델로서, array나 list와 같은 물리적 모델보다 높은 레벨을 의미
- 데이터 연산: 정보 회수를 위한 쿼리(query) 연산과 데이터베이스를 바꾸는 수정(modification) 연산만을 허용한다. 이러한 한계는 프로그래머가 데이터베이스 연산을 high level에서 표현할 수 있도록 해준다는 장점이 있다.
- 데이터 제약사항: 데이터가 가질 수 있는 형태에 대한 제약사항을 포함하는 경우가 많다. 범위 제한과 같은 단순한 조건에서부터 복잡한 조건까지 가질 수 있다.
이러한 특징을 바탕으로, 여러 가지 데이터 모델의 종류와 그 특징에 대해 알아보자.
Relational model
- 구조: 표(relations)에 기반. C의 array of structs와 비슷해 보이지만, 다음과 같은 한 가지 방법으로만 구현 가능하다는 점에서 차이가 있다. 데이터베이스 시스템에서 표는 메인 메모리 구조로 저장되지 않고 디스
- 연산: 관계형 대수(Relational algebra) 연산을 사용한다. e.g. genre가 "drama"인 모든 row
- 제약사항 e.g. 제목이 동일한 두 영화가 있을 수 없다, 장르는 고정된 값 중 하나여야 한다 등
title | year | length | genre |
Gone with the Wind | 1939 | 231 | drama |
Star Wars | 1977 | 124 | sciFi |
Wayne's World | 1992 | 95 | comedy |
<Figure 1> 관계형 모델 예시
Semi-structured model
- 구조: 표나 array보다는 트리나 그래프와 비슷하다. 위계적으로 nest된 tagged element로 데이터를 나타낸다.
- 연산: element에서 subelement까지의 경로를 따른다.
- 제약사항: tag가 있는 값들과 관련된 제약사항들이 있다. e.g. <Length> 태그 값은 정수여야 한다
<Movies>
<Movie title="Gone With the Wind">
<Year>1939</Year>
<Length>231</Length>
<Genre>drama</Genre>
</Movie>
<Movie title="Star Wars">
<Year>1977</Year>
...
</Movies>
<Figure 2> Semi-structured 모델 예시
Key-value model
- 구조: (key, value) 쌍으로 이루어짐. key는 문자열이나 정수 / value는 어떤 데이터든 가능
- 연산: get(key), put(key, value). value에 대한 연산은 불가능
- 제약사항 e.g. key 값은 고유하다, value는 NULL이 아니다 등
key | value |
1000 | (Gone With the Wind, 1939) |
1001 | (Star Wars, 1977) |
1002 | (Wayne's World, 1992) |
<Figure 3> key-value 모델 예시
데이터 모델 간 비교
Relational model: 단순하고 제한되어 있지만, 유용한 연산이 존재하며 대규모 데이터에 효율적인 접근이 가능. 몇 줄의 SQL 코드만으로도 1,000 줄의 C 코드와 동일한 효과. 자주 사용되는 데이터베이스 관리 시스템.
Semi-structured model: 더 유연하지만 느린 쿼리
key-value model: 훨씬 더 유연하지만, 쿼리가 불가능 (key 값으로 value를 탐색만 할 수 있음)
'Database & Big Data' 카테고리의 다른 글
[DB#2] 관계형 모델(Relational Model) (0) | 2024.03.07 |
---|