Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 패킷
- linux dump
- linux 데이터베이스
- 키보드단축기
- Java
- fullcalenda 캘린더
- fullcalenda
- fullcalenda 일정추가
- linux db설치
- fullcalenda 사용법
- fullcalenda 등록
- red hat java설치
- red hat mysql
- fullcalenda 일정
- red hat db
- fullcalenda 수정
- fullcalenda 추가
- 정규표현식
- red hat linux mysql
- linux mysql설치
- Linux
- fullcalenda 일정수정
- IP
- select
- 키보드명령어
- linux dump하는법
- NULL
- Java정규표현식
- linux java설치
- TCP
Archives
- Today
- Total
어느 비전공자의 개발일지
[SQL] 정규화,비정규화,트랜잭션,NULL 본문
정규화
- 데이터 정합성을 위해 엔티티를 작은 단위로 분리하는 과정
제1 정규형
-> 모든 속성은 반드시 하나의 값만 존재
-> 속성이 복수인 경우 1차 정규화의 대상
제2 정규형
-> 엔티티의 모든 일반 속성은 반드시 모든 주식별자에 종속
제3 정규형
-> 주식별자가 아닌 모든 속성 간에는 서로 종속될 수 없음
반정규화
- 데이터 조회 성능 향상을위해 데이터의 중복을 허용하거나 데이터를 그룹핑하는 과정
-> 쿼리성능 향상은 기대할 수 있으나, 입력수정삭제등 데이터 핸들링의 성능은 저하 될 수 있음
-> 정합성 이슈 발생 가능성
테이블 반정규화
테이블 병합
-> 조인이 필요한 경우가 많고 테이블을 통합하는 게 이로울때 검토
-> 1:1 , 1:M , 슈퍼 서브 타입
테이블 분할
-> 테이블 수직 분할 : 엔티티의 일부 속성을 별도 엔티티로 분할 (1:1관계)
-> 테이블 수평 분할 : 엔티티의 인스턴스를 특정 기준으로 별도의 엔티티로 분할(파티셔닝)
테이블 추가
-> 중복 , 통계, 이력, 부분 테이블 추가
컬럼 반정규화
-> 중복,파생,이력테이블 컬럼추가
관계 반정규화
-> 조인이 필요한 경우가 많아 중복 관계를 추가하는게 이로울때 검토
트랜잭션
-> 데이터를 조작하기 위한 하나의 논리적인 작업 단위
NULL
-> 존재하지 않음, 값이 '없다' 0과 다르다
반응형
'백엔드 개발자 > DB' 카테고리의 다른 글
DB 스키마(Schema) 3종 외개내(외부,개념,내부) (0) | 2023.07.25 |
---|---|
sql_mode=only_full_group_by 에러 / 해결 (0) | 2023.05.26 |
SELECT구문 수행 순서 (0) | 2023.05.12 |
테이블에 왜 primary key를 설정하는가? (0) | 2023.05.11 |
index란? 장점단점? 종류 (0) | 2023.05.10 |