ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

СТАРООСКОЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ

(ФИЛИАЛ)

ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ СТАЛИ И СПЛАВОВ

(ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ)»

Кафедра автоматизации и промышленной электроники

БАЗЫ ДАННЫХ СИСТЕМ УПРАВЛЕНИЯ

Рабочая тетрадь

Одобрено редакционно-издательским советом СТИ МИСиС

в качестве рабочей тетради для специальностей

22301 – Автоматизация технологических процессов и производств;

230201 – Информационные системы и технологии;

230105 – Программное обеспечение вычислительной техники и автоматизированных систем;

230102 – Автоматизированные системы обработки информации и управления;

080801 – Прикладная информатика

очно-заочной, заочной форм обучения

Старый Оскол

2009
Рецензент

Начальник отдела разработок по автоматизации информационных систем -06»

: Рабочая тетрадь. – Старый Оскол: , 2009 – 38 с.

Рабочая тетрадь по курсу «Базы данных систем управления», «Управление данными», «Базы данных» предназначена для студентов специальностей: «Автоматизация технологических процессов и производств», «Информационные системы и технологии», «Программное обеспечение вычислительной техники и автоматизированных систем», «Автоматизированные системы обработки информации и управления», «Прикладная информатика», (очно-заочной, заочной форм обучения) для защиты лабораторных работ.

ЛИСТ ДЛЯ ОЦЕНКИ РАБОТЫ СТУДЕНТА

Ф. И.О. студента______________________________________________________

Группа______________________________________________________________

Ф. И.О. преподавателя_________________________________________________

____________________________________________________________________

Рецензия преподавателя

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Общая оценка…………………………………………………………………

Подпись…………………………Дата «______»_____________200__г.
СОДЕРЖАНИЕ

Лабораторная работа №1.. 6

Основные понятия и определения. 6

Лабораторная работа №2.. 12

Инфологическая модель данных "Сущность-связь". 12

Лабораторная работа №3.. 18

Нормализация отношений.. 18

Лабораторная работа №4.. 24

Основы реляционных базы данных.. 25

Лабораторная работа №5.. 30

Проектирование баз данных.. 30

Список литературы.. 35


ВВЕДЕНИЕ

Рабочая тетрадь содержит краткий обзор теоретического материала по темам «Введение в базы данных», «Модель сущность-связь», «Реляционная модель и языки», «Реляционная алгебра и реляционное исчисление», «Нормализация», «Управление транзакциями», «Направления развития концепций и систем обработки данных». Изучение этих тем будет способствовать эффективному использованию системы управления БД, в том числе осуществлять разработку БД и программирование операций на БД, а также поможет понять, почему БД проектируются так, а не иначе или чем ограничено число способов проведения операций на БД.

Для успешной защиты лабораторных работ рекомендуется изучить теоретический материал, ответить на вопросы и выполнить упражнения. Ответы на вопросы и выполненные упражнения оформляются в рабочих тетрадях, после чего тетради сдаются на проверку преподавателю.

Лабораторная работа №1

Основные понятия и определения

1.1 Место СУБД в системах обработки информации

Системы управления базами данных (СУБД) – это программные комплексы, предназначенные для работы со специально организованными файлами (массивами данных, долговременно хранимыми во внешней памяти вычислительных систем), которые называются базами данных. Основными функциями СУБД являются управление файлами БД («внутренняя» функция) и обработка прикладных программ (запросов) пользователей БД («внешняя» функция). К обеспечивающим функциям СУБД относятся: поддержка целостности БД в процессе ее эксплуатации, защита БД от несанкционированного доступа, управление обменом данными между БД и внешней средой (в т. ч. управление распределенной обработкой данных). Кроме того, современные СУБД зачастую оснащаются дополнительными инструментальными средствами разработки приложений (прикладных задач обработки данных).

Основные возможности СУБД определяются набором таких ее функционально-технологических характеристик, как поддерживаемая модель данных, уровень входного языка, масштабируемость и переносимость, архитектура распределенной обработки.

1.2 Основные функции СУБД

Непосредственное управление данными во внешней памяти

Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используются индексы).

Управление буферами оперативной памяти

СУБД обычно работают с БД значительного размера; по крайней мере этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти.

