Peter Chen은 1976년에 ER 다이어그램을 개발했습니다. ER 모델은 데이터베이스의 구조와 논리를 표현하기 위한 간단하고 이해하기 쉬운 모델을 제공하기 위해 만들어졌습니다. 이후 Enhanced ER Model 및 Object Relationship Model과 같은 변형으로 발전했습니다.
엔터티 관계형 모델은 데이터베이스에 표시될 엔터티를 식별하고 해당 엔터티가 어떻게 관련되어 있는지 표현하기 위한 모델입니다. ER 데이터 모델은 데이터베이스의 전체 논리적 구조를 그래픽으로 나타내는 엔터프라이즈 스키마를 지정합니다.
엔터티 관계 다이어그램은 데이터베이스에 존재하는 엔터티 간의 관계를 설명합니다. ER 모델은 사람, 자동차, 회사와 같은 실제 개체와 이러한 실제 개체 간의 관계를 모델링하는 데 사용됩니다. 즉, ER 다이어그램은 데이터베이스의 구조적 형식입니다.
DBMS에서 ER 다이어그램을 사용하는 이유는 무엇입니까?
- ER 다이어그램은 데이터베이스에서 ER 모델을 표현하는 데 사용되므로 관계(테이블)로 쉽게 변환할 수 있습니다.
- ER 다이어그램은 객체를 실제로 유용하게 만드는 실제 모델링의 목적을 제공합니다.
- ER 다이어그램에는 기술적 지식이나 하드웨어 지원이 필요하지 않습니다.
- 이러한 다이어그램은 순진한 사용자라도 이해하기 쉽고 만들기 쉽습니다.
- 데이터를 논리적으로 시각화하기 위한 표준 솔루션을 제공합니다.
ER 모델에 사용되는 기호
ER 모델은 다음 기호로 구성된 데이터 관점에서 시스템의 논리적 보기를 모델링하는 데 사용됩니다.
- 직사각형: 직사각형은 ER 모델의 엔터티를 나타냅니다.
- 타원: 타원은 ER 모델의 속성을 나타냅니다.
- 다이아몬드: 다이아몬드는 엔터티 간의 관계를 나타냅니다.
- 윤곽: 선은 다른 관계 유형이 있는 엔터티 및 엔터티 집합에 대한 속성을 나타냅니다.
- 이중 타원: 이중 타원은 다음을 나타냅니다. 다중 값 속성 .
- 이중 직사각형: 이중 직사각형은 약한 엔터티를 나타냅니다.
ER 다이어그램에 사용되는 기호
ER 다이어그램의 구성 요소
ER 모델은 데이터베이스 시스템의 엔터티, 속성 및 엔터티 간의 관계로 구성됩니다.
ER 다이어그램의 구성 요소
실재
엔터티는 특정 사람, 자동차, 집 또는 직원과 같은 물리적 존재를 갖는 객체일 수도 있고 회사, 직업 또는 대학 과정과 같은 개념적 존재를 갖는 객체일 수도 있습니다.
엔터티에는 두 가지 유형이 있습니다.
문자열을 int로 변환하는 변환기
1. 유형의 실체 – 자동차, 사람 등을 만질 수 있는 것
2.Non – 유형의 실체 – 공기, 은행계좌 등과 같이 만질 수 없는 것
엔터티 세트: 엔터티는 엔터티 유형의 개체이며 모든 엔터티의 집합을 엔터티 세트라고 합니다. 예를 들어 E1은 Entity Type Student를 갖는 엔터티이고 모든 학생의 집합을 Entity Set이라고 합니다. ER 다이어그램에서 엔터티 유형은 다음과 같이 표시됩니다.

