- •Содержание
- •Проектирование баз данных
- •Пример er-модели: контора “рога и копыта”
- •Задание для индивидуальной работы 1
- •Преобразование er-модели в реляционную модель
- •Пример реляционной модели: контора “рога и копыта”
- •Задание для индивидуальной работы 2
- •Sql Server – коротко о главном
- •Задание для индивидуальной работы 3
- •Ddl. Таблицы
- •Пример сценария создания бд "рога и копыта"
- •Задание для индивидуальной работы 4.
- •Dml. Изменение данных
- •Задание для индивидуальной работы 5
- •Dql. Запросы
- •Выборка из одной таблицы
- •Использование условий отбора
- •Использование агрегирующих функций
- •Сортировка
- •Подзапросы
- •Группировка
- •Выборка из нескольких таблиц
- •Объединение запросов
- •И еще несколько примеров
- •Задание для индивидуальной работы 6
- •Ddl. Представления
- •Задание для индивидуальной работы 7
- •Хранимые процедуры
- •Задание для индивидуальной работы 8
- •Ccl. Курсоры
- •Открытие курсора:
- •Задание для индивидуальной работы 9
- •Триггеры
- •Задание для индивидуальной работы 10
- •Приложение. Некоторые типичные ошибки
- •Литература
ИНСТИТУТ ЭКОНОМИКИ, УПРАВЛЕНИЯ И ПРАВА
ПИНЯГИНА О.В.,
ФУКИН И.А.
Практикум
по курсу
“Базы данных”
Казань – 2006
Аннотация
Данное учебно-методическое пособие разработано для поддержки компьютерных занятий по курсу “Базы данных” для студентов, обучающихся по специальности “Прикладная информатика в экономике”.
В пособии рассматриваются основы проектирования и построения баз данных: ER-модель и реляционная модель, а также основы языка SQL. Каждая тема содержит задание для индивидуальной работы.
В качестве среды программирования используется Microsoft SQL Server 2000 ( или более поздняя версия).
Содержание
Содержание 3
Проектирование баз данных 4
ER-модель (entity-relationship model) 4
Сотрудник 4
Сотрудник 6
Пример ER-модели: КОНТОРА “РОГА И КОПЫТА” 7
Задание для индивидуальной работы 1 8
Преобразование ER-модели в реляционную модель 9
Пример реляционной модели: КОНТОРА “РОГА И КОПЫТА” 14
Задание для индивидуальной работы 2 15
SQL (Structured Query Language) 16
SQL Server – коротко о главном 16
Задание для индивидуальной работы 3 18
DDL. Таблицы 19
Пример сценария создания БД "РОГА И КОПЫТА" 22
Задание для индивидуальной работы 4. 26
DML. Изменение данных 27
Задание для индивидуальной работы 5 32
DQL. Запросы 33
Выборка из одной таблицы 33
Использование условий отбора 34
Использование агрегирующих функций 36
Сортировка 37
Подзапросы 38
Группировка 39
Выборка из нескольких таблиц 40
Объединение запросов 42
И еще несколько примеров 42
Задание для индивидуальной работы 6 44
DDL. Представления 45
Задание для индивидуальной работы 7 47
Хранимые процедуры 48
Задание для индивидуальной работы 8 52
CCL. Курсоры 53
Задание для индивидуальной работы 9 56
Триггеры 57
Задание для индивидуальной работы 10 62
Приложение. Некоторые типичные ошибки 63
Литература 66
Проектирование баз данных
ER-модель (entity-relationship model)
Работа с базой данных начинается с построения модели. Наиболее распространенной является ER-модель (entity-relationship model) – модель “Сущность-связь”.
Для “ручного” построения ER-модели на практике будем использовать простую систему обозначений, предложенную Питером Ченом (обозначения, встречающиеся в разных источниках, могут несколько отличаться от нижеприведенных).
Базовые понятия
Сотрудник
Сущность (объект)
|
|
Атрибут сущности (свойство, характеризующее объект)
|
|
Ключевой атрибут (атрибут, входящий в первичный ключ)
|
|
Связь
|
|
Первичный ключ – атрибут или группа атрибутов, однозначно идентифицирующих объект.
Первичный ключ может состоять из нескольких атрибутов, тогда подчеркивается каждый из них.
О бъект и его атрибуты соединяются ненаправленными дугами.
Связи между объектами могут быть 3-х типов:
Один – к одному. Этот тип связи означает, что каждому объекту первого вида соответствует не более одного объекта второго вида, и наоборот. Например: сотрудник может руководить только одним отделом, и у каждого отдела есть только один руководитель.
Один – ко многим. Этот тип связи означает, что каждому объекту первого вида может соответствовать более одного объекта второго вида, но каждому объекту второго вида соответствует не более одного объекта первого вида. Например: в каждом отделе может быть множество сотрудников, но каждый сотрудник работает только в одном отделе.
Многие – ко многим. Этот тип связи означает, что каждому объекту первого вида может соответствовать более одного объекта второго вида, и наоборот. Например: каждый счет может включать множество товаров, и каждый товар может входить в разные счета.
Ромб связи и прямоугольник объекта соединяются ненаправленными дугами в сторону “ко многим” и направленными в сторону “к одному”.
С вязь может соединять сущность саму с собой, например:
Если связь соединяет две сущности, она называется бинарной.
С вязь может соединять более двух сущностей, например, связь, соединяющая три сущности, называется тернарной:
Иногда используют также понятие “слабая сущность”. Это сущность, которая не может быть однозначно идентифицирована с помощью собственных атрибутов, а только через связь с другой сущностью.
Пусть, например, номер сотрудника является уникальным только в пределах отдела, т.е. в разных отделах могут быть сотрудники с одинаковыми номерами. Уникальной в данном случае будет комбинация атрибутов “номер_сотрудника, номер отдела”. Сущность “Сотрудник” является слабой.
На схеме слабые сущности обозначаются двойными линиями.
Сотрудник
Слабая сущность
|
|
Связь слабой сущности
|
|
Иногда для более удобной классификации используются так называемые подтипы сущностей. Их обозначают с помощью треугольника с надписью “есть” (т.е., “является”). Пусть, например, среди контрагентов могут быть как физические, так и юридические лица. Поскольку они имеют разные атрибуты, то удобно создать для них подтипы:
Сущность “Контрагент” является надтипом для своих подтипов.