Понятие базы данных

Автор работы: Пользователь скрыл имя, 20 Октября 2011 в 00:57, реферат

Краткое описание

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

Содержание работы

Введение 3
1 Базы и банки данных
2 Типы, структуры и модели данных
3 Отношения на множествах
4 Реляционные и объектно-ориентированные базы данных
5 Проектирование баз данных
6 Сортировка, поиск, фильтрация данных
7 Запросы к базе данных
8 Разработка отчетов
9 Базы знаний
10 Компьютерные сети
11 Глобальная сеть Интернет
12 Службы сети Интернет
13 Методы и средства поиска информации в Интернет
14 Деловые Интернет-технологии

Заключение
Список использованных источников

Содержимое работы - 1 файл

1 Понятие базы и банка данных.doc

— 224.50 Кб (Скачать файл)

     Отношение находится в первой нормальной форме (1NF) тогда, когда все атрибуты атомарны и отсутствуют повторяющиеся группы.

     Атомарность (неделимость) атрибутов определяется относительно рассматриваемой предметной области. Например, такое понятие  как адрес, включает в себя, как минимум, город, улицу, дом и т.д. В зависимости от предметной области адрес может быть представлен одним или большим числом атрибутов. Например, если адрес требуется только для отправки корреспонденции, то для него достаточно одного атрибута. Если же требуется анализировать количество адресатов в различных городах, то для адреса необходимо использовать два атрибута: город и городской адрес.

     Под повторяющейся группой подразумевается  набор атрибутов, имеющих одно и  тоже смысловое значение. Например, мы описываем сущность «организация» и знаем, что у любой организации, в принципе, может быть несколько телефонов. Если мы введем в сущность атрибуты «телефон 1», «телефон 2» и т.д., то они образуют повторяющуюся группу, и отношение станет ненормализованным. В данном случае необходимо создать сущность «телефон» и связать с ней сущность «организация» связью один-ко-многим.

     Отношение находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый неключевой атрибут полностью зависит от первичного ключа (или от каждого ключа, если их несколько).

     Отношение находится в третьей нормальной форме (3NF) в том и только в том случае, если находится в 2NF и каждый неключевой атрибут нетранзитивно зависит от первичного ключа (или от какого-либо ключа, если их несколько).

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

     Четвертый этап - построение физической модели БД.

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

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

     Заметим, что в физической модели принята терминология, свойственная языку SQL. В ней сущности соответствует термин «таблица», а атрибуту - «поле» (таблицы).

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

     6 Сортировка, поиск,  фильтрация данных 

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

     Сортировка  наборов данных Table и Query выполняется  различными способами.

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

     Направление сортировки определяет параметр ixDescending текущего индекса, по умолчанию он выключен, и упорядочивание выполняется в порядке возрастания значений. Если для индекса признак ixDescending включен, то сортировка выполняется в порядке убывания значений.

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

     Список  полей, по которым выполняется сортировка, указывается в операнде ORDER BY. Порядок  полей в этом операнде определяет порядок сортировки: сначала записи упорядочиваются по значениям поля, указанного в этом списке первым, затем  записи, имеющие одинаковое значение первого поля, упорядочиваются по второму полю и т.д.

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

     Поиск записей

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

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

     К средствам поиска можно отнести методы FindFirst, FindLast, FindNext и FindPrior, осуществляющие переход на записи, удовлетворяющие условиям фильтра.

     Поиск в наборах данных

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

     Функция Locate (const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions): Boolean ищет запись с заданными значениями полей. Если удовлетворяющие условиям поиска записи существуют, то указатель текущей записи устанавливается на первую из них. Если запись найдена, функция возвращает значение True, в противном случае — значение False. Список полей, по которым ведется поиск, задается в параметре KeyFields, поля разделяются точкой с запятой. Параметр KeyValues типа variant указывает значения полей для поиска. Если поиск ведется по одному полю, то параметр содержит одно значение, соответствующее типу поля, заданного для поиска.

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

    1.locaseinsensitive —регистр букв не учитывается;

    2. loPartiaiKey — допускается частичное совпадение  значений.

     При поиске по нескольким полям в методе Locate параметр KeyValues является массивом значений типа variant, в котором содержится несколько элементов.

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

     Для поиска в наборе данных также используется метод Lookup, который работает аналогично методу Locate. Функция Lookup (const KeyFields: String; const KeyValues: Variant; const ResultFields: String): Variant осуществляет поиск записи, удовлетворяющей определенным условиям, но, в отличие от метода Locate, не перемещает указатель текущей записи на найденную запись, а считывает информацию из полей записи. Еще одно отличие между двумя методами заключается в том, что метод Lookup осуществляет поиск на точное соответствие значений для поиска и значений в полях записей с учетом регистра букв.

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

     В параметре ResultFields через точку с  запятой перечисляются названия полей, значения которых будут получены в случае успешного поиска. Эти значения считываются из первой найденной записи, удовлетворяющей условиям поиска. Порядок перечисления полей в ResultFields может отличаться от порядка полей в наборе данных. Например, если набор данных имеет поля Code, Name, Salary И Note, то в ResultFields можно задать Salary и Name.

     В случае удачного поиска метод Lookup в  качестве результата возвращает значение типа variant, размерность которого зависит  от списка полей ResultFields. Если список содержит одно значение, то метод возвращает значение одного поля, если в списке задано несколько полей, то метод возвращает массив variant, число элементов которого совпадает с числом полей в списке ResultFields.

     При неудачном поиске метод Lookup возвращает значение Null. Для анализа такого результата можно использовать функцию VarlsNul (const V: Variant): Boolean, возвращающую значение True при значении параметра v, равном Null.

     Поиск по индексным полям

     Для набора данных Table имеются методы, позволяющие вести поиск записей только по индексным полям. Перед вызовом любого из этих методов следует установить в качестве текущего индекс, построенный по используемым для поиска полям. Методы поиска можно разделить на две группы, в первую из которых входят методы FindKey, SetKey, EditKey и GotoKey, предназначенные для поиска на точное соответствие, а другую образуют методы FindNearest, SetNearest, EditNearest и GotoNearest, допускающие только частичное совпадение заданных для поиска значений и значений полей записей.

     Метод FindKey (const KeyValues: array of const): Boolean выполняет  поиск в наборе данных Table записи, у которой значения полей совпадают  со значениями, указанными в параметре KeyValues. 
