안녕하세요. SQLER의 코난 김대우입니다. 
이번 강좌에서는, 6-9. 데이터 무결성 - 데이터 무결성 주의사항을 진행 하겠습니다.


SQLER에서 진행되는, 챗GPT와 함께 배우는 SQL Server 강좌 목록

 

이번에 진행할 강좌는 데이터 무결성 참고사항입니다.

 

 

 

TL;DR

데이터 무결성과 시스템 부하, 기본 키와 외래 키 제약의 중요성, 체크 제약과 규칙의 활용, NULL 값과 기본값 사용에 대한 팁, 트리거의 사용 여부와 문제점 등을 다룹니다. 특히 트리거는 제한적으로 사용하며, 모듈화를 위해 저장 프로시저 사용을 권장합니다.


 

데이터 무결성과 시스템 부하

79-1 데이터 무결성 종류와 부하.gif

이미지 - 데이터 무결성 종류와 시스템 부하

 

트리거를 제외하고는 부하가 거의 없다고 보셔도 됩니다. 선형적인 증가라기보다는 트리거만 트랜잭션으로 처리되기에 차원이 다르게 부하가 높습니다. 

 

 

기본 키(Primary Key)와 외래 키(Foreign Key) 제약은 거의 모든 테이블에서 사용

참조 무결성의 핵심인 기본 키와 외래 키 조합은 실무에서 거의 모든 테이블에 적용되어 사용될 정도로 중요한 데이터 무결성을 보장하는 데이터베이스의 핵심 기능입니다. 아직 외래 키 사용과 JOIN 구문 사용이 익숙하지 않다면, 천천히 연습을 많이 하시길 바랍니다.

 

 

체크(CHECK) 제약과 규칙(RULE)은 애플리케이션에서 주로 수행합니다.

도메인 무결성을 제공하는 체크 제약과 규칙 모두 입력되는 값을 제한하는 훌륭한 기능입니다. 일반적으로 이런 입력값 제약은 대부분 애플리케이션 측에서 수행합니다. 애플리케이션의 프로그래밍 언어에서 제공하는 여러 기능이 이러한 입력 값 검사를 더 쉽고 간편하게 수행할 수 있기 때문입니다. 예를 들어, 웹 애플리케이션이라면, 웹서버에서 입력값을 검사하고 검사 완료된 값을 데이터베이스로 보내는 패턴이 더 효율적입니다. 만약, 레거시 클라이언트/서버 스타일 애플리케이션이라면 당연히 SQL Server에서도 검사를 해야 합니다.


☑️ 챗GPT 활용: 레거시 클라이언트/서버 아키텍처에 대해서 알려줘

 

 

NULL값 입력을 허용하지 말고 기본값(DEFAULT)을 사용하세요

기본값을 이용해 가능한 NULL 값을 받지 않는 게 좋습니다. NULL 값 비교는 일반 데이터형과 다르게 처리됩니다. WHERE 절에서 “IS NULL”로 비교하거나,  ISNULL() 함수, COALESCE() 함수를 따로 사용하여 복잡도가 높고, 동적 SQL 구문 적용이 어려워집니다. 테이블 디자인 시 항상 NOT NULL로 구성하고, 특수한 케이스가 아니라면 NULL을 허용하지 않고, 기본값을 적극 활용하세요.
 

 

SQL 강좌 책 구매

강좌가 도움이 되셨다면, 책으로 구매 가능합니다. 책 판매 수익금은 전액 코딩 교육 사회공헌 활동에 기부되며, 아래 링크에서 구매하시면 더 많은 금액이 기부됩니다. 

 

책구매 링크: 챗GPT와 함께하는 마이크로소프트 SQL Server 2022 

책구매링크.png

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 23759
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 12435
2274 SQL강좌: 8-3. 저장 프로시저 - 매개변수(파라미터) 코난(김대우) 2023.08.18 55
2273 SQL강좌: 8-2. 저장 프로시저 - 생성과 실행 코난(김대우) 2023.08.18 49
2272 SQL강좌: 8-1. 저장 프로시저(Stored Procedure) - 소개 코난(김대우) 2023.08.18 60
2271 SQL강좌: 7-10. 실무에서 뷰 사용 코난(김대우) 2023.08.18 35
2270 SQL강좌: 7-9. 인덱싱된 뷰(Indexed View) file 코난(김대우) 2023.08.18 39
2269 SQL강좌: 7-8. 분할 뷰(Partitioned View) file 코난(김대우) 2023.08.18 30
2268 SQL강좌: 7-7. 뷰에서 데이터 수정 코난(김대우) 2023.08.18 30
2267 SQL강좌: 7-6. 뷰에서 뷰 생성 코난(김대우) 2023.08.18 30
2266 SQL강좌: 7-5. 뷰 옵션 코난(김대우) 2023.08.18 22
2265 SQL강좌: 7-4. 뷰 삭제 코난(김대우) 2023.08.18 15
2264 SQL강좌: 7-3. 뷰 수정 코난(김대우) 2023.08.18 33
2263 SQL강좌: 7-2. 뷰 생성 file 코난(김대우) 2023.08.18 33
2262 SQL강좌: 7-1. 뷰(VIEW) 소개 코난(김대우) 2023.08.18 48
» SQL강좌: 6-9. 데이터 무결성 - 데이터 무결성 주의사항 file 코난(김대우) 2023.08.18 43
2260 SQL강좌: 6-8. 데이터 무결성 - 트리거(TRIGGER) file 코난(김대우) 2023.08.18 71
2259 SQL강좌: 6-7. 데이터 무결성 - 사용자 정의 형식(User-Defined Type - UDT) 코난(김대우) 2023.08.18 31
2258 SQL강좌: 6-6. 데이터 무결성 - 기본값(DEFAULT) file 코난(김대우) 2023.08.18 20
2257 SQL강좌: 6-5. 데이터 무결성 - 규칙(RULE) 코난(김대우) 2023.08.18 32
2256 SQL강좌: 6-4. 데이터 무결성 - 체크 제약(CHECK Constraint) file 코난(김대우) 2023.08.18 38
2255 SQL강좌: 6-3. 데이터 무결성 - 기본 키(Primary Key) 제약, UNIQUE 제약, 외래 키(Foreign Key) 제약 file 코난(김대우) 2023.08.18 58





XE Login