- •Министерство образования Российской Федерации Пензенский государственный университет
- •Пенза 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. Предметная область базы данных для обслуживания склада
Предметная область базы данных для обслуживания работы конференции
Словесное описание предметной области. База данных должна содержать справочник персоналий участников конференции (фамилия, имя, отчество, ученая степень, ученое звание, адрес, телефон) и информацию, связанную с участием в конференции (докладчик или участник, тема доклада, дата поступления оргвзноса, размер поступившего оргвзноса, потребность в гостинице).
Схема базы данных в нотации IDEF1X
Описание таблиц базы данных
№ п.п |
Название |
Идентификатор |
Назначение |
Тип связи |
Атрибуты для связи |
1. |
Авторы |
Authors |
Список авторов |
1:М Участники |
Ид. № автора |
2. |
Конференции |
Conferen-ces |
Список конференций |
1:М Участники |
Ид. № конференции |
3. |
Гостиницы |
Hotels |
Список гостиниц |
1:М Участники |
Ид. № гостиницы |
4. |
Доклады |
Reports |
Список докладов |
М:1 Участники |
Ид. № участника |
5. |
Участники |
Partici-pants |
Список участников |
М:1 Авторы |
Ид. № автора |
М:1 Конференции |
Ид. № конференции |
||||
М:1 Гостиницы |
Ид. № гостиницы |
||||
1:М Доклады |
Ид. № участника |
Описание атрибутов таблицы Авторы
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № автора |
ID_ Author |
N |
4 |
1÷9999 |
– |
+ |
PK |
2. |
ФИО |
FIO |
С |
35 |
Только буквы |
– |
+ |
– |
3. |
Адрес |
Address |
С |
40 |
– |
– |
+ |
– |
4. |
Телефон |
Phone |
С |
15 |
– |
– |
– |
– |
5. |
Ученая степень |
Degree |
С |
15 |
Только буквы |
к.т.н. |
– |
– |
6. |
Ученое звание |
Rank |
С |
15 |
Только буквы |
доцент |
– |
– |
Описание атрибутов таблицы Конференции
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № конференции |
ID_ Confe-rence |
N |
3 |
1÷999 |
– |
+ |
PK |
2. |
Название |
Name |
С |
35 |
Только буквы |
– |
+ |
AK |
3. |
Организатор |
Organizer |
С |
40 |
– |
– |
+ |
– |
4. |
Статус |
Status |
С |
40 |
– |
Международная |
+ |
– |
5. |
Дата начала |
Date_B |
D |
8 |
01.01.2002÷01.01.2010 |
– |
+ |
– |
6. |
Оргвзнос |
Payment |
R |
6,2 |
0÷999 |
– |
– |
– |
Описание атрибутов таблицы Гостиницы
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № гостиницы |
ID_ Hotel |
N |
2 |
1÷99 |
– |
+ |
PK |
2. |
Название гостиницы |
Name_ Ho-tel |
С |
35 |
– |
– |
+ |
AK |
3. |
Адрес гостиницы |
Address_ Hotel |
С |
40 |
– |
– |
+ |
– |
4. |
Стоимость номера |
Cost |
R |
7,2 |
0÷9999 |
– |
– |
– |
Описание атрибутов таблицы Доклады
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № участника |
ID_ Partici-pant |
N |
4 |
1÷9999 |
– |
+ |
FK |
2. |
Тема доклада |
Subject |
С |
40 |
– |
– |
+ |
PK |
3. |
Количество страниц |
Amount |
N |
2 |
1÷99 |
– |
+ |
– |
4. |
Соавторы |
Coauthors |
B |
1 |
0 или 1 |
1 |
+ |
– |
Описание атрибутов таблицы Участники
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № участника |
ID_ Partici-pant |
N |
4 |
1÷9999 |
– |
+ |
PK |
2. |
Ид. № автора |
ID_ Author |
N |
4 |
1÷9999 |
– |
+ |
FK |
3. |
Ид. № конференции |
ID_ Confe-rence |
N |
3 |
1÷999 |
– |
+ |
FK |
4. |
Докладчик/ участник |
Lecturer |
B |
1 |
0 или 1 |
1 |
+ |
– |
5. |
Дата оргвзноса |
Date_O |
D |
8 |
01.01.2002÷01.01.2010 |
– |
– |
– |
6. |
Сумма оргвзноса |
Amount_O |
R |
6,2 |
0÷999 |
– |
– |
– |
7. |
Ид. № гостиницы |
ID_ Hotel |
N |
2 |
1÷99 |
– |
+ |
FK |
Запросы на выборку данных
Выдать список всех конференций, которые будут проводиться в текущем году. Список упорядочить по статусу по убыванию, по названию – по возрастанию.
Для заданной своим названием конференции выдать все ее характеристики и характеристики всех участвующих в ней авторов, размер оргвзноса, в качестве докладчика или участника выступает автор.
Вывести список всех гостиниц, стоимость номера в которых меньше средней по всем гостиницам.
Используя самосоединение таблиц получить все пары конференций, проводившихся в одном и том же году.
Выдать список всех гостиниц, в которых когда-либо проживал заданный автор. В результирующей таблице должны быть указаны характеристики автора и гостиницы.
Представления
Создать представление, в котором для каждой конференции хранились бы все характеристики участвующих в ней авторов.
Создать представление, в котором для каждой гостиницы хранились бы все характеристики проживающих когда-либо в них авторов.
Хранимые процедуры
Написать хранимую процедуру, которая обеспечит корректное удаление участника конференции, предварительно удалив все его доклады.
Написать хранимую процедуру, которая будет создавать список всех авторов, перечисливших оргвзнос позднее даты начала конференции.
Триггеры
При удалении записи об авторе необходимо проверять, принимал ли он участие хотя бы в одной конференции. Если да, то удаление выполнять нельзя.
При изменении атрибута Ид. № гостиницы для участника конференции проверять, чтобы автор проживал не в том же городе, в котором находится гостиница. Название города является частью адреса как автора, так и гостиницы.
При добавлении нового участника конференции проверять размер его оргвзноса, который не должен быть меньше оргвзноса, установленного организаторами конференции.