Раздел 3 Построение физической модели базы данных



На еще более низком уровне находится физическая модель данных. Физическая модель данных описывает данные средствами конкретной СУБД. Мы будем считать, что физическая модель данных реализована средствами именно реляционной СУБД, хотя, как уже сказано выше, это необязательно. Отношения, разработанные на стадии формирования логической модели данных, преобразуются в таблицы, атрибуты становятся столбцами таблиц, для ключевых атрибутов создаются уникальные индексы, домены преображаются в типы данных, принятые в конкретной СУБД.

В курсовом проекте используется СУБД MySQL. Поэтому физическую модель нужно строить в соответствии с требованиями к данной СУБД. В курсовом проекте необходимо привести полный код SQL-операторов для создания всех таблиц в базе данных с описанием типов данных и ключей.

Для создания таблицы используется следующий SQL-оператор:

CREATE TABLE table_name (create_definition,...)

Здесь create_definition имеет следующий формат:

create_definition: column_name type NOT NULL [DEFAULT default_value] [ PRIMARY KEY ] or column_name type [NULL] [ PRIMARY KEY ] or PRIMARY (KEY|INDEX) [key_name] (column_name,...) or (KEY|INDEX) [key_name] (column_name[length],...) or INDEX [key_name] (column_name[length],...) or UNIQUE (column_name[length],...) or FOREIGN (KEY|INDEX) [key_name] (column_name[length],...) REFERENCES table_name [ON DELETE (RESTRICT | CASCADE | SET NULL) ]

В MySQL все поля имеют неявное значение по умолчанию, если объявлены, как не пустые (NOT NULL). Если вы не даете значения по умолчанию при использовании не пустого поля, оно будет назначено, исходя из типа поля.

Номер столбца может иметь дополнительное ключевое слово AUTO_INCREMENT, чтобы автоматически получить номер = самый большой номер столбца + 1 для каждой вставки, в которой номер столбца = 0 или NULL. ТО ЕСТЬ, если Вы попробуете вставить значение ноля в числовой столбец, который имеет атрибут AUTO_INCREMENT, Вы получите номер столбца, который на 1 большим, чем самый большой предварительно использованный номер.

Если Вы желаете начать отсчет не с ноля, просто вставьте желательное стартовое значение в первой записи, которую Вы вставляете в данную таблицу. В настоящее время нет никакого другого способа достичь этого эффекта.

Если Вы используете AUTO_INCREMENT, Вы можете использовать его только в одном поле таблицы. Обратите внимание также, что это поле должно быть объявлено как первичный ключ, и должно быть числовым.

ZEROFILL означает, что значение дополняется слева нулями до максимальной длины поля.

Столбцы ключа и столбцы TIMESTAMP не могут быть пустыми. Для столбцов ключа атрибут NULL тихо удаляется.

Вы можете вставить NULL для полей типа TIMESTAMP и числовых полей с атрибутом AUTO_INCREMENT.

Удаленные записи находятся в связанном списке, и последующие вставки будут повторно использовать старые позиции.

При INSERT/UPDATE все строки (CHAR и VARCHAR) приводятся к максимальной длине, заданной, CREATE. Все хвостовые пробелы автоматически удаляются. Например, VARCHAR(10) задает, что столбец может содержать строки с длиной до 10 символов.

Что угодно/0 дает значение NULL.

Типы данных

Поля должны иметь один из следующих типов данных:

BIGINT [(length)] [UNSIGNED] [ZEROFILL] 8 байт целое (если компилятор поддерживает такой тип)
CHAR(NUM) Строка фиксированной длины (1 <= NUM <= 255)
DATE Сохраняет информацию о дате. Использует формат "YYYY-MM-DD". Может модифицироваться как строка или число, хотя Вы, вероятно, используете контекст строки для времени и даты. MySQL тип DATEпонимает по крайней мере следующие синтаксис. · YYYY-MM-DD (Обратите внимание что '- ' может фактически быть ЛЮБОЙ не цифрой) · YY-MM-DD (Обратите внимание что '- ' может фактически быть ЛЮБОЙ не цифрой) · YYMMDD · YYMM Диапазон для этого типа данных от 0000-00-00 до 9999-12-31. Так что "проблема 2000" здесь не стоит. В отличие от TIMESTAMP, DATE принимает годы и в виде двух цифр от 0000 до 0099. Это не очень полезно в большинстве случаев. Используйте задание лет четырьмя цифрами в полях типа DATE. Тип 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 байт.
DOUBLE [(length,dec)] Число (4 или 8 байт) двойной точности с максимальной длиной и фиксированном числом десятичных чисел.
INT [(length)] [UNSIGNED] [ZEROFILL] Целое (4 байта).
INTEGER [(length)] [UNSIGNED] [ZEROFILL] Целое число 4 байта
MEDIUMINT [(length)] [UNSIGNED] [ZEROFILL] Целое (3 байта).
REAL [(length,dec)] Идентично DOUBLE (8 байт).
SMALLINT [(length)] [UNSIGNED] [ZEROFILL] Целое (2 байта).
TINYINT [(length)] [UNSIGNED] [ZEROFILL] Целое число (1 байт).
VARCHAR(NUM) Строка переменной длины (1 <= NUM <= 255)
TIME Хранит информацию о времени. Использует формат "HH:MM:SS". Может использоваться как строка или число. MySQL тип TIME понимает следующий синтаксис. · HH:MM:DD · HHMMDD · HHMM · HH Данные типа TIME имеют длину 3 байта.
TIMESTAMP(NUM) Автоматически изменяется при вставке/обновлении. Имеет формат YYMMDDHHMMSS или YYYYMMDDHHMMSS. Вы можете модифицировать поле TIMESTAMP при выполнении INSERT. Это полезно, когда Вы хотите установить произвольную дату/время для записи. В течение модификаций Вы не должны определять значение для вашего поля TIMESTAMP, или определять NULL как значение, для вставки. Иначе вы получите недопустимое значение для этого поля. Когда используете mysql с ODBC и Access Вы должны использовать значение 14 для NUM, поскольку это заставляет MySQL всегда использовать в годах четыре цифры. Значение 12 заставит MySQL использовать в году две цифры. Значение по умолчанию - 14. Обратите внимание, что в случае таблиц с несколькими полями TIMESTAMP только первое такое поле будет модифицироваться автоматически.

 

 

Далее необходимо построить физическую модель базы данных. Она представляет собой таблицы с указанием атрибутов их типов и первичных ключей, а также связи между таблицами. Пример показан на рисунке 9.

 

 

 
 

 

 


Рисунок 9 – Схема физической модели базы данных.

 


Дата добавления: 2016-01-04; просмотров: 30; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!