정보실

웹학교

정보실

sql ER 데이터 모델 소개

본문

엔티티 관계 데이터 모델에 대한 간단하지만 포괄적 인 개요


https://flaviocopes.com/entity-relationship/ 


ER이라고도 하는 엔터티 관계 데이터 모델은 데이터를 추론하는 데 사용할 수 있는 다양한 데이터 모델 중 하나입니다.


특히 특정 구현과 연결되어 있지 않으므로 개념적 데이터 모델입니다. 그것은 논리 데이터 모델에 맡겨진 작업입니다.


ER 데이터 모델은 매우 일반적이며 수준이 높으므로 완전히 다른 종류의 데이터베이스로 구현할 수 있습니다.


구현 세부 사항을 생각하지 않고 데이터와 데이터의 구성 방식 만 생각하기 때문에 좋습니다. 그렇게 하면서 이전에는 생각하지 못했던 방식으로 문제를 분석해야 합니다.


데이터가 관련된 시나리오를 분석하는 데 유용한 ER 다이어그램이 있습니다.


ER 모델은 그래픽 표기법을 사용하여 모델링 하는 데 필요한 모든 데이터, 다른 종류의 데이터 간의 관계 및 이와 관련된 정보를 나타내는 도구를 제공합니다.


ER 모델을 구성하는 두 가지 항목이 있습니다.

  • the entities
  • the relations

엔터티는 항목이나 사람과 같이 공통 속성이 있는 데이터 유형입니다.


관계는 엔티티 간의 관계입니다.


예를 들어서 책과 작가에 대해 이야기하겠습니다. 우리는 2 개의 엔티티를 가지고 있습니다 :

  • book
  • author

특정 책은 책 엔터티의 인스턴스입니다.


엔티티가 2 개이므로 관계가 2 개 있습니다. 하나는 하나의 책과 저자 엔티티 사이의 관계입니다. 하나는 단일 저자와 책 엔티티 사이의 관계입니다. 우리가 그것에 대해 생각한다면,

  • 책에는 저자가 있다
  • 작가는 다양한 책을 쓸 수 있다

엔티티의 시각적 표기법 


이 간단한 예제를 통해 시나리오의 ER 데이터 모델을 만드는 데 도움이 되는 시각적 표기법을 도입 할 수 있습니다.


참고 : ER 다이어그램을 그리는 방법에는 여러 가지가 있습니다. 내 생각에 더 시각적이고 더 의미 있는 것을 사용할 것입니다.


엔티티는 사각형으로 표시되며,이를 식별하기 위해 일부 텍스트가 있습니다.


Entities 


관계에 대한 시각적 표기법 


엔티티 간의 관계는 가장 기본적인 형태로 두 관계를 연결하는 선과 관계 유형을 식별하는 텍스트가 있는 다이아몬드를 사용하여 표시됩니다.

Relation example 


나는“book has author”와“author writer”라는 두 가지 관계를 만들지 않았습니다. 나는 책과 저자 사이에“저작”관계를 맺었습니다.


Cardinalities 


관계가 생기면 관련된 숫자를 나타내야 합니다. 현재 많은 질문이 있습니다.

  • 책은 몇 명의 작가를 가질 수 있습니까?
  • 저자가 여러 권의 책을 쓸 수 있습니까?
  • 저자가 저자라고 불리는 책을 하나 이상 작성해야 합니까?
  • 여러 저자가 책을 쓸 수 있습니까?
  • 최소한 저자 없이 책이 존재할 수 있습니까?

모든 것이 좋은 질문이며,이 경우 대답은 분명합니다. 대답이 명확하지 않으면 문제에 대해 생각하고 자신의 제약 조건을 추가 할 수 있습니다.


다이어그램에서 카디널리티를 시각적으로 나타내는 여러 가지 방법이 있습니다. 일부는 개체에 연결될 때 선 모양을 변경하는 것을 선호합니다.


나는 숫자를 선호하여 더 명확하게 만듭니다.


Cardinality example 


위의 숫자는 다음을 의미합니다. 한 명 이상의 저자가 책을 작성할 수 있습니다. n은 임의 개수의 요소를 의미합니다.


그리고 저자는 0 권의 책 (지금 쓰고 있을 수도 있음)에서 무한한 수의 책까지 저작 할 수 있습니다.


첫 번째는 0 대 다 관계라고 합니다. 두 번째는 일대 다 관계입니다.


우리는 또한 가질 수 있습니다 :

  • 일대일 관계
  • 다 대다 관계
  • 0대일 관계


Attributes 


각 엔티티는 하나 이상의 속성을 가질 수 있습니다.


서점에서 위의 관계를 사용한다고 가정하겠습니다. 각 저자는 이름, 바이오, 웹 사이트 URL을 가지고 있습니다.


각 책에는 제목, 출판사, 출판 년도, ISBN이 있습니다. 우리가 원한다면 출판사도 실체가 될 수 있습니다. 그러나 책의 속성으로 정의 할 수도 있습니다.


