[SQLD] 1과목 - 2. 데이터 모델과 SQL
·
자격증 & 공부/SQLD
[ 1과목 - 2. 데이터 모델과 SQL ] * 정규화    - 데이터 정합성(데이터의 정확성과 일관성을 유지하고 보장)을 위해 Entity(이하 테이블)를 작은 단위로 분리하는 과정  * 정규화 장점    - 이상 현상 제거 및 방지    - 데이터베이스 구조 확장 시 재 디자인 최소화    - 데이터 입력/수정/삭제 성능 향상  * 정규화 단점    - Join 연산 증가    - 데이터 조회 성능 저하 (중복된 데이터를 제거함으로써 조회 성능을 향상시킬 수 있음)  * 이상 현상    - 삽입 이상 (Insertion Anomaly)       : 데이터 삽입 시 속성에 해당하는 값이 없어 Null을 입력해야 하는 현상    - 삭제 이상 (Deletion Anomaly)       : 데이터 삭제..
[데이터베이스] 정규화(Normalization)
·
CS 지식/[데이터베이스]
정규화 테이블 간 증복된 데이터를 허용하지 않는 것 중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있음 목적 데이터의 중복을 없애면서 불필요한 데이터를 최소화 시킴 무결성을 지키고, 이상 현상을 방지 테이블 구성을 논리적이고 직관적으로 할 수 있음 데이터베이스 구조 확장 용이 제 1정규화(1NF) 테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분리시키는 것 조건 - 어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있어야함 - 모든 속성에 반복되는 그룹이 나타나지 않음 - 기본키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 함 현재 테이블은 전화번호를 여러 개 가지고 있어 원자값이 아님 따라서 1NF에 맞추기 위해 아래와 ..
[데이터베이스] 이상(Anomaly)
·
CS 지식/[데이터베이스]
정규화를 해야하는 이유 → 잘못된 테이블 설계로 인해 이상 현상이 나타나기 때문 1. 삽입 이상 (Insertion Anomaly) 기본키가 {Student ID, Course ID} 인 경우 -> Course를 수강하지 않은 학생은 Course ID가 없는 현상이 발생함. 결국 Course ID를 Null로 할 수밖에 없는데, 기본키는 Null이 될 수 없으므로, Table에 추가될 수 없음 굳이 삽입하기 위해서는 '미수강'과 같은 Course ID를 만들어야 함 불필요한 데이터를 추가해야지, 삽입할 수 있는 상황 = Insertion Anomaly 2. 갱신 이상 (Update Anomaly) 만약 어떤 학생의 전공 (Department) 이 "컴퓨터에서 음악"으로 바뀌는 경우 모든 Departmen..