Реферат по предмету "Информатика, программирование"


Наращивание экономической и статистической информации в двухструктурных реляционных базах данных

Наращивание экономической истатистической информации в двухструктурных реляционных базах данных
СОДЕРЖАНИЕ
Введение…
1.  Понятие информационной системы…
2.  Понятие базы данных…
3.  Эволюция концепций баз данных…
4.  Требования, которым должна удовлетворятьорганизация базы данных.     
4.1.  Установлениемногосторонних связей…
4.2.  Производительность…
4.3.  Минимальные затраты…
4.4.  Минимальная избыточность…
4.5.  Возможности поиска…
4.6.  Целостность…
4.7.  Безопасность исекретность…
4.8.  Связь с прошлым…
4.9.  Связь с будущим…
4.10.   Простота использования…
5.  Модели представления данных…
5.1.  Иерархическая модельданных…
5.2.  Сетевая модель  данных…
5.3.  Реляционная модель данных…
5.3.1.  Таблицы…
5.3.2.  Ключевые поля…
5.3.3.  Индексы…
5.3.4.  Отношенияпредок/потомок…
5.3.5.   Внешние ключи…
5.3.6.  Реляционная алгебра…
5.3.7.  Нормализация базыданных…
5.3.7.1. Перваянормальная форма…
5.3.7.2. Втораянормальная форма…
5.3.7.3. Третьянормальная форма…
5.3.7.4. Четвертаянормальная форма…
5.3.7.5. Пятаянормальная форма…
6.  Язык SQL как стандартный язык баз данных…
6.1.  Язык SQL…
6.2.  Достоинства SQL…
6.2.1.  Независимость отконкретных СУБД…
6.2.2.  Переносимость с однойвычислительной системы на другие…
6.2.3.  Стандарты языка SQL…
6.2.4.  Одобрение SQL компаниейIBM (СУБД DB2)…
6.2.5.  Протокол ODBC и компанияMicrosoft…
6.2.6.  Реляционная основа…
6.2.7.  Высокоуровневаяструктура, напоминающая английский язык…
6.2.8.  Интерактивные запросы…
6.2.9.  Программный доступ кбазе данных…
6.2.10… Различныепредставления данных      
6.2.11… Полноценныйязык для работы с базами данных      
6.2.12… Динамическоеопределение данных      
6.2.13… Архитектураклиент/сервер      
7.  Архитектуры баз данных…
7.1.  Локальные базыданных и архитектура «файл-сервер»…
7.2.  Удаленные базыданных и архитектура «клиент-сервер»…
8.  Среда Delphi как средство для разработкиСУБД…
8.1.  Высокопроизводительныйкомпилятор в машинный код…
8.2.  Мощныйобъектно-ориентированный язык…
8.3.  Объектно-ориентированнаямодель программных компонент…
8.4.  Библиотека визуальныхкомпонент…
8.5.  Формы, модули и метод разработки“Two-Way Tools”…
8.6.  Масштабируемые средствадля построения баз данных…
8.7.  Настраиваемая средаразработчика…
8.8.  Незначительные требованияк аппаратным средствам…
9.  Проектирование базы данных…
Инфологическая модель данных…
9.2.  Инфологическая модельданных «сущность-связь»…
9.3.  Даталогическая модельданных…
9.4.  Переход от ER – модели креляционной…
9.5.  Физическая модель данных…
9.6.  Этапы проектирования базыданных…
10. Практическая часть…
10.1.   Предметная область изадачи, возложенные на базу данных…
10.2.   Определение объектовбазы данных…
10.3.   Инфологическая идаталогическая модели базы данных…
10.4.   Физическое описаниемодели…
10.5.   Програмная реализация…
Заключение…
Список литературы…
/> 
ВВЕДЕНИЕ
         Опыт применения компьютеров для построенияприкладных систем обработки данных показывает, что самым эффективныминструментом здесь являются системы управления базами данных (СУБД, англ. DBMS – DataBase Management System ).
Потокиинформации, циркулирующие в мире, который нас окружает, огромны. Во времени ониимеют тенденцию к увеличению. Поэтому влюбой организации, как большой, так и маленькой, возникает проблема такойорганизации управления данными, которая обеспечила бы наиболее эффективнуюработу. Некоторые организации используют для этого шкафы с папками, нобольшинство предпочитают компьютеризированные способы – базы данных,позволяющие эф­фективно хранить, структурировать и систематизировать большиеобъемы дан­ных. И уже сегодня без базданных  невозможно представить работу большинства финансовых, промышленных,торговых и прочих организаций. Не будь баз данных, они бы просто захлебнулись винформационной лавине. 
Существует много  веских причин  переводасуществующей информации на компьютерную основу. Сейчас стоимость хранения информации в файлах на компьютере дешевле, чем набумаге. Базы данных позволяют хранить, структурировать информацию и извлекатьоптимальным для пользователя образом. Использование клиент/серверныхтехнологий позволяют сберечь значительные средства, а главное и время дляполучения необходимой информации, а также упрощают доступ и ведение, посколькуони основываются на комплексной обработке данных и централизации их хранения. Кроме того компьютер позволяет хранить любыеформаты данных текст, чертежи, данные в рукописной форме, фотографии, записиголоса и т.д.
Дляиспользования столь огромных объемов хранимой информации, помимо развитиясистемных устройств, средств передачи данных, памяти необходимы средства обеспечениядиалога человек-компьютер, которые позволяют пользователю вводить запросы,читать файлы, модифицировать хранимые данные, добавлять новые данные илипринимать решения на основании хранимых данных. Для обеспечения этих функцийсозданы специализированные средства – системы управления базами данных (СУБД). Современные СУБД — многопользовательские системыуправления базой данных, которые специализируется на управлении массивом ин­формацииодним или множеством одновременно работающих пользователей.
         Наращивание экономической и статическойинформации происходит ежедневно и ежесекундно. Если раньше, в связи снедостаточной компьютеризацией экономики, информации в электронном виде былоочень мало, то сегодня это уже обычное дело. В связи с этим возникает новаяпроблема – поиск и отбор нужной информации среди того океана данных, которые мыможем сегодня наблюдать в Интернете и локальных корпоративных сетях. Поэтомуправильная организация наращивания экономической и статической информации длядальнейшего её быстрого извлечения и эффективного использования  — оченьактуальная тема сегодня.
         Цель данной дипломной работы – дать оценкуновым технологиям организации накопления, сбережения, быстрого поиска, отбора иизвлечения информации, которые базируются на реляционной концепции моделейданных, и на конкретном примере показать преимущества одной из рассмотренныхтехнологий.
Реализация данной задачипроводится в системе программирования Delphi 5.0, располагающейширокими возможностями по созданию приложений баз данных, необходимым  набором драйверов для доступа к самым известным форматам баз данных, удобными иразвитыми средствами для доступа к информации, расположенной как на локальномдиске, так и на удаленном сервере, а также большим коллекцией визуальных компонентдля построения отображаемых на экране окон, что необходимо для созданияудобного интерфейса между пользователем и исполняемым кодом. />/>1.  Понятие информационной системы
Веками    человечество   накапливало знания, навыки    работы, сведения  об   окружающем   мире,  другими     словами – собирало информацию. Вначале информация   передаваласьиз   поколения в поколение в   виде   преданий и устных   рассказов.Возникновение и развитие книжного дела позволило передавать и хранитьинформацию в   более   надежном   письменном   виде.   Открытия   в   областиэлектричества   привели к   появлению   телеграфа,   телефона,   радио,телевидения – средств,  позволяющих   оперативно передавать и накапливатьинформацию. Развитие прогресса обусловило резкий рост информации, в связи счем, вопрос о ее сохранении и переработке становился год от года острее. Споявлением вычислительной техники значительно упростились способы хранения, аглавное, обработки информации. Развитие вычислительной техники на баземикропроцессоров приводит к совершенствованию компьютеров и программногообеспечения. Появляются программы, способные обработать большие потокиинформации. С помощью таких программ создаются информационные системы.Целью любой информационной системы является обработка данных об объектах иявлениях реального мира и предоставление человеку нужной информации о них.[11].
Если мы рассмотрим совокупностьнекоторых объектов, то сможем выделить объекты, обладающие одинаковымисвойствами. Такие объекты выделяют в отдельные классы. Внутри выделенногокласса объекты можно упорядочивать как по общим правилам классифицирования,например по алфавиту, так и по некоторым конкретным общим признакам, напримерпо цвету или материалу. Группировка объектов по определенным признакамзначительно облегчает поиск и отбор информации. Все эти сведения накапливаютсяв совокупности файлов называемой базой данных, а для управления этими файламисоздаются специальные программы – системы управления базами данных (СУБД).[10].
Информационные системы (ИС)можно условно разделить на фактографические и документальные.
В фактографических ИСрегистрируются факты – конкретные значения данных (атрибутов) об объектахреального мира. Основная идея таких систем заключается в том, что все сведенияоб объектах (фамилии людей и названия предметов, числа, даты) сообщаютсякомпьютеру в каком-то заранее обусловленном формате (например дата – в видекомбинации ДД.ММ.ГГГГ). Информация, с которой работает фактографическая ИС,имеет четкую структуру, позволяющую машине отличать одно данное от другого,например фамилию от должности человека, дату рождения от роста и т.п. Поэтомуфактографическая система способна давать однозначные ответы на поставленныевопросы.
Документальные ИСобслуживают принципиально иной класс задач, которые не предполагаютоднозначного ответа на поставленный вопрос. Базу данных таких систем образуетсовокупность неструктурированных текстовых документов (статьи, книги, рефератыи т.д.) и графических объектов, снабженная тем или иным формализованнымаппаратом поиска. Цель системы, как правило,  — выдать в ответ на запроспользователя список документов или объектов, в какой-то мере удовлетворяющих сформулированнымв запросе условиям.
Указанная классификация ИС визвестной мере устарела, так как современные фактографические системы частоработают с неструктурированными блоками информации (текстами, графикой, звуком,видео), снабженными структурированными описателями. При известных факторахфактографическая система может превратиться в документальную (инаоборот).[1,11].
Для систем обработкиэкономической и статистической информации больше подходят фактографические ИС,которые используются буквально во всех сферах человеческой деятельности. />/>2.  Понятие базы данных.
Существует хорошо известное, нотрудно реализуемое на практике понятие базы данных как большого по объемухранили­ща, в которое организация помещает все необходимые ей данные и изкоторого различные пользователи могут эти данные получать. Устройства памяти, вкоторых хранятся все данные, могут быть расположены в одном или несколькихместах; в последнем слу­чае они должны быть связаны средствами передачи данных.К дан­ным должны иметь доступ программы.
Действительно, большинствосуществующих на сегодняшний день баз данныхпредназначено для ограниченного ряда приложений. Часто на одном компьютересоздается несколько баз данных. Со временем базы данных, предназначенные дляреализа­ции отдельных родственных функций, можно будет объединить, если такоеобъединение будет способствовать увеличению эффективности и интенсивности использования всей системы.
Базуданныхможно определить каксовокупность взаимосвя­занных хранящихся вместе данных при наличии такойминималь­ной избыточности, которая допускает их использование оптималь­ным образом для одного или нескольких приложений; данные за­поминаютсятак, чтобы они были независимы от программ, использующихэти данные; для добавления новых или модифика­циисуществующих данных, а также для поиска данных в базе данныхприменяется общий управляемый способ.[1,12].
Говорят, что система содержит совокупность баз данных, если этибазы дан­ных структурно полностью самостоятельны. Всистемах с простой организацией данных для каждого при­ложения создается своясовокупность записей. Назначение базы данных заключается в том, чтобы одну и туже совокупность дан­ных можно было использовать длямаксимально возможного числа приложений. Исходя из этого, базу данных часторазрабатывают в качестве хранилища такой информации, необходимость в котором возникает в процессевыполнения определенных функ­ций на заводе,  правительственном учрежденииили какой-либо другой организации.  Такая базаданных должна обеспечивать возможность не только получения информации,  нотакже постоян­ной ее модификации,  необходимой для процессов управления вданной организации, может оказаться, что дляполучения информации для целей планирования или ответов на вопросы потребу­етсяосуществлять поиск в базе данных. Совокупностью данных могут пользоватьсянесколько ведомств независимо от того, име­ются ли при этом между нимиведомственные барьеры.[12].
База данных может разрабатыватьсядля пакетной обработки данных, обработки в реальном времени или оперативнойобработ­ки (в этом случае обработка каждогозапросазавершается к определенному моменту времени, но при этом на время обра­ботки ненакладывается жестких ограничений, существующих в системах реального времени).Во многих базах данных преду­смотрена совокупность этих методов обработки, а вомногих си­стемах с базами данных обслуживание терминалов в реальном временипроисходит одновременно с пакетной обработкой данных.[2].
Большая часть дисковых илиленточных библиотек, которые существовали до использования средств управлениябазами дан­ных, содержали большое количество повторяющейся информации. Призапоминании многих элементов данных допускалась избы­точность, так как наносители информации для различных целей записывались одни и те же данные и,кроме того, хранились различные варианты модификаций одних и тех же данных.База данных предоставляет возможность в значительной степени изба­виться оттакой избыточности. Базу данных иногда определяют как неизбыточнуюсовокупность элементов данных. Однако в действительности для уменьшения временидоступа к данным или упрощения способов адресации во многих базах данныхизбыточ­ность в незначительной степени присутствует. Некоторые записиповторяются для того, чтобы обеспечить возможность восстанов­ления данных приих случайной потере. Чтобы база данных была неизбыточной и удовлетворяла другимтребованиям, приходится идти на компромисс. В этом случае говорят об управляемой,или минимальной, избыточности или о том, что хорошоразрабо­танная база данных свободна от излишней избыточности.
Неуправляемая избыточность имеетнесколько недостатков. Во-первых, хранение нескольких копий данных приводит кдопол­нительным затратам. Во-вторых, при обновлении, по крайней мере,нескольких избыточных копий необходимо выполнять многократные операцииобновления. Из­быточность поэтому обходится значительно дороже в тех случаях,когда при обработке файлов обновляется большое количество ин­формации или, чтоеще хуже, часто вводятся новые элементы или уничтожаются старые. В-третьих,вследствие того, что различные копии данных могут соответствовать различнымстадиям обнов­ления, информация, выдаваемая системой, может быть противо­речивой.[12].
Если не использовать базыданных, то при обработке большого количества информации появится так многоизбыточных данных, что фактически станет невозможным сохранять их все на одноми том же уровне обновления. Очень часто пользователи обнаружи­вают явныепротиворечия в данных и поэтому испытывают недо­вериек полученной от компьютера информации. Невозможность хране­ния избыточныхданных на одинаковом уровне обновления явля­ется основным препятствием вобработке данных с помощью компьютера.
Одной из наиболее важныххарактеристик большинства баз данных является их постоянное изменение ирасширение. По мере добавления новых типов данных или при появлении новых прило­женийдолжна быть обеспечена возможность быстрого изменения структуры базы данных.Реорганизация базы данных должна осу­ществляться по возможности без перезаписиприкладных про­грамм и в целом вызывать минимальное количество преобразова­ний.Простота изменения базы данных может оказать большое влияние на развитиеприложений баз данных в управлении про­изводством.[10].
О независимости данныхчасто говорят как об одном из основ­ных свойств базы данных. Под этимподразумевается независи­мость данных и использующих их прикладных программ друг от друга в том смысле, что изменение одних неприводит к измене­нию других. В частности, прикладной программист изолирован отвлияния изменений данных и их организации, а также от изме­нения характеристикфизических устройств, на которых они хра­нятся. В действительности же полностьюнезависимыми данные бывают так же редко, как и полностью неизбыточными. Как мыувидим ниже, независимость данных определяется с различных точек зрения.Сведения, которыми должен располагать програм­мист для доступа к данным,различны для различных баз данных. Тем не менее, независимость данных—это однаиз основных причин использования систем управления базами данных.
В том случае, когда один наборэлементов данных использу­ется для многих приложений, между элементами этогонабора устанавливается множество различных взаимосвязей, необходи­мых длясоответствующих прикладных программ. Организация базы данных в значительнойстепени зависит от реализации взаи­мосвязей между элементамиданных и записями, а также от того, как и где эти данные хранятся. В базеданных, используемой мно­гими приложениями, должныбыть установлены многочисленные промежуточные взаимосвязи между элементами. Вэтом случае при хранении и использовании данных контролировать их пра­вильность,обеспечивать их защиту и секретность труднее, чем при хранении данных впростых, несвязанных файлах. Что касается обеспечения секретности данных ивосстановления их после сбоев, то этот вопрос является очень важным приконструировании баз данных.[8].
В некоторых системах средствауправления базами данных применяются для того, чтобы пользователи моглииспользовать данные таким путем, который не был предусмотрен разработчи­камисистемы. Администраторы или сотрудники могутобращаться к вы­числительной системе с вопросами, которые заранее в ней не пре­дусматривались.Наличие этой возможности означает такую орга­низацию данных в системе, прикоторой доступ к ним можно осу­ществлять по различным путям, причем одни и теже данные могут использоваться для ответов на различные вопросы. Всясущественная информация об объектах запоминается одновременно и полностью, а нетолько та ее часть, которая необходима для одного приложения. [10].
В настоящее время существуютСУБД, реализующие эти возможности как на уровне локальных баз данных,расположенных на одном диске (Paradox, Dbase), так  и промышленных баз данных(Acsess, Oracle, FoxPro)./>/>3.  Эволюция концепций баз данных
Понятие база данныхпоявилось в конце 60-х годов. До этого в сфере обработки данных говорили офайлах данных и о наборах данных.
До появления компьютеровтретьего поколения (первые из них были установлены в 1965 г.) программноеобеспечение обработки данных осуществляло в основном операции ввода-вывода. 0борганизации данных приходилось заботиться при напи­сании прикладных программ, иделалось это элементарным спо­собом, т. е. данныеобычно организовывались в виде простых последовательных файлов на магнитнойленте. Независимость данных отсутствовала. Если организация данных илизапоминаю­щие устройства изменялись, прикладной программист должен былсоответствующим образом модифицировать программы, заново их компилировать изатем отлаживать.  Для того чтобы обновить файл,нужно было записать новый.  Старый файл сохранялсяи назывался исходным. Предыдущий вариант также сохранялся, а нередко сохранялись и более ранние версии файла.Многие файлы использовались для одного приложения. Для других приложений часто использовали те же самые данные, но обычно вдругой форме, с другими полями, и поэтому приходилось из одних и тех же данных создавать различные файлы. Вследствиеэтого уровень избыточности в системе был очень высок и существовали различные файлы, содержащие одни и те же элементы дан­ных.
Иногда использовались файлы с произвольным досту­пом кданным, которые позволяли пользователю получить непосредственный доступ к любойзаписи в файле вместо того, чтобы последовательно просматривать весь файл.Средства адресации записей обеспечивались прикладным программистом при написа­ниипрограммы. Если изменялись запоминающие устройства, в прикладную программунеобходимо было вносить большие изме­нения. На практике изменение запоминающихустройств неизбеж­но. Новая технология привела к значительному уменьшению за­тратна хранение одного бита информации, а размеры файлов сегодня часто превышают пообъему использовавшиеся ранее за­поминающие устройства.[7].
Этап 2 (конец 60-х годов)характеризуется изменением по сравнению с этапом 1 как природы файлов, так иустройств, на которых они запоминались. Предпринимается попытка оградитьприкладного программиста от влияния изменений в аппаратуре. Программноеобеспечение допускает возможность изменения физического расположения данных безизменения при этом их логического представления при условии, что содержимоезаписей или основная структура файлов не изменяется.
Файлы, соответствующие этому этапу развития средств обра­боткиданных, подобно файлам этапа 1, предназначаются для одного приложения или длятесно связанных между собой прило­жений.
По мере развития средствобработки коммерческих данных становилось ясно, что прикладные программыжелательно сделать независимыми не только от изменений в аппаратных средстваххранения файлов и от увеличения размеров файлов, но также и от добавления кхранимым данным новых полей и новых взаимо­связей.[7].
Известно, что база данныхпредставляет собой постоянно развивающийся объект, который используетсявозрастающим количеством приложений. К базе данных добавляются новые записи, ав существующие записи включаются новые элементы данных. Структура базы данныхбудет изменяться с целью повышения эффективности ее функциони­рования и придобавлении новых типов запросов. Пользователи будут изменять требования имодифицировать типы запросов на данные.
Структура базы данных являетсяменее статичной, чем файло­вая структура. Элементы хранимых данных и способы ихзапоми­нания непрерывно изменяются. Если на организацию данных со сторонывычислительной системы накладывается ограничение в виде требования постоянствафайловой структуры, то это приво­дит к тому, что в случае ее изменения программистытратят много времени на модификацию существующих программ, вместо того чтобызаниматься разработкой новых приложений.
В одном случае может сообщатьсятолько имя элемента данных или записи, которую он хочет по­лучить. В другомслучае (при наличии другого программного обеспечения) он должен был сообщатьидентификацию элемента данных и имя набора, в котором этот элемент данныхсодержится. Добавление новых элементов данных в записи без изменения прикладныхпрограмм возможно при том условии, что программ­ное обеспечение связано сданными на уровне элементов данных (полей), а не на уровне записей.  Это частоприводит к созданию сложных структур дан­ных. Однако хорошее программноеобеспечение баз данных из­бавляет прикладного программиста от трудностей, связанныхсо сложностью структуры. Независимо от того, каким образом дан­ные организованына самом деле, прикладной программист дол­жен представлять себе файл в видесравнительно простой струк­туры, которая спланирована в соответствии с еготребованиями.
Программное обеспечение баз данных этапа 3 (начало 70-хгодов) распо­лагало средствами отображения файловой структуры прикладногопрограммиста в такую физическую структуру данных, которая запоминается нареальном носителе  и наоборот.
В зависимости от уровня программногообеспече­ния прикладной программист эле­мента данных должен также знатьорганизацию файла данных. В этом случае ему, возможно, придется задать машинныйадрес данных. Если отсутствует независимость данных, прикладному программистунеобходимо знать точный физический формат запи­си. Самый худший вариант — этослучай, когда программист дол­жен быть “навигатором”.[7].
Процесс преобразованияобращения прикладного программи­ста к логической записи или к элементамлогической записи в машинные обращения к физической записи и ее элементамназывается привязкой. Привязка — это связь физическогопредставле­ния данных с программой, которая эти данные использует. Послевыполнения процесса привязки программа уже не будет незави­симой от физическихданных.[7, 3].
Итак,  для 3-го этапа:
·    Различные логические файлы могли быть получены из одних и тех жефизических данных.
·    Доступ к одним и тем же данным осуществлялся различнымиприложениями различными путями, отвечающими требованиям этих приложений.
·    Программное обеспечение содержало средства уменьшения избыточно­стиданных.
·    Элементы данных являлись общими для различных приложений.
·    Физическая структура данных независима от прикладных программ. Ееможно было изменять с целью повышения эффективности базы данных, не вызывая приэтом модификации прикладных программ,
·    Данные адресуются на уровне полей или групп. [7].
 
