
- •1.1. Архитектура бд
- •2. Тема 2. Системы управления бд (субд). Выбор систем управления бд. Функции субд.
- •3.1. Жизненный цикл бд. Этапы жц бд.
- •3.1.1. Оценка работы и поддержка б.Д. Производится оценка с точки зрения выполнения требований пользователей. В случае необходимости в систему вносятся изменения.
- •3.1.1.1. Документальные системы
- •3.1.1.2.Обобщенная функциональная структура дипс.
- •3.1.1.3. Коммерческие б.Д.
- •3.1.1.4. Коммерческие базы данных.
- •3.1.1.5. Распределенная обработка данных. Распределенные базы данных
- •3.2. Литература
- •4.1. Уровни.
- •4.2. Этапы проектирования.
- •4.3.Трехуровневая архитектура организации бд
- •4.4. Этапы проектирования: исследование проблемы, этап анализа, проектирование, реализация, внедрение, сопровождение.
- •4.5. Проектирование бд.
- •4.5.1. Этапы проектирования.
- •Тема 5. Средства и методы проектирования бд. Методика диаграмм взаимосвязей между объектами erd-диаграммы. Использование case-технологий при проектировании бд.
- •5.1. Базовые понятия.
- •5.2. Case - приложение eRwin
- •5.2.1. Объекты в eRwin
- •5.2.2. Связь в Erwin
- •6.1. Правила отношений между сущностями. Определение ключей
- •6.2. Нормализация бд. Денормализация бд.
- •Тема 7. Реляционная модель бд. Таблицы. Ограничения целостности данных. Реляционная алгебра. Реляционное исчисление.
- •Тема 8. Организация процессов обработки данных в бд. Обработка транзакций
- •Понятие транзакции.
- •9.1.1. Операторы определения данных ddl
- •9.1.2. Операторы манипулирования данными Data Manipulation Language dml
- •9.1.3. Язык запросов Data Query language (dql)
- •9.1.4. Средства администрирования данных
- •9.1.5. Программный sql
- •9.2. Оператор выборки данных select, использование условий поиска, сортировка результатов запроса. Синтаксис оператора select.
- •C.10. Тема 10. Простые запросы и правила их выполнения. Особенности многотабличных запросов. Объединение таблиц. Использование вложенных запросов
- •10.1. Простые запросы и правила их выполнения
- •10.2. Особенности многотабличных запросов
- •10.3. Объединение таблиц
- •10.4. Использование вложенных запросов
- •Тема 11. Внесение изменений в бд. Добавление информации в бд, удаление данных, изменение существующих данных.
- •C.11.1.Внесение изменений в базу данных
- •Удаление данных
- •11.2. Изменение существующих данных
- •12.1. Специальные аспекты работы с бд. Процедура индексирования.
- •12.2. Триггеры
- •12.2.1. Ключевые слова и параметры
- •12.2.2. Компоненты триггера
- •12.2.3.Типы триггеров.
- •12.2.4.Включение и выключение триггеров.
- •C.12.2.5. Удаление триггера
- •C.12.2.6. Корреляционные имена
- •12.3. Процедуры и функции
- •12.4. Функция
- •12.5.Курсоры.
- •Тема 13. Физическая организация бд на примере Oracle9i. Организация табличных пространств, журналов транзакций. Серверные процессы. Структуры памяти и взаимодействие между процессами.
- •13.1. Архитектура бд.
- •14.1. Системы обработки транзакций oltp и olap - технологий
- •14.2. Хранилища данных. Многомерные хранилища данных
- •14.3. Методы аналитической обработки (olap)
- •14.3.1. Хранилища данных
- •14.3.2. Причины внедрения информационных систем на основе хранилищ данных
- •Литература
- •14.5. Olap в России
- •Тема 15. Основы фракталов. Фрактальная математика. Фрактальные методы в архивации. Управления складами данных
- •15.1. Понятие "фрактал"
- •15.2. Классификация фракталов
- •15.2.1. Геометрические фракталы
- •15.2.2. Алгебраические фракталы
- •C.15.2.3. Стохастические фракталы
- •C.15.3. Системы итерируемых функций
- •15.4. Фрактальное сжатие
- •15.5. История фрактального сжатия
- •15.6. Идея фрактальной архивации
- •15.7. Сравнение с jpeg
- •15.8. Литература
- •Темы рефератов
9.1.1. Операторы определения данных ddl
Оператор |
Действие |
CREATE TABLЕ |
Создает новую таблицу и БД |
DROP TABLE |
Удаляет таблицу из ЙД |
ALTER TABLE |
Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы |
CREATE VIEW |
Создает виртуальную таблицу, соответствующую некоторому SQL-запросу |
ALTER VIEW |
Изменяет ранее созданное представление |
DROP VIEW |
Удаляет ранее созданное представление |
CREATE INDEX |
Создает индекс для таблицы для быстрого доступа |
DROP INDEX |
Удаляет ранее созданный индекс |
9.1.2. Операторы манипулирования данными Data Manipulation Language dml
Оператор |
Действие |
|
DELETE |
Удаляет одну или несколько строк, соответствующих условиям фильтрации, из базовой таблицы. Применение оператора согласуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если синтаксически, он записан правильно |
|
INSERT
|
Вставляет одну строку в базовую таблицу. Допустимы модификации оператора, при которых сразу несколько строк могут быть перенесены из одной таблицы или запроса в базовую таблицу |
|
UPDATE
|
Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации |
|
9.1.3. Язык запросов Data Query language (dql)
Оператор Select-выбрать строки-Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу
9.1.4. Средства администрирования данных
Оператор |
Действие |
ALTER DATABASE |
Изменить набор основных объектов в БД, ограничений, касающихся БД |
ALTER DBAREA |
Изменить ранее созданную область хранения |
ALTER PASSWORD |
Изменить пароль для всей базы данных |
CREATE DATABASE |
Создать новую базу данных, определив основные параметры для нее |
CREATE DBAREA |
Создать новую область хранения и сделать ее доступной для размещения данных |
DROP DATABASE |
Удалить существующую базу данных |
DROP DBAREA |
Удалить существующую область хранения |
GRANT |
Предоставить права доступа на ряд действий над некоторым объектом БД |
9.1.5. Программный sql
Оператор |
Действие |
DECLARE |
Задаст некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных |
OPEN |
Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущему состоянию БД |
FETCH |
Считывает очередную строку, заданную параметром команды из виртуального набора данных, соответствующего открытому курсору |
CLOSE |
Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору |
PREPARE |
Сгенерировать план выполнения запроса, соответствующего заданному оператору SQL |
EXECUTE |
Выполняет ранее подготовленный план запроса |
В дальнейшем для рассмотрения материала будем работать с учебной базой данных, состоящей из четырех таблиц
STUDENTS
SNUM |
SFAM |
SIMIA |
SOTCH |
STIP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PREDMET
PNUM |
TNUM |
PDATA |
PCOURS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEACHER
TNUM |
TFAM |
TIMIA |
TOTCH |
TDATA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
USP
UNAME |
SNUM |
PNUM |
OCENKA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
В коммерческих СУБД набор основных операторов расширен. В большинстве СУБД включены операторы определения и запуска хранимых процедур и операторы определения триггеров.
В языке SQL/92 поддерживаются следующие типы данных:
CHARACTER(n) или CHAR(n) ─ символьные строки постоянной длины в n символов. При задании данного тина под каждое значение всегда отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.
NUMERIC[(n,m)] ─ точные числа, здесь n ─ общее количество цифр в числе, m ─ количество цифр слева от десятичной точки.
DECIMAL[(n,m)] ─ точные числа, здесь n ─ общее количество цифр и числе, m ─ количество цифр слева от десятичной точки.
DEC[(n,m)1 - то же, что и DECIMAL[(n,m)].
INTEGER или INT ─ целые числа.
SMALLINT ─ целые числа меньшего диапазона.
FLOAT[(n)] ─ Числа большой точности, хранимые в форме с плавающей точкой. Здесь n ─ число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.
REAL ─ вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем FLOAT.
DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.
VARCHAR(n) это строка символов переменной длины.
NCHAR VARYING(n) ─ строки локализованных символов переменной длины.
BIT(n) ─ строка битов постоянной длины.
BIT VARYING(n) ─ строка битов переменной длины.
DATE ─ календарная дата.
TIMESTAMP(TОЧНОСТЬ) ─ дата и время.
INTERVAL ─ временной интервал.
Способы создания БД Для изменения структуры БД в SQL предусмотрен язык определения данных, или DDL. С помощью этих операторов можно: создать новую БД; определить структуру новой таблицы и создать эту таблицу; удалить существующую таблицу; изменить определение существующей таблицы; определить представление данных; обеспечить условия безопасности БД; создать индексы для доступа к таблицам;
Собственно DDL базируется на трех командах SQL:
∙CREATE - создать, позволяющий определить и создать объект БД;
∙DROP - удалить, применяемый для удаления существующего объекта данных;
∙ALTER - изменить, с помощью которого можно изменить определение объекта БД.
Использование команд DDL во время работы позволяет сделать структуру реляционной БД динамической. Операторы DDL в СУБД можно использовать как в интерактивном, так и в программном SQL.
Большинство многопользовательских БД имеют достаточно несложную организацию физической памяти, что обеспечивает повышение ее производительности. Например, в Microsoft SQL Server администратор БД может с помощью оператора CREATE DATABASE задать один или несколько именованных файлов: CREATE DATABASE <NAME_DATABASE> ON <FILE1>, <FILE2>, Подход, используемый в SQL Server, позволяет распределять содержимое БД по нескольким дисковым томам.
Создание таблиц Итак, после создания БД необходимо осуществить создание, изменение, а если нужно - то и удаление таблиц. Эти действия относятся к самим таблицам, а не к данным, которые в них содержатся. Таблицы создаются командой CREATE TABLE. Эта команда создает пустую таблицу, т.е. не содержащую записей. Очевидно, что значения в нее можно ввести с помощью команды INSERT. Главное в команде CREATE TABLE - это определение имени таблицы и описания набора имен полей, которые указываются в соответствующем порядке. Кроме того, этой командой также оговариваются типы данных и размеры полей таблицы.
Синтаксис команды CREATE TABLE следующий:
CREATE TABLE <TABLE NAME>
(<COLUMN NAME> <DATA TYPE> [(<SIZE>)],
<COLUMN NAME> <DATA TYPE> [(<SIZE>)] . . . ) ;
Значение аргумента размера зависит от типа данных. Если его не указывать, то СУБД сама будет назначать значение автоматически. Тип данных CHAR требует обязательного указания размера. Аргумент размера - это целое число, определяющее максимальное количество символов, которое может вместить поле. Таблицы принадлежат пользователю, который их создал, а имена всех таблиц, принадлежащих данному пользователю, должны отличаться друга от друга точно так же, как и имена всех полей внутри данной таблицы. Однако разные таблицы могут использовать одинаковые имена полей, даже если они принадлежат одному и тому же пользователю. Например, поле с именем SNUM присутствует в таблицах STUDENTS и USP, ничуть не мешая друг другу.
Как уже было сказано, пользователи, не являющиеся владельцами таблиц, могут ссылаться к этим таблицам с помощью имени владельца, сопровождаемого точкой. Например, имя таблицы: SA.STUDENTS подразумевает, что обращение идет к таблице STUDENTS, созданной пользователем с идентификатором разрешения (ID) SA.
Приведем пример команды, которая создаст структуру таблицы STUDENTS:
CREATE TABLE STUDENTS (SNUM INTEGER, SFAM CHAR (20), SIMA CHAR (10), SOTCH CHAR (15) STIP DECIMAL) ;
После того, как таблица была создана, ее можно изменять. Команда ALTER TABLE является широко доступным средством для того, чтобы изменить определение существующей таблицы. Чаще всего с ее помощью добавляют поля к таблице, хотя она может удалять или изменять их размеры. Типичный синтаксис этой команды для добавления столбца к таблице, такой: ALTER TABLE <TABLE NAME> ADD <COLUMN NAME> <DATA TYPE> <SIZE>;
ALTER TABLE не действует, когда таблица должна быть переопределена, однако при разработке БД не стоит исключать необходимость этого действия. Кроме того, изменение структуры таблицы в тот момент, когда она находится в использовании, также чревато потерей информации - например, запрос может потерпеть неудачу по той причине, что некоторого поля в таблице просто уже не существует.
Для того, чтобы иметь возможность удалить таблицу, пользователь должен быть ее собственником. Кроме того, перед удалением, SQL потребует очистки таблицы от данных, что позволяет избежать случайной и невосполнимой потери информации. Таким образом, таблица, с находящимися в ней строками, не может быть удалена. Синтаксис команды для удаления таблиц следующий:
DROP TABLE <TABLE NAME>; Пример: DROP TABLE STUDENTS;