База данных для хранения информации о студентах

Разработка и реализация базы данных карточек студентов. Работа с языком SQL. Анализ предметной области. Перечень хранимой информации: таблицы, поля, типы. Выделение справочных и оперативных данных. Создание и запуск базовых и продвинутых запросов SQL.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 17.11.2017
Размер файла 1,7 M

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

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

50

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

Содержание

  • Введение
  • 1. Анализ предметной области
  • 1.1 Общие сведения
  • 1.3 Перечень хранимой информации: таблицы, поля, типы
  • 1.4 Выделение справочных и оперативных данных
  • 1.5 Предполагаемые запросы к БД
  • 1.6 Вывод по разделу
  • 2. Моделирование предметной области
  • 2.1 Общие сведения
  • 2.2 Выделение сущностей, атрибутов, ключей, связей
  • 2.3 Проектирование диаграммы сущность - связь в ЕА
  • 2.4 Подготовка диаграммы сущность-связи в ЕА к переносу на целевую СУБД и автоматизированная генерация кода SQL
  • 2.5 Создание БД в MSSQLSQRVER. Перенос схемы из ЕА
  • 2.6 Создание диаграммы средствами MS SQL server и MS SQL server management studio
  • 2.7 Начальное заполнение БД
  • 2.8 Выводы по разделу
  • 3. Создание и запуск базовых запросов SQL
  • 3.1 Общие сведения
  • 3.2 Запросы на выборку данных
  • 3.3 Запрос на добавление и удаление записи
  • 3.5 Выводы по разделу
  • 4. Создание и запуск продвинутых запросов SQL
  • 4.1 Общие сведения
  • 4.2 Запросы на выборку данных
  • 4.3 Запрос на добавление таблиц
  • 4.4 Запрос на удаление и добавление
  • 4.5 Создание и удаление индексов
  • 4.3 Выводы по разделу
  • Заключение
  • Список литературы:
  • Список сокращений
  • Приложения

Введение

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

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

Второй раздел посвящён проектированию базы данных в прикладной программе EnterpriseArchitect (создание таблиц, полей и связей между таблицами). А так же экспорт БД в целевую СУБД, в нашем случае это MSSQLServer 2008 R2. Построение диаграммы базы, средствами MSSQLServer 2008 R2, и заполнение данными базу.

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

В заключении приводятся основные результаты и выводы по работе.

Приложения содержат схему БД и полный скрипт её создания в среде MSSQLServer 2008 R2.

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

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

1.1 Общие сведения

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

1.2 Основные сведения о предметной области

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

учёт студентов

учет успеваемости студента

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

запись на расселение

формирование истории студента, фиксация предпочтений

помощь вновь поступившим студентам

Таблица 1 - Основные достоинства и недостатки

Достоинства

Недостатки

Формирование истории студента, фиксация предпочтений

Неудобный интерфейс сайта

Разграничение прав доступа сотрудников к системе

Отсутствие расписания переселения

Защищённость системы

Неудобное управление

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

Рисунок 1 - Аналог системы

Рисунок 2 - Аналог системы

1.3 Перечень хранимой информации: таблицы, поля, типы

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

Таблица 2 - Таблица данных

Название таблицы

Поле

Тип

Студент

Код студента

число

Фамилия

текст

Имя

текст

Отчество

текст

Номер зачётки

число

Код комнаты

число

Коменданты

Код коменданта

число

Фамилия

текст

Имя

текст

Отчество

текст

Номер телефона

число

Общежития

Номер общежития

число

Адрес

текст

Код коменданта

число

Комнаты

Код комнаты

число

Номер общежития

число

Номер комнаты

число

Этаж

число

Кол-во мест

число

Заселение студентов

Номер заселения

число

Код студента

число

Код комнаты

число

1.4 Выделение справочных и оперативных данных

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

Таблица 3 - Справочные и оперативные данные

Справочные таблицы

Общежитие

Комнаты

Коменданты

Оперативные таблицы

Студенты

Заселение студентов

1.5 Предполагаемые запросы к БД

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

1. Вывести фамилии студента по номеру зачётки или же по номеру комнаты, в которой он проживает;

2. Поиск свободных комнат;

3. Поиск студентов проживающих вместе;

4. Поиск комендантов по его коду или имени;

5. Поиск комнат по коду студента.

1.6 Вывод по разделу

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

2. Моделирование предметной области

