
- •2.3 Базы данных [5-7] тебеньков е.С.
- •1 .Проектирование базы данных с помощью нормализации
- •2. Операция «соединения» и ее свойства.
- •3. Разложение без потерь. Теорема. Примеры
- •4. Полностью соединимые отношения. Примеры
- •5. Операторы описания данных в sql
- •6. Операторы манипулирования данными в sql
- •7. Управление транзакциями
- •1. Запуск транзакции
- •2. Завершение транзакции
- •8. Технологии «клиент-сервер»
- •1 Вариант - файловый сервер.
- •2 Вариант – удаленный доступ.
- •3 Вариант – сервер Базы Данных.
- •4 Вариант – сервер приложений.
- •9. Оператор Select
- •10. Индексация. Достоинства и недостатки. Примеры
- •13. Архитектуры бд
- •1.1.2. Архитектуры бд
- •Локальная
- •Архитектура "файл-сервер"
- •Архитектура удаленных бд ("клиент-сервер")
- •1.1.3. Достоинства и недостатки различных архитектур приложений бд
- •14. Управление правами доступа в sql
- •15. Модель Чена
- •16. Примеры бинарных связей
- •17. Правила Джексона для перехода от модели Чена к реляционной модели
- •18. Реляционная модель данных. 12 правил Кодда.
- •12 Правил Кодда.
- •19. Ограничения целостности в реляционной модели данных и их поддержка в sql
- •20. Восстановление данных в бд
5. Операторы описания данных в sql
Data Definition Language (DDL) (язык описания данных) - это семейство компьютерных языков, используемых в компьютерных программах для описания структуры баз данных.
На текущий момент наиболее популярным языком DDL является SQL, используемый для получения и манипулирования данными в РСУБД, и сочетающий в себе элемены DDL и DML.
Функции языков DDL определяются первым словом в предложении (часто называемом запросом), которое почти всегда является глаголом. В случае с SQL эти глаголы - "create" ("создать"), "alter" ("изменить"), "drop" ("удалить"). Это превращает природу языка в ряд обязательных утверждений (команд) к базе данных.
Языки DDL могут существенно различаться у различных производителей СУБД. Существует стандарт SQL, установленный ANSI, но производители СУБД часто предлагают свои собственные "расширения" языка.
Так как под базой данных понимается совокупность реляционных таблиц, то основные операторы связаны с оперированием таблицами.
create database имя – создание базы данных;
close database – закрыть текущую базу данных;
open database имя – начать работу с существующей базой данных;
drop database имя – удаление БД;
create table имя (поле тип атрибуты,
поле1 тип атрибуты...)
атрибуты таблицы
Типы данных в SQL.
Integer – целое,занимает 4 байта;
Smallint - короткое целое, занимает 2 байта;
Serial- 4 байта, последовательность целых, испорльзуется в качестве ключа, генерируется автоматически, может быть последовательная генерация или случайная.
Float – число с плавающей точкой, занимает 8 байт;
Smallfloat – короткое число с плавающей точкой, занимает 4 байта;
decimal(P[,n]) – упакованное число, Р – общее количество цифр в числе, n- обозначает сколько чисел после запятой, C положительное число, D – отрицательное;
money(P,n) – для представления денежных едениц;
date – для хранения дат;
datetime a to b – временный интервал от а до b, значения а и b могут быть следующие:
year
day
month
hour
minute
second
fraction(1,2,3),
например, datetime year to hour 2000-04-10-13
char – строки постоянной длины;
char(n) – строки постоянной длины до n;
varchar – строки до 255;
varchar(n) – строки до n;
text – произвольные тексты до 2ГБ;
byte произвольная последовательность байтов до 2ГБ;
null – пустое значение, причем 2 пустых значения не равны между собой.
Атрибуты, используемые для описания таблиц.
Атрибуты, описывающие характеристики столбца:
Primary key - данное поле является первичным ключом;
References имя_таблицы (имя_поля) – данный столбец является внешним ключом, он взят из таблицы и поля, указанного в атрибуте;
Not null – в этом столбце не должно быть пустых значений;
Default значение – указывает значение, которое принимается по умолчанию.
Unique - все значения в этом поле должны быть уникальными, по умолчанию поле Primary key должно быть Not null и Unique;
Check (Условие) – задает условие, которое должно быть истинным при заполнении информации в этом поле.
Атрибуты на уровне таблицы.
Check (Условие) – это значение должно быть истинным, чтобы компьютер признал все изменения правильными;
Unique (список полей) – все значения в комбинации полей должны быть уникальными;
Primary key (список полей) – указывается на уровне таблицы, если первичный ключ состоит из нескольких полей;
References имя_поля1 from имя_таблицы1 (поле1) – в нашей таблице имя_поля1 берется из таблицы1, поля1.
О
бработка
ссылочной целостности.
Restrict - указывает каким образом поддерживается
On delete cascade процедура удаления в связующей таблице.
null
restrict - указывае каким образом поддерживается
On update cascade процедура изменения в связующей таблице.
null
Restrict указывает, что удаление (изменение) в связующей таблице при наличие связей запрещено.
Cascade обозначает, что удаление (изменение) сначала происходит в связующей таблице, а затем изменяется сам объект.
Null указывает, что ключи связей получают значение null.
Рассмотрим на примере оn update:
Пусть у нас есть 2 таблицы, в первой находится описание объекта, а вторая таблица является связующей.
-
№поставщика
Фамилия
1
Петров
1
Петров
-
№поставщика
Название_детали
вес
количество
1
Болт
13
244
1
Гайка
12
200
Если в оn update стоит restrict, то при изменении №поставщика, например, на 10, будет выдано сообщение о том, что данный номер используется в связующей таблице, и изменение будет запрещено.
Если в оn update стоит cascade, то сначала произойдет изменение в №поставщика в связующей таблице, и только потом изменится №поставщика в первой таблице.
Если в оn update стоит null, то в первой таблице №поставщика изменится с 1 на 10, а в связующей таблице вместо №поставщика будет записано null.
Примеры:
Создать таблицу для сохранения сведений о постоянных клиентах с указанием названий города и фирмы, фамилии, имени и отчества клиента, номера его телефона.
CREATE TABLE Клиент
(Фирма VARCHAR(50) NOT NULL,
Фамилия VARCHAR(50) NOT NULL,
Имя VARCHAR(50) NOT NULL,
Отчество VARCHAR(50),
ГородКлиента VARCHAR(50),
Телефон CHAR(10) NOT NULL)
Добавить в таблицу Клиент поле для номера расчетного счета.
ALTER TABLE Клиент ADD Рас_счет CHAR(20)
Добавление ограничения внешнего ключа, реализующего декларативную ссылочную целостность.
ALTER TABLE Сделка ADD CONSTRAINT fk_Товар
FOREIGN KEY (КодТовара) REFERENCES Товар
ON UPDATE CASCADE ON DELETE CASCADE