260 likes | 562 Views
7 장 데이터베이스 설계. 7.1 데이터베이스 설계의 개요. 7.1 데이터베이스 설계의 개요. 추상화 개념 분류 추상화 공통 속성들로 특성 지워지는 현실세계의 객체 클래스를하나의 개념으로 정의하는 것 예 ) 월 1 월 , 2 월 , 3 월 ,, 로 분류 집단 추상화 각각의 구성요소를 표현하는 ( 다른 ) 클래스들의 집합으로부터 새로운 클래스를 정의하는 것 예 ) 컴퓨터 키보드 , 마우스 , 모니터 , cpu 등으로 분류 일반 추상화
E N D
7.1 데이터베이스 설계의 개요 • 추상화 개념 • 분류 추상화 • 공통 속성들로 특성 지워지는 현실세계의 객체 클래스를하나의 개념으로 정의하는 것 • 예) 월 1월, 2월, 3월,, 로 분류 • 집단 추상화 • 각각의 구성요소를 표현하는 (다른) 클래스들의 집합으로부터 새로운 클래스를 정의하는 것 • 예) 컴퓨터 키보드, 마우스, 모니터, cpu 등으로 분류 • 일반 추상화 • 2개 또는그 이상의 클래스 요소 사이의 부분집합 관계를 정의하는 것. 상속관계 존재 • 예) 컴퓨터 IBM PC, Mac, WS 등으로 분류
7.2 데이베이스 설계 단계 • 요구사항 수집과 분석 • 요구사항을 수집하고, 의견들을 평가하고 조정함 • 요구사항을 수집하기 위해서 흔히 기존의 문서를 조사하고, 인터뷰나 설문 조사 등이 시행됨 • 인터뷰는 요구사항 수집을 위해 가장 흔히 사용된다. 또한 일반적으로 가장 유용한 방식 • 설문 조사는 자유롭게 의견을 적어내도록 하는 방식과 주어진 질문에 대해서만 답을 하는 방식으로 구분 • 요구사항에 관한 지식을 기반으로 관련 있는 엔티티들과 이들의 애트리뷰트들이 무엇인가, 엔티티들 간의 관계가 무엇인가 등을 파악함
7.2 데이베이스 설계 단계 • 개념적 설계단계 • 요구사항들을 기반으로 데이터베이스의 개념적 스키마 설계하는 것 • 목표 DBMS 엔진과는 독립적인 단계로서 • 데이터베이스에 저장되는 정보의 내용 관점에서 스키마 설계하는 것임 • 데이터베이스를 저장하는 구조나 접근방법은 이 단계에서 설계하지 않음
7.2 데이베이스 설계 단계 • 논리적 설계단계 • 개념스키마를 이용하여 데이터베이스의 논리적 스키마를 설계하는 것 • 논리적모델(RDB, 계층 모델, 네트워크 모델, 객체지향 모델등)중의 하나를 선택하여 설계함 • 구체적인 DBMS와는 독립적으로 구성됨. • 즉, 이 단계에서 작성한 스키마는 오라클, 인포믹스와 같은 어떤 모델에도 적용이 가능하다. • 물리적 설계단계 • 논리적스키마를 이용하여 데이터베이스의 물리적스키마를 설계 • 저장장치에 저장하기 위해 데이터베이스의 저장 구조와 접근방법을 설계함 • 목표 DBMS에 적합한 스키마를 설계해야 함
7.3 개체-관계모델(E-R Model) • ER 모델 • 데이터베이스 설계를 용이하게 하기 위해서 P.P. Chen이 1976년에 제안하였음 • 현재는 EER(Enhanced Entity Relationship) 모델이 데이터베이스 설계 과정에 널리 사용되고 있음 • 개념적 설계를 위한 인기 있는 모델로서, • 높은 수준으로 추상화하며, • 이해하기 쉬우며, • 구문들의 표현력이 뛰어나고 • 사람들이 응용에 대해 생각하는 방식과 가깝고, • 많은 CASE 도구들에서 지원됨 • ER 모델은 실세계를 엔티티, 엔티티들 간의 관계, 애트리뷰트로 표현함 • ER 모델을 표현하기 위한 방법으로 ER 다이어그램이 사용됨. • ER 모델은 쉽게 관계 데이터 모델로 사상됨
7.3 개체-관계모델(E-R Model) • ER 다이어그램 • 타입, 관계 타입, 이들의 애트리뷰트들을 그래픽하게 표현함 • P.194 ER 다이어그램 사용 기호 참조
7.3.1 개체(entity) • 엔티티 • 하나의 엔티티는 사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체 • 학생처럼 실체가 있는 것도 있지만 생각이나 개념과 같이 추상적인 것도 있음 • 객체 클래스를 구성함 • 예) 학과, 교수, 학생, 강좌 개체 • 예) 학과는 다시 컴퓨터공학과, 정보과학과 등의 인스턴스가 포함되는 객체 클래스임. • 개체유형 또는 개체집합이라고도 함 • 엔티티는 직사각형으로 표시함 (p.195 그림 7-4 참조)
7.3.2 관계(relationship) • 관계 • 관계는 엔티티들 사이에 존재하는 연관이나 연결로서 두 개 이상의 엔티티 타입들 사이의 사상으로 생각할 수 있음 • 요구사항 명세에서 흔히 동사는 ER 다이어그램에서 관계로 표현됨 • ER 다이어그램에서 다이어몬드로 표기 • 예) 교수 - 학생 개체간 지도 관계 존재함 학생 –강좌 개체간 등록 관계 존재함
7.3.2 관계(relationship) • 관계의 차수(degree) • 관계의 차수는 관계로 연결된 엔티티 타입들의 개수를 의미 • 실세계에서 가장 흔한 관계는 두 개의 엔티티 타입을 연결하는 2항 관계 2항 관계 순환 관계 지도 사원 관리자 관리 교수 학생 피관리자 3항 관계 n항 관계 소속 학생 교수 학과
7.3.2 관계(relationship) • 순환 관계 • 하나의 엔티티 타입이 동일한 관계 타입에 두 번 이상 참여하는 것
7.3.2 관계(relationship) • 매핑 카디날리티 • 카디날리티 비율은 한 엔티티가 참여할 수 있는 관계의 수를 나타냄 • 관계 타입에 참여하는 엔티티들의 가능한 조합을 제한함 • 이항관계에는 1:1, 1:N, N:1, N:N으로 구분 • 카디날리티에 관한 정보는 간선 위에 나타냄
7.3.2 관계(relationship) • 카디날리티 비율의 최소값과 최대값 • ER 다이어그램에서 관계 타입과 엔티티 타입을 연결하는 실선 위에 (min, max) 형태로 표기 • 어떤 관계 타입에 참여하는 각 엔티티 타입에 대하여 min은 이 엔티티 타입 내의 각 엔티티는 적어도 min 번 관계에 참여함을 의미 • max는 이 엔티티 타입 내의 각 엔티티는 최대한 max 번 관계에 참여함을 의미 • min=0은 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음을 의미
7.3.2 관계(relationship) • 매핑카디널리티가 포함된 E-R 다이어그램
강의 교수 강좌 7.3.2 관계(relationship) • 매핑카디널리티가 포함된 E-R 다이어그램 (1,n) (0,n) 조건 1 : 교수는 꼭 하나 이상의 강좌를 강의해야 한다. min-card(교수,강의)=1 조건 2 : 교수는 여러 개의 강좌를 강의할 수 있다. min-card(교수,강의)=n 조건 3 : 강좌는 특정 학기에 개설되어 않을 수 있다. min-card(강의, 강좌)=0 조건 4 : 한 강좌는 여러 명의 교수가 강의할 수 있다. min-card(강의, 강좌)=n
7.3.3 속성(attribute) • 관계의 애트리뷰트 • 속성이란 개체 또는 관계에 대한 특성을 기술하는 데이터 항목임. • 개체에 대한 특성 • 자동차 개체 제조회사, 엔지사이즈, 차량색상 등의 속성을 가짐 • 관계에 대한 특성 • 교수-강의개체 연결하는 강의관계 강의요일, 시작시간, 강의실 위치 등과 같은 속성을 포함할 수 있다. • 속성의 그래픽 표현은 원으로 표시됨 • 속성과 개체간은 실선으로 표시함 • ER 다이어그램에서 기본 키에 속하는 애트리뷰트는 밑줄을 그어 표시함
7.3.3 속성(attribute) • 단일값 속성(single-valued attribute) • 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트(원자값) • ER 다이어그램에서 실선 타원으로 표현함 • ER 다이어그램에서 대부분의 애트리뷰트는 단순 애트리뷰트
5.2 ER 모델(계속) • 다중갑 속성 (multi-valuedattribute) • 속성값이 여러 개의 값을 가질 수 있는 애트리뷰트 • ER 다이어그램에서 이중선 타원으로 표현함
7.3.3 속성(attribute) • 복합 속성(composite attribute) • 속성값이 여러 의미를 포함하는 애트리뷰트
7.3.3 속성(attribute) • 유도 속성(derived attribute) • 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트 • ER 다이어그램에서 점선 타원으로 표현함 • 예) 교수개체의 입사일 속성을 이용하여 근무년수 계산 근무년수
교수 부양가족 강의 강의 교수 강좌 7.3.4 약한 개체 • 약한 엔티티 타입 • 약한 엔티티 타입은 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입 • 즉, 다른 개체의 존재여부에 따라 존재할 수도 있고, 존재하지않을수도 있는 개체를 말함 • ER 다이어그램에서 약한 엔티티 타입은 이중선 직사각형으로 표기 • 예) 교수 –부양관계-부양가족 개체 • 부양가족개체는 교수개체에 의족적임.
7. 4 확장 E-R 모델 • 확장 E-R모델 • 초기 E-R모델에 세분화, 일반화, 집단화 개념 추가됨
7. 4 확장 E-R 모델 • 세분화와 일반화 • 세분화 • 어떤 개체를 작은 그룹별로 분리하는 것 • 예) 사람(상위클래스) 남자, 여자(하위클래스)로 분리 • 상위 클래스에서 하위클래스를 분류하는 하향식 개념 • 일반화 • 여러 개체의 공통적인 특징을 하나의 개체로 일반화 시키는 것 • 예) 남자, 여자 사람으로 일반화 • 하위 클래스에서 상위클래스로 일반화시키는 상향식 개념 • 상위클래스와 하위클래스간에는 IS-A 관계 성립함 • 예) 여자 IS-A 사람
7. 4 확장 E-R 모델 • 세분화와 일반화 • 세분화와 일반화 개념의 장점 1) 불필요한 포함 속성을 제거할 수 있다. 예) 학생 학부, 대학원생, 사회교육원생 • 사회교육원생은 소속학과없음 • 대학원생은 전공과정 데이터 필요함 • 속성계승 : 상위클래스에서 정의한 속성은 하위클래스로 계승될 수 있다.(P.208 참조) 2) 특정 하위클래스 클래스의 관계 표현이 가능함 예) 학생 학부, 대학원생, 사회교육원생 • 사회교육원생은 재교육 목표이므로 취업과 관계없음 • 학부와 대학원생은 취업이라는 관계가 있을 수 있음.(P.209 그림 참조)
7. 4 확장 E-R 모델 • 집단화 • 단위 개체들을 하나로 묶어 상위 레벨의 복합개체를 구성하는 것 예) p.210 그림 참조