- 간단히 말하여
AWS에서 제공하는 관계형 데이터베이스를 제공하는 서비스입니다.- 내부에서
EC2가 작동하며, 패치 밒 백업과 같은 관리 작업을 자동화 해줍니다.
(EC2에 비해서 가격이 비싸다고 합니다.)
- 물론
EC2서버의docker위에mysql을 띄워서 사용해도 된다고 합니다.
H2, SQLite 데이터베이스 보다는mysql, oracle 등을 사용하게 됩니다 이유는 무엇일까요 ?많은 이유가 있겠지만 간단히 알아보겠습니다.
H2와SQLite는 확장성과 성능에서 확연히 떨어지며 튜닝하는 기능이 부족합니다.- 하지만 테스트용 으로는
H2와SQLite데이터베이스가 적합할수 있습니다.
mysql을 사용하는데 있어 시각적으로 도와줍니다.
- 아래의 사진처럼 클릭과 입력으로 SQL문을 자동으로 작성하고 보여줍니다.
( 동그라미 친 부분은 새로운 스키마를 생성하는 버튼입니다)
- 데이터베이스를 연결하면
SYS라는 스키마가 자동으로 생성되는데 해당 스키마는 사용 안하는것이 좋다 즉 새로운 스키마를 만들어야 된다는 말이다.- 이유로는 현업에서 DBA 직군 분들이 병목 현상등을 알아내기 위한 스키마라고 합니다.
관계형 데이터베이스에서 데이터의 구조를 설계하는 데 사용되는 원칙과 규칙의 모음입니다.
- 데이터베이스의 효율성, 일관성, 중복 데이터의 제거 등을 목표로 합니다.
➡ 학문적으로는 제6정규형까지 있지만, 실무에서는 제3정규형이 기준이라고 하며 제3정규형 까지만 포스팅 하겠습니다 !
제 1정규형이란 ?
🔎
문제점 : 수령방식이 택배인 경우만 찾고싶은경우 조건문을 복잡하게 작성해야함, 수령방식명 수정도 어려워짐
- 위와 같은 테이블이 있다고 가정할때 제 1정규형을 만족하지 못합니다.
- 마우스_A인 상품명이 수령방법이 2개의 데이터로 이루어져 있기 때문입니다.
- 테이블을 분리하여 제 1정규형을 만족합니다.
- 상품
id는 기본 테이블의id값을 사용합니다.
제 2정규형이란?
🔎
문제점 : 마우스_A의 옵션과 가격을 수정하고 싶은경우, 마우스_A의 컬럼을 다 찾아서 변경해줘야 됩니다.
- 아래의 테이블은 상품 등록 테이블 이며, 옵션과 가격을 보여줄려고 하는 테이블이 아닙니다. (관련없는 테이블)
- 상품 자체와 관련성이 떨어지는 테이블을 분리합니다.
제 3정규형이란?
🔎
문제점 : 제조사 M사가 미국이 아닌 일본으로 변경하게 된다면, M사의 컬럼을 다 찾아 제조사 국적을 수정해줘야합니다.
- 기본키가 아닌 일반 컬럼에 종속되어있는 컬럼을 따로 분리합니다.
https://rebro.kr/160
https://www.youtube.com/watch?v=Y1FbowQRcmI
정말 좋은 정보 감사합니다!