개체-관계 모델(entity-relationship model)
개체 집합(entity set)
- 개체 : 실제 세상에 있는 객체(object)
- 객체는 다른 객체와 구별
(보기) 사람, 자동차 각 과목 등
-개체-관계 모델에서 실제로 만질 수 있는 없든 구별하지 않고 모두 개체로 본다.
개체 집합(entity set)
- 같은 형의 개체의 집합
- 보기 : 학생 개체 집합, 은행 고객 개체 집합, 교수 개체 집합 등
속성 (attribute 또는 property)
개체는 속성(attrivute 또는 property)의 집합으로 나타냄
(보기) 학생 개체는 학번, 주민 등록 번호, 전화번호, 소속 학과 등의 속성으로 나타낼 수 있음.
도메인(=범위) (domain)
- 한 속성(attribute)이 가질 수 있는 값의 집합.
- 도메인(=범위)을 나타내는 방법에 따라 도메인이 다를 수있음
create table 학생 (학번 char(7), 이름 char(20), 나이 Integer);
속성 : 릴레이션에서 한 열(column)의 이름을 말한다.
속성의 종류
- 단일 속성
- 다중 속성
- 복합 속성
- 유도 속성
단일 속성
- 속성의 값을 더 이상 나눌 수 없음(indivisible)
- 속성 값이 원자 값인 것으로, 하나의 값만 존재하는 것
- 우리가 보통 쓰는 속성의 거의 모든 단순 속성이다.
create table 학생 (학번 char(7), 이름 char(20), 집전화 char(15));
- 학번, 이름, 집전화 속성은 모두 단순 속성이다.
다중 속성
- 속성 값이 여러개 존재할 수 있는 것.
(보기) 전화번호(집전화, 회사전화, 핸드폰 등등)
복합 속성
- 속성 값이 여러 의미를 포함하는 것.
- 복합 속성은 값을 여러 개의 단순 속성으로 나눌 수 있음
(보기) 생년월일(701115): 생년월일이라는 복합 속성은 각각 년, 월, 일의 단순 속성으로 나누어 질 수 있음.
유도 속성
- 기존 속성 값을 이용하여 새롭게 유도해 낸 속성
(보기) 나이(시스템 날짜 - 생년월일)
널(null)값
- 값의 부재, 값이 없다, 비었다 등
- "해당되지 않음"
- 결혼하지 않은 사람의 경우 배우자 이름 속성의 값.
- "빠진 값"
- 어떤 사람의 전화번호가 있다는 것은 알지만, 전화 번호를 모르고 있을때
- "잘 모름"
- 어떤 사람에게 전화번호가 있는지 없는지 아예 모를 경우
관계 집합(relationship set)
관계 집합(relationship set)
- 관계 : 개체와 개체 사이 또는 여러 개의 개체 사이의 연관
- 관계 집합 : 같은 형의 관계를 모은 것 (집합)
(보기) : 학생 개체와 과목 개체가 있을 때,
- 수강 관계 : 어느 학생이 어느 과목을 듣는지의 관계(연관)
사상(=매핑) 제약 조건 (mapping constraints)
사상 (=매핑) 크기(mapping cardinality)
- 두 개체 사이에서 한쪽 개체에서 다른 쪽 개체로 연관될 수 있는 개체의 수 (관계는 1:1, 1:n, n:1, m:n 네 가지)
(보기) 전화번호와 그 전화번호 소유자 사이의 관계
- 소유자 : 전화번호 = 1 : n
- 한 사람이 여러 대의 전화번호를 가질 수 있다.
- 소유자 : 전화번호 = n : 1
- 여러 사람이 한 대의 전화번호를 가질 수 있다.
- 소유자 : 전화번호 = 1 : 1
- 소유자 : 전화번호 = m : n
- 여러 사람이 여러 개의 전화번호를 가질 수 있다.