데이터 논리적 표현
릴레이션 스키마의 설계
= 논리적 데이터베이스 설계
- 애트리뷰트들과 이들의 제약조건 (종속성)을 수집
- 수집된 결과를 명시된 제약조건에 따라 바람직한 여러 개의 릴레이션으로 분할 ⇒ 스키마 변환
- 스키마 변환의 원리
- 정보 표현의 무손실
- 최소의 데이터 중복
- 분리의 원칙 : 독립된 관계성은 별도의 릴레이션으로 분리시켜 표현함
- 스키마 변환의 원리
관계 모델을 이용하여 어떻게 현실 세계를 표현할 것인가 (고려사항)
- 애트리뷰트, 엔티티, 관계성을 파악
- 관련된 애트리뷰트들을 릴레이션으로 묶어야함
- 애트리뷰트들 간의 관계성 (= 데이터 종속성) 고려하기
- 효율적인 데이터 처리가 가능하도록
- 데이터의 일관성
- 변칙적 성질의 예방
- 데이터 변경 시의 변칙(anomaly:이상)
이상 (anomaly)
- 삭제 이상
- 선택한 애트리뷰트를 삭제하게되면 해당 튜플 다 삭제 → 연쇄 삭제에 의한 정보 손실
- ex) 200번 학생이 과목 ‘c413’ 등록을 취소하면 3학년이라는 정보도 함께 삭제됨
- 삽입 이상
- 불필요한 정보를 함께 등록하지 않는 한 삽입이 불가능 (튜플 개수만큼의 정보를 삽입해야하는데 튜플의 일부만 등록? 불가능함) → 원하지 않는 정보의 강제 삽입
- ex) 600번 학생이 2학년이라는 사실을 삽입, 어떤 과목에 600번 학생을 추가할지 몰라서 불가능
- 갱신 이상
- 중복 데이터의 일부 갱신으로 정보의 모순성이 발생(데이터 불일치 발생)
- ex) 400번 학생의 학년을 4에서 3으로 변경 ⇒ 400번 학생이 포함된 모든 튜플의 정보를 바꿔줘야 이상 현상이 안 생김
이상의 원인
하나의 개체에 속한 애트리뷰트들 간에 존재하는 여러개의 종속관계를 하나의 릴레이션으로 표현하기 때문 ⇒ 종속 관계이기 때문에 이상 현상 발생
이상의 해결
애트리뷰트들 간의 종속 관계를 분해하여 각각 하나의 릴레이션으로 표현 ⇒ 정규화 과정
함수 종속(FD)
함수 종속의 정의
: 어떤 릴레이션 R에서, 애트리뷰트 X의 값 각각에 대해 애트리뷰트 Y의 값이 최대 하나만 연관될 때 Y는 X에 함수종속이라고 한다. X → Y (X : 결정자, Y : 종속자)
- X나 Y는 각각 두 개 이상의 애트리뷰트 집합이 될 수 있다.
- 릴레이션 R에서 애트리뷰트 X가 키이면, R의 모든 애트리뷰트 Y에 대해 X → Y 성립
- 함수종속 X → Y에서 X가 반드시 기본키(유일값)라는 것을 요건으로 하지 않음, 어느 한 값에 대응되는 Y값을 갖는 튜플이 둘 이상 존재 가능
함수 종속 다이어그램
완전 함수 종속
X' ⊂ X이고 X' → Y가 성립되는 애트리뷰트 X'가 존재하지 않는 경우를 말함
즉, X → Y 만 가능하다.
부분 함수 종속
X' ⊂ X이고 X' → Y가 성립되는 애트리뷰트 X'가 존재하는 경우를 말함
X → Y, X' → Y가 모두 가능하다.
즉,
"학년"은 "학번"에 완전 함수 종속
"성적"은 {학번, 과목번호}에 완전 함수 종속
"학년"은 {학번, 과목번호}에 부분 함수 종속
'📒 Computer Science' 카테고리의 다른 글
그래서 REST API가 뭔데?! (0) | 2024.03.20 |
---|---|
쿠키와 세션 그리고 캐시 (0) | 2024.03.20 |
overriding 🆚 overloading (0) | 2024.03.19 |
OOP란? (객체 지향 프로그래밍) (0) | 2024.03.19 |
[데이터베이스] 데이터 모델링 (0) | 2023.09.01 |