По мере накопления опытаиспользования первых систем  управления базамиданных довольно скоро стало очевидно, что не­обходимдополнительный уровень независимости данных. Общая логическаяструктура данных, как правило, сложная, и по мере роста базы данных онанеизбежно изменяется. Поэтому важно обеспечить возможность изменения общейлогической структуры без изменения используемых при этоммногочисленных приклад­ных программ. В некоторых системах изменение общейлогиче­ской структуры данных составляет форму ее существования, т. е. эта структура находится в состоянии постоянногоразвития. По­этому требуются два уровня независимости данных. Их называют логическойи физической независимостью данных.
Логическая независимостьданных означает, что общая логи­ческая структура данных может бытьизменена без изменения при­кладных программ (изменение, конечно, не должнозаключаться в удалении из базы данных таких элементов, которые использу­ютсяприкладными программами).
Физическая независимостьданных означает, что физическое расположение и организация данных могутизменяться, не вызы­вая при этом изменений ни общей логической структурыданных, ни прикладных программ.[7, 8, 3].
 Этап 4 характеризуется идейлогической и физи­ческой независимости данных; логическая структура данныхможет сильно отличаться от физической структуры данных и от их пред­ставлений вконкретных прикладных программах. Программное обеспечение баз данных будетфактически преобразовывать пред­ставление данныхприкладного программиста в общее логическое представление, а затем будетотображать логическое представле­ние в физическоепредставление данных.
Назначение такой структурыобеспечивает максимум свободы в изменении структур данных без переделки приэтом выполненной ранее работы по формированию и использованию базы данных.
·    База данных может развиваться без больших затрат на ведение.
·    Средства, предусмотренные для администратораданных, позволяют ему выполнятьфункции контроллера и обеспечиватьсохранность данных.
·    Обеспечиваются эффективные процедуры управления защитой секрет­ности,целостности и безопасности данных.
·    В некоторых системах используются инвертированные файлы, позво­ляющиеосуществлять быстрый поиск данных в базе данных.
·    Базы данных конструируются для выдачи ответов на не планируемыезаранее информационные запросы.
·    Обеспечиваются средства перемещения данных.[7]./>/>4.  Требования, которым должна удовлетворять организация базы данных.
Изучением этого вопроса долгоевремя занимались различные группы людей в учреждениях, использующих компьютеры,в правитель­ственных комиссиях, на вычислительных центрах коллективногопользования. Комитет CODASYL опубликовал отчеты на эту тему  (CODASYL—организация,разработавшая язык КОБОЛ). Организации пользователей IBM SHARE и GUIDE в своемотчете сформулировали требования к системе управления базами дан­ных. Организация ACiM(Association for Computing Machi­nery) также занималась изучением этого вопроса.
Ниже перечислены основные требования к организации базыданных./>/>4.1.    Установление многосторонних связей
Различным программистамтребуются различные логические файлы. Эти файлы получаются из одной и той жесовокупности данных. Между элементами запоминаемых данных могут суще­ствоватьразличные связи. Некоторые базы данных будут содер­жать сложные переплетениявзаимосвязей. Метод организации данных должен быть таким, чтобы обеспечиваласьвозможность удобного представления этих взаимосвязей и быстрого согласова­ниявносимых в них изменений. Система управления базами дан­ных должна обеспечиватьвозможность получения требуемых логи­ческих файлов из имеющихся данных исуществующих между ними связей. Необходимо, чтобы существовало хотя бынебольшое сходство между представлением логическогофайла в прикладной программе и способом физического хранения данных.[7, 10,11]./>/>4.2.    Производительность
Базы данных, специальноразработанные для использования их оператором терминала, обеспечивают время ответа,удовлет­ворительное для диалога человека — терминал. Кроме того, система баз данных должнаобеспечивать соответствующую пропуск­ную способность. В системах, рассчитанныхна небольшой поток запросов, пропускная способность накладывает незначительныеограничения на структуру базы данных. В системах с большим потоком запросов,например в системах резервирования авиа­билетов, пропускная способностьоказывает решающее влияние на выбор организации физического хранения данных.
В системах, предназначенныхтолько для пакетной обработки, время ответа не так важно и метод физическойорганизации мо­жет выбираться из условий обеспечения эффективной пакетнойобработки.[7, 10, 11]./>/>4.3.    Минимальные затраты
Для уменьшения затрат насоздание и эксплуатацию базы данных выбираются такие методы организации,которые миними­зируют требования к внешней памяти.При использовании этих методов физическое представление данных в памяти можетсильно отличаться от того представления, которое использует прикладнойпрограммист. Преобразование одного представления в другое осу­ществляютпрограммное обеспечение либо, если возможно, аппа­ратные или микропрограммныесредства. В таких случаях прихо­дится выбирать между затратами на алгоритмпреобразования и экономией памяти.[7, 10, 11]./>/>4.4.    Минимальная избыточность
В системах обработки,существовавших до использования си­стем управления базами данных,информационные фонды облада­ли очень высоким уровнем избыточности. Большинстволенточных библиотек содержало большое количество избыточных данных. Даже прииспользовании баз данных по мере возрастания инфор­мации, объединяемой винтегрированные базы данных, потен­циальная возможность появления избыточныхданных постепенно увеличивается. Избыточные данные дороги в том смысле, что онизанимают больше памяти, чем это необходи­мо, и требуют более одной операцииобновления. Целью организации базы данных должно быть уничтожение избыточныхданных там, где это выгодно, и контроль за теми про­тиворечиями,которые вызываются наличием избыточных данных.[7,10, 11]./>/>4.5.    Возможности поиска
Пользователь базы данных можетобращаться к ней с самыми различными вопросами по поводу хранимых данных. Вбольшин­стве современных коммерческих приложенийтипы запросов предо­пределены, и физическая организация данных разрабатываетсядля их обработки с требуемой скоростью. Возросшиетребования к системам заключаются в обеспечении обработки таких запро­сов илиформирования таких ответов, которые заранее не запла­нированы. [7, 10, 11]./>/>4.6.    Целостность
Если база данных содержитданные, используемые многими пользователями, очень важно, чтобы элементы данныхи связи между ними не разрушались. Необходимо учитывать возможностьвозникновения ошибок и различного рода случайных сбоев. Хра­нение данных, ихобновление, процедуры включения данных должны быть такими, чтобы система вслучае возникновения сбоев могла восстанавливать данные без потерь. Необходимо,чтобы вы­числительная система гарантировала целостность хранимых в нейданных.[7, 10, 11]./>/>4.7.    Безопасность и секретность
Данные в системах баз данныхдолжны храниться в тайне и сохранности. Запоминаемая информация иногда оченьважна для использующего ее учреждения. Она не должна быть утеряна или похищена.Для увеличения жизнестойкости информации в базе данных важно защищать ее отаппаратных или программных сбоев, от катастрофических и криминальных ситуаций,от неком­петентного или злонамеренного использования лицами, которые могут еенеправильно употребить.
Под безопасностью данных понимают защиту данныхот слу­чайного или преднамеренного доступа к ним лиц, не имеющих на это право,от неавторизованной модификации данных или их унич­тожения.
Секретностьопределяют как право отдельных лиц или орга­низацийопределять, когда, как и какое количество соответствую­щей информации можетбыть передано другим лицам или орга­низациям.[7, 10, 11]./>/>4.8.    Связь с прошлым
Организации, которые в течениекакого-то времени эксплуати­руют системы обработки данных, затрачиваютзначительные сред­ства на написание программ, процедур и организацию храненияданных. В том случае, когда фирма начинает использовать на вычислительнойустановке новое программное обеспечение управ­лениябазами данных, очень важно, чтобы при этом она могла работать с ужесуществующими на этой установке программами, обрабатываемые данные можно былобы соответствующим образом преобразовывать. Такоеусловие требует наличия програм­мной иинформационной совместимости, и ее отсутствие может стать основным сдерживающимфактором при переходе к новым системам управления базами данных. Важно, однако,чтобы про­блема связи с прошлым не сдерживала развитие средств управ­лениябазами данных. [7, 10, 11]./>/>4.9.    Связь с будущим
Особенно важной представляетсясвязь с будущим. В будущем данные и среда их хранения изменятся по многимнаправлениям. Любая коммерческая организация со временем претерпевает из­менения.Особенно дорогими эти изменения оказываются для пользователей системамиобработки данных. Огромные затраты, которые требуются для реализации самыхпростых изменений, сильно тормозят развитие этих систем. Эти затратырасходуются на преобразование данных, перезапись и отладку прикладных программ,явившихся результатом внесения изменений. Со време­нем число прикладныхпрограмм в организации растет, и поэтому перспектива перезаписи всех этихпрограмм кажется нереальной. Одна из самых важных задач при разработке базданных—запла­нировать базу данных таким образом, чтобы изменения ее можно быловыполнять без модификации прикладных программ.[7, 10, 11]./>/>4.10.  Простота использования
Средства, которые используютсядля представления общего логического описания данных, должны быть простыми иизящны­ми.
Интерфейс программногообеспечения должен быть ориентирован на конечного пользователя и учитыватьвозможность того, что пользователь не имеет необходимой базы знаний по теориибаз данных. [7, 10, 11]./>/>5.  Модели представления данных
С ростом популярности СУБД в70-80-х годах появилось множество различных моделей данных. У каждой из нихимелись свои достоинства и недостатки, которые сыграли ключевую роль в развитииреляционной модели данных, появившейся во многом благодаря стремлению упроститьи упорядочить первые модели данных.
Современные БД  основываютсяна  использовании моделей данных (МД),  позволяющих описывать объектыпредметных  областей и  взаимосвязи между ними  существуют три основные  МД иих комбинации, на которых основываются  БД: реляционная модель данных (РМД),сетевая модель данных (СМД), иерархическая модель данных (ИМД).
Основное различие  между этими моделямиданных состоит в способах описания взаимодействий между объектами и  атрибутами. Взаимосвязь  выражает  отношение  между множествами данных.
Используют взаимосвязи «один  к  одному»,  «один  ко многим» и «многие комногим».  «Один к одному» — это взаимно однозначное соответствие,  которое  устанавливается  между одним объектом иодним  атрибутом. «Один ко многим» — этосоответствие между одним объектом и многими атрибутами. «Многиеко многим» — это соответствие между многими объектами имногими атрибутами. [10, 11, 12].
Рассмотрим эти модели данныхболее подробно./>/>5.1.    Иерархическая модель данных
ИМД основана  на понятии деревьев,  состоящих из вершин и ребер.  Вершине  дерева ставится в  соответствие  совокупности атрибутов данных,  характеризующихнекоторый объект.  Вершины и ребра  дерева  как бы образуютиерархическую древовидную структуру, состоящую из n уровней.
Первую вершину называют корневой вершиной.  Он  удовлетворяетусловиям:
1.   Иерархияначинается с корневой вершины.
2.   Каждая вершина  соответствует одному или нескольким атрибутам.
3.   Hауровнях  с  большим номером находятся зависимые вершины. Вершин предшествующего уровня является начальной для новых зависимых вершин.
4.   Каждаявершина, находящаяся на  уровне i, соединена  с одной и только однойвершиной уровня i-1, за  исключением корневой вершины.
5.  Корневая  вершина  может  быть  связана  с одной или несколькими зависимыми вершинами.
6.   Доступ  к каждой вершине происходит через корневую по единственному пути
7.   Существует произвольное  количество вершин каждого уровня.
Иерархическая модель  данныхсостоит из нескольких деревьев, т.е.  является лесом.  Каждая корневаявершин  образует начало записи логической базы данных.  В ИМД вершины,находящиеся на  уровне i, называют порожденными вершин ми н уровне i-1.
Операции в  ИМД имеют нелогичный позаписный характер. Аппарат перемещения по структуре  в графовых  моделях служит для установки тех объектов данных,  к которым будетприменяться очередная операция манипулирования данными. Такие объектыназываются текущими. Механизмы доступа  к данным и перемещения поструктуре данных в таких моделях достаточно сложны и существенным образом  опираютсяна концепцию текущего состояния механизма  доступа.[7, 10, 11, 12].
         Основные достоинства    ИМД:  простота    построения  и использования, обеспечение определенного уровня  независимости данных, простота   оценки  операционныххарактеристик.  Основные недостатки: отношение  «многие  ко  многим» реализуется  очень сложно, дает громоздкую структуру и требует храненияизбыточных данных, что особенно нежелательно на  физическом уровне, иерархическая упорядоченность усложняет операции удаления и  включения, доступк любой вершине возможен только через корневую, что увеличивает время доступа.
К числу   СУБД  иерархического   типа   можно  отнести PC/Focus, Team-Up,  Data Edge,   также разработанную  в  нашей стране систему  HИКА,  преемницу  широко  распространенной советской системы ИHЕС для ЕС ЭВМ.
Одной из наиболее важных сферприменения первых иерархических СУБД было планирование производства длякомпаний, занимающихся выпуском продукции. Например, если автомобильнаякомпания хотела выпустить 10000 машин одной модели и 5000 машин другой модели,ей необходимо было знать, сколько деталей следует заказать у своих поставщиков.Чтобы ответить на этот вопрос, необходимо определить, из каких деталей состоятэти части и т.д. Например, машина состоит из двигателя, корпуса и ходовойчасти; двигатель состоит из клапанов, цилиндров, свеч и т.д. Работа со спискамисоставных частей была как будто специально предназначена для компьютеров.
Список составных частей изделияпо своей природе является иерархической структурой. Для хранения данных,имеющих такую структуру, была разработана иерархическая модель данных,которую иллюстрирует рис. 1.
В этой модели каждая записьбазы данных представляла конкретную деталь. Между записями существовали отношенияпредок/потомок, связывающие каждую часть с деталями, входящими внеё./> />
Чтобы получить доступ к данным, содержащимся в базе данных, программа могла:
·            найти конкретную деталь (правуюдверь) по её номеру;
·            перейти «вниз» к первомупотомку (ручка двери);
·            перейти «вверх» к предку(корпус);
·            перейти «в сторону» к другомупотомку (правая дверь).
Таким образом, для чтения данныхиз иерархической базы данных требовалось перемещаться по записям, за один разпереходя на одну запись вверх, вниз или в сторону.
Ограничения целостности.
Автоматически поддерживаетсяцелостность ссылок между предками и потомками. Основное правило: никакойпотомок не может существовать без своего родителя. Заметим, что аналогичноеподдержание целостности по ссылкам между записями, не входящими в однуиерархию, не поддерживается. [7, 9].
В иерархических системахподдерживалась некоторая форма представлений БД на основе ограничения иерархии./>/>5.2.    Сетевая модель  данных
Сетевая модель  данных замышлялась  как инструмент для пользователей баз данных — программистов. Всвязи с этим в СМД больше внимания уделяется  структуризации  данных, чемразвитию ее операционных возможностей.
В СМД  элементарные  данные  и отношения  между  ними представляются в  виде  ориентированной  сети (вершины — данные, дуги — отношения).[7]./> />
Если структура данных оказывалась сложнее, чем обычная иерархия, простотаструктуры иерархической базы данных становилась её недостатком. Например, вбазе данных для хранения заказов один заказ мог участвовать в трёх различныхотношениях предок/потомок, связывающих заказ с клиентом, разместившим его, сослужащим, принявшим его, и с заказанным товаром, что иллюстрирует рис. 2. Такиеструктуры данных не соответствовали строгой иерархии IMS.
В связи с этим для такихприложений, как обработка заказов, была разработана новая сетеваямодель данных. Она являлась улучшенной иерархической моделью, в которой одназапись могла участвовать в нескольких отношениях предок/потомок. В сетевоймодели такие отношения назывались множествами. В 1971 году наконференции по языкам систем данных был опубликован официальный стандартсетевых баз данных, который известен как модель CODASYL. Компания IBM не сталаразрабатывать собственную сетевую СУБД и вместо этого продолжала наращиватьвозможность IMS. Но в 70-х годах независимые производители программногообеспечения реализовали сетевую модель в таких продуктах, как IDMS компанииCullinet, Total компании Cincom и СУБД Adabas, которые приобрели большуюпопулярность.
Сетевые базы данных обладали рядом преимуществ:
·            Гибкость. Множественные отношения предок/потомок позволялисетевой базе данных хранить данные, структура которых была сложнее простойиерархии.
·            Стандартизация. Появление стандарта CODASYL популярность сетевоймодели, а такие поставщики мини-компьютеров, как Digital Equipment Corporationи Data General, реализовали сетевые СУБД.
·            Быстродействие.  Вопреки своей большой сложности, сетевые базы данныхдостигали быстродействия, сравнимого с быстродействием иерархических базданных. Множества были представлены указателями на физические записи данных, ив некоторых системах администратор мог задать кластеризацию данных на основемножества отношений.
Конечно, у сетевых баз данных были недостатки. Как ииерархические базы данных, сетевые базе данных были очень жесткими. Наборыотношений и структуру записей приходилось задавать наперёд. Изменение структурыбазы данных обычно означало перестройку всей базы данных.
Как иерархическая, так исетевая база данных были инструментами программистов. Чтобы получить ответ навопрос типа «Какой товар наиболее часто заказывает компания AcmeManufacturing?», программисту приходилось писать программу для навигациипо базе данных. Реализация пользовательских запросов часто затягивалась нанедели и месяцы, и к моменту появления программы информация, которую онапредоставляла, часто оказывалась бесполезной.[7, 10].
Ограничения целостности.
В принципе их поддержание нетребуется, но иногда требуют целостности по ссылкам (как в иерархическоймодели). />/>5.3.    Реляционная модель данных
Недостатки иерархической исетевой моделей привели к появлению новой, реляционной модели данных,созданной Коддом в 1970 году и вызвавшей всеобщий интерес. Реляционная модельбыла попыткой упростить структуру базы данных. В ней отсутствовали явныеуказатели на предков и потомков, а все данные были представлены в виде простыхтаблиц, разбитых на строки и столбцы. На рис. 3. показана реляционная версиясетевой базы данных, содержащей информацию о заказах и приведенной на рис. 2.
К сожалению, практическоеопределение понятия «реляционная база данных» оказалось гораздо болеерасплывчатым, чем точное математическое определение, данное этому терминуКоддом в 1970 году. В первых реляционных СУБД не были реализованы некоторые изключевых частей модели Кодда, и этот пробел был восполнен только впоследствии.По мере роста популярности реляционной концепции реляционными стали называтьсямногие базы данных, которые на деле таковыми не являлись.
/>