Управление транзакциями

Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует (COMMIT) изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД.

Журнализация

Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя.

Поддержка языков БД

Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по своим функциям языков. Чаще всего выделялись два языка - язык определения схемы БД (SDL - Schema Definition Language) и язык манипулирования данными (DML - Data Manipulation Language). SDL служил главным образом для определения логической структуры БД, т. е. той структуры БД, какой она представляется пользователям. DML содержал набор операторов манипулирования данными, т. е. операторов, позволяющих заносить данные в БД, удалять, модифицировать или выбирать существующие данные. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language)с.

Вопросы и упражнения к лабораторной работе №1

1. Объясните смысл терминов:

1.  Система обработки данных

2.  Произвольный доступ

3.  База данных

4.  Информационная система, использующая базы данных

5.  Модель данных

6.  Система управления базой даных

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. Что называется предметной областью

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. От каких недостатков файлов последовательного доступа избавлены файлы произвольного доступа?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4.  Перечислите и кратко охарактеризуйте каждый компонент современной информационной системы, использующей базы данных.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. Опишите каждый из следующих компонентов системы управления базой данных (СУБД):

e.  Словарь/каталог данных

f.  Защита и поддержание целостности данных

g.  Обеспечение одновременного доступа нескольких

пользователей

h.  Запрос данных, обработка данных, вывод данных

i.  Средства создания прикладных систем

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

6. Установите соответствие между терминами и объяснениями к ним:

данные

a. Компьютерная программа, выполняющая определенную практическую задачу

ключ

b. Организованные данные или выводы из них

информационная система

c. Разрозненные факты

синонимы

d. Люди, которым требуется информация, содержащаяся в базе данных

предок

e. Люди, ответственные за работу информационной системы, использующей базы данных

пользователи

f. Автоматическая система, обрабатывающая данные и выдающая информацию.

Прикладная программа

g. Термины, означающие одно и то же

омонимы

h. «Подчиненная» запись в иерархии

потомок

i.«Подчиняющая» запись в иерархии

информация

j. Термины, имеющие одинаковое написание, но разные значения

обслуживающий персонал

к. Поля данных, однозначно определяющие запись

сервер базы данных

L Обеспечивает конечным пользователям удобный доступ к системе

графический пользователъский интерфейс

m. Обслуживает доступ к базе данных клиентских машин

7. Какие из следующих утверждений могут рассматриваться как данные, какие — как информация?

a. Маршалл Добри в этом году получил комиссионных на большую сумму, чем любой другой торговый агент.

b. Маршалл Добри родился 12 декабря 1960 года.

c. В каждом месяце последнего квартала в западном регионе производились продажи на сумму более 000 долларов.

d. Товар А235 выгоден.

e. Товар А235 производится фирмой Де Муан.

8. Объясните своими словами смысл терминов:

• база данных;

• предметная область;

• информационная система.

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

10. Объясните преимущества, которые несет в себе использование СУБД.

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

11. Чем отличается система с базой данных от системы обработки фай­лов? Перечислите, какие возможности должна предоставлять СУБД.

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

12. Что такое независимость данных? Объясните, как она обеспечивается путем разделения СУБД на уровни. Почему независимость данных так важна?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

13. Определите каждый из этих терминов:

• данные

• поле

• запись

• файл

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

14. Что такое избыточность данных и какие свойства системы файлов являются ее причиной?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

15. Говорят, что система файлов не обеспечивает достаточной независимости по данным. Поясните.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Лабораторная работа №2

Инфологическая модель данных "Сущность-связь"

2.1 Основные понятия

Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком (последний не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка). Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).

2.2 Характеристика связей и язык моделирования

При построении инфологических моделей можно использовать язык ER-диаграмм (от англ. Entity-Relationship, т. е. сущность-связь). В них сущности изображаются помеченными прямоугольниками, ассоциации – помеченными ромбами или шестиугольниками, атрибуты – помеченными овалами, а связи между ними – ненаправленными ребрами, над которыми может проставляться степень связи (1 или буква, заменяющая слово "много") и необходимое пояснение.

Между двумя сущностям, например, А и В возможны четыре вида связей.

Первый тип – связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В:

Студент может не "заработать" стипендию, получить обычную или одну из повышенных стипендий.

Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.

