Базы данных и управление ими
Базы данных (БД) и системы управления базами данных (СУБД)
Организация данных во внутримашинной сфере характеризуется на двух уровнях – логическом и физическом.
Физическая организация данных определяет способ размещения данных непосредственно на машинном носителе. Этот уровень обеспечивается автоматически прикладными программами, без вмешательства пользователя.
Пользователь в прикладных программах оперирует представлениями логической организации данных.
Логическая организация данных
Для размещения одной и той же информации а ЭВМ могут быть использованы различные структуры и модели данных.
Модель данных – это совокупность взаимосвязанных структур данных и операций над этими структурами. Выбор модели данных и структуры данных возлагается на пользователя и зависит от технического и программного обеспечения, определяется сложностью задач и объемом информации.
Существуют три основные модели данных
Файловая
Сетевая и иерархическая
Реляционная
Файловая модель.
Информационная база представляет собой совокупность не связанных между собой файлов из однотипных записей с линейной структурой.
Основные типы структур данных файловой модели – поле, запись, файл.
Запись является основной структурной единицей обработки данных и единицей обмена между оперативной и внешней памятью.
Поле – это элементарная единица логической организации данных которая соответствует отдельной, неделимой единице информации – реквизиту.
Запись – это совокупность полей, соответствующих логически связанным реквизитам. Структура записи определяется составом и последовательностью входящих в нее полей, каждое из которых содержит элементарное данное.
Файл – это множество одинаковых по структуре записей со значениями в отдельных полях, причем поля имеют единственное значение.
Каждый экземпляр записи однозначно идентифицируется уникальным ключом записи.
Ключи бывают 2х типов: первичный и вторичный.
Первичный ключ (ПК) – это одно или несколько полей, однозначно идентифицирующих запись. Если первичный ключ состоит из одного поля, он называется простым, если из нескольких полей – составным ключом.
Вторичный ключ (ВК) – в отличие от первичного, это такое поле, значение которого может повторяться в нескольких записях файла, т.е. он не является уникальным.
Если по значению первичного ключа может быть найден один единственный экземпляр записи, то по вторичному – несколько.
Средством эффективного доступа по ключу к записи файла является индексирование. При индексировании создается дополнительный файл, который содержит в упорядоченном виде все значения ключа файла данных. Для каждого ключа в индексном файле содержится указатель на соответствующую запись файла данных.
С помощью указателя на запись в файле данных осуществляется прямой доступ к этой записи.
Описание логической организации данных файловой модели
При описании логической организации данных каждому файлу присваивается уникальное имя, и дается описание структуры его записей. Описание структуры записей включает перечень входящих в нее полей и их порядок внутри записи.
Для каждого поля задается сокращенное обозначение – имя поля, формат поля – тип хранимого данного, длина поля и точность числовых данных.
Структуру файла можно представить в виде таблицы.
Сетевые и иерархические модели данных
Сетевая или иерархическая модель данных представляет соответствующий метод логической организации базы данных в СУБД. Такая модель является совокупностью взаимосвязанных объектов. Связь двух объектов отражает их подчиненность.
Структуры данных в моделях
К типовым структурам данных относятся элемент данных, агрегат данных, запись, база данных и т.д.
Элемент данных – это минимальная именованная структурная единица данных(аналог поля в файловых системах).
Агрегат данных – это именованное подмножество элементов данных или других агрегатах внутри записи. В агрегатах допускается множественный элемент, который содержит несколько значений элемента в одном экземпляре агрегата.
Запись – составной агрегат, который не входит в состав других агрегатов.
Тип записи – все множество экземпляров записи одинаковой структуры.
Запись конкретного типа является объектом в модели данных.
Особенности моделей
В иерархических моделях непосредственный доступ по ключу, как правило, возможен только к объекту самого высокого уровня, который не подчинен другим объектам.
В сетевых моделях непосредственный доступ по ключу может обеспечиваться к любому объекту независимо от уровня, на котором он находится в модели (структура объекта чаще всего линейная).
Сетевые модели данных по сравнению с иерархическими являются более универсальными.
Сетевые модели позволяют отображать также иерархические связи данных. В них отсутствует дублирование данных и технология работы с сетевыми моделями удобны для пользователя, т.к. доступ к данным не имеет ограничений. Допустимы всевозможные запросы.
Реляционная модель данных
Реляционная модель имеет простую структуру данных, удобное для пользователя табличное представление данных и удобный доступ к данным. Реляционная модель данных является совокупностью простейших двумерных таблиц-отношений. Связи между двумя логически связанными таблицами в реляционной модели устанавливаются по равенству значений одинаковых атрибутов таблиц-отношений.
Операции обработки реляционной модели основаны на использовании универсального аппарата алгебры отношений и реляционного счисления.
Структура данных реляционной модели.
Таблица является основным типом структуры данных реляционной модели. Структура таблицы определяется совокупностью столбцов. В каждой строке таблицы содержатся по одному значению в соответствующем столбце. В таблице не может быть двух одинаковых строк. Общее число строк не ограничено. Столбец – это атрибут (элемент данных). Каждый столбец имеет имя. Один или несколько атрибутов, значения которых однозначно идентифицируют строку таблицы, являются ключом таблицы. В реляционном подходе к построению баз данных используется терминология теории отношений. Простейшая двумерная таблица определяется как отношение. Столбец таблицы со значениями соответствующего атрибута называется доменом, а строки со значением разных атрибутов – кортежем.
R (Отношение)
A1 A2 A3 A4 A5 A6 A7 } имена атрибутов (столбцов)
K1 d11 d12 d13 d14 d15 d16 d17 R={К1, К2, К3, К4}
K2 d21 d22 d23 d24 d25 d26 d27 К2={d21, d22, d23, d24, d25, d26, d27}
K3 …... …... …... ….. d35 …... …. D5={d15, d25, d35, d45}
K4 …... …... …... ….. d45 …... ….
D1 D2 D3 D4 D5 D6 D7
Ki – кортеж
Di – домен
Ai – атрибут
Ri – таблица-отношение
Ключ таблицы – отношения.
Т.к. кортежи не должны повторяться внутри таблицы – отношения, соответственно они имеют уникальный первичный ключ (т.е. один из атрибутов таблицы будет являться ключом).
Для логической связи таблицы-отношения R1 с другой таблицей-отношением R2 первая таблица-отношение должна содержать внешний ключ. Внешним ключом подчиненной таблицы является вторичный ключ этого отношения, который в то же время выполняет роль первичного ключа в главной таблице.
Рассмотрим пример связывания нескольких таблиц отношений
№Договора | КодЗаказчика |
Д0001 | ЗАК А |
Д0002 | ЗАК Б |
Д0003 | ЗАК В |
Д0004 | ЗАК А |
№п/п | №Договора | КодИзделия | Количество |
1 | Д0001 | И0001 | К11 |
2 | Д0001 | И0005 | К15 |
3 | Д0002 | И0001 | К21 |
4 | Д0003 | И0001 | К31 |
5 | Д0003 | И0002 | К32 |
6 | Д0003 | И0005 | К35 |
Преимущества и недостатки реляционной модели.
Достоинства:
Простота представления данных благодаря табличной форме, минимальная избыточность данных при нормализации отношений.
В реляционных моделях обеспечивается:
независимость приложений пользователя от данных
изменение атрибутного состава отношений.
В отличие от иерархических и сетевых, реляционные базы данных не требуют описания схемы данных и его генерации.
Недостатки:
нормализация данных реляционной модели приводит к значительной фрагментации данных, в то время как в большинстве задач необходимо объединение фрагментированных данных.
База данных ACCESS
В СУБД Access поддерживается реляционная модель данных.
СУБД Microsoft Access входит в пакет Microsoft Office. Мы будем рассматривать версию MS Access 2000.
Структура БД
Даже если в базе нет никаких данных (пустая база), то это все равно полноценная база данных, т.к. она имеет определенную структуру. Структура определяет методы занесения данных и хранения их в базе.
Т.к. структура двумерной таблицы образуют столбцы и строки, их аналогами в структуре простейшей базы данных являются поля и записи. Значит если записей в таблице нет, то структура образована только набором полей.
Изменяя состав полей базовой таблицы (или их свойства), мы изменяем структуру базы данных и получаем новую базу данных.
Свойства полей БД Access.
Имя поля – как нужно обращаться к данным.
Тип поля – определяет тип данных.
Размер поля – определяет предельную длину данных.
Формат поля – способ формирования данных в ячейках.
Маска ввода – форма ввода данных в поле(средства автоматизации данных).
Подпись – заголовок столбца таблицы(по умолчанию – имя поля).
Значение по умолчанию – (ввод автоматически).
Условие на значение – ограничение, для проверки правильности ввода(числовой, денежный или тип даты).
Сообщение об ошибке – если вводятся ошибочные данные.
Обязательное поле – данные обязательного заполнения.
Индексированное поле – быстрая обработка(папок и сортировка).
Типы данных
Текстовый – неформатированный текст(до 255 знаков).
Поле меню – (до 65535 символов).
Числовой – действительные числа.
Дата и время – календарные даты и текущее время.
Денежный – денежные суммы(округление).
Счетчик – порядковая нумерация записей(неповторяющиеся).
Логический – принимает значения ДА или НЕТ.
Поле объекта OLE – указатель на объект OLE.
Гиперссылка – хранение адресов URL WEB объектов Интернета.
Мастер подстановок – это объект для настраемого автоматического ввода данных(т.е. можно выбирать, а не вводить в ручную).
Объекты БД.
Объектами БД являются:
Таблицы.
Запросы.
Формы.
Отчеты.
Страницы.
Макросы и модули.
Таблицы – основной объект БД (данные и структура).
Запросы – нужны для извлечения данных из таблиц.
Например в банке:
Одни имеют доступ к таблице данных о клиентах, другие – к их расчетным счетам, третьи – к таблицам активов банка.
Запрос черпает данные из базовых таблиц и на их основе создает временную таблицу (виртуальную). Самой таблицы физически нет на жестком диске. Это программа.
Формы – это средства для ввода данных, хотя с их помощью можно просматривать данные (удобно вводить данные если вы их вносите с заполненных бланков).
Отчеты – предназначены только для вывода данных на принтер: в них существуют меры для группировки выводимых данных, а так же номера страницы, верхний и нижний колонтитулы, время создания отчета.
Страницы – особый объект, выполненный в коде HTML размещаемый на WEB страницах. Страницы осуществляют интерфейс между клиентом, сервером и базой данных размещенной на сервере. Эти страницы позволяют так же связываться с базами данных Microsoft SQL Server.
Модули и макросы – программы написанные на внешнем языке программирования Visual Basic for Application. Макросы – последовательность внутренних команд СУБД – автоматизация работы с базой.
Перед тем как приступить к созданию БД необходимо разработать схему данных.
Схема данных – это структура базы, а, именно, структура или структуры основных таблиц. Для создания базы данных выполняется следующая работа.
составляется полный список полей.
определяется наиболее подходящие типы данных для каждого поля.
распределяются поля полного списка по базовым таблицам.
в каждой из таблиц намечают ключевое поле или используют дополнительное поле типа счетчик.
схематично, на бумаге расчерчивают связи между таблицами (это схема данных).
Существует несколько типов связей между таблицами.
Наиболее распространенные:
-«один»-ко-«многим».
-«один»-к-«одному».
Связь между двумя таблицами организуется на основе общего поля, оно должно присутствовать в обеих таблицах, причем в одной таблице оно должно быть первичным ключом, т.е. на стороне «один» - первичный ключ, на стороне «многим» - вторичный ключ.
СУБД MS Access 2000 представляет несколько средств создания каждого из основных объектов базы.
ручные (обработка объектов в режиме конструктор).
Автоматизированные (разработка с помощью программ-мастеров).
Автоматические – средства ускоренной разработки простейших объектов.
Для разработки учебных объектов и запросов рекомендуется использовать ручные средства, т.е. режим конструктор.
Создание таблиц.
При создании таблицы в ОКНЕ БД выбирается (с левой стороны) элемент «таблицы». Далее чтобы создать таблицу в ручную, используют элемент управления (в правой части окна) «создание таблицы в режиме конструктора».
Окно «конструктора таблиц» похоже на бланк для создания и редактирования структуры таблицы.
В верху в левом столбце вводят имена полей, далее – тип данных этого поля (его выбирают из предлагаемого списка).
Нижняя часть бланка – список свойств поля, выделенного типа поля в верхней части окна. Свойства поля можно и не трогать.
Далее целесообразно задать ключевое поле (для создания связей между таблицами) (пользуйтесь контекстным меню).
Закончив создание структур таблицы, бланк закрывают (сохраняют), дают таблице имя.
Таблица появляется в окне БД.
Созданную таблицу открывают двойным щелчком мыши. Таблица не имеет записей, только имена полей(заполнение как в Excel).
Если необходимо изменить состав полей или их свойства, нужно открыть таблицу в режиме КОНСТРУКТОРА.
Создание межтабличных связей.
Если БД продумала заранее и связи намечены, то создание реляционных отношений между таблицами осуществляется просто.
Для этого выбираем: «сервис»-«схема данных».
В открывшемся окне при помощи мыши соединяются необходимые поля. При этом одна таблица считается главной другая связанной.
Главная это та таблица, у которой в связи участвует ключевое поле. (название этой таблицы на схеме данных отображается полужирным шрифтом).
Далее необходимо настроить свойства связи. Для этого мышью выделяют в схеме данных нужную связь, открывают контекстное меню связи, а далее выбирают команду «изменить связь». В открывшемся окне устанавливают флажок «обеспечение целостности данных» (тогда удалять в ключевом поле данные нельзя). Если в месте с ним включить флажки: «каскадное обновление связанных полей» и «каскадное удаление связанных записей», то можно, редактируя главную таблицу, автоматически редактировать и связанную таблицу.
Работа с запросами
Для создания запросов обычно пользуются режимом «конструктора». В окне Базы данных есть специальный значок «создание запроса в режиме конструктора». Он открывает специальный бланк, называемый «бланк запроса по образцу». Большинство операций здесь можно производить при помощи перетаскивания полей в нужное место в бланке. На самом деле запросы пишутся на специальном языке программирования SQL.
Бланк запроса состоит из двух областей.
В верхней части бланка отображается структуры таблицы или нескольких таблиц, к которым адресован запрос в нижней части – пустая таблица, будущего запроса куда необходимо будет перенести название полей.
Пример простейшего запроса на выборку.
Достаточно поочередно щелкнуть дважды на нужном поле таблицы БД и в таблице-запросе появится это поле.
Сформировав запрос его закрывают, дают имя и в дальнейшем запускают двойным щелчком на значке в окне БД.
Данные в запросе можно упорядочивать по возрастанию или убыванию(по какому либо полю). Если необходимо по нескольким полям одновременно, то сортировка будет происходить по столбцам слева на право. Т.е. необходимо составлять запрос с учетом будущих действий по сортировки. Если запрос был сформирован раньше и вас не устраивает последовательность полей в запросе, вам необходимо перетащить нужное поле на нужное место.
Вывод полей запроса на экран
По умолчанию все поля запроса выводятся на экран но в бланке запроса можно снять флажок «вывод на экран» и вы не увидите столбец на экране.
Использование условий отбора
В бланке для каждого поля можно задать индивидуальные условия отбора. В строке «условия отбора» вы задаете условие, например, >40, =”A*”, >80 или <150 и получаете только отобранные записи по одному из этих условий. Так же существуют следующие запросы:
Запрос с параметром(сам пользователь задает критерий отбора)
Итоговые запросы(производятся математические вычисления)
Запросы на изменения(автоматизированное заполнение логически связанных таблиц)
Перекрестные запросы(на подобье сводных таблиц)
Специфические запросы SQL
Формы
Формы необходимы для ввода данных в таблицы БД. В Access можно пользоваться готовыми автоформами или самостоятельно разрабатывать дизайн формы с помощью мастера. Автоформы бывают: «в столбец», ленточные, табличные.
Для создания автоформы необходимо открыть панель ФОРМЫ в окне БД и воспользоваться кнопкой «создать». В открывшемся окне выбирают тип автоформы и таблицу (или запрос) на который она основывается. Нажимаете ОК автоформа формируется автоматически и готова к работе.
Отчеты
Служат для форматированного вывода данных на печать.
Так же существуют средства автоматического, автоматизированного и ручного проектирования отчетов.
Автоотчет в столбец
Мастер отчетов
Конструктор