В ответ на неправильноеиспользование термина «реляционный» Кодд в 1985 году написал статью,где сформулировал 12 правил, которым должна удовлетворять любая база данных,претендующая на звание реляционной. С тех пор двенадцать правил Кодда считаютсяопределением реляционной СУБД. Однако можно сформулировать и более простоеопределение:
Реляционной называется база данных, в которой все данные, доступные пользователю,организованны в виде таблиц, а все операции над данными сводятся к операциямнад этими таблицами.
Приведенное определение неоставляет места встроенным указателям, имеющимся в иерархических и сетевыхСУБД. Несмотря на это, реляционная СУБД также способна реализовать отношенияпредок/потомок, однако эти отношения представлены исключительно значениямиданных, содержащихся в таблицах.
Поскольку в программнойреализации дипломной работы избран реляционный подход, как наиболее подходящий,опишем его более подробно.[3, 7, 8, 12]./>/>5.3.1.       Таблицы
Таблицы –фундаментальные объекты реляционной базы данных, в которых хранится основнаячасть данных приложения. Отдельная таблица чаще всего хранит информацию поконкретной теме (например, сведения о служащих компании или адреса заказчиков).Информация в таблице организуется в строки (записи) и столбцы (поля). Таблицеприсущи два компонента: структура таблицы и данные таблицы.
Структура таблицы(также называется определением таблицы) специфицируется при создании таблицы.Структура таблицы должна быть спроектирована и создана перед вводом в таблицукаких-либо данных. Она определяет, какие данные таблица будет хранить, а такжеправила, ассоциированные с вводом, изменением или удалением данных (бизнес-правила,или ограничения).
Структура таблицы включаетследующую информацию:
·    Имя таблицы — Имя, по которому к таблице можнообратиться в свойствах, методах и операторах SQL.
·    Столбцы таблицы — Категории информации, сохраненнойв таблице. Каждый столбец имеет имя и тип данного.
·    Табличные и столбцовые ограничения — Ограниченияцелостности, определенные на уровне таблицы или на уровне столбца.[3, 7, 8,12]./> />
Более наглядно структуру таблицы иллюстрирует рис 4., на котором изображенатаблица STUDENTS. Каждая горизонтальная строкаэтой таблицы представляет отдельную физическую сущность — одного студента. Вседанные, содержащиеся в конкретной строке таблицы, относятся к студенту, которыйописывается этой строкой.
Каждыйвертикальный столбец таблицы STUDENTS представляет один элемент данных для каждого изстудентов. Например, в столбце GROUP содержатся номера групп, в которыхрасположены студенты. В столбце DATE содержатся даты рождения каждого студента.
Данные таблицы –информация, которая сохранена в таблице. Все данные таблицы хранятся в строках,каждая из которых содержит порции информации в столбцах, определенных в структуретаблицы. Данные – та часть таблицы, к которой обычно должны иметь доступпользователи приложения (например, данные таблицы могут выводиться в элементахуправления, размещенных в формах и отчетах).
На пересечении каждой строки скаждым столбцом таблицы содержится в точности одно значение данных. Например,во второй строке в столбце FAMILY содержится значение «ИВАНОВ». Встолбце PODGRP той же строки содержится значение 1, которое является номеромподгруппы, в которой находится данный студент.
Все значения, содержащиеся водном и том же столбце, являются данными одного типа. Например, в столбцеFAMILY содержатся только слова, в столбце DATE содержатся даты, а в столбцеNUMBER содержатся целые числа, представляющие идентификаторы студентов.Множество значений, которые могут содержаться в столбце, называется доменомэтого столбца. Доменом столбца FAMILY является множество фамилий студентов.Доменом столбца DATE является любая дата.
У каждого столбца в таблицеесть своё имя, которое обычно служит заголовком столбца. Всестолбцы в одной таблице должны иметь уникальные имена, однако разрешаетсяприсваивать одинаковые имена столбцам, расположенным в различных таблицах. Напрактике такие имена столбцов, как NUMBER, FAMILY, NAME, GROUP, DATE, PODGRP,часто встречаются в различных таблицах одной базы данных.
Столбцы таблицы упорядоченыслева направо, и их порядок определяется при создании таблицы. В любой таблицевсегда есть как минимум один столбец. В стандарте ANSI/ISO не указываетсямаксимально допустимое число столбцов в таблице, однако почти во всехкоммерческих СУБД этот предел существует и обычно составляет примерно 255столбцов.
В отличие от столбцов, строки таблицы не имеютопределённого порядка. Это значит, что если последовательно выполнить дваодинаковых запроса для отображения содержимого таблицы, нет гарантии, что обараза строки будут перечислены в одном и том же порядке.
В таблице может содержатьсялюбое количество строк. Вполне допустимо существование таблицы с нулевымколичеством строк. Такая таблица называется пустой. Пустаятаблица сохраняет структуру, определённую её столбцами, просто в ней несодержится данные. Стандарт ANSI/ISO не накладывает ограничений на количествострок в таблице, и во многих СУБД размер таблиц ограничен лишь свободнымдисковым пространством компьютера. В других СУБД  имеется максимальный предел,однако он весьма высок — около двух миллиардов строк, а иногда и больше.[12]./>/>5.3.2.       Ключевые поля
Мощь реляционных баз данныхзаключается в том, что с их помощью можно быстро найти и связать данные изразных таблиц при помощи запросов; форм и отчетов. Для этого каждая таблицадолжна содержать одно или несколько полей, однозначно идентифицирующих каждуюзапись в таблице. Эти поля называются ключевыми полями таблицы.Ключевые поля ещё также называют первичным ключом. Можно выделитьтри типа ключевых полей: счетчик, простой ключ и составной ключ.
Посколькустроки в реляционной таблице не упорядочены, нельзя выбрать строку по ее номерув таблице. В таблице нет «первой», «последней» или«тринадцатой» строки. Тогда каким же образом можно указать в таблицеконкретную строку, например строку для студента с фамилией Иванов?
Ключевое поле можно задатьтаким образом, чтобы при добавлении каждой записи в таблицу в это полеавтоматически вносилось порядковое число, т.е. организовать счётчик.Это наиболее простой способ создания ключевых полей.
Если поле содержит уникальныезначения, такие как коды или инвентарные номера, то это поле можно определитькак простой ключ. Если выбранное поле содержит повторяющиеся илипустые значения, то оно не будет определено как ключевое. Для определениязаписей, содержащих повторяющиеся данные, можно выполнить запрос на поискповторяющихся записей. Если устранить повторы путем изменения значенийневозможно, то следует либо добавить в таблицу поле счетчика и сделать егоключевым, либо определить составной ключ.[3, 7, 8, 12].
На первыйвзгляд, первичным ключом таблицы STUDENTSмогут служить и столбец FAMILY. Однаков жизни довольно часто встречаются однофамильцы, следовательно, столбец FAMILY больше не может выполнять рольключа. На практике в качестве первичных ключей таблиц обычно следует выбиратьидентификаторы, такие как идентификатор студента NUMBER в таблице STUDENTS./> />
Таблица ORDERS,фрагмент которой показан на рис. 5., является примером таблицы, вкоторой первичный ключ представляет собой комбинацию столбцов. Такой первичный ключ называется составнымключом.
Он применяется в случаях, когданевозможно гарантировать уникальность значений каждого отдельного поля. Чащевсего такая ситуация возникает для таблицы, используемой для связывания двухтаблиц в отношении «многие-ко-многим».
Столбец NSTUD содержитидентификаторы студентов, перечисленных в таблице, а столбец NORDER содержитномера, приказам. Может показаться, что столбец NORDERмог бы и один выполнять роль первичного ключа, однако ничто не мешает одномустуденту несколько раз попасть под отчисление и затем восстановиться на факультете.Таким образом, в качестве первичного ключа таблицы ORDERSнеобходимо использовать комбинацию столбцов NSTUD и NORDER. Для каждого из студентов, содержащихсяв таблице, комбинация значений в этих столбцах будет уникальной.
Первичный ключ для каждой строкитаблицы является уникальным, поэтому в таблице с первичным ключом нет двухсовершенно одинаковых строк. Таблица, в которой все строки отличаются друг отдруга, в математических терминах называется отношением.Именно этому термину реляционные базы данных и обязаны своим названием,поскольку в их основе лежат отношения (таблицы с отличающимися друг от другастроками).
Хотя первичные ключи являютсяважной частью реляционной модели данных, в первых реляционных СУБД (System/R,DB2, Oracle и других) не была обеспечена явным образом их поддержка. Какправило, проектировщики базы данных сами следили за тем, чтобы у всех таблицбыли первичные ключи, однако в самих СУБД не было возможности определить длятаблицы первичный ключ. И только в СУБД DB2 Version 2, появившейся в апреле1988 года, компания IBM реализовала поддержку первичных ключей. После этогоподобная поддержка была добавлена в стандарт ANSI/ISO.[3, 7, 8, 12]./>/>5.3.3.       Индексы
Индексы –объекты базы данных, которые обеспечивают быстрый доступ к отдельным строкам втаблице. Индекс создается с целью повышения производительности операцийзапросов и сортировки данных таблицы. Индексы также используются дляподдержания в таблицах некоторых типов ключевых ограничений; эти индексы частосоздаются автоматически при определении ограничения.
Индекс – независимый объект,логически отдельный от таблицы; создание или удаление индекса никак невоздействует на определение или данные индексированной таблицы. Он хранитвысоко оптимизированные версии всех значений одного или больше столбцовтаблицы. Когда значение запрашивается из индексированного столбца, процессор(ядро) базы данных использует индекс для быстрого нахождения требуемогозначения. Индексы должны постоянно поддерживаться, чтобы отражать последниеизменения индексированных столбцов таблицы. Процедуры обновления индекса привставке, модификации или удалении значения в индексированный столбецавтоматически выполняются процессором базы данных. Хотя эти операции не требуютникаких действий со стороны пользователя, они, однако, снижают эффективностьнекоторых операций манипулирования данными (кроме запросов на выборку). Однакоуменьшение производительности, ассоциированное с поддержанием индекса, вбольшинстве случаев с лихвой компенсируется преимуществами повышениябыстродействия доступа к данным, которое обеспечивает индекс. Индексыобеспечивают наибольшие выгоды для относительно статичных таблиц, по которымчасто выполняются запросы.
Создать индексы, как и ключи,можно по одному или нескольким полям. Составные индексы позволяют при отбореданных группировать записи, в которых первые поля могут иметь одинаковыезначения. Индексировать поля требуется для выполнения частых поисков, сортировокили объединений с полями из других таблиц в запросах. Ключевые поля таблицыиндексируются автоматически. Нельзя индексировать поля с типом данных полеМЕМО, гиперссылка или объект OLE. Для остальных полей индексированиеиспользуется, если поле имеет текстовый, числовой, денежный тип или типдаты/времени и требуется осуществлять поиск и сортировку значений в поле. Еслипредполагается, что будет часто выполняться сортировка или поиск одновременнопо двум и более полям, можно создать составной индекс. Например, если дляодного и того же запроса часто устанавливается критерий для полей Имя иФамилия, то для этих двух полей имеет смысл создать составной индекс. Присортировке таблицы по составному индексу сначала осуществляется сортировка попервому полю, определенному для данного индекса. Если в первом поле содержатсязаписи с повторяющимися значениями, то сортировка осуществляется по второмуполю и т. д.[3, 7, 8, 12]./>/>5.3.4.       Отношения предок/потомок
Одним из отличий реляционноймодели от первых моделей представления данных было то, что в ней отсутствовалиявные указатели, используемые для реализации отношений предок/потомок виерархической модели данных. Однако вполне очевидно, что отношенияпредок/потомок существуют и в реляционных базах данных. Например, в нашей базеданных каждой оценке на экзамене соответствует дисциплина, поэтому ясно, чтомежду строками таблицы DISCIPLS и таблицы EXAMINE существует отношение.
Как следует из рис.6, этоникоим образом не приводит к потере информации. На рисунке изображено несколькострок из таблиц DISCIPLS и EXAMINE. Обратим внимание на то, что в столбцеNUMBER таблицы EXAMINE содержится идентификатор студента. Доменом этого столбца(множеством значений, которые могут в нем храниться) является множествоидентификаторов студентов, содержащихся в столбце NUMBER таблицы EXAMINE.
Отношение предок/потомок,существующее между дисциплинами и оценками за экзамен, в реляционной модели непотеряно; просто оно реализовано в виде одинаковых значений данных, хранящихсяв двух таблицах, а не в виде явного указателя. Все отношения, существующиемежду таблицами реляционной базы данных, реализуются в таком виде./>/>5.3.5.       /> />
Внешние ключи
Столбец одной таблицы, значенияв котором совпадают со значениями столбца, являющегося первичным ключом другойтаблицы, называется внешним ключом. На рис. 7 столбец NUM_DIS представляет собой внешний ключдля таблицы DISCIPLS. Значения, содержащиеся вэтом столбце, представляют собой идентификаторы изучаемых дисциплин. Этизначения соответствуют значениям в столбце NDIS, который является первичнымключом таблицы DISCIPLS. Совокупно первичный ивнешний ключи создают между таблицами, в которых они содержатся, такое жеотношение предок/потомок, как и в иерархической базе данных.
Внешний ключ, как и первичныйключ, тоже может представлять собой комбинацию столбцов. На практике внешнийключ всегда будет составным (состоящим из нескольких столбцов), если онссылается на составной первичный ключ в другой таблице. Очевидно, чтоколичество столбцов и их типы данных в первичном и внешнем ключах совпадают.
Если таблица связана снесколькими другими таблицами, она может иметь несколько внешних ключей. Нарис. 7. показаны три внешних ключа таблицы ORDERS из учебной базы данных:
столбец REP является внешним ключом для таблицы SALESREPSи
связывает каждый заказ со служащим, принявшим его;
столбец CUST является внешним ключом для таблицы CUSTOMESи
связывает каждый заказ с клиентом, разместившим его;
/>
столбцы MRF и PRODUCT совокупно представляют собой составной внешний ключ длятаблицы PRODUCTS, который связывает каждый заказ с заказанным товаром.
Реляционная модель данныхобладает всеми возможностями сетевой модели по части выражения сложныхотношений.
Внешние ключи являютсянеотъемлемой частью реляционной модели, поскольку реализуют отношения междутаблицами базы данных. К несчастью, как и в случае с первичными ключами,поддержка внешних ключей отсутствовала в первых реляционных СУБД. Она былавведена в системе DB2 Version 2 и теперь имеется во всех коммерческих СУБД./>/>5.3.6.       Реляционная алгебра
Основная идея реляционнойалгебры состоит в том, что коль скоро таблицы являются множествами, то средстваманипулирования ими могут базироваться на традиционных теоретико-множественныхоперациях, дополненных некоторыми специальными операциями, специфичными для базданных.
Используется немногорасширенный начальный вариант алгебры, который был предложен Коддом. В этомварианте набор основных алгебраических операций состоит из восьми операций,которые делятся на два класса — теоретико-множественные операции и специальныереляционные операции. В состав теоретико-множественных операцийвходят операции:
·    объединения таблиц;
·    пересечения таблиц;
·    взятия разности таблиц;
·    прямого произведения таблиц.
Специальные реляционные операции включают:
·    ограничение таблицы;
·    проекцию таблицы;
·    соединение таблиц;
·    деление таблиц.
Кроме того, в состав алгебрывключается операция присваивания, позволяющая сохранить в базе данныхрезультаты вычисления алгебраических выражений, и операция переименованияатрибутов, дающая возможность корректно сформировать заголовок (схему)результирующей таблицы.
Ограниченияцелостности.
Существуют три подхода, каждыйиз которых поддерживает целостность по ссылкам. Первый подход заключается втом, что запрещается производить удаление записи, на которую существуют ссылки(т.е. сначала нужно либо удалить ссылающиеся записи, либо соответствующимобразом изменить значения их внешнего ключа). При втором подходе при удалениизаписи, на которую имеются ссылки, во всех ссылающихся записях значениевнешнего ключа автоматически становится неопределенным. Наконец, третий подход(каскадное удаление) состоит в том, что при удалении записи из таблицы, накоторую ведет ссылка, из ссылающейся таблицы автоматически удаляются всессылающиеся записи.[7, 12, 13]./>/>5.3.7.       Нормализация базы данных
Процесс трансформации данных вреляционную форму называется нормализацией[9]. Говоря проще,нормализация — это удаление избыточных данных из каждой таблицы в базе данных.У нормализации двойная цель — удалить лишние копии данных и обеспечитьмаксималь­ную гибкость как в структурах таблиц, так и в интерфейсныхприложениях на случай возможных будущих изменений в базах данных.
О нормализации таблиц в базеданных нужно заботится на раннем этапе проектирования приложения, так как при“живых” данных довольно трудно менять структуру базы. Иногда процесснормализации порождает добавочные таблицы, которые были не включены в первона­чальныйпроект. Узнав об этом как можно раньше, не придется зря тратить силы на ихразработку.
Нормализация обычноподразделяется на пять форм или стадий— от первой нормальной формы по пятуюнормальную форму. То есть просто пять установок реляционного критерия,который либо обнаруживает таблицу, либо нет. Каждая последующая стадия строитсяна предыдущей. Формально существует пять форм, но на практике, как правило,используется только первые три. Последние две считаются слишком специальными,чтобы их применять к обычным проектам баз данных.[7, 8, 10]./>/>/>/>/>/>/>/>/>5.3.7.1.         Первая нормальная форма
Для того чтобы таблицасчиталась нормализованной к первой нормальной форме, каждое из ее полей должнобыть неделимым и не должно содержать никаких повторяющихся групп.
Поле считается неделимым, еслионо содержит только один элемент данных. Например, поле Address, которое содержитне только название улицы, но также и города,  почтовый код, не являетсянеделимым. Чтобы соответствовать первой нормальной форме, такие столбцы должныбыть разбиты на несколько полей.[7, 8, 10].
Повторяющаяся группа— это поле, которое повторяется внутри определения записи с целью хранениянескольких значений для атрибута./>/>/>/>/>/>/>/>/>5.3.7.2.         Вторая нормальная форма
Для того чтобы привести таблицуко второй нормальной форме, нужно, чтобы все не ключевые поля полностьюзависели от первичного ключа таблицы и от каждого поля в первичном ключе, еслипоследний состоит из нескольких полей. Это зна­чит, что каждое не ключевое поледолжно уникально определяться первичным ключом и полями, его составляющими.[7,8, 10]./>/>/>/>/>/>/>/>/>5.3.7.3.         Третья нормальная форма
Для того чтобы таблица былаприведена к третьей нормальной форме, нужно, чтобы все не ключевые поляполностью зависели от первичного ключа таблицы и не зависели друг от друга.Таким образом, к квалификации второй нормальной формы добавляется требованиенезависимости каждого не ключевого поля таблицы от других не ключевых полей.[7,8, 10]./>/>/>/>/>/>/>/>/>5.3.7.4.         Четвертая нормальная форма
Четвертая нормальная формазапрещает хранить независимые элементы в одной и той же таблице, когда междуэтими элементами существуют взаимоотношения типа многие-ко-многим. Четвертаянормальная форма требует, чтобы запомнили такие элементы в отдельных таблицах исоздали таблицу от­ношений для организации связей между таблицами,характеризующихся взаимоотношениями типа многие-ко-многим.
Конечно же, поскольку двастолбца находятся во взаимоотношении многие-ко-многим, то они уже не являютсянеза­висимыми, и тем самым уже нарушают третью нормальную форму. По этойпричине четвертая нормальная форма рас­сматривается больше теоретически, т.к.частично она перекрывается третьей нормальной формой.[7, 8, 10]./>/>/>/>/>/>/>/>/>5.3.7.5.         Пятая нормальная форма
Пятая нормальная форма требует,чтобы вы имели возможность перестраивать свои данные в нормализованных таб­лицах,в которые они были переведены. Это значит, что если вы начинаете сненормализованных таблиц, то у вас не должно быть препятствий к вырезке ивставке данных и после нормализации. Это осуществимые, если есть гарантия, чтов процессе нормализации не будет потери данных.
На практике идея сохранениявсех элементов в базе данных в процессе нормализации воплощается чистоинтуитивно. Ведь вряд ли будут слепо выбрасывать из таблиц элементы данных. Нотем не менее, пятая нормальная форма при­звана застраховать вас от такогонесчастного случая.[7, 8, 10]./>/>6.  Язык SQL как стандартный язык баз данных.
Стремительный рост популярностиSQL является одной из самых важных тенденций в современной компьютернойпромышленности. За несколько последних лет SQL стал единственным языкомбаз данных. На сегодняшний день SQL поддерживают свыше ста СУБД, работающих какна персональных компьютерах, так и на больших ЭВМ. Был принят, а затем дополненофициальный международный стандарт на SQL. Язык SQL является важным звеном вархитектуре систем управления базами данных, выпускаемых всеми ведущимипоставщиками программных продуктов, и служит стратегическим направлениемразработок компании Microsoft в области баз данных. Зародившись в результатевыполнения второстепенного исследовательского проекта компании IBM, SQL сегодняшироко известен и в качестве мощного рыночного фактора.[13]/>/>6.1.    Язык SQL/> />
         QL является инструментом, предназначенным для обработкии чтения данных, содержащихся в компьютерной базе данных. SQL — это сокращенноеназвание структурированного языка запросов(Structured QueryLanguage). Как следует из названия, SQL является языком программирования,который применяется для организации взаимодействия пользователя с базой данных.На самом деле SQL работает только с базами данных реляционноготипа.На рис. 8 изображена схема работы SQL. Согласно этой схеме, ввычислительной системе имеется база данных, в которой хранится важнаяинформация. Если вычислительная система относится к сфере бизнеса, то в базеданных может храниться информация о материальных ценностях, выпускаемойпродукции, объемах продаж и зарплате. В базе данных на персональном компьютереможет храниться информация о выписанных чеках, телефонах и адресах илиинформация, извлеченная из более крупной вычислительной системы. Компьютерная программа, которая управляетбазой данных, называется системой управления базой данных,или СУБД.
