- •Министерство образования Российской Федерации Пензенский государственный университет
- •Пенза 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.3. Предметная область «Хроника восхождений в альпинистском клубе»
Словесное описание предметной области. В базе данных должны записываться даты начала и завершения каждого восхождения, имена и адреса участвовавших в нем альпинистов, название и высота горы, страна и район, где эта гора расположена.
Разрабатываемая информационная система предназначена для руководства и членов альпинистского клуба.
Схема базы данных в нотации IDEF1X
Описание таблиц базы данных
№ п.п |
Название |
Идентификатор |
Назначение |
Тип связи |
Атрибуты для связи |
1. |
Альпинисты |
Climbers |
Список членов клуба |
1:М Альпинисты в группах |
Ид. № альпиниста |
2. |
Группы |
Groups |
Список групп |
1:М Альпинисты в группах |
Ид. № группы |
1:М Восхождения |
Ид. № группы |
||||
3. |
Альпинисты в группах |
Climbers-Group |
Вхождения альпинистов в группы |
М:1 Альпинисты |
Ид. № альпиниста |
М:1 Группы |
Ид. № группы |
||||
4. |
Горы |
Mountains |
Список гор |
1:М Восхождения |
Ид. № горы |
5. |
Восхождения |
Ascents |
Список восхождений |
М:1 Группы |
Ид. № группы |
М:1 Горы |
Ид. № горы |
Описание атрибутов таблицы Альпинисты
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № альпиниста |
ID_Climber |
N |
4 |
1÷9999 |
– |
+ |
PK |
2. |
ФИО |
FIO |
С |
35 |
Только буквы |
– |
+ |
– |
3. |
Адрес |
Address |
С |
40 |
– |
– |
+ |
– |
4. |
Телефон |
Phone |
С |
15 |
– |
– |
– |
– |
5. |
Звание |
Rank |
С |
20 |
– |
– |
– |
– |
6. |
Пол |
Sex |
B |
1 |
0 или 1 |
1 |
+ |
– |
Описание атрибутов таблицы Группы
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № группы |
ID_Group |
N |
2 |
1÷99 |
– |
+ |
PK |
2. |
Количество |
Amount |
N |
2 |
1÷99 |
– |
+ |
– |
3. |
ФИО руководителя |
Leader |
С |
20 |
Только буквы |
– |
+ |
– |
Описание атрибутов таблицы Альпинисты в группах
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № альпиниста |
ID_Climber |
N |
4 |
1÷9999 |
– |
+ |
FK |
2. |
Ид. № группы |
ID_Group |
N |
2 |
1÷99 |
– |
+ |
FK |
3. |
Дата начала восхождения |
Date_N |
D |
8 |
01.01.1980÷01.01.2010 |
– |
+ |
– |
4. |
Дата окончания восхождения |
Date_N |
D |
8 |
01.01.1980÷01.01.2010 |
– |
+ |
– |
Описание атрибутов таблицы Горы
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № горы |
ID_ moun-tain |
N |
3 |
1÷999 |
– |
+ |
PK |
2. |
Название |
Name |
С |
40 |
Только буквы |
– |
+ |
АК |
3. |
Высота |
Height |
R |
7,2 |
0÷9999 |
– |
+ |
– |
4. |
Страна |
Country |
С |
20 |
Только буквы |
Россия |
+ |
– |
5. |
Район |
Region |
С |
20 |
Только буквы |
– |
– |
– |
Описание атрибутов таблицы Восхождения
№ п/п |
Название |
Идентификатор |
Тип |
Размер |
Ограничения |
Знач. по умолчанию |
Обязательное поле? |
Признак ключа |
1. |
Ид. № группы |
ID_Group |
N |
2 |
1÷99 |
– |
+ |
FK |
2. |
Ид. № горы |
ID_ moun-tain |
N |
3 |
1÷999 |
– |
+ |
FK |
3. |
Дата восхождения |
Date_A |
D |
8 |
01.01.1980÷01.01.2010 |
– |
+ |
PK |
4. |
Успешное? |
Successful |
B |
1 |
0 или 1 |
1 |
+ |
– |
5. |
Длительность |
Duration |
N |
2 |
1÷99 |
– |
– |
– |
6. |
Количество покоривших гору |
Amount |
N |
2 |
1÷99 |
– |
– |
– |
Запросы на выборку данных
Выдать список всех альпинистов, имеющих звание мастер спорта, их фамилии, адреса и телефоны. Список упорядочить по фамилии.
Для каждого альпиниста выдать список групп, в которые он входил, ФИО руководителя группы, период вхождения.
Предоставить информацию о том, сколько альпинистов побывало на каждой горе. Список отсортировать в алфавитном порядке по названию вершин.
Показать список восхождений (групп), которые осуществлялись в указанный пользователем период времени. Для каждой группы показать ее состав.
Выдать список всех альпинистов, осуществивших восхождение на горы заданной страны.
Представления
Создать представление, в котором для каждой горы хранились бы все восхождения, FKлючая дату восхождения, количество дошедших до вершины, ФИО руководителя.
Создать представление, в котором для каждой группы хранить список входящих в нее в разное время альпинистов с их характеристиками.
Хранимые процедуры
Написать хранимую процедуру, которая при добавлении нового восхождения проверяет, не превышает ли длительность восхождения период пребывания каждого альпиниста в этой группе.
Написать хранимую процедуру перехода альпиниста из одной группы в другую.
Триггеры
При удалении альпиниста проверять, остались ли в группах, в которые он входил, еще альпинисты. Если нет, то удалить и группы.
При изменении звания альпиниста проверять, не ниже ли оно предыдущего, что недопустимо.
При добавлении нового альпиниста в группу необходимо проверять, не превысило ли число альпинистов в группе некоторую заданную границу.