/>/>Введение
База данных — это совокупностьданных, организованных по определенным правилам, предусматривающим общиепринципы писания, хранения и манипулирования данным, независимая от прикладныхпрограмм. Может рассматриваться как информационная модель предметной области.Создание, ведение и использование БД выполняется с помощью комплексапрограммных и языковых средств, называемых системами управления базами данных(СУБД).
База данных — это набор данных,в котором осуществляется регулярный систематический поиск для выборки нужнойинформации.
Система управления базами данных(СУБД) – это набор языковых и программных средств для создания и ведения базданных: обновления данных базы, обеспечения доступа к данным по запросам ивыдачи их пользователям и др.
В настоящее время все БДявляются реляционными, т.е. представленными в виде совокупности так называемыхреляционных таблиц. Таблицы называются реляционными, если они удовлетворяютследующим требованиям:
1) Каждый элемент таблицыпредставляет одно значение.
2) Все столбцы таблицы являютсяоднородными (т.е. все элементы столбца представляют данные одного и того жетипа).
3) Столбцам однозначно присвоеныимена.
4) Нет одинаковых строк.
5) Строки и столбцы могутпросматриваться в любом нужном порядке.
В БД таблицы с указаннымисвойствами часто называются отношениями. Описание отношения называется схемойотношения.
БД, построенная с помощьюотношений, называется реляционной.
Организация данных являетсяключевым моментом при работе с большими объемами информации. Чрезвычайно важноупорядочить данные таким образом, чтобы легко и быстро находить нужныесведения. Способ упорядочивания может быть предельно простым, как, например,карманный календарь, или сложным, как компьютерная система, охватывающая целоепредприятие. Неизменным остается основной принцип — собрать необходимыесведения в одном месте и иметь их под рукой.
/>/>1. Теоретическаячасть
/>/>
1.1 Обоснованиеразработки
Данная база данных предназначенадля создания, редактирования и последующей печати: списков групп, списковпредназначенных для аттестации сотрудников и списков вызова сотрудников нааттестацию
Данная программапредназначена для использования на определенном предприятии, но её аналоги могутбыть интересны другим организациям и обычным пользователям домашнего ПК, таккак предоставляет возможность быстрого поиска записей и оперативно вноситьизменения или делать замены в данных.
/>/>1.2 Обзорсуществующих подходов к решению задачи
Для создания могутприменяться несколько подходов
1.2.1Основы проектирования БД
Проектирование БД начинается сопределения предметной области, информационную модель которой нужно построить.Предметная область может быть представлена как множество объектов, разбитое нанекоторое конечное число классов. Каждый класс объектов характеризуется наборомпризнаков, которые в терминологии БД называются атрибутами. Таким образом, в БДобъекты каждого класса представляются набором своих атрибутов. Далее, дляклассов объектов устанавливаются отношения (в общем случае n-местные), которые представляютсясхемами.
В большинстве случаев в процессепроектирования БД представляется в виде сети, в которой узлы соответствуютсхемам отношений (т.е. классам объектов), а дуги указывают на связи междуклассами. В некоторых случаях возможно представление схем БД в виде деревьев.
Важным этапом проектирования БДявляется нормализация, т.е. преобразование сети, представляющей БД, сначала вдеревья, а затем в совокупность отношений. При этом связи, представленные всетях дугами, учитываются путем добавления в соответствующие отношения общихатрибутов. Нормализация – процесс, состоящий из нескольких шагов: сначаластроится первая нормальная форма БД, затем она преобразуется в более удобнуюдля использования вторую нормальную форму, затем строится третья нормальнаяформа и этот процесс может быть продолжен.
Методы построения СУБД
С точки зрения организации работс БД СУБД делятся на:
— предназначенные дляиндивидуальной работы на персональных компьютерах,
— предназначенные дляколлективной работы в сетях.
Приступая к построению СУБД,разработчики прежде всего должны учесть, СУБД какого из указанных типов должнобыть построено.
Наиболее сложно организованнымиСУБД являются системы второго типа. Обычно различаются следующие вариантыработы с СУБД:
— индивидуальная (этот вариантработы возможен с СУБД обоих типов);
— в сети с централизованнойобработкой данных;
— в сети с распределеннойобработкой данных (в этом случае используется так называемая архитектура«клиент — сервер»).
Последние два варианта работывозможны только с СУБД второго типа.
При проектировании СУБДобеспечиваются средства описания, формирования данных их модификации, ииспользования для получения информации, необходимой пользователю. Каждая СУБДимеет свой язык пользователя, а также встроенные средства, облегчающие работу сданными (они часто называются интегрированными интерфейсами). В СУБД внастоящее время включается по крайней мере один интегрированный интерфейс,который всегда доступен. Это процессор языка запросов, позволяющий конечномупользователю формировать запросы к БД, используя язык высокого уровня. Типичнымпредставителем языка запросов является язык SQL, версии которого реализованы вовсех СУБД. Интерфейс пользователя, основанный на языке SQL, называют командным.
Кроме командных интерфейсовсуществуют и так называемые интерфейсы, основанные на меню и формах. Работая сними, пользователь выбирает необходимые действия из предлагаемых ему меню,заполняет формы и пр. Эти интерфейсы особенно удобны пользователям, не имеющимпрактики работы с языками высокого уровня.
При разработке СУБД необходимовключить в них все указанные компоненты.
SQL, примеры реализации
SQL — Structured Query Language — или Языкструктурированных запросов стал главным инструментом реляционных СУБД для описаниятипов данных в БД и формирования запросов к ним.
Продукты на базе SQL занимаютдоминирующее положение на рынке систем «Клиент — сервер». Язык, разработанный в1989 году, принят в США в качестве национального стандарта.
SQL состоит из двух компонент:
Data DefinitionLanguage (DDL) — язык описания данных;
Data Manipulation Language (DML) — язык обработкиданных или язык запросов.
Синтаксис языка относительнопрост и максимально приближен к специализированному английскому языку. Егоосновными элементами являются идентификаторы и константы.
Идентификаторы широкоиспользуются для обозначения таблиц (отношений, полей (атрибутов) и др.
Для констант определеныследующие типы: строки, целые, вещественные, даты, логические.
Язык обработки данных. Этакомпонента SQL состоит из ряда операторов, важнейшим из которых являетсяоператор выбора.
SELECT. Этот операторпредназначен для представления запросов пользователей на интересующие ихданные. Он предоставляет пользователям широкие возможности для получения нужнойинформации. В основе оператора лежат операции так называемой алгебры Кодда,представляющей собой функционально полный набор операций над таблицами.
Кроме этого оператора в языкобработки данных входят операторы, обеспечивающие модификацию таблиц БД:вставку новых строк, удаление строк, обновление значений полей в строках и т.д.
Язык описания данных. Этакомпонента SQL предназначена для создания таблиц или работы с уже существующимитаблицами.
Основным здесь является операторсоздания таблиц CREATE TABLE. Оператор предназначен для описания таблиц длявключения их в создаваемую (или модифицируемую) БД. Кроме него в язык описанияданных входит ряд операторов, предназначенных для модификации схем таблиц(например, добавления новых полей или удаления существующих), удаления таблиц,предоставления пользователям БД так называемых привилегий (разрешения выполнятьпри работе с БД определенные действия) и пр.
Как уже упоминалось, язык SQLявляется встроенным средством всех современных СУБД. Однако, в каждой СУБДреализована своя версия языка. Дело в том, что версии языка включают в себя ядро,т.е. средства эталонного SQL, которые едины для всех версий, и так называемое«операционное окружение», которое зависит самой СУБД, операционной системы, накоторую ориентирована реализация СУБД и некоторых других причин.
Примером реализации SQL можетслужить SQL-сервер – программная система, основным пользовательским интерфейсомкоторой является язык SQL.
Далее рассмотримразличные среды создания БД.
1.2.2Microsoft Access 2000
Программа Microsoft Access 2000входит в состав программного пакета Microsoft Office 2000 и представляет собоймощную систему, обеспечивающую эффективную разработку и сопровождение базданных, кроме того это полнофункциональная система управления базами данных(СУБД). В ней предусмотрены все необходимые средства для определения иобработки данных, а также для управления ими при работе с большими объемамиинформации.
Система управления базами данныхобеспечивает полный контроль над процессом определения данных, их обработкой исовместным использованием. СУБД также существенно облегчает структуризацию иобработку больших объемов информации, хранящейся в многочисленных таблицах.Разнообразные средства СУБД обеспечивают выполнение трех основных функций:определение данных, обработка данных и управление данными.
· Определение данных. Вы можете определить, какие сведения будутхраниться в вашей базе данных, их типы данных (например, числа или символы) икак они связаны между собой. В некоторых случаях вы можете также задать форматыи условия для проверки данных.
· Обработка данных. Данные можно обрабатывать самыми различнымиспособами. Можно выбирать любые поля, фильтровать и сортировать данные. Можнообъединять данные со связанной с ними информацией и вычислять итоговыезначения. Вы также можете отобрать некоторые данные и затем изменить, удалить,скопировать их в другую таблицу или создать для них новую таблицу.
· Управление данными. Вы можете указать, каким пользователямразрешено просматривать, изменять или вставлять данные. Во многих случаях выможете также определить правила совместного использования данных. Все этифункциональные возможности в полной мере реализованы в Microsoft Access.Рассмотрим возможности Access и сравним их с тем, что вы могли бы получить приработе с электронными таблицами или текстовыми процессорами.
В Microsoft Access 2000 имеетсявозможность открывать таблицы, запросы, представления, сохраненные процедуры,функции и формы в режимах сводной таблицы и сводной диаграммы. Теперьанализировать данные и создавать сложные сводные таблицы и сводные диаграммыможно гораздо быстрее, чем прежде. Существует возможность сохранятьпредставления в режимах сводной таблицы и сводной диаграммы в качестве страницдоступа к данным, которые затем может просмотреть любой пользователь, накомпьютере которого установлен Microsoft Internet Explorer 5 или более поздняяверсия. Кроме того, подчиненные формы в режимах сводной таблицы и своднойдиаграммы можно использовать точно так же, как они используются в режиметаблице на сегодняшний день. Разработчики найдут для себя удобным писатьпрограммы форм в режимах сводной таблицы и сводной диаграммы, а такжевоспользуются преимуществами новых событий, доступных в режимах сводной таблицыи сводной диаграммы.
Поддержка языка XML
Язык XML (Extensible MarkupLanguage) является не только стандартной технологией передачи данных вИнтернете; он быстро превращается в предпочтительную технологию обмена даннымимежду деловыми приложениями. Microsoft Access 2000 предоставляет мощные,интуитивные способы совместного использования данных XML, независимо отплатформы, формата данных, протокола, схемы и бизнес-правил. С помощьюзнакомого пользователю интерфейса Microsoft Access можно легко создавать данныеи структуры документов XML, используя структуры и данные Jet или SQL Server.Кроме того, в формах, отчетах и на страницах доступа к данным можноиспользовать данные XML из других приложений. Допустим, например, что нужныеданные находятся в нескольких источниках — внутренних серверах SQL,электронных таблицах и других средствах доступа, таких как SAP. Поскольку вэтих источниках в качестве формата обмена данными используется XML, то вMicrosoft Access можно создать набор статистических запросов для вставки этихданных в представления, а затем создавать формы и отчеты с помощью этихпредставлений.
Кроме того, Microsoft Accessпредоставляет методы удобного управления данными за счет упрощения создания иприменения схем и таблиц стилей. Microsoft Access позволяет легко описывать идоставлять сложные, структурированные данные в или из любого приложениястандартным, совместимым способом. Например, с помощью Microsoft Access можносоздать схему, которая описывает структуру данных, и отправить ее поставщикам,чтобы они точно знали, каким образом данные должны выводится в их счетах.
1.2.3 Oracle
Это устойчивая, масштабируемаясистема управления реляционными базами данных, способная эффективно хранить иобрабатывать огромное количество данных в условиях многопользовательскогодоступа.
Летом 1997 года корпорацияOracle выпустила на рынок систему управления базами данных нового поколения —OracleS. Она позиционируется как система, совершившая прорыв в технологииобработки данных. Если абстрагироваться от рекламно-маркетинговых заявлений, тосервер OracleS действительно явился значительным шагом вперед и заметно укрепилпозиции Oracle Corporation как ведущего производителя в области СУБДкорпоративного уровня. Значительное продвижение технологии вперед, с однойстороны, можно объяснить появлением объектных расширений реляционной моделиданных, то есть совершенно нового направления для Oracle. С другой стороны, впервую очередь OracleS — это устойчивая, масштабируемая система управленияреляционными базами данных, способная эффективно хранить и обрабатыватьогромное количество данных в условиях многопользовательского доступа. Ядросервера OracleS было серьезно переработано на основе опыта разработки иэксплуатации приложений для предыдущих версий, при этом был получензначительный выигрыш в производительности и надежности.
Рассмотрим основные направления,по которым фирма Oracle совершенствовала свой основной продукт. Как и в любойновой версии программного обеспечения, в OracleS были доработаны существующиемеханизмы и реализованы новые возможности, отсутствующие в Oracle 7. Можновыделить три основных новых направления: поддержка больших и сверхбольших базданных в режимах оперативных транзакций и хранилищ данных, объектные расширенияи встроенная в ядро сервера Java-машина. Остановимся на них подробнее.
С помощью технологий Oracleвозможно построить информационную систему, решающую сколь угодно сложные задачипо обработке данных. Для этого в распоряжении проектировщиков и разработчиковимеются все необходимые инструментальные средства. Как было сказано выше,Oracle 7 оказалась очень удачной системой управления базами данных. На ееоснове были построены системы, автоматизирующие самые различные областичеловеческой деятельности. В базах данных под управлением серверов Oracle былонакоплено огромное количество информации. Например, в таблицы баз данныхтелефонных компаний каждый день загружаются десятки миллионов записей оразговорах абонентов. Со временем эти таблицы могут занимать дисковоепространство объемом десятки терабайт. Разработчики и администраторы баз данныхнекоторое время поддерживали производительность систем на приемлемом уровне спомощью обширных возможностей Oracle 7 по настройке и оптимизации работы сервера.Однако требовалась его специальная доработка для поддержки больших исверхбольших баз данных. OracleS может управлять базой данных размером 512петабайт, а не 32 терабайта, как Oracle 7. Поэтому, наряду с оптимизацией кодаядра сервера (например, вызов функций, написанных на языке PL/SQL, из операторовSQL стал быстрее на 40%), в OracleS появились новые возможности для управлениябольшими и сверхбольшими базами данных. Кратко перечислим их.
Секционирование таблиц ииндексов — таблицы и индексы могут быть разбиты на секции, с каждой из которых можноработать как с одним объектом, например хранить различные секции на различныхустройствах и управлять ими автономно. В этом случае для таблицы или индексавыбирается один или несколько столбцов — так называемый ключ секционирования.Их значения определяют секцию, куда будет помещена запись. Например, дляупоминавшихся выше таблиц с записями телефонных разговоров ключомсекционирования может быть столбец, в котором хранится дата начала разговора, атаблица может быть разбита на секции так, чтобы в одну секцию попадали сведенияо разговорах за один месяц. В этом случае запрос, с помощью которогоизвлекаются сведения о разговорах за последний месяц, не будет обращаться кданным из других секций, в которых хранятся разговоры за другие месяцы и будетполучен значительный выигрыш производительности. Для работы с секционированнымитаблицами и индексами требуется установленная опция сервера — Partitioningoption.
Индексные таблицы — новый видтаблиц, позволяющий организовать хранение данных непосредственно в индексах, неиспользуя сегменты данных. Для оптимального доступа к данным была улучшенаработа оптимизатора запросов: введен новый тип запросов — типа«звезда», появились новые подсказки оптимизатору. Теперьподдерживаются новые виды индексов — масочные двоичные индексы и индексы среверсированным ключом. Также внесен ряд изменений в существовавшие механизмы, предназначенныхспециально для поддержки больших баз данных. Подробно об этом рассказывается вразделах «SQL — язык обработки данных Oracle» и «Методы повышенияпроизводительности». Другим важным нововведением для OracleS сталаподдержка объектных расширений. Тенденция к объектной ориентированности внастоящее время наблюдается у всех крупных производителей систем управлениябазами данных. Не осталась в стороне и корпорация Oracle. OracleS поддерживаетабстрактные типы данных, то есть разработчик может конструировать новые типыданных из базовых. Поддерживается три абстрактных типа данных: OBJECT — длясоздания новых типов объектов со своей внутренней структурой;
VARRAY — массив объектовопределенного типа; TABLE — таблица объектов определенного типа.
Для манипулирования хранимыми вСУБД объектами в OracleS реализованы специальные расширения языка SQL.
Существует возможность созданиятак называемых объектных представлений над реляционными таблицами. Этопозволяет вести разработку новых объектно-ориентированных приложений в рамкахсуществующих систем. Работе с объектами посвящен раздел «Объектныерасширения в OracleS».
Начиная с версии 8.1.5.0, ядросервера Oracle включает в себя Java-машину. Таким образом, стало возможнымразрабатывать серверную компоненту системы как на основном языке созданияхранимых программ PL/SQL, так и на Java. Программы, написанные на этих языках,могут взаимодействовать между собой. Использование языка Java предоставляет возможностьподключения сотен предопределенных классов. Библиотеки Java-классов содержатметоды, которые разработчики могут расширять и включать в свои программы.
Примеры написания хранимыхJava-программ и их использования для манипулирования объектами базы данныхприведены в разделе «Создание приложений на языке Java». В настоящеевремя наблюдается бум Java-приложений и можно ожидать более интенсивногоиспользования Java-машины Oracle. Тем не менее написано огромное количествокода на PL/SQL и в ближайшее время будет продолжаться его широкое применениедля разработки серверной логики, хотя уже имеются средства для автоматическогопреобразования кода PL/SQL в программы Java.
Как было отмечено выше, наряду среализацией новых возможностей, были значительно усовершенствованы существующиемеханизмы сервера. Основные усовершенствования были предназначены дляобеспечения удобства разработки новых приложений и повышения эффективности ужеприменяемых. По мере изложения материала книги, усовершенствованные механизмыописываются с той или иной степенью детализации, а пока изложим ихконспективно.
Динамический SQL в OracleSвыполняется так же быстро, как и обычный статический. Сокращено время привызове операторов SQL из PL/SQL и наоборот. Улучшены алгоритмы работы стаблицами PL/SQL. Уменьшены потребности сессий пользователей в оперативнойпамяти на 30-60%. Добавлена отложенная проверка ограничений целостности, — онаможет выполняться не сразу после выполнения операторов изменения данных, аоткладываться до фиксации транзакции. Введены новые типы данных для хранениянеструктурированной информации. Для этого в Oracle 7 используются типы данныхLONG и LONG RAW, которые обладают рядом недостатков. В OracleS появились новыетипы данных: CLOB (Character Large Object),BLOB (Binary Large Object)и BFILE, свободные от этих недостатков. Эти типы данныхне могут быть использованы в запросах, но их можно хранить как в файловомпространстве, так и непосредственно в базе данных. При действиях с даннымиэтого типа поддерживаются все возможности транзакционной модели Oracle (заисключением тех объектов, которые хранятся как ссылки на объекты файловойсистемы). Таким образом, сделан шаг вперед в направлении технологии IPS(Internet File System), основная идея которой — все объекты, с которымиработает пользователь, хранятся в базе данных. При этом их хранениеорганизовано прозрачно и операции копирования, удаления, изменения и т. п.объектов выполняются так же, как будто бы они хранились в файловой системе.Работа с большими объектами рассмотрена в разделе PL/SQL — процедурноерасширение языка SQL.
Существенно улучшены возможностиреплицирования данных. Ранее программный механизм реплицирования был реализованкак совокупность триггеров базы данных. Теперь он перенесен в ядро сервера, аего работа стала быстрее и надежнее.
Существенно расширился кругсредств администрирования пользователей: Появилась возможность ведения политикибезопасности: принудительное блокирование учетной записи пользователя, установкасрока действия пароля, блокирование учетной записи пользователя послеопределенного числа неудачных попыток входа в систему, программная реализациясобственных алгоритмов проверки сложности пароля и т.д.
Как видим, внесено очень многоусовершенствований в те механизмы, которые OracleS унаследовал от предыдущих версий.Их можно использовать как при разработке новых приложений, так и примодификации существующих. Тем не менее не стоит ожидать, что с переходом нановую версию сервера базы данных эффективность существующих приложенийзначительно увеличится сама по себе. Такой переход требует еще раз пересмотретьтехнологию функционирования всей системы. Некоторые операции действительностанут выполняться быстрее, однако может быть и обратный эффект, например некоторыеSQL-запросы могут для новой версии сервера выполняться дольше. Поэтому припереходе, например, даже с версии 8.1.6.0 на 8.1.7.0 требуется осторожность и несколькоэтапов переноса серверной компоненты и доработки клиентской части ипромежуточного уровня.
Сервер OracleS поставляется внескольких конфигурациях. Они отличаются друг от друга как наличием илиотсутствием дополнительных возможностей, так и серьезными архитектурнымирешениями. Например, версия, предназначенная для работы с мобильными устройствами,не поддерживает язык PL/SQL, а только Java. OracleS Workgroup Edition в отличие от основного вариантаOracleS EnterpriseEdition не поддерживает параллельную обработку данных, объектнореляционныерасширения и секционирование таблиц. Более подробные сведения о возможностяхсервера Oracle можно узнать из прилагаемой к нему документации .
История Oracle показывает, чтоосновные этапы развития СУБД связаны с улучшением ее управляемости в условиях многопользовательскогодоступа к данным, масштабируемости, совершенствованием системы распараллеливанияопераций на различных уровнях и повышением уровня защищенности и целостностисистемы. Языковые средства системы эволюционируют достаточно медленно.Принципиальным моментом является распределенность СУБД, то есть наличие в СУБДнескольких компонент, выполняющихся на различных компьютерах, объединенных всеть.
Учитывая возможностимасштабируемости, заложенные в Oracle, рано или поздно система, построенная длярешения серьезной задачи, станет распределенной, построенной на архитектуреклиент-сервер или многозвенной- архитектуре.
/>1.3 Выбор метода решения задачи
Для написания моего проекта явыбрал MS Access 2000, так как он имеет достаточнопонятный и удобный интерфейс, а также ориентирован на применение в локальныхслучаях, и гораздо более простой по сравнению с другими языками и программами .
Решающим фактором в выборепрограммы между Access и Oracle было то, что база данных будет использоватьсяна одном PC, не обладает сложной структурой и нетнеобходимости в хранении больших объемов информации, кроме тогоMicrosoft Office 2000 и представляет собой мощную систему, обеспечивающуюэффективную разработку и сопровождение баз данных