Квартира может пустовать, в ней может жить один или несколько жильцов.

Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕ-КО-МНОГИМ (М:N).

2.3 О первичных и внешних ключах

Ключ или возможный ключ – это минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся. Каждая сущность обладает хотя бы одним возможным ключом. Один из них принимается за первичный ключ. При выборе первичного ключа следует отдавать предпочтение несоставным ключам или ключам, составленным из минимального числа атрибутов. Нецелесообразно также использовать ключи с длинными текстовыми значениями (предпочтительнее использовать целочисленные атрибуты).

Не допускается, чтобы первичный ключ (любой атрибут, участвующий в первичном ключе) принимал неопределенное значение. Иначе возникнет противоречивая ситуация: появится не обладающий индивидуальностью, и, следовательно не существующий экземпляр стержневой сущности. По тем же причинам необходимо обеспечить уникальность первичного ключа.

Теперь о внешних ключах:

·  Если сущность С связывает сущности А и В, то она должна включать внешние ключи, соответствующие первичным ключам сущностей А и В.

·  Если сущность В обозначает сущность А, то она должна включать внешний ключ, соответствующий первичному ключу сущности А.

Связь между первичными и внешними ключами сущностей иллюстрируется рис. 5.

Рис. 2 Структуры: а - ассоциации; б - обозначения (характеристики)

Здесь для обозначения любой из ассоциируемых сущностей (стержней, характеристик, обозначений или даже ассоциаций) используется новый обобщающий термин "Цель" или "Целевая сущность".

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

Выделяют три группы правил целостности:

1.  Целостность по сущностям.

2.  Целостность по ссылкам.

3.  Целостность, определяемая пользователем.

Рассмотрим мотивировку двух правил целостности, общих для любых реляционных баз данных.

1.  Не допускается, чтобы какой-либо атрибут, участвующий в первичном ключе, принимал неопределенное значение.

2.  Значение внешнего ключа должно либо:

1.  быть равным значению первичного ключа цели;

2.  быть полностью неопределенным, т. е. каждое значение атрибута, участвующего во внешнем ключе должно быть неопределенным.

3.  Для любой конкретной базы данных существует ряд дополнительных специфических правил, которые относятся к ней одной и определяются разработчиком. Чаще всего контролируется уникальность тех или иных атрибутов,
диапазон значений (экзаменационная оценка от 2 до 5),
принадлежность набору значений (пол "М" или "Ж").

Вопросы и упражнения к лабораторной работе №2

1.  Что называется инфологической моделью? Какая информация является исходной для построения концепту­альной модели?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. Что называется даталогической моделью? Какая информация является исходной для построения даталоги­ческой модели? Какие вопросы решаются на стадии даталогического моделиро­вания?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. Что называется физической моделью? Какие вопросы решаются на стадии физического моделирования?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. Трехуровневая архитектура базы данных и ее основное назначение. Дайте сравнительную характеристику ее внешнему, концептуальному и внутреннему уровням.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. Что называется схемой, подсхемой и внешней схемой? Какую роль выполняет подсхема?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

6.Ограничения целостности в иерархической модели?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

7.  Организуйте следующие файлы для базы данных банка иерархическим образом: ВЗНОС, СБЕРЕГАТЕЛЬНЫЙ СЧЕТ, ДЕПОЗИТ, КЛИЕНТ, ССУДА, СНЯТИЕ.

8. Охарактеризуйте особенности сетевой модели данных по отношению к иерархической модели.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

9. Объясните своими словами смысл терминов:

• объект;

• атрибут;

• бинарная связь;

• "один-ко-многим";

• мощность;

• показатель кардинальности;

• степень участия;

• ключ;

• рекурсивная связь;

• составной объект.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

10. Создайте концептуальную модель данных некоторого университета, ко­торая бы позволяла получить следующую информацию:

• количество преподавателей, работающих на факультете;

• список преподавателей факультета;

• дисциплины, изучаемые студентами определенной специальности в шестом семестре;

11. Для каждого из следующих утверждений создайте модель данных, показывающую отношение между объектными множествами, составное объектное множество и атрибут составного объекта.

a.  Студенты изучают предметы и получают по ним оценки.

