[포스코x코딩온] 스마트팩토리 입문과정 | 데이터베이스 | 데이터모델링_ER-Model

김영웅·2023년 2월 28일
0
post-thumbnail

[데이터 모델링]

• 건축으로 비유하면 지반 설계를 하는 일
• 복잡한 현실 세계 데이터를 단순화하여 데이터베이스로 표현하기 위한 작업

• 추상화 : 현실세계를 일정한 형식에 맞춰 간략하게 표현
• 단순화 : 누구나 쉽게 이해할 수 있도록 제한된 표기법이나 언어를 사용
• 명확화 : 명확하게 의미가 해석되어야 하고, 한 가지 의미만을 가져야 함

[데이터 모델링 종류/단계]

  1. 개념적 데이터 모델링 / (=정보 모델링) : 전체적인 뼈대를 만듦 (개체들간 관계를 정의해서 ER 다이어그램 만드는 과정)
  2. 논리적 데이터 모델링: 정규화 작업 (데이터 중복을 최소화 하는 작업)
  3. 물리적 데이터 모델링: 물리적 구조를 정의 -> 실제 데이터베이스 작업

-> 정보모델링(개념적 데이터 모델링)에서 ER다이어그램을 만듬
-> ER다이어그램을 보고 정규화 작업
-> 실제 데이터 베이스 작업

[ER Model]

• 데이터 모델링 과정 중 개념적 모델링에 사용하는 모델
• 1976년 Peter Chen이 개발
• 요구사항으로부터 얻어낸 정보를 개체(Entity), 속성(Attribute), 관계(Relation)으로 기술하는 모델

[ER Model 구성 요소]

• 개체(Entity) : 단독으로 존재하는 객체
• 속성(Attribute) : 개체의 특성을 나타내는 속성
• 관계(Relation) : 개체간 관계

- 개체(entity)

관계형 데이터베이스에서 개체(entity)는 표현하려는 유형, 무형의 실체로써 서로 구별되는 것을 의미한다. 하나의 개체는 하나 이상의 속성(attribute)으로 구성되고 각 속성은 그 개체의 특성이나 상태를 설명한다.

출처 - 객체(object)와 개체(entity)에 관한 이야기 (한빛출판네트워크)
[https://m.hanbit.co.kr/network/category/category_view.html?cms_code=CMS4926333301]

[개체 타입 (Entity Type)]

• Entity Type을 ER 다이어그램으로 나타낼 때 직사각형 사용

[개체 (Entity) 이름 규칙]

• 단순 명사를 사용
• 구체적일 것
• 간결해야 함
• 유일해야 함 (하나의 ER Model에 같은 이름의 Entity Type이 존재할 수 없음

[관계 (Relation)]

• 개체 사이의 연관성을 나타냄
ex. “학생”이 “교수”의 수업을 수강한다
“학생”과 “교수”라는 개체 타입이 “수강한다”라는 개념으로 연결됨
• 관계 타입 (Relation Type): 개체 타입 간의 관계를 정의

[관계 타입 (Relation Type)]

• Relation Type을 ER 다이어그램으로 나타낼 때 마름모 사용
• Relation Type은 관계를 나타내므로 문장 정의할 때 동사를 의미

[속성 (Attribute)]

• 개체가 갖는 성질
Entity Type = 학생
Attribute = 이름, 학번, 전공 등

• Attribute를 ER 다이어그램으로 나타낼 때 타원 사용
• Entity Type (직사각형)과 실선으로 연결

• 단순 속성 (Simple Attribute): 더 이상 나눌 수 없는 속성
• 복합 속성 (Composite Attribute): 독립적인 의미를 갖도록 나눌 수 있는 속성

• 단일값 속성 (Singled-valued Attribute): 한 값만 갖는 속성
• 다중값 속성 (Multi-valued Attribute): 여러 값을 갖는 속성
• 타원 2개 사용

• 실습. 요구사항으로부터 ER Model 추출하기

[ER Model 제약조건]★

• 여러 속성(Attribute)의 집합으로 표현된 개체(Entity) 간 관계(Relation)를 관계성으로 표현.
• 두 가지 제약조건을 통해 표현됨.

  1. 카디널리티 제약조건 (Cardinality Constraint)

    • 하나의 Entity와 관계를 맺을 수 있는 Entity 개수

    [관계 대응 수(Cardinality)]
    • 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수

[Cardinality Constraint – 1:1 관계]

• 일대일 관계 (one to one relationship)
• 각 개체들은 1:1로 대응되는 관계
ex. 하나의 학원이 하나의 사무실만 사용할 수 있음

[Cardinality Constraint – 1:N, N:1 관계]

• 일대다, 다대일 관계 (one to many, many to one relationship)
• 한 개체가 여러 개의 개체와 관계를 맺을 수 있으나, 역은 성립되지 않음
• 일상생활에서 가장 많이 볼 수 있는 관계
ex. 한 팀에 여러 명의 플레이어가 소속될 수 있으나, 한 플레이어는 한 팀에만 소속되어 있어야 함

[Cardinality Constraint – N:M 관계]

• 다대다 관계 (many to many relationship)
• 한 개체가 여러 개의 개체를 가질 수도 있고, 그 역도 성립
• ex. 한 학생이 여러 개의 프로젝트 참여할 수 있고, 한 프로젝트는 여러 명의 학생이 진행할 수 있음

• 실습. 일대일, 일대다, 다대다 관계 예시 찾기
[조건]
1. 최소 3개씩 찾을 것
2. ER 다이어그램으로 그릴 것


  1. 참여 제약조건 (Participation Constraint)
    • 참여 제약조건
    • 관계를 맺는 두 개체 중 한 개체가 다른 하나의 개체에 의존하는 지를 표현하는 제약조건
    • 쉽게 말하면 한 Entity가 다른 Entity에 필수로 포함되어야 하는 가에 대한 것

    [ Participation Constraint 예시]
    • 회사에 한 부서가 있을 때, 이 부서에는 직원이 존재하지 않을 수도 있음
    • 하지만, 직원은 어느 부서든 무조건 포함이 되어야 함

[전체 참여 (Total Participation)]
• 하나 또는 그 이상이 참여하는 형태
• 이 형태를 가지는 경우 한 개체는 다른 개체를 반드시 관계를 맺음

[부분 참여 (Partial Participation)]
• 선택적으로 참여하는 형태
• 관계를 맺을 수도, 아닐 수도 있는 형태

• 실습. 요구사항으로부터 ER Model 추출하기

0개의 댓글