Теория по БД и СУБД (для экзамена)

advertisement
Базы данных и информационные системы.
Банк данных является разновидностью ИС, в которой реализованы
функции централизованного хранения и накопления обрабатываемой
информации, организованной в одной или нескольких баз данных.
Банк данных в общем случае состоит из следующих компонентов: базы
данных, системы управления базы данных, словаря данных, администратора,
вычислительной системы и обслуживающего персонала.
Расшифруем в вкратце:
Базы данных – представляют собой совокупность специальным
образом организованных данных, хранимых в памяти вычислительной
системы и отображающих состояние объектов и их взаимосвязей в
рассматриваемой предметной области.
СУБД – это система программного обеспечения, представляющая
доступ к данным многих пользователей. СУБД обеспечивает правильность,
полноту и непротиворечивость данных, а также простой и понятный
интерфейс.
Свойства СУБД и базы данных.
К основным свойствам СУБД и базы данных можно отнести:
1. Отсутствие дублирования данных в различных объектах модели,
обеспечивающее однократный ввод данных и простоту их корректировки;
2. Непротиворечивость данных;
3. Целостность БД;
4. Возможность многоаспектного доступа;
5. Всевозможные выборки данных и их использование различными задачами
и приложениями;
6. Защита и восстановление данных при аварийных ситуациях, аппаратных и
программных сбоях, ошибках пользователя;
7. Защита данных от несанкционированного доступа средствами
разграничения доступа для различных пользователей;
8. Возможность модификации структуры базы данных без повторной
загрузки данных;
9. Обеспечение независимости программ от данных, позволяющей сохранить
программы при модификации структуры базы данных;
10. Реорганизация размещения данных базы на магнитном носителе для
улучшения объемно-временных характеристик БД;
11. Наличие языка запросов высокого уровня ориентированного на конечного
пользователя, который обеспечивает вывод информации из базы данных по
любому запросу и представление ее в виде соответствующих отчетных форм,
удобных для пользователя.
Технология использования СУБД.
СУБД является основой создания практияеских приложений пользователя
для различных предметных областей.
1.
2.
3.
4.
5.
6.
7.
Критерии выбора СУБД пользователем.
Выбор СУБД для практических приложений пользователем определяется
многими факторами, к которым относятся:
имеющееся техническое и базовое программное обеспечение, их
конфигурация, оперативная и дисковая память;
потребности разработываемых приложений пользователем;
тип поддерживаемой модели данных, специфика предметной области,
топология информационно-логической модели;
требования к производительности при обработке данных;
наличие в СУБД необходимых функциональных средств;
наличие русифицированной версии СУБД;
уровень квалификации пользователей и наличие в СУБД диалоговых
средств разработки и работы с БД.
Модели и типы данных.
Иерархическая модель.
В иерархической модели между данными можно описать с помощью
упорядоченного графа (или дерева).
Сетевая модель.
Сетевая модель данных позволяет отображать разнообразные
взаимосвязи элементов данных в виде произвольного графа, обобщая тем
самым иерархическую модель данных.
Постреляционная модель.
Постреляционная модель данных представляет собой расширенную
реляционную модель, снимающую ограничение неделимости данных,
хранящихся в записях таблиц.
Реляционная модель.
Реляционная модель данных (РМД) предложена сотрудникам фирмы
IBM Эдгаром Коддом и основывается на понятии отношение (relation).
Отношение представляет собой множество элементов, называемых
кортежами.
Наглядной формой представления отношения является привычная для
человеческого восприятия двумерная таблица.
Таблица имеет строки (записи) и столбцы (колонки). Каждая строка
таблицы имеет одинаковую структуру и состоит из полей.
Достоинство реляционной модели данных заключается в простоте,
понятности и удобстве физической реализации на ЭВМ. Простота и
понятность для пользователя.
Основными недостатками реляционной модели являются следующее:
отсутствие стандартных средств идентификации отдельных
записей
сложности описания иерархических и сетевых связей
Определение реляционной модели.
Реляционная модель данных (РДМ) некоторой предметной области
представляет собой набор отношений, изменяющихся во времени.
Элементы реляционной модели.
Элементы РМ
Формы представления
1. Отношение
Таблица
2. Схема отношения
Строка заголовков столбцов
таблицы (заголовок таблицы)
3. Кортеж
Строка таблицы
4. Сущность
Описание свойств объекта
5. Атрибут
Заголовок столбца таблицы
6. Домен
Множество допустимых
значений атрибута
7. Значение атрибута
Значение поля в записи
8. Первичный ключ
Один или несколько атрибутов
9. Типы данных
Тип значений элементов
таблицы
Рис. 6 Пример представления отношения Сотрудник
Отношение Сотрудник
Атрибут Отдел
Строка отношения
(таблица)
(заголовок столбца) (строка заголовков)
ФИ
Отд
Должно
Дата
О
ел
сть
рождения
Ива
002
Начальн
27.09.51
нов
ик
Пет
001
Замести
15.04.55
ров
тель
Сид
002
Инжене
13.01.70
оров
р
Кортеж
(строка)
Значение атрибута (значение поля в записи)
Первичным ключом (ключом отношения, ключевым атрибутом)
называется атрибут отношения, однозначно идентифицирующий каждый из
его картежей.
(в отношении Сотрудник ключевым является атрибут «ФИО»)
Ключ может быть составным (сложным), т.е. состоять из нескольких
атрибутов.
Ключи Обычно используют для достижения следующих целей:
1)
исключение дублирования записей в ключевых атрибутах
2)
упорядочение картежей (по возрастанию или убыванию)
3)
ускорение работ к кортежам отношения
4)
организации связывания таблиц
Понятие внешнего ключа.
С помощью внешних ключей устанавливающее связи между
отношениями. Например, имеются два отношения Студент (ФИО, Группа,
Специальность) и Предмет (Название, Пр., Часы), которые связаны
отношением Студент – Предмет (ФИО, Назв. Пр., Оценка). В связующем
отношении атрибута ФИО и Назв. Пр. образуют составной ключ. Эти
атрибуты представляют собой внешние ключи, являющиеся первичными
ключами других отношений.
Проектирование структуры БД.
Индексирование.
Определение ключа для таблицы означает автоматическую сортировку
записей, контроль отсутствия повторений значений в ключевых полях
записей и повышения скорости выполнения операций поиска в таблице. Для
реализации этих функций в СУБД применяют индексирование.
Под индексом понимают средство ускорения операции поиска записей
в таблице.
Основные виды связи таблиц.
При связывании двух таблиц выделяют основную и дополнительную
(подчиненную) таблицы.
Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы состоит из
одного или нескольких полей, которые в данном случае называют полями
связи.
Основные виды связи:
- один – один (1:1)
- один – много (1:М)
- много – один (М:1)
- много – много (М:М)
Контроль целостности связей.
Контроль целостности связей обычно означает анализ содержимого
двух таблиц на соблюдение следующих правил:
- каждой записи основной таблицы соответствует нуль или более
записей дополнительной таблицы;
- в дополнительной таблице нет записей, которые не имеют
родительских записей в основной таблице;
- каждая запись дополнительной таблицы имеет только одну
родительскую запись в основной таблице
Основные операции над данными двух таблиц:
- ввод новых записей
- модификация записей
- удаление записей
Этапы проектирования и создания БД.
Информационный объект – это информационное описание некоторой
сущности реального объекта, процесса или события.
Нормализация базы данных.
Процесс уменьшения избыточности информации в БД называется
нормализацией.
Реквизиты каждого информационного объекта должны отвечать
следующим требованиям нормализации:
1. Информационные объекты должны содержать уникальный идентификатор
(ключ).
2. Ключ является простым, если он состоит из одного реквизита и
составным, если из нескольких.
3. Все описанные реквизиты должны быть взаимонезависимы.
4. Все реквизиты, входящие в составной ключ должны быть
взаимонезависимы.
5. Каждый описательный реквизит должен функционально полно зависеть
от ключа, т.е. каждому значению ключа соответствует только одно
значение описательного реквизита.
6. При составном ключе описательные реквизиты должны целиком завесить
от всей совокупности реквизитов, образующих ключ.
Теория нормализации оперирует с пятью нормальными формами таблиц.
Эти формы предназначены для уменьшения избыточной информации от 1-ой
до 5-ой нормальной формы. Поэтому каждая последующая форма должна
удовлетворять
требованиям
предыдущей
формы
и
некоторым
дополнительным условиям.
Графический способ представления
Информационно-логичекая модель
«Учет заказа покупателей».
Уровень 0
Категория
Предприятие
Код категории
Код предприятия
Товар
Покупатель
Код товара
Код покупателя
Заказ
Код покупателя
+
код товара
+
дата заказа
Рис. 8 Информационно-логическая модель данных.
Уровень 1
Уровень 2
Логическая структура реляционной базы данных.
«Учет заказа покупателей».
Товар
Категория
Код категории
Название категории
Код товара_________
Код категории
Наименование товара
Цена
Предприятие
Покупатель
Код предприятия
Наименование
Руководитель
Код покупателя
Фамилия
Телефон
Индекс
Область
Город
Адрес
Код предприятия
Кредит
Примечание
Скидка
Заказ
Код товара
Код покупателя
Дата заказа
Код категории
Кол-во закупленного
Дата продажи
Цена со скидкой
Кол-во проданного
СУБД FOXPRO.
Типы файлов.
В Fox PRO можно создавать и обрабатывать несколько типов дисковых
файлов. Каждому файлу дается имя. Расширение определяет тип файла. Для
всех файлов Fox PRO установлены стандартные расширения. Основные
типы:
имя. DBC – файл базы данных
имя. DBF – файл таблицы базы данных
имя. FPT – файл примечаний, хранящей мемо-поля базы данных
имя. IDX – индексный файл
имя. CDX – мультииндексный файл
имя. PRG - командный, программный файл
имя. MEM – файл для сохранения временных переменных
имя. FXP – откомпилированный командный файс PRG
имя. APP – объединенный откомпилированный командный файл
Команды установки работы FoxPRO.
1. Set status on – для установке на экране статус – строки (по умолчанию
off), полезная информация для пользователя:
имя открытой базы
номер текущей записи
активный диск
2. Set talk on/off – (по умолчанию off) – когда выполенние многих команд
отображается на экране.
3. Set date German – (ДД.ММ.ГГ) – установка формата даты.
4. Set bell on/off – включение, отключение звукового сигнала
5. Sset confirm on/off – включение, отключение автоматического перехода
курсора на следующее поле.
6. Set default to [<список путей>] – задает список путей не
обнаруженных в данной директории.
Выяснить имя текущей директории можно с помощью функции:
SYS (2003) – текущая директория (полный путь)
SYS (2004) – полный
SYS (2006)Создание таблиц.
Создание файла БД.
Создание файла БД включает два этапа: создание структуры файла и
заполнение данными.
Структура файла БД типа DBF создается команда
- CREATE имя файла CREATE COSTOMER
Расширение имени файла DBF указывать необязательно, т.к. оно
добавляется автоматически.
Если файл создается не на активном в данный момент диске или
директории, то нужно указать полный путь.
Изменить структуру созданной базы данных можно командой:
- Modify Structure
Модифицированный файл должен быть предварительно открыт
- Use имя файла открытие файла БД
Use без параметров закрывает базу данных
- Close Database
Закрывает все файлы БД и индекс файлов
- Close all
Закрытие вообще всех файлов
Добавление файла новыми записями осуществляется командой
- append (blank)
Необязательная фраза blank означает, что новая запись остается пустой и
не будет отражена на экране.
После ввода текущей записи автоматически происходит доступ к
следующей записи.
Для того, чтобы войти в мемо-поле, необходимо на него поместить курсор
и нажать Ctrl – Home или дважды кнопку мыши. Выход из мемо – поля
сохранением – клавиши Ctrl – W или Ctrl - End, без сохранения – Escape
(будет вопрос – предупреждение).
Выход из окна Append осуществляется так же Ctrl – W или Ctrl – End.
Листание по записям осуществляется Pq Up/Pq Dn/
Допускается также пометка записей к удалению нажатием Ctrl – Т.
Окно редактирования.
Команды APPEND, INSERT, EDIT, CHANGE, BROWSE.
Перед использованием команды редактирования необходимо наличие
открытой БД.
Стандартное окно редактирования имеет две формы. Для первых четырех
команд оно будет выглядеть одинаково, – все поля БД располагаются
вертикально. Назовем форму такого окна CHANGE – окном.
Другую форму предъявления данных осуществляет команда BROWSE
(Browse – окно).
Здесь поля каждой записи располагаются горизонтально – колонками.
Добавление новой записи осуществляется нажатием клавиш Ctrl – N
(кроме команды APPEND).
Можно установить режим копирования в новую запись всех (ON) полей из
текущей (не обязательно последней) записи командой.
- SETCARRY ON/OFF
По умолчанию OFF. Можно установить и выборочное копирование только
указанных (полей) командой
- SET CARRY TO [<поля>].
Работа с индексами.
Стандартные (.idx) и составные (.cdx) (мультииндексный) компактные
(.idx).
Компактные одиночные индексы могут быть включены в составной индекс
в виде индексных входов или тэгов (TAG). Для создания компактного
одиночного индекса в команде INDEX ON или REINDEX (при
переиндексации) COMPACT.
Использование составных индексов более эффективно по следующим
причинам:
- файловая система открывает только один файл
- модификация составного индекса происходит быстрее, чем множества
отдельных индексов.
Все тэги составного индекса являются активными и модифицируются при
каждом изменении ключевого выражения.
Для работы с функциями и командами поиска после открытия составных
индексных файлов необходимо установить главный тэг при помощи команды
SET OR DER TO.
Один файл БД может быть проиндексирован по нескольким полям, и иметь
любое число индексов.
Индексные файлы занимают некоторое место на диске, но гораздо меньше,
чем при сортировке.
В FOX PRO можно создать 2 типа индексных файлов.
1. Обычный индекс функции с расширением .IDX (одно-индексный файл).
2. Мультииндексный файл с расширением .CDX
Такой файл может хранить сразу несколько простых индексных файлов.
Каждый отдельный индекс называется ТЭГ. Каждый ТЭГ имеет свое имя.
Мультииндексные файлы могут быть 2-х видов:
а) структурный мультииндексный файл с именем как БД
б) обычный мультииндексный файл с произвольным именем
Использование его предпочтительно, т.к. уменьшает число одновременно
открытых файлов, а так же ускоряет доступ к файлам.
ПРИМЕР
1. Создать компактный одно-индексный файл по ключу NZ.
USE STUD
INDEX ON NZ TO STUD NZ. IDX COMPACT
Открыть простой индексный файл
USE STUD INDEX TO. STUD NZ (первоначально открыть базу)
REINDEX – переиндексация открытого индекса.
2. Создать мультииндексный файл с ключами
а) NZ;
б) NZ и GR
в) INDEX ON NZ TAG NZ OF STUD. CDX
г) INDEX ON STR (NZ) + STR (GR) TAG NZ CR OF STUD. CDX
У мультимедийных файлов STUD. CDX 2 индекса с именем
TAG – NZ
TAG – NZ GR
(во втором случае индексные поля проводятся в системе формат функции
STR(I)).
Удаление данных.
В FOX PRO имеются несколько команд удаления данных
 ERASE <файл> - удаление любого не открытого в данных момент файла.
