[ERD] 생활코딩의 ERD 작성하기

Yungsang Hwang·2022년 7월 11일
1

생활코딩 ERD

특강내용


🚩 1강

  1. 모델이란 ?
    • 어떤 목적을 가지고 진짜를 모방한 것
  2. 좋은 모델이란?
    • 목적에 부합하는 모방
  3. 데이터 모델링
    • 컴퓨터에 현실의 정보를 표에 담는 것

🚩 2강

  1. 주요 순서
    • 업무파악 → 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
  2. 실제 코딩에서도!
    • 문제파악 → 사용할 메서드, 로직 생각하기 → 의사코드 작성하기 → 코딩

🚩 3강

  1. 말의 진의는 파악하되 말의 기능을 불신하라 (휘발됨, 바뀜)
    • 즉 상대방과 목적을 동기화하라 (문서)
  2. 같이 UI를 작성하라
    • 관계형 데이터베이스를 생성하는데 도움이 된다!

🚩4강

  • 오븐앱 : https://ovenapp.io/ (카카오에서 만든 프로토타이핑(UI) 툴)
  • UI를 함께 작성하는 것으로 커뮤니케이션을 능동적으로 수행하자!
  • 꼭 UI는 웹 어플리케이션이 아니더라도!(우리 그림판으로 하고 있음)
  • 프로토타입을 함께 만들면서 목적을 획일화함

🚩5강

  • 개념적 데이터 모델링은 관계형 데이터모델링의 극체
  • 개념적 데이터 모델링을 수행하기 위해서는 모든 프로세스를 경험해 봤어야 한다
  • 개념적 데이터 모델링이 완수된다면, 이 후의 작업은 기계적으로 작업이 가능하다!
  • 그걸 할 수 있도록 하는 것이 바로 ERD(Entity Relationship Diagram)

🚩6강

  • UI를 통해서 개념적 데이터 모델링을 수행할 때, 각각의 데이터는 어떠한 형태를 가지는 것이 표로 만들기에 편하고, 또 효율적인가?
  • 그것은 데이터를 각각 독자적인 개체로 보고 나눈 뒤 관계를 파악하는 것이 좋은 방법이다!
  • 관계형 데이터베이스는 각 개체 간의 내포관계를 허용하지 않는다
  • 관계형 데이터베이스는 메모리를 줄이기 위해 단일 테이블로 보여주지 않는다

🚩7강

  • 개념적 데이터 모델에서 글쓰기 웹페이지(포괄적 의미에서 모델)를 예시로, 정보를 뽑아낸다면
    • 댓글
    • 저자
  • 의 세 가지의 큰 정보들을 뽑아내는데, 이것을 엔티티(Entity) 라고 한다
  • 엔티티는 그 안에서도 세부적인 정보를 가지고 있는데, 이것을 어트리뷰트(Attribute) 라고 한다

  • 각각 엔티티는 각자의 관계를 가지고 있는데, 저자가 글을-쓰다, 저자가 댓글을-쓰다 와 같이 엔티티는 관계로 연결되어 있다.


여기까지 0708

🚩8강

  • 데이터베이스와 UI가 서로 잘 융화해야 한다 → 건물의 지하(DB)부터 옥상(UI)까지
  • 기획자와 개발자는 적어도 ERD까지는 함께하는 것이 좋다!
  • 먼저 엔티티를 정한다
  • 그리고 ER 다이어그램을 연습장에 작성해본다
  • 글을쓰고, 댓글을쓰는 어플리케이션에서 엔티티는
    • 저자
    • 댓글
  • 이렇게 쓴다
  • 엔티티는 사각형!

🚩9강

  • 엔티티를 작성했다면, 각 엔티티 안에 들어있는 속성(Attribute)를 작성해서 연결!
    • 글을 작성할 때 필요한 요소인 <제목, 작성일, 본문> 등이 글이라는 엔티티의 어트리뷰트가 된다
  • ERD를 작성하는 사람과 개발을 하는 선수가 다르다면 이렇게 함께 도식화를 하면서 맞춰가는것이 중요하다

🚩10강

  • ER 다이어그램에서 식별자(Identifyer)를 필요로 한다!
  • 식별자는 각 엔티티의 레코드를 대표할 수 있는 고유한 값
  • 도시, 이름과 같은 값은 중복될 수 있으므로 식별자가 될 수 없다.
  • 이메일과 내셔널 아이디는 경우에 따라서 식별자가 될 수 있다
  • Auto Increment로 생성되는 유저아이디와 같은 값을 주로 기본키(PK)로 사용한다

  • ER 다이어그램에서 식별자는 밑줄을 그어 표시한다
  • 각 엔티티와 속성을 참조하여 식별자를 찾아내고, 없다면 PK를 하나 만들어 새로 작성하면 된다!
  • 세 개의 엔티티 모두 내부 속성 중에 대표할 수 있는 식별자가 없으므로 하나씩 고유 아이디를 만들어 식별자로 지정한 그림이 아래와 같음!
    • django 프레임워크의 경우 식별자를 지정하지 않고 작성하게 되면 Auto Increment로 자동 생성된다!

🚩11강

  • 엔티티와 속성을 작성하였다면, 각 엔티티 들의 관계를 작성한다

    • 관계는 마름모로 표현
  • 각 엔티티 간의 관계는 다음과 같다

    • 저자는 글을 작성한다
    • 저자는 댓글을 작성한다
    • 댓글은 글에 소속되어 있다
  • 외래키(FK) : 외래에 있는 테이블과 연결할 때 사용하는 키

🚩12강

  • 카디널리티(Cardinality)

    • Entity 간 관계에 있어서 항목들의 대응 형태
  • 일 대 일 (1 대 1)

    • ERD에서는 직선으로 표시

  • 일 대 다 (1 대 N)
    • ERD에서는 N에 해당되는 쪽에 새발으로 표시

  • 다 대 다 (N 대 M)
    • ERD에서는 양쪽 모두에 새발으로 표시

🚩13강

Cardinality : 1:1 1:N N:M

Optionality : Mandatory( | ) Optional( O )

🚩14강

  • 작성된 ER 다이어그램에서 추가로 카디널리티, 옵셔널리티를 작성하자
  1. 저자와 글의 관계
    • 여기서는 하나의 글의 여러 명의 작성자가 작성 및 수정이 가능하다
    • 하나의 글을 작성하려면 작성자는 반드시 필요하다(필수) → |
    • 작성자는 글을 작성할 수도, 안할 수도 있다(옵션) → O
    • 하나의 글에 저자는 한 명일 수도, 여러 명일 수도 있다(Many) → ψ
    • 한 명의 저자는 글을 한 개에서 여러 개를 작성할 수 있다(Many) → ψ
  2. 저자와 댓글의 관계
    • 댓글은 반드시 저자가 필요하다 (필수) → I
    • 한명의 저자는 댓글을 달 수도 있고, 달지 않을 수도 있으며 여러개를 작성할 수 도 있다 (옵션) → O∈
  3. 글과 댓글의 관계
    • 하나의 글에 댓글이 있을 수도 있고 없을 수도 있다(옵션) → O
    • 댓글을 작성하기 위해선 반드시 글이 필요하다(필수) → |
    • 하나의 글에 댓글이 없을 수도, 한개일수도, 여러 개일수도 있다(Many) → ∈
    • 하나의 댓글은 하나의 글에 소속된다(one)→ -

🚩15강

  • 소속관계 확인
  • 하지만 못들은 걸로해
  • http://erd.yah.ac/ (소속관계 확인)

🚩16강

🚩17강

profile
하루종일 몽상가

0개의 댓글