[10월 2주차] 데이터베이스 개론
:: 데이터 모델링
- 현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 변환 과정
- 데이터베이스 설계의 핵심과정
:: 2단계 데이터 모델링
- 개념적 데이터 모델링
- 현실 세계의 중요 데이터를 추출하여 개념 세계로 옮기는 작업
- 논리적 데이터 모델링
- 개념 세계의 데이터를 데이터베이스에 저장하는 구조로 표현하는 작업
:: 데이터 모델
- 데이터 모델링의 결과물을 표현하는 도구
- 개념적 데이터 모델
- 사람의 머리로 이해할 수 있도록 현실세계를 개념적 모델링하여 데이터베이스의 개념적 구조로 표현하는 도구
- Ex) 개체-관계 모델
- 논리적 데이터 모델
- 개념적 구조를 논리적 모델링하여 데이터베이스의 논리적 구조로 표현하는 도구
- ex) 관계 데이터 모델
:: 개체-관계 모델
- 개체-관계 모델
- 피터첸이 제안한 개념적 데이터 모델
- 개체와 개체간의 관계를 이용해 현실 세계를 개념적 구조로 표현
- 핵심요소 : 개체, 속성, 관계
- 개체-관계 다이어그램
- E-R 다이어그램
- 개체-관계 모델을 이용해 현실 세계를 개념적으로 모델링한 결과물을 그림으로 표현한 것
:: 개체
- 현실 세계에서 조직을 운영하는 데 꼭 필요한 사람이나 사물과 같이 구별되는 모든 것
- 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건등
- 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 가지고 있음
Ex) 서점에 필요한 개체 : 고객, 책
Ex) 학교에 필요한 개체 : 학과, 과목
:: 개체 타입
- 개체를 고유의 이름과 속성들로 정의한 것
- 파일 구조의 레코드 타입에 대응됨
:: 개체 인스턴스
- 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
- 개체 어커런스라고도 함
- 파일 구조의 레코드 인스턴스에 대응됨
:: 개체 집합
- 특정 개체 타입에 대한 개체 인스턴스들을 모아 놓은 것
:: 속성
- 개체나 관계가 가지고 있는 고유의 특성
- 의미 있는 데이터의 가장 작은 논리적 단위
- E-R 다이어그램에서 타우너으로 표현하고 타원 안에 이름을 표기
:: 단일 값 속성과 다중 값 속성
- 단일 값 속성
- 값을 여러 개 가질수 있는 속성
- Ex) 고객 개체의 이름, 적립금 속성
- 다중 값 속성
- 값을 여러 개 가질수 있는 속성
- Ex) 고객 개체의 연락처 속성
- Ex) 책 개체의 저자 속성
- E-R 다이어그램에서 이중 타원으로 표현
:: 단순 속성과 복합 속성
- 단순 속성
- 의미를 더는 분해 할 수 없는 속성
- Ex) 고객 개체의 적립금 속성
- Ex) 책 개체의 이름, ISBN, 가격 속성
- 복합 속성
- 의미를 분해 할 수있는 속성
- Ex) 고객 개체의 주소 속성
- - 도, 시, 동, 우편번호 등으로 의미를 세분화 할 수 있음
- Ex) 고객 개체의 생년월일 속성
- - 연, 월, 일로 의미를 세분화 할 수 있음
:: 유도 속성 <-> 저장 속성
- 기존의 다른 속성의 값에서 유도되어 결정되는 속성
- 값이 별도로 저장되지 않음 (필요할 때마다 저장)
- Ex) 책 개체의 가격과 할인율 속성으로 계산되는 판매가격 속성
- Ex) 고객 개체의 출생연도 속성으로 계산되는 나이 속성
- E-R 다이어그램에서 점선 타원으로 표현
:: 널 속성
- 널 값이 허용되는 속성
- 널 값
- 아직 결정되지 않거나 모르느 값 또는 존재하지 않는 값
- 공백이나 0과는 의미가 다름
- Ex) 등급 속성이 널값 -> 등급이 아직 결정되지 않았음을 의미
:: 키 속성
- 각 개체 인스턴스를 식별하는데 사용되는 속성
- 모든 개체 인스턴스의 키 속성 값이 다름
- 둘이상의 속성들로 구성되기도 함
- Ex) 고객 개체의 고객아이디 속성
- E-R 다이어그램에서 밑줄로 표현