2.1 Общие сведения

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

2.2 Выделение сущностей, атрибутов, ключей, связей

Исходя из проанализированных баз данных, созданы основные таблицы с полями и типом данных, они приведены в 4 таблице.

Таблица 4 - Типы полей и данных моей БД

Название таблицы

Атрибуты

Тип Данных

Students

StudentCode

bigint

Surname

nvarchar

Name

nvarchar

SecondName

nvarchar

NumberZachetki

bigint

RoomCode

bigint

Comendants

ComendantCode

bigint

Surname

nvarchar

Name

nvarchar

SecondName

nvarchar

NmberPhone

bigint

Obsejitia

NumberObsejitia

bigint

Address

nvarchar

ComendantCode

bigint

Rooms

RoomCode

bigint

NumberObsejitia

bigint

NumberRoom

bigint

Floor

bigint

KolvoMest

bigint

ZaselenieStudents

NumberZaselenia

bigint

StudentCode

bigint

RoomCode

bigint

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

Таблица 5 - Выделение первичного (PK) и вторичного (FK) ключей

Наименование таблицы

Первичный ключ (РК)

Вторичный ключ (FK)

1

Students

StudentCode

RoomCode

2

Comendants

ComendantCode

-

3

Obsejitia

NumberObsejitia

ComendantCode

4

Rooms

RoomCode

NumberObsejitia

5

ZaselenieStudents

NumberZaselenia

StudentCode, RoomCode

Исходя из таблицы выше, видно какие поля в таблице являются первичными, а какие вторичными ключами.

2.3 Проектирование диаграммы сущность - связь в ЕА

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

Таблица 6 - Выделение ключей и связей

Название таблицы

Атрибуты

Тип Данных

Students

StudentCode (PK)

bigint

Surname

nvarchar

Name

nvarchar

SecondName

nvarchar

NumberZachetki

bigint

RoomCode (FK)

bigint

Comendants

ComendantCode (PK)

bigint

Surname

nvarchar

Name

nvarchar

SecondName

nvarchar

NmberPhone

bigint

Продолжение таблицы 6

Obsejitia

NumberObsejitia (PK)

bigint

Address

nvarchar

ComendantCode (FK)

bigint

Rooms

RoomCode (PK)

bigint

NumberObsejitia (FK)

bigint

NumberRoom

bigint

Floor

bigint

KolvoMest

bigint

ZaselenieStudents

NumberZaselenia (PK)

bigint

StudentCode (FK)

bigint

RoomCode (FK)

bigint

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

2.4 Подготовка диаграммы сущность-связи в ЕА к переносу на целевую СУБД и автоматизированная генерация кода SQL

Для того чтобы экспортировать схему, нужно сгенерировать код. Делается это путём следующих операций: нажатия на Tools-DatabaseEngineering-GeneratePackageDDL.

Рисунок 6 - Генерация кода

Далее задаётся название БД и место сохранения. В данном окне выбирается несколько пунктов, сначала ставится галочка напротив CreatePrimary/ForeignKeyConstraints, для того, что бы в базе данных в SQL были созданы ключи PK и FK. Дальше ставится галочка напротив GenerateIndex/Constraints, для того, что бы в БД были сгенерированы индексы. Индексы, требуются для увеличения скорости работы БД. GenerateTableOwner - для какого наименования БД будет использован полученный код. Дальше нажимаем Generate.

Рисунок 7 - Процесс генерирования кода

2.5 Создание БД в MSSQLSQRVER. Перенос схемы из ЕА

Затем код экспортируется в среду SQL. Для начала создадим пустую БД

Рисунок 8 - создание БД в среде SQL

После этого создадим пустой запрос и в него вставляем получившийся код, запускаем его.

Рисунок 9 - применение сгенерированного кода

Код удачно экспортирован. Теперь можно просмотреть результат применения кода.

Рисунок 10 - Результат применения кода

Наблюдаем таблицы и ключи, ранее созданные в среде ЕА.

2.6 Создание диаграммы средствами MS SQL server и MS SQL server management studio

Для простоты восприятия БД в среде SQL, создадим диаграмму средствами SQL.

Рисунок 11 - Схема БД в SQL

