Конспект лекций по дисциплине «Управление данными» Шахты 2010
Вид материала | Конспект |
- Конспект лекций 2010 г. Батычко Вл. Т. Муниципальное право. Конспект лекций. 2010, 2365.6kb.
- Конспект лекций 2010 г. Батычко В. Т. Уголовное право. Общая часть. Конспект лекций., 3144.81kb.
- Конспект лекций для студентов специальности 080504 Государственное и муниципальное, 962.37kb.
- Конспект лекций для студентов ссузов Кемерово 2010, 1664.44kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
- Конспект лекций для студентов специальности 080110 «Экономика и бухгалтерский учет, 1420.65kb.
- Конспект лекций по курсу «управление качеством», 1487.57kb.
- Конспект лекций по курсу «управление качеством», 1507.97kb.
- Конспект лекций по дисциплине «Стратегическое управление», 960.8kb.
- В. Ф. Панин Конспект лекций по учебной дисциплине "Теоретические основы защиты окружающей, 1559.17kb.
Классификация СУБД и БД
Основным классификационным признаком следует считать используемую архитектуру. В соответствии с этим признаком различают «настольные» («файл-серверные») и «серверные» («SQL-сервеные», «клиент-серверные») СУБД.
Характеристики настольных СУБД.
Характеристики серверных СУБД.
Соответственно БД классифицируются на «настольные» и «серверные». По виду обрабатываемых данных БД разделяются на фактографические и документальные. Серверные БД делятся на OLTP-БД и OLAP-БД. Последние подразумевают создание и поддержку специальных БД – «хранилищ данных» (DW, DataWareHouse).
В качестве основных классификационных признаков СУБД так же можно использовать следующие: вид программы, характер использования, модель данных. Названные признаки существенно влияют на целевой выбор СУБД и эффективность использования разрабатываемой информационной системы.
В общем случае под СУБД можно понимать любой программный продукт, поддерживающий процессы создания, ведения и использования БД. Рассмотрим, какие из имеющихся на рынке программ имеют отношение к БД, и в какой мере они связаны с базами данных.
К СУБД относятся следующие основные виды программ:
полнофункциональные СУБД;
серверы БД;
клиенты БД;
средства разработки программ работы с БД.
Полнофункциональные СУБД (ПФСУБД) представляют собой традиционные СУБД, которые сначала появились для больших машин, затем для мини-машин и для ПЭВМ. Из числа всех СУБД современные ПФСУБД являются наиболее многочисленными и мощными по своим возможностям. К ПФСУБД относятся, например, такие пакеты как: Clarion Database Developer, DataBase, Dataplex, dBase IV, Microsoft Access, Microsoft FoxPro и Paradox R: BASE.
Обычно ПФСУБД имеют развитый интерфейс, позволяющий с помощью команд меню выполнять основные действия с БД: создавать и модифицировать структуры таблиц, вводить данные, формировать запросы, разрабатывать отчеты, выводить их на печать и т. п. Для создания запросов и отчетов не обязательно программирование, а удобно пользоваться языком QBE (Query By Example - формулировки запросов по образцу, см. подраздел 3.8). Многие ПФСУБД включают средства программирования для профессиональных разработчиков.
Некоторые системы имеют в качестве вспомогательных и дополнительные средства проектирования схем БД или CASE-подсистемы. Для обеспечения доступа к другим БД или к данным SQL-серверов полнофункциональные СУБД имеют факультативные модули.
Серверы БД предназначены для организации центров обработки данных в сетях ЭВМ. Эта группа БД в настоящее время менее многочисленна, но их количество постепенно растет. Серверы БД реализуют функции управления базами данных, запрашиваемые другими (клиентскими) программами обычно с помощью операторов SQL.
Примерами серверов БД являются следующие программы: NetWare SQL (Novell), MS SQL Server (Microsoft), InterBase (Borland), SQLBase Server (Gupta), Intelligent Database (Ingress).
В роли клиентских программ для серверов БД в общем случае могут использоваться различные программы: ПФСУБД, электронные таблицы, текстовые процессоры, программы электронной почты и т. д. При этом элементы пары "клиент - сервер" могут принадлежать одному или разным производителям программного обеспечения.
В случае, когда клиентская и серверная части выполнены одной фирмой, естественно ожидать, что распределение функций между ними выполнено рационально. В остальных случаях обычно преследуется цель обеспечения доступа к данным "любой ценой". Примером такого соединения является случай, когда одна из полнофункциональных СУБД играет роль сервера, а вторая СУБД (другого производителя) - роль клиента. Так, для сервера БД SQL Server (Microsoft) в роли клиентских (фронтальных) программ могут выступать многие СУБД, такие как: dBASE IV, Biyth Software, Paradox, DataEase, Focus, 1-2-3, MDBS III, Revelation и другие.
Средства разработки программ работы с БД могут использоваться для создания разновидностей следующих программ:
клиентских программ;
серверов БД и их отдельных компонентов;
пользовательских приложений.
Программы первого и второго вида довольно малочисленны, так как предназначены, главным образом, для системных программистов. Пакетов третьего вида гораздо больше, но меньше, чем полнофункциональных СУБД.
К средствам разработки пользовательских приложений относятся системы программирования, например Clipper, разнообразные библиотеки программ для различных языков программирования, а также пакеты автоматизации разработок (в том числе систем типа клиент-сервер). В числе наиболее распространенных можно назвать следующие инструментальные системы: Delphi и Power Builder (Borland), Visual Basic (Microsoft), SILVERRUN (Computer Advisers Inc.), S-Designor (SDP и Powersoft) и ERwin (LogicWorks).
Кроме перечисленных средств, для управления данными и организации обслуживания БД используются различные дополнительные средства, к примеру, мониторы транзакций (см. подраздел 4.2).
По характеру использования СУБД делят на персональные и многопользовательские.
Персональные СУ БД обычно обеспечивают возможность создания персональных БД и недорогих приложений, работающих с ними. Персональные СУБД или разработанные с их помощью приложения зачастую могут выступать в роли клиентской части многопользовательской СУБД. К персональным СУБД, например, относятся Visual FoxPro, Paradox, Clipper, dBase, Access и др.
Многопользовательские СУБД включают в себя сервер БД и клиентскую часть и, как правило, могут работать в неоднородной вычислительной среде (с разными типами ЭВМ и операционными системами). К многопользовательским СУБД относятся, например, СУБД Oracle и Informix.
По используемой модели данных СУБД (как и БД), разделяют на иерархические, сетевые, реляционные, объектно-ориентированные и другие типы. Некоторые СУБД могут одновременно поддерживать несколько моделей данных.
С точки зрения пользователя, СУБД реализует функции хранения, изменения (пополнения, редактирования и удаления) и обработки информации, а также разработки и получения различных выходных документов.
Для работы с хранящейся в базе данных информацией СУБД предоставляет программам и пользователям следующие два типа языков:
язык описания данных - высокоуровневый непроцедурный язык декларативного типа, предназначенный для описания логической структуры данных;
язык манипулирования данными - совокупность конструкций, обеспечивающих выполнение основных операций по работе с данными: ввод, модификацию и выборку данных по запросам.
Названные языки в различных СУБД могут иметь отличия. Наибольшее распространение получили два стандартизованных языка: QBE (Query By Example) - язык запросов по образцу и SQL (Structured Query Language) - структурированный язык запросов. QBE в основном обладает свойствами языка манипулирования данными, SQL сочетает в себе свойства языков обоих типов - описания и манипулирования данными.
4. ХАРАКТЕРИСТИКИ СУБД ACCESS
MS Access относится к настольным СУБД, входит в состав пакета MS Office и, как и многие другие СУБД, выполняет следующие функции:
- Организация данных – создание таблиц данных и управление ими с целью модификации, добавления и удаления данных;
- Связывание таблиц для обеспечения ссылочной целостности;
- Анализ данных с помощью запросов;
- Создание форм для добавления, удаления и поиска данных в таблицах;
- Управление выдачей информации на печать – создание отчетов;
- Защита всей БД паролем ее создателя;
- Предоставление средств создания программных кодов на языке Visual Basic for Application (VBA) – макросов и модулей.
Реализуются все эти функции для каждой БД в одном файле с расширением .mdb. При распространении готовых приложений, модули для защиты от доступа и\или соблюдения авторских прав выносятся в отдельный файл с расширением .mde. В этом случае БД Access состоит из двух файлов.
MS Access имеет три режима работы:
- Режим запуска – режим работы без открытой базы данных, в котором производятся операции сжатия и шифровки БД.
- Режим конструктора – создание таблиц, запросов, форм, отчетов.
- Режим выполнения – работа с таблицами, формами и т.д.
К объектам Access относятся: таблицы базы данных, запросы, а также объекты приложений – формы, отчеты, страницы доступа к данным, макросы и модули, которые представлены в окне БД Access. Все операции по работе с объектами БД и приложений начинаются в этом окне.
В Access таблицы создаются с помощью Мастера или Конструктора таблиц. Воспользовавшись любым из этих способов, создадим таблицы нашей БД, соответствующие их описаниям в текстовой форме (см. табл. 1). Для назначения ключевого поля при работе в Конструкторе таблиц следует установить курсор в нужное поле и выбрать пункт Ключевое поле из пункта главного меню Правка, или контекстного меню правой кнопки мыши, или нажать соответствующую кнопку на панели инструментов. Ключевое поле помечается символом ключа.
В СУБД Access поля таблиц задаются следующими атрибутами:
Имя – имя поля длинной до 64 символов (первый символ – не пробел, остальные не . ! ‘ [ ] );
Тип – один из предопределенных типов данных:
текстовый – строка длиной до 255 символов;
числовой – число определенного подтипа: байт – число размером 1 байт без дробной части и знака; целое – число без дробной части размером 2 байта (от –32768 до 32767); длинное целое – 4-байтовое число от –2147483648 до 2147483647; с плавающей точкой одинарное – 4 байта, до 7 знаков после запятой, от –3,402823Е38 до 3,402823Е38, двойное – 8 байт, до 15 знаков после запятой, диапазон 1,0 Е320;
денежный – 4 байта, 4 знака после запятой, диапазон 9,2233 Е14;
логический – поля принимающие одно из значений Да\Нет, Истина\Ложь, Вкл\Выкл;
счетчик – автоматически генерируемые последовательным или случайным образом номера для каждой новой звписи (такое поле не редактируется пользователем);
дата\время – поля для хранения дат и времени в выбранном формате;
OLE-объекты – для хранения рисунков, звуковых и других данных;
MEMO – поля для хранения текстовых данных длинной до 64Кб;
Гиперсвязь – поля, содержащие адреса Web-страниц, которые сами могут быть Web-страницами Internet;
Размер – размер данных для полей типа Текст и Число;
Число десятичных знаков – количество знаков после запятой для полей типа Число, Текстовый (от 1 до 255 байтов), Счетчик (длинное целое - 4 байта и код репликации - 128 байт);
Формат – вид вывода значений поля;
Маска ввода – строка символов, задающих форму для вводимых данных;
Подпись – заголовок поля в таблице или подпись в форме;
Значение по умолчанию – значение, присваиваемое полю в новых записях;
Условие на значение – логическое выражение для проверки введенного значения;
Сообщение об ошибке – сообщение, появляющееся при возвращении выражением, стоящим в Условии на значение значения Ложь;
Обязательное поле – является ли данное поле обязательным для заполнения или нет (если Да, то пользователь не выведет курсор из этого поля пока не введет какое-либо значение);
Индексированное поле – является ли данное поле индексируемым или нет, причем значение Да имеет в свою очередь следующие варианты: Совпадения допускаются и Совпадения не допускаются (в последнем случае СУБД не допустит ввод в данное поле значения ранее уже введенного).
Поле, однозначно идентифицирующее каждую запись, нужно сделать Ключевым, что будет соответствовать построению уникального (с проверкой на отсутствие повторяющихся значений) индекса по этому полю.
Связи между таблицами проще всего устанавливаются в Схеме данных. Для этого нужно перетащить ключевые поля с ведущих таблиц на соответствующие поля дочерних таблиц. СУБД откроет окно, в котором будет указан автоматически определенный вид связи. Если связь установлена правильно, то в этом же окне следует включить переключатели обеспечения ссылочной целостности, каскадного удаления и каскадного обновления данных. В противном случае следует отменить установление связи, проверить, одинаковы ли типы полей, между которыми устанавливается связь, в обеих таблицах правильно ли проиндексированы поля и после этого повторить попытку.
При попытке выйти из поля после ввода данных Access проверяет, являются ли введенные данные допустимыми для этого поля. Если значение не является допустимым, появляется предупреждающее сообщение. Для того чтобы выйти из поля, следует ввести правильное значение или отменить внесенные изменения.
Значение поля может оказаться недопустимым по следующим причинам:
- Значение несовместимо с типом данных поля (например, нельзя хранить текстовое значение в числовом поле).
- Данные нарушают условие на значение, заданное в свойстве Условие на значение этого поля.
- Поле, имеющее атрибут Обязательное, оставлено пустым.
- Обновление поля было отменено в макросе, связанном с событием До обновления, так как оно противоречит проверяемому условию.
Данные проверяются также при выходе из записи. Перед сохранением записи Access проверяет все условия, заданные в свойстве Условие на значение записи. Кроме того, если таблица, в которую вносятся изменения, имеет ключ или уникальный индекс, то проверяется, что изменяемая запись не содержит в этом поле или полях значений, совпадающих со значениями в других записях таблицы.
Применение подстановки для редактирования записей. Для каждого поля таблицы, кроме полей типа счетчика, на вкладке Подстановка конструктора таблиц можно задать элемент управления, который будет связан с этим полем для ввода и редактирования значений в режиме таблицы или формы. По умолчанию применяется элемент управления Поле (не путать поле таблицы как ее атрибут и поле ввода/редактирования значений как элемент управления!). Однако в ряде случаев для некоторых полей таблицы удобнее в качестве элемента управления назначить Поле со списком, позволяющего как вручную вводить значения, так и выбирать их из выпадающего меню, сформированного из значений другого поля этой или другой таблицы или запроса.
Элемент управления Поле со списком позволяет выводить в нескольких столбцах выпадающего меню связанные значения из различных полей таблиц или запросов. Исходя из вышеизложенного, зададим атрибуты элементов управления для полей КодПреподавателя таблицы Дисциплина и КодСтудента таблицы Пропуски в соответствии с таблицей. Здесь Источник строк и Присоединенный столбец – имя таблицы и номер столбца (номер поля по порядку), откуда берутся допустимые значения; Число столбцов – количество отображаемых в выпадающем меню столбцов, соответствующих значениям в полях таблицы-источника; Ширина столбцов и списка – ширина (в см) каждого столбца и всего списка; Ограничиться спискам – разрешение на ввод данных, отсутствующих среди значений присоединенного столбца таблицы-источника.
Таблица 2
Имя поля | Элемент управления | Источник строк | Присоединенный столбец | Число столбцов | Ширина столбцов | Ширина списка | Ограничиться списком |
Таблица Дисциплина | |||||||
КодПреподавателя | Поле со списком | Преподаватели | 1 | 4 | 2;2;2;2 | 8 | Да |
Таблица Пропуски | |||||||
КодСтудента | Поле со списком | Студенты | 1 | 4 | 1;2;2;2 | 7 | Да |
Для построения нового запроса необходимо выбрать объект Запросы в окне БД нажать кнопку Создать. В Access существует несколько типов запросов, каждый из которых можно сформировать несколькими способами. Это будет видно в открывшемся окне выбора типа и средства создания запроса. Запрос на выборку и объединение полей из разных таблиц легко создается в Конструкторе запросов. Сначала необходимо указать все таблицы и\или ранее созданные запросы, участвующие в новом запросе. Это делается аналогично добавлению таблиц в схему данных. Добавленные таблицы отображаются в окне таблиц конструктора. Причем, между таблицами отображаются постоянные связи (установленные в схеме данных).
Далее, нужные поля таблиц поочередно "перетаскиваются" в строку Поле нижней части конструктора, в которой в табличном виде отображены параметры запроса. Для каждого выбранного поля можно указать следующие параметры: Имя таблицы (заполняется автоматически при выполненном нами перетаскивании поля или выбором из выпадающего меню при ручном вводе параметра Поле); Групповая операция – вычисление выражения по данному полю (нахождение суммы значений в данном поле - Sum, подсчет количества записей - Count и т.д.); Сортировка – будут или нет записи, попавшие в результат запроса, отсортированы по данному полю, а если будут, то как (возрастание, убывание); Вывод на экран – отображается или нет данное поле в результате запроса; Условие отбора – установление при необходимости критерия выбора записей в результат запроса по данному полю; Или – продолжение установки критерия при присутствии в последнем логического оператора ИЛИ. Кстати, если среди параметров отсутствуют Имя таблицы или Групповая операция, то их при необходимости можно включить, используя контекстное меню или пункт Вид главного меню.
5. РЕЛЯЦИОННАЯ АЛГЕБРА
Теоретическую основу современных языков манипулирования данными в реляционных БД составляют реляционная алгебра и реляционное исчисление. В реляционной алгебре в качестве операндов используются двумерные массивы (таблицы) – отношения. Отношения состоят из столбцов, именованных атрибутов, каждый из которых определен на некотором множестве значений, называемом доменом (т.е. имеет определенный тип данных, и, возможно, некоторую систему ограничений на значение), и строк – кортежей. Кроме того, определены основные операторы, результатом применения которых является новое отношение. В качестве основных операций используются следующие: проекция, объединение, пересечение, разность, декартово произведение, селекция, -соединение, естественное соединение, деление. Операции делятся на унарные, если они выполняются над одним отношением, и на бинарные, если в качестве операндов используются два отношения. Для иллюстрации операций в качестве исходных операндов выбраны следующие отношения:
R: | A | B | C | S: | D | F |
| 1 | a | 2 | | 3 | b |
| 3 | b | 1 | | 3 | d |
| 1 | a | 3 | | 1 | b |
| 2 | d | 1 | | | |
Операция проекция выполняется над одним отношением R и определяет новое отношение, содержащее значения указанного в операции подмножества атрибутов, из которого исключены кортежи-дубликаты. Символьное представление этой операции содержит имя отношения и список атрибутов результирующего отношения, заключенный в квадратные скобки:
R[S1, Si, Sm].
Исключение повторяющихся кортежей связано с тем, что результатом выполнения операции является новое отношение, в котором по определению должны отсутствовать кортежи-дубликаты. Операция проекции может применяться для изменения порядка атрибутов по сравнению с исходным отношением. Альтернативных представлением является использование греческой буквы «пи», у которой в качестве индексов указаны атрибуты результирующего отношения
S1, Si, Sm(R)
Пример. Результат выполнения операции проекции R[A, B]:
R[A, B] | | A | B |
| | 1 | a |
| | 3 | b |
| | 2 | d |
Из результирующего отношения исключен дублирующий кортеж (1, a).
Операция объединение выполняется над двумя отношениями, которые должны быть совместимы по объединению. Это условие предполагает:
- совпадение количества атрибутов в исходных отношениях;
- попарное определение атрибутов исходных отношений на одних и тех же доменах.
Результирующее отношение содержит кортежи, которые входят либо в первое отношение, либо во второе отношение, либо в оба отношения одновременно. Повторяющиеся кортежи должны быть исключены из результирующего отношения. Символьно операция объединения отношений R и S представляется следующим образом:
R + S либо R S.
Пример. Исходные отношения R и S являются несовместимыми по объединению, т.к. в этих отношениях не совпадает количество атрибутом. Операция объединения может быть выполнена над проекцией отношения R[А, В] и отношением S:
R[A, B] S | | A | B |
| | 1 | a |
| | 3 | b |
| | 2 | d |
| | 3 | d |
| | 1 | b |
Операция пересечение выполняется над двумя отношениями, которые должны быть совместимы по пересечению. Это условие идентично совместимости по объединению. В результирующее отношение включаются кортежи, которые одновременно входят и в первое, и во второе отношения. Символьно операция пересечения отношений R и S представляется как R S.
Пример. Выполнение операции пересечения:
R[A, B] S | | A | B |
| | 3 | b |
Операция разность выполняется над двумя отношениями, которые должны быть совместимы по разности. В результирующее отношение включаются кортежи, которые входят в первое отношение и отсутствуют во втором отношении. Символьно операция разности отношений R и S представляется как R – S. Пример. Выполнение операции разности:
R[A, B] – S | | A | B |
| | 1 | a |
| | 2 | d |
Операция селекция или выборка предназначена для выделения из отношения подмножества кортежей, удовлетворяющих определенным условиям выборки. Новое отношение, полученное в результате выполнения операции выборки, содержит те же атрибуты, что и исходное отношение, а количество кортежей может быть уменьшено. Для обозначения оператора селекции используется греческая буква «сигма», а сама операция в символьном виде представляется следующим образом:
<условие>(R),
где R - имя исходного отношения;
<условие> - определяет ограничение, второму должны удовлетворять результирующие кортежи, записанное в виде AВ либо А, где, в свою очередь,: А и В - имена атрибутов отношения R, - значение для сравнения, - оператор сравнения. В качестве могут быть указаны следующие операторы: > - больше, < - меньше, = - равно, >= - больше равно, < - меньше равно, <> - не равно.
Пример. Выполнение операции селекции:
A>C (R) | | A | B | C | B=a (R) | | A | B | C |
| | 3 | b | 1 | | | 1 | a | 2 |
| | 2 | d | 1 | | | 1 | a | 3 |
Операция декартово произведение выполняется над двумя отношениями R и S. которые характеризуются произвольными значениями степени отношения nR и nS и мощности отношений mR и mS. Результирующее отношение имеет степень n = nR + nS и мощность т = mR * mS, а его кортежи формируются путем выполнения процедуры конкатенации каждого кортежа отношения R с каждым кортежем отношения S. Символьно операция конкатенации отношений R и S представляется как R S. Результирующее отношение слева содержит перечень атрибутов отношения R, справа – перечень атрибутов отношения S. Пример. Выполнение операции декартова произведения:
R S | | A | B | C | D | F |
| | 1 | a | 2 | 3 | b |
| | 1 | a | 2 | 3 | d |
| | 1 | a | 2 | 1 | b |
| | 3 | b | 1 | 3 | b |
| | 3 | b | 1 | 3 | d |
| | 3 | b | 1 | 1 | b |
| | 1 | a | 3 | 3 | b |
| | 1 | a | 3 | 3 | d |
| | 1 | a | 3 | 1 | b |
| | 2 | d | 1 | 3 | b |
| | 2 | d | 1 | 3 | d |
| | 2 | d | 1 | 1 | b |
Операция -соединение (тета-соединение) выполняется над двумя отношениями. В символьном виде эта операция представляется следующим образом:
R(АD)S,
где А - атрибут отношения R; D - атрибут отношения S; - оператор, по которому производится соединение. Оператор может принимать различные значения: >, <, =, >=, <=, <>. Выполнение операции -соединения производится в два этапа:
- на первом этапе над отношениями R и S выполняется операция декартова произведения;
- на втором этапе из полученного промежуточного отношения выбираются кортежи, удовлетворяющие условию, заключенному в круглые скобки (АD).
Результирующее отношение содержит n1 + n2 атрибутов, т.е. в него включаются как атрибуты отношения R, так и атрибуты отношения S. Другая форма представления операции -соединения имеет следующий вид: R.AS.D(RS).
Операция эквисоединение является частным случаем -соединения, т.е. в этой операции производится соединение атрибутов А и D по равенству их значений. Необходимо отметить, что атрибуты соединения А и S должны быть определены на одном домене.
Операция естественное соединение отличается от эквисоединения тем, что в результирующее отношение атрибут соединения включается только один раз, т.е. степень результирующего отношения n = nA + nD - 1.