TIL day 16

어니언·2023년 2월 6일
0
post-thumbnail

오늘은 정규화에 대해서 학습했다.
백엔드 개발자는 데이터를 다루는 일이 매우중요하다, 중복되어 저장된 데이터들을 중복저장하지 않도록 분리하는 것을 데이터 정규화라고한다. 비정규화는 모든 데이터가 한테이블안에있고 그 테이블에는 중복된 여러 데이터들이 있다. 이런 상태에서 데이터를 수정 삭제할 경우 원하지 않았던 정보들이 수정되거나 소실할 수 있기때문에 이러한 사고를 미연에 방지하고자 정규화를 통해중복된 데이터들을 여러 테이블로 나누어 관리한다.

PK (Primary Key)란 주요키로 한 줄의 데이터를 구분할 수 있는 유일한 키이다.
FK (Foreigner Key)란 외래(참조)키로 다른테이블에서 값을 참조할 때 참조해오는 테이블의 PK를 말한다. 이참조기능을 통해서 기존에 한테이블에 모든 정보가담겨있어 하나의정보를 입력하였을때 그에 해당하는 데이터들이 다나오듯이, 어러테이블로 나뉘어져있어도 정보를 하나입력하면 그에맞는 정보들이 다나오도록 도와준다.
1:1관계
테이블을 연결시킬 때 두테이블간의 관계가 1:1로 맞아떨어질 때 쓴다.

1:N
테이블을 연결시킬 때 한쪽테이블은 여러가지를 가질수 있지만 한쪽테이블은 하나밖에 가지지못하는 경우에 사용한다.

N:M 각각의 테이블이 서로가 여러가지 태그를 가질수 있는 것을 말한다. 이럴 때에는 중간테이블을 만들어 각각 1:N관계랄 갖도록 하면

ERD클라우드에서 입력값에 대한 정보

- `KEY` :
    - `첫번째 KEY` : 우리가 사용하는 이름
    - `두번째 KEY` : 실제 데이터베이스에 사용되는 이름
- `Domain` : 역할
- `Type` : 해당 컬럼 데이터베이스 타입
    - `CHAR(100)` : 100글자까지 들어 갈 수 있는 칸이 존재하며 실제로 4글자만 작성하여도 100칸을 다 차지하고 있는데 나머지 96개의 칸은 빈칸으로 들어가 있게 됩니다. VARCHAR에 비해 비효율적이지만 속도는 빠릅니다.
    - `VARCHAR(100)` : 100글자까지 들어갈 수 있는 칸이 존재하며 실제로 4글자만 작성하게되면 4글자만 들어가게 됩니다. 저장을 효율적으로 할 수 있습니다.
    - `TEXT` : 무제한으로 text 입력이 가능한 타입입니다.
    - `INT` : 숫자
    - `DECIMAL(4, 1)` : 소수점이 들어가는 숫자로 4칸의 숫자를 입력받고 소숫점 1자리까지 사용한다는 의미입니다. (ex : 155.5)
    - `TINYINT(1)` : Boolean 타입으로 저장하더라도 데이터베이스에는 0(False), 1(True) 로 INT 타입으로 저장되기에 TINYINT를 사용합니다.
profile
안녕하세요.

0개의 댓글