2025/02/11 2

SQL 정규화와 비정규화

정규화정규화란 데이터의 중복성을 제거하거나 줄이기 위해 크고 조직화 되지 않은 테이블들과 관계들을잘 조직된 테이블과 관계들로 나누는 과정이다.예시를 통해 이해해보자.위의 예시 데이터는 아래의 단점이 있다중복된 정보가 많아서 데이터가 비효율적으로 저장되어 있음중복된 정보 사이에 실수로 오류가 발생할 확률이 높음특정 구매 이력의 고유 값이 없어서 어떤 내역을 간단하게 특정 지을수 없음예시 데이터를 정규화 해보면위와 같이 3개 테이블로 나누어지고 각각의 테이블에 프라이머리 키 id값을 추가하게 된다.앞의 테이블보다 복잡해보이지만, 데이터의 중복이 최소화되어 있고, 더 적은 양의 데이터로 같은 내용을 저장한다.비정규화정규화의 반대로 데이터의 중복을 허용하여 테이블과 관계로 표현한다.정규화된 테이블은 정보가 여러..

SQL 2025.02.11

SQL 데이터 모델링

데이터베이스에서 하드웨어 개선 없이도 내부 구조나 기능을 활용하여 속도를 향상시키는 방법이 있는데,대표적인 방법이 데이터 모델링과 데이터 인덱싱이다. 그 중, 데이터 모델링을 살펴보자.인터넷 커뮤니티 사이트를 만든다고 가정해보자. 아래와 같은 조건이 필요할것이다.사용자는 이름과 생년월일, 그리고 점수를 가진다.게시판은 이름을 가진다.게시글은 사용자가 게시판에 작성 가능하고, 제목과 내용 조회수를 표시한다.조회수는 사용자당 1씩만 올릴 수 있고, 다시 게시글을 읽어도 조회수가 오르지 않는다각 상자는 테이블을 의미하고, 상자 안의 항목들은 테이블이 가지는 컬럼을 의미.각 테이블의 id 컬럼은 그 테이블의 프라이머리 키.게시글과 조회 테이블은 다른 테이블의 id값을 저장하여 서로 다른 테이블과 관계를 형성.게..

SQL 2025.02.11