Если пользователю необходимопрочитать данные из базы данных, он запрашивает их у СУБД с помощью SQL. СУБДобрабатывает запрос, находит требуемые данные и посылает их пользователю.Процесс запрашивания данных и получения результата называется запросомк базе данных: отсюда и название — структурированный язык запросов.
Однако это название не совсемсоответствует действительности. Во-первых, сегодня SQL представляет собой нечтогораздо большее, чем простой инструмент создания запросов, хотя именно дляэтого он и был первоначально предназначен. Несмотря на то, что чтение данныхпо-прежнему остается одной из наиболее важных функций SQL, сейчас этот языкиспользуется для реализации всех функциональных возможностей, которые СУБДпредоставляет пользователю, а именно:
·            Организация данных. SQL даетпользователю возможность изменять структуру представления данных, а такжеустанавливать отношения между элементами базы данных.
·            Чтение данных. SQL даетпользователю или приложению возможность читать из базы данных содержащиеся вней данные и пользоваться ими.
·            Обработка ванных. SQLдает пользователю или приложению возможность изменять базу данных, т.е.добавлять в нее новые данные, а также удалять или обновлять уже имеющиеся в нейданные.
·            Управление доступом. С помощьюSQL можно ограничить возможности пользователя по чтению и изменению данных изащитить их от несанкционированного доступа.
·    Совместное использованиеданных. SQL координирует совместное использование данныхпользователями, работающими параллельно, чтобы они не мешали друг другу.
·    целостность данных. SQLпозволяет обеспечить целостность базы данных, защищая ее от разрушения из-занесогласованных изменений или отказа системы.
Таким образом, SQL является достаточномощным языком для взаимодействия с СУБД.
Во-вторых, SQL — это неполноценный компьютерный язык типа COBOL, FORTRAN или С. В SQL нет оператора IF для проверки условий, нет оператораGOTO для организации переходов и нет операторов DOили FOR для созданияциклов. SQL является подъязыком баз данных, в который входитоколо тридцати операторов, предназначенных для управления базами данных.Операторы SQL встраиваются в базовый язык, например COBOL, FORTRAN или С, идают возможность получать доступ к базам данных. Кроме того, из такого языка,как С, операторы SQL можно посылать СУБД в явном виде, используя интерфейсвызовов функций.
Наконец, SQL — это слабоструктурированный язык, особенно по сравнению с такими сильноструктурированными языками, как С или Pascal. Операторы SQL напоминаютанглийские предложения и содержат «слова-пустышки», не влияющие насмысл оператора, но облегчающие его чтение. В SQL почти нет нелогичностей, ктому же имеется ряд специальных правил, предотвращающих создание операторовSQL, которые выглядят как абсолютно правильные, но не имеют смысла.
Несмотря на не совсем точноеназвание, SQL на сегодняшний день является единственным стандартным языкомдля работы с реляционными базами данных. SQL — это достаточно мощный и в то жевремя относительно легкий для изучения язык.[13, 8]./>/>6.2.    Достоинства SQL
SQL — это легкий для пониманияязык и в то же время универсальное программное средство управления данными.
Успех языку SQL принеслиследующие его особенности:
• независимость отконкретных СУБД;
• переносимость с однойвычислительной системы на другую;
• наличие стандартов;
• одобрение компанией IBM(СУБД DB2);
• поддержка со стороныкомпании Microsoft (протокол ODBC);
• реляционная основа;
• высокоуровневая структура,напоминающая английский язык;
• возможность выполненияспециальных интерактивных запросов:
• обеспечение программногодоступа к базам данных;
• возможность различногопредставления данных;
• полноценность как языка,предназначенного для работы с базами данных;
• возможность динамическогоопределения данных;
• поддержка архитектурыклиент/сервер.
Всеперечисленные выше факторы явились причиной того, что SQL стал стандартныминструментом для управления данными на персональных компьютерах,мини-компьютерах и больших ЭВМ. Ниже эти факторы рассмотрены более подробно.[13, 8, 17]./>/>6.2.1.       Независимость от конкретных СУБД
Все ведущие поставщики СУБДиспользуют SQL, и ни одна новая СУБД, не поддерживающая SQL, не можетрассчитывать на успех. Реляционную базу данных и программы, которые с нейработают, можно перенести с одной СУБД на другую с минимальными доработками ипереподготовкой персонала. Программные средства, входящие в состав СУБД дляперсональных компьютеров, такие как программы для создания запросов, генераторыотчетов и генераторы приложений, работают с реляционными базами данных многихтипов. Таким образом, SQL обеспечивает независимость от конкретных СУБД, чтоявляется одной из наиболее важных причин его популярности./>/>6.2.2.       Переносимость с одной вычислительной системы на другие
Поставщики СУБД предлагаютпрограммные продукты для различных вычислительных систем: от персональныхкомпьютеров и рабочих станций до локальных сетей, мини-компьютеров и большихЭВМ. Приложения, созданные с помощью SQL и рассчитанные на однопользовательскиесистемы, по мере своего развития могут быть перенесены в более крупные системы.Информация из корпоративных реляционных баз данных может быть загружена в базыданных отдельных подразделений или в личные базы данных. Наконец, приложениядля реляционных баз данных можно вначале смоделировать на экономичныхперсональных компьютерах, а затем перенести на дорогие многопользовательскиесистемы./>/>6.2.3.       Стандарты языка SQL
Официальный стандарт языка SQLбыл опубликован Американским институтом национальных стандартов (AmericanNational Standards Institute — ANSI) и Международной организацией по стандартам(International Standards Organization — ISO) в 1986 году и значительно расширенв 1992 году. Кроме того, SQL является федеральным стандартом США по обработкеинформации (FIPS — Federal Information Processing Standard) и, следовательно,соответствие ему является одним из основных требований, содержащихся в большихправительственных контрактах, относящихся к области вычислительной техники. ВЕвропе стандарт X/OPEN для переносимой среды программирования на основеоперационной системы UNIX включает в себя SQL в качестве стандарта для доступак базам данных. SQL Access Group — консорциум поставщиков компьютерного оборудованияи баз данных — определил для SQL стандартный интерфейс вызовов функций, которыйявляется основой протокола ODBC компании Microsoft и входит также в стандартX/OPEN. Эти стандарты служат как бы официальной печатью, одобряющей SQL, и ониускорили завоевание им рынка.[13, 8, 17]./>/>6.2.4.       Одобрение SQL компанией IBM (СУБД DB2)
SQL был придуман научнымисотрудниками компании IBM и широко используется ею во множестве пакетов программногообеспечения. Подтверждением этому служит флагманская СУБД DB2 компании IBM. Всеосновные семейства компьютеров компании IBM поддерживают SQL: система PS/2 дляперсональных компьютеров, система среднего уровня AS/400. система RS/6000 набазе UNIX, а также операционные системы MVS и VM больших ЭВМ. Широкая поддержкаSQL фирмой IBM ускорила его признание и еще в самом начале возникновения иразвития рынка баз данных явилась своего рода недвусмысленным указанием длядругих поставщиков баз данных и программных систем, в каком направлениинеобходимо двигаться./>/>6.2.5.       Протокол ODBC и компания Microsoft
Компания Microsoftрассматривает доступ к базам данных как важную часть своей операционной системыWindows. Стандартом этой компании по обеспечению доступа к базам данныхявляется ODBC (Open Database Connectivity — взаимодействие с открытыми базамиданных) — программный интерфейс, основанный на SQL. Протокол ODBCподдерживается наиболее распространенными приложениями Windows (электроннымитаблицами, текстовыми процессорами, базами данных и т.п.), разработанными каксамой компанией Microsoft, так и другими ведущими поставщиками. Поддержка ODBCобеспечивается всеми ведущими реляционными базами данных. Кроме того, ODBCопирается на стандарты, одобренные консорциумом поставщиков SQL Access Group,что делает ODBC как стандартом де-факто компании Microsoft, так и стандартом,независимым от конкретных СУБД.[13, 8, 17]./>/>6.2.6.       Реляционная основа
SQL является языком реляционныхбаз данных, поэтому он стал популярным тогда, когда популярной сталареляционная модель представления данных. Табличная структура реляционной базыданных интуитивно понятна пользователям, поэтому язык SQL является простым илегким для изучения. Реляционная модель имеет солидный теоретический фундамент,на котором были основаны эволюция и реализация реляционных баз данных. На волнепопулярности, вызванной успехом реляционной модели, SQL стал единственнымязыком для реляционных баз данных.[13, 8, 17]./>/>6.2.7.       Высокоуровневая структура, напоминающая английский язык
Операторы SQL выглядят какобычные английские предложения, что упрощает их изучение и понимание. Частичноэто обусловлено тем, что операторы SQL описывают данные, которыенеобходимо получить, а не определяют способ их поиска. Таблицы и столбцыв реляционной базе данных могут иметь длинные описательные имена. В результатебольшинство операторов SQL означают именно то, что точно соответствует ихименам, поэтому их можно читать как простые, понятные предложения./>/>6.2.8.       Интерактивные запросы
SQL является языкоминтерактивных запросов, который обеспечивает пользователям немедленный доступ кданным. С помощью SQL пользователь может в интерактивном режиме получить ответына самые сложные запросы в считанные минуты или секунды, тогда как программиступотребовались бы дни или недели, чтобы написать для пользователясоответствующую программу. Из-за того, что SQL допускает немедленные запросы,данные становятся более доступными и могут помочь в принятии решений, делая ихболее обоснованными.[13, 8, 17]./>/>6.2.9.       Программный доступ к базе данных
Программисты пользуются языкомSQL, чтобы писать приложения, в которых содержатся обращения к базам данных.Одни и те же операторы SQL используются как для интерактивного, так и дляпрограммного доступа, поэтому части программ, содержащие обращения к базеданных, можно вначале тестировать в интерактивном режиме, а затем встраивать впрограмму. В традиционных базах данных для программного доступа используютсяодни программные средства, а для выполнения немедленных запросов — другие, безкакой либо связи между этими двумя режимами доступа.[13, 8, 17]./>/>6.2.10.    Различные представления данных
С помощью SQL создатель базыможет сделать так, что различные пользователи базы данных будут видеть различныепредставления её структуры и содержимого. Например, базу данных можноспроектировать таким образом, что каждый пользователь будет видеть толькоданные, относящиеся к его подразделению или торговому региону. Кроме того,данные из различных частей базы данных могут быть скомбинированы и представленыпользователю в виде одной простой таблицы. Следовательно, представления можноиспользовать для усиления защиты базы данных и ее настройки под конкретныетребования отдельных пользователей.[13, 8, 17]./>/>6.2.11.    Полноценный язык для работы с базами данных
Первоначально SQL был задуманкак язык интерактивных запросов, но сейчас он вышел далеко за рамки чтенияданных. SQL является полноценным и логичным языком, предназначенным длясоздания базы данных, управления ее защитой, изменения ее содержимого, чтенияданных и совместного использования данных несколькими пользователями,работающими параллельно. Приемы, освоенные при изучении одного раздела языка,могут затем применяться в других командах, что повышает производительностьработы пользователей.[13, 8, 17]./>/>6.2.12.    Динамическое определение данных
С помощью SQL можно динамическиизменять и расширять структуру базы данных даже в то время, когда пользователиобращаются к ее содержимому. Это большое преимущество перед языкамистатического определения данных, которые запрещают доступ к базе данных вовремя изменения ее структуры. Таким образом, SQL обеспечивает максимальнуюгибкость, так как дает базе данных возможность адаптироваться к изменяющимсятребованиям, не прерывая работу приложения, выполняющегося в реальном масштабевремени.[13, 8, 17]./>/>6.2.13.    Архитектура клиент/сервер
SQL — естественное средство дляреализации приложений клиент/сервер. В этой роли SQL служит связующим звеноммежду клиентской системой, взаимодействующей с пользователем, и сервернойсистемой, управляющей базой данных, позволяя каждой системе сосредоточиться навыполнении своих функций. Кроме того, SQL позволяет персональным компьютерамфункционировать в качестве клиентов по отношению к сетевым серверам или болеекрупным базам данных, установленным на больших ЭВМ; это позволяет получать доступк корпоративным данным из приложений, работающих на персональных компьютерах./>[13, 8, 17]./>/>7.  Архитектуры баз данных
Для рассмотрения способоворганизации баз данных нужно определить несколько понятий.
Ядро БД отвечаетза управление данными во внешней памяти, управление буферами оперативнойпамяти, управление транзакциями и журнализацию. Соответственно, можно выделитьтакие компоненты ядра (по крайней мере, логически, хотя в некоторых системахэти компоненты выделяются явно), как менеджер данных, менеджер буферов,менеджер транзакций. Ядро БД обладает собственным интерфейсом, не доступнымпользователям напрямую и используемым в программах, производимых компиляторомSQL и утилитах БД. Ядро БД является основной резидентной частью СУБД. Прииспользовании архитектуры «клиент-сервер» ядро является основнойсоставляющей серверной части системы.
Основной функцией компилятораязыка БД является компиляция операторов языка БД в некоторуювыполняемую программу.
В отдельные утилиты БДобычно выделяют такие процедуры, которые слишком накладно выполнять сиспользованием языка БД, например, загрузка и выгрузка БД, сбор статистики,глобальная проверка целостности БД и т.д. Утилиты программируются сиспользованием интерфейса ядра БД, а иногда даже с проникновением внутрь ядра./> /> /> /> /> /> /> /> />