Расширение имени обязательно. DELETE FILE [<файл>] – аналогичная.
 ZAP – удаление всех записей в активном файле БД с сохранением его
структуры.
 DELETE [<границы>] [WHILE<условие>] [FOR<условие>] – пометка к
удалению записей в указанных границах и/или отвечающих указанным
условиям.
DELETE без параметров помечаем только одну текущую запись (в окне
редактирования Ctrl – T).
 PACK [MEMO] [DBF] – физическое удаление помеченных ранее записей
и сжатие файла. После выполнения команды указатель записей
устанавливается в начало базы. Если имеются открытые индексы, они
перестраиваются. По умолчанию упаковываются DBF и FPT.
 RECALL [<границы>] [WHILE<условие>] [FOR<условие>] – снятие
пометок к удалению. RECALL без параметров действует только на
текущую запись.
Перемещение в базу данных.
При работе с базой данных необходимы средства перемещения внутри ее.
Запись, на которой находится указатель записи, является текущей и только к
ней в данный момент возможен непосредственный доступ.
Имеется несколько разновидностей команд, изменяющих положение
указателя записей.
 Go top [ in <область>] – переход к самой первой записи файла;
 Go botton [ in <область>] – переход к самой последней записи файла;
 Go <выр.> [ in <область>] – переход к записи c указанным в <выр.>
