• Обзор программных средств для создания баз данных. Разработка приложений и баз данных: точки соприкосновения

    Кафедра “Прикладной информатики”

    Пояснительная записка к курсовой работе

    по дисциплине:

    “Базы данных”

    “Разработка базы данных и клиентского приложения”

    Калуга 2009


    Введение

    1.Постановка задачи

    2.Проектирование, создание и управление Базой Данных

    3.Технологическая инструкция пользователя

    Заключение

    Список используемой литературы


    Введение

    Цель моей курсовой работы является построение базы данных, и изучение основных элементов языка SQL, а также получение практических навыков в создании простой базы данных.

    Актуальность курсовой работы, определена как необходимость создания и проектирования баз данных.

    В современном мире, существует большое множество разнообразных баз данных. Без которых век информационных технологий не мог бы существовать и прогрессивно развиваться. Современный мир не может обойтись без структурированной и отсортированной информации, базы данных позволяют реализовать это. Базы данных необходимы для многих областей деятельности человека, будь то банковское дело, продовольственный магазин или же учет домашних расходов.

    Базы данных встречаются на каждом шагу. Практически любая система это хорошо построенная база данных, например всем известный “Консультант +” или же учет единого налога в министерстве налогов и сборов.

    Моя база данных предназначена для автоматизации операций, получения достоверной и оперативной информации.

    Задачи курсовой работы состоят в следующем:

    Реализовать базу данных;

    Реализовать пользовательский интерфейс;

    Составить отчеты;

    В настоящее время многие современные языки программирования, поддерживают программирование баз данных, с помощью таких языков можно создать необходимую базу данных, будь она простой или сверхсложной.


    1.Постановка задачи

    Разработанная база дынных состоит из нескольких “уровней”. Самый абстрактный “уровень” это схема данных. На этом уровне непосредственно отображены связи между таблицами.

    В данной курсовой работе поставлены задачи:

    Построение физической модели на компьютере (при помощи Erwin);

    Определение связей, типов данных;

    Разработка удобного пользовательского интерфейса;

    Создание запросов, форм;

    Создание отчетов (по заданию);

    Построение главной кнопочной формы;

    В моей курсовой работе создан фрагмент системы учета сотрудников, в связи с этим учет состоит из следующих операций:

    В моей курсовой работе создан фрагмент системы учета товара, в связи с этим учет состоит из следующих операций:

    Учет товаров;

    Учет товара по группам;

    Учет товаров по чекам;

    Данная система предназначена для автоматизации этих операций, получения достоверной и оперативной информации, формирования выходных документов.

    2. Проектирование, создание и управление Базой Данных

    В базе данных реализовано 4 таблицы.

    1)Таблица Группа товара, содержит 2 столбца Номер группы товара и Название группы товара.


    2) Таблица Товар, содержит 4 столбца Номер_товара, Название товара, Цена, Номер группы товара.


    3) Таблица чек, содержит 2 столбца: Номер_чека, Дата.

    4) Таблица Товар по чеку, содержит 3 столбца: Номер товара, Номер чека. Количество.

    Для удобства работы с базой данных было создано несколько форм.

    Назначение форм очень разнообразное, формы могут служить для вывода запросов, таблиц, удобства записи в таблицы, и т.д.

    Формы для запросов.

    1)Форма для запроса1(см. Рис. 1)

    Необходимо вывести товар по определённому номеру чека. В этой форме представлен удобный интерфейс для ввода информации, а также удобного просмотра отчета.


    Рис. 1 Форма для запроса1

    Например. Вводим в textBox номер чека – 7, и нажимаем на кнопку – Просмотр отчета.(см. Рис. 2)


    Рис. 2 Работа отчета1

    2)Форма для запроса2

    Необходимо вывести товар по дате. В этой форме представлен удобный интерфейс для ввода информации, а также удобного просмотра отчета.


    Рис. 3 Форма для запроса2

    Например. Вводим в textBox дату – 12.11.08 и нажимаем на кнопку – Просмотр отчета. (см. Рис4)


    Рис. 4 Работа запроса2


    Организация введения данных в таблицы происходит через соответствующие формы. Для удобства была создана главная кнопочная форма. (см. Рис. 5)

    Эта форма выглядит так:


    Рис. 5 Кнопочная форма

    Здесь расположено главное меню. Каждая из кнопок открывает доступ к отчетам, при нажатии, можно очень просто просмотреть отчеты.

    В подменю Таблицы в удобной форме представлены таблицы для ввода информации.

    Схема данных.(см. Рис. 6


    Рис. 6 Схема данных

    Схема данных была создана при помощи программы Erwin.

    3. Технологическая инструкция пользователя

    Например:

    - Вводим новый товар.

    Для того чтобы ввести новый товар необходимо выполнить следующие действия(см. Рис. 7):

    Зайти на главную кнопочную форму -> нажать кнопку таблицы -> нажать кнопку товар -> ввести название товара его цену и выбрать к какой группе товаров он относится.


    Рис. 7 Ввод нового сотрудника

    Если в списке групп товаров нужной группы не то вводим её в ручную

    Нажимаем кнопку Группа товара -> и вводим новую группу товара. (см. Рис 8)



    Рис 8. Создание новой группы товара.


    -> выбирает также номер чека по которому проходит данный товар -> вводим количество этого товара. (см. Рис 10)



    Заключение

    Цели курсовой работы выполнены полностью. Была разработана база данных, для учета товара. Курсовая работа создана в программе MS Access. Схема данных (физическая модель) была построена в программе Erwin. Также реализован удобный пользовательский интерфейс для безопасного и легкого ввода информации. В данной работе также выполнены задачи, которые ставились в начале курсовой работы, все задачи решены, и их решение можно просмотреть непосредственно в курсовой работе.

    Разработав эту курсовую работу, я понял, что СУБД Microsoft Access мощный и удобный инструмент для создания баз данных. Графический многооконный интерфейс, который дает возможность мне в диалоговом режиме создавать таблицы, формы, запросы, отчеты. Специальные приспособления, которые автоматизируют работу во время создания и ведения базы данных (Мастера и Конструкторы, Ассистенты и т.п.) заметно упрощают весь процесс и делают программу доступной в изучении каждому.

    Я считаю, что в моей профессии такие навыки, пусть даже базовые, мне со временем очень пригодятся.

    А так же было очень интересно и удобно работать в MS Access, создавать формы, работать со справкой, просматривать и изучать книги по базам данных и в частности MS Access. Несомненно, удалось познакомиться с такой замечательной программой как Erwin, которая помогает быстрее и лучше разобраться в создании баз данных. Конечно, современные базы данных с каждым днем становятся все больше и больше, удовлетворяя потребностям пользователей, следовательно, возникает задача, как создать такие базы данных, как ими управлять.… Прочитав и разобрав эту курсовую работу можно, несомненно, получить базовые навыки в построении баз данных.

    Список используемой литературы

    1. Microsoft Access 2000. Шаг за шагом: Практ. пособ. / Пер. с англ.

    М.: Издательство ЭКОМ, 2002. - 352 с.: илл.

    2. Самоучитель: Office Access 2003. - СПб.: Питер, 2004. - 464 с.: ил.

    3. Базы данных. Проектирование, реализация и сопровождение. Теория и

    практика. 3-е издание. : Пер. с англ. - М. : Издательский дом "Вильяме",

    2003. - 1440 с. : ил. - Парал. тит. англ.

    Delphi -- среда разработки, использует язык программирования Delphi (начиная с 7 версии язык в среде именуется Delphi, ранее -- Object Pascal), разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. Object Pascal, по сути является наследником языка Pascal с объектно-ориентированными расширениями.

    Delphi - оптимальный инструмент для создания приложений для баз данных. Оптимальный, т.к. поддерживает технологию визуальной разработки, которая позволяет существенно сократить время разработки при сохранении хорошего качества и надежности программного продукта. Delphi в структуре языка позволяет избегать скрытых ошибок.

    Особенности семейства Delphi 7:

    *Среда быстрой разработки приложений, в которой интегрированы средства моделирования разработки и развертывания приложений электронной коммерции и Web-сервисов.

    *Поддержка языков программирования для Win32 (Delphi и C/C++) и для.NET (Delphi и C#) в единой среде разработки, что позволяет упростить сопровождение и создание новых приложений Win32 и более легко освоить технологии.NET;

    *Возможность как для разработчиков традиционных приложений под Windows, так и для разработчиков, использующих Java, разрабатывать приложения.NET без отказа от используемого инструментария, с сохранением навыков и с аналогичными концепциями программирования;

    *Новая система шаблонов кода и другие нововведения среды разработки качественно улучшают работу с исходными текстами и повышают производительность разработки;

    Microsoft SQL Server 2000 - это законченное предложение в области баз данных и анализа данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных.

    Оно позволяет значительно сократить время выхода этих решений на рынок, одновременно обеспечивая масштабируемость, отвечающую самым высоким требованиям.

    Пакет Delphi -- продолжение линии компиляторов языка Pascal корпорации Borland. Pascal как язык очень прост, а строгий контроль типов данных способствует раннему обнаружению ошибок и позволяет быстро создавать надежные и эффективные программы.

    Разработка приложений баз данных является одной из наиболее востребованных возможностей среды программирования Delphi. Мощность и гибкость Delphi при работе с базами данных основана на низкоуровневом ядре - процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database Application Programming Interface (IDAPI). BDE позволяет осуществлять доступ к данным как с использованием традиционного record-ориентированного (навигационного) подхода, так и с использованием set-ориентированного подхода, используемого в SQL-серверах баз данных.

    Библиотека объектов содержит набор визуальных компонент, значительно упрощающих разработку приложений для СУБД с архитектурой клиент-сервер. Объекты инкапсулируют в себя нижний уровень - Borland Database Engine.

    Предусмотрены специальные наборы компонент, отвечающих за доступ к данным, и компонент, отображающих данные. Компоненты доступа к данным позволяют осуществлять соединения с БД, производить выборку, копирование данных, и т.п.

    Компоненты визуализации данных позволяют отображать данные виде таблиц, полей, списков. Отображаемые данные могут быть текстового, графического или произвольного формата.

    Таблицы сохраняются в базе данных. Некоторые СУБД сохраняют базу данных в виде нескольких отдельных файлов, представляющих собой таблицы (в основном, все локальные СУБД), в то время как другие состоят из одного файла, который содержит в себе все таблицы и индексы (InterBase).

    Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в офлайновом режиме.

    Масштабируемость на практике -- одно и то же приложение можно использовать как для локального, так и для более серьезного клиент-серверного вариантов.

    Хотя Delphi не имеет своего формата таблиц БД, она тем не менее обеспечивает мощную поддержку большого количества различных СУБД -- как локальных (например, dBase или Paradox), так и промышленных (например, Sybase или InterBase).

    Одним из наиболее распространенных сценариев в разработке приложений является отображение данных из БД на формеWindows Forms . Поэтому с учетом процессов, которые используются при работе с наборами данных, предлагаемыхMicrosoft (рис. 5.6.1-2), и с учетом того, что представленные задачи учебные, в примерах будем рассматривать следующие процессы:

      Разработка БД.

      Разработка приложения Windows:

        создание проекта;

        создание интерфейса пользователей;

        создание подключения к данным базы данных и отображение их на форме

        редактирование, проверка и сохранение данных в приложении;

        разработка программного кода приложения.

      Выполнение приложения.

      Анализ результатов работы приложения.

    5.6.3.1. Пример создания проекта «Пропуски» для работы с бд «DataBase1»

    Задание:

    В базу данных c именем « DataBase 1» в определенные дни поступают сведения о количестве пропущенных часов, которые имеют студенты по каждому из трех предметов, при этом доступна следующая информация:

      дата проверки;

      учебная группа;

      фамилия студента;

      год рождения;

      число пропущенных часов по информатике;

      число пропущенных часов по математике

      число пропущенных часов по физике.

    Необходимо создать проект с именем «Пропуски», который используя сведения из этой базы данных, вычисляет в какой день и по какому предмету имелось наибольшее число пропусков (указать также фамилию студента, имеющего такое число пропусков). Если таких дней несколько, то перечислить их все.

      Создание базы данных «DataBase1»

    Для создания таблицы с именем ПропЧасыСтудента необходимо создать ее структуру, которая будет иметь вид, приведенный на рис. 5.6.3-1.

    Заполнение таблицы данными можно выполнить в режиме таблицы. После заполнения таблица ПропЧасыСтудента принимает вид, приведенный на рис.5.6.3-2.

      Разработка приложения Windows для работы с БД Access «DataBase1»

        Создание нового проекта.

    Создать проект с именем Пропуски1 .

        Создание интерфейса пользователей.

    Создать интерфейс пользователей из одной формы, которая изображена на рис. 5.6.3-3.

    Обратите внимание, что шаблон таблицы ПропЧасыСтудента отображается на форме только послеподключения набора данных приложения к базе данных DataBase1.

        Подключение набора данных приложения к базе данных DataBase1 СУБД Access и отображение их на форме.

    Процедура подключения приложения VS к данным в базе данныхСУБД Access может быть упрощена за счет использованияМастера Конфигурации источников данных . После завершения работыМастера данные в окнеИсточники данных становятся доступными для перетаскивания на формы.

    Для создания набора данных при помощи Мастера настройки источника данных

    необходимо:

      В элементе Данные главного меню выбрать командуДобавить новый источник данных или Показать источники данных.

    В результате в среде разработки появится окно Мастер настройки источника данных ис. 5.6.3-4).

    – это новая функцияVisual Studio IDE , которая автоматически подготавливает программу наVisual Basic к получению информации из базы данных.Мастер запрашивает тип базы данных, с которой будет производиться соединение (ло­кальная илиудаленная база данных ,Web-служба илиобъект данных, созданный вами), устанавливает соединение с данными, а затем созда­ет в программе набор данных, который хранит выбранные таблицы и поля базы данных. Конечным результатом является то, что мастер открывает окноИсточник данных и заполняет его визуальным представлением каждого объекта базы данных, используемого в программе.

      После выбора Источника данных для приложения База данных и нажатия на клавишуДалее Мастер запрашиваетВыбор подключения БД (рис. 5.6.3-5).

      В окне Выбор источника данных (Рис. 5.6.3-6) выбратьБД , являющуюся источником данных –Файл базы данных Access, а затем нажать на кнопкуДалее .

    Мастер отобразит форму – Добавление подключения , который помогает установить соединение с базой данных, создав строку, которая называетсясвязывающей строкой (connection string) (рис. 5.6.3-7).

      Связывающая строка содержит инфор­мацию, которая требуется VS для открытия и извлечения информации из файла базы данных. Она включает путь и имя файла, а также дополнительные данные, такие, как имя пользователя и па­роль. По этой причине работа со связывающей строкой в окне Мастер настройки источника данных выполняется очень аккуратно, и вам следует позаботиться о ее защите от несанкционированного доступа при копировании исходных файлов с одного места в другое.

    Таким образом, в окне Добавление подключения базы данныхвыбратьAccess Database File .

      Ввести путь к файлу базы данных DataBase 1.mdb или щелкнуть кнопкуОбзор , чтобы найти этот файл, а затем нажать кнопкуОК .

      Снова появится диалоговое окно Добавление подключения (Add Connection) , содержащее путь к базе данных.

      Щелкнуть на кнопке Проверить подключение. Visual Studio попробует открыть указанный файл базы данных, используя связывающую строку, созданную мастером.

      Щелкнуть на кнопке ОК , чтобы закрыть окно сообщения, а затем щелкнуть на кнопкеОК , чтобы закрыть диалоговое окноДобавление подключение (Add Connection) .Visual Studio снова отобразит окно Мастер настройки источника данных (рис. 5.6.3-8)

      Чтобы отобразить готовую связывающую строку, щелкните в диалоговом окне на знаке «плюс» (+) рядом с элементом Строка подключений. Страница Мастера должна выглядеть примерно, так как на рис. 5.6.3-9.

    Связывающая строка определяет провайдера.

    Мастер отобразит предупреждение, указывающее, что была выбра­на новая локальная база данных (Рис. 5.6.3-10)

    Рис. 5.6.3-10

    Чтобы избежать создания дополнительной копии базы данных, щел­кните на кнопке Нет, а затем на кнопкеДалее .

    При этом Мастер настройки источника данных задаст такой вопрос о сохранении и строки подключения.

    По умолчанию выбрана опция сохранения свя­зывающей строки, а, в качестве имени строки в данном примере пред­лагается «DataBase1ConnectionString ». Обычно следует сохранять эту строку в настроечном файле приложения по умолчанию, который до­ступен в окнеОбозреватель решений (Solution Explorer), так как в этом случае при изменении мес­та расположения базы данных эту строку можно будет легко отре­дактировать без поиска ее в коде программы и последующей перекомпиляции приложения (Рис. 5.6.3-11).

    Затем будет выдан запрос на выбор подмножества объектов базы дан­ных, которые будут использоваться в данном проекте, как показано в окне Мастер настройки источника данных , изображенном на рис. 5.6.3-12.

    Рис. 5.6.3-12

    Visual Studio позволяет использовать не только всю базу данных, но и часть ее или объединение несколь­ких различных баз данных - это полезно при создании прило­жений, основанных на данных.

    Для нашей задачи следует выбрать все таблицы (поставить соответствующие флажки в квадратике).

      Чтобы добавить функциональность в приложение, то есть отобразить таблицы базы данных на форме необходимо их перетащить из окна Источник данных на форму.

    Перетаскивание элементов из окна Источники данных в форму автоматически добавляет нужный код для заполнения набора данных в обработчик событийForm1_Load()(рис. 5.6.3-13).

    Рис. 5.6.3-13

        Редактирование, проверка и сохранение данных в приложении

    После заполнения набора данных обычно производится добавление, редактирование или удаление данных перед их отправкой обратно источнику данных, другому процессу или приложению. Поскольку каждая запись в наборе данных представляется объектом DataRow, изменения набора данных выполняются посредством работы с отдельными строками.

    В Windows Forms архитектура привязки к данным занимается отправкой изменений из элементов управления с привязкой к данным в набор данных, поэтому не требуется в явном виде обновлять набор данных при помощи собственного кода. Наборы данных поддерживают множество версий строк данных для нахождения изначальных записей в источнике данных. Перед выполнением обновления источника данных, возможно, потребуется проверить отдельные строки.

    Изменение данных в DataSetпредставляет собой процесс управления фактическими данными в отдельных объектах, которые составляют набор данных. Изменение данных в таблицах данных подобно изменению данных в таблице любой базы данных – процесс может включать вставку, обновление и удаление записей таблицы.

    Кроме изменения фактических данных, также можно запрашивать DataTableдля возвращения определенных строк данных, например, отдельных строк, определенных версий строк (исходные и предложенные), только измененных строк и строк, которые содержат ошибки.

        Разработка программного кода приложения

    C первой формой будет связан код, приведенный на рис. 5.6.3-14.

  • Разработка под Android
    • Tutorial
    • Recovery Mode

    Всем привет! Меня зовут Олег и я программист-любитель под Android. Любитель потому что в данный момент я зарабатываю деньги программированием в совсем другом направлении. А это хобби, которому я посвящаю свое свободное время. К сожалению у меня нет знакомых программистов под Android и все свои базовые знания я черпаю либо из книг, либо из интернета. Во всех тех книжках и статьях в интернете, которые я читал, созданию базы данных для приложения отводится крайне мало места и по сути все описание сводится к созданию класса являющегося наследником SQLiteOpenHelper и последующему внедрению SQL кода в Java код. Если не считать, что мы получаем плохо читаемый код (а если в нашем приложении появляется больше 10 таблиц, то вспоминать все эти взаимосвязи между таблицами тот еще ад), то в принципе жить можно конечно, но как-то совершенно не хочется.
    Забыл сказать самое главное, можно сказать что это моя проба пера тут. И так поехали.

    О вечном вопросе: почему?

    Почему в книгах и в статьях, посвященных программированию под Android, не описываются инструменты для проектирования архитектуры базы данных и какие-нибудь паттерны для работы с базами данных на этапе их создания я честно говоря не знаю. Казалось бы добавить всего пару страниц в книгу или написать отдельную статью (как делаю это я сейчас) проще простого - но нет. В этой статье, я кратко пройдусь по инструментам, которые я использую в своей работе и более подробно по коду который отвечает за начальное создание БД, который с моей точки зрения выглядит более читаемым и удобным.


    Если в нашем приложении больше 5 таблиц, то уже было бы не плохо использовать какой-нибудь инструмент для визуального проектирования архитектуры БД. Поскольку для меня это хобби, то и использую я абсолютно бесплатный инструмент под названием Oracle SQL Developer Data Modeler (скачать его можно ).

    Данная программа позволяет визуально рисовать таблицы, и строить взаимосвязи с ними. Многие ошибки проектирования архитектуры БД можно избежать при таком подходе проектирования (это я уже вам говорю как профессиональный программист БД). Выглядит это примерно так:

    Спроектировав саму архитектуру, приступаем к более нудной части, заключающийся в созданий sql кода для создания таблиц. Для помощи в этом вопросе, я уже использую инструмент под названием SQLiteStudio (его в свою очередь можно скачать тут ).

    Данный инструмент является аналогом таких известных продуктов как SQL Naviagator, Toad etc. Но как следует из названия, заточен он под работу с SQLite. Он позволяет визуально создать БД и получить DDL код создаваемых таблиц. Кстати, он также позволяет создавать представления (View), которые вы тоже при желании можете использовать в своем приложении. Не знаю насколько правильный подход использования представлений в программах для Android, но в одном из своих приложений я использовал их.

    Собственно говоря я больше не каких сторонних инструментов не использую, и дальше начинается магия с Android Studio. Как я уже писал выше, если начать внедрять SQL код в Java код, то на выходе мы получим плохочитаемый, а значит и плохо расширяемый код. Поэтому я выношу все SQL инструкции во внешние файлы, которые у меня находятся в директории assets . В Android Studio выглядит это примерно так:


    О директориях db и data

    Внутри директории assets я создал две директории db_01 и data_01 . Цифры в названиях директорий соответствуют номеру версии моей БД с которой я работаю. В директории db у меня хранятся сами SQL скрипты создания таблиц. А в директории data хранятся данные необходимые для начального заполнения таблиц.


    Теперь давайте посмотрим на код внутри моего DBHelper который я использую в своих проектах. Сначала переменные класса и конструктор (тут без каких либо неожиданностей):

    Private static final String TAG = "RoadMap4.DBHelper"; String mDb = "db_"; String mData = "data_"; Context mContext; int mVersion; public DBHelper(Context context, String name, int version) { super(context, name, null, version); mContext = context; mVersion = version; }
    Теперь метод onCreate и тут становится уже интереснее:

    @Override public void onCreate(SQLiteDatabase db) { ArrayList tables = getSQLTables(); for (String table: tables){ db.execSQL(table); } ArrayList> dataSQL = getSQLDatas(); for (HashMap hm: dataSQL){ for (String table: hm.keySet()){ Log.d(TAG, "insert into " + table + " " + hm.get(table)); long rowId = db.insert(table, null, hm.get(table)); } } }
    Логически он разделен на два цикла, в первом цикле я получаю список SQL - инструкций для создания БД и затем выполняю их, во втором цикле я уже заполняю созданные ранее таблицы начальными данными. И так, шаг первый:

    Private ArrayList getSQLTables() { ArrayList tables = new ArrayList<>(); ArrayList files = new ArrayList<>(); AssetManager assetManager = mContext.getAssets(); String dir = mDb + mVersion; try { String listFiles = assetManager.list(dir); for (String file: listFiles){ files.add(file); } Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String query; String line; for (String file: files){ Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + file))); query = ""; while ((line = bufferedReader.readLine()) != null){ query = query + line; } bufferedReader.close(); tables.add(query); } } catch (IOException e) { e.printStackTrace(); } return tables; }
    Тут все достаточно просто, мы просто читаем содержимое файлов, и конкатенируем содержимое каждого файла в элемент массива. Обратите внимание, что я произвожу сортировку списка файлов, так как таблицы могут иметь внешние ключи, а значит таблицы должны создаваться в определенном порядке. Я использую нумерацию в название файлов, и с помощью нею и произвожу сортировку.

    Private class QueryFilesComparator implements Comparator{ @Override public int compare(String file1, String file2) { Integer f2 = Integer.parseInt(file1.substring(0, 2)); Integer f1 = Integer.parseInt(file2.substring(0, 2)); return f2.compareTo(f1); } }
    С заполнением таблиц все веселей. Таблицы у меня заполняются не только жестко заданными значениями, но также значениями из ресурсов и UUID ключами (я надеюсь когда-нибудь прийти к сетевой версии своей программы, что бы мои пользователи могли работать с общими данными). Сама структура файлов с начальными данными выглядит так:


    Несмотря на то, что файлы у меня имеют расширение sql, внутри не sql код а вот такая штука:

    Prioritys
    pri_id:UUID:UUID

    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:hold
    pri_color:color:colorBlue
    pri_default:int:0
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:important
    pri_color:color:colorRed
    pri_default:int:0
    prioritys
    pri_id:UUID:UUID

    pri_name:string:normal
    pri_color:color:colorGreen
    pri_default:int:1
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:hold
    pri_color:color:colorBlue
    pri_default:int:0
    prioritys
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:important
    pri_color:color:colorRed
    pri_default:int:0

    Структура файла такая: я выполняю вызов функции split(":") применительно к строчке и если получаю что ее размер равен 1 то значит это название таблицы, куда надо записать данные. Иначе это сами данные. Первое поле это название поля в таблице. Второе поле тип, по которому я определяю что мне надо в это самое поле записать. Если это UUID - это значит мне надо сгенерировать уникальное значение UUID. Если string значит мне надо из ресурсов вытащить строковое значение. Если color, то опять-таки, из ресурсов надо вытащить код цвета. Если int или text, то я просто преобразую данное значение в int или String без каких либо телодвижений. Сам код выглядит вот так:

    Private ArrayList> getSQLDatas() { ArrayList> data = new ArrayList<>(); ArrayList files = new ArrayList<>(); AssetManager assetManager = mContext.getAssets(); String dir = mData + mVersion; try { String listFiles = assetManager.list(dir); for (String file: listFiles){ files.add(file); } Collections.sort(files, new QueryFilesComparator()); BufferedReader bufferedReader; String line; int separator = 0; ContentValues cv = null; String fields; String nameTable = null; String packageName = mContext.getPackageName(); boolean flag = false; HashMap hm; for (String file: files){ Log.d(TAG, "file db is " + file); bufferedReader = new BufferedReader(new InputStreamReader(assetManager.open(dir + "/" + file))); while ((line = bufferedReader.readLine()) != null){ fields = line.trim().split(":"); if (fields.length == 1){ if (flag == true){ hm = new HashMap<>(); hm.put(nameTable, cv); data.add(hm); } // наименование таблицы nameTable = line.trim(); cv = new ContentValues(); continue; } else { if (fields.equals("UUID")){ cv.put(fields, UUID.randomUUID().toString()); } else if (fields.equals("color") || fields.equals("string")){ int resId = mContext.getResources().getIdentifier(fields, fields, packageName); Log.d(TAG, fields + " " + resId); switch (fields){ case "color": cv.put(fields, resId); break; case "string": cv.put(fields, mContext.getString(resId)); break; default: break; } } else if (fields.equals("text")){ cv.put(fields, fields); } else if (fields.equals("int")){ cv.put(fields, Integer.parseInt(fields)); } } flag = true; } bufferedReader.close(); } } catch (IOException e) { e.printStackTrace(); } return data; }

    Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

    хорошую работу на сайт">

    Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

    Размещено на http://www.allbest.ru/

    Введение

    3. Модели организации данных

    4. Реляционные базы данных

    6. Инфологическая модель

    7. Логическая модель

    8. Структура таблиц

    12. Создание таблиц

    16. Создание отчетов

    17. Листинг программы

    Заключение

    Список литературы

    Введение

    Для принятия обоснованных и эффективных решений в производственной деятельности, в управлении экономикой и в политике современный специалист должен уметь с помощью компьютеров и средств связи получать, накапливать, хранить и обрабатывать данные, представляя результат в виде наглядных документов. Поэтому, так важно уметь работать с базами данных.

    База данных - это организованная структура, предназначенная для хранения информации. В современных базах данных хранятся не только данные, но и информация.

    О Delphi говорят как о среде быстрого создания приложений. Это технология визуального программирования, т.е. пользователь оформляет свою будущую программу, и видит результаты своей работы еще до запуска самой программы. В принципе, сам процесс написания приложения разделяется на две части. Первый - программист располагает на окна своей программы необходимые элементы, позиционирует, устанавливает нужные размеры, меняет свойства. Второй - собственно, написание программного кода, описание свойств элементов, доступных только во время работы приложения, описание реакций на событие появление окна, нажатия на кнопку и др. Для задания каких-либо свойств элементу разрабатываемого приложения вовсе не обязательно писать массивные текстовые строки, достаточно изменить это свойство в инспекторе объектов (так называемом мониторе свойств выбранного элемента). Это изменение автоматически дополнит или модифицирует программный код.

    Это большой плюс в визуальной технологии программирования. Создавая или модифицируя свой программный продукт, пользователь не зная или не обращая внимания на некоторые свойства элемента программы, а используя только необходимые, пишет полностью готовый рабочий продукт, порой выступающий на равных по сложности, с написанными на невизуальном редакторе.

    Перед нами стоит задача составить базу данных, которая содержала бы данные об учебном плане учебного процесса. Заполнив базу данных, нужно провести выборочный анализ с помощью Sql-запросов.

    база инфологический таблица программа

    1. Общие требования к разработке приложений БД

    База данных должна содержать

    a. Таблицы, для хранения данных, не менее 3-х таблиц. Каждая таблица должна содержать не менее 10 записей.

    b. Формы для удобного просмотра, ввода, редактирования и поиска данных, формирования и отображения запросов. На форме должны присутствовать пояснения, подсказки. При заполнении полей формы, для известных наборов значений использовать возможность выбора значений из списка. Формы должны быть по возможности связанными, для оптимизации навигации по записям. На форме по возможности должно располагаться максимум информации для пользователя. Предусмотреть обработку возникающих семантических ошибок.

    c. Отчеты, содержащие все таблицы, формы, запросы

    d. Меню для доступа к различным объектам базы данных

    e. Справку, содержащую полное описание задания

    2. Для программирования базы данных необходимо использовать дополнительную литературу по языку SQL, системе программирования DELPHI.

    3. Перечень и способы самостоятельно решаемых задач

    1. Анализ постановки задачи и предметной области.

    2. Инфологическое проектирование, обоснование информационных объектов, доменов, атрибутов, связей, составление инфологической модели.

    3. Логическое проектирование, построение и обоснование базовых отношений, нормализация.

    4. Проектирование Sql-запросов.

    5. Программирование структуры и общих функций в базе данных.

    6. Проектирование БД в программной среде.

    7. Разработка интерфейса программы.

    8. Оформление пояснительной записки.

    4. Критерии оценки полученных компетенций по курсовой работе

    Критерии заполняются преподавателем при защите работы, приведенные в таблице 1. На основе средней оценки выставляется оценка за курсовую работу.

    Таблица 1. Оценка компетенций

    Название компетенций

    Объект оценивания

    Понимать требования и следовать им

    Полученные результаты(БД) (объем, структура, соответствие заданию)

    Письменная коммуникация

    Качество изложения в пояснительной записке, понятность, объем структура, соответствие заданию.

    Знать и применять элементы системы программирования DELPHI

    Компоненты приложения БД, ответы на вопросы о реализации БД

    Знать и применять элементы технологии БД

    Ответы на вопросы, связанные с проектированием, возможно в формате теста

    Понимать потребности в применении технологии БД

    Введение пояснительной записки

    Планирование работы, организация работы

    Сроки выполнения работ

    Самостоятельно решать задачи

    Перечень и способы самостоятельно решаемых задач

    Устная коммуникация

    Публичная защита БД

    Способность к анализу, синтезу

    Инфологическая, логическая модель БД

    Стремление к качеству результата

    Качество выполненных работ, эргономические показатели, качество функционирования.

    Способность порождать новые идеи

    Качество интерфейса, дополнительные функции БД, не учтенные в задании.

    Способность к управлению(поиску) информацией

    Количество информационных ресурсов, найденных и используемых в курсовой работе, количество консультантов.

    2. Основные понятия и классификация систем управления базами данных

    База данных (БД)представляет собой совокупность структурированных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.

    Логическую структуру данных, хранимых в базе, называют моделью представления данных. К основным моделям представления данных (моделям данных) относятся иерархическая, сетевая, реляционная.

    Система управления базами данных (СУБД) -- это комплекс языковых и программных средств, предназначенный для создания, ведения и совместного использования БД многими пользователями. Обычно СУБД различают по используемой модели данных. Так, СУБД, основанные на использовании реляционной модели данных, называют реляционными СУБД.

    Для работы с базой данных зачастую достаточно средств СУБД. Однако если требуется обеспечить удобство работы с БД неквалифицированным пользователям или интерфейс СУБД не устраивает пользователей, то могут быть разработаны приложения. Их создание требует программирования. Приложение представляет собой программу или комплекс программ, обеспечивающих автоматизацию решения какой-либо прикладной задачи. Приложения могут создаваться в среде или вне среды СУБД -- с помощью системы программирования, использующей средства доступа к БД, к примеру, DelphiилиС++ Вuildег. Приложения, разработанные в среде СУБД, часто называют приложениями СУБД, а приложения, разработанные вне СУБД, -- внешними приложениями.

    Словарь данных представляет собой подсистему БД, предназначенную для централизованного хранения информации о структурах данных, взаимосвязях файлов БД друг с другом, типах данных и форматах их представления, принадлежности данных пользователям, кодах защиты и разграничения доступа и т. п.

    Информационные системы, основанные на использовании БД, обычно функционируют в архитектуре клиент-сервер. В этом случае БД размещается на компьютере-сервере, и к ней осуществляется совместный доступ.

    Сервером определенного ресурса в компьютерной сети называется компьютер (программа), управляющий этим ресурсом, клиентом --компьютер (программа), использующий этот ресурс. В качестве ресурса компьютерной сети могут выступать, к примеру, базы данных, файлы, службы печати, почтовые службы.

    Достоинством организации информационной системы на архитектуре клиент-сервер является удачное сочетание централизованного хранения, обслуживания и коллективного доступа к общей корпоративной информации с индивидуальной работой пользователей.

    Согласно основному принципу архитектуры клиент-сервер, данные обрабатываются только на сервере. Пользователь или приложение формируют запросы, которые поступают к серверу БД в виде инструкций языкаSQL. Сервер базы данных обеспечивает поиск и извлечение нужных данных, которые затем передаются на компьютер пользователя. Достоинством такого подхода в сравнении предыдущим является заметно меньший объем передаваемых данных.

    Выделяют следующие виды СУБД:

    * полнофункциональные СУБД;

    *серверы БД;

    * средства разработки программ работы с БД.

    Полнофункциональные СУБД представляют собой традиционные СУБД. К ним относятся dBase IV, Microsoft Access, Microsoft FoxProи др.

    Серверы БД предназначены для организации центров обработки данных в сетях ЭВМ. Серверы БД обеспечивают обработку запросов клиентских программ обычно с помощью операторовSQL. Примерами серверов БД являются: MicrosoftSQL Server, Inter Baseи др.

    В роли клиентских программ в общем случае могут использоваться СУБД, электронные таблицы, текстовые процессоры, программы электронной почты и др.

    Средства разработки программ работы с БД могут использоваться для создания следующих программ:

    * клиентских программ;

    * серверов БД и их отдельных компонентов;

    * пользовательских приложений.

    По характеру использования СУБД делят на многопользовательские (промышленные) и локальные (персональные).

    Промышленные, СУБД представляют собой программную основу для разработки автоматизированных систем управления крупными экономическими объектами. Промышленные СУБД должны удовлетворять следующим требованиям:

    * возможность организации совместной параллельной работы многих пользователей;

    * масштабируемость;

    * переносимость на различные аппаратные и программные платформы;

    * устойчивость по отношению к сбоям различного рода, в том числе наличие многоуровневой системы резервирования хранимой информации;

    * обеспечение безопасности хранимых данных и развитой структурированной системы доступа к ним.

    Персональные СУБД -- это программное обеспечение, ориентированное на решение задач локального пользователя или небольшой группы пользователей и предназначенное для использования на персональном компьютере. Это объясняет и их второе название -- настольные. Определяющими характеристиками настольных систем являются:

    * относительная простота эксплуатации, позволяющая создавать на их основе работоспособные пользовательские приложения;

    * относительно ограниченные требования к аппаратным ресурсам.

    По используемой модели данных СУБД разделяют на иерархические, сетевые, реляционные, объектно-ориентированные и др. Некоторые СУБД могут одновременно поддерживать несколько моделей данных.

    Для работы с данными, хранящимися в базе, используются следующие типы языков:

    *язык описания данных -- высокоуровневый непроцедурный язык
    декларативного типа, предназначенный для описания логической
    структуры данных

    * язык манипулирования данными -- совокупность конструкций, обеспечивающих выполнение основных операций по работе с данными: ввод, модификацию и выборку данных по запросам.

    Названные языки в различных СУБД могут иметь отличия. Наибольшее распространение получили два стандартизованных языка:QBE-- язык запросов по образцу иSQL --структурированный язык запросов.QBE в основном обладает свойствами языка манипулирования данными,SQLсочетает в себе свойства языков обоих типов.

    СУБД реализует следующие основные функции низкого уровня:

    * управление данными во внешней памяти;

    * управление буферами оперативной памяти;

    * управление транзакциями;

    * ведение журнала изменений в БД;

    * обеспечение целостности и безопасности БД.

    Реализация функции управления данными во внешней памяти обеспечивает организацию управления ресурсами в файловой системе ОС.

    Необходимость буферизации данных обусловлена тем, что объем оперативной памяти меньше объема внешней памяти. Буферы представляют собой области оперативной памяти, предназначенные для ускорения обмена между внешней и оперативной памятью. В буферах временно хранятся фрагменты БД, данные из которых предполагается использовать при обращении к СУБД или планируется записать в базу после обработки.

    Механизм транзакций используется в СУБД для поддержания целостности данных в базе. Транзакцией называется некоторая неделимая последовательность операций над данными БД, которая отслеживается СУБД от начала и до завершения. Если по каким-либо причинам (сбои и отказы оборудования, ошибки в программном обеспечении, включая приложение) транзакция остается незавершенной, то она отменяется.

    Транзакции присущи три основных свойства:

    * атомарность (выполняются все входящие в транзакцию операции или ни одна);

    * сериализуемость(отсутствует взаимное влияние выполняемых в одно и то же время транзакций);

    * долговечность (даже крах системы не приводит к утрате результатов зафиксированной транзакции).

    Примером транзакции является операция перевода денег с одного счета на другой в банковской системе. Сначала снимают деньги с одного счета, затем начисляют их на другой счет. Если хотя бы одно из действий не выполнится успешно, результат операции окажется неверным и будет нарушен баланс операции.

    Ведение журнала изменений выполняется СУБД для обеспечения надежности хранения данных в базе при наличии аппаратных и программных сбоев.

    Обеспечение целостности БД составляет необходимое условие успешного функционирования БД, особенно при ее сетевом использовании. Целостность БД -- это свойство базы данных, означающее, что в ней содержится полная, непротиворечивая и адекватно отражающая предметную область информация. Целостное состояние БД описывается с помощью ограничений целостности в виде условий, которым должны удовлетворять хранимые в базе данные.

    Обеспечение безопасности достигается в СУБД шифрованием данных, парольной защитой, поддержкой уровней доступа к базе данных и отдельным ее элементам (таблицам, формам, отчетам и др.).

    3. Модели организации данных

    В иерархической модели объекты-сущности и отношения предметной области представляются наборами данных, которые имеют древовидную (иерархическую) структуру. Иерархическая модель данных была исторически первой. На ее основе в конце 60-х -- начале 70-х годов были разработаны первые профессиональные СУБД.

    Основное внимание в ограничениях целостности в иерархической модели уделяется целостности ссылок между предками и потомками с учетом основного правила: никакой потомок не может существовать без родителя.

    Сетевая модель данных позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа. Сетевая БД состоит из набора записей и набора соответствующих связей. На формирование связи особых ограничений не накладывается. Если в иерархических структурах запись-потомок могла иметь только одну запись-предка, то в сетевой модели данных запись-потомок может иметь произвольное число записей-предков.

    Достоинством сетевой мидели данных является возможность ее эффективной реализации. В сравнении с иерархической моделью сетевая модель предоставляет бульшие возможности в смысле допустимости образования произвольных связей.

    Недостатком сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе, а также сложность ее понимания обычным пользователем. Кроме того, в сетевой модели данных ослаблен контроль целостности связей из-за допустимости установления произвольных связей между записями.

    Системы на основе сетевой модели не получили широкого распространения на практике.

    Реляционная модель данных предложена сотрудником фирмы IВМ Эдгаром Коддом и основывается на понятии отношения (relation).

    Отношение представляет собой множество элементов, называемых кортежами. Наглядной формой представления отношения является двумерная таблица.

    С помощью одной таблицы удобно описывать простейший вид связей между данными, а именно: деление одного объекта, информация о котором хранится в таблице, на множество подобъектов, каждому из которых соответствует строка или запись таблицы.

    Основными недостатками реляционной модели являются следующие: отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей.

    4. Реляционные базы данных

    Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними. Термины РМД представлены в табл. 4.1

    Таблица 4.1. Терминыреляционноймодели

    Терминреляционной одели

    Эквивалентный

    Отношение

    Схема отношения

    Строка заголовков столбцов таблицы (заголовок таблицы)

    Строка таблицы, запись

    Сущность

    Описание свойств объекта

    Столбец, поле

    Множество допустимых значений

    атрибута

    Первичный ключ

    Уникальный идентификатор

    Кардинальность

    Количество строк

    Количество столбцов

    Реляционная база данных представляет собой хранилище данных, содержащее набор двухмерных таблиц. Данные в таблицах должны удовлетворять следующим принципам:

    1. Значения атрибутов должны быть атомарными (иными словами,
    каждое значение, содержащееся на пересечении строки и колонки,
    должно быть не расчленяемым на несколько значений).

    2. Значения каждого атрибута должны принадлежать к одному и тому же типу.

    3. Каждая запись в таблице уникальна.

    4. Каждое поле имеет уникальное имя.

    5. Последовательность полей и записей в таблице не существенна.

    Отношение является важнейшим понятием и представляет собой двумерную таблицу, содержащую некоторые данные.

    Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении.

    Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.

    Ключом отношения называется совокупность его атрибутов, однозначно идентифицирующих каждый из кортежей отношения. Иными словами, множество атрибутов К, являющееся ключом отношения, обладает свойством уникальности. Следующее свойство ключа -- не избыточность. То есть никакое из собственных подмножеств множества К не обладает свойством уникальности.

    Каждое отношение всегда имеет комбинацию атрибутов, которая может служить ключом.

    Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения. Все эти комбинации атрибутов являются возможными ключами отношения. Любой из возможных ключей может быть выбран как первичный.

    Ключи обычно используют для достижения следующих целей:

    Исключения дублирования значений в ключевых атрибутах (остальные атрибуты в расчет не принимаются);

    Упорядочения кортежей. Возможно упорядочение по возрастанию или убыванию значений всех ключевых атрибутов, а также смешанное упорядочение (по одним -- возрастание, а по другим -- убывание);

    Организации связывания таблиц.

    Важным является понятие внешнего ключа. Внешний ключ можно определить как множество атрибутов одного отношения R2, значения которых должны совпадать со значениями возможного ключа другого отношения R1.

    Атрибуты отношения К2, составляющие внешний ключ, не являются ключевыми для данного отношения.

    С помощью внешних ключей устанавливаются связи между отношениями.

    Проектирование баз данных информационных систем является достаточно трудоемкой задачей. Оно осуществляется на основе формализации структуры и процессов предметной области, сведения о которой предполагается хранить в БД. Различают концептуальное и схемно-структурное проектирование.

    Концептуальное проектирование БД ИС является в значительной степени эвристическим процессом. Адекватность построенной в его рамках инфологической модели предметной области проверяется опытным путем, в процессе функционирования ИС.

    Этапы концептуального проектирования:

    * изучение предметной области для формирования общего представления о ней;

    * выделение и анализ функций и задач разрабатываемой ИС;

    * определение основных объектов-сущностей предметной области
    и отношений между ними;

    * формализованное представление предметной области.

    При проектировании схемы реляционной БД можно выделить следующие процедуры:

    * определение перечня таблиц и связей между ними;

    * определение перечня полей, типов полей, ключевых полей каждой таблицы (схемы таблицы), установление связей между таблицами через внешние ключи;

    * установление индексирования для полей в таблицах;

    * разработка списков (словарей) для полей с перечислительными
    данными;

    * установление ограничений целостности для таблиц и связей;

    * нормализация таблиц, корректировка перечня таблиц и связей. Проектирование БД осуществляется на физическом и логическом уровнях. Проектирование на физическом уровне реализуется средствами СУБД и зачастую автоматизировано.

    Логическое проектирование заключается в определении числа и структуры таблиц, разработке запросов к БД, отчетных документов, создании форм для ввода и редактирования данных в БД и т. д.

    Одной из важнейших задач логического проектирования БД является структуризация данных. Выделяют следующие подходы к проектированию структур данных:

    * объединение информации об объектах-сущностях в рамках одной таблицы (одного отношения) с последующей декомпозицией на несколько взаимосвязанных таблиц на основе процедуры нормализации отношений;

    * формулирование знаний о системе (определение типов исходных данных и взаимосвязей) и требований к обработке данных, получение с помощью СА5Е-системы готовой схемы БД или даже готовой прикладной информационной системы;

    * осуществление системного анализа и разработкас труктурных моделей.

    5. Назначение и принцип работы SQL

    SQL (часто произносится как "сиквэл", сокращенное название от Structured Query Language) символизирует собой Структурированный Язык Запросов.

    SQL является инструментом, предназначенным для обработки и чтения данных, содержащихся в компьютерной базе данных. Это язык который дает возможность эффективно создавать реляционные базы данных и работать с ними.

    Мир баз данных становится все более и более единым, что привело к необходимости создания стандартного языка, который мог бы функционировать в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям знающим один набор команд, использовать их чтобы создавать, отыскивать, изменять, и передавать информацию независимо от того работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ. Во все более и более взаимосвязанном компьютерном мире, пользователь, снабженный таким языком, имеет огромное преимущество в использовании и обобщении информации из ряда источников с помощью большого количества способов.

    Как следует из названия, SQL является языком программирования, который применяется для организации взаимодействия пользователя с базой данных. На самом деле SQL работает только с базами данных реляционного типа.

    6. Инфологическая модель

    При создании инфологической модели была проанализирована предметная область заданной базы данных «Учебные планы, изучаемых дисциплин направления ПМИ». Было выделено 4 объекта: Учебный план, Дисциплина, Студент, Преподаватель, а также две дополнительные таблица, осуществляющие связь между студентами и дисциплинами, а также между преподавателями и дисциплинами. Объект Учебный план имеет атрибуты: Год создания, Номер учебного плана. Объект Дисциплина имеет такие атрибуты: Название дисциплины, Код дисциплины, Номер учебного плана, Количество часов лекций, Количество часов практик, Количество часов на лабораторные работы, Всего часов, Количество часов в неделю, Форма отчетности по дисциплине, Семестр изучения. Объект Судент имеет атрибуты: Номер зачетной книжки, ФИО. И объект Преподаватель имеет атрибуты: ФИО, Табельный номер, Кафедра, Должность, Телефон. Объекты Учебный план и Дисциплина связаны в отношении 1:n, объекты Дисциплина и Студент связаны отношением 1:n, и объекты Дисциплина и Преподаватель связаны отношением 1:n.

    При описании инфологической модели использовались ER-диаграммы:

    Рисунок 1

    7. Логическая модель

    Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью.

    Логическая модель данных является начальным прототипом будущей базы данных. Она строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных.

    Для создания логической модели каждому объекту была поставлена в соответствие таблица, с определенным набором полей. Так как Объекты Дисциплина и Преподаватель связаны в отношении 1:n, то появляется дополнительная таблица для представления связи между объектами Дисциплина и Преподаватель: Преподает.

    Всего у нас 4 объекта и следовательно будет 4 таблицы для их представления, объект Учебный план является только информационным, так как работа базы данных осуществляется только с одним учебным планом:

    Но между двумя объектами имеется связь 1:n, поэтому нам необходимо ввести еще одну таблицу для представления связей между этими таблицами. Это будет таблица Преподает (Disciplina-Prepodavatel) и таблица Изучает(Disciplina- Student).

    Представленную базу данных можно отнести к 5-ой нормальной форме, т.к. она относится к 3-ей нормальной форме и первичный ключ является простым. Логическая схема реализована в Microsoft Access.

    Рисунок 2

    8. Структура таблиц

    Исходная база данных состоит из 5 таблиц (таблицу Учебные планы не считаем, так как используется один учебный план).

    Расшифровка полей:

    v Disciplina.db

    Ш Nazv- название дисциплины, тип поля: String;

    Ш Kod - уникальный код дисциплины: LongInt;

    Ш Semestr - семестр, в котором она преподается: String;

    Ш KolLeKCh - количество лекций по данной дисциплине: LongInt;

    Ш KolPraktCh - количество практик по данной дисциплине: LongInt;

    Ш KolLabRabCh - количество лекций по данной дисциплине: LongInt;

    Ш VsegoCh - общее количество часов: LongInt;

    Ш NomerYP - номер учебного плана, в котором содержится дисциплина: LongInt.

    v Student.db

    Ш NomerStudBileta - номер студенческого билета: LongInt;

    Ш FIO - фамилия студента: ShortInt;

    v Prepodaet.db (Disciplina-Prepodavatel)

    Ш TabNomerPrepod - табельный номер преподавателя, который преподает соответствующую дисциплину: LongInt;

    Ш FIO- ФИО преподавателя, который преподает соответствующую дисциплину: String.

    v Prepod.db

    Ш FIO - ФИО преподаваля: String;

    Ш TabelNomerPrepodavatelya - уникальный табельный номер преподавателя: LongInt;

    Ш Kafedra - кафедра, на которой он работает: String;

    Ш Dolshnost - Должность преподавателя: String;

    Ш Telefon- контактный телефон преподавателя: String.

    v Izuchaet.db(Disciplina- Student)

    Ш KodDiscip- код дисциплины: LongInt;

    Ш NomerStudBileta - номер студенческого билета студента, изучающего дисциплину: LongInt;

    Ш FIO- ФИО студента, который изучает соответствующую дисциплину: String;

    Ш Ocenka - оценка студента по изучаемой дисциплине: LongInt;.

    9. Проектирование SQL-запросов

    1. Сформироватьсписок зачетов и экзаменов для каждого семестра.

    select Nazv,FormaOtchet

    where Semestr=:s and

    (Disciplina.FormaOtchet="Зачет" or Disciplina.FormaOtchet="Экзамен") ;

    2. Сформировать экзаменнационно-зачетные ведомости/ основные и дополнительные/ по каждому предмету.

    Основная ведомость:

    select Prepodaet.FIO,

    Disciplina.ObsheeKolChVNed,Disciplina.Semestr,Izuchaet.FIO,Izuchaet.

    Ocenka,Disciplina.Nazv

    from Disciplina, Prepodaet,Izuchaet

    where Disciplina.KodDiscip=Prepodaet.KodDiscip

    and (Disciplina.FormaOtchet="Экзамен" or Disciplina.FormaOtchet="Зачет")

    Дополнительная ведомость(для студентов, имеющих 2):

    select Disciplina.Nazv,Prepodaet.FIO,

    Disciplina.ObsheeKolChVNed,Izuchaet.FIO,Disciplina.Semestr,Izuchaet.Ocenka

    from Izuchaet,Disciplina,Prepodaet

    where Izuchaet.Ocenka="2"

    and Disciplina.KodDiscip=Izuchaet.KodDiscip

    and Disciplina.KodDiscip=Prepodaet.KodDiscip

    and (Disciplina.FormaOtchet="Экзамен" or Disciplina.FormaOtchet="Зачет");

    Update Disciplina

    set ObsheeKolChVNed=VsegoCh/17;

    4. Подготовить вкладыш для диплома каждого студента:

    select Disciplina.Nazv, Izuchaet.Ocenka, Izuchaet.FIO

    from Izuchaet, Disciplina

    where Disciplina.KodDiscip=Izuchaet.KodDiscip

    and Disciplina.FormaOtchet="Экзамен"

    Select AVG(Ocenka) as SrBall

    Order by SrBall desc;

    5. Выдать список группы в порядке убывания среднего балла:

    Select FIO, AVG(Ocenka) as SrBall

    Order by SrBall desc;

    10. Структура и функции системы

    Курсовая работа состоит из одного проекта “Project1” и 13 модулей.

    1. Unit1 - здесь хранится форма, которая представляет собой титульный лист. Используются компоненты: Memo, Button.

    2. Unit2 - здесь хранится форма, которая представляет собой начальную страницу базы данных. Здесь используются компоненты: Button, Memo.

    3. Unit3 - здесь хранится форма, которая содержит в виде вкладок все таблицы базы данных. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

    4. Unit4 - здесь хранится форма, на которой отображается задание. Здесь используются компоненты: Memo, Button.

    5. Unit5 - здесь хранится форма, на которой отображается дополнительная экзаменационная ведомость. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

    6. Unit6 - здесь хранится форма, на которой отображается список экзаменов и зачетов. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

    7. Unit7 - здесь хранится форма, на которой отображается основная экзаменационная ведомость. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

    8. Unit8 - здесь хранится форма, на которой отображается список группы в порядке убывания. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

    9. Unit9 - здесь хранится форма, на которой отображается вкладыш в диплом. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

    10. Unit10 - здесь хранится форма, на которой отображается форма по заполнению электронной ведомости. Здесь используются компоненты: Memo, Button, TabSheet, Table, DBGrid, DBNavigator, Label, Query.

    11. Unit11 - здесь хранится форма, на которой отображается меню. Здесь используются компоненты: Memo, Button, Label.

    12. Unit12 - здесь хранится форма, на которой отображается отчет по созданию электронной экзаменационной ведомости. Здесь используются компоненты: Memo и Button, RVProject, RVQueryConnnection и Query.

    13. Unit13 - здесь хранится форма, на которой отображается отчет по созданию вкладыша в диплом. Здесь используются компоненты: Memo и Button, RVProject, RVQueryConnnection и Query.

    11. Руководство для пользователя

    1. Запускаем проект. Перед нами появляется титульный лист курсовой работы

    Рисунок 3

    Здесь мы можем сразу войти в базу данных, а можем посмотреть задание и вернуться к этой форме. Выбираем «Показать задание»

    2. Перед нами появляется окно с информацией по заданию курсовой работы

    Рисунок 4

    3. Возвращаемся назад, нажав на соответствующую кнопку и начинаем работу, нажав на кнопу предыдущего окна «Продолжить»

    Рисунок 5

    4. Ознакомившись с информацией на данной странице, нажимаем на кнопку «Вход»

    Рисунок 6

    Перед нами появляется окно, содержащее на вкладках всю информацию содержащуюся в базе данных. Здесь мы можем просмотреть список дисциплин, учебную группу, преподавателей, что изучают те или иные студенты и какой предмет преподают преподаватели.

    5. Также с этого окна мы можем перейти к запросам. Нажимаем на соответствующую кнопку.

    Рисунок 7

    Здесь мы можем выбрать любой интересующий запрос просто нажав на соответствующую кнопку. Также здесь мы можем вернуться к таблицам и перейти к формированию электронного варианта экзаменационной ведомости.

    6. Нажимаем на кнопку «Просмотреть список зачетов и экзаменов для каждого семестра»

    Рисунок 8

    Здесь необходимо ввести номер семестра и нажать на кнопку ниже, далее в окошке таблицы появится список экзаменов и зачетов для введенного вами семестра. С этого листа мы можем вернуться обратно к запросам.

    7. Нажимаем на кнопку «Перейти к основной экзаменационной ведомости»

    Здесь необходимо выбрать название дисциплины из выпадающего списка, затем ввести это название в окошечко под выпадающем списке и нажать на кнопку «Выполнить». Запрос покажет общее количество часов в неделю на изучение введенной вами дисциплины, а так же отобразит список студентов, изучающих данную дисциплину и их оценку за эту дисциплину. Внимание! Поле оценка заполняется на форме с таблицами внутри вкладки Студент-Дисциплина. Так же на этом листе можно сформировать дополнительную экзаменационную ведомость. Для студентов, имеющих оценку 2. С этого листа мы можем вернуться обратно к запросам.

    Рисунок 9

    8. Нажимаем на кнопку «Перейти к дополнительной экзаменационной ведомости»

    Рисунок 10

    Здесь мы можем увидеть студентов, имеющих оценку 2 по той или иной дисциплине. С этого листа мы можем вернуться обратно к запросам.

    9. Нажимаем на кнопку «Сформировать вкладыш для диплома»

    Рисунок 11

    Здесь необходимо ввести ФИО выпускника, выбрав соответствующего студента из выпадающего списка. Далее нажать на клавишу. И тогда по запросу заполнится столбец «Дисциплина» списком изученных дисциплин на 5 лет обучения, а также появятся соответствующие им оценки. На этом же листе можно просмотреть электронную версию вкладыша, нажав на кнопку «Версия для печати». После просмотра данной версии необходимо просто закрыть открывшееся окно на красный крестик в правом верхнем углу экрана.

    Рисунок 12

    10. Нажимаем на кнопку «Прсмотреть список группы в порядке убывания среднего балла»

    Рисунок 13

    Здесь мы видим список группы и соответствующий каждому студенту средний балл, расположенный в порядке убывания. С этого листа мы можем вернуться обратно к запросам.

    Рисунок 14

    Выберем из выпадающего списка интересующую нас дисциплину, например, экономика и введем ее название в окошко под выпадающим списком. Далее нажмем кнопку выполнить и увидим фамилию преподавателя данной дисциплины.

    Рисунок 16

    Здесь мы видим название выбранной нами дисциплины, ФИО преподавателя этой дисциплины. А так же список студентов, которые изучали данную дисциплину. Для выхода из отчета просто нажмите на крестик в правом верхнем углу экрана. Возвращаемся на предыдущий лист. С этого листа мы можем вернуться обратно к запросам.

    12. Создание таблиц

    Для создания таблиц использовался утилит Database Desktop. Его можно запустить - Пуск/Программы/Borland Delphi 7/ Database Desktop. Необходимо настроить рабочий каталог утилиты. Выберете команду File/Working Directory и установите ваш рабочий каталог. Для создания таблицы выберете команду File/New/Table. Затем необходимо выбрать тип таблицы. Тип PARADOX 7 можно считать наилучшим для файл-серверных таблиц.

    1. Создание таблицы YchebPlan(Учебный план):

    Рисунок 17

    5. Создание таблицы Disciplina(Дисциплина):

    Рисунок 18

    6. Создание таблицы Student:

    Рисунок 19

    7. Создание таблицы Prepodaet (Дисциплина-Преподаватель):

    Рисунок 20

    5. Создание таблицы Prepod (Преподаватель):

    Рисунок 21

    8. Создание таблицы Izuchaet (Дисциплина-Студент):

    Рисунок 22

    13. Создание приложения в Delphi

    Для того чтобы создать новое приложение, нужно в меню File выбрать пункт New/Application. Появляется форма и модуль (в целом это называется проект), теперь можно помещать на форму необходимые компоненты. При необходимости можно создать еще форму (и не одну), для этого нужно в меню File выбрать пункт New/ Form.

    1. Таблица. Заполнение данными. Отображение данных.

    Для того чтобы отобразить таблицу на форме, нужно поместить на нее компоненты:

    · Table (на вкладке BDE) - В инспекторе объектов на вкладке «Параметры» в свойстве Tablename выбрать нужную таблицу.

    Рисунок 23

    · DBGrid (на вкладке DataControls) - необходим для отображения таблицы на форме, в Инспекторе объектов в свойстве DataSource указать нужный источник данных.

    Рисунок 24

    · DBNavigator (на вкладке DataControls) - необходим для перемещения по записям таблицы. В инспекторе Объектов в свойстве DataSource указывается тот же источник данных, что и в DBGrid. Функции навигатора доступны при щелчке на его кнопках во время работы приложения, Компонент содержит 10 кнопок.

    Рисунок 25

    · DataSource (вкладка Data Access) - компонент промежуточного уровня, для доступа к данным. Служит посредником между таблицами СУБД и экранными элементами управления (DBGrid, DBNavigator).

    Рисунок 26

    14. Создание поля с информацией (Memo) и кнопок

    На форму помещается компонент Memo, который располагается на вкладке Standard.

    Рисунок 27

    В инспекторе объектов на вкладке «Параметры» в свойстве Lines вводится необходимый для отображения текст

    Рисунок 28

    Создание кнопок.

    Для корректного закрытия формы на нее помещается компонент Button, который располагается на вкладке Standard.

    Рисунок 29

    Для того чтобы кнопка работала необходимо в Обработчике событий OnClick указать:

    procedure TForm1.N5Click(Sender: TObject);

    begin

    Form2.Show;

    Form1.Close;

    end;

    15. Создание подписей к таблицам

    Для подписи таблицы в курсовой работе был использован компонент Lable, расположенный на вкладке Standard. В Инспекторе Объектов в свойстве Caption нужно просто написать текст.

    Рисунок 30

    16. Создание выпадающего списка

    Для выбора команды из имеющегося списка используется компонент ComboBox (выпадающий список). Его заполнение можно осуществить таким образом

    В Инспекторе Объектов в свойстве Items необходимо написать:

    Рисунок 31

    16. Создание отчетов

    Отчет создается с помощью инструмента QReports,который необходимо с начало подключать: Component->install packages->add открыть папку bin выбрать файл dclqrt70.bpl нажать OKи тогда появится вкладка с компонентами QReport. Используемые мной компоненты:

    Таблица 2

    17. Листинг программы

    Описание проекта

    program Project1;

    uses

    Forms,

    Unit1 in "Unit1.pas" {Form1},

    Unit2 in "Unit2.pas" {Form2},

    Unit3 in "Unit3.pas" {Form3},

    Unit4 in "Unit4.pas" {Form4},

    Unit5 in "Unit5.pas" {Form5},

    Unit6 in "Unit6.pas" {Form6},

    Unit7 in "Unit7.pas" {Form7},

    Unit8 in "Unit8.pas" {Form8},

    Unit9 in "Unit9.pas" {Form9},

    Unit10 in "Unit10.pas" {Form10},

    Unit11 in "Unit11.pas" {Form11},

    Unit12 in "Unit12.pas" {Form12},

    Unit13 in "Unit13.pas" {Form13},

    Unit14 in "Unit14.pas" {Form14};

    {$R *.res}

    begin

    Application.Initialize;

    Application.CreateForm(TForm1, Form1);

    Application.CreateForm(TForm2, Form2);

    Application.CreateForm(TForm3, Form3);

    Application.CreateForm(TForm4, Form4);

    Application.CreateForm(TForm5, Form5);

    Application.CreateForm(TForm6, Form6);

    Application.CreateForm(TForm7, Form7);

    Application.CreateForm(TForm8, Form8);

    Application.CreateForm(TForm9, Form9);

    Application.CreateForm(TForm10, Form10);

    Application.CreateForm(TForm11, Form11);

    Application.CreateForm(TForm12, Form12);

    Application.CreateForm(TForm13, Form13);

    Application.CreateForm(TForm14, Form14);

    Application.Run;

    end.

    Описание модуля Unit1

    unit Unit1;

    interface

    uses

    Dialogs, StdCtrls;

    type

    TForm1 = class(TForm)

    Memo1: TMemo;

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form1: TForm1;

    implementation

    uses Unit2, Unit4, Unit6, Unit7, Unit5, Unit8, Unit9, Unit10;

    {$R *.dfm}

    procedure TForm1.Button3Click(Sender: TObject);

    begin

    Form2.show;

    end;

    procedure TForm1.Button2Click(Sender: TObject);

    begin

    Form1.Close;

    end;

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    Form4.show;

    end;

    end.

    Описание модуля Unit2

    unit Unit2;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls;

    type

    TForm2 = class(TForm)

    Memo1: TMemo;

    GroupBox1: TGroupBox;

    Button1: TButton;

    Button2: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form2: TForm2;

    implementation

    uses Unit3;

    {$R *.dfm}

    procedure TForm2.Button1Click(Sender: TObject);

    begin

    Form3.show;

    Form2.Close;

    end;

    procedure TForm2.Button2Click(Sender: TObject);

    begin

    Form2.Close;

    end;

    Описание модуля Unit3

    unit Unit3;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables,

    StdCtrls, QuickRpt, QRCtrls;

    type

    TForm3 = class(TForm)

    PageControl1: TPageControl;

    TabSheet1: TTabSheet;

    TabSheet2: TTabSheet;

    TabSheet3: TTabSheet;

    TabSheet4: TTabSheet;

    TabSheet5: TTabSheet;

    TabSheet6: TTabSheet;

    DataSource1: TDataSource;

    DataSource2: TDataSource;

    DataSource3: TDataSource;

    DataSource4: TDataSource;

    Table1: TTable;

    Table2: TTable;

    Table3: TTable;

    Table4: TTable;

    DBGrid1: TDBGrid;

    DBNavigator1: TDBNavigator;

    DBGrid2: TDBGrid;

    DBNavigator2: TDBNavigator;

    DBGrid3: TDBGrid;

    DBNavigator3: TDBNavigator;

    DBGrid4: TDBGrid;

    DBNavigator4: TDBNavigator;

    DBGrid5: TDBGrid;

    DBNavigator5: TDBNavigator;

    DBGrid6: TDBGrid;

    DBNavigator6: TDBNavigator;

    Button1: TButton;

    DataSource5: TDataSource;

    DataSource6: TDataSource;

    Table5: TTable;

    Table6: TTable;

    Query1: TQuery;

    Button2: TButton;

    Label1: TLabel;

    Memo1: TMemo;

    Label3: TLabel;

    Button3: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form3: TForm3;

    implementation

    uses Unit5, Unit11;

    {$R *.dfm}

    procedure TForm3.Button1Click(Sender: TObject);

    begin

    Form11.show;

    Form3.close;

    end;

    procedure TForm3.Button2Click(Sender: TObject);

    begin

    Query1.ExecSQL;

    Form3.Refresh;

    end;

    procedure TForm3.Button3Click(Sender: TObject);

    begin

    Form3.close;

    end;

    Описание модуля Unit4

    unit Unit4;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls;

    type

    TForm4 = class(TForm)

    Memo1: TMemo;

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form4: TForm4;

    implementation

    uses Unit1;

    {$R *.dfm}

    procedure TForm4.Button1Click(Sender: TObject);

    begin

    Form1.show;

    end;

    Описание модуля Unit 5

    unit Unit5;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ExtCtrls;

    type

    TForm5 = class(TForm)

    DataSource1: TDataSource;

    DBGrid1: TDBGrid;

    Query1: TQuery;

    DBEdit1: TDBEdit;

    DBEdit2: TDBEdit;

    DBEdit3: TDBEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    DBNavigator1: TDBNavigator;

    Button1: TButton;

    procedure ComboBox1Change(Sender: TObject);

    procedure Edit1Change(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form5: TForm5;

    implementation

    uses Unit11;

    {$R *.dfm}

    procedure TForm5.ComboBox1Change(Sender: TObject);

    begin

    Query1.Active:=true;

    end;

    procedure TForm5.Edit1Change(Sender: TObject);

    begin

    Query1.Open;

    end;

    procedure TForm5.Button1Click(Sender: TObject);

    begin

    Form11.show;

    Form5.Close;

    end;

    Описание модуля Unit 6

    unit Unit6;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls;

    type

    TForm6 = class(TForm)

    Button1: TButton;

    Edit1: TEdit;

    DataSource1: TDataSource;

    DBGrid1: TDBGrid;

    Query1: TQuery;

    Label1: TLabel;

    DBNavigator1: TDBNavigator;

    Label2: TLabel;

    Memo1: TMemo;

    Button2: TButton;

    Label3: TLabel;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form6: TForm6;

    implementation

    uses Unit11;

    {$R *.dfm}

    procedure TForm6.Button1Click(Sender: TObject);

    begin

    Query1.Close;

    if not Query1.Prepared then

    Query1.Prepare;

    if length (edit1.text)<>0 then

    else

    begin

    Query1.Params.Value:=0;

    end;

    Query1.Open;

    end;

    procedure TForm6.Button2Click(Sender: TObject);

    begin

    Form11.show;

    Form6.Close;

    end;

    Описание модуля Unit 7

    unit Unit7;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls, Grids, DBGrids, DBTables, DB, Mask, DBCtrls, ExtCtrls,

    QRCtrls, QuickRpt;

    type

    TForm7 = class(TForm)

    Label1: TLabel;

    Label2: TLabel;

    DataSource1: TDataSource;

    Query1: TQuery;

    Edit2: TEdit;

    Button1: TButton;

    DBEdit1: TDBEdit;

    DBEdit2: TDBEdit;

    Label3: TLabel;

    DBGrid1: TDBGrid;

    Label4: TLabel;

    Label5: TLabel;

    DBNavigator1: TDBNavigator;

    Button2: TButton;

    Label6: TLabel;

    Label7: TLabel;

    Memo1: TMemo;

    ComboBox1: TComboBox;

    Label8: TLabel;

    Button3: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form7: TForm7;

    implementation

    uses Unit5, Unit11;

    {$R *.dfm}

    procedure TForm7.Button1Click(Sender: TObject);

    begin

    Query1.Close;

    if not Query1.Prepared then

    Query1.Prepare;

    if length (edit2.text)<>0 then

    Query1.Params.Value:=edit2.Text

    else

    begin

    Query1.Params.Value:=0;

    edit2.Text:="Введите название!";

    end;

    Query1.Open;

    end;

    procedure TForm7.Button2Click(Sender: TObject);

    begin

    Form5.show;

    Form7.close;

    end;

    procedure TForm7.Button3Click(Sender: TObject);

    begin

    Form11.show;

    Form7.close;

    end;

    Описание модуля Unit 8

    unit Unit8;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    type

    TForm8 = class(TForm)

    Label4: TLabel;

    DataSource1: TDataSource;

    Query1: TQuery;

    DBGrid1: TDBGrid;

    DBNavigator1: TDBNavigator;

    Button1: TButton;

    Memo1: TMemo;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form8: TForm8;

    implementation

    uses Unit11;

    {$R *.dfm}

    procedure TForm8.Button1Click(Sender: TObject);

    begin

    Form11.show;

    Form8.close;

    end;

    Описание модуля Unit 9

    unit Unit9;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Mask, DBCtrls, ExtCtrls;

    type

    TForm9 = class(TForm)

    Edit1: TEdit;

    Query1: TQuery;

    DataSource1: TDataSource;

    DBGrid1: TDBGrid;

    Button1: TButton;

    Query2: TQuery;

    DataSource2: TDataSource;

    Button2: TButton;

    DBEdit1: TDBEdit;

    DBNavigator1: TDBNavigator;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Name: TComboBox;

    Button3: TButton;

    Memo1: TMemo;

    Label4: TLabel;

    Button4: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form9: TForm9;

    implementation

    uses Unit11, Unit13;

    {$R *.dfm}

    procedure TForm9.Button1Click(Sender: TObject);

    begin

    Query1.Close;

    if not Query1.Prepared then

    Query1.Prepare;

    if length (edit1.text)<>0 then

    Query1.Params.Value:=edit1.Text

    else

    begin

    Query1.Params.Value:=0;

    edit1.Text:="Введите имя выпускника!";

    end;

    Query1.Open;

    end;

    procedure TForm9.Button2Click(Sender: TObject);

    begin

    Query2.Close;

    if not Query2.Prepared then

    Query2.Prepare;

    if length (edit1.text)<>0 then

    Query2.Params.Value:=edit1.Text

    else

    begin

    Query2.Params.Value:=0;

    edit1.Text:="Введите номер семестра!";

    end;

    Query2.Open;

    end;

    procedure TForm9.Button3Click(Sender: TObject);

    begin

    Form11.show;

    Form9.close;

    end;

    procedure TForm9.Button4Click(Sender: TObject);

    begin

    Form13.QuickRep1.Preview;

    end;

    Описание модуля Unit 10

    unit Unit10;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, ExtCtrls, QuickRpt, StdCtrls, DB, DBTables, Mask, DBCtrls,

    Grids, DBGrids;

    type

    TForm10 = class(TForm)

    Button1: TButton;

    Query1: TQuery;

    DataSource1: TDataSource;

    DBEdit1: TDBEdit;

    DBEdit2: TDBEdit;

    Label1: TLabel;

    Label2: TLabel;

    Edit1: TEdit;

    Button2: TButton;

    Label3: TLabel;

    ComboBox1: TComboBox;

    Label4: TLabel;

    Label5: TLabel;

    Memo1: TMemo;

    Label6: TLabel;

    Label7: TLabel;

    Button3: TButton;

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form10: TForm10;

    implementation

    uses Unit3, Unit7, Unit12, Unit11;

    {$R *.dfm}

    procedure TForm10.Button1Click(Sender: TObject);

    begin

    Form12.QuickRep1.Preview;

    end;

    procedure TForm10.Button2Click(Sender: TObject);

    begin

    Query1.Close;

    if not Query1.Prepared then

    Query1.Prepare;

    if length (edit1.text)<>0 then

    Query1.Params.Value:=edit1.Text

    else

    begin

    Query1.Params.Value:=0;

    edit1.Text:="Введите название!";

    end;

    Query1.Open;

    end;

    procedure TForm10.Button3Click(Sender: TObject);

    begin

    Form11.show;

    end;

    Описание модуля Unit 11

    unit Unit11;

    interface

    uses

    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

    Dialogs, StdCtrls;

    type

    TForm11 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    Button5: TButton;

    Button6: TButton;

    Memo1: TMemo;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Button7: TButton;

    Label4: TLabel;

    Label5: TLabel;

    procedure Button2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button5Click(Sender: TObject);

    procedure Button6Click(Sender: TObject);

    procedure Button7Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    end;

    var

    Form11: TForm11;

    implementation

    Подобные документы

      Создание таблиц и проектирование систем управления базами данных. Инфологическое проектирование. Реляционная схема базы данных. Прикладное значение систем: отчет о поставщиках и поставляемых ими товарах. Выписка о наличии товара в магазине.

      курсовая работа , добавлен 01.12.2008

      Разработка базы данных с информацией о сотрудниках, товарах, со справочником типов товаров средствами системы управления базами данных MySQL с помощью SQL-запросов. Разработка инфологической модели предметной области. Структура таблиц, полей базы данных.

      контрольная работа , добавлен 13.04.2012

      Процесс проектирования базы данных, разработка её логической структуры в соответствии с инфологической моделью предметной области. Работа с программой СУБД Access, свойства таблиц и их полей, создание межтабличных связей; инфологическое проектирование.

      курсовая работа , добавлен 17.12.2009

      Основные понятия базы данных и систем управления базами данных. Типы данных, с которыми работают базы Microsoft Access. Классификация СУБД и их основные характеристики. Постреляционные базы данных. Тенденции в мире современных информационных систем.

      курсовая работа , добавлен 28.01.2014

      Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.

      курсовая работа , добавлен 05.11.2011

      Исследование характеристик и функциональных возможностей системы управления базами данных Microsoft Office Access. Определение основных классов объектов. Разработка базы данных "Делопроизводство". Создание таблиц, форм, запросов, отчетов и схем данных.

      реферат , добавлен 05.12.2014

      Тенденция развития систем управления базами данных. Иерархические и сетевые модели СУБД. Основные требования к распределенной базе данных. Обработка распределенных запросов, межоперабельность. Технология тиражирования данных и многозвенная архитектура.

      реферат , добавлен 29.11.2010

      Теоретические сведения и основные понятия баз данных. Системы управления базами данных: состав, структура, безопасность, режимы работы, объекты. Работа с базами данных в OpenOffice.Org BASE: создание таблиц, связей, запросов с помощью мастера запросов.

      курсовая работа , добавлен 28.04.2011

      Проектирование базы данных системы принятия, обработки и учёта заявок в отдел информационных технологий; разработка инфологической и даталогической моделей, реализация физической модели. Создание приложений для визуализации работы с базой данных.

      дипломная работа , добавлен 25.01.2013

      Выделение информационных объектов и их инфологическая модель. Логическая структура реляционной базы данных. Разработка таблиц в системе управления базами данных Access. Создание запросов, форм и отчетов в СУБД Access. Разработка приложения пользователя.