데이터 모델이란?
- 물리적 혹은 추상적으로 존재하는 현실세계를 단순화 하고 정형화 된 형태로 표현 하는 하나의 방식 또는 규범
- 실제 데이터가 갖는 특성을 살리면서, 목적에 맞게 관심 있는 정보만 단순화 하여 표현하는 방식
릴레이션(Relation)
관계형 데이터 모델(relation data model)
- 테이블 형식을 이용하여 데이터를 정의하고 설명
- 실세계의 데이터를 누구나 직관적으로 이해할 수 있는 간단한 방식
- 테이블을 릴레이션(relation)이라 부름
- 수학적으로 두개 이상의 집합으로부터 각 집합을 구성하는 원소들의 순서쌍에 대한 집합 의미
도메인(domain)
- 각 필드에 입력 가능한 값들의 범위
- 각 필드가 가질 수 있는 모든 값들의 집합
- 원자값(더이상 분리 X)이여야함
널(null)
- 특정 필드에 대한 값을 알지 못하거나 아직 정해지지 않아 입력하지 못한 경우의 필드의 값
- 0이나 공백 문자와 다름
테이블 스키마와 테이블 인스턴스
테이블 스키마
- 테이블 정의에 따라 만들어진 데이터 구조
- ex) 신입생(학번, 주민등록번호, 이름, 주소)
차수(degree)
- 테이블 스키마에 정의된 필드 수
- 차수 1 : 단항 테이블
- 차수 2 : 이항 테이블
- 차수 n : n항 테이블
테이블 인스턴스
- 테이블 스키마에 현실 세계의 데이터를 레코드로 저장한 형태
- 스키마는 한번 정의하면 거의 변함이 없지만, 인스턴스는 수시로 바뀔 수 있음
기수(cardinality)
테이블 특성
- 중복된 레코드가 존재하지 않음
- 레코드 간의 순서는 의미 X
- 레코드 내에서 필드의 순서는 의미 X
- 모든 필드는 원자값을 가짐
키(key)
💡 키는 왜 필요한가?
레코드간의 순서가 의미가 없으므로 레코드를 구분하기 위해 각 레코드의 값을 이용함
- 필드들의 일부로 각 레코드들을 유일하게 식별해낼 수 있는 식별자
- 일반적으로 하나의 필드를 지정, 여럿도 가능 (복합키)
- 관계형 데이터 모델에서 특정 레코드를 구별하거나 탐색하기 위한 유일한 방법
수퍼키(super key)
- 아무런 제약 조건 없이 레코드들을 식별할 수 있는 필드의 집합
- (주민등록번호) (주민등록번호, 학번) (주민등록번호, 이름) 등등,,,
- 전체 테이블의 속성(필드)를 모두 합한 것도 하나의 수퍼키
후보키(candidate key)
- 최소한의 필드만 구성된 키
- (학번) (주민등록번호)
기본키(primary key)
- 후보키 중에서 식별자 하나로 정의한 하나의 키
- 되도록 하나의 필드로 구성된 후보키를 선정하는 것이 유리
- (학번)
- NULL 허용 X, 동일한 값 X
외래키(foreign key)
- 서로 관련이 있는 테이블 사이에서 데이터 일관성을 보장하는 수단
- 한 테이블(R1)의 필드가 다른 테이블(R2)의 기본키(PK) 또는 유니크 키를 참조할 때 외래키(FK)라고 함.
- 외래키로 지정이 되면 기본키 또는 유니크 키를 참조하게 됨
- 참조되는 테이블에서 사용중인 기본키를 삭제 혹은 변경 할 수 없음
- 기본키에 없는 값은 외래키로 입력할 수 없음
조건
- 외래키(FK)의 필드들은 참조되는 테이블의 기본키(PK)와 같은 데이터형(도메인)이어야 함.
- 외래키(FK)의 값은:
- 참조되는 테이블(R2)의 기본키(PK) 값 중 하나와 일치하거나,
- NULL일 수 있음 (값이 아직 없거나, 모를 때).
외래키의 역할
- 데이터 무결성을 보장:
- 외래키 필드에 기본키에 없는 값은 입력할 수 없음.
- 외래키로 참조된 기본키는 삭제하거나 변경할 수 없음.
- 데이터베이스의 테이블 간 관계를 정의.
관계형 데이터베이스
💡관계형 데이터베이스란?
관계형 데이터 모델에 기반하여 하나 이상의 테이블로 실세계를 표현한 데이터베이스
- 실세계를 관계형 데이터 모델이라는 추상적인 도구를 이용하여 표현한 것
- 테이블들을 컴퓨터의 기억 장치에 어떠한 방법으로 저장할 것인가에 대한 물리적 구조까지 정의한 것은 XX
관계형 데이터베이스가 하나 이상의 테이블로 구성되어 있을 때