728x90
관계 데이터 모델의 개요
- 관계 데이터 모델이란?
- 관계 데이터 모델
- 개념적 구조를 논리적 구조로 표현한 모델
- 개체에 관한 데이터를 행과 열로 구성된 데이블(릴레이션)에 저장
- 관계 데이터 모델
- 관계 데이터 모델의 기본 용어
- 릴레이션 (Relation)
- 개체에 대한 데이터를 2차원 테이블의 구조로 저장한 것
- 파일 관리 시스템의 파일(File)에 대응
- 속성 (Attribute)
- 릴레이션의 열
- 파일 관리 시스템 파일의 필드(Field)에 대응
- 예
- 투플 (Tuple)
- 릴레이션의 행
- 개체 인스턴스
- 파일 관리 시스템의 레코드(Record)에 대응
- 예 : 회사 사원 개체 집합에 5개의 사원 정보가 있을 경우, 5개의 투플 또는 5개의 개체 인스턴스가 있다고 한다.
- 도메인 (Domain)
- 하나의 속성이 가질 수 있는 모든 값의 집합
- 예: 회사의 직급 - 대표이사, 전무, 상무, 부장, 차장, 과장, 대리, 사원
- 속성의 특성을 고려한 데이터 타입으로 정의
- 속성 값을 입력 및 수정할 때 적합성의 판단 기준이 됨
- 도메인을 속성의 특성을 고려한 데이터 타입으로 정의
- 예 : 이름 속성의 도메인 : CHAR(20), 나이 속성의 도메인 : INT
- 하나의 속성이 가질 수 있는 모든 값의 집합
- 널 (Null)
- 속성 값을 모르거나 적합한 값이 없는 경우 사용되는 값
- 해당되는 값이 없음을 의미
- 숫자 0 이나, 공백 문자와 다름
- 널 값은 DBMS마다 표시하는 기호가 다르다.
- 예
- 쇼핑몰의 회원 가입시 직장정보 입력 칸에 입력을 하지 않은 경우
- 차수 (Degree)
- 한 릴레이션에서 속성의 수, 즉 열의 수
- 모든 릴레이션은 최소 1 이상의 차수를 가지고 있다
- 릴레이션의 차수는 변화가 별로 없다
- 예 : 5개의 속성을 가진 릴레이션의 차수는 5이다.
- 카디널리티 (Cardinality)
- 한 릴레이션에서 투플의 개수, 즉 행의 수
- 카디널리티가 0 (투플이 없는 릴레이션)인 릴레이션도 있다
- 릴레이션의 카디널리티는 자주 변한다
- 릴레이션 (Relation)
릴레이션의 구성 및 특징
- 릴레이션 구성
- 릴레이션 스키마 (Relation Schema) / 릴레이션 내포 (Relation Intension)
- 릴레이션의 이름과 릴레이션에 포함된 속성의 이름으로 정의한 릴레이션의 논리적 구조
- 릴레이션의 논리적 구조
- 릴레이션의 전체구조를 파악할 수 있다
- 자주 바뀌지 않는다.
- 일반적인 표현
- 예
- 사원(사번, 직책, 이름, 생년월일)
- 릴레이션 인스턴스 (Relation Instance) / 릴레이션 외연 (Relation Extension)
- 한 시점에 릴레이션에 존재하는 투플의 집합
- 릴레이션 인스턴스에 포함된 투플은 릴레이션 스키마에서 정의하는 각 속성의 실제 값으로 구성
- DBMS의 데이터 조작어를 이용하여 투플의 삽입, 삭제, 수정, 검색을 수행
- 릴레이션 인스턴스는 자주 바뀐다.
- 간단히 릴레이션이라고 부르기도 한다.
- 데이터베이스 스키마와 릴레이션 스키마
- 데이터베이스는 여러 개의 릴레이션으로 구성
- 데이터베이스 스키마
- 데이터베이스의 전체 구조
- 릴레시션 스키마를 모아 놓은 것
- 데이터베이스 스키마를 설계한다 = 모든 릴레이션 스키마를 정의한다.
- 데이터베이스 인스턴스와 릴레이션 인스턴스
- 데이터베이스 인스턴스
- 어느 시점에 데이터베이스에 저장된 데이터 내용 전체
- 데이터베이스를 구성하는 모든 릴레이션 인스턴스를 모아 놓은 것
- 데이터베이스 인스턴스
- 릴레이션 스키마 (Relation Schema) / 릴레이션 내포 (Relation Intension)
- 릴레이션의 특징
- 속성의 이름은 중복될 수 없다
- 한 릴레이션의 속성은 다른 이름을 가져야 한다
- 속성은 단일 값을 가진다.
- 여러 개의 값을 가져야만 하는 경우, 투플을 여러 개 만들어, 속성 값이 단일 값이 되도록 나눈다.
- 한 속성의 값은 해당 도메인의 값만 가질 수 있다
- 속성은 순서를 갖지 않는다
- 속성의 순서가 달라도 스키마는 동일하다.
- 속성의 순서와 상관없이 같은 속성들로 구성되어 있어야 같은 릴레이션이다.
- 예 : 속성 순서가 다른 두 릴레이션
- 사원(사번, 직책, 이름, 생년월일)
- 사원(사번, 이름, 생년월일, 직책)
- 릴레이션 내의 중복된 투플은 허용되지 않는다
- 동일한 투플은 같은 릴레이션에 존재할 수 없다.
- 모든 투플에는 자신을 식별할 수 있는 속성을 가지고 있으므로, 동일한 투플이 존재하지 않는다.
- 하나의 릴레이션에서 투플의 순서는 무의미하다.
- 투플의 순서가 빠뀐다고 다른 릴레이션이 될 수 없다.
- 릴레이션에 투플이 삽입된 순서대로 저장된다.
- 속성의 이름은 중복될 수 없다
728x90
'프로그래밍 > Database' 카테고리의 다른 글
[Database] 관계 데이터 모델, 제약 조건 (0) | 2020.04.06 |
---|---|
[Database] 키 (Key) (0) | 2020.04.06 |
[Database] 약한 개체와 IE표기법 (0) | 2020.04.06 |
[MySQL/MariaDB] CASE WHEN 사용법 (0) | 2020.04.05 |
[MySQL/MariaDB] 반올림, 자릿수 버리기(ROUND,TRUNCATE) (0) | 2020.04.05 |