| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- cs기술면접
- InteractiveServer
- spring spring boot 차이점 공통점
- Blazor Web App
- Redundant Array of Independent
- C#이론
- SPA MPA
- C# CS
- Blazor WebAssembly
- 컴퓨터과학
- OPC-UA
- jvm구성요소
- SPA MPA 차이
- c언어 정보처리기사
- 정보처리기사실기 기본개념
- SPA MPA 특징
- CS
- C# InteractiveServer
- 스프링 스프링부트 차이점 공통점
- nosql
- 기술면접
- 스프링부트 장점
- 스프링부트의 장단점
- 스프링부트 단점
- 프론트엔드
- Service Worker
- C# Blazor
- C# @rendermode
- REST API
- 서버저장방식
- Today
- Total
담비의 개발블로그
국비지원교육 49일차(10주차&DB-ERD, 정규형) 본문
sql배운 내용들을 복습하고 erd에 대해서 배웠다.
ERD의 기본구성이다.

ERDCloud
Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.
www.erdcloud.com
이 사이트에 들어가서 회원가입후 로그인을 진행하고
한개의 파일을 만든다.


휴지통 버튼을 사용하면 행이 사라진다

칸마다 입력하고 싶다면 더블클릭후 꼭 엔터를 눌러줘야한다.

메모를 입력하고 싶다면 저 표시를 사용하면 된다.

관계설정을 원하면 이중에 본인이 사용할걸 클릭후 연결해주면 된다.


관계설정을 하면 이렇게 작성된다. 관계 설정을 해줄 때 비-식별 관계를 클릭해주면 된다.
그리고 사원 테이블에 분홍색 키가 생성이 된다.
정규형
정규형(Normal Form)은 데이터베이스의 설계를 평가하고 개선하는 방법론 중 하나로, 데이터의 중복을 최소화하고 데이터의 무결성을 보장하기 위한 목표를 가진다는 점에서 중요하다.
정규형과 정규화는 다른 말이다. 정규형을 위해서 정규화를 하는 것이다. 정규화는 정규형을 위한 과정이다.
제1정규화(1NF): 모든 속성이 원자적인 값을 가져야 하며, 즉, 복합 속성, 다중값 속성, 중첩된 관계 등이 없어야 한다.
서브웨이라는 테이블이 있다고 하자.
서브웨이는 빵종류, 패티종류, 사이드, 야채 등등을 칼럼(속성)이라고 한다.
| 메뉴이름 | 빵종류 | 패티종류 | 사이드 | 야채 |
| 에그마요 | 1번빵, 2번빵,3번빵 | 미트볼, 닭가슴살, 베이컨, 에그 | 라즈베리칩쿠키, 치즈쿠키 | 양상추, 양파, 토마토 |
이 야채라는 칼럼 안에 양파, 토마토, 올리브 등등이 있는데 이런것들이 ","로 나누어지지 않고, 단 한개의 값을 가져야 한다는 말이다.
| 야채 | |
| 1 | 양상추 |
| 2 | 양파 |
| 3 | 토마토 |
제2정규화(2NF): 부분 종속성이 없어야 한다. 반복되서 적히는 모든 것을 다른 테이블로 관리한다.
예를 들어 '주문'이라는 테이블이 있다면 , 이 테이블의 속성이 '주문번호', '고객ID', '상품ID', '고객이름', '상품이름', '주문수량'으로 구성되어 있다고 한다. 이때 '주문번호'와 '상품ID'가 복합키라고 하면, '고객이름'은 '고객ID'에, '상품이름'은 '상품ID'에 각각 종속되므로 이 테이블은 제2정규형을 만족하지 않는다.
| 주문번호 | 고객ID | 상품ID | 고객이름 | 상품이름 | 주문수량 |
| 154 | user12 | sub1 | name1 | name_1 | 2 |
이를 제2정규형에 맞게 수정하려면, 부분 종속성을 제거해야 한다. '고객' 테이블('고객ID', '고객이름')과 '상품' 테이블('상품ID', '상품이름')을 따로 만들고, '주문' 테이블에서는 '주문번호', '고객ID', '상품ID', '주문수량'만을 남겨두는 것이다. 이렇게 하면 각 테이블이 제2정규형을 만족하게 된다.
고객테이블
| 고객 id | 고객이름 |
| user12 | name1 |
주문테이블
| 주문번호 | 고객ID | 상품ID | 주문수량 |
| 154 | user12 | sub1 | 2 |
번외)
부분 종속성이란, 복합키(두 개 이상의 속성으로 구성된 키)의 일부분에만 종속되는 속성의 존재이다. 즉, 테이블의 기본키가 복합키일 때, 그 복합키의 일부 속성에만 종속되는 속성이 있으면 그것을 부분 종속성이라고 한다. 예를 들어, 학생ID와 과목ID가 복합키인 테이블에서, 학생 이름이라는 속성이 학생ID에만 종속되어 있다면, 이는 부분 종속성을 가지고 있다고 볼 수 있다.
제3정규화(3NF): 제2정규형을 만족하면서, 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않아야 한다. 서로 연관이 없는 것을 다른 테이블로 관리한다.
'국비교육' 카테고리의 다른 글
| 국비지원교육 51일차(11주차&DB-ERD, git) (0) | 2024.01.24 |
|---|---|
| 국비지원교육 50일차(10주차&DB-ERD, 정규형) (0) | 2024.01.23 |
| 국비지원교육 48일차(10주차&DB) (0) | 2024.01.19 |
| 국비지원교육 47일차(10주차&DB) (0) | 2024.01.18 |
| 국비지원교육 46일차(10주차&DB) (0) | 2024.01.17 |
