
Базы данных.
1.Обработка и хранение больших наборов информации. Потери при
сжатии.
Предметная область какой-либо деятельности - часть реального мира, подлежащая изучению с целью организации управления процессами и объектами для получения бизнес-результата. Предметная область может быть разделена (декомпозирована) на фрагменты: например, предприятие - это дирекция, плановые отделы, бухгалтерия, цеха, отделы маркетинга, логистики и т. д. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих объекты, а также множеством пользователей, характеризуемых различными взглядами на предметную область и данными, которые описывают указанные составляющие предметной области. Эти данные отражают динамичную внешнюю и внутреннюю среды предприятия, поэтому в специальных разделах информационной системы необходимо создавать динамически обновляемые модели отражения внешнего мира с использованием единого хранилища - базы данных.
База данных, БД (Data Base) - структурированный организованный набор данных, объединенных в соответствии с некоторой выбранной моделью и описывающих характеристики какой-либо физической или виртуальной системы.
Сжатие данных с потерями — метод сжатия (компрессии) данных, при использовании которого распакованные данные отличаются от исходных, но степень отличия не существенна с точки зрения их дальнейшего использования. Этот тип компрессии часто применяется для сжатия аудио- и видеоданных, статических изображений, в Интернете (особенно в потоковой передаче данных) и цифровой телефонии. Альтернативой является сжатие без потерь.
Преимущество методов сжатия с потерями над методами сжатия без потерь состоит в том, что первые делают возможной большую степень сжатия, продолжая удовлетворять поставленным требованиям, а именно — искажения должны быть в допустимых пределах чувствительности человеческих органов физических чувств.
Методы сжатия с потерями часто используются для сжатия аналоговых данных — чаще всего звука или изображений.
В таких случаях распакованный файл может очень сильно отличаться от оригинала на уровне сравнения «бит в бит», но практически неотличим для человека «на слух» и «на глаз» в большинстве применений.
2.Критерии оценки качества логической модели данных.
Для того чтобы оценить качество принимаемых решений на уровне логической модели данных, необходимо сформулировать некоторые критерии качества в терминах физической модели и конкретной реализации и посмотреть, как различные решения, принятые в процессе логического моделирования, влияют на качество физической модели и на скорость работы базы данных.
Конечно, таких критериев может быть очень много и выбор их, в достаточной степени, произволен. Мы рассмотрим некоторые из таких критериев, которые являются важными с точки зрения получения качественной базы данных:
-адекватность предметной области;
-легкость разработки и сопровождения базы данных;
-скорость выполнения операций обновления данных – вставка, обновление, удаление кортежей;
-скорость выполнения операций выборки данных;
-отсутствие неоправданной избыточности данных.
3. Системы управления базами данных – СУБД. Классификация СУБД.
Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
Классификация СУБД по модели данных:
•Иерархические
•Сетевые
•Реляционные
•Объектно-ориентированные
•Объектно-реляционные
По степени распределённости:
•Локальные СУБД (все части локальной СУБД размещаются на одном компьютере)
•Распределённые СУБД (части СУБД могут размещаться не только на одном, но на двух и более компьютерах).
По способу доступа к БД:
•Файл-серверные
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок.
•Клиент-серверные
Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно. Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу.
•Встраиваемые
Встраиваемая СУБД — СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети.
Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки. Доступ к данным со стороны приложения может происходить через SQL либо через специальные программные интерфейсы.
4. Типы обрабатываемых данных. Выражения, функции и операторы СУБД.
Создавая компьютерную БД, пользователь вводит свои данные в ее поля. При этом он должен прежде описать эти поля согласно требованиям Access: присвоить имена полям, указать их тип и свойства (которые позволят управлять сохранением, обработкой и отображением данных поля). Полям присваиваются имена с учетом следующих требований: имя должно содержать не более 64 символов; запрещается использование точки (.), восклицательного знака (!), апострофа (‘), квадратных скобок ([]).
В поля БД можно вводить данные следующих типов:
•Текстовый. В поля такого типа помещают текст или комбинацию текстовых и числовых значений. Объем текста не должен превышать 255 символов.
•Поле MEMO. Длинный текст (до 65535) символов.
•Числовой. Числовые данные, используемые в математических вычислениях, за исключением денежных расчетов. Размеры числовых полей - 1, 2,
4, 8, 12 байтов.
•Дата/время. Значения даты и времени. Даты из диапазона от 100 по
9999 год.
•Денежный. Денежные значения. Их максимальная точность составляет 15 знаков слева от десятичной запятой и 4 знака справа от нее.
•Счетчик. Уникальные последовательные с шагом 1 номера, автоматически вставляемые при вставке записи в БД.
•Логический. Поля, которые могут иметь только одно значение из пары значений, таких как Да/Нет, Истина/Ложь или Вкл/Выкл.
Для выполнения вычислений и других манипуляций в VBA применяются выражения. Выражение - это любая комбинация операндов или элементов данных (чисел, констант, переменных, функций и других операндов) и знаков операций. Знаки операций - это символы, которые используются для соединения операндов в выражении. Операнды (operands) в программировании - это объекты, над которыми выполняются определенные действия (операции).
Основные функции системы управления базами данных:
•управление данными во внешней памяти (на различных носителях);
•управление данными в оперативной памяти;
•журналирование изменений и восстановление базы данных после
сбоев;
• поддержка языков БД (язык определения данных, язык манипулирования данными, язык определения доступа к данным).
Операторы SQL
Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям.
Можно выделить следующие группы операторов (перечислены не все операторы SQL):
Операторы DDL (Data Definition Language) - операторы определения объектов базы данных
•CREATE SCHEMA - создать схему базы данных
•DROP SHEMA - удалить схему базы данных
Операторы DML (Data Manipulation Language) - операторы манипулирования данными
•SELECT - отобрать строки из таблиц
•INSERT - добавить строки в таблицу
•UPDATE - изменить строки в таблице
Операторы защиты и управления данными
•CREATE ASSERTION - создать ограничение
•DROP ASSERTION - удалить ограничение
Наиболее важными для пользователя являются операторы манипулирования данными (DML).
5. Принципы нормализации таблиц БД, их цель. Нормальные формы: 1 НФ, 2 НФ, 3НФ.
Нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных. Окончательная цель нормализации сводится к получению такого проекта базы данных, в котором каждый факт появляется лишь в одном месте, т.е. исключена избыточность информации. Это делается не столько с целью экономии памяти, сколько для исключения возможной противоречивости хранимых данных.
Каждая таблица в реляционной БД удовлетворяет условию, в соответствии с которым в позиции на пересечении каждой строки и столбца таблицы всегда находится единственное атомарное значение, и никогда не может быть множества таких значений. Любая таблица, удовлетворяющая этому условию, называется нормализованной. Фактически, ненормализованные таблицы, т.е. таблицы, содержащие повторяющиеся группы, даже не допускаются в реляционной БД.
Всякая нормализованная таблица автоматически считается таблицей в первой нормальной форме, сокращенно 1НФ. Таким образом, строго говоря, "нормализованная" и "находящаяся в 1НФ" означают одно и то же. Однако на практике термин "нормализованная" часто используется в более узком смысле – "полностью нормализованная", который означает, что в проекте не нарушаются никакие принципы нормализации.
Теперь в дополнение к 1НФ можно определить дальнейшие уровни нормализации – вторую нормальную форму (2НФ), третью нормальную форму
(3НФ) и т.д.
По существу, таблица находится в 2НФ, если она находится в 1НФ и удовлетворяет, кроме того, некоторому дополнительному условию, суть которого будет рассмотрена ниже. Таблица находится в 3НФ, если она находится в 2НФ и, помимо этого, удовлетворяет еще другому дополнительному условию и т.д.
Таким образом, каждая нормальная форма является в некотором смысле более ограниченной, но и более желательной, чем предшествующая. Это связано с тем, что "(N+1)-я нормальная форма" не обладает некоторыми непривлекательными особенностями, свойственным "N-й нормальной форме". Общий смысл дополнительного условия, налагаемого на (N+1)-ю нормальную форму по отношению к N-й нормальной форме, состоит в исключении этих непривлекательных особенностей.
6. Операции над реляционными БД (сортировка, группировка и
т.д.).
Операции обработки кортежей:
Эти операции связаны с изменением состава кортежей в каком-либо отношении.
•ДОБАВИТЬ - необходимо задать имя отношения и ключ кортежа.
•УДАЛИТЬ - необходимо указать имя отношения, а также идентифицировать кортеж или группу кортежей, подлежащих удалению.
•ИЗМЕНИТЬ - выполняется для названного отношения и может корректировать как один, так и несколько кортежей.
Операции обработки отношений:
•ПРОЕКЦИЯ (ВЕРТИКАЛЬНОЕ ПОДМНОЖЕСТВО).
Операция проекции представляет из себя выборку из каждого кортежа отношения значений атрибутов, входящих в список A, и удаление из полученного отношения повторяющихся строк.
•ВЫБОРКА (ОГРАНИЧЕНИЕ, ГОРИЗОНТАЛЬНОЕ ПОДМНОЖЕСТВО).
На входе используется одно отношение, результат - новое отношение, построенное по той же схеме, содержащее подмножество кортежей исходного отношения, удовлетворяющих условию выборки.
•ОБЪЕДИНЕНИЕ.
Отношения-операнды в этом случае должны быть определены по одной схеме. Результирующее отношение содержит все строки операндов за исключением повторяющихся.
•ПЕРЕСЕЧЕНИЕ.
На входе операции два отношения, определенные по одной схеме. На выходе - отношение, содержащие кортежи, которые присутствуют в обоих исходных отношениях.
•РАЗНОСТЬ.
Операция во многом похожая на ПЕРЕСЕЧЕНИЕ, за исключением того, что в результирующем отношении содержатся кортежи, присутствующие в первом и отсутствующие во втором исходных отношениях.
•ДЕКАРТОВО ПРОИЗВЕДЕНИЕ
Входные отношения могут быть определены по разным схемам. Схема результирующего отношения включает все атрибуты исходных. Кроме того:
степень результирующего отношения равна сумме степеней исходных
отношений
мощность результирующего отношения равна произведению мощностей исходных отношений.
• СОЕДИНЕНИЕ Данная операция имеет сходство с ДЕКАРТОВЫМ ПРОИЗВЕДЕНИЕМ.
Однако, здесь добавлено условие, согласно которому вместо полного произведения всех строк в результирующее отношение включаются только строки, удовлетворяющие опредленному соотношению между атрибутами соединения (А1,A2) соответствующих отношений.
•ДЕЛЕНИЕ
Пусть отношение R , называемое делимым, содержит атрибуты (A1,A2,...,An). Отношение S - делитель содержит подмножество атрибутов A: (A1,A2,...,Ak) (k<n). Результирующее отношение C определено на атрибутах отношения R, которых нет в S, т.е. Ak+1,Ak+2,...,An. Кортежи включаются в результирующее отношение C только в том случае, если его декартово произведение с отношением S содержится в делимом R.
7. Технология создания БД (таблицы, запросы, формы, отчеты).
Для автоматизации создания объектов БД (за исключением модулей) в Access используются специализированные средства, называемые конструкторами. Конструктор предоставляет пользователю ряд инструментальных средств, с помощью которых можно быстро и просто создавать и модифицировать объекты БД. Для конструирования макета формы, отчета, страницы используется панель элементов, появляющаяся при вызове конструктора. В Access имеется также множество мастеров, используемых для создания объектов БД и выполнения специальных операций. Мастер задает пользователю ряд вопросов и на основе его ответов строит законченный объект БД или осуществляет определенную операцию.
8.Назначение, стандарты, достоинства языка SQL.
SQL (Structured Query Language) – Структурированный Язык Запросов – это стандартный язык запросов по работе с реляционными базами данных.
Сам по себе SQL не является ни системой управления базами данных, ни отдельным программным продуктом. SQL – это неотъемлемая часть СУБД, инструмент, с помощью которого осуществляется связь пользователя с ней.
SQL нельзя в полной мере отнести к традиционным языкам программирования, т.к. он не содержит традиционных операторов, управляющих ходом выполнения программ, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. SQL является так называемым непроцедурным языком. Термин «непроцедурный» означает, что на этом языке можно сформулировать, что именно нужно сделать с данными, но нельзя проинструктировать, как это следует сделать. Иными словами, в языке отсутствуют алгоритмические конструкции, такие как метки, операторы цикла, условные переходы и т.п.
В настоящее время язык SQL воплощен практически во всех коммерческих СУБД – все фирмы-производители СУБД провозглашают реализацию стандарта SQL. Таким образом, освоив один раз стандарт этого языка, пользователь посредством SQL может работать с базой данных в среде любой SQLориентированной СУБД.
С помощью SQL пользователь может в интерактивном режиме быстро получить ответы на любые, в том числе достаточно сложные запросы, тогда как для реализации этих запросов на другом языке пришлось бы разрабатывать соответствующую программу. В прикладных программах, написанных на определенных языках программирования, SQL используются как встроенный язык для обращения к базе данных.
Характеризуя язык SQL в целом, можно выделить следующие его черты:
•высокоуровневая структура, напоминающая английский язык
•независимость от конкретных СУБД;
•межплатформенная переносимость;
•наличие развивающихся стандартов;
•возможность выполнения интерактивных запросов извлечения данных
имодификации их структуры;
•обеспечение программного доступа к базам данных;
Основные функции языка SQL:
•SQL – язык интерактивных запросов. Пользователи вводят команды SQL в интерактивном режиме для выборки данных и отображения их на экране, а также для внесения изменений в базу данных;
•SQL – язык программирования баз данных. Чтобы получить доступ к базе данных, в прикладные программы вставляются команды SQL;
•SQL – язык администрирования баз данных. Администратор базы данных может использовать SQL для определения структуры базы данных и управления доступом к данным;
•SQL – язык создания приложений клиент/сервер. В прикладных программах SQL используется как средство организации связи по локальной сети с сервером баз данных, в которой хранятся совместно используемые данные и др.
9. Структура команды SQL. Типы данных и выражения в SQL.
Каждая команда SQL начинается с действия – ключевого слова или группы слов, описывающих выполняемую операцию. Например, INSERT (добавить), DELETE (удалить), COMMIT (завершить), CREATE TABLE (создать таблицу).
Примечание. В языках программирования ключевое слово – название, зарезервированное для определенных целей, например, названий команд, устройств и т.п.
После действия может следовать одно или несколько предложений. Предложение описывает данные, с которыми работает команда, или содержит уточняющую информацию о действии, выполняемом командой. Каждое предложение начинается с ключевого слова, такого как, например, WHERE (где), FROM (откуда), INTO (куда), HAVING (имеющий). Многие предложения содержат имена таблиц и полей БД; некоторые – константы и выражения.
Типы данных:
Символьный тип данных содержащий буквы, цифры, специальные символы:
•CHAR или CHAR (n) – символьные строки фиксированные данные
•VARCHAR (n) – символьные строки
Целые числа
•INTЕGER или INT – целое для решения которого отводится, как байта
•SMALLINT – короткое целое (2 байта)
•FLOAT – число плавающих точек
•DECIMAL (p) – аналогично FLOAT с числовым значение цифр р
Денежный тип
•MONEY (p, n) – аналогично типу DECIMAL (p, n)
Дата и время
•DATE - дата
•TIME - время
•INTERVAL – временный интервал
•DATETIME – момент время
Двоичные данные
•BINARY
•BYTE
•BLOB – хранить данные любого объема в двоичном коде
Последовательный тип
•SERIAL – тип данных на основе INTEGER позволяющий сформировать уникальные значения
Выражения
•Арифметические выражения
•+, -, *, %, /, ^,
•Логические операции
•AND – логическое умножение
•OR – лог сложение
•NOT –лог отриц.
10. Использование операторов SQL в прикладных программах.
Применение же языка SQL в прикладных программах на практике реализовано двумя различными способами:
Внедренные SQL-операторы. Отдельные SQL-операторы внедряются прямо в исходный текст программы и смешиваются с операторами базового языка. Этот подход позволяет создавать программы, обращающиеся непосредственно к базе данных. Специальные программы-предкомпиляторы преобразуют исходный текст с целью замены SQL-операторов соответствующими вызовами подпрограмм СУБД, затем он компилируется и собирается обычным способом.
Использование прикладного интерфейса программирования (API). Альтернативный вариант состоит в предоставлении программисту стандартного набора функций, к которым можно обращаться из создаваемых им программ. Конкретный вариант API может предоставлять тот же набор функциональных возможностей, который существует при подключении встроенных операторов, однако при этом устраняется необходимость предкомпилирования исходного текста. Кроме того, некоторые разработчики указывают, что в этом случае используется более понятный интерфейс и созданный программный текст более удобен с точки зрения его сопровождения.
11.Диалекты языка SQL в различных СУБД.
Несмотря на наличие международного стандарта ANSI SQL, многие компании, занимающиеся разработкой СУБД, вносят изменения в язык SQL. Каждая из реализаций языка SQL в конкретной СУБД называется диалектом. Функции, которые добавляются к стандарту языка разработчиками коммерческих реализаций – это расширения. Нп, в стандарте языка SQL определены конкретные типы данных, которые могут хранятся в БД. Во многих реализациях этот список расширяется за счет дополнений.
Не существует двух совершенно идентичных диалектов. И поскольку разработчики вводят в системы все новые средства, они расширяют свои диалекты языка SQL, в рез-те чего отдельные диалекты больше отличаются друг от друга.
В широко распространенных в настоящее время СУБД используются следующие диалекты языка SQL: PL/SQL – в СУБД Oracle; Transact-SQL – в СУБД
Microsoft SQL; Informix-SQL – в СУБД Informix; Jet SQL – Microsoft Access.
12. Встроенные функции стандарта SQL и его диалектов.
В SQL имеется пять встроенных функций: COUNT, SUM, AVG, MAX и MIN. Они выполняют различные действия над результатами оператора SELECT. Функция COUNT работает вне зависимости от типа данных столбца, а функции SUM, AVG, МАХ и MIN оперируют только числовыми столбцами (Integer, Numeric
и т.д.).
Функция COUNT подсчитывает количество строк в результате, а функция SUM вычисляет сумму значений числового столбца.
13. Средства языка SQL по проверке ограничений целостности БД.
Транзакция - это неделимая, с точки зрения воздействия на СУБД, последовательность операций манипулирования данными. Для пользователя транзакция выполняется по принципу "все или ничего", т.е. либо транзакция выполняется целиком и переводит базу данных из одного целостного состояния в другое целостное состояние, либо, если по каким-либо причинам, одно из действий транзакции невыполнимо, или произошло какое-либо нарушение работы системы, база данных возвращается в исходное состояние, которое было до начала транзакции (происходит откат транзакции). С этой точки зрения, транзакции важны как в многопользовательских, так и в однопользовательских системах. В однопользовательских системах транзакции - это логические единицы работы, после выполнения которых база данных остается в целостном состоянии. Транзакции также являются единицами восстановления данных после сбоев - восстанавливаясь, система ликвидирует следы транзакций, не успевших успешно завершиться в результате программного или аппаратного сбоя. Эти два свойства транзакций определяют атомарность (неделимость) транзакции. В многопользовательских системах, кроме того, транзакции служат для обеспечения изолированной работы отдельных пользователей - пользователям, одновременно