Хранения информации.
Базы данных. СУБД
Деятельность человека постоянно связана с накоплением информации об окружающей среде, ее отбором и хранением при решении различных задач. Информационные системы, основное назначение которых — информационное обеспечение пользователя, то есть предоставление ему необходимых сведений из определенной предметной области, помогают человеку решать задачи быстрее и качественнее.
Заметим, что очень часто одни и те же данные используются для решения различных задач. Или же данные могут быть разные, но процедуры их размещения, хранения, поиска, обработки — одни и те же.
Любая информационная система предназначена для решения некоторого класса задач, включает в себя как хранилище данных, так и средства для реализации информационных процедур.
Пример. Хранилищем данных является ваш классный журнал. Наименование этого хранилища данных — название вашего класса и номер учебного года. Например: «11 б класс 2002/2003 учебный год». Данными в нем являются фамилии учеников класса, названия изучаемых предметов, фамилии преподавателей, даты проведения занятий, текущие, четвертные и годовые оценки, краткий перечень пройденного материала. Также данными могут быть сведения о родителях, домашние адреса, отметки о пропусках занятий.
С помощью журнала можно определить, сколько отличников в классе, в каком месяце занятия пропускались учащимися наиболее часто, какой учебный материал оказался более трудным для учащихся и многое другое.
Как только ЭВМ стали использоваться для обработки больших массивов данных, разработчики обнаружили, что для каждой программы разрабатывается своя структура данных, позволяющая оптимизировать вычислительный процесс. Очень скоро выяснилось, что это крайне неудобно, так как одни и те же данные приходилось неоднократно дублировать. Кроме того, если одни и те же данные использовались в разных программах, то изменение даже одного элемента требовало внесения изменений в файлы всех программ, так как данные к программе находились в одном пакете (файле) с нею. При этом вполне можно было ошибиться. Для того, чтобы разные программы могли использовать одни и те же данные, было предложено отделить данные от программ и хранить их в отдельных файлах. Воплощению этой идеи на практике способствовало появление и широкое распространение устройств хранения информации прямого доступа — магнитных дисков, обладающих большой емкостью и высокой скоростью доступа к данным, их размещения и выдачи.
Данные, хранящиеся в запоминающих устройствах, структурированные таким образом, чтобы их могли использовать различные программы, получили название баз данных (БД). Средства создания и управления этими данными
получили название систем управления базами данных (СУБД). Несколько баз данных, относящихся к одной области, и средства работы с ними образуют банк данных (БнД). Банк данных — это информационная система коллективного многоцелевого использования, обеспечивающая хранение данных, их обновление и выдачу по запросам пользователей.
Банки данных хранят сведения из самых разных областей человеческой деятельности: это библиотечное и банковское дело, образование и медицина, управление предприятием и государством, право, экология, транспорт, туризм и многое другое. Количество информации, содержащейся в некоторых банках данных, измеряется миллиардами байтов. В частности Интернет можно рассматривать как гигантский банк данных.
База данных может входить в банк данных, а может использоваться автономно. База данных может содержать информацию практически любого типа. Это может быть список клиентов магазина, личное дело космонавта, коллекция экслибрисов или собрание видеклипов любимого певца. Данные в одной базе данных обычно относятся к како-либо одной предметной области.
Данными в базе данных могут быть числовые величины, строки символов, текстовые документы, схемы, рисунки, аудио- и видеозаписи, то есть информация любого вида. Более точно можно сказать, что информация об объекте или отношениях объектов, выраженная в знаковой форме, образует данные.
Пример. Автоматизированной базой данных является каталог файлов, хранящихся на диске. Все данные в нем относятся к файлам, расположенным именно на этом носителе. Данными являются имена подкаталогов и файлов, время их создания, размеры, пароли доступа, логические и физические адреса размещения на носителе и др.
Следует отметить, что знаки сами по себе не образуют данных, несущих информацию о предметной области. Они должны быть структурно оформлены в виде записей, а каждое поле записи (в которое помещается знак) должно иметь однозначную интерпретацию с точки зрения, предметной области, для которой создается база данных.
Пример Пусть в базе данных отражены сведения о сотрудниках предприятия. Дата 15 июня 1997 года сама по себе ничего не значит. Это может быть и дата поступления какого-то специалиста на данное предприятие, или дата рождения его ребенка, или дата получения диплома о повышении
квалификации, или дата приказа о вынесении выговора или поощрения. Только если известно «место» этой даты в базе данных, то есть к кому и к чему она относится, можно расссматривать ее как элемент данных.
Для любой базы данных можно говорить о ее логической и физической организации.
Физическая организация — это способ представления, размещения и хранения даных на носителе (ориентирована на техническое устройство).
Логическая организация представляет собой модель структуры всей совокупности данных (ориентирована на человека). По сути, это способ объединения данных в записи, это «взгляд» на данные с точки зрения их использования в прикладных программах.
Наиболее распространенными способами логической организации данных в БД являются табличный (реляционный), древовидный (иерархический), сетевой (графовый). Каждый способ имеет свои преимущества и недостатки. Выбор способа представления данных зависит от особенностей предметной области и тех задач, которые предполагается решать с помощью этих данных.
Пример Данные о сотрудниках учреждения, необходимые отделу кадров или бухгалтерии, удобно представлять в виде таблиц.
№ | ФИО | Год рождения | Факультет | Кафедра | Должность |
Илюшин И. И. | эконом. | БУиА | ассистент | ||
Ипатов С. С. | технолог. | тмм | профессор | ||
Кедров К. К. | архитект. | пгс | доцент |
Данные о структуре управления удобно представлять в виде дерева (рис 2.3.1).
Рис. 2.3.1
Пример иерархической модели данных
Данные о курсах, читаемых для студентов разных специальностей удобно представлять в виде сетевого графа (рис. 2.3.2.).
Рис. 2.3.2
Пример сетевой модели данных
Система управления базами данных обычно поддерживает какую-нибудь одну из моделей организации данных, то есть с их помощью можно создать базу данных вполне определенного типа.
Наиболее распространены реляционные СУБД. Это такие известные программные средства, как dBASE, Ребус, Lotus, FoxPro, Clipper, Access, Paradox и многие другие.
К СУБД иерархического типа можно отнести многие системы управления файлами, в частности Norton Commander, Far Manager, Диспетчер файлов и пр. Большинство СУБД, предназначенных для создания и ведения библиотечных баз данных, также имеют иерархический тип.
СУБД сетевого типа используются преимущественно в автоматизированных системах управления и системах управления корпоративными бизнес-процессами. Сетевой тип логической организации данных в наибольшей степени отражает наличие самых разнообразных связей (сырьевых, кадровых, информационных, финансовых и пр.) между элементами производственного процесса.
Рассмотрим несколько подробнее реляционные БД.
Элементами табличной структуры данных являются запись, поле, реквизит. Поля могут быть различных типов: символьного, числового, логического, типа даты, графического и пр.
Рис. 2.3.3
Элементы табличной структуры данных
Пример. В таблице представлен фрагмент стуктуры одной из баз данных магазина по продаже компьютерной техники. Чтобы продавец мог ответить на любой вопрос покупателей, необходимо достаточно полно описать поступивший товар. В этом случае перечисленных полей явно недостаточно и число полей необходимо увеличить. Но если полей слишком много, то записи становятся труднообозримыми. Чтобы этого избежать часто создают несколько взаимосвязанных баз данных.
№ | Наименование товара | Фирма-производитель | Дата поступл. партии | Объем партии | Цена изделия | Наличие гарантии | Гарантийный срок |
1|2Гз | 4|5|б| 7 I 8 ~
№ Найме- Фирма- Дата Объем Цена Наличие Гаран-
нование произво- поступл. партии изделия гарантии тийный
товара дитель партии ___________________________________ срок _____
Поле 1 — номер по порядку. Часто используется как
уникальный ключ записи.
Поля 2, 3 предназначены для записи символьных строк.
Поле 4 — поле даты.
Поля 5, 8 — поля числового типа.
Поле б — поле денежного типа.
Поле 7 — поле логического типа.
Кроме типа логической организации данных СУБД характеризуются своими функциями. К основным функциям относятся: создание, редактирование, реструктурирование базы данных, поиск, выборка, сортировка записей.
Современная СУБД должна обеспечивать работу приложений и пользователей с информационной моделью:
• на ЭВМ разной архитектуры с установленными на них различными операционными системами;
• в компьютерных сетях разных типов, работающих по различным протоколам;
• с различными графическими и символьными системами представления информации.
Все операции над базой данных находятся в ведении ад-: министратора базы. Именно администратор анализирует структуру предметной области, выбирает соответствующий тип СУБД, разрабатывает структуру базы данных — определяет количество, состав и наименования полей таблицы, наполняет базу конкретными данными, следит за регулярным обновлением данных, разграничивает доступ к БД пользователей, ведет статистику обращения к базе данных, помогает пользователю в случае необходимости сформулировать запрос и т. п.
При создании и ведении базы данных необходимо учитывать следующие требования:
• адекватность информации состоянию предметной области. Информация, хранимая в БД, должна полно и точно отражать объекты описываемой предметной области, их свойства и отношения. Отсюда вытекает необходимость периодического внесения изменений в данные — добавления описания для новых объектов, корректировки для изменившихся, удаления для «выбывших»;
• надежность функционирования. Это одно из важнейших требований, предъявляемых к любой системе;
• быстродействие и производительность. Быстродействие определяется временем ответа на запрос пользователя, которое зависит не только от быстродействия компьютера, но и от физической организации данных, сложности запроса, алгоритмов поиска и т. п. Производительность определяется количеством запросов, выполненных в единицу времени;
• простота и удобство использования;
• непротиворечивость данных;
• защита информации как от случайных искажений и уничтожения, так и от несанкционированного доступа;
• возможность расширения. Структура базы данных дол
жна допускать реорганизацию, то есть добавление полей,
изменение порядка их отображения на экране и пр.
Пользователь базы данных может обратиться к ней с за
просом, в котором может использовать такие операции над
записями, как поиск записей с заданным содержимым опре
деленных полей, упорядочивание записей по тому или иному
полю, определение количества записей, удовлетворяющих за
данному условию и пр. Запрос — это формализованное сооб
щение, содержащее условие (простое или сложное) на поиск
данных и указание о том, что необходимо проделать с най
денными данными.
В большинстве современных СУБД предусмотрен диалоговый режим формулировки запроса, то есть пользователь выбирает соответствующие пункты меню специальных диалоговых окон или заполняет так называемую таблицу реквизитов, где указывает наименования и диапазон значений полей, которые его интересуют.
Пример. Чтобы с помощью описанной выше базы данных магазина узнать, товар на какую сумму поступил в первом квартале 2002 года, в запросе надо указать, что отбираются только те записи, для которых значение реквизитов 4-го поля лежат в интервале от 1.01.2002 до 31.03.2002, и что затем надо суммировать произведения значений 5-го и 6-го полей.
Чтобы определить, какая часть поступивших процессоров фирмы Intel подлежит гарантийному обслуживанию, необходимо в запросе указать, что реквизит 2-го поля отбираемых записей должен совпадать со строкой «процессор», реквизит 3-го поля должен совпадать со строкой «Intel», реквизит 7-го поля должен быть равен True (истина) и что затем надо разделить количество отобранных записей, удовлетворяющих всем указанным условиям, на общее количество записей.
Банки данных получают все большее распространение. Их интерфейсы становятся все более дружественными, а их применение в больших информационных системах, например, в Интернете, способствует существенному расширению круга пользователей сетей, обеспечивая им доступ к информации практически в любой отрасли науки, техники, культуры, а в идеале — к знаниям, накопленным человечеством за время его существования.
База данных (database) — множество данных, организованных для быстрого и удобного поиска и извлечения.
База данных — поименованная совокупность хранимых в запоминающих устройствах, специальным образом организованных, взаимосвязанных данных, отражающих состояние предметной области.
База данных — совокупность данных, организованных ив 'определенным правилам, предусматривающим общие принципы описания, хранения и обработки, независимая от прикладных программ.
База данных является информационной моделью предметной области.
Существуют два уровня организации базы данных — физический и логический.
Физическая организация базы данных — это способ представления, размещения и хранения даных на носителе.
Логическая организация базы данных есть модель структуры совокупности данных, способ объединения данных в записи.
Система управления базами данных (database management system) — совокупность программ и языковых средств, предназначенных для создания, ведения и использования баз данных.
В состав СУБД входят:
• управляющие программы, обеспечивающие взаимосвязь с операционной системой, обработку команд пользователя, очередность их выполнения, контроль завершения операций и пр.;
• обрабатывающие программы, включая трансляторы с языков описания данных, языков запросов и языков программирования, редакторы, отладчики;
• сервисные программы, обеспечивающие удобный для пользователя интерфейс;
• прикладные программы, выполняющие обработку найденных системой данных, вычисления, формирование выходных документов по заданной форме и пр. Запрос к базе данных — это формализованное сообщение,
содержащее условие (простое или сложное) на поиск данных и указание о том, что необходимо проделать с найденными данными.
Способы логической организации базы данных — реляционный (табличный), иерархический (древовидный), сетевой.
Банк данных (databank) — автоматизированная информационная система централизованного хранения и коллективного многоцелевого использования данных.
В состав банка данных входят СУБД, одна или несколько баз данных, справочник баз данных, библиотека запросов, библиотека прикладных программ.
Рис. 2.3.4
Компоненты и способы организации банков данных
Администратор баз данных — специалист (или группа специалистов), контролирующий проектирование и использование баз данных.
В функции администратора БД входят:
• разработка модели предметной области и определение структуры БД;
• изменение структуры БД;
• обеспечение эффективной работы БД в данной организа
ции;
• контроль за целостностью БД и ее своевременным обнов
лением;
• регистрация подключения к системе новых пользователей;
• контроль за полномочиями пользователей;
• обеспечение надежности функционирования;
• защита от несанкционированного доступа.
Задание 1
Разработайте структуру базы данных, в которой бы хранились достаточно подробные сведения о ваших друзьях и знакомых. Не забудьте включить туда сведения о адресах (в том числе e-mail), телефонах, днях рождения, увлечениях и пр. Какой тип логической организации данных (табличный, сетевой или иерархиче-
ской) в наибольшей степени соответствует данной предметной области? Какие задачи вы можете решить с помощью этой базы данных, если она будет наполнена? Как часто вам придется ее обновлять? Что вам потребуется сделать, если вы решите перенести ее на компьютер? Какую СУБД вы выберете для ее создания и ведения и почему?
Задание 2
Если на вашем компьютере установлена СУБД, то:
а) определите, к какому типу она относится;
б) определите, базы данных каких предметных областей созданы
и используются с ее помощью;
в) исследуйте интерфейс и выясните способы создания, наполне
ния и редактирования базы данных;
г) выясните, какой язык запросов поддерживает СУБД;
д) откройте существующую БД, сформулируйте запрос и проана
лизируйте полученный результат.
Задание 3
Создайте и заполните базу данных «Расписание занятий». Если на вашем компьютере СУБД не установлена, используйте для этой цели электронные таблицы.
Задание 4
Для создания автоматизированного каталога вашей школьной библиотеки можно воспользоваться СУБД реляционного или иерархического типа. Заметим, что систематический каталог, которым вы пользуетесь в школьной библиотеке, построен по иерархическому типу.
Разработайте структуры базы данных «Каталог библиотеки» в расчете на реляционную СУБД и на иерархическую СУБД.
Задание 5
При создании структуры базы данных часто можно не только указать тип каждого поля, но и диапазон возможных значений. Например, если создается база данных «Учащиеся школы», то на значения поля «Год рождения» можно наложить ограничение, чтобы возраст учащихся был от 6 до 18 лет. Для кого такого рода ограничения предназначены в большей степени — для администратора БД или ее пользователя? Выполнение какого требования к БД обеспечивают эти ограничения? Ответ обоснуйте.
Есть ли разница между понятиями «информация» и «данные» по отношению к базам данных?
Есть ли разница между тезаурусом некоторой предметной области и банком данных этой же области?
Примечание. Тезаурус (общественный, коллективный, индивидуальный) — упорядоченная совокупность знаний о данной предметной области, которыми на определенный момент располагает общество, коллектив или индивидум.
Использование модели данных при работе с БД неизбежно по нескольким причинам.
Во-первых, модель дает общий язык пользователям, работающим с данными.
Во-вторых, модель может обеспечить предсказуемость результатов работы с данными. Работающий с базой может предвидеть, какого сорта он получит результат в результате выполнения его запроса.
За время существования разработок программных систем предложено много различных моделей разной степени распространенности.