Построенная диаграмма аналогична диаграмме в ЕА. Конструктор баз данных - это визуальное средство, позволяющее конструировать и визуализировать базу данных, с которой установлено соединение. Конструктор баз данных используется для создания, редактирования и удаления таблиц, столбцов, ключей, индексов, связей и ограничений. Для визуализации базы данных можно создать одну или несколько диаграмм, иллюстрирующих некоторые или все имеющиеся в ней таблицы, столбцы, ключи и связи. Для любой базы данных можно создать любое необходимое количество диаграмм; каждая из таблиц базы данных может использоваться в любом количестве диаграмм. Таким образом, для визуализации различных частей базы данных или для акцентирования различных аспектов её конструирования можно создавать различные диаграммы. Например, можно создать большую диаграмму, в которой будут отображаться все таблицы и столбцы, а также меньшую диаграмму, в которой будут отображаться все таблицы, но не будет столбцов. Внутри диаграммы базы данных у каждой связи есть три отдельных элемента: конечные точки, стиль линии и связанные таблицы.

Конечные точки - линии показывают вид связи: "один к одному" или "один ко многим". Если на одной конечной точке связи находится ключ, а на другой - знак бесконечности, то это связь "один ко многим". Если у связи по одному ключу на каждой конечной точке, то это связь "один к одному".

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

Связанные таблицы. Линия связи показывает, что две таблицы связаны с помощью внешнего ключа. Для связи "один ко многим" таблица, связанная с помощью внешнего ключа, - это таблица около цифры 8 на линии. Если обе конечные точки линии присоединены к одной таблице, это означает возвратную связь.

2.7 Начальное заполнение БД

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

ЗапросSQL:

InsertIntoComendants (ComendantCode,Surname,Name,SecondName,NmberPhone)

VALUES (1,'Рионова','Александра','Александровна','927-217-66-77');

INSERTINTOComendantsVALUES (2,'Сидоров','Петр','Петрович','937-512-64-72');

INSERTINTOComendantsVALUES (3,'Хохлов','Василий','Иванович','45-34-86');

Листинг 1 - Заполнение БД

Рисунок 12 - Заполнение БД

2.8 Выводы по разделу

В данном разделе была спроектирована БД в среде EA и визуально представлена, затем перенесена в среду SQL, где была заполнена данными и представлена в виде схемы средствами SQL.

3. Создание и запуск базовых запросов SQL

3.1 Общие сведения

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

Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

- создание в базе данных новой таблицы;

- добавление в таблицу новых записей;

- изменение записей;

- удаление записей;

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

- изменение структур таблиц.

Со временем SQL усложнился - обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) - и стал приобретать черты, свойственные языкам программирования.

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

Каждое предложение SQL - это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

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

- запросы на получение данных;

- запросы на добавление новых данных (записей);

- запросы на удаление данных;

- обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы - это операции над таблицами. В соответствии с этим, запросы делятся на:

- запросы, оперирующие самими таблицами (создание и изменение таблиц);

- запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

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

- вставка новой строки;

- изменение значений полей строки или набора строк;

- удаление строки или набора строк.

Самый главный вид запроса - это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

- просмотреть полученный набор;

- изменить все записи набора;

- удалить все записи набора.

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

3.2 Запросы на выборку данных

SELECT - оператор DML языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих заданному условию.

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

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

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

a) Выбрать все.

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

Запрос SQL:

SELECT*

FROMStudents

Листинг 2 - Запрос SQL

Рисунок 13 - Результат запроса

b) Выбрать все и условие.

Если же нам нужно вывести список студентовc определённым номером зачётки, то будет использоваться запрос с условием.

Запрос SQL:

SELECT*

FROMStudents

whereNumberZachetkilike'09ВП118'

Листинг 3 - Запрос с условием

Рисунок 14 - Результат запроса

c) Выбрать что-то и условие:

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

Запрос SQL:

SELECTRoomCode

FROMRooms

whereKolvoMest='4'

Листинг 4 - Запрос с условием

Рисунок 15 - Результат запроса

d) Выбрать что-то и составное условие (И):

Если требуется вывести информацию о том, какой комендант прикреплён к общежитию, то стоит воспользоваться составным условием (И).

Запрос SQL:

SELECTComendantCode

FROMObsejitia

whereNumberObsejitia='1'andAddres='Стасова 36'

Листинг 5 - Запрос с условием (И)

Рисунок 16 - Результат запроса

e) Выбрать что-то и составное условие (ИЛИ):

Если нужно вывести фамилии студента по номеру зачётки или же по номеру комнаты, в которой он проживает, то стоит воспользоваться составным условием (ИЛИ).

