4. 데이터 모델링
01. 데이터 모델링?
현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정.
- 개념적 데이터 모델링 : 현실 세계의 중요 데이터를 추출해 개념 세계로 옮김
- 논리적 데이터 모델링 : 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현
02. 데이터 모델
데이터 모델링의 결과물을 표현하는 도구.
- 개념적 데이터 모델 : 현실 세계를 사람의 머리로 이해할 수 있도록 개념적 모델링의 결과물인 개념적 구조로 표현하는 도구
- 논리적 데이터 모델 : 개념적 구조를 논리적으로 모델링하여 논리적 구조로 표현하는 도구
03. 개체-관계 모델
개체와 개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현하는 개념적 데이터 모델
- 개체 : 현실 세계에서 조직을 운영하는데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
- 속성 : 개체나 관계가 가지고 있는 고유한 특성
- 관계 : 개체와 개체가 맺고 있는 의미 있는 연관성
04. E-R 다이어그램
- 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것.
- 관계는 1:1, 1:n, n:m 관계가 있으며, 속성은 단일 값 속성, 다중 값 속성, 단순 속성, 복합 속성, 유도 속성, 널 속성, 키 속성 등이 있다.
- 구성 요소
- 개체 : 사각형
- 관계 : 마름모
- 속성 : 타원
05. 논리적 데이터 모델
사용자 입장에서 선택한 데이터베이스 관리 시스템에 따라 E-R 다이어그램으로 표현된 개념적 구조를 다음과 같이 데이터베이스에 저장할 형태로 표현한 데이터베이스의 논리적 구조
- 관계 데이터 모델 : 데이터베이스의 논리적 구조가 2차원 테이블 형태다.
- 계층 데이터 모델 : 데이터베이스의 논리적 구조가 트리 형태다.
- 네트워크 데이터 모델 : 데이터베이스의 논리적 구조가 그래프 형태다.
5. 관계 데이터 모델
01. 관계 데이터 모델의 개념과 기본 용어
개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 중 하나. 하나의 개체에 대한 데이터를 릴레이션 하나에 담아 데이터베이스에 저장.
- 릴레이션 : 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것
- 속성, 투플 : 릴레이션의 열과 행
- 도메인 : 하나의 속성이 가질 수 있는 값들의 집합 (INT, CHAR(10))
- 널 : 아직 모르거나 해당되는 사항이 없음을 표현하는 특별한 값
- 차수 : 하나의 릴레이션에서 속성의 전체 개수
- 카디널리티 : 하나의 릴레이션에서 투플의 전체 개수
02. 릴레이션과 데이터베이스 구성
- 릴레이션 스키마 : 릴레이션의 이름과 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
- 릴레이션 인스턴스 : 어느 한 시점에 릴레이션에 존재하는 투플들의 집합
- 데이터베이스 스키마 : 데이터베이스를 구성하는 릴레이션 스키마의 모음
- 데이터베이스 인스턴스 : 데이터베이스를 구성하는 릴레이션 인스턴스의 모음
03. 릴레이션의 특성
- 투플의 유일성 : 하나의 릴레이션에는 동일한 투플이 존재할 수 없다
- 투플의 무순서 : 하나의 릴레이션에서 투플 사이의 순서는 무의미하다
- 속성의 무순서 : 하나의 릴레이션에서 속성 사이의 순서는 무의미하다
- 속성의 원자성 : 속성 값으로 원자 값만 사용할 수 있다
04. 키
특성 | - 유일성 : 한 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 함 - 최소성 : 꼭 필요한 최소한의 속성들로만 키를 구성 |
종류 | - 슈퍼키 : 유일성을 만족하는 속성 또는 속성들의 집합 - 후보키 : 유일성과 최소성을 만족하는 속성 또는 속성들의 집합 - 기본키 : 후보키 중에서 기본적으로 사용하기 위해 선택한 키 - 대체키 : 기본키로 선택되지 못한 후보키 - 외래키 : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합 |
05. 관계 데이터 모델의 제약조건
- 개체 무결성 제약조건 : 기본키를 구성하는 모든 속성은 널 값을 가질 수 없다.
- 참조 무결성 제약조건 : 외래키는 참조할 수 없는 값을 가질 수 없다.
6. 관계 데이터 연산
01. 데이터 모델 = 데이터 구조 + 제약조건 + 연산
02. 관계 데이터 연산
원하는 데이터를 얻기 위해 릴레이션에 필요한 처리를 요구하는 것. 관계 대수와 관계 해석이 있으며, 이 둘은 기능과 표현력 모두 동등하다.
- 관계 대수 : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어
- 관계 해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지 기술하는 비절차 언어
03. 관계 대수
릴레이션을 처리하는 연산자들의 모임
- 피연산자인 릴레이션에 연산자를 적용한 결과도 릴레이션이라는 폐쇄 특성이 있다.
- 일반 집합 연산자와 순수 관계 연산자로 분류한다.
04. 일반 집합 연산자
릴레이션이 투플의 집합이라는 개념을 이용하는 연산자.
- 합집합
- 교집합
- 차집합
- 카티션 프로덕트 : 두 릴레이션의 모든 투플을 각각 연결해 생성된 투플을 구함
05. 순수 관계 연산자
릴레이션의 구조와 특성을 이용하는 연산자.
- 셀렉트 : 릴레이션에서 조건을 만족하는 투플을 구함
- 프로젝트 : 릴레이션에서 주어진 속성들의 값으로만 구성된 투플을 구함
- 조인 : 공통 속성을 이용해 두 릴레이션의 투플들을 연결해 생성된 투플을 구함
- 디비전 : 나누어지는 릴레이션에서 나누는 릴레이션의 모든 투플과 관련이 있는 투플을 구함
반응형
'Programming > 13. Book' 카테고리의 다른 글
모던 리액트 Deep Dive - 5장 (0) | 2024.03.02 |
---|---|
모던 리액트 Deep Dive - 4장 (0) | 2024.03.02 |
모던 리액트 Deep Dive - 3장 (0) | 2024.03.02 |
모던 리액트 Deep Dive - 2장 (0) | 2024.03.02 |
01. 데이터베이스 개론 요약 (1~3장) (0) | 2022.12.03 |
댓글