b.  Каждый день служащие работают определенное количество часов.

12. Врачи поликлиники ведут прием и обследование пациентов. Вы­делите основные объекты-сущности предметной области и отношения между ними для концептуального проектирования банка данных АИС, автоматизирующей учет обследований пациентов. Изобразите средствами ER-модели концептуальную схему.

Лабораторная работа №3

Нормализация отношений

3.1 Первая Нормальная Форма

Понятие первой нормальной формы уже обсуждалось. Первая нормальная форма (1НФ) - это обычное отношение. Согласно нашему определению отношений, любое отношение автоматически уже находится в 1НФ. Напомним кратко свойства отношений (это и будут свойства 1НФ):

·  В отношении нет одинаковых кортежей.

·  Кортежи не упорядочены.

·  Атрибуты не упорядочены и различаются по наименованию.

·  Все значения атрибутов атомарны.

3.2 Функциональные зависимости

Для устранения указанных аномалий (а на самом деле для правильного проектирования модели данных!) применяется метод нормализации отношений. Нормализация основана на понятии функциональной зависимости атрибутов отношения.

Определение 1. Пусть R - отношение. Множество атрибутов функционально зависимо от множества атрибутов ( функционально определяет ) тогда и только тогда, когда для любого состояния отношения R для любых кортежей из того, что следует что (т. е. во всех кортежах, имеющих одинаковые значения атрибутов , значения атрибутов также совпадают в любом состоянии отношения R). Символически функциональная зависимость записывается

.

3.3 Вторая Нормальная Форма (2НФ)

Определение 3. Отношение находится во второй нормальной форме (2НФ) тогда и только тогда, когда отношение находится в 1НФ и нет неключевых атрибутов, зависящих от части сложного ключа. (Неключевой атрибут - это атрибут, не входящий в состав никакого потенциального ключа).

Замечание. Если потенциальный ключ отношения является простым, то отношение автоматически находится в 2НФ.

3.4 Третья нормальная форма (3НФ)

Определение 4. Атрибуты называются взаимно независимыми, если ни один из них не является функционально зависимым от другого.

Определение 5. Отношение R находится в третьей нормальной форме (3НФ) тогда и только тогда, когда отношение находится в 2НФ и все неключевые атрибуты взаимно независимы.

3.5 Алгоритм нормализации (приведение к 3НФ)

Итак, алгоритм нормализации (т. е. алгоритм приведения отношений к 3НФ) описывается следующим образом.

Шаг 1 (Приведение к 1НФ). На первом шаге задается одно или несколько отношений, отображающих понятия предметной области. По модели предметной области (не по внешнему виду полученных отношений!) выписываются обнаруженные функциональные зависимости. Все отношения автоматически находятся в 1НФ.

Шаг 2 (Приведение к 2НФ). Если в некоторых отношениях обнаружена зависимость атрибутов от части сложного ключа, то проводим декомпозицию этих отношений на несколько отношений следующим образом: те атрибуты, которые зависят от части сложного ключа выносятся в отдельное отношение вместе с этой частью ключа.

Вопросы и упражнения к лабораторной работе №3

1.  В чем различие между базой данных и таблицей?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2.  Что имеет в виду специалист по базам данных, когда он говорит, что БД обеспе­чивает целостность на уровне как сущности, так и ссылки?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3.  В руководстве пользователя по базам данных отмечается, что "файл содержит двести записей, каждая из которых содержит девять полей". Используйте соот­ветствующую терминологию реляционных баз данных, чтобы "перевести" это предложение.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. Что такое нормализация?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. Когда таблица приведена к 1НФ?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

6. Когда таблица приведена к 2НФ?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

7. Когда таблица приведена к ЗНФ?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

8. Когда таблица приведена к БКНФ?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

9. Что такое частичная зависимость? С какой нормальной формой она связана?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

10. Какие три аномалии данных вероятнее всего станут следствием избыточности данных? Как устранить эти аномалии?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

11. Определите и опишите концепцию транзитивной зависимости.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

12. Объясните своими словами смысл терминов:

a. Реляционная модель данных

g. Потенциальный ключ

h. Внешний ключ

к. Нормализация

I. Избыточность данных

m. Аномалия обновления

