생활코딩 ERD
특강내용
🚩 1강
- 모델이란 ?
- 좋은 모델이란?
- 데이터 모델링
🚩 2강
- 주요 순서
- 업무파악 → 개념적 데이터 모델링 → 논리적 데이터 모델링 → 물리적 데이터 모델링
- 실제 코딩에서도!
- 문제파악 → 사용할 메서드, 로직 생각하기 → 의사코드 작성하기 → 코딩
🚩 3강
- 말의 진의는 파악하되 말의 기능을 불신하라 (휘발됨, 바뀜)
- 같이 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강
🚩12강
-
카디널리티(Cardinality)
- Entity 간 관계에 있어서 항목들의 대응 형태
-
일 대 일 (1 대 1)
- 일 대 다 (1 대 N)
- ERD에서는 N에 해당되는 쪽에 새발으로 표시
🚩13강
Cardinality : 1:1 1:N N:M
Optionality : Mandatory( | ) Optional( O )
🚩14강
- 작성된 ER 다이어그램에서 추가로 카디널리티, 옵셔널리티를 작성하자
- 저자와 글의 관계
- 여기서는 하나의 글의 여러 명의 작성자가 작성 및 수정이 가능하다
- 하나의 글을 작성하려면 작성자는 반드시 필요하다(
필수
) → |
- 작성자는 글을 작성할 수도, 안할 수도 있다(
옵션
) → O
- 하나의 글에 저자는 한 명일 수도, 여러 명일 수도 있다(
Many
) → ψ
- 한 명의 저자는 글을 한 개에서 여러 개를 작성할 수 있다(
Many
) → ψ
- 저자와 댓글의 관계
- 댓글은 반드시 저자가 필요하다 (
필수
) → I
- 한명의 저자는 댓글을 달 수도 있고, 달지 않을 수도 있으며 여러개를 작성할 수 도 있다 (
옵션
) → O∈
- 글과 댓글의 관계
- 하나의 글에 댓글이 있을 수도 있고 없을 수도 있다(
옵션
) → O
- 댓글을 작성하기 위해선 반드시 글이 필요하다(
필수
) → |
- 하나의 글에 댓글이 없을 수도, 한개일수도, 여러 개일수도 있다(
Many
) → ∈
- 하나의 댓글은 하나의 글에 소속된다(
one
)→ -
🚩15강
🚩16강
🚩17강