April 07, 2020
Anomaly는 데이터베이스를 안에서 발생하게되는 이상 현상을 의미한다. Anomaly가 데이터베이스에 존재하면 그 데이터베이스는 위험요소가 존재하게 된다. Anomaly 의 종류와 그 위험성은 다음과 같다.
Student_id | Student_name | department | course_id | grade |
---|---|---|---|---|
1 | 여훈 | 전전 | 1 | A+ |
1 | 여훈 | 전전 | 2 | A+ |
1 | 여훈 | 전전 | 3 | A+ |
2 | 윤이 | 상사 | 3 | A+ |
Student_id | Student_name | department | course_id | grade |
---|---|---|---|---|
1 | 여훈 | 전전 | 1 | A+ |
1 | 여훈 | 전전 | 2 | A+ |
1 | 여훈 | 전전 | 3 | A+ |
2 | 윤이 | 상사 | 3 | A+ |
3 | 현기 | null | null | null |
Student_id | Student_name | department | course_id | grade |
---|---|---|---|---|
1 | 여훈 | 전전 ? | 1 | A+ |
1 | 여훈 | 상사 ? | 2 | A+ |
1 | 여훈 | 전전 ? | 3 | A+ |
2 | 윤이 | 상사 | 3 | A+ |
3 | 현기 | null | null | null |
한글로는 함수적 종속석이라고 한다. 어떤 X가 Y를 함수적으로 결정할 때, 우리는 X를 결정자, Y를 종속자 라고 할 수 있고, 수학적 표기로는 X -> Y 라고 나타낼 수 있다. 수학적인 개념으로는 조금 헷갈리니 디비 테이블로 확인해보자.
Student_id | Student_name | department | course_id | grade |
---|---|---|---|---|
1 | 여훈 | 전전 ? | 1 | A+ |
1 | 여훈 | 상사 ? | 2 | A+ |
1 | 여훈 | 전전 ? | 3 | A+ |
2 | 윤이 | 상사 | 3 | A+ |
위에서 사용했던 테이블을 그대로 가져왔다. 어떤 attribute의 집합 X가 특정한 tuple 을 식별하게 한다면, 함수적 종속성 관계에 있다고 할 수 있을 것이다. 이 테이블에서는 우리가 Studentname, courseid 만 알고있다면, 다른 나머지 정보들을 하나로 특정할 수 있다. 그리고 학번을 알면 학생의 이름도 특정할 수 있다. 따라서 위 테이블을 다음과 같은 관계들을 가지고 있다고 할 수 있다.
위 처럼 함수적 종속성은 한 테이블 안에서도 여러개 발견될 수 있다.
부분 함수적 종속성은 함수적 종속성을 만드는 attribute의 지합 중에 일부에 함수적 종속성을 가지는 것을 의미한다. 위에서 사용한 예시를 보면 Studentname 은 두 attribute의 집합인 (Studentid, courseid) 에 종속되지만 동시에, 해당 집합에서 Studentid attribute 에 대해서도 종속되는 관계를 가진다. 즉 2번과 4번경우가 동시에 발생한다는 것이다. 이렇게 결정자의 일부에도 종속자가 되는 관계를 Partial Functional Dependency 라고 한다.