п. Аномалия ввода

р. Атомарное значение

q. Детерминант

s. Нормальная форма Бойса-Кодда

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

13.Перечислите основные понятия структурной составляющей ре­ляционной модели данных.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

14. Каким образом строятся связи между таблицами-отношениями, какие типы связей и почему обеспечи­ваются при этом?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

15.  Приведите пример таблицы не являющейся отношением

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

16. Что такое транзитивная зависимость? К каким негативным последстви­ям приводит наличие транзитивной зависимости? Какие меры помога­ют избавиться от этих последствий?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

17. Приведите к первой нормальной форме следующую ненормали­зованную таблицу:


18. Приведите ко второй нормальной форме следующие таблицы, на­ходящиеся в первой нормальной форме (ключ-Таб. номер, Спектакль):

и приведите к третьей нормальной форме следующие таблицы, на­ходящиеся во второй нормальной форме (ключ-Рейс):

Лабораторная работа №4

Основы реляционных базы данных

4.1 Базовые понятия реляционных баз данных

Реляционные системы далеко не сразу получили широкое распространение. В то время, как основные теоретические результаты в этой области были получены еще в 70-х, и тогда же появились первые прототипы реляционных СУБД, долгое время считалось невозможным добиться эффективной реализации таких систем. Однако отмеченные выше преимущества и постепенное накопление методов и алгоритмов организации реляционных баз данных и управления ими привели к тому, что уже в середине 80-х годов реляционные системы практически вытеснили с мирового рынка ранние СУБД.

К числу достоинств реляционного подхода можно отнести:

·  наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать большую часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными;

·  наличие простого и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации баз данных;

возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти.

Основными понятиями реляционных баз данных являются тип данных, домен, атрибут, кортеж, первичный ключ и отношение.

4.2 Реляционная алгебра

В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал язык SQL (Structured Query Language). Язык SQL представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий синтаксис, близкий к фразам английского языка и расширенный дополнительными возможностями, отсутствующими в реляционной алгебре и реляционном исчислении. Вообще, язык доступа к данным называется реляционно полным, если он по выразительной силе не уступает реляционной алгебре (или, что то же самое, реляционному исчислению), т. е. любой оператор реляционной алгебры может быть выражен средствами этого языка. Именно таким и является язык SQL.

4.3 Замкнутость реляционной алгебры

Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор выглядит как функция с отношениями в качестве аргументов:

Реляционная алгебра является замкнутой, т. к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу:

Таким образом, в реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры.

Традиционно, вслед за Коддом, определяют восемь реляционных операторов, объединенных в две группы.

Теоретико-множественные операторы:

·  объединение,

·  пересечение,

·  вычитание,

·  декартово произведение.

Специальные реляционные операторы:

·  выборка,

·  проекция,

·  соединение,

·  деление.

Не все они являются независимыми, т. е. некоторые из этих операторов могут быть выражены через другие реляционные операторы.

4.4 Операторы SQL

Основу языка SQL составляют операторы, условно разбитые не несколько групп по выполняемым функциям.

Можно выделить следующие группы операторов (перечислены не все операторы SQL):

Операторы DDL (Data Definition Language) - операторы определения объектов базы данных

·  CREATE SCHEMA - создать схему базы данных

·  DROP SHEMA - удалить схему базы данных

·  CREATE TABLE - создать таблицу

·  ALTER TABLE - изменить таблицу

·  DROP TABLE - удалить таблицу

·  CREATE DOMAIN - создать домен

·  ALTER DOMAIN - изменить домен

·  DROP DOMAIN - удалить домен

·  CREATE COLLATION - создать последовательность

·  DROP COLLATION - удалить последовательность

·  CREATE VIEW - создать представление

·  DROP VIEW - удалить представление

Операторы DML (Data Manipulation Language) - операторы манипулирования данными

·  SELECT - отобрать строки из таблиц

·  INSERT - добавить строки в таблицу

·  UPDATE - изменить строки в таблице

·  DELETE - удалить строки в таблице

·  COMMIT - зафиксировать внесенные изменения

·  ROLLBACK - откатить внесенные изменения

Операторы защиты и управления данными

·  CREATE ASSERTION - создать ограничение

