Существует три принципиальных отличия между системами управления реляционными базами данных (СУРБД) и программами электронных таблиц:
1) Все СУРБД разрабатываются с целью обеспечения эффективной обработки больших объемов информации, намного больших, чем те, с которыми справляются электронные таблицы;
2) СУРБД может легко связывать две таблицы так, что для пользователя они будут представляться одной таблицей. Реализовать такую возможность в системах управления электронными таблицами сложно, а иногда просто не возможно;
) СУРБД минимизирует общий объем базы данных. Для этого
) таблицы, содержащие повторяющиеся данные, разбиваются на несколько связанных таблиц.
В реляционных базах данных стараются исключить повторяющиеся данные, что уменьшает общий объем базы данных и снижает требования к аппаратуре.
SQL - универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.основывается на исчислении кортежей SQL в настоящее время является промышленным стандартом, который в большей или меньшей степени поддерживает любая СУБД, претендующая на звание "реляционной".является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. SQL нельзя назвать языком программирования.
Изначально, SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:
создание в базе данных новой таблицы;
добавление в таблицу новых записей;
изменение записей;
удаление записей;
выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);
изменение структур таблиц.
Со временем, SQL усложнился - обогатился новыми конструкциями, обеспечил возможность описания и управления новыми хранимыми объектами (например, индексы, представления, триггеры и хранимые процедуры) - и стал приобретать черты, свойственные языкам программирования.
При всех своих изменениях, SQL остаётся единственным механизмом связи между прикладным программным обеспечением и базой данных. В то же время, современные СУБД, а, также, информационные системы, использующие СУБД, предоставляют пользователю развитые средства визуального построения запросов.
Каждое предложение SQL - это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:
запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);
запросы на получение данных;
запросы на добавление новых данных (записей)
запросы на удаление данных;
обращения к СУБД.
Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы - это операции над таблицами. В соответствии с этим, запросы делятся на:
запросы, оперирующие самими таблицами (создание и изменение таблиц);
запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.
Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием
типа хранимых в каждом поле значений;
связей между таблицами (задание первичных и вторичных ключей);
информации, необходимой для построения индексов.
Запросы первого типа, в свою очередь, делятся на запросы, предназначенные для создания в базе данных новых таблиц, и на запросы, предназначенные для изменения уже существующих таблиц. Запросы второго типа оперируют со строками, и их можно разделить на запросы следующего вида:
вставка новой строки;
изменение значений полей строки или набора строк;
удаление строки или набора строк.
Самый главный вид запроса - это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:
просмотреть полученный набор;
изменить все записи набора;
удалить все записи набора.
Таким образом, использование SQL сводится, по сути, к формированию всевозможных выборок строк и совершению операций над всеми записями, входящими в набор.
Язык SQL представляет собой совокупность:
операторов;
инструкций;
вычисляемых функций.
Операторы:
Согласно общепринятому стилю программирования, операторы (и другие зарезервированные слова) в SQL всегда следует писать прописными буквами.
Операторы SQL делятся на:
операторы манипуляции данными (Data Manipulation Language, DML):считывает данные, удовлетворяющие заданным условиямдобавляет новые данныеизменяет существующие данныеудаляет данные
операторы определения доступа к данным (Data Control Language, DCL):предоставляет пользователю (группе) разрешения на определенные операции с объектомотзывает ранее выданные разрешениязадает запрет, имеющий приоритет над разрешением
операторы управления транзакциями (Transaction Control Language, TCL):применяет транзакцию.откатывает все изменения, сделанные в контексте текущей транзакции.делит транзакцию на более мелкие участки.
Хотя SQL стандартизован, любая его версия отличается от стандарта. Бывает, что одни и те же конструкции не работают на разных платформах. Сам SQL покрывает все подмножество реляционной алгебры. И считается, что на нем можно написать любую реляционную БД.
С помощью SQL программист описывает только то, какие данные нужно извлечь
или модифицировать. То, каким образом это сделать, решает СУБД непосредственно
при обработке SQL-запроса. Однако не стоит думать, что это полностью
универсальный принцип - программист описывает набор данных для выборки или
модификации, однако ему при этом полезно представлять, как СУБД будет разбирать
текст его запроса. Чем сложнее сконструирован запрос, тем больше он допускает
вариантов написания, различных по скорости выполнения, но одинаковых по
итоговому набору данных.
1.3.2 Моделирование информационной системы
Диаграммой «сущность-связь» или ER-диаграммой называется схематическое
изображение сущностей и связей системы для более наглядного понимания структуры
проектируемой системы. Классы сущностей на таких диаграммах принято обозначать
прямоугольниками, а связи - ромбами. Имя сущности указывается внутри
прямоугольника, а имя связи - рядом с ромбом.
Рис.1.1
Рис.1.2 Схема базы данных
Структура БД:
Под описанием структуры БД понимается описание составляющих базу данных
отношений, а фактически, входящих в них атрибутов.
1.3.3 Анализ таблиц базы данных
База данных для отслеживания сданной отчетности по Нижегородской области содержит в себе 12 таблицы. Таблицы - это основные объекты любой базы данных, они построены на основе ER-диаграммы.
Таблица 1.3 CLIENTAGE
Данная таблица содержит список клиентов, с необходимыми данными
|
Наименование поля |
Тип поля |
Описание |
|
IDCLIENT |
INTEGER |
Идентификатор таблицы клиенты |
|
NAMECLIENT |
VARCHAR(40) |
Наименование клиента |
|
INN |
VARCHAR(12) |
ИНН |
|
ADDRESS |
VARCHAR(40) |
Адрес |
|
IDTAXATIONSYSTEM |
INTEGER |
Идентификатор системы налогообложения |
|
DISTRICT_ID |
SMALLINT |
Идентификатор района |
|
ID_SUB_REP |
SMALLINT |
Поле для связи с таблицей видов сдачи отчетности |
Таблица 1.4 DEADLINES
Данная таблица содержит данные о сроках сдачи отчетности
|
Наименование поля |
Тип поля |
Описание |
|
IDDECLARATION |
INTEGER |
Идентификатор декларации |
|
IDTERM |
INTEGER |
Идентификатор срока сдачи отчетности |
|
TERM |
VARCHAR(10) |
Срок сдачи отчетности |
|
QUARTER |
INTEGER |
Квартал |
|
REPORTYEAR |
INTEGER |
Отчетный год |
Таблица 1.5 DECLARATION
Данная таблица содержит данные о видах деклараций
|
Наименование поля |
Тип поля |
Описание |
|
IDDECLARATION |
INTEGER |
Идентификатор декларации |
|
NAMEDECLARATION |
VARCHAR(20) |
Наименование декларации |
|
IDFUND |
INTEGER |
Идентификатор фонда |
|
ID_DEADLINE |
INTEGER |
Идентификатор срока сдачи отчетности |
Таблица 1.6 DISTRICT
Данная таблица содержит список районов
|
Наименование поля |
Тип поля |
Описание |
|
IDDISTRICT |
INTEGER |
Идентификатор района |
|
NAMEDISTRICT |
VARCHAR(15) |
Наименование района |
|
DIST_LINK_ID |
INTEGER |
поле для связи с таблицей районов |
Таблица 1.7 FUNDS
Данная таблица содержит список фондов
|
Наименование поля |
Тип поля |
Описание |
|
IDFUND |
INTEGER |
Идентификатор фонда |
|
NAMEFUND |
VARCHAR(20) |
Наименование фонда |
|
INN |
VARCHAR(12) |
ИНН |
|
ADDRESS |
VARCHAR(40) |
Адрес |
|
ID_DECL |
INTEGER |
Идентификатор декларации |
Таблица 1.8 INTERNALREPORTS
Данная таблица содержит внутренние отчеты
|
Наименование поля |
Тип поля |
Описание |
|
NAMEOPERATION |
VARCHAR(25) |
Наименование операции |
|
IDOPERATION |
INTEGER |
Идентификатор операции |
|
NAMEMONTH |
VARCHAR(10) |
Месяц |
|
REPORTYEAR |
INTEGER |
Отчетный год |
|
DONE |
INTEGER |
Сделано |
|
RESPONSIBLE |
VARCHAR(15) |
Ответственный |
|
OPERАTION_DICT_ID |
INTEGER |
Поле для связи с таблицей операций |
|
CLIENT_NAME |
INTEGER |
Наименование клиента |
|
ID_RESPONSIBLE |
INTEGER |
Идентификатор ответственного |
Таблица 1.9 OPERATIONS
Данная таблица содержит список операций
|
Наименование поля |
Тип поля |
Описание |
|
ID_OPERATION |
INTEGER |
Идентификатор операции |
|
OPERATION_NAME |
VARCHAR(30) |
Наименование операции |
Таблица 1.10 PROGRESS
Данная таблица содержит данные о ходе выполнения работы
|
Наименование поля |
Тип поля |
Описание |
|
IDPROGRESS |
INTEGER |
Идентификатор хода выполнения работы |
|
IDDECLARATION |
INTEGER |
Идентификатор декларации |
|
IDCLIENT |
INTEGER |
Идентификатор клиента |
|
DONE |
INTEGER |
Сделано |
|
SENT |
INTEGER |
Отправлено |
|
RECEIVED |
INTEGER |
Принято |
|
IDFUND |
INTEGER |
Идентификатор фонда |
|
ID_DISTRICT |
INTEGER |
Идентификатор района |
|
ID_TAX_SYSTEM |
INTEGER |
Идентификатор для связи с таблицей "системы налогообложения" |
|
ID_SUB_REP |
SMALLINT |
Поле для связи с таблицей видов сдачи отчетности |