03.14 학습! 데이터베이스 모델링 공부! 🟥🟧🟨🟩🟦🟪🟫⬜⬛🫢🔔😎😊🤔😭⭐
데이터의 논리적, 물리적 구조를 정의
🔔효율적인 데이터 저장과 관리가 목표!
😊필요성
데이터 무결성 유지, 중복 최소화, 효율적인 데이터 검색, 유지보수 용이성
😎과정
요구사항 수집 및 분석 (수집,정리,명세화)
개념적 데이터 모델링(개념 ERD)
논리적 데이터 모델링 (정규화 - 데이터 중복 최소화, 논리 ERD)
물리적 데이터 모델링 (DB에 적재될 수 있도록 역정규화)
데이터베이스 구축
각자 롤을 정해서 요구사항을 수집!
저장,관리 할 데이터의 구조, 관계, 제약 조건등을 명확히 정의
🤔비즈니스 규칙 도출 및 분석
ex) 회원제 시스템 -> 회원가입 후 서비스 이용 -> 로그인 기능 -> 로그인 실패시 어떻게? -> 5번까지만 시도가능 -> 실패하면 비번 초기화
😎산출물
요구 사항 명세서, 도메인 용어 사전
개체(엔티티), 속성, 관계 추출
개념 ERD
개체 ------ 객체 (속성 + 기능)
⭐ 영속성을 가짐!
명사형을 추출하는 방법으로 개체 식별 처리
명사형 = 엔티티의 후보, 속성의 후보 -> 도메인 용어 사전 중요!!🫢
유/무형에 따라
유형, 개념, 사건 엔티티
발생 시점에 따라
기본, 중심, 행위 엔티티
🔔 개체 식별
1. 명사로 된 단어 찾기
2. 비즈니스 분석 범위 내의 명사만 찾기
3. 같은 의미로 사용되면서 다르게 표현되는 단어는 버림
4. 여러 개의 속성으로 구성될 수 있는 지 체크
5. 집합을 표현하는 지 체크
개체 검증
CRUD Matrix 상관관계 분석

하나의 엔티티에 종속되는 명사적 단어
엔티티를 표현하는 특성, 상태
기본 속성: 본래의 속성
설계 속성: 인위적으로 추가, 변형한 속성 (회원 탈퇴에 내부적으로 플래그로 처리)
파생 속성: 다른 속성에서 파생되어 계산된 속성
키(Key) 속성 추출 (정규화에서 중요!! -> ⭐키속성과 함수적 종속⭐)
하나의 엔티티를 구성하는 속성 중 엔티티를 유일하게 식별하는 하나 이상의 속성 조합
슈퍼 키, 후보 키, 기본 키(pk 제약 조건), 대체 키(unique 제약조건), 인조 키

업무적 상관관계
관계 추출
1. 요구사항 분석에서 동사적 단어 추출
2. 두 엔티티 간의 중복되는 속성이 있는지 체크
관계 검증
Relationship Matrix

개념 ERD 작성 (피터 첸 표기법)

ER모델을 구체화된 업무 중심의 관계형 데이터 모델로 만듦
릴레이션 VS 릴레이션십
😎기본 키 정의
🫢N:M 관계 해소
관계를 릴레이션으로 도출해서 1:N으로 풀어냄
관계 릴레이션의 두
부모와 자식을 구분하는 건 유동적이다
개념상에는 식별관계지만 설계를 위해 비식별로 표현할 수 있다!
정규화
속성 간에 존재하는 함수적 종속성을 기반으로 정제하는 과정
😊비정규 릴레이션
-> 원자값이 아닌 도메인 분해 (다중 속성)
제 1정규형 릴레이션
-> 부분적 함수 종속 제거
제 2정규형 릴레이션
-> 이행적 함수 종속 제거
제 3정규형 릴레이션
-> 모든 결정자는 후보키여야 한다!!
BCNF 릴레이션
😎
관계형 데이터 모델 -> DBMS
릴레이션 -> 테이블
속성 -> 컬럼
기본키, 대체키, 외래키 -> 제약조건(PK, UNIQUE, FK)
🤔DBMS의 특성과 성능을 고려
(데이터 타입 및 크기, 인덱스, 파티셔닝, 저장 구조 등 결정)
😊역정규화
테이블을 병합하거나, 조회 속도를 높이기 위해 중복 데이터를 허용하는 작업 포함
쿼리 성능 최적화, 조인 비용 절감이 목적
링크드 리스트 직접 구현하기 무조건
그걸로 병사관리 코드 직접 짜기
코드 다 직접 한번씩 짜고 시험 잘 봅시다!