·  DROP ASSERTION - удалить ограничение

·  GRANT - предоставить привилегии пользователю или приложению на манипулирование объектами

·  REVOKE - отменить привилегии пользователя или приложения

Кроме того, есть группы операторов установки параметров сеанса, получения информации о базе данных, операторы статического SQL, операторы динамического SQL.

Наиболее важными для пользователя являются операторы манипулирования данными (DML).

Вопросы и упражнения к лабораторной работе №4

1. Опишите, что может стоять в каждой из следующих команд SQL:

SELECT

FROM

WHERE

GROUP BY

HAVING

ORDER BY

UNION

INTERSECT

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. Какой командой может быть создана таблица? Напишите формат этой команды. ________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. Какие ограничения и каким способом можно задать при описании таблиц в SQL?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4.  Что произойдет, если в операторе DELETE не будет задана фраза WHERE?

____________________________________________________________________________________________________________________________________________________________________________________________________________

5.  Что означает параметр ALL в предложении SELECT?

____________________________________________________________________________________________________________________________________________________________________________________________________________

6.  Что означает параметр DISTINCT в предложении SELECT?

____________________________________________________________________________________________________________________________________________________________________________________________________________

7.  Какие агрегирующие функции могут быть использованы в SQL?

____________________________________________________________________________________________________________________________________________________________________________________________________________

8.  Каково назначение фразы WHERE в операторе SELECT?

____________________________________________________________________________________________________________________________________________________________________________________________________________

9.  С какой целью используется предикат LIKE?

____________________________________________________________________________________________________________________________________________________________________________________________________________

10.  В каких случаях надо использовать предложение GROUP BY в команде SELECT?

____________________________________________________________________________________________________________________________________________________________________________________________________________

11.  Как связано между собой использование предложения GROUP BY и агрегирующих функций?

____________________________________________________________________________________________________________________________________________________________________________________________________________

12.  Каково назначение фразы HAVING?

____________________________________________________________________________________________________________________________________________________________________________________________________________

13.  Как можно задать упорядочение данных в ответе?

____________________________________________________________________________________________________________________________________________________________________________________________________________

18. Дайте определение операции ОБЪЕДИНЕНИЯ таблиц-отноше­ний. Каково наименьшее и наибольшее количество строк может быть в результате объединения таблиц?

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

19.Дайте определение операции ПЕРЕСЕЧЕНИЯ таблиц-отношений. Каково наименьшее и наибольшее количество строк может быть в результате пересечения таблиц?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

20.Дайте определение операции ВЫЧИТАНИЯ таблиц-отношений. Каково наименьшее и наибольшее количество строк может быть в результате вычитания таблиц?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Лабораторная работа №5

Проектирование баз данных

5.1 Цели проектирования

Только небольшие организации могут обобществить данные в одной полностью интегрированной базе данных. Чаще всего администратор баз данных (даже если это группа лиц) практически не в состоянии охватить и осмыслить все информационные требования сотрудников организации (т. е. будущих пользователей системы). Поэтому информационные системы больших организаций содержат несколько десятков БД, нередко распределенных между несколькими взаимосвязанными ЭВМ различных подразделений. (Так в больших городах создается не одна, а несколько овощных баз, расположенных в разных районах.)

Отдельные БД могут объединять все данные, необходимые для решения одной или нескольких прикладных задач, или данные, относящиеся к какой-либо предметной области (например, финансам, студентам, преподавателям, кулинарии и т. п.). Первые обычно называют прикладными БД, а вторые предметными БД (соотносящимся с предметами организации, а не с ее информационными приложениями). (Первые можно сравнить с базами материально-технического снабжения или отдыха, а вторые √ с овощными и обувными базами.)

Предметные БД позволяют обеспечить поддержку любых текущих и будущих приложений, поскольку набор их элементов данных включает в себя наборы элементов данных прикладных БД. Вследствие этого предметные БД создают основу для обработки неформализованных, изменяющихся и неизвестных запросов и приложений (приложений, для которых невозможно заранее определить требования к данным). Такая гибкость и приспосабливаемость позволяет создавать на основе предметных БД достаточно стабильные информационные системы, т. е. системы, в которых большинство изменений можно осуществить без вынужденного переписывания старых приложений.

