Uploaded by Сергей Геннадьевич Королев

Ограничения целостности

advertisement
Практическая работа №10
В соответствии с вариантом задания разработать точную структуру записей
таблицы,включая выбор типов данных для каждого поля строки.
Работа с таблицей.
В среде СУБД SQL Server используя инструкции языка DDL cоздать таблицы с
учетом приведенных в задании ограничений (база данных CONST_<ФИО>). Просмотреть
результат выполнения данного оператора с помощью системной хранимой процедуры
sp_help.
Заполнить созданную таблицу с использованием оператора Insert (6-8 записей).
Просмотреть заполненную таблицу.
Работа с представлением
В соответствии с заданием составить оператор создания представления, выполнить
данный оператор. Просмотреть результат выполнения данного оператора с помощью
системной хранимой процедуры sp_help. Просмотреть представляемую таблицу.
Включить несколько записей в представляемую таблицу с использованием
оператора включения. Просмотреть представляемую и базовую таблицы и сравнить их с
предыдущими вариантами этих таблиц.
Типы данных и операторы языка T-SQL
Смотреть в приложении.
Варианты заданий
1. Схема таблицы СТУДЕНТ
 Идентификатор зачетки;
 Фамилия, инициалы студента;
 Специальность;
 Группа;
 Дата рождения;
 Наличие стипендии (имеется/не имеется);
 Адрес проживания;
 Средний балл зачетки
Ограничение уникальности: идентификатор зачетки.
Проверочные ограничения: а) код группы должен иметь следующую структуру:
<цифра><цифра><буква><буква><буква><цифра>; б) средний балл зачетки должен
быть в интервале [2,5].
Спецификация представления: представляемая таблица содержит идентификатор
зачетки, фамилию и инициалы студента, а также средний балл зачетки для студентов,
получающих стипендию.
2. Схема таблицы ПРЕПОДАВАТЕЛЬ_ДИСЦИПЛИНЫ
 Личный номер
 Фамилия
 Должность
 Количество часов
 Оклад
 Кафедра
 Телефон
Ограничение уникальности: личный номер
Проверочные ограничения: а) должность выбирается из списка: ассистент, старший
преподаватель, доцент, профессор; б) телефон имеет следующую структуру:
<цифра><цифра><цифра>.
Спецификация представления: представляемая таблица содержит информацию о
преподавателях, работающих на кафедре численных методов.
4. Схема таблицы ЭКЗАМЕН
 Название предмета;
 Фамилия и инициалы студента;
 Фамилия и инициалы преподавателя;
 Должность преподавателя;
 Дата сдачи экзамена;
 Номер аудитории;
 Оценка;
 Сложность предмета.
Ограничение уникальности: название предмета, фамилия и инициалы студента.
Проверочные ограничения: а) должность преподавателя должна быть одной из
следующего списка: ассистент, старший преподаватель, доцент, профессор; б)
сложность предмета должна быть в интервале [0,1].
Спецификация представления: представляемая таблица содержит названиепредмета,
фамилию и инициалы студента, а также экзаменационную оценку для тех экзаменов,
которые принимают профессора.
5. Схема таблицы ГОСУДАРСТВА
 Название
 Площадь (км2)
 Население
 Язык
 Денежная единица
 Религия
Ограничение уникальности: название государства
Проверочные ограничения: а) религия должна быть из следующего списка: римскокатолическая, православная, ислам, буддизм, иудаизм, лютеранская, протестантская; б)
площадь и население >0.
Спецификация представления: представляемая таблица содержит
название
государства, площадь, население, религию для государств с английским языком
общения.
6. Схема таблицы ВОЕННОСЛУЖАЩИЕ
 Номер военного билета;
 Фамилия и инициалы;
 Дата рождения;
 Род войск;
 Воинское звание;
 Оклад;
 Рост;
 Вес;
 Номер противогаза;
 Наличие водительских прав (имеются/не имеются)
Ограничение уникальности: номер военного билета.
Проверочные ограничения: а) номер военного билета должен состоять из шести
цифр; б) номер противогаза должен быть цифрой 1,2 или 3.
Спецификация представления: представляемая таблица содержит номер военного
билета, фамилию и инициалы, род войск военнослужащих ростом более 180 см.
7. Схема таблицы ГОСТИНИЦЫ
 Название
 Директор
 Количество мест
 Телефон
 Адрес
 Категория (2, 3, 4, 5 звездочек)
 Лицензия (есть/нет)
 Дата открытия
