Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОтветыБД.doc
Скачиваний:
100
Добавлен:
14.05.2015
Размер:
570.88 Кб
Скачать

2.9 Субд MySql – сравнение с другими сетевыми реляционными субд, интерфейсы управления и администрирования, организация данных, типы данных, язык, примеры запросов.

MySQL – клиент-серверная система управления реляционными базами данных, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов. Разработкой и сопровождением системы занимается компания MySQL AB (Швеция, David Axmark).

Характеристики СУБД

  • SQL СУБД (реляционная), быстрая, но не оптимизированная под поиска и добавления, если предстоят частые изменения.

  • Стандарты: entry level SQL92, ODBC levels 0-2.

  • Лицензия - GPL/LGPL. Для хостинга лицензия не нужна.

  • Написана на C и C++. Базовая платформа: Solaris 2.7-2.8, SuSE Linux 7.1 (ядро 2.4, ReiserFS), но работает также в других ОС.

  • Многопотоковая.

  • API для C, C++, Java, Eiffel, Perl, PHP, Python, и др.

  • Парольная защита.

  • Таблицы в виде B-tree со сжатием индекса. До 32 индексов на таблицу. До 16 колонок на индекс.

  • По умолчанию MySQL-таблицы имеют максимальный размер около 4 Гб.

  • Записи переменной длины. Есть примеры использования MySQL с 60000 таблиц и 5 миллиардами строк.

  • Поддержка koi8-r и cp1251 (сортировка, сравнение и т.д.).

  • Клиенты могут соединяться по TCP/IP (можно использовать только, если никто не подслушивает) или Unix socket.

Имеются расширения к ANSI SQL92.

Отсутствующие возможности ANSI SQL92:

  • Вложенные подзапросы

  • хранимые процедуры и тригеры (тригеры не планируются совсем)

  • Внешние ключи

  • Представления

Основные модули СУБД

  • mysql – клиентская часть СУБД. Она обеспечивает интерфейс командной строки с СУБД MySQL, и возможность неинтерактивной пакетной обработки.

  • mysqlaccess – используется, чтобы внести в список привилегии пользователя для конкретной базы данных. Это дает информацию, которая может быть полезна при диагностировании проблем с доступом пользователей к данной базе данных.

  • mysqladmin – выполняет административные функции. Данная команда может использоваться для создания баз данных,изменения пароля пользователя (администратор может изменить пароль любому пользователю, а рядовой пользователь – только свой собственный), перезагрузки и остановки сервера, просмотра списка процессов, запущенных на сервере.

  • mysqld – программа является ядром СУБД MySQL. Она запускается как демон в системе и принимает подключения из клиентских программ, выполняя запросы и возвращая результаты. Она многопоточная, то есть обработает больше чем один запрос одновременно.

  • mysqldump – программа используется для создания дампа содержания базы данных MySQL. Она пишет инструкции SQL в стандартный вывод. Эти инструкции SQL могут быть переназначены в файл. Можно резервировать базу данных MySQL, используя mysqldump, но при этом Вы должны убедиться, что в этот момент с базой данных не выполняется никаких других действий.

  • mysqlshow – программа может использоваться, чтобы показать, с какими базами данных MySQL работает, какие таблицы данная база данных содержит, и какие поля есть в таблице в данной базе данных.

Типы данных.

BIGINT [(length)] [UNSIGNED] [ZEROFILL]

8 байт целое (если компилятор поддерживает такой тип)

BLOB

Двоичный объект (максимальная длина 65535 байт)

CHAR(NUM)

Строка фиксированной длины (1 <= NUM <= 255)

DATE

Сохраняет информацию о дате. Использует формат "YYYY-MM-DD". Может модифицироваться как строка или число.

Диапазон для этого типа данных от 0000-00-00 до 9999-12-31. Так что "проблема 2000" здесь не стоит. В отличие от TIMESTAMP, DATE принимает годы и в виде двух цифр от 0000 до 0099. Тип DATE имеет длину 4 байта.

DATETIME

Объединение типов DATE и TIME. Тип DATETIME идентичен типу TIMESTAMP со следующими исключениями:

Когда запись вставляется в таблицу, содержащую поля типа DATETIME, поле DATETIME не изменяется.

Диапазон для поля типа DATETIME: '0000-01-01 00:00:00' - '9999-12-31 23:59:59' при использовании в контексте строки, и '00000000000000' - '99991231235959' при использовании в контексте числа.

Тип DATETIME имеет длину 8 байт.

DECIMAL (length,dec)

Десятичное число с плавающей запятой.

DOUBLE [(length,dec)]

Число (4 или 8 байт) двойной точности с максимальной длиной и фиксированном числом десятичных чисел.

FLOAT [(precision)]

Номер с плавающей запятой. FLOAT(4) и FLOAT одиночная точность. FLOAT(8) обеспечивает двойную точность.

FLOAT [(length,decimals)]

Число одиночной точности с максимальной длиной и фиксированном числом десятичных чисел (4 байта).

INT [(length)] [UNSIGNED] [ZEROFILL]

Целое (4 байта).

INTEGER [(length)] [UNSIGNED] [ZEROFILL]

Целое число 4 байта

LONGBLOB

Двоичный объект с максимальной длиной 2**32 байт.

MEDIUMBLOB

Двоичный объект с максимальной длиной 16777216 байт.

MEDIUMINT [(length)] [UNSIGNED] [ZEROFILL]

Целое (3 байта).

REAL [(length,dec)]

Идентично DOUBLE (8 байт).

SMALLINT [(length)] [UNSIGNED] [ZEROFILL]

Целое (2 байта).

TINYBLOB

Двоичный объект с максимальной длиной 255 байт.

TINYINT [(length)] [UNSIGNED] [ZEROFILL]

Целое число (1 байт).

VARCHAR(NUM)

Строка переменной длины (1 <= NUM <= 255)

TIME

Хранит информацию о времени. Использует формат "HH:MM:SS". Может использоваться как строка или число.

Данные типа TIME имеют длину 3 байта.

TIMESTAMP(NUM)

Автоматически изменяется при вставке/обновлении. Имеет формат YYMMDDHHMMSS или YYYYMMDDHHMMSS. Когда используете mysql с ODBC и Access Вы должны использовать значение 14 для NUM, поскольку это заставляет MySQL всегда использовать в годах четыре цифры. Значение 12 заставит MySQL использовать в году две цифры. Значение по умолчанию - 14.

В случае таблиц с несколькими полями TIMESTAMP только первое такое поле будет модифицироваться автоматически.

Физическая организация данных

Каждая база данных находится в своём каталоге, имя которого соответствует имени базы. Каждая таблица находится в отдельном файле <имя таблицы>.MYD, индекс в файле <имя таблицы>.MYI, файл определения таблицы <имя таблицы>.frm

Основные команды MySQL

СУБД MySQL оперирует подмножеством языка SQL, соответствующим спецификации ANSI SQL 92.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]