
- •Введение
- •Часть 1
- •Глава 1 модели данных
- •Уровни моделей данных
- •1 Инфологические модели данных
- •1.1 Диаграмма Бахмана
- •1.2 Модель «сущность-связь»(er)
- •Нотация Мартина
- •Нотация idef1x
- •Нотация Баркера
- •2. Даталогические модели
- •2.1. Документальные модели
- •2.1.1. Ориентированные на формат документа
- •2.1.2. Дескрипторные модели
- •2.1.3. Тезаурусные модели
- •2.2. Фактографические модели
- •2.2.1. Теоретико-графовая модель
- •2.2.1.1. Иерархическая модель
- •2.2.1.2. Сетевая модель
- •2.2.2. Теоретико-множественные модели
- •2.2.2.1. Реляционная модель
- •Правила Теда Кодда
- •2.2.2.2. Бинарных ассоциаций
- •2.2.3. Объектно-ориентированные модели
- •3. Физические модели
- •3.1. Модели, основанные на файловых структурах
- •3.2. Модели, основанные на странично-сегментной организации
- •Известные сетевые субд:
- •Глава 2. Проектирование баз данных
- •1.1. Избыточность данных и аномалии обновления
- •1.2. Функциональные зависимости
- •1.3. Нормальные формы и схемы выполнения нормализации
- •1) 1Нф.
- •2) 2Нф.
- •3) 3Нф.
- •4) Нфбк (нормальная форма Бойса-Кодда).
- •5) 4Нф.
- •6) 5Нф.
- •1.4 Синтез реляционных баз данных
- •1.5 Пример синтеза
- •1.6 Пример декомпозиции
- •Часть 2
- •Реляционная алгебра
- •Введение
- •Стандартные реляционные операции
- •Свойства стандартных операций
- •Специальные операции
- •Язык sql как стандартный язык баз данных
- •Введение в sql
- •2.1.1 Функциональные возможности sql
- •2.2 Создание баз данных
- •2.2.1 Оператор create database
- •2.3 Удаление баз данных
- •2.4.3 Размер поля
- •2.4.4 Тип поля
- •2.5 Удаление таблиц
- •2.5.1 Оператор drop table
- •2.6. Данные и записи данных
- •2.6.1 Оператор select
- •2.6.2 Оператор distinct
- •2.6.3 Оператор from { таблица [ псевдоним ] } [,...]
- •2.6.4 Оператор where (условие)
- •2.6.5 Оператор group by { поле | Integer } [,...]
- •2.6.6 Оператор having( условие)
- •2.6.7 Оператор order by { поле | Integer [ asc|desc ] } [,...]
- •2.6.8 Оператор union [all] select-команда
- •2.6.9 Оператор intersect [all] select-команда
- •2.6.10 Оператор except [all] select-команда
- •2.6.11 Into { temp | scratch } таблица
- •2.6.12 Insert - добавлять данные
- •2.6.13 Values ( константа [,...] )
- •2.6.18 Unload - выгрузить данные в текстовый файл
- •2.7 Операторы
- •2.7.3 Арифметические операторы
- •2.7.4 Приоритеты операторов
- •2.8 Функции
- •2.8.3 Текстовые функции
- •2.8.4 Функции работы с временем и датами
- •2.8.5 Вспомогательные функции
- •2.9 Виды на таблицы данных (Просмотры)
- •2.9.1Create view - создать новый вид на таблицу данных
- •2.9.2 Drop view - удалить вид на таблицу данных
- •2.10 Пользовательские процедуры
- •2.10.1 Create procedure - создать пользовательскую процедуру
- •2.10.2 Dba
- •2.10.3 References { byte | text }
- •2.10.4 Default { Wert | null }
- •2.10.5 Returning { Feldtyp | references { byte | text } }
- •2.10.6 Drop procedure - удалить процедуру
- •2.12.2 Нормальный текст
- •1999 - Sql-99, sql-3 (iso/iec 9075:1999(e) Information technology - Database languages - sql)
- •2003 - Sql-2003
- •4. Виды систем баз данных
- •4.1.Oracle
- •4.1.1 Типы данных
- •4.1.1.1.Символьные типы
- •4.1.1.2.Числовые типы
- •Даты, временные метки и интервалы
- •4.1.1.3.Логические типы
- •Двоичные данные
- •4.1.1.4.Типы данных для сети Интернет
- •4.1.1.5.Типы данных «Any»
- •4.2. Mysql
- •4.2.1 Типы данных.
- •4.2.1.1.Character String (строковый)
- •4.2.1.2.National Character String (национальный строковый)
- •4.2.1.3.Binary Large Object String (двоичный)
- •4.2.1.4.Numeric (числовой)
- •4.2.1.5.Datetime (дата/время)
- •4.2.1.6.Interval (интервальный)
- •4.2.1.7.Типы enum и set
- •4.2.2Использование типов столбцов их других систем управления базами данных
- •4.3. Postgresql
- •4.3.1 Типы данных
- •4.3.1.1Числовые типы
- •4.3.1.1.Целочисленные типы
- •4.3.1.2.Числа с заданной точностью
- •4.3.1.3.Типы с плавающей точкой
- •4.3.1.4.Серийные типы
- •4.3.1.5.Денежные типы
- •4.3.1.6.Символьные типы
- •4.3.1.7.Двоичные типы данных
- •4.3.1.8.Типы дата/времени
- •4.3.1.9.Логический тип
- •4.3.1.10.Перечисления
- •5. Использованные в пример таблицы данных
- •Символьные
- •Числовые типы данных
- •Двоичные типы данных
- •Типы данных времени, даты, интервалы
- •Логические типы данных
- •Список литературы
- •Оглавление
- •Часть 1………………………………………………………….…………………………….………… 4
- •Глава 1 модели данных………………………….………………….……………….…........…. 4
- •Глава 2 проектирование баз данных…………..……………………………………...… 40
- •1.4 Синтез реляционных баз …...………………………………………………………… 44
- •Часть 2……...…...………………………………………………………………………………….… 52
4.2. Mysql
4.2.1 Типы данных.
MySQL включает в себя многие типы данных из ISO SQL: 2003 Standard и добавляет другие типы данных. ISO SQL: 2003 Standard определяет семь категорий типов данных:
CharacterString(строковый)
National Character String (национальный строковый)
Binary Large Object String (двоичный)
Numeric (числовой)
Boolean (логический)
Datetime (дата/время)
Interval (интервальный)
4.2.1.1.Character String (строковый)
ISO SQL: 2003 Standard определяет три строковых типа. Каждый строковый тип имеет более чем одно ключевое слово, связанное с ним. Стандартные строковые типы и связанные с ними ключевые слова:
С фиксированной длиной строки:
CHARACTER(длина)
CHAR(длина)
С переменной длиной строки:
CHARACTER VARYING(длина)
CHAR VARYING(длина)
VARCHAR(длина)
Символьные объекты:
CHARACTER LARGE OBJECT
CHAR LARGE OBJECT
CLOB
Типы CHAR и VARCHR похожи, но отличаются способом сохранения и извлечения.
Длина столбца CHAR фиксирована и равна длине, которая указывается при создании таблицы. Она может иметь любое значение от 0 до 255 (до версии MySQL 3.23 длина CHA R могла быть от 1 до 255). При сохранении значение CHA R выравнивается за счет добавления пробелов справа до указанной длины столбца. Когда значение CHA R извлекается, завершающие пробелы удаляются.
Значения, хранимые в столбцах VARCHAR , являются строками переменной длины. Вы можете объявить столбец VARCHAR с длиной от 0 до 255, так же, как и CHAR (до версии MySQL 3.23 длина VARCHAR могла быть от 1 до 255). Однако, в отличие от CHAR , в столбце VARCHAR сохраняется столько знаков, сколько необходимо, плюс один байт для записи длины. Значение не дополняется пробелами, наоборот, завершающие пробелы удаляются при сохранении. Это поведение отличается от стандартных спецификаций SQL.
При сохранении и извлечении никаких преобразований регистра не выполняется. Если вы присваиваете столбцу CHAR или VARCHAR значение, превышающее его длину, оно усекается.
Если вам нужен столбец, для которого не выполняется удаление завершающих пробелов, рассмотрите возможность применения типов BLOB или TEXT.
Также MySqlподдерживает несколько нестандартных строковых типов
С переменной длиной строки:
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
Рассмотрим пример использования CHAR:
CREATE TABLE t
(
c l CHAR(20) CHARACTER SET utf8 ,
c2 CHAR(20) CHARACTER SET latinl COLLATE latinl_bin
) ;
Показанное выше определение таблицы создает столбец С1, который имеет набор символов utf8 с порядком сопоставления по умолчанию для этого символьного набора, и столбец С2 с набором символовlatinlи бинарным порядком сопоставления. Бинарное сопоставление нечувствительно к регистру.
Строковые типы
-
Наименование типа данных
Принадлежность к SQl стандарту
Фиксированная/переменная длина
Диапазон
Размер
Атрибуты
CHAR
принадлежит
фиксированная
длина 0-255, зависит от характера множества
M*x байт
ASCII
BINARY
CHARACTER
SETCOLLATION
DEFAULT
UNICODE
VARCHAR
принадлежит
переменная
длина 0-255, зависит от характера множества
L*x+1
если L<255
L*x+2
если L>255
ASCII
BINARY
CHARACTER
SETCOLLATION
DEFAULT
UNICODE
TINYTEXT
не принадлежит
переменная
максимальная длина
255 байт
L+1 байт
ASCII
BINARY
CHARACTER
SETCOLLATION
UNICODE
TEXT
не принадлежит
переменная
максимальная длина
65,535 байт (64Kb)
L+2
байта
ASCII
BINARY
CHARACTER
SETCOLLATION
UNICODE
MEDIUMTEXT
не принадлежит
переменная
максимальная длина
16,777,215 байт (16Mb)
L+3 байта
ASCII
BINARY
CHARACTER
SETCOLLATION
UNICODE
LONGTEXT
не принадлежит
переменная
максимальная длина
4,294,967,295 (4Gb)
L+4 байта
ASCII
BINARY
CHARACTER
SETCOLLATION
NOT NULL
NULL
UNICODE