2012-10-21 13 views
5

Uczę się anomalii wstawiania od here. Poniższe dane są w nim napisane,Anomalia wprowadzania

Insert anomalii

wkładkę Anomaly występuje, gdy pewne atrybuty nie mogą być wprowadzone do bazy danych bez obecności innych atrybutów. Na przykład jest to przeciwieństwo usunięcia anomalii - nie możemy dodać nowego kursu, chyba że mamy przynajmniej jednego studenta zapisanego na kurs.

StudentNum CourseNum Student Name Address  Course 
S21   9201  Jones   Edinburgh Accounts 
S21   9267  Jones   Edinburgh Accounts 
S24   9267  Smith   Glasgow  physics 
S30   9201  Richards  Manchester Computing 
S30   9322  Richards  Manchester Maths 

Utknęłam w zrozumieniu koncepcji. Dlaczego potrzebujemy ucznia, który zostanie zapisany na kurs, aby go istniał?

góry dzięki

Odpowiedz

7

To oznacza, że ​​schemat nie jest znormalizowany, to znaczy teraz masz informacje na temat kursu w tabeli Student.

Aby wstawić szczegóły kursu, musisz podać również dane ucznia.

Istnieje different forms of normalization trzeba przeczytać, ale w tym przypadku właściwa droga do rozwiązania tego anomalia najprawdopodobniej byłoby utworzyć trzy tabele tj strong entity typesStudent, Course, i associative entity type linking tableStudentCourse (ewentualnie nazwać Registration lub Grade), które pozwolą Ci przechowywać dane Studenta i Kursu bez duplikatów i anomalii, a także przypisać wiele kursów wielu studentom.

można odczytać za pomocą przykładów normalizacji w poniższym linku, to daje lepszy pomysł:

http://www.sqa.org.uk/e-learning/MDBS01CD/page_26.htm#Example

3

W przykładzie przyjęto, że studentnum i coursenum tworząc złożony klucz podstawowy wdrażania zasady integralności że Uczeń nie może być zapisany na ten sam kurs więcej niż jeden raz, tzn. kombinacja nie jest wymagana. Dlatego próba dodania rekordu kursu również wymaga studenta. Aby uniknąć tej sytuacji, nadal zachowując regułę integralności, klucz złożony jest implementowany w jednostce stowarzyszonej i kursie, a uczniowie są w oddzielnych jednostkach.