- •22 Методические указания к лабораторной работе №1 "Проектирование базы данных"
- •Проектирование базы данных введение
- •Порядок выполнения работы
- •Наибольшее распространение для семантического моделирования получила модель "сущность-связь" (Entity-Relationship) 2, или er-модель.
- •Рассмотрим базовые понятия er-модели.
- •Различают следующие виды атрибутов:
- •Реляционная модель данных
- •Ограничения целостности
- •6. Ссылочная целостность
- •Стандартные типы данных
- •Типы данных
- •Создание баз данных и таблиц на sql Для операций над базами данных и таблицами в стандарте sql имеются следующие операторы:
- •Объявление текущей базы данных
- •Домены и пользовательские типы данных
- •Правила преобразования er-модели в реляционную
- •Проектирование доменов
- •Создание автоинкрементных столбцов
- •Нормализация
- •Первая нормальная форма (first normal form) – 1нф
- •Библиографический список
Создание баз данных и таблиц на sql Для операций над базами данных и таблицами в стандарте sql имеются следующие операторы:
CREATE DATABASE |
– создать новую базу данных |
DROP DATABASE |
– удалить базу данных |
SET DATABASE, USE |
– сделать базу данных текущей |
CREATE TABLE |
– создать таблицу |
ALTER TABLE |
– изменить структуру существующей таблицы (добавить или удалить столбцы или ограничения целостности) |
DROP TABLE |
– удалить таблицу |
Ниже приводится синтаксис этих операторов по стандарту SQL. В реальных СУБД есть отличия от стандарта более или менее значительные. Разновидности языкаSQL, применяемые в конкретной СУБД, называютсядиалектами SQL. Например, в СУБДOracleдиалект называетсяPL/SQL; вMSSQLServer–Transact-SQL; диалектInterBase–isql. Отличия диалектов от стандарта могут проявляться в том, что изменен порядок следования ключевых слов в операторах; имеются новые типы данных, отдельные конструкции стандартаSQLмогут вовсе не поддерживаться. Диалекты описываются в справочной системе конкретной СУБД.
Имена таблиц, столбцов и других объектов базы данных могут включать латинские буквы, цифры и символ подчеркивания. Специальные символы (@$# и т.п.) обычно указывают, что таблица системная и временная. Стандарт SQLне рекомендует использовать в именах русские (национальные) буквы, пробелы и зарезервированные слова. Но если они используются, то имена следует заключать в кавычки ".." или в квадратные скобки [..].
При описании конструкций SQLбудут использоваться следующие правила: в квадратных скобках [ ] записываются необязательные части конструкции; альтернативные конструкции разделяются вертикальной чертой | ; фигурные скобки {} выделяют логические блоки конструкции; многоточие…указывает на то, что предшествующая часть конструкции может многократно повторяться.
Создание базы данных
CREATE DATABASE Имя_базы_данных
Удаление одной и более баз данных
DROP DATABASE Имя_базы_данных [,Имя_базы_данных …]
Объявление текущей базы данных
USE Имя_базы_данных –- в SQL Server и MySQL
SET DATABASE Имя_базы_данных -- в InterBase
Создание таблицы
CREATE TABLE Имя_таблицы (
описание_столбца [, описание_столбца | ограничение_целостности_таблицы…]
)
описание_столбца
Имя_столбца ТИП [DEFAULT значение_по_умолчанию]
[NOT NULL]
{[UNIQUE | PRIMARY KEY]}
|
{[REFERENCES Имя_таблицы(Имя_столбца)]
[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
[ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
}
[CHECK (условие_проверки)]
ТИП столбца может быть либо стандартным типом данных, либо именемдомена.
Некоторые СУБД позволяют создавать вычислимые столбцы(computed columns). Это виртуальные столбцы, значение которых не хранится в физической памяти, а вычисляется сервером СУБД при всяком обращении к этому столбцу. В описании вычислимого столбца указывается формула, по которой производится вычисление. В нее могут входить значения других столбцов этой строки, константы, встроенные функции и глобальные переменные.
Описание вычислимого столбца в SQLServerимеет вид:
описание_столбца Имя_столбца AS выражение
Описание вычислимого столбца в InterBaseимеет вид:
описание_столбца Имя_столбца COMPUTED BY (выражение)
СУБД MySQL3.23 вычислимые столбцы не поддерживает.
ограничение_целостности_таблицы
CONSTRAINT Имя_ограничения_целостности
{UNIQUE|PRIMARY KEY} (список_столбцов_образующих_ключ)
|FOREIGN KEY (список_столбцов_FK)
REFERENCES Имя_таблицы(список_столбцов_PK)
[ON DELETE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
[ON UPDATE {NO ACTION|CASCADE|SET DEFAULT|SET NULL}]
|CHECK (условие_проверки)
Некоторые СУБД допускают объявление врéменных таблиц. Например, в SQLServerимена временных таблиц должны начинаться с символа # (локальные временные таблицы, «видимые» только создавшему их пользователю) или ## (глобальные таблицы, видимые всем пользоватлям); вMySQLдля создания временных таблиц используется ключевое словоTEMPORARY, например:
CREATE TEMPORARY TABLE … (далее синтаксис аналогично create table).
Изменение структуры таблицы
Этот оператор позволяет изменять тип столбцов существующих таблиц, добавлять и удалять столбцы и ограничения целостности.
ALTER TABLE Имя_таблицы
-- изменение типа столбца (в SQL Server и InterBase)
ALTER COLUMN Имя_столбца новый_ТИП
-- изменение типа, имени и ограничений столбца (в MySQL)
CHANGE COLUMN Имя_столбца описание_столбца
-- добавление обычного или вычислимого столбца
|ADD описание_столбца
-- добавление ограничения целостности
|[WITH CHECK|WITH NO CHECK] ADD ограничение_целостности_таблицы
-- удаление столбца
|DROP COLUMN Имя_столбца
-- удаление ограничения целостности
|DROP CONSTRAINT Имя_ограничения_целостности
-- включение или отключение проверки ограничений целостности (в SQL Server)
|{CHECK|NO CHECK} CONSTRAINT {Список_имен_ограничений_целостности|ALL}
Удаление таблицы
DROP TABLE Имя_таблицы
Здесь перечислены наиболее общие части операторов SQL, близкие к стандарту. При создании таблиц в лабораторной работе рекомендуется обращаться к документации конкретной СУБД, поскольку специфические отличия диалектов помогут оптимизировать работу СУБД.