엔터티 세트
ER 다이어그램에서는 엔터티 집합을 표현할 수 있지만 엔터티는 관계의 행과 열이고 ER 다이어그램은 데이터를 그래픽으로 표현하기 때문에 ER 다이어그램에서는 엔터티를 표현할 수 없습니다.
1. 강력한 존재
ㅏ 강력한 존재 키 속성을 갖는 엔터티 유형입니다. Strong Entity는 스키마의 다른 Entity에 의존하지 않습니다. 여기에는 고유하게 식별하는 데 도움이 되는 기본 키가 있으며 직사각형으로 표시됩니다. 이를 강력한 엔터티 유형이라고 합니다.
2. 약한 존재
엔터티 유형에는 엔터티 세트의 각 엔터티를 고유하게 식별하는 키 속성이 있습니다. 그러나 주요 속성을 정의할 수 없는 일부 엔터티 유형이 존재합니다. 이들은 호출됩니다 약한 엔터티 유형 .
예를 들어, 회사는 직원의 부양가족(부모, 자녀, 배우자)의 정보를 저장할 수 있습니다. 하지만 직원 없이는 부양가족이 존재할 수 없습니다. 그래서 의존성은 약한 엔터티 유형 직원은 종속 항목에 대한 식별 엔터티 유형이 됩니다. 강력한 엔터티 유형 .
약한 엔터티 유형은 이중 직사각형으로 표시됩니다. 약한 엔터티 유형의 참여는 항상 전체입니다. 약한 엔터티 유형과 이를 식별하는 강력한 엔터티 유형 간의 관계를 식별 관계라고 하며 이중 다이아몬드로 표시됩니다.

강한 실체와 약한 실체
속성
속성 엔터티 유형을 정의하는 속성입니다. 예를 들어 Roll_No, Name, DOB, Age, Address 및 Mobile_No는 학생 엔터티 유형을 정의하는 속성입니다. ER 다이어그램에서 속성은 타원으로 표시됩니다.

기인하다
1. 주요 속성
속성은 각 엔터티를 고유하게 식별합니다. 엔터티 세트에서는 키 속성이라고 합니다. 예를 들어 Roll_No는 각 학생마다 고유합니다. ER 다이어그램에서 키 속성은 기본 선이 있는 타원으로 표시됩니다.

주요 속성
2. 복합 속성
속성 다른 많은 속성으로 구성 복합속성이라고 합니다. 예를 들어 학생 엔터티 유형의 주소 속성은 거리, 도시, 주 및 국가로 구성됩니다. ER 다이어그램에서 복합 속성은 타원으로 구성된 타원으로 표현됩니다.

복합 속성
3. 다중값 속성
특정 엔터티에 대해 둘 이상의 값으로 구성된 속성입니다. 예를 들어 Phone_No(특정 학생에 대해 둘 이상일 수 있음)입니다. ER 다이어그램에서 다중값 속성은 이중 타원으로 표시됩니다.

다중값 속성
4. 파생 속성
엔터티 유형의 다른 속성에서 파생될 수 있는 속성을 파생 속성이라고 합니다. 예를 들어; 연령(DOB에서 파생 가능) ER 다이어그램에서 파생된 속성은 점선 타원으로 표시됩니다.

파생 속성
해당 속성을 가진 완전한 엔터티 유형 학생은 다음과 같이 표현될 수 있습니다.

엔터티 및 속성
이진 검색 트리와 이진 트리
관계 유형 및 관계 집합
관계 유형은 엔터티 유형 간의 연결을 나타냅니다. 예를 들어 '등록'은 개체 유형 학생과 코스 사이에 존재하는 관계 유형입니다. ER 다이어그램에서 관계 유형은 다이아몬드로 표시되고 엔터티를 선으로 연결합니다.

엔터티-관계 집합
동일한 유형의 관계 집합을 관계 집합이라고 합니다. 다음 관계 세트는 S1이 C2에 등록되고, S2가 C1에 등록되고, S3이 C3에 등록되는 것을 보여줍니다.

관계 집합
관계 집합의 정도
관계 집합에 참여하는 서로 다른 엔터티 집합의 수를 관계 집합의 정도.
1. 단항 관계: 관계에 참여하는 엔터티 집합이 하나만 있는 경우 해당 관계를 단항 관계라고 합니다. 예를 들어, 한 사람이 한 사람과만 결혼했습니다.

단항 관계
2. 이진 관계: 관계에 참여하는 두 개의 엔터티 집합이 있는 경우 해당 관계를 이진 관계라고 합니다. 예를 들어, 학생이 강좌에 등록되어 있습니다.

이진 관계
3. 삼항 관계: 하나의 관계에 참여하는 n개의 엔터티 집합이 있는 경우 해당 관계를 n항 관계라고 합니다.
카디널리티
엔터티 집합의 엔터티가 관계 집합에 참여하는 횟수는 다음과 같습니다. 카디널리티 . 카디널리티는 다양한 유형이 될 수 있습니다.
1. 일대일: 각 엔터티 집합의 각 엔터티가 관계에 한 번만 참여할 수 있는 경우 카디널리티는 일대일입니다. 남자는 여자 한 명과 결혼할 수 있고, 여자는 남자 한 명과 결혼할 수 있다고 가정해보자. 그러므로 관계는 일대일 관계가 될 것입니다.
여기서 사용할 수 있는 테이블의 총 개수는 2개입니다.