Ограничение уникальности: название
Проверочные ограничения: а) количество мест в гостинице >0 и <1000; б) категория
выражается символами *,**,***,****,*****.
Спецификация представления: представляемая таблица содержит название, адрес,
фамилию директора, телефон для гостиниц категории ***.
8. Схема таблицы КОМПЬЮТЕР
 Марка компьютера;
 Страна сборки;
 Процессор;
 Объем оперативной памяти;
 Объем внешней памяти;
 Быстродействие;
 Наличие мыши (имеется/не имеется)
 Марка монитора;
 Цена;
 Дата выпуска.
Ограничение уникальности марка компьютера, страна сборки.
Проверочные ограничения а)объем оперативной памяти должен быть в интервале
[2,128]Мбайт; б) дата выпуска должна быть не больше текущей даты.
Спецификация представления: представляемая таблица содержит маркукомпьютера,
страну сборки и цену для компьютеров, имеющих объем оперативной памяти более
8 Мбайт.
9. Схема таблицы УЧЕБНЫЙ_ПЛАН
 Код специальности;
 Название дисциплины;
 Семестр;
 Дата начала семестра;
 Общее количество часов;
 Наличие курсового проекта (имеется/не имеется);
 Формы отчетности (экзамены, зачеты).
Ограничение уникальности: код специальности, название дисциплины, семестр.
Проверочные ограничения: а) код специальности должен иметь следующую
структуру: <цифра><цифра><цифра><цифра> ; б) семестр должен быть или осенний или
весенний.
Спецификация представления: представляемая
таблица содержит код
специальности, семестр и название дисциплин, для которых предусмотрен курсовой
проект.
10. Схема таблицы ПОСТАВКИ ТОВАРОВ
 Название фирмы-поставщика;
 Название фирмы-потребителя;
 Товарный кредит (да/нет);
 Название товара;
 Количество единиц товара;
 Вес единицы товара;
 Цена единицы товара;
 Платежные реквизиты (адрес и номер расчетного счета);
 Дата отгрузки.
Ограничение уникальности: название фирмы-поставщика, название фирмыпотребителя.
Проверочные ограничения: а) поставляемыми товарами являются холодильники,
пылесосы и утюги; б) количество поставляемых единиц товара не должно превышать
100 штук.
Спецификация представления: представляемая таблица содержит все сведения о
товарах.
11. Схема таблицы КВАРТИРЫ
 Адрес
 Количество комнат
 Общая площадь (м2)
 Кухня (м2)
 Этаж
 Телефон (есть/нет)
 Балкон
 Год постройки
 Цена в долларах
Ограничение уникальности: адрес
Проверочные ограничения: а) балкон либо нет, либо есть, либо лоджия; б) площадь
кухни не больше общей площади квартиры
Спецификация представления: представляемая таблица содержит сведения обо всех
трехкомнатных квартирах
12. Схема таблицы АВТОТРАНСПОРТ
 Государственный номер;
 Тип(автобус, самосвал, тягач, джип);
 Марка;
 Год изготовления;
 Грузоподъемность или вместимость;
 Расход горючего на 100 км;
 Пробег к текущему техосмотру;
 Дата проведения последнего техосмотра;
 Успешность техосмотра (положительная/отрицательная)
Ограничение уникальности: государственный номер.
Проверочные ограничения: а)государственный номер имеет следующую структуру:
<буква><цифра><цифра><цифра><буква> ; б) автотранспорт может быть следующих
типов: автобус, самосвал, тягач, джип.
Спецификация представления: представляемая таблица содержит государственный
номер, тип и марку автотранспорта, успешно прошедшего техосмотр.
13. Схема таблицы ФАКУЛЬТЕТ
 Название факультета;
 Фамилия и инициалы декана;
 Телефон декана;
 Дата основания факультета;
 Число выпускающих кафедр;
 Число обучаемых студентов;
 Наличие иностранных студентов (имеются/не имеются);
 Удельный вес преподавателей с учеными степенями.