Общий состав средств,необходимых для работы готового приложения с БД, показан на рис. 10.  Согласноэтой общей схеме, мы имеем цепочку
Приложение —> Ядро БД —> базы данных.В структуре приложения имеется цепочка Невизуальные компоненты —>Визуальные компоненты. Невизуальные компоненты предоставляютпрограммисту некоторые функции по управлению ядром базы данных, а также самимиданными. С помощью Визуальных компонент данные отображаются наэкране (таблицы, списки, выпадающие списки, графики и др.). Местоположение ядраБД и самих баз данных в этой цепочке не отражены.
Местоположение Ядра БД и базданных зависит от используемой архитектуры. Имеется четыре разновидностиархитектур баз данных:
• локальные базы данных; ' архитектура«файл-сервер»;
• архитектура «клиент-сервер»;
• многозвенная (трехзвенная N-tier или multi-tier) архитектура.
Использование той или иной архитектуры накладывает сильныйотпечаток на общую идеологию работы приложения, на программный код вприложении, на состав компонентов для работы с БД, используемых в приложении(прежде всего это касается невизуальных компонентов).[4, 15]./>/>7.1.    Локальные базы данных иархитектура «файл-сервер»
При работе с локальнымибазами данных сами БД расположены на том же компьютере, что иприложения, осуществляющие доступ к ним. Работа с БД происходит воднопользовательском режиме. Ядро БД распложено на компьютере пользователя.Приложение ответственно за поддержание целостности БД и за выполнение запросовк БД. Общая схема однопользовательской архитектуры показана на рис. 11.
/>
При работе в архитектуре «файл-сервер» БД и приложениерасположены на файловом сервере сети (например, Novell NetWare). Возможна много­пользовательскаяработа с одной и той же БД, когда каждый пользователь со своего компьютеразапускает приложение, расположенное на сетевом сервере. Тогда на компьютерепользователя запускается копия приложения. По каждому запросу к БД изприложения данные из таблиц БД перегоняются на компьютер пользователя,независимо от того, сколько реально нужно данных для выполнения запроса. Послеэтого выполняется запрос.
Каждый пользователь имеет насвоем компьютере локальную копию данных, время от времени обновляемых изреальной БД, расположенной на сетевом сервере. При этом изменения, которыекаждый пользователь вносит в БД, могут быть до определенного момента неизвестныдругим пользователям, что делает актуальной задачу систематического обновленияданных на компьютере пользователя из реальной БД. Другой актуальной задачейявляется блокирование записей, которые изменяются одним из пользователей: этонеобходимо для того, чтобы в это время другой пользователь не внес изменений вте же данные. В архитектуре «файл-сервер» вся тяжесть выполнениязапросов к БД р, управления целостностью БД ложится на приложение пользователя.БД да сервере является пассивным источником данных.Общая схема архитектуру «файл-сервер» показана на рис. 12.
Кардинальных различий с точкизрения архитектуры между одно­пользовательской архитектурой и архитектурой«файл-сервер» нет. И в том. и в ином случае в качестве СУБДприменяются так называемые «персональные» (или «локальные»)СУБД. такие как Paradox, dBase и пр. Сама база данных в этом случае представляетсобой набор таблиц, индексных файлов, файлов полей комментариев (мемо-полей) и пр., хранящихся в одном каталоге надиске в виде отдельных файлов.[4]./>/>7.2.    Удаленные базы данных и архитектура"клиент-сервер"
Архитектура«файл-сервер» неэффективна, по крайней мере, в двух отношениях:
1.   Привыполнении запроса к базе данных, расположенной на файловом сервере, в действительностипроисходит запрос к локальной копии данных на компьютере пользователя. Поэтомуперед выполнением запроса данные в локальной копии обновляются из реальной БД.Данные обновляются в полном объеме. Так, если таблица БД состоит из 1000записей, а для выполнения запроса (например, выдать сумму премий за октябрь вотделе Y) реально нужно 10 записей, все равно перегоняются все 1000 записей.Таким образом, не нужно иметь слишком много пользователей и запросов от них,чтобы серьезно ''забить" сеть, что, конечно же, не может не сказаться наее быстродействии.
2.   Обеспечениецелостности БД производится из приложений. Это потенциальный источник ошибок,нарушающих физическую и логическую целостность БД, поскольку различныеприложения могут производить контроль целостности БД по-разному,взаимоисключающими способами, или не проводить такого контроля вовсе. Намногоэффективнее управлять БД из единого места и по единым законам, нежели из разныхприложений и по потенциально разным законам (все зависит от того, как написаноприложение). Поэтому безопасность при работе в архитектуре«файл-сервер» невысока и всегда присутствует элементнеопределенности. Секретность и конфиденциальность при работе с БД вархитектуре «файл-сервер» обеспечить также тяжело — любой, кто имеетдоступ в каталог сетевого сервера, где хранится БД, может изменять таблицы БДлюбым образом, копировать их, заменять и т.д. [4].
Архитектура «клиент-сервер»разделяет функции приложения пользователя (называемого клиентом) исервера (Рис. 13.).
Приложение-клиент формируетзапрос к серверу, на котором расположена БД, на структурном языке запросов SQL.Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер– это специальная программа, управляющая удаленной базой данных. SQL-сервер обеспечиваетинтерпретацию запроса, его выполнение в базе данных. формирование результатавыполнения запроса и выдачу его приложению-клиенту. При этом ресурсыклиентского компьютера не участвуют в физическом выполнении запроса; клиентскийкомпьютер лишь отсылает запрос к серверной БД и получает результат, после чегоинтерпретирует его необходимым образом и представляет пользователю. Так какклиентскому приложению посылается результат выполнения запроса, по сети«путешествуют» только те данные, которые необходимы клиенту. В итогеснижается нагрузка на сеть. Поскольку выполнение запроса происходит там же, гдехранятся данные (на сервере), нет необходимости в пересылке больших пакетовданных. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запростаким образом, чтобы он был выполнен в минимальноевремя с наименьшими накладными расходами.
Все это повышает быстродействиесистемы и снижает время ожидания результата запроса.
При выполнении запросовсервером существенно повышается степень безопасности данных, поскольку правилацелостности данных определяются в базе данных на сервере и являются едиными длявсех приложений, исполь­зующих эту БД. Таким образом, исключается возможностьопределения противоречивых правил поддержания целостности. Мощный аппараттранзакций, поддерживаемый SQL-серверами, позволяет исключить одновременноеизменение одних и тех же данных различными пользователями и предоставляетвозможность откатов к первоначальным значениям при внесении в БД изменений,закончившихся аварийно. Таким образом, функциями приложения-клиента являются:
1.   посылка ксерверу запросов;
2.   интерпретациярезультатов запросов, полученных от сервера, и представление их пользователю втребуемой форме;
3.   реализацияинтерфейса пользователя.
SQL-сервер — это программа, расположенная накомпьютере сетевого сервера. SQL-сервер должен быть загружен на момент принятиязапроса от клиента. Функциями сервера БД являются:
1.   приемзапросов от приложений-клиентов, интерпретация запросов, выполнение запросов вБД, отправка результата выполнения запроса приложению-клиенту;
2.   управлениецелостностью БД, обеспечение системы безопасности, блокировка неверных действийприложений-клиентов;
3.   хранение бизнес-правил,часто используемых запросов в уже интерпретированном виде;
4.   обеспечениеодновременно безопасной и отказоустойчивой многопользовательской работы содними и теми же данными. В архитектуре «клиент-сервер» используютсятак называемые «удаленные» (или «промышленные») СУБД.Промышленными они называются из-за того. что именно СУБД этого класса могутобеспечить работу информационных систем масштаба среднего и крупногопредприятия, организации, банка. Локальные СУБД предназначены дляоднопользовательской работы или для обеспечения работы информационных систем,рассчитанных на небольшие группы пользователей.[4, 15, 11].
К разрядку промышленных СУБДпринадлежат: Oracle, Gupta, Informix, Sybase, MS SQL Server, DB2, InterBase иряд других.
Как правило, SQL-серверуправляется отдельным сотрудником или группой сотрудников(администраторы SQL-сервера). Они управляют физическими характеристиками базданных, производят оптимизацию, настройку и переопределение различныхкомпонентов БД, создают новые БД, изменяют существующие и т.д., а также выдаютпривилегии (разрешения на доступ определенного уровня к конкретным БД,SQL-серверу) различным пользователям.
Кроме этого, существуетотдельная категория сотрудников, называемых администраторами базданных. Как правило, это администраторы сервера, разработчики БД илипользователи, имеющие привилегии на создание, изменение, настройку оптимальныхпараметров отдельных серверных БД-Администраторы БД также отвечают запредоставление прав на разно­уровневый доступ к сопровождаемым ими БД длядругих пользователей.[4, 15, 11].
Использование архитектуры«клиент-сервер»:
1.   резкоуменьшает сетевой трафик:
2.   понижаетсложность приложений-клиентов (поскольку тем уже нет необходимости обеспечиватьцелостность и безопасность БД и следить за параметрами многопользовательскойработы с БД);
3.   понижаеттребования к аппаратным средствам, на которых эти приложения функционируют(т.е. к компьютерам пользователей-клиентов):
4.   повышаетнадежность БД, ее целостность, безопасность и секретность./>/>8.  Среда Delphi как средство для разработки СУБД
Поскольку использование базданных является одним из краеугольных камней, на которых построеносуществование различных организаций, пристальное внимание разработчиковприложений баз данных вызывают инструменты, при помощи которых такие приложенияможно было бы создавать. Выдвигаемые к ним требования в общем виде можносформулировать как: «быстрота, простота, эффективность, надежность».
Среди большого разнообразияпродуктов для разработки приложений Delphi занимает одно из ведущих мест.Delphi отдают предпочтение разработчики с разным стажем, привычками,профессиональными интересами. С помощью Delphi написано колоссальное количествоприложений, десятки фирм и тысячи программистов-одиночек разрабатывают дляDelphi дополнительные компоненты.[4].
В основе такой общепризнаннойпопулярности лежит тот факт, что Delphi, как никакая другая системапрограммирования, удовлетворяет изложенным выше требованиям. Действительно,приложения с помощью Delphi разрабатываются быстро, причем взаимодействиеразработчика с интерактивной средой Delphi не вызывает внутреннего отторжения,а наоборот, оставляет ощущение комфорта. Delphi-приложения эффективны, если разработчиксоблюдает определенные правила (и часто — если не соблюдает). Эти приложениянадежны и при эксплуатации обладают предсказуемым поведением.[4, 22].
Пакет Delphi — продолжениелинии компиляторов языка Pascal корпорации Borland. Pascal как язык оченьпрост, а строгий контроль типов данных способствует раннему обнаружению ошибоки позволяет быстро создавать надежные и эффективные программы. КорпорацияBorland постоянно обогащала язык. Когда-то в версию 4.0 были включены средствараздельной трансляции, позже, начиная с версии 5.5, появились объекты, а всостав шестой версии пакета вошла полноценная библиотека классов Turbo Vision,реализующая оконную систему в текстовом режиме работы видеоадаптера. Это былодин из первых продуктов, содержавших интегрированную среду разработкипрограмм.
В классе инструментальныхсредств для начинающих программистов продуктам компании Borland пришлоськонкурировать со средой Visual Basic корпорации Microsoft, где вопросыинтеграции и удобства работы были решены лучше.  Когда в начале 70-х годов Н.Вирт опубликовал сообщение о Pascal, это был компактный, с небольшимколичеством основных понятий и зарезервированных слов язык программирования,нацеленный на обучение студентов. Язык, на котором предстоит работать пользователюDelphi, отличается от исходного не только наличием множества новых понятий иконструкций, но и идейно: в нем вместо минимизации числа понятий ииспользования самых простых конструкций (что, безусловно, хорошо для обучения,но не всегда оправдано в практической работе), предпочтение отдается удобствуработы профессионального пользователя. Как язык Turbo Pascal естественносравнивать с его ближайшими конкурентами — многочисленными вариациями на темуязыка Basic (в первую очередь с Visual Basic корпорации Microsoft) и с C++.[4,6]. Я считаю, что Turbo Pascal существенно превосходит Basic за счетполноценного объектного подхода, включающего в себя развитые механизмы инкапсуляции,наследование и полиморфизм. Последняя версия языка, применяемая в Delphi,по своим возможностям приближается к C++. Из основных механизмов, присущих C++,отсутствует только множественное наследование. (Впрочем, этим красивым и мощныммеханизмом порождения новых классов пользуется лишь небольшая частьпрограммистов, пишущих на С++.) Плюсы применения языка Pascal очевидны: с однойстороны, в отличие от Visual Basic, основанного на интерпретации промежуточногокода, для него имеется компилятор, генерирующий машинный код, что позволяетполучать значительно более быстрые программы. С другой — в отличие от C++синтаксис языка Pascal способствует построению очень быстрых компиляторов. [6].
Среда программированиянапоминает пакет Visual Basic. В вашем распоряжении несколько отдельных окон:меню и инструментальные панели, Object Inspector (в котором можно видетьсвойства объекта и связанные с ним события), окна визуального построителяинтерфейсов (Visual User Interface Builder), Object Browser (позволяющееизучать иерархию классов и просматривать списки их полей, методов и свойств),окна управления проектом (Project Manager) и редактора.
Delphi содержит полноценныйтекстовый редактор типа Brief, назначения клавиш в котором соответствуютпринятым в Windows стандартам, а глубина иерархии операций Undo неограниченна.Как это стало уже обязательным, реализовано цветовое выделение различныхлексических элементов программы. Процесс построения приложения достаточнопрост. Нужно выбрать форму (в понятие формы входят обычные, диалоговые,родительские и дочерние окна MDI), задать ее свойства и включить в неенеобходимые компоненты (видимые и, если понадобится, неотображаемые): меню,инструментальные панели, строку состояния и т. п., задать их свойства и далеенаписать (с помощью редактора исходного кода) обработчики событий. ObjectBrowser Окна типа Object Browser стали неотъемлемой частью системпрограммирования на объектно-ориентированных языках. Работа с ними становитсявозможной сразу после того, как вы скомпилировали приложение.
Projeсt Manager — это отдельноеокно, где перечисляются модули и формы, составляющие проект. При каждом модулеуказывается маршрут к каталогу, в котором находится исходный текст. Жирнымшрифтом выделяются измененные, но еще не сохраненные части проекта. В верхнейчасти окна имеется набор кнопок: добавить, удалить, показать исходный текст,показать форму, задать опции и синхронизировать содержимое окна с текстом файлапроекта, т. е. с головной программой на языке Pascal.
Опции, включая режимы компиляции, задаются для всегопроекта в целом. В этом отношении традиционные make-файлы, используемые вкомпиляторах языка C, значительно более гибки.
Visual Component Library (VCL)Богатство палитры объектов для построения пользовательского интерфейса — одиниз ключевых факторов при выборе инструмента визуального программирования. Приэтом для пользователя имеет значение как число элементов, включенныхнепосредственно в среду, так и доступность элементов соответствующего форматана рынке. [4, 22]./>/>8.1.    Высокопроизводительный компилятор в машинный код
Компиляторы языка Pascalкомпании Borland никогда не заставляли пользователя подолгу ждать результатовкомпиляции. Производители утверждают, что на сегодня данный компилятор — самыйбыстрый в мире. Компилятор, встроенный в Delphiпозволяет обрабатывать120 тыс. строк исходного текста в минуту на машине 486/33 или 350 тыс. — прииспользовании процессора Pentium/90.  Он предлагает легкость разработки ибыстрое время проверки готового программного блока, характерного для языковчетвертого поколения (4GL) и в то же время обеспечивает качество кода,характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструюразработку без необходимости писать вставки на Си или ручного написания кода(хотя это возможно).
 В смысле проектирования Delphiмало чем отличается от проектирования в интерпретирующей среде, однако послевыполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее,чем тоже самое, сделанное при помощи интерпретатора. Кроме того, компиляторкомпилятору рознь, в Delphi компиляция производится непосредственно в родноймашинный код, в то время как существуют компиляторы, превращающие программу втак называемый p-код, который затем интерпретируется виртуальной p-машиной. Этоне может не сказаться на фактическом быстродействии готового приложения.
По всей вероятности, такаявысокая скорость объясняется в первую очередь отказом от демонстрации впроцессе работы числа скомпилированных строк. Следует отметить также, чтоблагодаря опции оптимизации сегментов удается существенно сократить размервыполняемого файла. Можно запустить компилятор в режиме проверки синтаксиса.При этом наиболее длительная операция компоновки и изготовления исполняемогофайла выполняться не будет.
Вероятно, то обстоятельство,что Delphi позиционируется как средство создания приложений, взаимодействующихс базами данных, и ориентировано преимущественно на рынок инструментальныхсредств клиент/сервер, где до настоящего момента доминируют интерпретируемыеязыки, позволило его авторам не задумываться над созданием оптимизирующегокомпилятора, способного использовать все достоинства архитектур современныхпроцессоров. [22]./>/>8.2.    Мощный объектно-ориентированный язык
Совместимость с программами,созданными ранее средствами Borland Pascal, сохраняется, несмотря на то, что вязык внесены существенные изменения. Необходимость в некоторыхусовершенствованиях давно ощущалась. Самое заметное из них — аппарат исключительныхситуаций, подобный тому, что имеется в C++, был первым реализован вкомпиляторах корпорации Borland. Не секрет, что при написанииобъектно-ориентированных программ, активно работающих с динамической памятью идругими ресурсами, немалую трудность представляет аккуратное освобождение этихресурсов в случае возникновения нештатных ситуаций. Особенно это актуально длясреды Windows, где число видов ресурсов довольно велико, а неряшливая работа сними может быстро привести к зависанию всей системы. Предусмотренный в Delphiаппарат исключений максимально упрощает кодирование обработки нештатныхситуаций и освобождения ресурсов.
Объектно-ориентированный подходв новой версии языка  получил значительное развитие. Перечислим основныеновшества.
-     введено понятие класса.
·    реализованы методы классов, аналогичные статическим методам C++.Они оперируют не экземпляром класса, а самим классом.
·     механизм инкапсуляции во многом усовершенствован.Введены защищенные поля и методы, которые, подобно приватным, не видны извне,но отличаются от них тем, что доступны из методов класса- наследника.
·    введена обработка исключительных ситуаций. В Delphi этоустроено в стиле С++. Исключения представлены в виде объектов, содержащихспецифическую информацию о соответствующей ошибке (тип и место- нахождениеошибки). Разработчик может оставить обработку ошибки, существовавшую поумолчанию, или написать свой собственный обработчик. Обработка исключенийреализована в виде exception-handling blocks (также еще называется protectedblocks), которые устанавливаются ключевыми словами try и end. Существуютдва типа таких блоков:try...except и try...finally.
·    появилось несколько удобных синтаксических конструкций, в числекоторых преобразование типа объекта с контролем корректности (в случае неудачиинициируется исключение) и проверка объекта на принадлежность классу.
·    Ссылки на классы придают дополнительный уровень гибкости, так,когда вы хотите динамически создавать объекты, чьи типы могут быть известнытолько во время выполнения кода. К примеру, ссылки на классы используются приформировании пользователем документа из разного типа объектов, где пользовательнабирает нужные объекты из меню или палитры. Собственно, эта технологияиспользовалась и при построении Delphi.
·    введено средство, известное как механизм делегирования. Под делегированиемпонимается то, что некий объект может предоставить другому объектуотвечать на некоторые события. Он используется в Delphi для упрощенияпрограммирования событийно-ориентированных частей программ, т. е.пользовательского интерфейса и всевозможных процедур, запускаемых в ответ наманипуляции с базой данных.
После того как Borland внеслаперечисленные изменения, получился мощный объектно-ориентированный язык,сопоставимый по своим возможностям с C++.  Платой за новые функции сталозначительное повышение требований к профессиональной подготовке программиста.
Язык программирования Delphiбазируется на Borland Object Pascal.
Кроме того, Delphiподдерживает такие низкоуровневые особенности, как подклассы элементовуправления Windows, перекрытие цикла обработки сообщений Windows, использованиевстроенного ассемблера.[22]./>/>8.3.    Объектно-ориентированная модель программных компонент
Основной упор этой модели в Delphiделается на максимальном повторном использовании кода. Это позволяетразработчикам строить приложения весьма быстро из заранее подготовленныхобъектов, а также дает им возможность создавать свои собственные объекты длясреды Delphi. Никаких ограничений по типам объектов, которые могутсоздавать разработчики, не существует. Действительно, все в Delphiнаписано на нем же, поэтому разработчики имеют доступ к тем же объектам иинструментам, которые использовались для создания среды разработки. Врезультате нет никакой разницы между объектами, поставляемыми Borland илитретьими фирмами, и объектами, которые вы можете создать.
В стандартную поставку Delphiвходят основные объекты, которые образуют удачно подобранную иерархию из 270базовых классов. На Delphi можно одинаково хорошо писать как приложенияк корпоративным базам данных, так и, к примеру, игровые программы. Во многомэто объясняется тем, что традиционно в среде Windows было достаточно сложнореализовывать пользовательский интерфейс. Событийная модель в Windows всегдабыла сложна для понимания и отладки. Но именно разработка интерфейса в Delphiявляется самой простой задачей для программиста.
Благодаря такой возможностиприложения, изготовленные при помощи Delphi, работают надежно иустойчиво. Delphi поддерживает использование уже существующих объектов,включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные припомощи Delphi. Из готовых компонент работающие приложения собираются оченьбыстро. Кроме того, поскольку Delphi имеет полностью объектнуюориентацию, разработчики могут создавать свои повторно используемые объекты длятого, чтобы уменьшить затараты на разработку.
Delphi предлагаетразработчикам — как в составе команды, так и индивидуальным — открытуюархитектуру, позволяющую добавлять компоненты, где бы они ни были изготовлены,и оперировать этими вновь введенными компонентами в визуальном построителе.Разработчики могут добавлять CASE-инструменты, кодовые генераторы, а такжеавторские help’ы, доступные через меню Delphi. [22]./>/>8.4.    Библиотека визуальных компонент
Компоненты, используемые приразработке в Delphi, встроены в среду разработки приложений ипредставляют из себя набор типов объектов, используемых в качестве фундаментапри строительстве приложения.
Этот костяк называется Visual Component Library (VCL). ВVCL есть такие стандартные элементы управления, как строки редактирования,статические элементы управления, строки редактирования со списками, спискиобъектов. Еще имеются такие компоненты, которые ранее были доступны только вбиблиотеках третьих фирм: табличные элементы управления, закладки,многостраничные записные книжки. Все объекты разбиты на страницы по своейфункциональности и представленны в палитре компонент.
VCL содержит специальныйобъект, предоставлющий интерфейс графических устройств Windows, и позволяющийразработчикам рисовать, не заботясь об обычных для программирования в средеWindows деталях.
Ключевой особенностью Delphiявляется возможность не только использовать визуальные компоненты длястроительства приложений, но и создание новых компонент. Такая возможностьпозволяет разработчикам не переходить в другую среду разработки, а наоборот,встраивать новые инструменты в существующую среду. Кроме того, можно улучшитьили полностью заменить существующие по умолчанию в Delphi компоненты.
Здесь следует отметить, чтообычных ограничений, присущих средам визуальной разработки, в Delphiнет. Сам Delphi написан при помощи Delphi, что говорит оботсутствии таких ограничений.
/>Классыобъектов построены в виде иерархии, состоящей из абстрактных, промежуточных, иготовых компонент. Разработчик может пользоваться готовыми компонентами,создавать собственные на основе абстрактных или промежуточных, а такжесоздавать собственные объекты. Рассмотрим некоторые из них.
 TMainMenu позволяет поместить главное меню впрограмму. При помещении TMainMenu на форму это выглядит, как просто иконка.Иконки данного типа называют невизуальным компонентом, поскольку ониневидимы во время выполнения программы.