Запрос SQL:

SELECTSurname

FROMStudents

whereNumberZachetki='11ВЕ222'orRoomCode='4'

Листинг 6 - Запрос с условием (ИЛИ)

Рисунок 17 - Результат запроса

3.3 Запрос на добавление и удаление записи

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

Во время выполнения оператора могут возникнуть ошибки:

- если при создании таблицы для поля был указан параметр notnull, и не было определено значение по умолчанию, то при отсутствии для него вставляемого значения возникнет ошибка. Решение очевидно:

- либо убрать параметр notnull

- либо указать значение по умолчанию

- либо вставить значение

- если произойдет попытка вставки в поле с типом identity (автоинкремент), то также произойдет ошибка. Решить проблему можно двумя способами:

- не вставлять значение в это поле

- указать опцию identity_inserton после чего вставить уникальное значение для этого столбца.

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

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

Запрос SQL:

InsertIntoStudents (StudentCode,Surname,Name,SecondName,NumberZachetki,RoomCode)

Values (100,'Ололошов','Ололош','Петрович','11ЦУ222',10)

Листинг 7 - Добавление записи

Рисунок 18 - Данные до добавления

Рисунок 19 - Процесс добавления данных и его результат

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

Далее рассмотрен пример изменения имени студента.

Запрос SQL:

updateStudents

setName='Стас'

whereStudentCode= 100

Листинг 9 - Обновление записи

Рисунок 20 - Данные до обновления

Рисунок 21 - Данные после обновления

Delete - операция удаления записей из таблицы. Критерий отбора записей для удаления определяется выражением where. В случае если критерий отбора не определён, выполняется удаление всех записей. При этом никакого результата команда не возвращает и, следовательно, не может быть использована в качестве параметра в команде SELECT. При удалении можно задавать конструкции JOIN связывающие несколько страниц, аналогично тому, как связываются таблицы в запросах выборки SELECT.

Пример удаления строки из таблицы.

Если вдруг студента отчислили, то удаляем его из БД следующим запросом:

deleteStudents

whereStudentCode= 100

Листинг 10 - Удаление записи

Рисунок 22 - Данные до удаления

Рисунок 23 - Данные после удаления

3.5 Выводы по разделу

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

4. Создание и запуск продвинутых запросов SQL

4.1 Общие сведения

Продвинутые запросы SQL отличаются от базовых запросов тем, что тут идёт работа не с 1 таблицей, а с 2-мя и более. Так же возможность создавать отдельные таблицы и так же проводить с ними операции, как удаление, изменение и прочее. Далее возможность работы с индексами, которые позволяют ускорять поиск по данным.

4.2 Запросы на выборку данных

Выбрать все из нескольких таблиц:

Запрос SQL:

select*

fromStudents,Rooms

Листинг 11 - Код запроса

Рисунок 24 - Результат запроса

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

Запрос SQL:

select*

fromStudents,Rooms

whereStudents. RoomCodelikeRooms. RoomCode

Листинг 30 - Продвинутый запрос с условием

Рисунок 25 - Результат запроса

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

Запрос SQL:

selectComendants. Name,Comendants. SecondName,Comendants. NmberPhone,Obsejitia. Addres

fromComendants,Obsejitia

whereComendants.comendantCodelikeObsejitia.comendantCode

Листинг 32 - Запрос с условием

Рисунок 26 - Результат запроса

Чтобы посмотреть данные определённого коменданта и узнать адрес его работы, то необходимо использовать запрос: выбрать что-то из несколько таблиц и составное условие (И).

Запрос SQL:

selectComendants. Name,Comendants. SecondName,Comendants. NmberPhone,Obsejitia. Addres

fromComendants,Obsejitia

whereComendants.comendantCodelikeObsejitia.comendantCodeandObsejitia.comendantCode='2'

Листинг 14 - Запрос с условием (И)

Рисунок 27 - Результат запроса

Если нам нужно найти студента по коду заселения или по номеру зачётки, то необходимо использовать запрос: выбрать что-то из несколько таблиц и составное условие (ИЛИ):

Запрос SQL:

SelectStudents. Surname,Students. Name,Students. SecondName

FromStudents,ZaselenieStudents

WhereStudents. NumberZachetki='11ВЕ124'orZaselenieStudents. NumberZaselenia='4'

