Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Создание таблиц БД «Library ⇐ ПредыдущаяСтр 2 из 2
Таблицы БД «Library» будут использоваться в качестве тестовых примеров в последующих ЛР. В целях упрощения разработки и использования библиотеки классов для работы с БД введем соглашения по именованию и размещению файлов с таблицами БД на диске и по формату таблиц и файлов. Каждая БД хранится на диске в отдельной папке, которая содержит текстовые файлы с таблицами. Имя папки для БД «Library» - LibraryTxt. < имя файла> = < имя таблицы>.txt. Таблица состоит из «шапки» (список заголовков столбцов) и строк данных. Структура файлов: - первая строка файла содержит имя таблицы и имя первичного ключа (или NoPrimaryKey, если первичный ключ в таблице отсутствует); - вторая строка файла содержит заголовки всех столбцов таблицы - остальные строки содержат записи данных таблицы. Заголовок каждого столбца таблицы состоит из трех слов: < имя столбца>, < имя типа данных в столбце> и < максимальная длина данных в столбце> - строки данных содержат значения полей таблицы.
В макете СУБД достаточно ограничиться 4-мя типами данных: string, int, double и DBDate. DBDate – тип для представления даты в БД. Он создан пользователем для выполнения операций с датами при работе с БД. Столбец, являющегося первичным ключом (значения полей в этом столбце должны быть уникальными), необходим только в " основных" таблицах. При удалении записи из таблицы значение первичного ключа в новых записях не должно повторяться. Во " вспомогательных" таблицах, включаемых в реляционные БД для создания связей между таблицами типа " многие-ко-многим", он не используется (в файле его нет). Пример " вспомогательных" таблиц: Abonements. В них записи идентифицируются комбинацией значений первичных ключей связываемых таблиц (они называются вторичными). Значение по умолчанию " NoPrimaryKey" будем использовать как признак того, что объект DBTable связан с вспомогательной таблицей. Кроме таблиц с данными каждая БД должна содержать текстовый файл DBTables.txt. В файле DBTables.txt будем хранить имена всех файлов с таблицами БД.
База данных библиотекиLibrary содержит 3 таблицы с данными: Abonements, Students и Books и таблицу TableRelations. Таблица TableRelations хранит описывания связей между парами таблиц БД (если они существуют). Одна из таблиц является родительской (parentTable), а другая дочерней (childTable). Имена столбцов и типы данных в столбцах таблиц БД Library: Таблица Students. Имена столбцов: StudentID (первичный ключ), Name, Group. Типы данных в столбцах таблицы: StudentID - int (имя типа Int32, длина 8); Name – string (имя типа String, длина 16); Group– string (имя типа String, длина 8);
Таблица Books. Имена столбцов: Author, BookID (первичный ключ), Title, Quantity, Number, где: Quantity – количество поступивших в библиотеку экземпляров данной книги. Number – количество выданных экземпляров данной книги.
Типы данных в столбцах таблицы: Author - string (имя типа String, длина 12); BookID - int (имя типа Int32, длина 8); Title – string (имя типа String, длина 16); Quantity - int (имя типа Int32, длина 8); Number - int (имя типа Int32, длина 8);
Таблица Abonements. Имена столбцов: StudentID, BookID, OutDate, InDate, где: DateOut, DateIn – дата выдачи и дата возврата книги. Типы данных в столбцах таблицы: StudentID - int (имя типа Int32, длина 8); BookID - int (имя типа Int32, длина 8); OutDate - DBDate (имя типа DBDate, длина 12); InDate - DBDate (имя типа DBDate, длина 12);
Таблица TableRelations для БД Library. Имена столбцов: |RelationName (первичный ключ), ParentTable, ParentPrimaryKey, ChildTable, ChildSecondaryKey. Типы данных в столбцах таблицы: ChildSecondaryKey – string (имя типа String, длина 12); ChildTable – string (имя типа String, длина 12); ParentPrimaryKey – string (имя типа String, длина 12); ParentTable – string (имя типа String, длина 12); RelationName – string (имя типа String, длина 20); |
Заполнить файлы тестовыми данными. Ввести не менее трех книг по каждому из трех предметов, не менее 5 записей в таблицу Students и не менее 10 записей в таблицу Abonements. При заполнении таблиц данными в текстовом редакторе проверяйте уникальность значений первичных ключей и ссылочную целостность данных, то есть наличие в основных (родительских) таблицах Students и Books значений идентификаторов StudentID и BookID, использованных в производной (дочерней) таблице Abonements. Пример файла Students.txt: Students|StudentID Group|String|8|Name|String|16|StudentID|Int32|8 IU5-21|Ivanov|1
Пример файла Abonements.txt: Abonements|NoPrimaryKey BookID|Int32|8|DateIn|DBDate|12|DateOut|DBDate|12|StudentID|Int32|8 1|5.11.2016|6.4.2016|1 1|6.2.2016|1.1.1|2
Примечание: При заполнении таблиц в текстовом редакторе следите за тем, чтобы в конце таблицы не было пустой строки. Она не видна, но ее наличие приведет к ошибке при чтении таблицы. Сделайте копии таблиц БД тестового примера, чтобы их можно было бы восстанавливать при возможной потере данных в процессе отладки. 4 Создание решения DBStatLib_v1 для работы с таблицами БД Создайте в решении DBStatLib_v1 проект testDB и подключите к нему базовую версию статической библиотеки классов для макета СУБД (библиотечные файлы dbmsLib_v1.lib и dbmsLib_v1.h предоставляются преподавателем).
|
Последнее изменение этой страницы: 2019-05-04; Просмотров: 202; Нарушение авторского права страницы