Ограничение уникальности: название факультета.
Проверочные ограничения: а) телефон деканата должен иметь следующую
структуру: 63<цифра><цифра><цифра><цифра>; б) удельный вес преподавателей
с учеными степенями должен быть в интервале [0,1].
Спецификация представления: представляемая таблица содержит название
факультета, фамилию и инициалы декана, а также число выпускающих кафедр для
факультетов, на которых учатся иностранные студенты.
14. Схема таблицы УСПЕВАЕМОСТЬ
 Факультет;
 Специальность;
 Дисциплина;
 Общее количество студентов;
 Количество сдававших студентов;
 Удельные
веса
отличных,
хороших,
удовлетворительных
и
неудовлетворительных оценок;
 Дата начала экзаменационной сессии;
Ограничение уникальности: факультет, специальность, дисциплина.
Проверочные ограничения: а) количество сдававших студентов не должно быть
больше количество студентов; б) сумма удельных весов отличных, хороших,
удовлетворительных и неудовлетворительных оценок должна быть равной 1.
Спецификация представления: представляемая таблица содержит названия
специальности и дисциплины, а также количество сдававших студентов для
факультета вычислительной техники.
15. Схема таблицы АЛМАЗЫ
 Название
 Страна происхождения
 Когда найден (год)
 Масса в каратах
 Масса в граммах
Ограничение уникальности: название
Проверочные ограничения: а) страна происхождения может быть из следующего
списка: Южная Африка, Западная Африка, Индия, Бразилия; б) масса в граммах не
меньше 145 и не больше 700.
Спецификация представления: представляемая таблица содержит название, год
находки, массу в граммах для алмазов, найденных в Южной Африке.
16. Схема таблицы ЖИВОТНОЕ
 Название животного
 Класс животного
 Максимальный вес животного;
 Минимальный вес животного
 Окрас
 Место обитания
 Дата занесения в Красную книгу
 Продолжительность жизни
 Летательные способности (летает/не летает )
Ограничение уникальности: название животного.
Проверочные ограничения: а) средний вес животного должен быть больше
минимального веса и максимального веса; б) дата занесения в Красную книгу не должна
быть больше текущей даты.
Спецификация представления: представляемая таблица содержит сведения о весе
животных.
17. Схема таблицы МОСТЫ
 Название
 Местонахождение
 Длина пролета моста
 Год постройки
 Тип
Ограничение уникальности: название, местонахождение.
Проверочные ограничения: а) тип моста: стальные фермы, висячий, арочный,
вантовый; б) длина пролета моста больше 300 и меньше 1500 м.
Спецификация представления: представляемая таблица содержит сведения о всех
вантовых мостах.
18. Схема таблицы ФИРМА
 Название фирмы
 Организационно-правовая форма (ООО, ОАО, ТОО и т.д.)
 Юридический адрес
 Дата учреждения
 Количество работников
 Число работников, имеющих водительские права
 Средний оклад работников
 Средний возраст работников
 Направление деятельности
 Задолженность по налогам (имеется/не имеется)
Ограничение уникальности: название фирмы.
Проверочные ограничения: а) число работников, имеющих водительские права не
должно превышать общее количество работников; б) средний возраст работников не
должен превышать 35 лет.
Спецификация представления: представляемая таблица включает название фирмы
и соответствующие обобщенные сведения о работниках этой фирмы.
19. Схема таблицы ОЗЕРА_РОССИИ
 Название
 Площадь (км2)
 Максимальная глубина
 Средняя глубина
 Область
 Район
Ограничение уникальности: название, область
Проверочные ограничения: а) название области: минская, витебская, гомельская,
брестская, гродненская; б) площадь >0 и <80.
Спецификация представления: представляемая таблица включает название озера,
площадь, глубину, область и район для озер с максимальной глубиной от 15 до 30
м.
20. Схема таблицы ОТДЕЛ_КАДРОВ
 Идентификационный код
 Фамилия
 Имя
 Отчество
 Дата рождения
 Должность
 Оклад
 Подразделение
 Состав семьи (человек)
Ограничение уникальности: идентификационный код, фамилия, имя, отчество, дата
рождения.
Проверочные ограничения: а) подразделения: бухгалтерия, дирекция, цех,
конструкторское бюро; б) дата рождения меньше текущей даты.
Спецификация представления: представляемая таблица включает информацию о
сотрудниках, работающих в бухгалтерии.
21. Схема таблицы ТЕЛЕВИЗОР
 Марка телевизора
 Страна сборки
 Тип кинескопа
 Размер по диагонали
 Системы цветности
 Число каналов
 Наличие телетекста (имеется/не имеется)
 Звук (моно/стерео)
 Выходная мощность
 Вес
 Потребляемая мощность
 Дата продажи
