Автор работы: Пользователь скрыл имя, 19 Января 2014 в 13:37, доклад
Банк данных (БнД) в общем случае состоит из следующих компонентов: базы (нескольких баз) данных, системы управления базами данных, словаря данных, администратора, вычислительной системы и обслуживающего персонала. Вкратце рассмотрим названные компоненты и некоторые связанные с ними важные понятия.
База данных (БД) представляет собой совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.
Использование параметров запуска для устранения неполадок
Некоторые параметры запуска (например,
однопользовательский режим или
режим минимальной
Примечание |
Если SQL Server запускается с помощью net start, в параметрах загрузки используется косая черта (/), а не дефис (-). |
Использование параметров запуска в обычной работе
Возможно, некоторые параметры потребуется использовать при каждом запуске SQL Server. Если требуется запуск с такими параметрами, как –g, или с флагом трассировки, лучше всего задать параметры запуска с помощью диспетчера конфигурации SQL Server. Это средство сохраняет параметры запуска в разделе реестра, после чего SQL Server всегда запускается с этими параметрами.
ODBC.
Как заполнять различные поля
в Администраторе ODBC
Для Windows 95 существует три возможности задания имени сервера:
Например:
194.216.84.21 my_hostname
Пример заполнения при установке ODBC:
Windows DSN name: test
Description: This is my test database
MySql Database: test
Server: 194.216.84.21
User: monty
Password: my_password
Port:
Значением поля Windows DSN name может быть любое имя, уникальное для данной установки ODBC.
Не обязательно указывать
Если номер порта не задан, то используется его значение по умолчанию (3306).
Если задается опция Read options from C:\my.cnf, то группы client и odbc будут читаться из файла `C:\my.cnf'. Можно применять все опции,
используемые в mysql_options() (see section 8.4.3.159 mysql_
Параметры подключения для MyODBC
Можно указать следующие параметры
для MyODBC в разделе [Servername] файла `
Параметр |
Величина по умолчанию |
Комментарий |
user |
ODBC (под Windows)@tab Имя пользователя, используемое для подключения к MySQL. |
|
server |
localhost |
Имя хоста сервера MySQL. |
database@tab |
База данных по умолчанию |
|
option |
0 |
Целое число, с помощью которого можно указать, как должен работать драйвер MyODBC (см. ниже). |
port |
3306 |
Используемый порт TCP/IP, если значением server не является localhost. |
stmt |
Команда, которая будет выполняться при подключении к MySQL. | |
password@tab |
Пароль для комбинации server user. |
|
socket |
Сокет или канал Windows для подключения. |
Аргумент ``option'' используется для указания MyODBC, что данный клиент не на 100% соответствует ODBC. Под Windows обычно устанавливается флаг опций путем переключения различных опций в окне данного соединения, но можно также установить это в аргументе ``option''. Следующие опции перечислены в том же порядке, в котором они перечислены в окне подключения MyODBC:
Бит |
Описание |
1 |
Данный клиент не может отследить, что драйвер MyODBC возвращает реальную ширину столбца. |
2 |
Данный клиент не может отследить, что драйвер MyODBC возвращает реальную величину подвергшихся воздействию строк. Если этот флаг установлен, то взамен MySQL возвращает ``найденные строки''. Необходима версия MySQL 3.21.14 или более новая, чтобы эта опция работала. |
4 |
Создает журнал отладки в
c:\myodbc.log. Это то же самое, что задать MYSQL_DEBUG=d:t:O, |
8 |
Не устанавливать никаких пакетных ограничений для результатов и параметров. |
16 |
Не выводить подсказки для вопросов, даже если драйвер захотел бы предложить это |
32 |
Имитировать драйвер ODBC 1.0 в определенной ситуации. |
64 |
Игнорировать использование имени базы данных в database.table.column. |
128 |
Заставляет использовать указатели менеджера ODBC (экспериментальная). |
256 |
Отключить использование расширенной выборки (экспериментальная). |
512 |
Заполнить поля CHAR до полной длины столбца. |
1024 |
Функция SQLDescribeCol() будет возвращать полностью уточненные имена столбцов |
2048 |
Использовать сжатие в клиент-серверном протоколе |
4096 |
Предписывает серверу
игнорировать пробел после имени
функции и перед `(' ( |
8192 |
Соединяет с именованными каналами сервер mysqld, работающий под NT. |
16384 |
Изменяет тип столбцов LONGLONG |
32768 |
Возвращает параметр user как T |
65536 |
Читает параметры из групп client и odbc из файла `my.cnf' |
131072 |
Добавляет некоторые дополнительные проверки безопасности (не должно понадобиться, но...) |
Если необходимо иметь много опций, следует добавить вышеуказанные флаги! Например, установка опции в 12 (4+8) дает отладку без ограничений пакетов!
Иногда использование XML-данных не имеет никакого смысла, поскольку сегодня большинство данных в реляционных базах данных гораздо лучше работает в их текущем формате, нежели в формате XML. Для подтверждения вышесказанного приведем два примера. Итак, XML тип не используется в следующих случаях.
Для обмена данными между базами данных SQL и XML-документами различные элементы базы данных SQL должны быть преобразованы в эквивалентные элементы XML-документа и наоборот. Как вы узнаете в следующих разделах, порой преобразование просто необходимо для удачного выполнения некоторых операций.
В языке SQL поддержка наборов символов
зависит от его реализации. Это
означает, что приложение DB2 производства
компании IBM может поддерживать наборы
символов, которые не поддерживаются
приложением SQL Server компании Microsoft. SQL Server,
в свою очередь, поддерживает наборы
символов, которые не поддерживаются
приложением Oracle. Несмотря на то что
большинство общих наборов
У XML нет никаких проблем
В отличие от SQL, XML более точно
подходит к определению идентификаторов.
Прежде чем стать частью XML-документа,
символы, допустимые в SQL и недопустимые
в XML, должны быть соответствующим образом
преобразованы. SQL поддерживает неограниченные
идентификаторы. Это означает, что
все виды добавочных символов, такие
как %, $ и &, будут допустимыми до
тех пор, пока они заключены в
двойные кавычки. Но такие символы
не допустимы для XML. Кроме того, имена
в XML, начинающиеся с символов XML, в
любых комбинациях уже
При преобразовании из SQL в XML все идентификаторы конвертируются в Unicode. Любые же идентификаторы языка SQL, которые являются также допустимыми именами XML, остаются неизменными. Символы идентификатора языка SQL, не допустимые для имен XML, заменяются шестнадцатеричным кодом. Полученный результат имеет форму записи типа "_хНННН_" или "_xНННННННН_", где Н– шестнадцатеричный разряд верхнего регистра. Например, символ подчеркивания "_" будет представлен как "_x005F_". Двоеточие– как "_х003А_". Эти представления являются кодами для описания в системе Unicode таких символов, как подчеркивание и двоеточие. В случае, если идентификатор SQL начинается с символов х, т или /, перед такими символами необходимо поставить префикс с кодом в форме "_xFFFF_".
Преобразовать символы из XML-формата в SQL-формат гораздо проще. Все, что для этого необходимо сделать, – это развернуть символы XML-имени в последовательность "_XFFFF_" или "_XFFFFFFFF_". Всякий раз, когда вы находите такую последовательность, заменяйте ее символами, соответствующими символам Unicode. Если же имя XML начинается с символов "_XFFFF_", игнорируйте их.
Следуя этим простым правилам, вы можете преобразовывать идентификатор SQL в XML-имя, а затем вернуться к идентификатору SQL. Однако это хорошее правило не действует для преобразования XML-имени в идентификатор SQL и наоборот.
Целостность баз данных. Транзакции
SQL.
Транзакции и целостность баз данных
В данной и в последующих главах изучается фундаментальное понятие транзакции. Это понятие не входит в реляционную модель данных, т.к. транзакции рассматриваются не только в реляционных СУБД, но и в СУБД других типов, а также и в других типах информационных систем.
Транзакция - это неделимая,
с точки зрения воздействия на
СУБД, последовательность операций манипулирования
данными. Для пользователя транзакция
выполняется по принципу "все или ничего",
т.е. либо транзакция выполняется целиком
и переводит базу данных из одного целостного состояния в
другое целостное состояние,
либо, если по каким-либо причинам, одно
из действий транзакции невыполнимо, или
произошло какое-либо нарушение работы
системы, база данных возвращается в исходное
состояние, которое было до начала транзакции
(происходит откат транзакции). С этой
точки зрения, транзакции важны как в многопользовательских,
так и в однопользовательских системах.
В однопользовательских системах транзакции
- это логические единицы работы, после
выполнения которых база данных остается в целостном состоянии.
Транзакции также являются единицами восстановления данных
после сбоев - восстанавливаясь, система
ликвидирует следы транзакций, не успевших
успешно завершиться в результате программного
или аппаратного сбоя. Эти два свойства
транзакций определяют атомарность (неделимость)
транзакции. В многопользовательских
системах, кроме того, транзакции служат
для обеспечения изолированной рабо
Определение 1. Транзакция - это последовательность операторов манипулирования данными, выполняющаяся как единое целое (все или ничего) и переводящая базу данных из одного целостного состояния в другое целостное состояние.
Транзакция обладает четырьмя важными свойствами, известными как свойства АСИД:
Транзакция обычно начинается автоматически
с момента присоединения
Команда COMMIT WORK завершает текущую транзакцию и автоматически начинает новую транзакцию. При этом гарантируется, что результаты работы завершенной транзакции фиксируются, т.е. сохраняются в базе данных.
Замечание. Некоторые системы (например, Visual FoxPro), требуют подать явную команду BEGIN TRANSACTION для того, чтобы начать новую транзакцию.
Команда ROLLBACK WORK приводит к тому, что все изменения, сделанные текущей транзакцией откатываются, т.е. отменяются так, как будто их вообще не было. При этом автоматически начинается новая транзакция.
При отсоединении пользователя от СУБД происходит автоматическая фиксация транзакций.
При сбое системы происходят более сложные процессы. Кратко суть их сводится к тому, что при последующем запуске системы происходит анализ выполнявшихся до момента сбоя транзакций. Те транзакции, для которых была подана команда COMMIT WORK, но результаты работы которых не были занесены в базу данных выполняются снова (накатываются). Те транзакции, для которых не была подана команда COMMIT WORK, откатываются. Более подробно восстановление после сбоев рассматривается далее.
Информация о работе Понятие данных, принципы построения информационных систем