[HUFS/Database] 5. Entity-Relationship Model

박경민·2023년 5월 4일
0

[CS/Database]

목록 보기
10/16

Design Process

소프트웨어 개발 과정
요구사항 분석 > 디자인(설계) > 구현/개발 > 평가/검증 > 유지보수

데이터베이스 설계란?

  • 요구사항을 구체화하는 과정
  • 요구사항을 개념 스키마로 변환하는 작업
  • 개념 설계 과정

데이터베이스 설계 종류

  • Physical Design : 물리적 저장 구조
  • Logical Design : 논리적 구조, 관계, Entity-Relationship model

Entity-Relatioinsihp Model

  • 데이터베이스의 구성 요소
  1. 개체들의 집합
  2. 개체들의 관계
  • 개체란 다른 대상과 구분되는 대상: student

  • 개체는 고유한 속성을 지님(att가짐): student 의 name, ID

Relationship

  • 개체들 사이의 관계를 뜻함
  • 관계의 이름도 정의해야 함. customer - depositor relationship - account
  • 해당 관계도 att 가질 수 있음.

가운데 위치한 depositor 이 관계이고, 관계도 acess_date 라는 att 를 가지고 있는 것을 확인할 수 있다. 따라서 관계도 별도의 테이블로 만들어줘야 한다.

Degree of a Relationsihp

  • relationship 에 참여하는 개체의 수
  • 두 개의 개체가 참여할 때, degree = 2 이고, 이를 binary relationship 이라한다.
  • 일반적으로 대부분 binary 임.
  • 두 개 이상도 가능.

Att

공통적으로갖는 속성들

Domain: att 가 가질 수 있는 값의 집합
형태

  • simple and composite att: 하나의 단일 att 와 복합 att
  • single-valued and multi-valued: 단일 값(원자값) att와 복수개의 값 att
  • Derived: 유도 att. 다른 att 로부터 값을 유추할 수 있는 att를 뜻함. age는 date_of_birth 에서 유도 가능!

Composite Att

name 이란 하나의 att에 위와 같이 세개로 구분해서 테이블에 저장하는 것이다. (예약할 때 first, middle, last 로 구분하는 항공사의 데이터베이스) 오른쪽과 같이 한 칸 내려가서도 또 복합으로 구성 가능

Mapping Cardinality (관계수)

  • R에 참여하는 두 개체가 있을 때 (binary) 한 개체와 관련이 있는 상대 개체의 수.
    고객이 여러 개의 계좌를 소유할 수 있을 때, 고객과 계좌 간 mapping cardinality? 1 : n
    만약 하나의 고객이 하나의 계좌만 소유한다면 1:1

  • binary relationship 의 특성을 표현하는 중요한 정보

  • 한 명이 한 명의 지도 교수 1:1

  • 여러 명의 학생이 한 명의 지도교수 n:1

  • 한 학생이 여러 명의 지도교수, 한 교수는 한 명의 학생만 지도 1:n

  • 한 학생이 여러 명의 지도교수, 한 교수는 여러 명 지도 가능 n:n

Mapping Cardinalities

keys

super, candidate, primary key가 있다.

Keys for Relationship

binary relatinonship 각 개체의 기본 키의 조합은 relationship 의 수퍼키가 됨.
customer 의 기본키가 cusomer_name, account 는 account_number 일 때, 관계는 그 둘을 수퍼키로 함. acess_Date 등을 추가로 수퍼키로 할 수도 있음.

ER Diagrams

ER 모델의 결과물이 다이어그램이다.

직사각형은 entity, 다이아몬드는 relationship, 실선은 연결, 타원은 att. 이중타원은 multivalued, 점선타원은 derived att 를 말한다. att의 밑줄은 primary key 를 말한다.

Participation

entity 의 정보이다. 개체가 relationship 에 참여하는 특성을 말한다.

  1. 전체 참여
    double line, 모든 개체들이 relationship 에 참여하는 경우. 모든 loan 은 customer 가 있다.
  2. 부분 참여
    single line, 해당 relationship 에 참여하지 않는 개체가 있을 수 있는 경우. loan 이 없는 고객이 있을 수 있다!

Cardinality limit

.. 의 앞 뒤에숫자가 있다. 이 들어온다면 무한대의 값을 뜻한다. 0.. 은 0부터 무한대, 1..1 은 1, 1..10 은 1부터 10까지를 말한다.
한 고객이 5개의 계좌를 가질 수 있다면 0..5 이다.
1개를 강제로 가져야한다면 1..*
하나의 loan 개체를 소유하는 customer 이 1명이라면 1..1 이다.
두 명이 하나의 loan 을 공유할 수 있다면 1..2 이다.

HUFS student 1..1 advisor 1.. (한 명은 꼭 가지는 경우) 0.. (학생이 없는 교수도 있음) prof

부분참여인 경우 개체는는 0.. 으로 시작한다. 전체 참여인 경우 1.. 으로 시작.

Practice for ER

5.17

profile
Mathematics, Algorithm, and IDEA for AI research🦖

0개의 댓글