Листинг 15 - Запрос с условием (ИЛИ)

Рисунок 28 - Результат запроса

4.3 Запрос на добавление таблиц

В процессе разработки БД стало необходимо добавить четыре новые таблицы для более удобной работы: Успеваемость, Кураторы, Преподаватели, Кафедры, из которых таблицы “Куратор”, “Преподаватели” являются справочными, остальные оперативными. Их поля и ключи представлены в таблице 7. Для создания таблицы про помощи встроенных функций SQL, можно использовать команду CREATTABLE.

Таблица 7 - Новые таблицы

Сущность

Атрибут

Тип данных

Ключ

Uspevaemost (Успеваемость)

StudentCode

bigint

FK

UspevaemostCode

bigint

PK

Otsenka_zachet

nvarchar

-

Kuratory (Кураторы)

StudentCode

bigint

FK

Surname

nvarchar

-

Name

nvarchar

-

SecondName

nvarchar

-

KuratoryCode

bigint

FK

KafedryCode

bigint

-

Prepodavateli (Преподаватели)

Surname

nvarchar

PK

Name

nvarchar

-

SecondName

nvarchar

-

KafedryCode

bigint

FK

kafedry (Кафедры)

KafedryCode

bigint

PK

KafedryName

nvarchar

-

ЗапросSQL:

CREATETABLEUspevaemost (

StudentCodebigintNOTNULL,

UspevaemostCodebigintNOTNULL,

Otsenka_zachetnvarchar (55) NOTNULL,);

Листинг 16 - Создание таблицы

Рисунок 29 - Результат запроса

Оставшиеся четыре таблицы создаются таким же способом.

CREATETABLEKuratory (

StudentCodebigintNOTNULL,

KuratoryCodebigintNOTNULL,

Surnamenvarchar (55) NOTNULL,

Namenvarchar (55) NOTNULL,

SecondNamenvarchar (55) NOTNULL,

KafedryCodebigintNOTNULL,);

Листинг 17 - Создание таблицы

Рисунок 30- Результат запроса

CREATETABLEPrepodavateli (

KafedryCodebigintNOTNULL,

Surnamenvarchar (55) NOTNULL,

Namenvarchar (55) NOTNULL,

SecondNamenvarchar (55) NOTNULL,);

Листинг 18 - Создание таблицы

Рисунок 31 - Результат запроса

Далее задается PK и FK в созданных таблицах. Сделаем это через графическую среду. Для этого создадим диаграмму в SQL

Рисунок 32 - Диаграмма после добавления таблиц

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

Рисунок 33 - Контекстное меню для выделения PK

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

Рисунок 34 - Создание Связи между таблицами

Оставшиеся связи добавляем аналогичным способом, результат добавления представлен на рисунке 42.

Рисунок 34 - Диаграмма после добавления таблиц и связей

4.4 Запрос на удаление и добавление

Для удаления ненужного столбца используется следующий запрос:

ЗапросSQL:

altertablePrepodavateli

dropcolumnSurname

Листинг 20 - Удаления столбца

Рисунок 35 - Результат до удаления

Рисунок 36 - Результат удаления

Чтобы добавить столбец используется команда ALTERTABLE. Воспользуемся ей, чтобы вернуть наш столбец.

ЗапросSQL:

altertablePrepodavateli

addSurnamenvarchar (55) NOTNULL

Листинг 21 - Добавление столбца

Рисунок 37 - Результат добавления

4.5 Создание и удаление индексов

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

useKursov;

createindexstudentsonStudents (StudentCode)

Листинг 22 - Создание индекса

Рисунок 38 - Результат добавления индекса

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

createuniqueindexroomsonRooms (RoomCode)

Листинг 23 - Создание уникального индекса

Рисунок 39 - Результат создания

Для удаления индекса используется команда DROPINDEX.

DropindexroomsonRooms

Листинг 24 - Удаление индекса

Рисунок 40 - Результат удаления

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

Запрос SQL:

select*intoStudentCodefromStudents

whereStudentCode>'1'

Листинг 25 - Вынесение информации в отдельную таблицу

Рисунок 41 - Результат добавления

Рисунок 42 - Результат добавления

Для создания одной таблицы из нескольких требуется следующий запрос: selectSecondName,Name,NumberRoom, intotable1, fromStudentCode,Rooms

Листинг 26 - Создание таблицы

Рисунок 43 - Результат создания

