(데이터베이스) 스마트팩토리 - 28

내 이름 안찬찬·2023년 2월 28일
0
post-thumbnail

현실 세계에 있는 정보를 모델링하여 ER 다이어그램으로 표현하는 부분을 배워봅시다!
이미지 출처 - https://mangkyu.tistory.com/27


데이터 모델링


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

데이터 모델 종류( OR 단계 )

  1. 개념적 데이터 모델: = 정보 모델링
    -> 전체적인 뼈대를 만듦(개체간 관계를 정의해서 ER다이어그램 만드는 과정)

  2. 논리적 데이터 모델: 정규화 작업
    -> 데이터 중복을 최소화 하는 작업

  3. 물리적 데이터 모델: 물리적 구조를 정의
    -> 실제 데이터 베이스 작업


추상화

현실세계를 일정한 형식에 맞춰 간략하게 표현

단순화

누구나 쉽게 이해할 수 있도록 제한된 표기법이나 언어를 사용

명확화

명확하게 의미가 해석되어야 하고, 한 가지 의미만을 가져야 함


데이터 모델링 과정


  1. 요구사항 분석
  2. 개념적 데이터 모델 설계
  3. 논리적 데이터 모델 설계
  4. 물리적 데이터 모델 설계


ER Model


  • 요구사항으로부터 얻어낸 정보를 개체(Entity), 속성(Attribute), 관계(Relation)로 기술하는 모델

  • 데이터 모델링 과정 중 개념적 모델링에 사용하는 모델

개체(Entity)

단독으로 존재하는 객체

속성(Attribute)

개체의 특성을 나타내는 속성

관계(Relation)

개체간 관계


개체 (Entity)


  • 어떤 조직이 데이터를 저장하기 원하는 실생활에서의 대상(객체)
ex. 고객 정보 저장하는 경우 "홍길동","성춘향"이 Entity

개체 타입 (Entity Type)

  • Entity Type을 ER 다이어그램으로 나타낼 때 직사각형 사용
    -단순 명사를 사용
    -구체적일 것
    -간결해야 함
    -유일해야 함

관계 (Relation)


  • 개체 사이의 연관성을 나타냄
ex. "학생"이 "교수"의 수업을 수강한다
	학생과 교수라는 개체 타입이 "수강한다" 라는 개념으로 연결됨

관계 타입 (Relation Type)

  • 개체 타입 간의 관계를 정의
  • Relation Type을 ER다이어그램으로 나타낼 때 마름모 사용
    -문장 정의할 때 동사를 의미

속성 (Attribute)


  • Attribute를 ER 다이어그램으로 나타낼 때 타원 사용
  • Entity Type과 실선으로 연결
    -단순 명사 사용
    -하나의 Entitt Type에 같은 Attribute 불가능

키 속성 (Key Attribute)

  • 다른 객체들과 중복되지 않는 고유한 값을 갖음
  • 밑줄 표시

속성(Attribute)의 유형

  • 단순 속성 (Simple Attribute) : 더 이상 나눌 수 없는 속성
  • 복합 속성 (Composite Attribute) : 독립적인 의미를 갖도록 나눌 수 있는 속성
  • 단일값 속성 (Singled-valued Attribute): 한 값만 갖는 속성
  • 다중값 속성 (Multi-valued Attribute): 여러 값을 갖는 속성
    - 타원 2개 사용

실습

요구사항으로부터 ER Model 추출하기

요구사항 분석 보고서
 
이 User Requirements 는 A라는 도서회사의 것입니다.
A라는 도서회사는 고객의 정보로 이름, 전화번호, 고객ID, 주소를 저장합니다.
이때, 고객의 주소는 도시와 우편번호로 나누어집니다.

고객의 정보 중 고객ID는 다른 고객과의 차이를 식별할 수 있는 속성입니다.
고객은 책을 구매할 수 있습니다.
책은 고유값인 ISBN과 가격, 제목, 작가에 대한 정보를 갖고 있습니다.
이때, 작가는 여러 명이 될 수 있습니다.


ER Model 제약조건


  • ER Model은 여러 속성(Attribute)의 집합으로 표현된 개체(Entity) 간 관계(Relation)을 관계성으로 표현

  • 두 가지 제약조건을 통해 표현됨
    -1. 카디널리티 제약조건 (Cardinality Constraint)
    -2. 참여 제약조건 (Participation Constraint)


Cardinality Constraint

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

  • 1~N개의 Entity와 관계를 맺을 수 있는 Entity 1~M개의 개수
  • 일대일 관계 (One to one relationship)
각 개체들은 1:1로 대응되는 관계
  • 일대다, 다대일 관계 (One to many, many to one relationship)
한 개체가 여러 개의 개체와 관계를 맺을 수 있으나, 역은 성립 되지 않음

일상생활에서 가장 많이 볼 수 있는 관계
  • 다대다 관계 (Many to many relationship)
한 개체가 여러 개의 개체를 가질 수도 있고, 그 역도 성립


Participation Constraint


  • 관계를 맺는 두 개체 중 한 개체가 다른 하나의 개체에 의존하는 지를 표현하는 제약조건

  • 한 Entity가 다른 Entity에 필수로 포함되어야 하는가에 대한 것

ex. 직원은 부서에 무조건 소속되어 있어야 하지만 부서는 직원이 없어도 되는 관계

이 때, 
ER 다이어그램에서는 부서라는 개체는 Relation에 한 개의 실선으로 연결
이를 부분 참여 또는 Partial Participation 이라 함

또 부서에 무조건 소속되어 있어야 하는 직원은 ER 다이어그램에서 두 개의 실선으로 연결
이를 전체 참여 또는 Total Participation 이라 함



마무리

이번시간에 헷갈린게 두가지 정도 있는데,

첫 번째로
개념적 데이터 모델(ER 다이어그램)이랑 정보 모델링의 차이??
결론은 개념적 데이터 모델링을 정보 모델링이라고도 부른다.


두 번째는
제약조건중 카디널리티 제약조건의 내용인데,
여기서 말하는 카디널리티는 관계 대응 수 로 두 개체 타입의 관계에 실제로 참여하는 개별 개체 수 이고,
내가 알고있는 카디널리티는 튜플의 개수인 것이다!!

결론은
ER 모델에서 카디널리티는 Entity 간의 관계 대응 수를 나타내는 것이며,
데이터베이스에서는 데이터 테이블의 Tuple 개수를 나타내는 것이다.
우리나라에서 "배"가 뜻 하는게 경우에 따라 다른 것 처럼 비슷한 경우인 것 같다.

정보처리기사 공부할 채운 빵구 슝슝 뚫려있는 지식의 여백을 채우면서 공부하는 느낌이다.

어서 실습을 하고싶다! 이론은 역시 나랑 맞지않아..
그치만 이론을 알아야겠지..!?

오늘은 여기까지다~~끝!!

profile
스마트팩토리 개발자가 되기 위한 □□ !!

0개의 댓글