5.2 Этапы разработки базы данных

Целью разработки любой базы данных является хранение и использование информации о какой-либо предметной области. Для реализации этой цели имеются следующие инструменты:

1.  Реляционная модель данных - удобный способ представления данных предметной области.

2.  Язык SQL - универсальный способ манипулирования такими данными.

Однако очевидно, что для одной и той же предметной области реляционные отношения можно спроектировать множеством различных способов. Например, можно спроектировать несколько отношений с большим количеством атрибутов, или наоборот, разнести все атрибуты по большому числу мелких отношений

При разработке базы данных обычно выделяется несколько уровней моделирования, при помощи которых происходит переход от предметной области к конкретной реализации базы данных средствами конкретной СУБД. Можно выделить следующие уровни:

·  Сама предметная область

·  Модель предметной области

·  Логическая модель данных

·  Физическая модель данных

·  Собственно база данных и приложения

5.3 Легкость разработки и сопровождения базы данных

Практически любая база данных, за исключением совершенно элементарных, содержит некоторое количество программного кода в виде триггеров и хранимых процедур.

Хранимые процедуры - это процедуры и функции, хранящиеся непосредственно в базе данных в откомпилированном виде и которые могут запускаться пользователями или приложениями, работающими с базой данных. Хранимые процедуры обычно пишутся либо на специальном процедурном расширении языка SQL (например, PL/SQL для ORACLE или Transact-SQL для MS SQL Server), или на некотором универсальном языке программирования, например, C++, с включением в код операторов SQL в соответствии со специальными правилами такого включения. Основное назначение хранимых процедур - реализация бизнес-процессов предметной области.

Триггеры - это хранимые процедуры, связанные с некоторыми событиями, происходящими во время работы базы данных. В качестве таких событий выступают операции вставки, обновления и удаления строк таблиц. Если в базе данных определен некоторый триггер, то он запускается автоматически всегда при возникновении события, с которым этот триггер связан. Очень важным является то, что пользователь не может обойти триггер. Триггер срабатывает независимо от того, кто из пользователей и каким способом инициировал событие, вызвавшее запуск триггера.

Вопросы и упражнения к лабораторной работе № 5

1. Что означает термин "транзакция"? ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

2. Какими основными свойствами должна обладать любая из транзакций?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

3. Объясните, посредством какого специального механизма осуществляется реализация транзакции.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

4. Каким образом с помощью триггеров можно обеспечивать целостность базы данных? Каких правил необходимо придерживаться при создании триггеров?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

5. Чем в первую очередь определяется полезность хранимых процедур?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

6.  Опишите тенденции развития многопользовательских систем.

________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

7.  Что собой представляет технология "клиент — сервер"?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

8. Дайте характеристику моделям двухуровневой технологии "клиент-сервер".

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

9. Каковы достоинства и недостатки модели файлового сервера?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

10. Охарактеризуйте модель сервера баз данных.

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

10. Чем вызвано появление трехуровневых моделей технологии "клиент — сервер"? Какие преимущества у этих моделей?

____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Список литературы

1. Гаврилова, Т. А. Базы знаний интеллектуальных систем [Текст]: / , . – СПб: Издательство "Питер", 2000. – 384 с.: ил.; 24 см. Библиогр.: с. 3–4. – 5000 экз. ISBN -4.

2. Конноли, Т. Базы данных: проектирование, реализация и сопровождение. Теория и практика [Текст]: / Т. Конноли, К. Бегг; 2-е изд.: Пер с англ. – М.: Издательский дом «Вильямс», 2003. – 1440 с.: ил. – Парал. тит. англ.; 24 см. Библиогр.: с. 7-22. – 3500 экз. ISBN -3.

3. Малыхина, М. П. Базы данных: основы, проектирование, использование [Текст]: / . – СПб.: БХВ–Петербург, 2004. – 512 с.: ил.; 24 см. – Библиогр.: с. 3-9. – 4000 экз. ISBN -3.

4. Диго, С. М. Базы данных: проектирование и использование [Текст]: Учебник / . – М.: Финансы и статистика, 2005. – 592 с.: ил.; 20 см. – Библиогр.: с. 584-591. – 5000 экз. ISBN -2.