일대일 카디널리티
Set을 사용하면 다음과 같이 표현할 수 있습니다.

일대일 표현 집합
2. 일대다: 각 엔터티가 둘 이상의 엔터티와 관련될 수 있는 일대다 매핑에서도 사용할 수 있는 총 테이블 수는 2입니다. 하나의 외과의사 부서가 많은 의사를 수용할 수 있다고 가정해 보겠습니다. 따라서 카디널리티는 1 대 M이 됩니다. 이는 한 부서에 많은 의사가 있음을 의미합니다.
사용할 수 있는 총 테이블 수는 3개입니다.

일대다 카디널리티
세트를 사용하면 일대다 카디널리티를 다음과 같이 표현할 수 있습니다.
일대다 표현 집합
3. 다대일: 한 엔터티 집합의 엔터티가 관계 집합에 한 번만 참여할 수 있고 다른 엔터티 집합의 엔터티가 관계 집합에 두 번 이상 참여할 수 있는 경우 카디널리티는 다대일입니다. 한 학생이 한 과목만 수강할 수 있지만, 한 과목을 많은 학생이 수강할 수 있다고 가정해 보겠습니다. 따라서 카디널리티는 n 대 1이 됩니다. 이는 한 코스에는 n명의 학생이 있을 수 있지만 한 명의 학생에게는 하나의 코스만 있다는 것을 의미합니다.
여기서 사용할 수 있는 테이블 수는 총 3개입니다.

다대일 카디널리티
Set을 사용하면 다음과 같이 표현할 수 있습니다.

다대일 표현 집합
이 경우 각 학생은 1과목만 수강하고 있지만 많은 학생이 1과목을 수강했습니다.
4. 다대다: 모든 엔터티 집합의 엔터티가 관계에 두 번 이상 참여할 수 있는 경우 카디널리티는 다대다입니다. 한 학생이 두 개 이상의 과목을 수강할 수 있고, 여러 학생이 한 과목을 수강할 수 있다고 가정해 보겠습니다. 따라서 관계는 다대다 관계가 될 것입니다.
여기서 사용할 수 있는 테이블의 총 개수는 3개입니다.

다대다 카디널리티
Set을 사용하면 다음과 같이 표현할 수 있습니다.

다대다 집합 표현
이 예에서 학생 S1은 C1 및 C3에 등록되어 있고 과정 C3은 S1, S3 및 S4에 등록되어 있습니다. 그러니까 다대다 관계인 거죠.
AWS SNS
참여 제약
참여 제약 관계 집합에 참여하는 엔터티에 적용됩니다.
1. 전체 참여 – 엔터티 집합의 각 엔터티 관계에 참여해야 합니다. 각 학생이 강좌에 등록해야 하는 경우 학생의 참여는 총합이 됩니다. 전체 참여는 ER 다이어그램에서 이중선으로 표시됩니다.
2. 부분 참여 - 엔터티 집합의 엔터티는 관계에 참여할 수도 있고 참여하지 않을 수도 있습니다. 일부 과목에 학생이 등록하지 않은 경우 해당 과목에 부분적으로 참여하게 됩니다.
다이어그램은 전체 참여가 있는 학생 엔터티 세트와 부분 참여가 있는 코스 엔터티 세트가 있는 '등록' 관계 세트를 보여줍니다.

전체 참여와 부분 참여
Set을 사용하면 다음과 같이 표현할 수 있습니다.

전체 참여와 부분 참여의 표현 설정
학생 엔터티 집합의 모든 학생은 관계에 참여하지만 관계에 참여하지 않는 코스 C4가 있습니다.
ER 다이어그램을 그리는 방법?
- 첫 번째 단계는 모든 엔터티를 식별하고 이를 직사각형에 배치하고 그에 따라 레이블을 지정하는 것입니다.
- 다음 단계는 그들 사이의 관계를 식별하고 다이아몬드를 사용하여 적절하게 배치하고 관계가 서로 연결되지 않았는지 확인하는 것입니다.
- 엔터티에 속성을 올바르게 연결합니다.
- 중복 엔터티 및 관계를 제거합니다.
- 데이터베이스에 있는 데이터를 강조하려면 적절한 색상을 추가하세요.