Ограничение уникальности: марка телевизора, страна сборки.
Проверочные ограничения: а) система цветности может быть следующих типов:
PAL/SECAM, B/G, D/K, H, I, NTSC, VIT; б) число каналов должно быть не меньше 40.
Спецификация представления: представляемая таблица содержит марку телевизора,
страну сборки и потребляемую мощность для телевизоров, имеющих телетекст.
22. Схема таблицы ЗООМАГАЗИН
 Номер животного
 Кличка
 Тип животного
 Порода
 Дата рождения
 Пол (м/ж)
 Окрас
 Длина
 Вес
 Вакцинация (имеется/не имеется)
Ограничение уникальности: номер животного
Проверочные ограничения: а) номер животного должен иметь следующую структуру:
<буква><буква><цифра><цифра><цифра><цифра>; б) дата рождения должна быть
меньше текущей даты.
Спецификация представления: представляемая таблица содержит кличку, породу, дату
рождения, пол, окрас для собак.
23. Схема таблицы ЗАПИСНАЯ_КНИЖКА
 Имя
 Фамилия
 Адрес
 Телефон
 Дата рождения
 Прозвище
 Увлечения
Ограничение уникальности: имя, фамилия
Проверочные ограничения: а) номер телефона должен быть <цифра><цифра><цифра
><цифра><цифра><цифра><цифра>; б) дата рождения должна быть меньше текущей
даты.
Спецификация представления: представляемая таблица содержит имя, фамилию,
номер телефона, дату рождения для всех, родившихся в январе.
24. Схема таблицы ПРОИЗВОДСТВЕННАЯ_ПРАКТИКА
 Ф.И.О. студента
 Ф.И.О. преподавателя
 № группы
 Место прохождения практики
 Вид практики
 Дата сдачи отчета
 Оценка
 Дата начала практики
 Дата окончания практики
Ограничение уникальности: Ф.И.О. студента, номер группы
Проверочные ограничения: а) дата окончания практики больше даны начала практики;
б) дата сдачи отчета больше даты начала практики и меньше даты окончания практики
Спецификация представления: представляемая таблица содержит сведения остудентах,
проходивших производственную практику и получивших оценку не меньше 6.
25. Схема таблицы СТРОИТЕЛЬНАЯ_КОМПАНИЯ
 Идентификационный номер здания
 Адрес
 Тип здания
 Уровень сложности (от 1 до 4)
 Дата начала работы
 Дата окончания работы
 ФИО прораба
 Телефон прораба
Ограничение уникальности: Идентификационный номер здания
Проверочные ограничения: а) дата начала работы меньше даты окончания работы, дата
начала работы меньше текущей даты; б) тип здания: офис, жилой дом, магазин, склад,
баня.
Спецификация представления: представляемая таблица содержит сведения о всех
построенных фирмой магазинах.
Приложение. Типы данных и операторы языка SQL
Типы данных
Символьные типы данных
 CHAR(n) – строки фиксированной длины.
 VARCHAR(n) – строки переменной длины, где n – максимальное число символов.
 TEXT – строки потенциально неограниченного размера.
Пример:
name VARCHAR(40)
state CHAR(2)
description CHAR(50) NULL
Двоичные данные
 BINARY)n) – двоичные строки фиксированной длины
 VARBINARY(n) – двоичные строки переменной длины
 IMAGE – большие двоичные строки
Тип данных дата
SQL сервер поддерживает типы даты и времени: DATETIME и SMALLDATETIME.
Логический тип данных
 BIT
Числовые типы данных
 Целые INT, SMALLINT, TINYINT
 Данные с плавающей точкой FLOAT(p), REAL, p-точность
 Данные с фиксированной точкой NUMERIC(p,s), DECIMAL (p – число значащих
цифр , s – число цифр после десятичной точки)
 Денежные типы MONEY, SMALLMONEY
