
- •Министерство образования Российской Федерации Пензенский государственный университет
- •Пенза 2004
- •Введение
- •1. Архитектура баз данных ms sql Server 2000
- •Физическая архитектура базы данных sql Server 2000
- •1.1.1. Файлы данных и группы файлов
- •1.1.2. Страничная организация файлов данных
- •ЛоГическая архитектура базы данных sql Server 2000
- •1.3. Системные базы данных sql server 2000
- •Создание и сопровождение баз данных средствами enterprise manager
- •3. Создание и сопровождение таблиц баз данных средствами enterprise manager
- •3.1. Основные принципы создания таблиц
- •3.2. Создание, модификация и удаление таблиц средствами Enterprise Manager
- •3.3. Управление диаграммами
- •4. Создание и управление индексами средствами Enterprise manager
- •5. Создание представлений средствами Enterprise manager
- •6. Основы программирования на языке Transact-sql
- •6.1. Средства языка Transact–sql
- •6.2. Константы, имена, идентификаторы, переменные, выражения в языке Transact–sql
- •6.3. Типы данных sql Server 2000
- •6.4. Создание и удаление баз данных, таблиц и представлений
- •6.4.1. Создание и удаление баз данных
- •6.4.2. Создание и удаление таблиц
- •6.4.3. Создание представлений
- •6.5. Создание и управление индексами
- •6.6. Вставка, удаление и изменение данных
- •6.7. Выборка данных
- •Раздел into позволяет создать новую таблицу для хранения результатов запроса, структура которой будет определяться списком выбора, т.Е. Динамически при выполнении запроса.
- •6.8. Функции sql Server 2000
- •6.8.1. Встроенные функции sql Server 2000
- •6.8.2. Функции пользователя
- •6.9. Хранимые процедуры sql Server 2000
- •6.9.1. Создание хранимых процедур
- •6.10. Триггеры
- •6.11. Создание и управление транзакциями
- •6.12. Создание, отладка и оптимизация sql–модулей
- •7. Лабораторный практикум
- •Создание диаграммы базы данных;
- •Рекомендуемые источники Печатные издания
- •Интернет-ресурсы1
- •Приложение 1. Примеры операторов языка Transact-sql
- •1.1. Создание баз данных
- •Create database Archive
- •Use master
- •Filegroup SalesGroup1
- •Filegroup SalesGroup2
- •Create database Sales
- •Create database Employees
- •1.2. Создание таблиц баз данных
- •1.3. Создание индексов
- •1.4. Создание представлений
- •From dbo. Authors
- •1.5. Добавление, модификация и удаление данных в таблицах
- •Insert Into TabF default values
- •Insert Into TabG (Col1,Col2)
- •1.6. Выборка данных из таблиц
- •If update (Phone)
- •Insert into #aaa values (111)
- •Insert into #aaa values (222)
- •Insert into #aaa values (333)
- •1.9. Создание пользовательских функций
- •1.10. Создание хранимых процедур пользователя
- •Приложение 2. Описание предметных областей, схем баз данных и запросов для лабораторного практикума
- •2.1. Предметная область «Летопись острова Санта-Белинда»
- •2.2. Предметная область «Скачки»
- •2.3. Предметная область «Хроника восхождений в альпинистском клубе»
- •2.4. Предметная область базы данных медицинского кооператива
- •2.5. Предметная область базы данных «Городская Дума»
- •2.6. Предметная область базы данных рыболовной фирмы
- •2.7. Предметная область база данных фирмы, проводящей аукционы
- •2.8. Предметная область база данных библиотеки
- •Предметная область базы данных для обслуживания работы конференции
- •2.10. Предметная область базы данных для обслуживания склада
2.8. Предметная область база данных библиотеки
Словесное описание предметной области. Разработать информационную систему обслуживания библиотеки, которая содержит следующую информацию: название книги, Ф.И.О. авторов, наименование издательства, год издания, стоимость, название филиала книгохранилища, в которых находится книга, количество имеющихся в библиотеке экземпляров конкретной книги, количество студентов, которым выдавалась конкретная книга, названия факультетов, в учебном процессе которых используется указанная книга.
Схема базы данных в нотации IDEF1X
Описание таблиц базы данных
№ п.п |
Название |
Идентификатор |
Назначение |
Тип связи |
Атрибуты для связи |
1. |
Хранилища |
Vault |
Список хранилищ |
1:М Хранение |
Ид. № хранилища |
2. |
Книги |
Books |
Список книг |
1:М Хранение |
Ид. № книги |
1:М Книги в учебном процессе |
Ид. № книги |
||||
3. |
Хранение |
Keeping |
Список хранящихся в хранилищах книг |
М:1 Хранилища |
Ид. № хранилища |
М:1 Книги |
Ид. № книги |
||||
4. |
Факультеты |
Faculties |
Список факультетов |
1:М Книги в учебном процессе |
Ид. № факультета |
5. |
Книги в учебном процессе |
Process |
Список книг по факультетам |
М:1 Книги |
Ид. № книги |
М:1 Факультеты |
Ид. № факультета |
Описание атрибутов таблицы Хранилища
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № хранилища |
ID_Vault |
N |
2 |
1÷99 |
– |
+ |
PK |
2. |
ФИО руководителя |
FIO_Leader |
С |
35 |
Только буквы |
– |
+ |
AK |
3. |
Адрес |
Address |
С |
40 |
– |
– |
+ |
– |
4. |
Телефон |
Phone |
С |
15 |
– |
– |
– |
– |
5. |
Вместимость |
Capacity |
N |
7 |
1÷9999999 |
– |
+ |
– |
Описание атрибутов таблицы Книги
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № книги |
ID_ Book |
N |
8 |
1÷99999999 |
– |
+ |
PK |
2. |
Название |
Name |
С |
50 |
– |
– |
+ |
– |
3. |
Автор |
Author |
С |
35 |
Только буквы |
– |
+ |
– |
4. |
Издательство |
Publishers |
С |
50 |
– |
– |
+ |
– |
5. |
Год издания |
Year_P |
N |
4 |
1900÷2015 |
– |
+ |
– |
6. |
Стоимость |
Cost |
R |
7,2 |
0÷9999 |
– |
– |
– |
7. |
Признак научная / художественная |
Scientific |
B |
1 |
0 или 1 |
1 |
+ |
– |
Описание атрибутов таблицы Хранение
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № хранилища |
ID_Vault |
N |
2 |
1÷99 |
– |
+ |
FK |
2. |
Ид. № книги |
ID_ Book |
N |
8 |
1÷99999999 |
– |
+ |
FK |
3. |
Количество экземпляров |
Copies |
N |
3 |
1÷999 |
– |
+ |
– |
4. |
Выдачи |
Issues |
N |
4 |
1÷9999 |
– |
– |
– |
Описание атрибутов таблицы Факультеты
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № факультета |
ID_ Faculty |
N |
2 |
1÷99 |
– |
+ |
PK |
2. |
Название факультета |
Name_F |
С |
50 |
Только буквы |
– |
+ |
AK |
3. |
Декан |
Dean |
С |
35 |
Только буквы |
– |
+ |
– |
4. |
Дата образования |
Date_F |
D |
8 |
01.01.1930÷01.01.2010 |
– |
+ |
– |
Описание атрибутов таблицы Книги в учебном процессе
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № факультета |
ID_ Faculty |
N |
2 |
1÷99 |
– |
+ |
FK |
2. |
Ид. № книги |
ID_ Book |
N |
8 |
1÷99999999 |
– |
+ |
FK |
3. |
Дисциплина |
Discipline |
С |
35 |
Только буквы |
– |
+ |
– |
Запросы на выборку данных
Выдать список всех книг, которые были изданы в заданном году. Список упорядочить по издательствам по убыванию, по названию – по возрастанию.
Для заданного фамилией руководителя хранилища выдать список всех хранящихся в нем книг заданного издательства, характеристики этих книг, количество экземпляров в хранилище и число выдач.
Вывести список всех книг, стоимость которых выше средней по всем книгам.
Используя самосоединение таблиц получить все пары факультетов, образованных в одном и том же году.
Выдать список всех факультетов, в учебном процессе которых используются книги заданного автора. В результирующей таблице должны быть указаны характеристики книг и факультетов, а также наименование дисциплины.
Представления
Создать представление, в котором для каждого хранилища хранились бы все характеристики находящихся в нем книг.
Создать представление, в котором для каждого факультета хранились бы все характеристики книг, используемых в учебном процессе этого факультета.
Хранимые процедуры
Написать хранимую процедуру, которая при удалении книги из таблицы Книги, предварительно удаляла бы все записи о ней в таблицах Хранение и Книги в учебном процессе.
Написать хранимую процедуру, которая для каждого хранилища рассчитает суммарную стоимость всех хранящихся в нем книг.
Триггеры
При удалении записи о хранении книги проверять, остались ли еще хранилища, в которых хранится эта книга. Если нет, то удаление выполнять нельзя.
При изменении стоимости книги для каждого хранилища, где она храниться, проверять, не превысила ли суммарная стоимость всех книг некоторое заданное значение.
При добавлении новой книги данного автора проверять, нет ли в таблице книги этого автора с этим же названием, но другого издательства или другого года издания.