/>TPopupMenu позволяет создавать всплывающие меню. Этот тип менюпоявляется по щелчку правой кнопки мыши на объекте, к которому привязано данноеменю. У всех видимых объектов имеется свойство PopupMenu, где и указываетсянужное меню. Создается PopupMenu аналогично главному меню.
/>TLabel служит для отображения текста на экране. Можноизменить шрифт и цвет метки, если дважды щелкнуть на свойство Font в ИнспектореОбъектов. Это легко сделать и во время выполнения программы, написав всего однустрочку кода.
/>TEdit — стандартный управляющий элемент Windows для ввода.Он может быть использован для отображения короткого фрагмента текста ипозволяет пользователю вводить текст во время выполнения программы.
/>TMemo — иная форма TEdit. Подразумевает работу с большимитекстами. TMemo может переносить слова, сохранять в ClipBoard фрагменты текстаи восстанавливать их, и другие основные функции редактора. TMemo имеетограничения на объем текста в 32Кб, это составляет 10-20 страниц (есть подобныекомпоненты, где этот предел снят).
/>TButton позволяет выполнить какие-либо действия при нажатиикнопки во время выполнения программы. В Delphi все делается очень просто.Поместив TButton на форму, по двойному щелчку можно создать заготовкуобработчика события нажатия кнопки.
/>TCheckBox отображает строку текста с маленьким окошком рядом. Вокошке можно поставить отметку, которая означает, что что-то выбрано.
/>TRadioButton позволяет выбрать только одну опцию из нескольких.
/>TListBox нужен для показа прокручиваемого списка. Классическийпример ListBox’а в среде Windows — выбор файла из списка в пункте меню File |Open многих приложений. Названия файлов или директорий и находятся в ListBox’е.
/>TComboBox во многом напоминает ListBox, за исключением того, чтопозволяет водить информацию в маленьком поле ввода сверху ListBox. Естьнесколько типов ComboBox, но наиболее популярен спадающий вниз (drop-down combobox), который можно видеть внизу окна диалога выбора файла.
/>TScrollbar — полоса прокрутки, появляется автоматически в объектахредактирования, ListBox’ах при необходимости прокрутки текста для просмотра.
/>TGroupBox используется для визуальных целей и для указанияWindows, каков порядок перемещения по компонентам на форме (при нажатии клавишиTAB).
/>TRadioGroup используется аналогично TGroupBox, для группировкиобъектов TRadioButton.
/>TPanel — управляющий элемент, похожий на TGroupBox,используется в декоративных целях. Чтобы использовать TPanel, можно простопоместить его на форму и затем положите другие компоненты на него. Теперь приперемещении TPanel будут передвигаться и эти компоненты. TPanel используетсятакже для создания линейки инструментов и окна статуса.
/>TBitBtn — кнопка вроде TButton, однако на ней можно разместитькартинку (glyph). TBitBtn имеет несколько предопределенных типов (bkClose, bkOKи др), при выборе которых кнопка принимает соответствующий вид. Кроме того,нажатие кнопки на модальном окне  приводит к закрытию окна с соответствующиммодальным результатом.
/>TSpeedButton — кнопка для создания панели быстрого доступа к командам(SpeedBar). Пример — SpeedBar слева от Палитры Компонент в среде Delphi. Обычнона данную кнопку помещается только картинка (glyph).
/>TTabSet — горизонтальные закладки. Обычно используется вместес TNoteBook для создания многостраничных окон. Название страниц можно задать всвойстве Tabs.
/>TNoteBook — используется для создания многостраничного диалога,на каждой странице располагается свой набор объектов. Используется совместно сTTabSet.
/>TTabbedNotebook — многостраничный диалог со встроенными закладками, вданном случае — закладки сверху.
/>TMaskEdit — аналог TEdit, но с возможностью форматированноговвода. Формат определяется в свойстве EditMask. В редакторе свойств дляEditMask есть заготовки некоторых форматов: даты, валюты и т.п.
/>TOutline — используется для представления иерархическихотношений связанных данных. Например — дерево директорий.
/>TStringGrid — служит для представления текстовых данных в видетаблицы. Доступ к каждому элементу таблицы происходит через свойство Cell.
/>TDrawGrid — служит для представления данных любого типа в видетаблицы. Доступ к каждому элементу таблицы происходит через свойство CellRect.
/>TImage — отображает графическое изображение на форме.Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайнапрограммы, то она прикомпилируется к EXE файлу.
/>TShape — служит для отображения простейших графических объектовна форме: окружность, квадрат и т.п.
/>TBevel — элемент для рельефного оформления интерфейса.
 
/>THeader — элемент оформления для создания заголовков сизменяемыми размерами для таблиц.
/>TScrollBox — позволяет создать на форме прокручиваемую область сразмерами большими, нежели экран. На этой области можно разместить своиобъекты.
/>TTimer — таймер, событие OnTimer периодически вызывается черезпромежуток времени, указанный в свойстве Interval. Период времени можетсоставлять от 1 до 65535 мс.
/>TPaintBox — место для рисования. В обработчики событий, связанныхс мышкой передаются относительные координаты мышки в TPaintBox, а не абсолютныев форме.
/>TFileListBox — специализированный ListBox, в котором отображаютсяфайлы из указанной директории (св-во Directory). На названия файлов можноналожить маску, для этого служит св-во Mask. Кроме того, в св-ве FileEdit можноуказать объект TEdit для редактирования маски.
/>TDirectoryListBox — специализированный ListBox, в котором отображаетсяструктура директорий текущего диска. В св-ве FileList можно указатьTFileListBox, который будет автоматически отслеживать переход в другуюдиректорию.
/>TDriveComboBox — специализированный ComboBox для выбора текущего диска.Имеет свойство DirList, в котором можно указатьTDirectoryListBox,который будет отслеживать переход на другой диск.
/>TFilterComboBox — специализированный ComboBox для выбора маски именифайлов. Список масок определяется в свойстве Filter. В свойстве FileListуказывается TFileListBox, на который устанавливается маска.
С помощью последних четырех компонент (TFileListBox,TDirectoryListBox, TDriveComboBox, TFilterComboBox) можно построить свойсобственный диалог выбора файла, причем для этого не потребуется написать ниодной строчки кода.
/>TMediaPlayer — служит для управления мултимедйными устройствами (типаCD-ROM, MIDI и т.п.). Выполнен в виде панели управления с кнопками Play, Stop,Record и др. Для воспроизведения может понадобиться как соответствующееоборудование, так и программное обеспечение. Подключение устройств и установкаПО производится в среде Windows. Например, для воспроизведения видео,записанного в формате AVI, в потребуется установить ПО MicroSoft Video (вWindows 3.0, 3.1, WFW 3.11).
/>
TOLEContainer — контейнер, содержащий OLE объекты. Поддерживается OLE 2.02
/>TDDEClientConv,TDDEClientItem,TDDEServerConv, TDDEServerItem — 4объекта для организации DDE. С помощью этих объектов можно построить приложениекак DDE-сервер, так и DDE-клиент.
/>TChartFX — деловая графика. Компонент позволяет строить всевозможные графики игистограммы./>/>8.5.    Формы, модули и метод разработки “Two-Way Tools”
Формы — этообъекты, в которые помещаются другие объекты для создания пользовательскогоинтерфейса любого приложения. Модули состоят из кода,который реализует функционирование приложения, обработчики событий для форм иих компонент.
Информация о формах хранится вдвух типах файлов — .dfm и .pas, причем первый тип файла — двоичный — хранит образ формы и ее свойства, второй тип описываетфункционирование обработчиков событий и поведение компонент. Оба файлаавтоматически синхронизируются Delphi, так что если добавить новую формупроект, связанный с ним файл .pas автоматически будет создан, и его имябудет добавлено в проект.
Такая синхронизация и делаетDelphi two-way-инструментом, обеспечивая полное соответствиемежду кодом и визуальным представлением. Как только добавляется новый объектили код, Delphi устанавливает т.н. “кодовую синхронизацию”между визуальными элементами и соответствующими им кодовыми представлениями.
Two-way tools — однозначноесоответствие между визуальным проектированием и классическим написанием текстапрограммы Это означает, что разработчик всегда может видеть код,соответствующий тому, что он построил при помощи визуальных инструментов инаоборот.
Визуальный построительинтерфейсов (Visual User-interface builder) дает возможность быстро создаватьклиент-серверные приложения визуально, просто выбирая компоненты изсоответствующей палитры. В процессе построения приложения разработчик выбираетиз палитры компонент готовые компоненты как художник, делающий крупные мазкикистью. Еще до компиляции он видит результаты своей работы — после подключенияк источнику данных их можно видеть отображенными на форме, можно перемещатьсяпо данным, представлять их в том или ином виде.[4, 22]./>/>8.6.    Масштабируемые средства для построения баз данных
Мощность и гибкость Delphiпри работе с базами данных основана на низкоуровневом ядре — процессоре баз данных Borland Database Engine (BDE). Его интерфейс с прикладными программами называется Integrated Database ApplicationProgramming Interface (IDAPI). В принципе, сейчас не различают эти два названия (BDEи IDAPI) и считают их синонимами. BDE позволяет осуществлять доступ к даннымкак с использованием традиционного record-ориентированного (навигационного)подхода, так и с использованием set-ориентированного подхода, используемого вSQL-серверах баз данных. Кроме BDE, Delphi позволяет осуществлять доступ кбазам данных, используя технологию (и, соответственно, драйверы) Open DataBase Connectivity (ODBC) фирмыMicrosoft. Но, как показывает практика,производительность систем с использованием BDE гораздо выше, чем оных прииспользовании ODBC. ODBC драйвера работают через специальный “ODBC socket”,который позволяет встраивать их в BDE.
Все инструментальныесредства баз данных Borland — Paradox, dBase, Database Desktop — используютBDE. Все особенности, имеющиеся в Paradox или dBase, “наследуются” BDE, ипоэтому этими же особенностями обладает и Delphi.
Библиотека объектов содержитнабор визуальных компонент, значительно упрощающих разработку приложений дляСУБД с архитектурой клиент-сервер. Объекты инкапсулируют в себя нижний уровень- Borland Database Engine.
Предусмотрены специальныенаборы компонент, отвечающих за доступ к данным, и компонент, отображающихданные. Компоненты доступа к данным позволяют осуществлять соединения с БД,производить выборку, копирование данных, и т.п.
Компоненты визуализации данныхпозволяют отображать данные виде таблиц, полей, списков. Отображаемые данныемогут быть текстового, графического или произвольного формата.
Таблицы сохраняются в базеданных. Некоторые СУБД сохраняют базу данных в виде нескольких отдельныхфайлов, представляющих собой таблицы (в основном, все локальные СУБД), в товремя как другие состоят из одного файла, который содержит в себе все таблицы ииндексы (InterBase). Например, таблицы dBase и Paradox всегда сохраняются вотдельных файлах на диске. Директорий, содержащий dBase .DBF файлы илиParadox .DB файлы, рассматривается как база данных. Другими словами,любой директорий, содержащий файлы в формате Paradox или dBase, рассматриваетсяDelphi как единая база данных. Для переключения на другую базу данных нужнопросто переключиться на другой директорий. InterBase сохраняет все таблицы водном файле, имеющем расширение .GDB, поэтому этот файл и есть базаданных InterBase.
Объекты БД в Delphiоснованы на SQL и включают в себя полную мощь Borland Database Engine. В составDelphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle,Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphiвключает в себя локальный сервер Interbase для того, чтобы можно былоразработать расширяемые на любые внешние SQL-сервера приложения в офлайновомрежиме. Разработчик в среде Delphi, проектирующий информационную системудля локальной машины (к примеру, небольшую систему учета медицинских карточекдля одного компьютера), может использовать для хранения информации файлыформата .dbf (как в dBase или Clipper) или .db (Paradox). Если жеон будет использовать локальный InterBase for Windows 4.0 (это локальныйSQL-сервер, входящий в поставку), то его приложение безо всяких изменений будетработать и в составе большой системы с архитектурой клиент-сервер.
Масштабируемостьна практике — одно и то же приложение можно использовать как для локального,так и для более серьезного клиент-серверного вариантов.[4, 22].
В состав пакета Delphi также входит множество утилит дляработы и управления базами данных. Вот некоторые из них.
/>Database Desktop — это утилита, во многом похожая на Paradox, котораяпоставляется вместе с Delphi для интерактивной работы с таблицами различныхформатов локальных баз данных — Paradox и dBase, а также SQL-серверных баз данныхInterBase, Oracle, Informix, Sybase (с использованием SQL Links). Она позволяетсоздавать как структуру реляционных таблиц, так и всевозможные ограниченияцелостности таблиц, индексы, первичные ключи и внешние ключи.
WISQL (WindowsInteractive SQL) — интерактивное средство посылки SQL-запросов кInterBase (в том числе и локальному InterBase), входящее в поставку Delphi,позволяет создавать таблицы — через посылку SQL-запросов./>Database Desktop не обладает всеми возможностями по управлению SQL-сервернымибазами данных. Поэтому с помощью Database Desktop удобно создавать илилокальные базы данных или только простейшие SQL-серверные базы данных,состоящие из небольшого числа таблиц, не очень сильно связанных друг с другом.Если же необходимо создать базу данных, состоящую из большого числа таблиц,имеющих сложные взаимосвязи, можно воспользоваться языком SQL. Можно записатьвсю последовательность SQL-предложений в один так называемый скрипт и послать его на выполнение.Конкретные реализации языка SQL незначительно отличаются в различныхSQL-серверах, однако базовые предложения остаются одинаковыми для всехреализаций. Практика показывает, что если нет необходимости создавать таблицыво время выполнения программы, то лучше воспользоваться WISQL.
InterBase — этосистема управления реляционными базами данных, поставляемая корпорацией BORLANDдля построения приложений с архитектурой клиент-сервер произвольного масштаба:от сетевой среды небольшой рабочей группы с сервером под управлением NovellNetWare или Windows NT на базе IBM PC до информационных систем крупногопредприятия на базе серверов IBM, Hewlett-Packard, SUN и т.п.
В пакет Delphi входитоднопользовательская версия InterBase для Windows — Local InterBase. ИспользуяLocal InterBase можно создавать и отлаживать приложения, работающие с даннымипо схеме клиент-сервер, без подключения к настоящему серверу. В дальнейшемпотребуется только перенастроить используемый псевдоним базы данных и программабудет работать с реальной базой без перекомпиляции. Кроме того, Local InterBaseможно использовать в приложениях для работы с данными вместо таблиц Paradox.
Важной составной частьюприложения является вывод данных на печать — получение отчета. В пакет Delphiвходит средство для генерации и печати отчетов — ReportSmith. Выможете объединить отчет с приложениями Delphi. Также, библиотека визуальныхкомпонент Delphi включает специальный компонент TReport. В данном урокепоказано, как использовать компоненту TRepor и рассмотрены основные принципыпроектирования отчетов в ReportSmith.
Borland ReportSmith являетсяинструментом для получения отчетов и интегрирован в среду Delphi. Отчет можетбыть добавлен к приложениям Delphi. Отчеты могут быть созданы для SQL БД илилокальных БД и не требуют знания сложных команд БД. Интерфейс ReportSmithиспользует стандартные инструменты Windows  типа tool bar, formatting ribbon, и“drag and drop”. Если пользователь уже знаком с интерфейсом стандартныхWindows-программ, типа Word for Windows или Quattro Pro for Windows, ему будет“знаком” и интерфейс ReportSmith. ReportSmith предлагает 4 типа отчетов:Табличный, Кросс-таблица(CrossTab), Форма(Form) и Наклейка(Label).
ReportSmith используетконцепцию “живых данных”, т.е. работа происходит с настоящими данными всевремя, а не только тогда, когда запускается просмотр (preview). Кроме этого,ReportSmith легко работает с чрезвычайно большими БД при помощи адаптивнойтехнологии управления памятью. В ReportSmith можно управлять тем, где сохраняетсярезультат выборки данных из БД: в локальный памяти клиентской PC, на жесткомдиске клиентской PC, или на сервере. />/>8.7.    Настраиваемая среда разработчика
После запуска Delphi вверхнем окне горизонтально располагаются иконки палитры компонент. Если курсорзадерживается на одной из иконок, под ней в желтом прямоугольнике появляетсяподсказка
Из этой палитры компонент можновыбирать компоненты, из которых можно строить приложения. Компоненты включают всебя как визуальные, так и логические компоненты. Такие вещи, как кнопки, поляредактирования — это визуальные компоненты; а таблицы, отчеты — это логические.
Поскольку в Delphiпрограмма строится визуальным образом, все эти компоненты имеют своеграфическое представление в поле форм для того, чтобы можно было бы имисоответствующим образом оперировать. Но для работающей программы видимымиостаются только визуальные компоненты. Компоненты сгруппированы на страницахпалитры по своим функциям. К примеру, компоненты, представляющие Windows“common dialogs” все размещены на странице палитры с названием “Dialogs”.
/>Delphiпозволяет разработчикам настроить среду для максимального удобства. Можно легкоизменить палитру компонент, инструментальную линейку, а также настраиватьвыделение синтаксиса цветом.
В Delphi можно определить свою группу компонент иразместить ее на странице палитры, а если возникнет необходимость,перегруппировать компоненты или удалить неиспользуемые.
·    Интеллектуальный редактор. Редактирование программ можноосуществлять, используя запись и исполнение макросов, работу с текстовымиблоками, настраиваемые комбинации клавиш и цветовое выделение строк.
·    Графическийотладчик. Delphi обладает мощнейшим, встроенным вредактор графическим отладчиком, позволяющим находить и устранять ошибки вкоде. Можно установить точки останова, проверить и изменить переменные, припомощи пошагового выполнения в точности понять поведение программы. Если жетребуются возможности более тонкой отладки, можно использовать отдельнодоступный Turbo Debugger, проверив ассемблерные инструкции и регистрыпроцессора.
·    Инспекторобъектов. Этот инструмент представляет из себя отдельное окно,где вы можете в период проектирования программы устанавливать значения свойстви событий объектов (Properties & Events).
·    Менеджерпроектов. Дает возможность разработчику просмотреть все модули всоответствующем проекте и снабжает удобным механизмом для управления проектами.Менеджер проектов показывает имена файлов, время/дату выбранных форм и пр.Можно немедленно попась в текст или форму, просто щелкнув мышкой насоответствующее имя.
·    Навигаторобъектов. Показывает библиотеку доступных объектов и осуществляетнавигацию по приложению. Можно посмотреть иерархию объектов, прекомпилированныемодули в библиотеке, список глобальных имен вашего кода.
·    Дизайнерменю. Можно создавать меню, сохранить созданные в виде шаблонови затем использовать в их в любом приложении.
·    Эксперты.Это набор инструментальных программ, облегчающих проектирование и настройкуВаших приложений. Есть возможность подключать самостоятельно разработанныеэксперты. Потенциально это та возможность, при помощи которой третьи фирмымогут расширять Delphi CASE-инструментами, разработанными специально дляDelphi. Включает в себя:
    Экспертформ, работающих с базами данных
