
- •Глава 1. Основы теории баз данных Введение в «Базы данных»
- •Вопрос 2 Метод нормальных форм
- •Создание бд. Типовые структуры интерфейса бд
- •Строка меню
- •Окно базы данных
- •Создание пустой базы данных
- •Создание базы данных с помощью мастера
- •Построение простейших реляционных таблиц
- •Создание таблицы в окне конструктора
- •Текстовые поля
- •Поля денежного типа
- •Поля типа Счетчик
- •Поля дат/времени
- •Логические поля
- •Текстовые поля произвольной длины
- •Поля объекта ole
- •Поля гиперссылки
- •Тип данных мастер подстановок
- •Создание структуры таблицы
- •Первичный ключ
Глава 1. Основы теории баз данных Введение в «Базы данных»
В настоящее время жизнь человека настолько сильно насыщена различного рода информацией, что для управления ею требуется создание огромного количества баз и банков данных различного назначения. Сейчас практически любая задача связана с манипуляцией информацией и данными. По этой причине в последние годы появилось множество различных компьютерных систем - систем управления базами данных - предназначенных для этих целей.
Термины база данных (БД) и система управления базами данных (СУБД) чаще всего употребляются как относящиеся к компьютерам. Понятие БД можно применить к любой связанной между собой по определенному признаку информации, хранимой и организованной особым образом - как правило, в виде таблиц. По сути, БД - это некоторое подобие электронной картотеки, электронного хранилища данных, которое хранится в компьютере в виде одного или нескольких файлов. При этом возникает необходимость в выполнении ряда операции с БД, в первую очередь это:
- добавление новой информации в существующие файлы БД;
- добавление новых пустых файлов в БД;
- изменение (модификация) информации в существующих файлах БД;
-поиск информации в БД;
- удаление информации из существующих файлов БД;
- удаление файлов из БД.
Компьютеризированная информационная система представляет собой. программный комплекс, задачи которого состоят в поддержке надежного хранения БД в компьютере, выполнении преобразований информации и соответствующих вычислении, предоставления пользователям удобного и легко осваиваемого интерфейса. Традиционно объемы информации, с которыми приходится иметь дело таким системам, довольно велики, а сами БД имеют достаточно сложную структуру. Примерами информационных систем являются системы заказа железнодорожных или авиационных билетов, банковские системы и многие другие.
В качестве иллюстрации рассмотрим небольшую БД, приведенную в табл. 1.1. в которой хранится информация о стипендии студентов.
Табл. 1.1. Пример таблицы БД «Стипендия»
-
|
|
||||
№ студент билета
|
Ф.И.О.
|
Учебная группа
|
Ср. балл успеваемости
|
Стипендия
|
|
52122
|
Иванов И.Н.
|
00СА-11
|
4,5
|
2250
|
|
52123
|
Петров А.В.
|
00СА-11 |
4,0
|
1875
|
|
52124
|
Сидоров Д.А.
|
00СА-11
|
5,0
|
2500
|
Данные о студентах записываются в таблицу, имеющую строгую структуру данных. Информация внутри таблицы состоит из полей, имеющих свое имя. В нашем примере - это поля, предназначенные для:
номер студенческого билета;
фамилия и инициалы студента;
наименование учебной группы студента;
средний балл успеваемости студента;
размер начисленной стипендии.
Каждую строку таблицы нужно рассматривать как запись, при этом информация заносится в соответствующие поля. В то же время все записи состоят из одинаковых полей, а характер информации для одного поля во всех записях одинаковый, но разные поля имеют разный характер хранимых данных.
Основным назначением БД в первую очередь является быстрый поиск содержащейся в ней информации. При значительном размере БД ручной поиск, а также модификация содержащейся информации занимает значительное время. Использование компьютера для ведения БД устраняет перечисленные выше проблемы - поиск и выборка информации, ее модификация осуществляются достаточно быстро и эффективно, а сама БД, состоящая из тысяч записей, может легко уместиться на дискете.
Существует большое количество программ, которые предназначены для организации информации, помещения ее в таблицы и манипуляции с нею - такие программы в получили название СУБД. Основная особенность СУБД - это наличие средств для ввода и хранения не только самих данных, но и описаний их структуры.
Если говорить более детально, то к функциям СУБД относят следующие:
-управление данными непосредственно в БД - функция, обеспечивающая хранение данных, непосредственно входящих в БД и служебной информации, обеспечивающей работу СУБД;
- управление данными в памяти компьютера - функция, связанная в первую очередь с тем, что СУБД работают с БД большого размера. В целях ускорения работы СУБД используется буферизация данных в оперативной памяти компьютера. При этом пользователь СУБД использует только необходимую для его конкретной задачи часть БД а при необходимости получает новую "порцию" данных;
- управление транзакциями - функция СУБД которая производит ряд операций, над БД как над единым целым. Как правило такие операции производятся в памяти компьютера. В первую очередь транзакции необходимы для поддержания логической целостности БД в многопользовательских системах. Если транзакция (манипуляция над данными) успешно выполняется, то СУБД вносит соответствующие изменения в БД. В обратном случае ни одно из сделанных изменений никак не влияет на состояние БД;
- управление изменениями в БД и протоколирование - функция, связанная с надежностью хранения данных, то есть возможностью СУБД восстанавливать состояние БД в аварийных ситуации например, при случайном выключении питания или сбое носителя информации. Очевидно, что для восстановления БД нужно располагать дополнительной информацией, по которой и осуществляется восстановление. С этой целью ведется протокол изменений БД, в который перед манипуляциями с данными делается соответствующая запись. Для восстановления БД после сбоя СУБД используется протокол и архивная копия БД - полная копия БД к моменту начала заполнения протокола;
- поддержка языков БД - для работы с БД используются специальные языки, в целом называемые языками баз данных. В СУБД обычно поддерживается единый язык, содержащий все необходимые средства - от создания БД до обеспечения пользовательского интерфейса при работе с данными. Наиболее распространенным в настоящее время языком СУБД является язык SQL (Structured Query Language).
В настоящее время в большинстве БД используются реляционные модели данных (о них поговорим ниже), однако для начала кратко рассмотрим прочие основные модели данных, а именно:
модели, основанные на инвертированных списках;
иерархические модели данных;
сетевые модели данных;
БД, организованная с помощью инвертированных списков, построена таким образом, что таблицы и пути доступа к ним видны пользователям, при этом строки таблиц физически упорядочены в некоторой последовательности. В этих БД поддерживаются операторы, устанавливающие адрес записи абсолютным (например, первая запись, последняя запись таблицы) или относительным образом (например, следующая за текущей запись таблицы);
операторы над адресуемыми записями.
БД, основанная на иерархической модели, состоит из упорядоченного набора деревьев. Каждое дерево состоит из одного "корневого" (предок) и упорядоченного набора из нуля или более связанных с ним поддеревьев (потомки). Целостность связи между ними поддерживается автоматически.
В таких БД поддерживаются следующие операторы манипулирования данными:
- найти дерево БД по заданному признаку;
- перейти от одного дерева к другому;
- перейти к записи внутри дерева или в порядке обхода иерархии (сверху вниз, слева направо);
- вставить новую запись в указанную позицию;
-удалить текущую запись.
В БД сетевой структурой данных поддеревья могут иметь любое число корневых. Фактически сетевая БД состоит из набора записей и множества связей между этими записями. Примерный перечень операций для сетевых БД может быть следующим:
найти запись по заданному признаку;
- перейти от предка к потомку по указанной связи;
- перейти от потомка к предку по некоторой связи;
- создать новую запись или удалить существующую;
- модифицировать заданную запись;
- включить в связь или исключить из связи;
- переставить в другую связь.
Основные понятия и определения «Базы данных»
Вопрос №1. Основные понятия «Базы данных»
Структурирование – это введение соглашений о способах представления данных.
Неструктурированные данные. Например данные записанные в текстовом файле. (Личное дело №123, Иванов Иван Иванович, дата рождения 11.05.1980г., Личное дело №342, Петрова Петра Петровича ...
Понятие БД можно применить к любой связанной между собой по определенному признаку информации, хранимой и организованной особым образом - как правило, в виде таблиц.
По сути, БД - это некоторое подобие электронной картотеки, электронного хранилища данных, которое хранится в компьютере в виде одного или нескольких файлов.
БД – это организованная структура, предназначенная для хранения информации.
Вопрос №2 Классификация «Базы данных»
По технологии хранения (централизованная база, распределенная база).
По способу доступа (локальный доступ, удаленный или сетевой доступ). Централизованная БД с удаленным доступом делятся на файл-сервер и клиент-сервер.
По форме представления информации (видео, аудио, мультимедийное).
По типу модели хранения информации (иерархическая, сетевая …)
Вопрос №1.Избыточное дублирование данных и аномалии
Следует различать простое (неизбыточное) и избыточное дублирование данных. Наличие первого из них допускается в базах данных, а избыточное дублирование данных может приводить к проблемам при обработке данных.
Аномалии
Аномалиями будем называть такую ситуацию в таблицах БД, которая приводит к противоречиям в БД, либо существенно усложняет обработку данных.
Выделяют три основные вида аномалий:
аномалии модификации (или редактирования);
аномалии удаления;
аномалии добавления.
Аномалии модификации проявляются в том, что изменение значения одного данного может повлечь за собой просмотр всей таблицы и соответствующее изменение некоторых других записей таблицы.
Так, например, изменение номера телефона в комнате 111, что представляет собой один единственный факт, потребует просмотра всей таблицы С_Т_Н и изменения поля Н_комн согласно текущему содержимому таблицы в записях, относящихся к Петрову, Сидорову и Егорову.
Аномалии удаления состоят в том, что при удалении какого-либо данного из таблицы может пропасть и другая информация, которая не связана напрямую с удаляемым данным.
В той же таблице С_Т_Н удаление записи о сотруднике Иванове (например, по причине увольнения или ухода на заслуженный отдых) приводит к исчезновению информации о номере телефона, установленного в 109-й комнате.
Аномалии добавления возникают в случаях, когда информацию в таблицу нельзя поместить до тех пор, пока она неполная, либо вставка новой записи требует дополнительного просмотра таблицы.
Примером может служить операция добавления нового сотрудника в таблицу С_Т_Н. Очевидно, будет противоестественным хранение сведений в этой таблице только о комнате и номере телефона в ней, пока никто из сотрудников не помещен в нее. Более того, если в таблице С_Т_Н поле Служащий является ключевым, то хранение в ней неполных записей с отсутствующей фамилией служащего просто недопустимо из-за неопределенности значения ключевого поля.
Формирование исходного отношения
Проектирование БД начинается с определения всех объектов, сведения о которых будут включены в базу, и определения их атрибутов. Затем атрибуты сводятся в одну таблицу - исходное отношение.
Формирование исходного отношения (для учебной части факультета создается БД о преподавателях).
Формирование исходного отношения «ПРЕПОДАВАТЕЛЬ»
Явная избыточность
Явная избыточность заключается в том, что в отношении ПРЕПОДАВАТЕЛЬ строки с данными о преподавателях, проводящих занятия в нескольких группах, повторяются соответствующее число раз.
Например, в отношении ПРЕПОДАВАТЕЛЬ все данные по Иванову повторяются дважды. Поэтому, если Иванов И.М. станет старшим преподавателем, то этот факт должен быть отражен в обеих строках. В противном случае будет иметь место противоречие в данных, что является примером аномалии редактирования, обусловленной явной избыточностью данных в отношении.
Неявная избыточность
Неявная избыточность в отношении ПРЕПОДАВАТЕЛЬ проявляется в одинаковых окладах у всех преподавателей и в одинаковых добавках к окладу за одинаковый стаж. Поэтому, если при изменении окладов за должность с 500 на 510 это значение изменят у всех преподавателе, кроме, например, Сидорова, то база станет противоречивой.