엔티티 관계 데이터 모델에 대한 간단하지만 포괄적 인 개요
https://flaviocopes.com/entity-relationship/
ER이라고도 하는 엔터티 관계 데이터 모델은 데이터를 추론하는 데 사용할 수 있는 다양한 데이터 모델 중 하나입니다.
특히 특정 구현과 연결되어 있지 않으므로 개념적 데이터 모델입니다. 그것은 논리 데이터 모델에 맡겨진 작업입니다.
ER 데이터 모델은 매우 일반적이며 수준이 높으므로 완전히 다른 종류의 데이터베이스로 구현할 수 있습니다.
구현 세부 사항을 생각하지 않고 데이터와 데이터의 구성 방식 만 생각하기 때문에 좋습니다. 그렇게 하면서 이전에는 생각하지 못했던 방식으로 문제를 분석해야 합니다.
데이터가 관련된 시나리오를 분석하는 데 유용한 ER 다이어그램이 있습니다.
ER 모델은 그래픽 표기법을 사용하여 모델링 하는 데 필요한 모든 데이터, 다른 종류의 데이터 간의 관계 및 이와 관련된 정보를 나타내는 도구를 제공합니다.
ER 모델을 구성하는 두 가지 항목이 있습니다.
엔터티는 항목이나 사람과 같이 공통 속성이 있는 데이터 유형입니다.
관계는 엔티티 간의 관계입니다.
예를 들어서 책과 작가에 대해 이야기하겠습니다. 우리는 2 개의 엔티티를 가지고 있습니다 :
특정 책은 책 엔터티의 인스턴스입니다.
엔티티가 2 개이므로 관계가 2 개 있습니다. 하나는 하나의 책과 저자 엔티티 사이의 관계입니다. 하나는 단일 저자와 책 엔티티 사이의 관계입니다. 우리가 그것에 대해 생각한다면,
엔티티의 시각적 표기법
이 간단한 예제를 통해 시나리오의 ER 데이터 모델을 만드는 데 도움이 되는 시각적 표기법을 도입 할 수 있습니다.
참고 : ER 다이어그램을 그리는 방법에는 여러 가지가 있습니다. 내 생각에 더 시각적이고 더 의미 있는 것을 사용할 것입니다.
엔티티는 사각형으로 표시되며,이를 식별하기 위해 일부 텍스트가 있습니다.
관계에 대한 시각적 표기법
엔티티 간의 관계는 가장 기본적인 형태로 두 관계를 연결하는 선과 관계 유형을 식별하는 텍스트가 있는 다이아몬드를 사용하여 표시됩니다.
나는“book has author”와“author writer”라는 두 가지 관계를 만들지 않았습니다. 나는 책과 저자 사이에“저작”관계를 맺었습니다.
Cardinalities
관계가 생기면 관련된 숫자를 나타내야 합니다. 현재 많은 질문이 있습니다.
모든 것이 좋은 질문이며,이 경우 대답은 분명합니다. 대답이 명확하지 않으면 문제에 대해 생각하고 자신의 제약 조건을 추가 할 수 있습니다.
다이어그램에서 카디널리티를 시각적으로 나타내는 여러 가지 방법이 있습니다. 일부는 개체에 연결될 때 선 모양을 변경하는 것을 선호합니다.
나는 숫자를 선호하여 더 명확하게 만듭니다.
위의 숫자는 다음을 의미합니다. 한 명 이상의 저자가 책을 작성할 수 있습니다. n은 임의 개수의 요소를 의미합니다.
그리고 저자는 0 권의 책 (지금 쓰고 있을 수도 있음)에서 무한한 수의 책까지 저작 할 수 있습니다.
첫 번째는 0 대 다 관계라고 합니다. 두 번째는 일대 다 관계입니다.
우리는 또한 가질 수 있습니다 :
Attributes
각 엔티티는 하나 이상의 속성을 가질 수 있습니다.
서점에서 위의 관계를 사용한다고 가정하겠습니다. 각 저자는 이름, 바이오, 웹 사이트 URL을 가지고 있습니다.
각 책에는 제목, 출판사, 출판 년도, ISBN이 있습니다. 우리가 원한다면 출판사도 실체가 될 수 있습니다. 그러나 책의 속성으로 정의 할 수도 있습니다.
위의 정보를 나타내는 방법은 다음과 같습니다.
Identifier attributes
엔티티는 고유 키로 식별해야 합니다. 책 엔티티는 ISBN 속성으로 고유하게 식별 될 수 있습니다. 모든 책에는 하나의 ISBN이 있습니다 (책 하나의 사본이 아니라 책 '제목'을 나타내는 것으로 간주).
우리는 기본 키 속성을 기반으로 식별합니다.
반면에 저자는 현재 고유 식별자가 없습니다. 두 명의 저자가 같은 이름을 가질 수 있습니다.
따라서 고유 키 속성을 추가해야 합니다. 예를 들어 id 속성은 다음과 같습니다.
식별자 속성은 여러 속성에 걸쳐있을 수 있습니다.
예를 들어, 여권 ID와 작성자 국가는 사람을 고유하게 식별하고 추가 한 id 속성을 대체 할 수 있습니다.
어느 것을 선택해야 합니까? 응용 프로그램에서 더 의미가 있는 문제입니다. 서점을 모델링 하는 경우 모든 서적 저자의 국가 및 여권 ID를 기대할 수 없습니다. 따라서 각 저자와 함께 선택하고 연결할 임의의 ID를 사용합니다.
관계 속성
속성은 엔터티에 고유하지 않습니다. 관계도 속성을 가질 수 있습니다.
라이브러리를 모델링해야 합니다. 우리는 이제 책과 저자 실체 외에 책을 빌려 책을 읽는 독자 실체를 소개합니다. 우리는 이름과 ID 카드 번호를 빌릴 때 사용합니다.
그러나 여전히 정보가 누락되었습니다. 우리는 언제 책을 빌렸는지, 그리고 그것을 반환 한 날짜를 알아야 합니다. 그래서 우리는 특정 책의 모든 역사에 관한 정보를 도서관에 저장할 수 있습니다. 이 정보는 책 또는 독자 엔티티에 속하지 않습니다. 그것은 관계에 속합니다 :
Weak entities
위의 기본 키와 엔티티를 고유하게 식별하는 방법에 대해 이야기했습니다.
일부 엔터티는 다른 엔터티에 의존하여 약한 엔터티라고 합니다.
온라인 상점에 대한 주문을 모델링 해야 한다고 가정하십시오.
각 주문에 대해 1부터 시작하여 시간이 지남에 따라 증가하는 주문 ID, 주문 날짜 및 시간, 고객에 대한 정보를 저장하므로 청구 대상과 배송 위치를 알 수 있습니다.
그런 다음 주문한 내용도 알아야 합니다. 결제 할 때 장바구니의 각 항목을 나타내는 약한 항목 "주문 품목"을 만듭니다.
이 엔티티는 결제 시점에 품목 가격을 저장합니다 (따라서 판매중인 제품의 가격을 변경할 때 이미 주문한 주문에 영향을 미치지 않음), 주문한 품목의 수량 및 선택한 옵션. 티셔츠를 판매한다고 가정하면 주문한 티셔츠의 색상과 크기를 저장해야 합니다.
주문 항목 엔터티는 주문 엔터티 없이 존재할 수 없기 때문에 약한 엔터티입니다.
Recursive relations
엔티티는 자신과 재귀 관계를 가질 수 있습니다. 개인 엔티티가 있다고 가정하십시오. 이런 방식으로 부모-자식 관계를 모델링 할 수 있습니다.
사람은 0에서 n까지의 어린이를 가질 수 있으며, 어린이에게는 2 명의 부모가 있습니다 (가장 간단한 시나리오를 고려할 때).
ISA relations
ISA는 IS-A의 약자이며 ER 모델에서 일반화를 모델링 하는 방법입니다.
공통 우산 아래에서 유사한 엔티티를 그룹화 하는 데 사용합니다. 예를 들어, 책과 도서관 예제의 경우 저자와 독자는 개인 엔티티를 사용하여 일반화 할 수 있습니다.
둘 다 이름이 있으므로 개인 엔티티까지 이름을 추출하고 해당 엔티티에서 저자 또는 독자의 특성을 관리합니다.
Non-binary relations
모든 관계가 엄격하게 이진 인 것은 아닙니다. 수업 시나리오를 봅시다.
수업은 오늘 오전 10시에 학교 교실에서 진행되며 교사와 물리 수업에 대해 이야기합니다.
따라서 수업은 하루 중 특정 시간에 이루어지며 주제, 교사, 수업 및 방이 포함됩니다.
다음과 같이 모델링 할 수 있습니다.
등록된 댓글이 없습니다.