
- •1. Техническое задание
- •2. Анализ задания
- •3. Проектирование бд для хранения информации.
- •3.1. Концептуальная er-модель
- •3 .3. Общее описание таблиц
- •3.4. Описание структуры таблиц
- •3.4. Описание ограничений сущности
- •3.5. Описание ограничений ссылочной целостности
- •3.6. Описание индексирования таблиц
- •3.7. Диаграмма структуры бд
- •4. Список контрольных тестов для проверки корректности данных в таблицах
- •5. Полный скрипт создания бд, таблиц, индексов и ограничений
3.4. Описание ограничений сущности
№ |
Имя таблицы |
Имя столбца |
Имя ограничения |
Описание ограничения |
1 |
Books |
DataFirstPubl |
CK_DataFirstPublRange |
Нельзя добавлять дату до 01.01.1850 и после даты в момент добавления записи. |
2 |
Books |
Rating |
CK_BooksRatingRange |
Значение не может быть меньше 0 и больше 10. |
3 |
Books |
ISBN |
CK_ISBN_MASK |
Значение должно соответствовать маске [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]. |
4 |
FileStat |
Size |
CK_Size |
Размер файла не может быть отрицательным. |
5 |
UserHistory |
Rating |
CK_RatingRange |
Значение не может быть меньше 0 и больше 10. |
3.5. Описание ограничений ссылочной целостности
Внешние ключи
№ |
Родительская |
Столбец в родительской |
Дочерняя |
Столбец в дочерней |
Название |
Спецификация DELETE и UPDATE |
1 |
Users |
Name |
UserHistory |
UserName |
FK_UserName |
Update- нет Delete - каскадно |
2 |
FileStat |
Id |
UserHistory |
FileBookId |
FK_FileBookId |
Update - нет. Delete – нет. |
3 |
BookType |
Id |
FileStat |
BookTypeId |
FK_BookType |
Update – нет. Delete – нет. |
4 |
Books |
Id |
FileStat |
BookId |
FK_BookId |
Update – нет. Delete – нет. |
5 |
Publisher |
Id |
Books |
PublisherId |
FK_PublisherId |
Update – нет. Delete – нет. |
6 |
BooksTitle |
Id |
Books |
BookNameId |
FK_BookNameId |
Update – нет. Delete – нет. |
7 |
Books |
Id |
RelationBooksAndAuthor |
BooksId |
FK_BooksId |
Update – нет. Delete – каскадно. |
8 |
Authors |
Id |
RelationBooksAndAuthor |
AuthorId |
FK_AuthorId |
Update – нет. Delete – каскадно. |
9 |
Books |
Id |
RelationBooksAndGenre |
BooksId |
FK_GBooksId |
Update – нет. Delete – каскадно. |
10 |
Genre |
Id |
RelationBooksAndGenre |
GenreID |
FK_GenreId |
Update – нет. Delete – каскадно. |
3.6. Описание индексирования таблиц
Некластеризованные индексы
№ |
Имя таблицы |
Столбец |
Имя индекса |
Назначение |
1 |
FileStat |
BookId |
I_FileStat_BookId |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |
2 |
FileStat |
BookType |
I_FileStat_BookType |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |
3 |
BookType |
BookType |
I_BookType_Type |
Используется для поиска. |
4 |
Books |
BookNameId |
I_Books_BookNameId |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |
5 |
Books |
PublisherId |
I_Books_PublusherId |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |
6 |
Books |
Rating |
I_Books_Rating |
Используется для поиска. |
7 |
BooksTitle |
Title |
I_BooksTitle_Title |
Используется для поиска. |
8 |
Authors |
Name |
I_Authors_Author |
Используется для поиска. |
9 |
RelationBooksAnd Author |
AuthorId |
I_RelationBooksAndAuthor_ AuthorId |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |
10 |
RelationBooksAnd Author |
BooksId |
I_RelationBooksAndAuthor_ BooksId |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |
11 |
RelationBooksAnd Genre |
GenreId |
I_RelationBooksAndGenre_ GenreId |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |
12 |
RelationBooksAnd Genre |
BooksId |
I_RelationBooksAndGenre_ BooksId |
Ускорение работы, т.к. этот столбец входит в внешний ключ. |