номером;
 SKIP <выр.> [ in <область>] – переход к записи, отстоящей от текущей на
указанное в <выр.> число записей
(может быть и отрицательным!)
(переход указателя назад)
SKIP без параметров – переход на следующую запись (SKIP 1)
in <область> - указывает над базой из какой области должна выполниться
команда
Функции.
Для контроля положения указателя и наличия записей в файле
предусмотрены функции:
 RECNO ([<область>]) - указывает номер текущей записи;
 RECCOUNT ([<область>]) – выдает общее число записей в файле базы
данных, включая записи, помеченные к удалению;
 EOF ([<область>]) – функция конца файла. Она истинна (.Т.), если конец
достигнут, и ложна (.F.) в противном случае;
 BOF ([<область>]) – то же, но для начала файла.
Функции в FOX PRO имеют характерный синтаксис – скобки, даже
если никакого аргумента нет.
Пример: USE STUD (всего 10 записей)
GO 5  переход к 5 записи
? RECNO ( )  текущая запись 5
? RECCOUNT ( )  количество записей в базе данных = 10
SKIP  переход к 6 записи
SKIP – 3  переход к 3 записи
DELETE NEXT 3  пометка к удалению 3, 4, 5 записей
RECALL RECORD 5  снятие пометки с записи 5
PACK  сжатие файла с возвратом в начало базы
? RECNO ( )  покажет 1 запись
? RECCOUNT ( )  осталось 8 записей
Изменение данных.
В Fox PRO имеется возможность не только вручную редактировать данные,
но и изменять их путем присвоения или вычислений.
 REPLACE [<границы>] [WHILE<условие>] [FOR<условие>]
