info8995 님의 블로그

데이터 입출력 구현1 본문

TIL(Today I Learned)/정처기 실기

데이터 입출력 구현1

info8995 2025. 3. 24. 19:46

📌 릴레이션 용어

  • 튜플 (Tuple): 릴레이션의 한 행 (row)
  • 속성 / 애트리뷰트 (Attribute): 릴레이션의 열 (column)
  • 카디널리티 (Cardinality): 튜플(행)의 수
  • 디그리 (Degree): 속성(열)의 수

📌 무결성 제약조건의 종류

  1. 개체 무결성
    • 기본키의 속성은 NULL이거나 중복되면 안 됨
  2. 참조 무결성
    • 외래키는 NULL이거나 참조 릴레이션의 기본키 값과 일치해야 함
  3. 도메인 무결성
    • 속성 값은 정의된 도메인 내의 값이어야 함
  4. 사용자 정의 무결성
    • 사용자가 지정한 논리적 제약조건을 만족해야 함
  5. NULL 무결성
    • 특정 속성에 NULL 값이 올 수 없음

✅ 관계형 데이터 모델 관련 언어

  • 관계대수 (Relational Algebra)
    • 절차적 언어로, 원하는 정보를 어떻게 유도할지를 기술함
  • 관계해석 (Relational Calculus)
    • 비절차적 언어로, 원하는 정보를 무엇으로 표현할지를 기술

✅ 이상 현상 (Anomalies) & 함수적 종속

이상 (Anomalies)

릴레이션에서 데이터 중복으로 인해 생기는 문제들

  • 삽입 이상: 불필요한 정보까지 입력하지 않으면 삽입 불가
    ex) 학번+과목번호가 기본키인데 학번만 입력하고 싶을 때
  • 삭제 이상: 하나의 튜플 삭제로 인해 의도하지 않은 정보도 같이 삭제
  • 갱신 이상: 일부 튜플만 갱신되어 데이터 불일치 발생

✅ 정규화 (Normalization)


 

단계 설명
1NF 모든 속성이 원자값(Atomic Value)
2NF 1NF + 완전 함수적 종속 만족
3NF 2NF + 이행적 함수적 종속 제거
BCNF 모든 결정자가 후보키
4NF 다치 종속 제거
5NF 모든 조인 종속이 후보키를 통해 성립

💡 정규화 기억 암기법:

도부이결다조 (두부이걸 다 줘?)
→ 도메인 원자값 / 부분 종속 제거 / 이행 종속 제거 / 결정자 비후보키 제거 / 다치 종속 제거 / 조인 종속 해결


✅ 반정규화 (Denormalization)

  • 정규화된 데이터 모델을 일부 통합/중복/분리하여 성능 향상과 운영 편의성을 높임
  • 의도적으로 정규화 원칙을 위배함
    (읽기 성능 개선, 조회 속도 향상 목적)

 

※ 본 내용은 starrykss님의 Tistory 글을 참고하여 정리한 것입니다.

'TIL(Today I Learned) > 정처기 실기' 카테고리의 다른 글

정처기 실기 코딩문  (0) 2025.05.20
서버프로그램 구현2  (0) 2025.03.28
서버프로그램 구현  (0) 2025.03.27
정처기 통합구현  (0) 2025.03.26
데이터 입출력 구현2  (0) 2025.03.25