위의 정보를 나타내는 방법은 다음과 같습니다.


Attributes example 


Identifier attributes 


엔티티는 고유 키로 식별해야 합니다. 책 엔티티는 ISBN 속성으로 고유하게 식별 될 수 있습니다. 모든 책에는 하나의 ISBN이 있습니다 (책 하나의 사본이 아니라 책 '제목'을 나타내는 것으로 간주).


우리는 기본 키 속성을 기반으로 식별합니다.


Key 


반면에 저자는 현재 고유 식별자가 없습니다. 두 명의 저자가 같은 이름을 가질 수 있습니다.


따라서 고유 키 속성을 추가해야 합니다. 예를 들어 id 속성은 다음과 같습니다.


id attribute 


식별자 속성은 여러 속성에 걸쳐있을 수 있습니다.


예를 들어, 여권 ID와 작성자 국가는 사람을 고유하게 식별하고 추가 한 id 속성을 대체 할 수 있습니다.


multiple attributes key 


어느 것을 선택해야 합니까? 응용 프로그램에서 더 의미가 있는 문제입니다. 서점을 모델링 하는 경우 모든 서적 저자의 국가 및 여권 ID를 기대할 수 없습니다. 따라서 각 저자와 함께 선택하고 연결할 임의의 ID를 사용합니다.


관계 속성 


속성은 엔터티에 고유하지 않습니다. 관계도 속성을 가질 수 있습니다.


라이브러리를 모델링해야 합니다. 우리는 이제 책과 저자 실체 외에 책을 빌려 책을 읽는 독자 실체를 소개합니다. 우리는 이름과 ID 카드 번호를 빌릴 때 사용합니다.


relation without attribute 


그러나 여전히 정보가 누락되었습니다. 우리는 언제 책을 빌렸는지, 그리고 그것을 반환 한 날짜를 알아야 합니다. 그래서 우리는 특정 책의 모든 역사에 관한 정보를 도서관에 저장할 수 있습니다. 이 정보는 책 또는 독자 엔티티에 속하지 않습니다. 그것은 관계에 속합니다 :


relation attributes 


Weak entities 


위의 기본 키와 엔티티를 고유하게 식별하는 방법에 대해 이야기했습니다.


일부 엔터티는 다른 엔터티에 의존하여 약한 엔터티라고 합니다.


온라인 상점에 대한 주문을 모델링 해야 한다고 가정하십시오.


각 주문에 대해 1부터 시작하여 시간이 지남에 따라 증가하는 주문 ID, 주문 날짜 및 시간, 고객에 대한 정보를 저장하므로 청구 대상과 배송 위치를 알 수 있습니다.


그런 다음 주문한 내용도 알아야 합니다. 결제 할 때 장바구니의 각 항목을 나타내는 약한 항목 "주문 품목"을 만듭니다.


weak entity 


이 엔티티는 결제 시점에 품목 가격을 저장합니다 (따라서 판매중인 제품의 가격을 변경할 때 이미 주문한 주문에 영향을 미치지 않음), 주문한 품목의 수량 및 선택한 옵션. 티셔츠를 판매한다고 가정하면 주문한 티셔츠의 색상과 크기를 저장해야 합니다.


주문 항목 엔터티는 주문 엔터티 없이 존재할 수 없기 때문에 약한 엔터티입니다.


Recursive relations 


엔티티는 자신과 재귀 관계를 가질 수 있습니다. 개인 엔티티가 있다고 가정하십시오. 이런 방식으로 부모-자식 관계를 모델링 할 수 있습니다.


recursive relation 


사람은 0에서 n까지의 어린이를 가질 수 있으며, 어린이에게는 2 명의 부모가 있습니다 (가장 간단한 시나리오를 고려할 때).


ISA relations 


ISA는 IS-A의 약자이며 ER 모델에서 일반화를 모델링 하는 방법입니다.


공통 우산 아래에서 유사한 엔티티를 그룹화 하는 데 사용합니다. 예를 들어, 책과 도서관 예제의 경우 저자와 독자는 개인 엔티티를 사용하여 일반화 할 수 있습니다.


둘 다 이름이 있으므로 개인 엔티티까지 이름을 추출하고 해당 엔티티에서 저자 또는 독자의 특성을 관리합니다.

isa relation 


Non-binary relations 


모든 관계가 엄격하게 이진 인 것은 아닙니다. 수업 시나리오를 봅시다.


수업은 오늘 오전 10시에 학교 교실에서 진행되며 교사와 물리 수업에 대해 이야기합니다.


따라서 수업은 하루 중 특정 시간에 이루어지며 주제, 교사, 수업 및 방이 포함됩니다.


다음과 같이 모델링 할 수 있습니다.


non-binary relation 



  • 트위터로 보내기
  • 페이스북으로 보내기
  • 구글플러스로 보내기
  • 카카오톡으로 보내기

페이지 정보

조회 23회 ]  작성일19-12-25 10:50

웹학교