데이터베이스 3

정규화의 종류

데이터베이스 개론 2판 내용을 참고하여 작성하였습니다. 지난 글에서 데이터베이스 정규화와 정규화가가 필요한 이유에 대해 알아보았습니다. 정규형 간의 관계를 그림으로 표현하면 다음과 같습니다. 정규형 중 가장 바깥쪽에 위치하는 제1정규형부터 알아보겠습니다. 제1정규형 (1NF, First Normal Form) 릴레이션에 속한 모든 속성의 도메인이 원자 값(atomic value)으로만 구성되어 있는 것 릴레이션이 제1정규형에 속하려면 릴레이션에 속한 모든 속성이 더는 분해되지 않는 원자 값만 가져야 합니다. 이벤트 참여 릴레이션에서 이벤트 번호 속성과 당첨 여부 속성은 하나의 고객 아이디에 해당하는 값이 여러 개입니다. 한 명의 고객이 여러 이벤트에 참여할 수 있어 이벤트 번호와 당첨 여부와 같이 다중 ..

데이터베이스 2022.11.04

정규화와 정규화가 필요한 이유

데이터베이스 개론 2판 내용을 참고하여 작성하였습니다. 정규화 관련 없는 속성을 하나의 릴레이션에 모아두면 문제가 발생할 수 있습니다. 데이터베이스에서 싫어하는 데이터 중복이 많이 나타나고, 예기치 못한 일들이 발생할 수 있습니다. 싫어하는 음식을 먹지 않는 것처럼 릴레이션에 관련 없는 속성이 들어가지 않게 하고, 친한 속성끼리 릴레이션을 구성해주면 됩니다. 속성들의 친밀도를 판단하고, 이 기준에 따라 릴레이션을 구성하는 방법이 정규화입니다. 또한 데이터베이스를 설계한 후 설계 결과물을 검증하기 위해 사용하기도 합니다. 데이터베이스를 잘못 설계하면 불필요한 데이터 중복이 발생하여 릴레이션에 대한 데이터의 삽입, 수정, 삭제 연산을 수행할 때 부작용이 발생할 수 있습니다. 이러한 부작용을 이상(anomal..

데이터베이스 2022.11.02

트랜잭션(Transaction)이란

트랜잭션(Transaction)이란 트랜잭션은 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업 단위이다. 데이터베이스의 상태를 변화시킨다는 건 SQL 질의어를 이용하여 데이터베이스에 접근하는 것을 의미한다. SELECT INSERT DELETE UPDATE 트랜잭션에는 여러 개의 연산이 수행될 수 있다. 하나의 논리적인 작업 단위라고해서 하나의 연산만이 수행되어야하는 건 아니다. 작업 단위는 많은 질의어 명령문을 사람이 정하는 기준에 따라 정하는 것을 의미한다. 예로 게시글을 작성하고 등록 버튼을 누른다. 그 후 게시판을 보면 방금 작성한 글을 포함한 게시판을 보게 된다. 데이터베이스 작업으로 보자면 INSERT 문을 이용하여 작성한 게시글을 데이터베이스에 등록한다. 그런 후에 게시판의 게시글을 보..

데이터베이스 2022.07.24