<поле 1> WITH <выражение>
[<поле 2> WITH <выражение>,…]
[ADDITIVE]
[NOOPTIMIZE]
Эта команда осуществляет множественное изменение полей БД, в том
числе и вычисляемые выражения.
ADDITIVE – только для мемо-полей и <выражение> будет записываться в
конец поля. Если этот параметр опущен, то старое значение будет замещено
<выражением>.
Если не указаны границы, то присвоение будет относиться к текущей
записи.
ПРИМЕР 1.
Обнулить в БД STUD значение поля NZ USE STUD
REPLACE all NZ WITH O
Нач. тав = 0
ПРИМЕР 2
USE Kadr
REPLACE ZP WITH ZP·1.2 FOR ZP < 10000
REPLACE ZP WITH ZP+6000 FOR tab = 90
(Увеличивается з.п. на 20%, у кого з.п. < 10000
после з.п. замещается на з.п.+6000 таб. ном. =90
REPLACE ZP WITH IIF (tab = 90, ZP·1.2+6000, ZP·1.2)
FOR ZP < 10000
Очистку полей БД выполняет команда
 BLANK [<граница>] [Fields<поля>]
[WHILE<условие>] [FOR<условие>] [NOOPTIMIZE]
Если отсутствует <граница> или <условие>, очищена будет только текущая
запись, BLANK без параметров Fields очищает все поля базы.
Создание командных файлов.
 Modify Command <имя файла> - вызывает встроенный текстовый
редактор Fox Pro с помощью которого пишутся программные файлы.
 DО <имя командного файла> - запускает выполнение программы
(расширение PRG указывать необязательно).
- Исполнение программы прерывается клавишей Esc.
 SET ESCAPE ON/OFF (по умолчанию ON)
В готовой программе эта возможность должна быть подавлена параметром
OFF.
 !/Run <программа> - команда выполнения внешних по отношению к Fox
Pro программ.
ПРИМЕР: Для установки текущей системной даты из прикладной
программы:
D = 03.11.01
! DATE & d
?DATE ( )
03.11.01
Работа с переменными.
 STORE <выражение> TO <имя переменных>
ПРИМЕР:
a = с*(2+3) и STORE с*(2+3) TO a
STORE o TO f, d, c, r
Команда создает переменные и присваивает им значения.
Функции СУБД.
- Математические функции
 Max (<выр>, <выр 1>, [<выр 2>…]) – возвращает максимальное значение
из списка аргументов, которые должны быть все одного типа
(символьные, числовые или дата)
? MAX (3, 1, -8)
&&3
? MAX ({04.06.65}{23.10.70}{15.12.91}) && 15.12.91
 MIN (<выр>, <выр 1>, [<выр 2>…]) – возвращает минимальное значение
из списка аргументов.
 ROUND (<выр 1>, <выр 2>) – округление <выр 1> до заданного в <выр 2>
количества знаков после запятой.
? ROUND (-342.268, 1) && -342.3
- Строковые функции.
 LEN (<выр C>) – число символов в <выр C>. Длина нулевой строки (‘’) –
0
? LEN (‘база’)
&& -342.3
- Функции выделения
 LEET (<выр N>, <выр C>) – выделение из строки <выр C> указанного в
<выр N> - числа символов слева. Если (<выр N>) длинее строки,
возвращается вся строка
? LEET (4 ‘база данных’)
&& база
 RIGHT (<выр N>, <выр C>) – выделение из <выр C> справа <выр N>
символов
? RIGHT (6 ‘база данных’) && данных
 SUBSTR (<выр С>, <начальная позиция>, [<число символов>]) –
выделение из <выр С> подстроки, начиная с <начальная позиция> длиной
в <число символов>.
? SUBSTR (‘база данных’, 6, 8)
&& исходных
- Функции преобразования
 LTRIM (<выр С>) – удаление ведущих пробелов в <выр С>.
 TRIM/RTRIM (<выр С>) – удаление завершающих пробелов в <выр С>.
 ALLTRIM (<выр С>) – удаление всех: и ведущих и завершающих
пробелов в строке
 REPLICATE (<выр С>, <выр N>) - (<выр С>) повторяется
 (<выр С>) раз
? REPLICATE (‘+ -‘, 5)
&& + - +- +- + SPACE (<выр N>) – формулирование строки пробелов длиной <выр N>.
- Функции конвертирования и распознавания букв.
 LOWER (<выр С>) – преобразовать все прописные буквы
<выр С> в строчные.
 PROPER (<выр С>) – преобразует в <выр С> первую букву каждого слова
в прописную, а остальные в строчные (ввод Фамилии, Имени, Отчества).
 UPPER (<выр С>) – преобразует все строчные буквы <выр С> в
прописные.
? UPPER (‘Саша’)
&& САША
? PROPER (‘саша петров’)
&& Саша Петров.
- Функции работы с датами.
 CDOW (<выр D>) – возвращает имя дня недели по-английски
Set date German
? CDOW ({05.10.91})
&& Saturday
 CMONTN (<выр D>) – предъявляет название месяца по-английски
 CTOD(<выр C>) – преобразует дату из символьной формы в формат даты
(типа D)
 DATE ( ) – предъявляет системную дату
 DAY (<выр D>) – число месяца по выр. типа дата <выр D>
? DAY ({05.10.91})
&& 5
 DOW (<выр D>) – определяет номер дня недели
 DTOC (<выр D>[, 1]) – преобразует выражение типа дата в символьное
выражение
? DTOC ({05.10.91})
&& 05.10.91
? DTOC ({05.10.91}, 1)
&& 1991 1005
 MONTH (<выр D>) – определяет числовое значение номера месяца
 YEAR(<выр D>) – определяет числовое значение года
- Функции преобразования типов данных.
 CNR (<выр N>) – преобразует значение <выр N> (где N целое число от 1
до 255) в символьное
? CNR (66)
&& B
 STR (<выр N>, [<длина>], [<десятичные знаки>]) – преобразует числовое
выражение в символьную строку
? STR (384.248, 8, 2)
&& 384.25
 VAL (<выр C>) – преобразует число, представленное в символьной форме
(<выр С>), в числовую форму.
- Функции проверки файлов и дисков.
 BOF ([<область>]) – достигнуто (.Т) или нет (.F.) начало файла базы
данных
 DISCSPACE ( ) – число свободных байт на активном диске
 DELETED ([<область>]) – вырабатывает .Т., если текущая запись
намечена на удаление и .F. в противном случае
 EOF ( ) – достигнут .Т. или .F. нет конец файла
Download