Entitiy-Relationship Model

2020. 2. 5. 09:23스터디/Database

ER 모델은 데이터베이스 설계에 있어 가장 중요한 역할을 한다,

 

ER모델은 사용자가 데이터베이스에서 원하는 것을 비공식적 인 설명에서 DBMS로 구현할 수있는 보다 상세하고 정확한 설명으로 이동할 수

 

있는 유용한 개념을 제공한다

 

2.1 OVERVIEW OF DATABASE DESIGN

 

데이터베이스 설계는 총 6단계로 나뉘는데, ER 모델은 첫 세단계와 관련이 있다

 

1) 요구사항 정의: 이 설계단계는 데이터베이스 어플리케이션을 설계하는데, 어떤 데이터가 데이터베이스에 담아져야하는지, 어떤 어플리케이션이 반드시 최우선적으로 개발되어야하는지, 어떤 방식이 가장 많이 사용되어지고 요구사항에 충족하는지를 이해하는 단계이다. 다시 말해서 데이터베이스에서 사용자가 원하는게 무엇인지 알아내는 것을 말한다. 대개 사용자 그룹들간의 토론이나, 현재 운영 환경에 대한 학습이나, 어떻게 변화할지 예측하거나, 교체되거나 보완되어야할 현존하는 어플리케이션의 문서에 대한 조사 등을 포함한 비공식적인 과정을 말한다.

 

2) 개념적 데이터베이스 설계: 요구사항 정의를 통해 수집된 정보들은 데이터베이스에 저장될 하이레벨의 데이터 정보와 이런 데이터베이스 안에서 이런 데이터들을 관리하기 위한 제약조건과 함께 설계된다.

 

3) 논리적 데이터베이스 설계: 데이터베이스 설계를 구현하기 위해서는 DBMS를 선택해야한다 그리고 개념적 데이터베이스 단계를 DBMS의 데이터 모델속 데이터베이스 스키마로 변환해야한다. 

 

2.1.1 Beyond the ER Model

 

ER 모델링은 논리적 데이터베이스 스키마 설계로의 가장 완벽한 접근이라고 부르기도 한다. 이는 사실 옳지 않다 왜냐하면 ER 다이어그램은 단지 요구사항 정의 중에 수집된 정보들의 매우 주관적인 평가로 이루어진 대략적인 정보이기 때문이다. 일단 좋은 논리적 스키마를 얻게되면, 우리는 반드시 퍼포먼스의 기준과 물리적 스키마 설계를 고려해야한다. 그 다음에는 보안 이슈와 사용자 접근이 고려되어야 한다.

 

4) 스키마 정제: 네번째 설계 단계는 데이터베이스 스키마의 잠재적인 문제점들을 식별하고 정제하기위해 리레이션들의 집합을 분석하는 단계이다. 하지만 요구사항 분석과 개념적 설계단계의 스키마 정제는 어떤 우아하고 강력한 한 이론에 의해 좌우되는데 이를 정규화라고 한다

정규화는 리레이션들을 재구성하고 필요한 특성만 강화하는 것이다.

 

5) 물리적 데이터베이스 설계: 요구되어지는 퍼포먼스의 기준을 충족시키기 위한 데이터베이스의 설계를 통한 데이터베이스의 작업량이 얼마나 될지를 고려하는 단계이다. 테이블의 인덱싱과 클러스터링 또는 스키마 부분의 재설계를 다룬다

 

6) 보안 설계: 다양한 사용자 그룹과 역할을 식별한다. 허용되지 않은 사용자의 데이터베이스 접근을 막는다

 

2.2 ENTITIES, ATTRIBUTES, AND ENTITY SETS

 

엔티티는 실제 세계에서 다른 오브젝트들과 구분이 되어지는 오브젝트이다. 또한 비슷한 엔티티들의 집합들을 식별하는데도 유용하다. 이러한 집합들을 엔티티 세트라고 한다. (엔티티 집합은 분리되어질 필요가 없다.) 예를들어 벤더스터 자판기, 벤더스터 소프트웨어 부서, 벤더스터 소프트웨어 팀장, 벤더스터 소프트웨어 팀장의 집 주소가 있다고 하자. 소프트웨어 팀원들의 집합과 기획 팀원들 중 겹치는 팀원이 있을 것이다. 이 경우 우리는 소프트웨어와 하드웨어 두 부서에 속해있는 팀원들의 세트를 엔티티 세트라고 부른다

 

엔티티는 속성들을 통해 표현된다. 엔티티 세트의 모든 엔트리들은 같은 속성을 가진다. 이를 우리는 엔티티의 유사성이라고 부른다. 

속성은 우리가 표현하려고 하는 엔티티에 대한 정보의 디테일을 반영한다. 예를 들어 교수 엔티티에서 이름과 교수번호를 속성으로 사용하고자 설정할 수 있다. 이 경우에는 사용자는 각각의 교수들의 이름과 교수번호를 데이터베이스에 저장할 수 있다. 하지만 속성으로 지정하지 않은 정보에 대해서는 저장할 수 없다.

 

각각의 속성은 엔티티 집합과 연관있는데, 입력 가능한 값들의 도메인을 반드시 식별해야한다. 예를 들어 교수의 속성 "이름"은 20자여야 한다 같은 정의가 도메인이다. 다른 예제를 더 들어보자면, 학교가 교수들을 1에서 10 까지의 범위로 점수를 매기고 이를 "평가 (또는 인사고과)" 라고 저장한다면 연관된 도메인은 integer값 1~ 10까지를 포함하게 된다. 더욱이 각각의 엔티티 집합에서 "키"를 고를수가 있다.

키는 집합에서 엔티티의 유일함을 식별할 수 있는 속성의 가장 작은 집합이다. 만약 후보키들 중 하나를 "기본키,Primary Key"로 지정할 때 한 개 이상의 "후보키"가 존재할 수 있다. 이를 통해 각각의 엔티티 집합은 엔티티 집합에서 엔티티를 유일하게 식별할 수 있는 적어도 하나 이상의 속성 집합을 보유하고 있다는 것을 알 수 있다. 그리고 이 속성들의 집합은 키를 가지고 있다.

 

'스터디 > Database' 카테고리의 다른 글

데이터베이스 정규화  (0) 2020.02.09
Entity-Relationship Model 03  (0) 2020.02.05
Entity-Relationship Model 02  (0) 2020.02.05