Рисунок 44 - Результат создания

Для удаления таблицы можно воспользоваться командой DROPTABLE.

ЗапросSQL:

droptableTable1

Листинг 27 - Удаление таблицы

Рисунок 45 - Результат удаления

4.3 Выводы по разделу

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

Заключение

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

Были изучены основы языка SQL, которые позволяют создать таблицу, поля, связи, отредактировать все записи, таблицы и поля. Заполнение БД 2-мя способами, как графическим, так и при помощи языка SQL. Удаление самой БД, отдельных частей (таблицу или информацию).

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

Второй раздел посвящён проектированию базы данных в прикладной программе EnterpriseArchitect (создание таблиц, полей и связей между таблицами). А так же экспорт БД в целевую СУБД, в нашем случае это MSSQLServer 2008 R2. Построение диаграммы базы, средствами MSSQLServer 2008 R2, и заполнение данными базу.

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

В заключении приводятся основные результаты и выводы по работе.

Приложения содержат схему БД и полный скрипт её создания в среде MSSQLServer 2008 R2. В ходе курсового проектирования все поставленные задачи были успешно выполнены.

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

Основная литература:

1. Аткинсон, Леон MySQL. Библиотека профессионала; М.: Вильямс, 2010. - 624 c.

2. Горев А., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. - СПб.: Питер, 1997. - 704 с.

3. Соломон Девид и др. Microsoft SQL Server 6.5 Энциклопедия пользователя. - К.: ДиаСофт, 1998. - 784 с.

4. Джеймс Р. Грофф, Пол Н. Вайнберг. SQL: Полное руководство. - К.: BHV, 1998. - 608 c.

5. Ладани Ханс. SQL. Энциклопедия пользователя. - М.: ДиаСофт, 1998. - 624 с

Дополнительная литература:

1 Горелов А., Макашарипов С., Владимиров Ю. Microsoft SQL Server 6.5 для профессионалов. - СПб: Питер, 1998. - 464 с.

2 РобертД. Шнайдер. Microsoft SQL Server. Проектирование высокопроизводительных баз данных. - М.: ЛОРИ, 1998. - 361 с.

3 РонСаукап. Основы Microsoft SQL Server 6.5 - М.: Издательский отдел “Русская редакция” ТОО "ChannelTraidingLtd". - 1999. - 704 c.

4 Уанкуп Д. MS SQL Server 6.5 в подлиннике. - М.: Издательский дом “Вильямс”, 1999. - 912 с.

5 Бек, Кент Шаблоны реализации корпоративных приложений; М.: Вильямс, 2008. - 369 c.

6 Роберт Сигнор, Михаэль О. Стегман. Использование ODBC для доступа к базам данных. - М.: БИНОМ, 1995. - 384 с.

7 Кузнецов С.Д. Стандарты языка реляционных баз данных SQL: краткий обзор // СУБД. - N 2, 1996. - C.6-36

8 Венкатрао М., Пиццо М. SQL/CLI - новый стиль связывания для SQL // СУБД. - N 2, 1996. - C.37-44

9 Боуман Дж., Эмерсон С., Дарновски М. Практическое руководство по SQL. - М.: Диалектика, 1997. - 320 с.

10 Райан Стивенс, Рональд Р. Плю. SQL. - М.: БИНОМ, 1997. - 400с.

Интернет ресурсы:

1. Форум программистов и сисадминов CyberForum.ru. URL: http://www.cyberforum.ru/ (дата обращения: 15.10.2014; 10.01.2015).

2. Самоучитель по SQLonlinesamoucka.ru. URL: http://samoucka.ru/document29118.html (дата обращения: 15.10.2014; 10.01.2015).

3. О проекте “Самсон" - аналог БД samson-rus. URL: http://samson-rus.com/content/view/15/37/ (дата обращения 15.10.2014; 10.01.2015).

4. Публикации про SQLsql.ru. URL: http://www.sql.ru/articles/publications. shtml (дата обращения 15.10.2014; 10.01.2015).

Список сокращений

EA - EnterpriseArchitect

БД - база данных

СУБД - система управления базами данных

PK - первичный ключ

FK - вторичный ключ

SQL - StructuredQueryLanguage (Структурированный язык запросов)

Приложения

Приложение А

Схема БД

Приложение А - Схема БД в ЕА

Приложение Б

SQL код БД