Эксперт стилей и шаблоновприложений
      Эксперт шаблонов форм
      В состав RAD Pack входит эксперт для преобразованияресурсов,    изготовленных в Borland Pascal 7.0, в формы Delphi. Ужепоявились эксперты, облегчающие построение DLL и даже написание собственныхэкспертов
·    Интерактивнаяобучающая система. Позволяет более полно освоить Delphi.Она являются не просто системой подсказок, а показывает возможности Delphiна самой среде разработчика. />/>8.8.    Незначительные требования к аппаратным и программным средствам
Delphi это высокопроизводительныйинструмент создания приложений. Для запуска Delphi требуется как минимум 386компьютер с 4MB памяти. Более подходящей машиной будет 486DX 66MHz с 8MB ОЗУ.
Небольшие программы, созданныена Delphi будут работать на любом компьютере. Другими словами, они не требуюттого ОЗУ или скорости процессора, что необходимо для среды Delphi. [4]./>/>9.  Проектирование базы данных
Проектирование БД связанно сразрешением проблем представления данных между конечными пользователями. Онипродиктованы различными потребностями и задачами лиц, которые используют этиданные. Пользователи могут быть выделены в отдельные группы. Каждая из группвоздействует на результаты проектирования в разных направлениях. Необходимособрать информацию о реальных и потенциальных приложениях, а также опользователях базы данных, чтобы устранить все противоречия ещё на начальномэтапе, так как многолетний мировой опыт использования информационных систем,построенных на основе баз данных, показывает, что недостатки проекта допущенныена этапе проектирования невозможно устранить любыми ухищрениями в программахприложений.
Проектирование обычнопоручается человеку (группе лиц) – администратору базы данных (АБД).Им может быть как специально выделенный сотрудник, так и будущий пользовательбазы данных, достаточно хорошо знакомый с машинной обработкой данных.
В основу проектирования БДдолжны быть положены представления конечных пользователейконкретнойорганизации — концептуальные требования к систе­ме. Именно конечныйпользователь в своей работе принимает решения с учетом получаемой в результатедоступа к базе данных информации. От оперативности и качества этой информациибудет зависеть эффективность работы организации. Данные, помещаемые в базуданных, также предоставляет конечный пользова­тель. Кроме того, БД должнапредоставлять доступ к данным пользователям, которые практически не имеют илине хотят иметь представления о физическом размещении в памяти данных и их описаний,о механизмах поиска запрашиваемых данных или о поддержании баз данных вактуальном состоянии.[15].
Прикладные программистыхотели бы иметь в одном месте (например, в одной таблице) все данные,необходимые им для реализации запроса из прикладной программы или с терминала.
АБД же заботятся об исключениивозможных искажений хранимых данных при вводе в базу данных новой информации иобновлении или удалении существующей. Для этого они удаляют из базы данныхдубликаты и нежелательные функциональные связи между таблицами, разбивая базуданных на множество маленьких таблиц.
Чтобы различать представленияданных конечными пользователями, программистами и АБД создаются разные уровнимоделей данных. Их общая структура представлена на рис. 14.
Основное различие междууказанными выше тремя типами моделей данных (концептуальной, логической ифизической) состоит в способах представления взаимосвязей между объектами. Припроектировании БД требуется различать взаимосвязи между объектами, междусвойствами одного объекта и между свойствами различных объектов. Рассмотримкаждую из них более подробно./>/>9.1.    /> />
Инфологическая модель данных
Предметная область– часть реального мира отражённая в базу данных.
Объединяя частные представленияо содержимом базы данных, полученные в результате опроса пользователей, и своипредставления о данных, которые могут потребоваться в будущих приложениях, АБДсначала создает обобщенное неформальное описание создаваемой базы данных. Это описание,выполненное с использованием естественного языка, математических формул,таблиц, графиков и других средств, понятных всем людям, работающих надпроектированием базы данных, называют инфологической моделью данных.
Цель инфологическогомоделирования – обеспечение наиболее естественных для человека способов сбора ипредставления той информации, которую предполагается хранить в создаваемой базеданных. Поэтому инфологическую модель данных пытаются строить по аналогии сестественным языком. Основными конструктивными элементами инфологическихмоделей являются сущности, связи между ними и их свойства (атрибуты).
Сущность – любойреальный или не реальный различимый объект (объект, который мы можем отличитьот другого), информацию о котором необходимо хранить в базе данных. Сущностямимогут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различатьтакие понятия, как тип сущности и экземпляр сущности. Понятие типсущности относится к набору однородных личностей, предметов, событийили идей, выступающих как целое. Экземпляр сущности относится кконкретной вещи в наборе. Например, типом сущности может быть ГОРОД, аэкземпляром – Москва, Киев и т.д.
Атрибут – поименованнаяхарактеристика сущности. Атрибутом сущности является любая деталь, котораяслужит для уточнения, идентификации, классификации, числовой характеристики иливыражения состояния сущности. Его наименование должно быть уникальным дляконкретного типа сущности, но может быть одинаковым для различного типасущностей (например, ЦВЕТ может быть определен для многих сущностей: СОБАКА,АВТОМОБИЛЬ, ДЫМ и т.д.). Атрибуты используются для определения того, какаяинформация должна быть собрана о сущности. Примерами атрибутов для сущностиАВТОМОБИЛЬ являются ТИП, МАРКА, НОМЕРНОЙ ЗНАК, ЦВЕТ и т.д. Здесь такжесуществует различие между типом и экземпляром. Тип атрибута ЦВЕТ имеет многоэкземпляров или значений: Красный, Синий, Банановый, Белая ночь и т.д., однакокаждому экземпляру сущности присваивается только одно значение атрибута.
Абсолютное различие междутипами сущностей и атрибутами отсутствует. Атрибут является таковым только всвязи с типом сущности. В другом контексте атрибут может выступать каксамостоятельная сущность. Например, для автомобильного завода цвет – это толькоатрибут продукта производства, а для лакокрасочной фабрики цвет – тип сущности.
Связь – ассоциированиедвух или более сущностей. Эта ассоциация всегда является бинарной и можетсуществовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивнаясвязь). В любой связи выделяются два конца (в соответствии ссуществующей парой связываемых сущностей), на каждом из которых указывается имяконца связи, степень конца связи (сколько экземпляров данной сущностисвязывается), обязательность связи (т.е. любой ли экземпляр данной сущностидолжен участвовать в данной связи).
Если бы назначением базы данныхбыло только хранение отдельных, не связанных между собой данных, то ееструктура могла бы быть очень простой. Однако одно из основных требований корганизации базы данных – это обеспечение возможности отыскания одних сущностейпо значениям других, для чего необходимо установить между ними определенные связи.А так как в реальных базах данных нередко содержатся сотни или даже тысячисущностей, то теоретически между ними может быть установлено более миллионасвязей. Наличие такого множества связей и определяет сложность инфологическихмоделей.
При определении инфологическоймодели необходимо принимать во внимание следующее:
·    База данных должна удовлетворять актуальным информационным пот­ребностяморганизации. Получаемая информация должна по структуре и содержаниюсоответствовать решаемым задачам.
·    База данных должна обеспечивать получение требуемых данных заприемлемое время, то есть отвечать заданным требованиям производи­тельности.
·    База данных должна удовлетворять выявленным и вновь возникающимтребованиям всех пользователей.
·    База данных должна легко расширяться при реорганизации и расшире­ниипредметной области.
·    База данных должна легко изменяться при изменении программной иаппаратной среды./>/>9.2.    Инфологическая модель данных «сущность-связь»
Инфологическая модельотображает реальный мир в некоторые понятные человеку концепции, полностьюнезависимые от параметров среды хранения данных. Существует множество подходовк построению таких моделей: графовые модели, семантические сети, модель«сущность-связь» и т.д. Наиболее популярной из них оказалась модель «сущность-связь»или называемая ещё ER-моделью (от англ. Entity-Relationship, т.е. сущность-связь).
На использовании разновидностейER-модели основано большинство современных подходов к проектированию баз данных(главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г.Моделирование предметной области базируется на использовании графическихдиаграмм, включающих небольшое число разнородных компонентов. В связи снаглядностью представления концептуальных схем баз данных ER-модели получилиширокое распространение в системах CASE, поддерживающих автоматизированноепроектирование реляционных баз данных.
В них сущности изображаютсяпомеченными прямоугольниками, ассоциации (связи)– помеченными ромбами илишестиугольниками, атрибуты – помеченными овалами, а связи между ними –ненаправленными ребрами, над которыми может проставляться степень связи (1 илибуква, заменяющая слово «много») и необходимое пояснение.
Между двумя сущностям,например, А и В возможны четыре вида связей.
Первый тип – связьОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю(экземпляру) сущности А соответствует 1 или 0 представителей сущности В:
/>

Студент может не «заработать» стипендию,получить обычную или одну из повышенных стипендий. Или, допус­тим, вопределенный момент времени один клиент может сделать только один заказ. В этомслучае между объектами КЛИЕНТ и ЗАКАЗ устанавливается взаимосвязь “один кодному”, обозначаемая одинарными стрелками.
Между данными, хранящимися вобъектах КЛИЕНТ и ЗАКАЗ, будет сущест­вовать взаимосвязь, в которой каждаязапись в одном объекте будет однозначно указывать на запись в другом объекте. Нив одном, ни в другом объекте не может существовать записи, не связанной скакой-либо записью в другом объекте./> />
Второй тип – связь ОДИН-КО-МНОГИМ (1: М): одному представителюсущности А соответствуют 0, 1 или несколько представителей сущности В.
Квартира может пустовать, в нейможет жить один или несколько жильцов. Или, например,  в определенный моментвремени один клиент может стать обладателем несколь­ких моделей автомобилей,при этом несколько клиентов не могут являться обладателями одного автомобиля.Взаимосвязь “один ко многим” можно обоз­начить с помощью одинарной стрелки внаправлении к “одному” и двойной стрелки в направлении ко “многим”.В этомслучае одной записи данных первого объекта (его часто называют родительским илиосновным) будет соответствовать несколько записей второго объекта (дочернегоили подчиненного). Взаимосвязь “один ко многим” очень распространена приразработке реляционных баз данных.
Третий тип – связь МНОГИЕ-К-ОДНОМУ (М:1):одному представителю сущности B соответствуют 0, 1 или несколько представителейсущности А.
В принципе нет никакой разницы между связьюОДИН-КО-МНОГИМ  и МНОГИЕ-К-ОДНОМ, т.к. между двумя сущностями возможны связи вобоих направлениях и всё зависит от того с какими сущностями связаны данные.
Четвёртый тип – связь МНОГИЕ-КО-МНОГИМ(N: М): одному представителю сущности B соответствуют 0, 1 или несколькопредставителей сущности А и одновременно одному представителю сущности Асоответствуют 0, 1 или несколько представителей сущности В.
Это также обусловлено тем, что между двумя сущностямивозможны связи в обоих направлениях. /> />
Если связь между сущностями МУЖЧИНЫ и ЖЕНЩИНЫ называется БРАК, то существуетчетыре возможных представления такой связи:
        
Или например каждый продавецможет обслуживать нескольких клиентов. С другой стороны, приобретая автомобилив различное время, каждый клиент вполне может быть обслужен различнымипродавцами. Между объектами КЛИЕНТ и ПРОДАВЕЦ существует взаимосвязь “многие комногим”. Такая взаимосвязь обозначается двойными стрелками./> />
Характер связей между сущностями не ограничивается перечисленными. Существуют иболее сложные связи:
·    множество связей между одними и теми же сущностями /> />
(пациент, имея одного лечащего врача, может иметь также нескольковрачей-консультантов; врач может быть лечащим врачом нескольких пациентов иможет одновременно консультировать несколько других пациентов);
·    тренарные связи:
·    связи более высоких порядков, семантика (смысл) которых иногдаочень сложна.
В приведенных примерах связей не показаны атрибутысущностей и ассоциаций во всех ER-диаграммах. Так, ввод лишь несколькихосновных атрибутов в описание брачных связей значительно усложнит ER-диаграмму(рис. 2.1, а). В связи с этим язык ER-диаграмм используется для построениинебольших моделей и иллюстрации отдельных фрагментов больших. Чаще жеприменяется менее наглядный, но более содержательный язык инфологическогомоделирования (ЯИМ), в котором сущности и ассоциации представляютсяпредложениями вида:
СУЩНОСТЬ (атрибут 1, атрибут 2, ..., атрибут n)
АССОЦИАЦИЯ [СУЩНОСТЬ S1, СУЩНОСТЬ S2, ...]
           (атрибут 1, атрибут 2, ..., атрибут n)
где S – степень связи, а атрибуты, входящие в ключ, должныбыть отмечены с помощью подчеркивания.
Так, рассмотренный выше пример множества связей междусущностями, может быть описан на ЯИМ следующим образом:
Врач (Номер_врача, Фамилия, Имя, Отчество,Специальность)
Пациент (Регистрационный_номер, Номер койки,Фамилия,
         Имя, Отчество, Адрес, Дата рождения, Пол)
Лечащий_врач [Врач 1, Пациент M]
             (Номер_врача, Регистрационный_номер)
Консультант [Врач M, Пациент N]
            (Номер_врача, Регистрационный_номер).
Для примера ER-диаграмма базы данных «Питание»показанана рис.16,  а модель на языке ЯИМ имеет следующий вид:
Блюда (БЛ, Блюдо, Вид)
Продукты (ПР, Продукт, Калорийность)
Поставщики (ПОС, Город, Поставщик) [Город]
Состав [Блюда M, Продукты N] (БЛ, ПР, Вес (г))
Поставки [Поставщики M, Продукты N] (ПОС, ПР, Дата_П,Цена, Вес (кг))
Города (Город, Страна)
Рецепты (БЛ, Рецепт) {Блюда}
Расход (БЛ, Дата_Р, Порций) {Блюда}/> />
В этих моделях Блюдо, Продукт и Поставщик – наименования, а БЛ, ПР и ПОС –цифровые коды блюд, продуктов и организаций, поставляющих эти продукты.
/>

Существует ещё наиболеераспространенная модификация ER-диаграмм для представления инфологическоймодели баз данных — «Таблица-связь», пример использования которогоприведен на рис. 16. В нем все сущности изображаются одностолбцовыми таблицамис заголовками, состоящими из имени и типа сущности. Строки таблицы – этоперечень атрибутов сущности, а те из них, которые составляют первичный ключ,располагаются рядом и обводятся рамкой. Связи между сущностями указываютсястрелками, направленными от первичных ключей или их составляющих. Именно этоттип диаграмм будет использоваться при построении инфологической модели базыданных, разрабатываемой в данной дипломной работе./>/>9.3.    Даталогическая модель данных
Описание, создаваемое поинфологической модели данных, называют даталогической моделью данных.Даталогическая модель отражает логические связи между элементами данных   внезависимости от их содержания и среды хранения. Пользователям выделяютсяподмножества этой логической модели, назы­ваемые внешними моделями,отражающие их представления о предметной области. Внешняя модель соответствуетпредставлениям, которые пользователи получают на осно­ве логической модели, вто время как концептуальные требования отражают представления, которыепользователи первоначально желали иметь и которые легли в основу разработкиинфологической модели. Даталогическая модель отобра­жается в физическую память,такую, как диск, лента или какой-либо другой носитель информации.Даталогическая модель в основном используется прикладными программистами дляреализации требований, которые выдвинули конечные пользователи, отражённых винфологической концептуальной модели.
Типы даталогических моделей ужеобсуждались нами ранее. Это есть не что иное, как Модели представления данных,т.о. даталогическая модель данных может быть реляционной, иерархическойили сете­вой.
При разработке даталогическоймодели, кроме требований предъявляемых для построения инфологической модели,предъявляются дополнительные требования:
·    Загруженные в базу данных корректные данные должны оставатьсякорректными.
·    Данные до включения в базу данных должны проверяться на достовер­ность.
·    Доступ к данным, размещаемым в базе данных, должны иметь тольколица с соответствующими полномочиями.
·    Разрешение проблем, возникающих при одновременном запросе одних итех же данных многими пользователями (прикладными программами);
·    Способы обеспечения защиты данных от некорректных обновлений и(или) несанкционированного доступа;
Если инфологическая модель данных предназначена длянаглядного отражения представления пользователей, т.е. являетсячеловеко-ориентированной, то даталогическая модель уже являетсякомпьютеро-ориентированной. С её помощью СУБД дает возможность программам ипользователям осуществлять доступ к хранимым данным лишь по их именам, незаботясь о физическом расположении этих данных. />/>9.4.    Переход от ER – модели к реляционной.
Переход от инфологическоймодели “сущность-связь”- это сравнительно простая задача, поскольку втерминологии и принципах ER-модели и реляционного подхода имеется взаимнооднозначное соответствие. Существует ряд хорошо зарекомендовавших себя правил спощью которых из ER-диаграмм отроются реляционные таблицы.
1.   Каждаяпростая сущность превращается в таблицу. Простая сущность — сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становитсяименем таблицы.
2.  Каждый атрибут становитсявозможным столбцом с тем же именем; может выбираться более точный формат.Столбцы, соответствующие необязательным атрибутам, могут содержатьнеопределенные значения; столбцы, соответствующие обязательным атрибутам, — немогут.
3.  Компоненты уникальногоидентификатора сущности превращаются в первичный ключ таблицы. Если имеетсянесколько возможных уникальных идентификатора, выбирается наиболееиспользуемый. Если в состав уникального идентификатора входят связи, к числустолбцов первичного ключа добавляется копия уникального идентификаторасущности, находящейся на дальнем конце связи (этот процесс может продолжатьсярекурсивно). Для именования этих столбцов используются имена концов связейи/или имена сущностей.
4.  Связи многие-к-одному (иодин-к-одному) становятся внешними ключами. Т.е. делается копия уникальногоидентификатора с конца связи «один», и соответствующие столбцысоставляют внешний ключ. Необязательные связи соответствуют столбцам,допускающим неопределенные значения; обязательные связи — столбцам, недопускающим неопределенные значения.
5.  Индексы создаются для первичногоключа (уникальный индекс), внешних ключей и тех атрибутов, на которыхпредполагается в основном базировать запросы.
6.  Если в концептуальной схемеприсутствовали подтипы, то возможны два способа: все подтипы в одной таблице(а) или для каждого подтипа — отдельная таблица (б). При примененииспособа (а) таблица создается для наиболее внешнего супертипа, а для подтиповмогут создаваться представления. В таблицу добавляется, по крайней мере, одинстолбец, содержащий код ТИПА; он становится частью первичного ключа. Прииспользовании метода (б) для каждого подтипа первого уровня (для более нижних — представления) супертип воссоздается с помощью представления UNION (из всехтаблиц подтипов выбираются общие столбцы — столбцы супертипа).
7.  Имеется два способа работы приналичии исключающих связей: общий столбец и явные внешние ключи(б). Если остающиеся внешние ключи все в одном домене, т.е. имеют общий формат(способ (а)), то создаются два столбца: идентификатор связи и идентификаторсущности. Столбец идентификатора связи используется для различения связей,покрываемых дугой исключения. Столбец идентификатора сущности используется дляхранения значений уникального идентификатора сущности на дальнем концесоответствующей связи. Если результирующие внешние ключи не относятся к одномудомену, то для каждой связи, покрываемой дугой исключения, создаются явныестолбцы внешних ключей; все эти столбцы могут содержать неопределенныезначения./>/>9.5.    Физическая модель данных
Физическая модель данных– модель, определяющая размещение данных на внешних носителях,методы доступа и технику индексирования. Она так же называется внутреннеймоделью системы.
Внешние модели (даталогические модели) никак не связаны стипом физической памяти, в которой будут храниться данные, и с методами доступак этим данным. Внутренние модели (физические модели) наоборот определяют иоперируют размещением данных и их взаимосвязях на запоминающих устройствах.
Физическая организация данныхоказывает основное влияние на эксплуатационные характеристики БД. РазработчикиСУБД пытаются создать наиболее производительные физические модели данных,предлагая пользователям тот или иной инструментарий для поднастройки модели подконкретную БД. Существует большое разнообразие способов реализации икорректировки физических моделей современных промышленных БД, что не позволяетрассмотреть их подробно.
Физическая модель данныхявляется полностью компьютерно-ориентированной и конечные пользователи, а поройи прикладные программисты, не имеют никакого представления о том, каким образомданные запоминаются и извлекаются или каким способом организуются индексы втаблицах для быстрого поиска или ссылочная целостность. Эти и множество другихфункций по методам доступа и поддержании баз данных на внешних носителях, атакже способов поиска и доступа к данным в современных СУБД обеспечивается восновном ядром базы данных, что значительно облегчает задачусоздания БД и их ведение.
Трехуровневая архитектура(инфологический, даталогический и физический уровни) позволяет обеспечить независимостьхранимых данных от использующих их программ. АБД может принеобходимости переписать хранимые данные на другие носители информации и (или)реорганизовать их физическую структуру, изменив лишь физическую модель данных.АБД может подключить к системе любое число новых пользователей (новыхприложений), дополнив, если надо, даталогическую модель. Указанные измененияфизической и даталогической моделей не будут замечены существующимипользователями системы (окажутся «прозрачными» для них), так же какне будут замечены и новые пользователи. Следовательно, независимость данныхобеспечивает возможность развития системы баз данных без разрушениясуществующих приложений./>/>9.6.    Этапы проектирования базы данных
Этапы проектирования базы данных с учетом рассмотренныхвыше аспектов:
1.   Проектированиеинфологической концептуальной модели баз данных:
а) Исследование предметнойобласти применения и выявление требований конечных пользователей и решаемыхзадач.
в) Анализ данных: сбор основныхданных (объекты, связи между объектами).
с) Построение ER-диаграммы базыданных.
2.   Проектированиедаталогической модели базы данных (учитывать требования СУБД ).
a) Потенциально возможныеприкладные программы: сбор информации о потенциальных возможностях использованияданных.
3.   Проектированиефизической модели базы данных (оценка эксплуатационных характеристик прикладныхпрограмм).
4.   Реализациябазы данных (оценка при неудовлетворительных эксплуатационныххарактеристиках)./>/>10.     Практическая часть/>/>10.1.  Предметная область и задачи, возложенные на базу данных
Для демонстрации практическогопримера организации базы данных с помощью описанных в дипломной работе средств,спроектируем базу данных для хранения информации о качественных характеристикахи количестве зерна пшеницы. Объект  — зерноперерабатывающее предприятиемукомольной промышленности. Технология приемки зерна следующая: клиентыпривозят на предприятие зерно, работники производственной лаборатории берутпробы зерна с каждой машины и проводят лабораторные анализы, в результатекоторых определяются такие характеристики зерна – влажность, зерновая примесь,сорная примесь, проход (сито), клейковина, натура, стекловидность. Все этокачественные характеристики, от которых зависит количество муки, котороезаберет клиент в обмен на зерно. Наша цель – спроектировать базу данных, вкоторой будет храниться информация о зерне, принятом от клиентов.Подразумевается, что информация накапливается постоянно с каждым днем, онаможет изменяться; данная база данных является частью большого комплексаавтоматизированной системы управления предприятием (АСУП).
База данных несомненно носитхарактер фактографической информационной системы и должна выдавать однозначныесведения на поставленные запросы. Конечными пользователями базы данных являютсяработники производственной лаборатории, зерноперерабатывающего цеха, бухгалтерии(отдел сбыта готовой продукции), которые относятся к категории пользователей неискушенных в вопросах ведения, администрирования баз данных и поддержании их вактуальном состоянии. Это накладывает определенные требования на разработкусистемы управления базой данных, при которой все методы доступа, поиска ибольшинство функций администрирования скрыты внутри программы и прозрачны приработе что, несомненно, скажется на разработке программного интерфейса. Болееподробно все требования перечислены ниже:
1.  Предоставление общейинформации о количестве принятого зерна и его качественных характеристиках. Это совокупность сведений о количестве зерна,привезенном каждым клиентом, включает в себя общую информацию такую какназвание фирмы клиента или фамилия (если это физическое лицо), дата приемкизерна, номер автомашины, класс пшеницы, масса брутто (с автомашиной), массатары (автомашины), масса нетто (чисто зерно), номер склада (куда поступилозерно). Подразумевается, что  информация будет изменятся и пополнятсяпостоянно.
2.  Ведение справочникаклиентов. Клиенты бывают постоянные и одноразовые, но, несмотряна это, информация о них остается в базе данных. Справочник постояннопополняется, редактируется. Как правило, удалением информации  о клиентах ипополнением справочника занимается один человек.
3.  Ведение справочникасельськохозяйственных культур.По каждой культуре по каждому классу необходимо вестиданные о базисных качественных характеристиках, на основе которых в дальнейшембудет определяться отклонение фактических характеристик от базисных.  Какправило, удалением информации  о культурах и пополнением справочника занимаетсятоже один человек. Нужно учитывать и тот факт, что в будущем предприятие можетработать не только с пшеницей, а и с другими культурами, например, скукурудзой.
4.  Распределение клиентов. С этойзадачей сталкиваются в процессе формирования квитанций на выдачу муки. Идетраспределение по плательщикам и неплательщикам НДС, по юридическим и физическимлицам.
5.  Предоставлениеинформации о конкретном клиенте. Всеинформация о поступлении зерна ведется в разрезе каждого клиента и может бытьвыдана по требованию самого клиента или, например, работникам налоговойинспекции.
6.  Получение статистическойинформации о качестве и количестве зерна. Порезультатам работы за период (как правило, год) формируются статистическиеотчеты для статистического управления о средних качественных показателях зерна./>/>10.2.  Определение объектов базы данных
Анализ определенных выше задач позволяет выделить сущности(объекты) проектируемой базы данных и, построить ее инфологическую модель наязыке «Таблицы-связи». В результате анализа были определены следующиеобъекты базы данных:
1.   Клиенты(Код клиента, Название клиента, Тип клиента, Банковские реквизиты,Юридический адрес, Телефон)
Эта сущность отводится дляхранения основных сведений о клиентах. Реквизит “Тип клиента” введен дляуказания юридического или физического лица, а также – плательщик илинеплательщик он НДС. Реквизит “Код клиента” введен для однозначнойидентификации клиента в рамках предприятия.
2.   Культуры(Код культуры, Название культуры, Класс, Базисная влажность, Базиснаязерновая примесь, Базисная сорная примесь, Базисная стекловидность, Базиснаянатура, Базисная клейковина)
3.   Видпоступления (Код вида поступления, Название вида поступления).
Данная сущность представляетсобой вид поступления зерна на предприятие. Зерно могут привозить клиенты дляпереработки на муку (давальческое зерно), а также предприятие может покупатьзерно для собственных нужд (собственное зерно). Кроме этого, предприятие можетбрать участие в государственной программе по заготовке зерна (зерногосрезервов).
4.   Накладные(Номер_накладной, Дата накладной, Код клиента,Номер_автомашины, Код культуры, Код вида поступления, Масса брутто, Масса тары,Масса нетто, Номер склада, Номер лабораторного анализа).
Сущность отражает поступлениезерна на предприятие по накладных клиентов./>/>10.3.  Инфологическая и даталогическая модели базы данных
Инфологическая модель базыданных изображена на рис.17.
/>