Создание таблицы
CREATE TABLE <имя таблицы> (<элемент таблицы>,[{<элемент таблицы>}…])
<элемент таблицы>::=<определение столбца>|<определение ограничения
целостности>
<определение столбца>::=<имя столбца><тип данных>[<раздел
умолчания>][{<ограничение целостности столбца>}…]
<раздел умолчания>::=DEFAULT{<литерал>|USER|NULL}
<ограничение целостности столбца>::=NOT NULL[<спецификация
уникальности>]|<спецификация ссылок>|CHECK(<условие поиска>)
В разделе умолчания указывается значение, которое помещается в строку по
умолчанию. Это может быть литеральная константа, соответствующая типу столбца,
символьная строка, содержащая имя текущего пользователя (USER), либо
неопределенное значение (NULL). Если значение столбца по умолчанию не задано, и в
разделе ограничений целостности столбца указано NOT NULL, то попытка занести в
таблицу строку с неспецифицированным значением данного столбца приведет к
ошибке.
<определение ограничения целостности>::=<определение ограничения
уникальности>|<определение ограничений по ссылкам>|<определение проверочного
значения>
<определение ограничения уникальности>::=<спецификация уникальности>(<список
столбцов>)
<спецификация уникальности>::=UNIQUE|PRIMARY KEY
<определение ограничений по ссылкам>::=FOREIGN KEY(<ссылающиеся
столбцы>)<спецификация ссылок>
<спецификация ссылок>::=REFERENCES <ссылаемая таблица и столбцы>
<ссылаемая таблица и столбцы>::=<имя таблицы>[(<список столбцов>)]
<определение проверочного значения>::=CHECK (<условие поиска>)
Примеры
CREATE TABLE employee
(emp_id INTEGER CONSTRAINT p1 PRIMARY KEY,
fname CHAR(20) NOT NULL,
minitial CHAR(1) NULL,
lname VARCHAR(30) NOT NULL,
job_id SMALLINT NOT NULL DEFAULT 1
REFERENCES jobs(job_id)
CREATE TABLE inventory
(code CHAR(4) NOT NULL
CONSTRAINT c1 CHECK(code LIKE “[0-9] [0-9] [0-9]”),
high INT NOT NULL CHECK (high >0),
low INT NOT NULL CHECK (low>0),
CONSTRAINT c4 CHECK (high>=low AND high-low<1000)
Изменение таблиц
ALTER TABLE <имя таблицы>{ADD <элемент таблицы>[{,<элемент
таблицы>}..]|DROP CONSTRAINT <имя ограничения>[{,<имя ограничения>},…]}
Пример
ALTER TABLE names2 ADD middle_name VARCHAR(20) NULL, fax
VARCHAR(15) NULL
Создание представлений
CREATE VIEW <имя таблицы>[(список столбцов)] AS <спецификация запроса>
[WITH CHECK OPTION]
<спецификация запроса>::=SELECT [ALL|DISTINCT] <список
выборки><табличное выражение>
Одиночные операторы манипулирования данными
Оператор поискового удаления:
DELETE FROM <имя таблицы>[WHERE<условие поиска>]
Оператор поисковой модификации:
UPDATE <имя таблицы> SET <предложение установки>[{,<предложение
установки>}…][WHERE <условие поиска>]
Оператор включения (добавление строки в таблицу):
INSERT INTO <имя таблицы>[(<список столбцов>)]{VALUES(<список
значений>)]|<подзапрос>}
Пример:
INSERT INTO publishers (pub_id,pub_name,cite,state) VALUES (‘1234’,’Stendhal
Publishing’,’Paris’,’France”)
Создание индекса
CREATE [UNIQUE] INDEX <имя индекса> ON <имя таблицы> (<имя столбца>
[ASC|DESC][{<имя столбца>[ASC|DESC]}…])
Описатель UNIQUE указывает, что никаким двум строкам в индексируемой
таблице не позволяется принимать одно и то же значение для индексируемого столбца
Удаление объектов базы данных
DROP TABLE <имя таблицы>
DROP VIEW <имя представления>
DROP INDEX <имя индекса>
Получение справочной информации об объектах базы данных
Информацию об объектах текущей БД можно получить, запустив процедуру sp_help
sp_help <имя объекта>
Для получения информации только об ограничениях таблицы, можно воспользоваться
хранимой процедурой
sp_helpconstraint <имя таблицы>
Информация об индексах:
sp_helpindex <имя таблицы>
Чтобы получить список и описания объектов класса Х, определенных в БД, можно
выполнить оператор:
SELECT * FROM sysobjects WHERE type=’X’
Возможные значения параметра Х:U -таблица, V-представление ,C –проверочное
ограничение , F –ограничение по ссылкам , K –ограничение уникальности , D – раздел
умолчаний.
Download