USEKursov

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('FK_ComendantCode') ANDOBJECTPROPERTY (id,'IsForeignKey') = 1)

ALTERTABLEObsejitiaDROPCONSTRAINTFK_ComendantCode

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('FK_NumberObsejitia') ANDOBJECTPROPERTY (id,'IsForeignKey') = 1)

ALTERTABLERoomsDROPCONSTRAINTFK_NumberObsejitia

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('FK_RoomCode') ANDOBJECTPROPERTY (id,'IsForeignKey') = 1)

ALTERTABLEZaselenieStudentsDROPCONSTRAINTFK_RoomCode

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('FK_StudentCode') ANDOBJECTPROPERTY (id,'IsForeignKey') = 1)

ALTERTABLEZaselenieStudentsDROPCONSTRAINTFK_StudentCode

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('Comendants') ANDOBJECTPROPERTY (id,'IsUserTable') = 1)

DROPTABLEComendants

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('Obsejitia') ANDOBJECTPROPERTY (id,'IsUserTable') = 1)

DROPTABLEObsejitia

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('Rooms') ANDOBJECTPROPERTY (id,'IsUserTable') = 1)

DROPTABLERooms

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('Students') ANDOBJECTPROPERTY (id,'IsUserTable') = 1)

DROPTABLEStudents

;

IFEXISTS (SELECT*FROMdbo. sysobjectsWHEREid=object_id ('ZaselenieStudents') ANDOBJECTPROPERTY (id,'IsUserTable') = 1)

DROPTABLEZaselenieStudents

;

CREATETABLEComendants (

ComendantCodebigintNOTNULL,

Surnamenvarchar (50) NOTNULL,

Namenvarchar (50) NOTNULL,

SecondNamenvarchar (50) NOTNULL,

NmberPhonenvarchar (20) NOTNULL

)

;

CREATETABLEObsejitia (

NumberObsejitiabigintNOTNULL,

Addresnvarchar (50) NOTNULL,

ComendantCodebigintNOTNULL

)

;

CREATETABLERooms (

RoomCodebigintNOTNULL,

NumberObsejitiabigintNOTNULL,

NumberRoombigintNOTNULL,

FloorbigintNOTNULL,

KolvoMestbigintNOTNULL

)

;

CREATETABLEStudents (

StudentCodebigintNOTNULL,

Surnamenvarchar (50) NOTNULL,

Namenvarchar (50) NOTNULL,

SecondNamenvarchar (50) NOTNULL,

NumberZachetkinvarchar (40) NOTNULL,

RoomCodebigintNOTNULL

)

;

CREATETABLEZaselenieStudents (

NumberZaseleniabigintNOTNULL,

StudentCodebigintNOTNULL,

RoomCodebigintNOTNULL

)

;

ALTERTABLEComendants

ADDCONSTRAINTUQ_Comendants_ComendantCodeUNIQUE (ComendantCode)

;

ALTERTABLEObsejitia

ADDCONSTRAINTUQ_Obsejitia_NumberObsejitiaUNIQUE (NumberObsejitia)

;

ALTERTABLERooms

ADDCONSTRAINTUQ_Rooms_RoomCodeUNIQUE (RoomCode)

;

ALTERTABLEStudents

ADDCONSTRAINTUQ_Students_StudentCodeUNIQUE (StudentCode)

;

ALTERTABLEZaselenieStudents

ADDCONSTRAINTUQ_ZaselenieStudents_NumberZaseleniaUNIQUE (NumberZaselenia)

;

ALTERTABLEComendantsADDCONSTRAINTPK_Comendants

PRIMARYKEYCLUSTERED (ComendantCode)

;

ALTERTABLEObsejitiaADDCONSTRAINTPK_Obsejitia

PRIMARYKEYCLUSTERED (NumberObsejitia)

;

ALTERTABLERoomsADDCONSTRAINTPK_Rooms

PRIMARYKEYCLUSTERED (RoomCode)

;

ALTERTABLEStudentsADDCONSTRAINTPK_Students

PRIMARYKEYCLUSTERED (StudentCode)

;

ALTERTABLEZaselenieStudentsADDCONSTRAINTPK_ZaselenieStudents

PRIMARYKEYCLUSTERED (NumberZaselenia)

;

ALTERTABLEObsejitiaADDCONSTRAINTFK_ComendantCode

FOREIGNKEY (ComendantCode) REFERENCESComendants (ComendantCode)

