1. 데이터 모델
1) 데이터 모델이란?
- 물리적 혹은 추상적으로 존재하는 현실 세계를 단순화되고 정형화된 형태로 표현하는 하나의 방식.
- 데이터 관리를 위한 하나의 틀 즉 데이터 모델을 이용하면 추상화가 가능하다.
- 대부분의 DBMS가 관계형 모델을 사용한다.
2) 관계형 데이터 모델이란?
- 데이터를 표(table)를 이용하여 데이터를 설명하는 모델
- 수학에서는 관계를 표로 나타낸다. 즉 표(table)은 릴레이션(relation)이다.
- 물론 테이블이 컴퓨터의 기억장치에 어떻게 저장되는가와 같은 물리적인 구조까지 정의한 것은 아니다.
2. 관계형 데이터 모델
1) 속성(attribute) - 필드, 칼럼
- 어떤 개체를 표현하는 값의 종류를 의미한다.
- 릴레이션을 구성하는 각 열(column)의 이름
- ex) 이름, 전화번호, 나이
2) 튜플(tuple) - 레코드, 행
- 각각의 개체를 의미한다.
- 릴레이션의 각 행(row)
- ex) <현서, 010-8888-0000, 10>
- 하나의 레코드가 의미하는 것이 무엇인지 아는 것이 테이블 이해에 큰 도움이 된다.
3) 도메인(domain)
- 각 필드에 입력 가능한 값들의 범위
즉 필드가 가질 수 있는 모든 값들의 집합이다.
- 하나의 속성에 들어가는 값은 atomic value여야 한다.
ex) 이름 : 이름으로 구성된 문자열 집합
번호 : ddd-dddd-dddd 형식으로 구성된 문자열 집합 (d=0~9 숫자)
나이 : 정수 집합
- 도메인은 atomic해야하므로 주로 자료형(정수, 실수, 문자열)을 이용한다.
4) 데이터 타입
- 관계형 데이터 모델의 값은 atomic(=simple + single valued)하다.
즉 단순한 형태(정수, 실수, 문자열, 날짜형) + 하나의 값이여야 한다.
- atomic하지 않은 data type(=complex type(구조체 타입, 콜렉션 타입))은
관계형 데이터 모델의 속성으로 사용할 수 없다.
5) 널(null)
- 특정 필드에 대한 값을 알지 못하거나
아직 정해지지 않아 입력하지 못한 경우의 필드의 값
- 널은 값이 아예 없기 때문에 0이나 공백 문자와는 다르다.
6) 테이블 스키마(table schema)
- 테이블의 구조
- R(A1, A2, A3, ..., An)
R: 테이블 이름
A1...An : 필드들의 이름
이렇듯 전체 속성의 집합으로 표현할 수 있다.
7) 차수(degree)
- 테이블 스키마에 정의된 필드의 개수.
8) 테이블 인스턴스(table instance)
- 테이블 스키마에 레코드가 저장되어 실체가 생긴 객체.
- 객체 지향 언어의 인스턴스와 비슷하다.
9) 기수(cardinality)
- 테이블 인스턴스의 레코드의 수
3. 관계형 데이터베이스 구조
1) 데이터베이스 스키마(database schema) : 테이블 스키마의 집합
2) 데이터베이스 인스턴스(database instance) : 테이블 스키마들에 대한 테이블 인스턴스의 집합
'CS > 데이터베이스 DB' 카테고리의 다른 글
[데이터베이스] SQL - select, where 명령어 (0) | 2022.04.22 |
---|---|
[데이터베이스] 관계대수 (relational algebra) (0) | 2022.04.12 |
[데이터베이스] 키(keys) (0) | 2022.04.06 |
[데이터베이스] 데이터베이스(database) (0) | 2022.04.06 |
[데이터베이스] 데이터(data) (0) | 2022.04.06 |