Рис. 17. Инфологическая модельбазы данных.
Звёздочками на инфологическоймодели показаны ключевые атрибуты.
В качестве даталогическоймодели базы данных была выбрана реляционная модель, поскольку именнореляционная модель является результатом более развитых представлений оформировании и ведении баз данных, на которые наложен строгий математическийаппарат. Реляционные модели наиболее логично и наглядно отражают структурухранимой информации и внутренних связей, что позволяет более полноанализировать структуру базы данных при разработке. Это привело к тому, чтоименно реляционные модели баз данных наиболее распространены в настоящее времяи являются стандартом, на который переводятся все существовавшие ранее базыданных с иерархической и сетевой моделью. Ещё одним веским доводом в пользувыбора реляционной модели является тот факт, что подавляющее большинствопредоставляемых средств для разработки баз данных ориентированны исключительнона реляционную модель. Кроме того, реляционные базы данных в последствии легчерасширять и интегрировать, что является неотъемлемой частью дальнейшегоразвития баз данных, с увеличением возлагаемых на них задач.
Инфологическая модель базыданных легко отображается в реляционную даталогическую модель, используяописанные ранее правила по переводу. В результате получается семь таблицреляционной базы данных, где каждая сущность напрямую отражается в отдельнуютаблицу, атрибуты каждой сущности становятся полями этой таблицы, а первичныеключи сущности становятся первичными ключами таблицы. На данном этапенеобходимо также провести нормализацию полученных таблиц с целью устраненияизбыточности данных. Эта процедура в дальнейшем значительно облегчит усилия,которые будут затрачиваться на поддержании таблиц базы данных в целостном состоянии.
Правила нормализации, описанныеранее, предписывают для таких случаев заводить отдельную таблицу для каждогополя и хранить в ней все значения характерные только для одного поля. Я жепринял решение свести значения для всех полей в одну таблицу и различать их нетолько по уникальному номеру-идентификатору, но и указывать таблицу, к которойэто поле принадлежит, а также название самого поля. Выбор такого вариантаоправдан тем, что таких полей в таблицах базы данных более десяти. Организацияотдельных таблиц для каждого такого поля существенно усложнит структуру базыданных. Кроме того добавление новых атрибутов с подобным ограниченным числомзначений потребует организовывать новую таблицу и затрату больших усилий поизменению интерфейса взаимодействия с конечным пользователем и исправлениюпрограммного кода, нежели от добавления этих значений в одну универсальнуютаблицу. 
Конечно, в этом случае таблицыбазы данных не будут до конца нормализованы, что накладывает некоторыетребования на процедуры поддержания базы данных в целостном состоянии, но даётвозможность “безболезненных изменений” в программном коде, что можетсущественно сократить время разработки в дальнейшем. Процедуры по поддержаниюцелостности можно реализовать в программном коде, сделав их таким образомпрозрачными для конечного пользователя./> />
Таким образом,  в результате нормализации таблиц базы данных и проведённогоанализа состава полей этих таблиц получилась ещё одна таблица, содержащаязначения тех полей, которые принимают ограниченное число значений. Состав полей,первичный ключ (выделен жирным шрифтом с курсивом) и описание полейпредставлены в таблице 1.
Такой состав таблиц позволяетвыполнять все возложенные задачи, поскольку он выведен из инфологическоймодели, проектируемой исходя из требований конечных пользователей./>/>10.4.  Физическое описание модели
База данных организованна впопулярном формате локальных баз данных dBase. Этотформат для организации реляционных баз данных довольно распространен, посколькуобладает очень развитой системой хранимых типов данных, возможностямииндексирования полей, что позволяет получать доступ к данным за минимальноевремя, а также функциями по обеспечению ссылочной целостности междуреляционными  таблицами, что позволяет разработчику минимизировать временныезатраты на создание базы данных, а конечному пользователю затраты наподдержание целостности хранимых данных и получения из базы данных самиххранимых данных.  Поскольку базы данных dBase — реляционныебазы данных, то запросы к данным осуществляются с помощью реляционного языказапросов SQL. Благодаря развитой системе определения ключевых полей и индексовпри создании таблиц запросы будут выполняться с минимальными временнымизатратами. Хотя этот фактор для локальных баз данных не является ключевым,однако, при росте объема хранимых данных именно скорость выполнения запросовстановиться решающим фактором при выборе формата баз данных.
Типы данных, хранимые втаблицах dBase, очень разнообразны. Это и символьныезначения и разнообразные типы числовых значений, включающие целочисленные,вещественные, вещественные с плавающей  запятой, числа в двоичном идвоично-десятичном формате, логические типы, специальные форматы для хранениязначений даты, времени и денежных сумм, графические типы для храненияграфических изображений в самых популярных форматах, а также строковые значениянеограниченной длины (в том числе и форматированные в формате rtf) и даже типыподдерживаемые технологией OLE (Object Linking and Embedding) фирмы  Micrоsoft.Такое разнообразие типов данных может отвечать даже самым изысканным задачам,которым призвана служить создаваемая база данных и без сомнения подходит длярешения круга задач возложенного на базу данных о зерна зерноперерабатывающегопредприятия.
База данных ZERNOпредставлена 4-мя таблицами (или по терминологии реляционных баз данных — 4-мяреляционными отношениями): Dorg, Dkul,Dtyp, Fnakl. Рассмотримструктуру каждой более подробно.
В  таблице Dorg представлена информация о клиентах. Поля, их типы, иназначение представлены в таблице 2.
/>

Первичным ключем таблицы является поле O_Kod, которое однозначно определяет каждую запись в таблице. /> />
В  таблице Dkul представленаинформация о культурах. Поля, их типы, и назначение представлены в таблице 3.
Первичным ключем является  поле K_Kod, однозначно определяющее любую запись в таблице. /> />
В  таблице Dtyp представленаинформация о видах поступления зерна… Поля, их типы, и назначениепредставленны в таблице 4./> />
В  таблице Fnakl представленаинформация о накладных, по которым поступает зерно. Поля, их типы, и назначениепредставлены в таблице 5.
Ключевые поля данной таблицы – N_Nomer и N_Date.По полю N_Nana данная таблицасвязана с базой данных лаборатории, где содержится информация о фактическихкачественных показателях принятого зерна. Структуру таблиц базы данныхлаборатории я здесь приводить не буду, это отдельная задача. Кроме того, набазе данной таблицы (Fnakl) в задаче реализации готовойпродукции формируются квитанции и накладные на выдачу муки клиентам. />/>10.5.  Програмная реализация
Все описанные таблицы,составляющие основу базы данных, функционируют в рамках созданной системыуправления базой данных ”Zernot”. СУБД ”Zernot” создана средствами среды программирования Delphi 5.0.
В основу создания данной СУБДположен принцип экономии времени и усилий конечного пользователя, т.е.работников зерноперерабатывающего предприятия, предполагая, что машина берет насебя все рутинные функции  управления и доступа к хранимым данным. Этот принциппрослеживался во всех моментах реализации данной СУБД, включая созданиеудобного интерфейса для работы конечных пользователей с этим программнымпродуктом, продуманной структурой реляционных таблиц, выбранным форматом базданных выполняющие SQL-запросы  за наиболее короткое время. Даже функцииадминистрирования базы данных не требуют знакомства с теорией реляционной базданных, СУБД самостоятельно тестирует находящиеся в базе данных записи ипроизводит приведение базы данных к целостному состоянию. Пользователю остаетсясогласиться со всей проделанной работой (или ее частью) или провести всесамостоятельно. За сохранность введенных данных можно не беспокоиться,поскольку никакая информация, внесенная в базу данных не может быть удалена безподтверждения пользователя.
Краткое описаниепрограммного проекта
         Проект Azagot,реализующий доступ к БД Zerno выполнен в видебиблиотеки DLL. Состоит из двух форм MainForm(главная форма) и NaklForm (форма для ввода накладных).Из библиотеки Global.DLL впроект импортируются функции работы со справочниками клиентов, культур и видовпоступления соответственно ShowDovOrg, ShowDovKul, ShowDovTyp.
Доступ к таблицам БД реализован с помощью компоненты DataModule. Тексты программ приведены в дополнении кдипломной работе. Поскольку база данных о зерне тесно связана с задачамиреализации муки и лабораторией, в программном интерфейсе зарезервованывизуальные компоненты для взаимосвязи с этими задачами.
         Чтобы попасть в окно ввода накладных, нужно наглавной форме нажать кнопку с надписью “ЗЕРНО”. После этого откроется окно,через которое непосредственно реализуется работа с базой данный “ЗЕРНО”.
         Для подсчета общего количества зерна за деньв программе используется компонент TQuery, с помощью свойства SQLкоторого процедура подсчитывания очень быстро и эффективно выводит результат./>Заключение
В данной дипломной работедетально рассмотрены фундаментальные понятия теории экономических информационныхсистем, дан обзор новейшим технологиям организации доступа к данным,построениям моделей и систем управления базами данных. На основе общепринятыхкритериев аргументирован выбор реляционной модели базы данных и среды Borland Delphi 5.0 для практической реализации программы дляуправления работой базы данных.
Процесс проектирования базданных детально описан. Кроме этого, автором разработана база данных длязерноперерабатывающего предприятия, в которой хранится  информация о качестве иколичестве зерна, поступившего от клиентов на переработку. Данная система можетбыть успешно использована на предприятиях мукомельной промышленности.
Таким образом, автором, наразработанном конкретном примере, показан процесс оптимальной организации базыданных для наращивания экономической и статистической информации. Цельдипломной работы достигнута.
Материалы дипломной работыбудут полезными для студентов, изучающих теорию экономических информационныхсистем, проектирование баз данных, а также программистам и аналитикам предприятийзерноперерабатывающей промышленности, которые занимаются разработкойинформационных систем по управлению процессами на предприятии.Списоклитературы
1.   Дж. Тельман,  «Основы систем баз данных»,  Москва, Финансы и статистика',1983г.
2.   Дейт К.,«Введение в системы баз данных», Москва, 'Hаука', 1980 г.
3.   КогловскийМ.Р.,  «Технология баз данных на персональных ЭВМ», Москва, 'Финансыи статистика', 1992 г.
4.   Шумаков П.В. “Delphi 3.0 и создание баз данных”. Москва 1997г.
5.   Джон Матчо, Дэвид Р.Фолкнер. “Delphi” — пер. сангл. — М.: Бином, 1995г.
6.   A.M.Епанешников., «Программирование в средеDelphi 2.0»
7.   Дж. Мартин., «Организация баз данных ввычислительных системах» М: Мир 1978г.
8.   С.М.Диго «Проектирование и использования базданных». Москва: Финансы и статистика 1995.
9.   Горев А.,Ахаян Р., Макашарипов С. “Эффективная работа с СУБД”.СПб.: Питер,  1997.—   704с., ил.
10.     Атре Ш. Структурный подход к организации баз данных. – М.: Финансы истатистика, 1983. – 320 с.
11.     Бойко В.В., Савинков В.М. Проектирование баз данных информационныхсистем. – М.: Финансы и статистика, 1989. – 351 с.
12.     Джексон Г. Проектирование реляционных баз данных для  использования смикроЭВМ. -М.: Мир, 2001. – 252 с.
13.     Кириллов В.В. Структуризованный язык запросов (SQL). – СПб.: ИТМО, 1994.– 80 с.
14.     Мейер М. Теория реляционных баз данных. – М.: Мир, 1998. – 608 с.
15.     Тиори Т., Фрай Дж. Проектирование структур баз данных. В 2 кн., – М.:Мир, 1999. Кн. 1. – 287 с.: Кн. 2. – 320 с.
16.     Цикритизис Д., Лоховски Ф. Модели данных. – М.: Финансы и статистика,1985. – 344 с.
17.     Paradox for  Windows:  Практическое  руководство. Под редакцией ОспищеваД. А. Издательство АОЗ’ «Алевар»,  1993.
18.     Брябрин В.М., «Программное обеспечение персональных ЭВМ»,Москва, 'Hаука', 1989 г.
19.   Шафрин Ю.А. “Основы компьютерной технологии”. М., 1998
20.   “Кибернетические диалоговыесистемы”, И.П.Кузнецов.
21.     “Рекоммендации пообщепользовательскому интерфейсу”, Microsoft, редакция 2000г.
22. Тейксейра С., Пачеко К. Delphi5. Руководство разоработчика.Москва-Санкт-Петербург-Киев, 2000г.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.