;

ALTERTABLERoomsADDCONSTRAINTFK_NumberObsejitia

FOREIGNKEY (NumberObsejitia) REFERENCESObsejitia (NumberObsejitia)

;

ALTERTABLEZaselenieStudentsADDCONSTRAINTFK_RoomCode

FOREIGNKEY (RoomCode) REFERENCESRooms (RoomCode)

;

ALTERTABLEZaselenieStudentsADDCONSTRAINTFK_StudentCode

FOREIGNKEY (StudentCode) REFERENCESStudents (StudentCode)

;

Размещено на Allbest.ru

...

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

  • Анализ предметной области. Перечень хранимой информации: таблицы, поля, типы. Выделение сущностей, атрибутов, ключей, связей. Начальное заполнение данными БД. Создание и запуск базовых запросов. Проектирование базы данных в среде Enterprise Architect.

    курсовая работа [1,6 M], добавлен 16.02.2016

  • Анализ предметной области - магазин "Канцелярские товары". Проектирование и реализация учебной базы данных магазина. Перечень хранимой информации: таблицы, поля, типы. Выделение сущностей, атрибутов, ключей, связей. Создание и запуск базовых запросов SQL.

    курсовая работа [2,4 M], добавлен 09.08.2015

  • Анализ предметной области - магазин "Канцелярские товары". Проектирование и реализация базы данных в MS SQL Server. Перечень хранимой информации: таблицы, поля, типы. Моделирование предметной области. Выделение сущностей, атрибутов, ключей, связей.

    курсовая работа [2,2 M], добавлен 05.02.2015

  • Разновидности систем управления базами данных. Анализ предметной области. Разработка структуры и ведение базы данных. Структурированный язык запросов SQL. Организация выбора информации из базы данных. Общие принципы проектирования экранных форм, макросов.

    курсовая работа [3,1 M], добавлен 26.02.2016

  • Осуществление анализа предметной области и определение модели базы данных. Реализация базы данных в среде Microsoft Access. Создание и исследование формы ввода информации, запросов с условиями выбора, диаграмм по результатам вычислений и отчетов.

    курсовая работа [246,1 K], добавлен 19.10.2013

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

    курсовая работа [5,6 M], добавлен 24.07.2014

  • Анализ предметной области. Требования, предъявляемые при составлении базы данных гостиницы. Реализация процесса поиска необходимой информации. Формирование таблиц, запросов, отчетов и вывод их на печать. Редактирование, добавление и хранение данных.

    курсовая работа [2,0 M], добавлен 07.02.2016

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

    курсовая работа [1,1 M], добавлен 18.07.2014

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

    курсовая работа [501,7 K], добавлен 02.12.2014

  • Назначение для информационной системы OpenPOS для автоматизации рабочих процессов в заведениях общественного питания. Состав и структура исходных данных. Основные сведения о предметной области, ее моделирование. Создание и запуск базовых запросов SQL.

    курсовая работа [2,2 M], добавлен 28.01.2016

  • База данных для работников деканата для хранения сведений о группах и студентах и о результатах текущей сессии. Построение инфологической модели предметной области. Создание базы данных в Microsoft Access 2000. Создание элементов управления базой данных.

    курсовая работа [4,5 M], добавлен 22.08.2009

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

    курсовая работа [981,4 K], добавлен 05.11.2011

  • Сущности и функциональные зависимости базы данных. Атрибуты и связи. Таблицы базы данных. Построение ER-диаграммы. Организация ввода и корректировки данных. Реляционная схема базы данных. Реализация запросов, получение отчетов. Защита базы данных.

    курсовая работа [2,4 M], добавлен 06.02.2016

  • Создание модели "сущность-связь" и нормализация данных средствами программы Microsoft Access. Идентификация объектов предметной области и отношений между ними, разработка структуры физической модели, запросов и отчетов базы данных о студентах ВУЗа.

    контрольная работа [742,8 K], добавлен 08.06.2011

  • Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.

    курсовая работа [318,6 K], добавлен 24.12.2014

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

    курсовая работа [2,1 M], добавлен 17.06.2013

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

    курсовая работа [1,1 M], добавлен 11.09.2010

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

    контрольная работа [648,7 K], добавлен 13.04.2012

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

    курсовая работа [1,9 M], добавлен 17.06.2014

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

    курсовая работа [53,3 K], добавлен 12.06.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.