Кітапхана деректер қорында үш кесте бар: READERS (ReaderID, FullName, Phone), BOOKS (BookID, Title, Author) және LOANS (ReaderID, BookID, DateOut, DateReturn). LOANS кестесіндегі әр жазба кітаптың берілуін тіркейді: ReaderID және BookID өрістері READERS және BOOKS кестелеріне сілтейді, DateOut — берілген күні, DateReturn — қайтарылған күні (кітап оқырманда тұрғанда өріс бос). Оқырман бір кітапты әртүрлі күндері қайта ала алады, бірақ бір күнде бір реттен артық емес. Сәйкестікті орнатыңыз:
1. LOANS кестесінің бастапқы кілтін құрайтын өрістердің ең аз жиыны
2. LOANS кестесі арқылы жүзеге асатын READERS және BOOKS кестелері арасындағы байланыс түрі
Жауап пен талдауды көрсетуЖауап пен талдауды жасыру
Дұрыс жауап
- 1CReaderID, BookID және DateOut
- 2Aкөпке-көп
Талдау
1) Бастапқы кілт әр жазбаны бір мәнді анықтауы және бос мәндерді қамтымауы тиіс. Жалғыз «ReaderID» өрісі жарамайды: оқырман көп кітап алады. «ReaderID және BookID» жиыны да жарамайды: оқырман бір кітапты қайта алса, жұп қайталанады. 2) Берілген күнін қоссақ, шарт бойынша оқырман бір күнде кітапты бір реттен артық алмайды, сондықтан «ReaderID, BookID және DateOut» бірегей. «ReaderID, BookID және DateReturn» жиынын қолдануға болмайды: DateReturn бос болуы мүмкін, ал кілт бос мәнді қамтымайды. 3) Оқырман көп кітап алады, ал әр кітапты көп оқырман алады, сондықтан байланыс «көпке-көп». Реляциондық деректер қорында оны LOANS аралық кестесі арқылы жүзеге асырады: ондағы ReaderID және BookID — сыртқы кілттер, олар «біреуден көпке» екі байланыс құрайды.