В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана експериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволяв ший относительно просто управлять данными в этой СУБД.
Поскольку к началу 1980-х годов существовало несколько вариантов СУБД от разных производителей, причём каждый из них обладал собственной реализацией язика запросов, было принято решение разработать стандарт языка, который будет гарантировать переносимость ПО с одной СУБД на другую (при условии, что они будут поддерживать этот стандарт).
По традиции, как и со многими стандартами в IT-индустрии, с языком SQL возникла проблема: на каком-то этапе многие производители использующего SQL програмного обеспечения решили, что функциональность в текущей (на тот момент времени) версти стандарт а недостаточна, и её желательно расширить. В результате у разных производителей систем управления базами данных (СУБД) в ходу разные диалекты SQL, в об щем случае между собой несовместимые.
Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своїм тексты SQL-запросов, содержащие DDL и DML, когут бать достаточно легко перенесены из одной СУБД в другую.
Объектом данного курсовогопроекта является приложение работающие с базой данных«Приемная комиссия».
Целью данного курсового проекта ставится получение практических навыков разработка программ в бреде візуального программирования VisualStudio 2010 C# путем разработка приложения «Приемная комиссия».
Задачи курсового проекта:
- Выполнить обоснование и разработать инфологическую модель
- Разработать даталогическую модель базы данных
- Определить базовые таблицы
- Выполнить нормализацию таблиц
- Определить ограничения целостности
- Установить связи между таблицами
- Разработать SQL — запросы
- Спроектировать отчеты
- Создать пользовательский интерфейс
- Разработать программный продукт
- Выполнить описание алгоритмов
- Составить инструкцию пользователю
Разработанное приложение будет использоваться администрацией приемной комиссии.
1. Обоснование и разработка инфологической модели
Область применения базы данных является деятельность спортивного клуба. Такая система обеспечивает хранение сведений о клиентах, об абонементах, о наименовании залов, информации о тренерах, об учете.
Системы управления базами данных
... обслуживающего его. Банк данных включает: 1. одну или несколько баз данных; 2. систему управления базами данных (СУБД); 3. персонал, обеспечивающий работу банка данных. База данных - это совокупность определенным образом организованных данных, хранящихся в запоминающих ...
Программа является очень актуальной на сегодняшний день, она автоматизирует работу с базой данных и предоставляет пользователю (секретарю) понятный и дружественный интерфейс.
Программная система, предназначенная для Деятельности учебных заведений
Набор сущностей.
Абитуриент, Расписание, Регистрация, Факультет, Поток, Группы, Кафедра, Паспортные данные.
1) Сущность «Абитуриент» необходима для хранения и просмотра данных об поступающих абитуриентах.
2) Сущность «Расписание» необходима для хранения и просмотра данных о экзаменах и консультаций абитуриентов.
3) Сущность «Регистрация» необходима для хранения и просмотра данных о группах и потоках.
4) Сущность «Факультет» необходима для хранения и просмотра данных о факультете.
5) Сущность «Поток» необходима для хранения и просмотра данных о потоке.
6) Сущность «Группы» необходима для хранения и просмотра данных о группе.
7) Сущность «Кафедра» необходима для хранения и просмотра данных о кафедре.
8) Сущность «Паспортные данные» необходима для хранения и просмотра данных о паспорте абитуриента.
Атрибуты:
Абитуриент. Атрибуты: IDАбитуриента, Фамилия, Имя, Отчество, Паспортные данные, Учебное заведение, Год окончания, Наличие золотой медали, Номер аттестата, Оценка за экзамен.
Расписание. Атрибуты: IDПредмет, Номер абитуриента, Название предмета, Номер потока, Занятия, Дата.
Регистрация. Атрибуты: IDРегистрация, IDАбитуриента Номер группы, Номер потока, Название кафедры, Название факультета.
Факультет. Атрибуты: IDФакультета, Название факультета.
Поток. Атрибуты: IDПотока, Количество групп.
Группы. Атрибуты: IDГруппы, Название группы.
Кафедра. Атрибуты: IDКафедра, Название кафедры.
Паспортные данные. Атрибуты: IDПаспорта, Кем выдан, Когда выдан, Номер, Серия.
Рисунок 1 ER-диаграмма
2. Обоснование выбора СУБД и программного обеспечения
База данных (БД) — это совокупность специальным образом организованных данных хранимых в памяти вычислительной системы отображающих состояние объектов и их взаимосвязи в рассматриваемой предметной области.
Предметной областью называется часть реальной системы, представляющая интерес для определенного исследования. Различать полную предметную область (предприятие) и организационную единицу этой предметной области (отделы).
Основные термины.
Объект — термин, обозначающий факт, лицо, событие, предмет, о котором могут быть собраны данные (каждая таблица представляет один объект);
- Реляционная БД — основной тип современных баз данных. Состоит из таблиц, между которыми могут существовать связи по ключевым значениям.
Таблица базы данных (table) — регулярная структура, которая состоит из однотипных строк (записей, records), разбитых на столбцы (поля, fields).
В теории реляционных баз данных синоним таблицы — отношение (relation), в котором строка называется кортежем, а столбец называется атрибутом.
В концептуальной модели реляционной БД аналогом таблицы является сущность (entity), с определенным набором свойств — атрибутов, способных принимать определенные значения (набор допустимых значений — домен).
Ключевой элемент таблицы (ключ, regularkey) — такое ее поле (простой ключ) или строковое выражение, образованное из значений нескольких полей (составной ключ), по которому можно определить значения других полей для одной или нескольких записей таблицы. На практике для использования ключей создаются индексы — служебная информация, содержащая упорядоченные сведения о ключевых значениях. В реляционной теории и концептуальной модели понятие «ключ» применяется для атрибутов отношения или сущности.
Документация, необходимая для получения разрешения на строительство
... работе мы поговорим более подробно о документации, необходимой для разрешения на строительство. 1. Документация, необходимая для получения разрешения на строительство Согласно п. 2 ст. 48 <garantF1://12038258.4802> ГрК ... и земельных участков в их пределах, подготовки данных по обоснованию материалов, необходимых для территориального планирования, планировки территории и архитектурно- ...
Первичный ключ (primarykey) — главный ключевой элемент, однозначно идентифицирующий строку в таблице. Могут также существовать альтернативный (candidatekey) и уникальный (uniquekey) ключи, служащие также для идентификации строк в таблице.
В реляционной теории первичный ключ — минимальный набор атрибутов, однозначно идентифицирующий кортеж в отношении.
В концептуальной модели первичный ключ — минимальный набор атрибутов сущности, однозначно идентифицирующий экземпляр сущности.
Связь (relation) — функциональная зависимость между объектами. В реляционных базах данных между таблицами устанавливаются связи по ключам, один из которых в главной (parent, родительской) таблице — первичный, второй — внешний ключ — во внешней (child, дочерней) таблице, как правило, первичным не является и образует связь «один ко многим» (1:N).
В случае первичного внешнего ключа связь между таблицами имеет тип «один к одному» (1:1).
Информация о связях сохраняется в базе данных.
Внешний ключ (foreignkey) — ключевой элемент подчиненной (внешней , дочерней)
Для работы с БД используются системы управления базами данных
(СУБД).
СУБД — комплекс языковых и программных средств, предназначенных для создания, ведения и совместного использования БД несколькими пользователями. СУБД позволяет: создавать БД; вставлять, обновлять, удалять и извлекать информацию из БД; предоставляет контролируемый доступ к базе данных.
Взаимосвязь основных терминов в области проектирования баз данных и работы с ними
SQL — это стандартный язык доступа и управления базами данных (БД).
Язык структурированных запросов — это универсальный язык для создания, модификации и управления информацией, которая входит в состав реляционных баз данных.
Первоначально SQL был основным способом работы с данными. С помощью него пользователь мог выполнять следующие действия: создание новой таблицы в базе данных (БД); добавление новых записей в существующие таблицы; редактирование записей; полное удаление записей; выбор записи из разных таблиц, в соответствии с заданными условиями; изменение вида и структур одной или нескольких таблиц.
По мере своего развития, SQL сильно преобразился и обогатился новыми полезными функциями, в результате чего, все больше стал походить на настоящий язык программирования. На сегодняшний день, SQL — это единственный механизм, который способен связать прикладное программное обеспечение и базу данных. Вот, что такое SQL. SQL обладает несколькими видами запросов.
Стоит отметить, что любой запрос SQL подразумевает под собой или запрос данных из нужной базы, или обращение к базе с обязательным изменением в ней данных. В связи с этим принято выделять следующие виды запросов: создание или изменение в базе данных новых или уже существующих в ней объектов; получение данных; добавление новых данных в таблицу; удаление данных; обращение к системе управления базами данных (СУБД).
Немного о преимуществах и недостатках данной системы работы с данными. Преимущества SQL Независимость от существующей в данной системе СУБД. Тексты SQL являются универсальными для многих СУБД.
Однако это правило распространяется на простые задачи, связанные с обработкой данных в таблицах. Наличие стандартов SQL способствует «стабилизации» языка. Декларативность. Это преимущество заключается в том, что при работе с данными, программист выбирает только ту информацию, которая должна быть изменена или модифицирована. То, каким образом это будет сделано, в автоматическом режиме решается на программном уровне самой СУБД. Недостатки SQL SQL не соответствует реляционной модели построения данных. В этом плане, SQL замещает язык Tutorial D, который является истинно реляционным.
Сложность SQL определяет его предназначение. Язык настолько сложен, что им может пользоваться только программист. Хотя изначально он задумывался как средство управления, с которым будет работать обычный пользователь.
На современном рынке средств разработки ИС достаточно много систем, в той или иной степени удовлетворяющих перечисленням требованиям. CASE-средства ERwin и BPwin, разработанные фирмой PLATINUM, входят в число лучших на сегодняшний день.
ERwin — средство разработка структуры базы данных (БД).
ERwin сочетает графический интерфейс Windows, инструменты для построения ER-диаграмм, редакторы для создания логического и физического описания модели данных и прозрачную піддержку ведучих реляционных СУБД и настольных баз данных. С помощью ERwin можно создавать или проводить обратное проектирование (реинжиниринг) баз данных.
Возможны две точки зрения на информационную модель и, соответственно, два уровня модели. Первый — логический (точка зрения пользователя) — описывает данные, задействованные в бизнесе предприятия. Второй — физический — определяет представление информации в БД. ERwin объединяет их в единую диаграмму, имеющую несколько уровней представления.
C# (произносится «си шарп») — объектно-ориентированный язык программирования. Разработан в 1998—2001 годахгруппой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.
C# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеетстатическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML.
Переняв многое от своих предшественников — языков C++, Pascal, Модула, Smalltalk и, в особенности, Java — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное наследование классов (между тем допускается множественное наследование интерфейсов).
C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL.
Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем (однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET).
3. Разработка даталогической модели базы данных
3.1 Определение базовых таблиц
Каждую сущность необходимо преобразовать в таблицу.
Таблица Абитуриент: предназначена для хранения информации о поступающем абитуриенте . , Таблица Расписание: предназначена для хранения информации о экзаменах и консультации. , Таблица Регистрация: предназначена для хранения информации о номерах групп и потоков. , Таблица Паспортные данные: предназначена для хранения информации о паспорте абитуриента. , Таблица Факультет: предназначена для хранения информации о факультетах. , Таблица Поток: предназначена для хранения информации о потоках. , Таблица Группы: предназначена для хранения информации о группах. , Таблица Кафедра: предназначена для хранения информации о кафедре. , Таблица Оценки: предназначена для хранения информации о оценках абитуриентов.
3.2 Выполнение нормализации таблиц
Нормализация — процесс уменьшения избыточности информации в таблицах реляционной БД и , как следствие, построения оптимальной структуры таблиц и связей.
Нормализация — это разбиение таблицы на две или более обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта БД, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не только с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и не одно из ее ключевых полей не пусто.
Таблица 1 Абитуриент
Содержание поля |
Имя поля |
|
КодАбитуриента |
IDАбитуриента |
|
Фамилия |
Фамилия |
|
Имя |
Имя |
|
Отчество |
Отчество |
|
ПаспортныеДанные |
IDПаспорта |
|
Учебное заведени |
Учебное заведение |
|
Год Окончания |
Год Окончания |
|
Оценка за экзамен |
ОценкаЗаЭкзамен |
|
Наличие золотой медали |
Наличие золотой медали |
|
Номер аттестата |
Номер аттестата |
|
1НФ. Таблица 1 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 1 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 1 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 2 Расписание
Содержание поля |
Имя поля |
|
IDПредмета |
IDПредмета |
|
Название предмета |
Название |
|
Номер потока |
Номер потока |
|
Занятия |
Занятия |
|
Дата |
Дата |
|
1НФ. Таблица 2 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 2 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 2 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 3 Регистрация
Содержание поля |
Имя поля |
|
IDРегистрация |
IDРегистрация |
|
НомерАбитуриента |
IDАбитуриента |
|
Номер группы |
НомерГруппы |
|
Номер потока |
НомерПотока |
|
Название кафедры |
НазваниеКафедры |
|
Название факультета |
НазваниеФакультета |
|
1НФ. Таблица 3 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 3 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 3 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 4 Факультет
Содержание поля |
Имя поля |
|
IDФакультета |
IDФакультета |
|
Название факультета |
НазваниеФакультета |
|
1НФ. Таблица 4 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 4 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 4 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 5 Поток
Содержание поля |
Имя поля |
|
IDПотока |
IDПотока |
|
Количество групп |
КоличествоГрупп |
|
1НФ. Таблица 5 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 5 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 5 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 6 Группы
Содержание поля |
Имя поля |
|
IDГруппы |
IDГруппы |
|
Название группы |
НазваниеГруппы |
|
1НФ. Таблица 6 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 6 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 6 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 7 Кафедра
Содержание поля |
Имя поля |
|
IDКафедры |
IDКафедры |
|
Название кафедры |
НазваниеКафедры |
|
1НФ. Таблица 7 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 7 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 7 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 8 Паспортные данные
Содержание поля |
Имя поля |
|
IDПаспорта |
IDПаспорта |
|
Кем выдан |
КемВыдан |
|
Где выдан |
ГдеВыдан |
|
Серия |
Серия |
|
Номер |
Номер |
|
1НФ. Таблица 8 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 8 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 8 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
Таблица 9 Оценки
Содержание поля |
Имя поля |
|
IDОценки |
IDОценки |
|
Номер Абитуриента |
IDАбитуриента |
|
Номер Предмета |
IDПредмета |
|
Оценка |
Оценка |
|
1НФ. Таблица 8 удовлетворяет требованиям, т.к. каждая ячейка в таблице содержит атомарное значение
2НФ. Таблица 8 удовлетворяет условию, т.к. все поля зависят от ключевого поля и выполняется условия 1НФ.
3НФ. Таблица 8 удовлетворяет условию, т.к. каждое ключевое поле не зависит от других не ключевых полей.
3.3 Определение ограничения целостности
При разработке БД необходимо принимать во внимание правила обеспечения целостности данных (обеспечивает каскадное обновление записей в связанных таблицах)
При создании БД большое внимание должно быть уделено средствам поддержания данных в целостном состоянии. Рассмотрим предусмотренные стандартом языка SQL функции, которые предназначены для поддержания целостности данных. Эта поддержка включает средства задания ограничений, они вводятся с целью защиты базы данных от нарушения согласованности сохраняемых в ней данных. К таким типам поддержки целостности данных относятся:
- Обязательные данные;
- Ограничения для доменов полей;
- Целостность сущностей;
- Ссылочная целостность;
- Требования конкретного предприятия;
- Суррогатные первичные ключи: IDАбитуриента, IDПредмет, IDРегистрация, IDФакультета, IDПотока, IDГруппы, IDКафедры, IDПаспорта.
В БД «Приемная комиссия» в первую очередь заполняются таблицы:
Паспортные данные, Поток, Группы, Факультет, Кафедра.
В таблице «Абитуриент» находится 1 внешний ключ: IDПаспорта. Его мы подставляем из таблицы «Паспортные данные».
В таблице «Расписание» присутствуют 2 внешних ключа: IDПотока и IDАбитуриента. IDПотока мы подставляем из таблицы «Поток», а IDАбитуриента из таблицы «Абитуриент».
В таблице «Оценки» присутствуют 2 внешних ключа: IDПредмета и IDАбитуриента. IDПредмета мы подставляем из таблицы «Расписание», а IDАбитуриента из таблицы «Абитуриент».
В таблице «Регистрация» находятся 5 внешних ключей: IDПотока, IDГруппы, IDФакультета, IDКафедра, IDАбитуриента. IDПотока мы подставляем из таблицы «Поток», IDГруппы мы подставляем из таблицы «Группы», IDАбитуриента мы подставляем из таблицы «Абитуриент», IDФакультета мы подставляем из таблицы «Факультет», IDКафедры мы подставляем из таблицы «Кафедра».
Таблица 10 Абитуриент
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
КодАбитуриента |
IDАбитуриента |
int |
Суррогатный первичный ключ |
|
Фамилия |
Фамилия |
VChar(20) |
Обязательное поле |
|
Имя |
Имя |
VChar(20) |
Обязательное поле |
|
Отчество |
Отчество |
VChar(20) |
Обязательное поле |
|
ПаспортныеДанные |
IDПаспорта |
int |
Внешний ключ к таблице «Паспортные данные» |
|
Учебное заведение |
Учебное заведение |
VChar(20) |
Обязательное поле |
|
Год Окончания |
Год Окончания |
DATE |
Обязательное поле |
|
Наличие золотой медали |
Наличие золотой медали |
VChar(20) |
Обязательное поле |
|
Номер аттестата |
Номер аттестата |
NChar(20) |
Обязательное поле |
|
Таблица 11 Расписание
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDПредмета |
IDПредмета |
int |
Суррогатный первичный ключ |
|
Название предмета |
Название |
VChar(20) |
Обязательное поле |
|
Номер потока |
IDПотока |
int |
Внешний ключ к таблице «Поток» |
|
Занятия |
Занятия |
VChar(20) |
Обязательное поле |
|
Дата |
Дата |
DATE |
Обязательное поле |
|
Таблица 12 Регистрация
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDРегистрация |
IDРегистрация |
int |
Суррогатный первичный ключ |
|
НомерАбитуриента |
IDАбитуриента |
int |
Внешний ключ к таблице «Абитуриент» |
|
Номер группы |
НомерГруппы |
int |
Внешний ключ к таблице «Группы» |
|
Номер потока |
НомерПотока |
int |
Внешний ключ к таблице «Поток» |
|
Название кафедры |
НазваниеКафедры |
int |
Внешний ключ к таблице «Кафедра» |
|
Название факультета |
НазваниеФакультета |
int |
Внешний ключ к таблице «Факультет» |
|
Таблица 11 Факультет
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDФакультета |
IDФакультета |
int |
Суррогатный первичный ключ |
|
Название факультета |
НазваниеФакультета |
VChar(50) |
Обязательное поле |
|
Таблица 12 Поток
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDПотока |
IDПотока |
int |
Суррогатный первичный ключ |
|
Количество групп |
КоличествоГрупп |
VChar(10) |
Обязательное поле |
|
Таблица 13 Группы
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDГруппы |
IDГруппы |
int |
Суррогатный первичный ключ |
|
Название группы |
НазваниеГруппы |
VChar(50) |
Обязательное поле |
|
Таблица 14 Кафедра
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDКафедры |
IDКафедры |
int |
Суррогатный первичный ключ |
|
Название кафедры |
НазваниеКафедры |
VChar(50) |
Обязательное поле |
|
Таблица 15 Паспортные данные
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDПаспорта |
IDПаспорта |
int |
Суррогатный первичный ключ |
|
Кем выдан |
КемВыдан |
VChar(50) |
Обязательное поле |
|
Когда выдан |
КогдаВыдан |
date |
Обязательное поле |
|
Серия |
Серия |
NChar(10) |
Обязательное поле |
|
Номер |
Номер |
NChar(10) |
Обязательное поле |
|
Таблица 16 Оценки
Содержание поля |
Имя поля |
Тип, длина |
Ограничения |
|
IDОценки |
IDОценки |
int |
Суррогатный первичный ключ |
|
Номер Абитуриента |
IDАбитуриента |
int |
Внешний ключ к таблице «Абитуриент» |
|
Номер Предмета |
IDПредмета |
int |
Внешний ключ к таблице «Расписание» |
|
Оценка |
Оценка |
NChar(10) |
Обязательное поле |
|
3.4 Установление связи между таблицами
Отношения — это правила, поддерживаемые на уровне механизма реализации СУБД. Различают три типа отношений:
- Отношение «один-к-одному»: для каждой строки в одной таблице существует не более одной строки связанной таблицы.
- Отношение «один-ко-многим» одна таблица не содержит вообще или имеет набор связанных «дочерних» записей из другой таблице.
— Отношение «многие-ко-многим» для каждой строки в первой таблицы может существовать набор строк в другой таблице и наоборот, такая связь организуется, как правило, при помощи третьей связующей таблицы, содержащей значения первичных ключей обеих таблицы в качестве внешних ключей
№ связи |
Родительская сущность |
Дочерняя сущность |
Тип связи |
|
1 |
Абитуриент |
Расписание |
1:М |
|
2 |
Паспортные данные |
Абитуриент |
1:1 |
|
3 |
Поток |
Расписание |
1:М |
|
4 |
Кафедра |
Регистрация |
1:М |
|
5 |
Факультет |
Регистрация |
1:М |
|
6 |
Группы |
Регистрация |
1:М |
|
7 |
Поток |
Регистрация |
1:М |
|
8 |
Абитуриент |
Регистрация |
1:1 |
|
9 |
Абитуриент |
Оценка |
1:1 |
|
10 |
Предмет |
Оценка |
1:М |
|
4. SQL — запросы
Запрос1 «Абитуриенты, сдавшие экзамен на 5»
Данный запрос при выполнении дает информацию обо всех абитуриентах, сдавших экзамен на 5:
Данные для этого запроса берутся из таблицы Абитуриент, Оценки.
В режиме SQL запрос выглядит так:
SELECT dbo.Расписание.Занятия, dbo.Расписание.Название, dbo.Оценки.Оценка, dbo.Абитуриент.Фамилия, dbo.Абитуриент.Имя, dbo.Абитуриент.Отчество
FROM dbo.Абитуриент INNER JOIN
dbo.Оценки ON dbo.Абитуриент.IDАбитуриента = dbo.Оценки.IDАбитуриента AND dbo.Абитуриент.IDАбитуриента = dbo.Оценки.IDАбитуриента INNER JOIN
dbo.Расписание ON dbo.Оценки.IDПредмета = dbo.Расписание.IDПредмета
WHERE (dbo.Оценки.Оценка = N’5′)
Запрос 2 «Абитуриенты проживающие в Новгородской области»
Данный запрос при выполнении дает информацию количество человек, занимающихся у каждого тренера.
Данные для этого запроса берутся из таблицы Клиенты, Тренеры.
В режиме SQL запрос выглядит так:
SELECT Тренеры.Id_тренера, Тренеры.Фамилия_имя_тренера, Count(Клиенты.Id_клиента) AS Количество
FROM Тренеры INNER JOIN Клиенты ON Тренеры.Id_тренера = Клиенты.Id_тренера
GROUP BY Тренеры.Id_тренера, Тренеры.Фамилия_имя_тренера;
Запрос 3 «Клиенты должники»
Данный запрос при выполнении дает информацию клиентах должниках.
Данные для этого запроса берутся из таблицы Клиенты, Учет.
В режиме SQL запрос выглядит так:
SELECT Клиенты.Код_клиента, Учет.Произведена_оплата
FROM Клиенты INNER JOIN Учет ON Клиенты.Код_клиента = Учет.Код_клиента
WHERE (((Учет.Произведена_оплата)=No));
Запрос4 «Однотабличный подзапрос»
Данный запрос при выполнении дает информацию обо всех клиентах купивших абонемент в июне.
Данные для этого запроса берутся из таблицы Клиенты, Учет.
В режиме SQL запрос выглядит так:
SELECT Клиенты.Код_клиента, Клиенты.Фамилия, Клиенты.Имя
FROM Клиенты
WHERE (((Клиенты.Код_клиента) In (SELECT Учет.Код_клиента
FROM Учет
WHERE (Учет.Месяц)=»июнь»)));
5. Физическое проектирование
5.1 Создание пользовательского интерфейса
Рисунок 2Form 1. Программа написана на языке C#.
На первой форме располагаются следующие компоненты:
dataGridView- Отображает базу данных.
MenuStrip — Для открытия и редактирования таблиц.