Список полей для поиска не задается, а берутся индексные поля в соответствии с текущим индексом. Если поиск завершился успешно, то найденная запись становится текущей, а метод возвращает значение True. При неудачном поиске указатель текущей записи не перемещается, а метод возвращает значение False.

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

     Метод setKey переводит набор данных в  режим поиска записи dsSetKey, этот метод  вызывается один раз для текущего индекса. Впоследствии для перехода в режим поиска можно вызывать метод EditKey. Если набор данных находится  в режиме поиска, значения полей устанавливаются с помощью операторов присваивания. Метод GotoKey: Boolean выполняет собственно поиск записи, удовлетворяющей заданному условию. Использовать комбинацию названных методов менее удобно, чем метод FindKey.

     Метод FindNearest, в отличие от метода FindKey, производит поиск значений полей записей набора данных Table, которые только частично совпадают со значениями, заданными для поиска.

     Сравнение проводится, начиная с первого  стоящего в поле символа. Поиск по частичному совпадению можно применять к строкам или к данным других типов, например, целым. Поиск с помощью процедуры FindNearest (const KeyValues: array of const) всегда является успешным и перемещает указатель текущей записи на запись, в наибольшей степени отвечающую условиям поиска.

     Вместо  метода FindNearest можно использовать комбинацию методов SetNearest, EditNearest и GotoNearest, pабота c которыми аналогична работе с соответствующими методами поиска на точное соответствие значений полей.

     При поиске по нескольким полям текущего индекса используется свойство KeyFieidCount типа Boolean, указывающее, сколько полей индекса, начиная с первого, участвует в поиске. По умолчанию поиск осуществляется по всем полям текущего индекса.

     Фильтрация  записей

     Фильтрация  — это задание ограничений для записей, отбираемых в набор данных. Напомним, что набор данных представляет собой записи, выбранные из одной или нескольких таблиц. Состав записей в наборе данных в данный момент времени зависит от установленных ограничений, в том числе и от фильтров. Система Delphi дает возможность осуществлять фильтрации записей:

     1. по выражению;

     2. по диапазону.

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

Информация о работе Понятие базы данных