- •1.3. Понятия реляционной модели: атом, домен, кортеж, отношение. Термины реляционной модели и теории множеств. Свойства реляционных баз данных. Реляционная алгебра. Операции над множествами. Примеры.
- •1Nf. Отношение находится в первой нормальной форме тогда и только тогда, когда значения всех его атрибутов атомарны.
- •3Nf. Отношение находится в третьей нормальной форме тогда и только тогда, когда оно находится во второй нормальной форме и не содержит транзитивных зависимостей.
- •2.2.История развития и стандарты языка sql. Наборы команд sql и примеры операторов. Типы данных, управляющие конструкции языка Transact-sql.
- •Операторы манипулирования данными -- операторы добавления, изменения и удаления записей.
- •Insert – добавление информации к таблице
- •2.6. Курсоры в Microsoft sql Server: примеры создания, использования и удаления.
- •2.8 Субд Oracle – сравнение с другими сетевыми реляционными субд, состав, архитектура, типы данных, язык, примеры запросов. Язык sql3 – способы работы с объектами в реляционных бд.
- •2.9 Субд MySql – сравнение с другими сетевыми реляционными субд, интерфейсы управления и администрирования, организация данных, типы данных, язык, примеры запросов.
- •3.1 Ретроспектива развития однопользовательских субд. Сравнительная характеристика современных однопользовательских субд.
- •Типы переменных:
- •Массивы
- •Объекты
- •Доступность
- •Обработка ошибок
- •Параметры процедур и функций.
- •Чтобы задать свойство раздела формы или отчета
- •4.2. Способы организации Интернет-доступа к сетевым субд. Примеры программирования активных серверных страниц для организации доступа к субд в технологиях asp, asp.Net, php.
- •5.1. Недостатки и ограничения реляционной модели. Постреляционные бд, примеры. Введение объектной модели в язык sql3. Примеры sql-запросов, содержащих объекты.
- •5.2. Идея ообд. Преимущества и недостатки объектно-ориентированных баз данных. Стандарт odmg: общие сведения.
- •Преимущества:
- •Недостатки:
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.