Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практикум БД_в_ред_11_сокр

.pdf
Скачиваний:
69
Добавлен:
08.04.2015
Размер:
4 Мб
Скачать
☆

теризующих данный тип случая. ИС страховой компании вычисляет на основании этих параметров размер страхового возмещения пострадавшему.

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

Основы реляционной модели данных

Теория. Основным объектом хранения информации в реляционной модели является таблица. Для таблицы в реляционной модели используется специальный термин – ОТНОШЕНИЕ, чтобы подчеркнуть, что не любая таблица годится для использования в реляционной БД. Таблица может быть названа отношением, если:

каждое отношение (таблица) имеет собственное имя и строится для описания кон-

кретной информационной сущности из выбранной предметной области реального мира

(«Товар на складе», «Заказы клиента»). В ней отражается сущность предмета или явления, характеризующего данный объект, и хранится информация о конкретных представителях данного объекта;

11

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

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

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

Конструируя таблицу, рекомендуется на первое место поставить ключевое (уникальное) поле, а за ним – поля, раскрывающие содержание ключа, например:

[Код Сотрудника]* – [Фамилия], [Код Товара] – [Название товара].

* Квадратными скобками выделены имена полей БД.

12

Пример построения информационной системы

Рассмотрим пример ведения учета персонала в отделе кадров некоторого условного предприятия: Акционерного коммерческого банка (АКБ) «Буревестник».

Полное наименование информационной системы

Система ведения учета персонала – ИС «Кадры». Разрабатывается на базе СУБД MS

Access.

Цель автоматизации

Ведение учета персонала АКБ «Буревестник».

Основные задачи

Ввод данных о сотрудниках и их назначениях. Внесение изменений в информацию.

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

Формирование экранных и бумажных отчетов по персоналу по заданным образцам. Ведение списков должностей.

Хранение описания организационной структуры (списка отделов).

13

Отдел кадров АКБ «Буревестник» предоставил следующий документ (орфография документа сохранена):

Список сотрудников АКБ «Буревестник»

СОТРУДНИКИ КРЕДИТНОГО ОТДЕЛА (ТЕЛ. ОТДЕЛА ДОБ 334) Иванов, Иван, Москва, Сиреневый б., д.1, к.11,8-916 123-45-67, 01.01.1960, Холост, детей нет, Мужской, Управляющий, 35 000 RUB + 50 долл. надбавка.

Петр Иванович Петров, Цветной б., д2, к. 22,8-095 456-71-23,02.02.1965, Семейный, Есть дети, Муж, Помощник управл.,22 000 RUB, надб. $ 100 СОТРУДНИКИ ВАЛЮТНОГО ОТДЕЛА (ТЕЛ. ОТДЕЛА ДОБ 335)

Сидоров, Петр, Малиновый пр. д.3 к.33, 8-903 234-56-71, 04.04.1970, В разводе, 2 ребенка (девочка и мальчик), М, Пом. управляющего ,22 000 RUB+150 Птичкина, Галя, Цветной б., д2, к. 22,8-095 456-71-23,03.03.1966,Семейная, мальчик 5 лет, Ж, Управляющий,45 000 RUB+$250 US СОТРУДНИКИ АДМИНИСТРАТИВНОГО ОТДЕЛА (ТЕЛ. ОТДЕЛА ДОБ 333)

Синичкина, Мария Ивановна, Цветной б., д.2, к. 22,8-926345-67- 12,05.05.1930,Вдова,3,Жен, Главный управляющий,55 000 RUR

ЗАДАНИЕ 1

Проанализируйте (совместно с преподавателем) информацию, представленную в документе «Список сотрудников АКБ». Разбейте информацию на атомарные единицы, характерные для всей сущности и определите необходимые поля для размещения данных в табли- це-отношении. Дайте имя отношению и придумайте имена для каждого его поля.

14

ЗАДАНИЕ 2

Самостоятельно. Подберите типы и размеры для всех полей таблицы, исходя из анализа информации в документе «Список сотрудников АКБ “Буревестник”». Выберите поле или группу полей, отвечающих требованиям первичного ключа.

Рис. 1. Таблица для анализа первичной информации из документа «Список сотрудников АКБ “Буревестник”» в процессе проектирования ИС «Кадры».

Имя

Фамилия

Имя

Адрес

Телефон до-

Дата

Семейное

Дети

Пол

Надбавка

поля

 

 

 

машний

рождения

положение

 

 

 

Тип данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ИВАНОВ

Иван

Сиреневый б.,

8-916

01.01.1970

Холост

0

Муж

$ 50 US

 

 

 

 

д. 1, к. 11

123-45-67

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЕТРОВ

Петр

Цветной б.,

8-495

02.02.1975

Семейный

1

Муж

$ 100 US

 

 

 

 

д. 2, к. 22

456-71-23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СИДОРОВ

Петр

Малиновый пр.

8-903

04.04.1980

В разводе

2

Муж

$ 150 US

 

 

 

 

д. 3, к. 33

234-56-71

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПТИЧКИНА

Галина

Цветной б.,

8-495

03.03.1976

Семейная

1

Жен

$ 250 US

 

 

 

 

д. 2, к. 22

456-71-23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СИНИЧКИНА

Мария

Цветной б.,

8-926

05.05.1945

Вдова

3

Жен

$ 0 US

 

 

 

д. 2, к. 22

345-67-12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Размер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

Рис. 1. (продолжение) Таблица для анализа первичной информации из документа «Список сотрудников АКБ “Буревестник”» в процессе проектирования ИС «Кадры».

Имя

Должность

Оклад

Отдел

Телефон отдела

поля

 

 

 

 

 

 

 

 

 

Тип данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управляющий

35 000 RUR

КРЕДИТНЫЙ

доб 334

 

 

 

 

 

 

 

Помощник управляющего

22 000 RUR

КРЕДИТНЫЙ

доб 334

 

 

 

 

 

 

 

Помощник управляющего

22 000 RUR

ВАЛЮТНЫЙ

доб 335

 

 

 

 

 

 

 

Управляющий

35 000 RUR

ВАЛЮТНЫЙ

доб 335

 

 

 

 

 

 

 

Главный управляющий

45 000 RUR

АДМИНИСТРАТИВНЫЙ

доб 333

 

 

 

 

 

 

 

Размер

 

 

 

 

 

 

 

 

 

 

 

 

 

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

16

Нормализация таблиц – методика устранения избыточности

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

Выберите и удалите из анализируемой (первой) таблицы группу полей функционально независимых от первичного ключа. Как правило, они заполнены повторяющимися значениями. Это можно сделать на основе правила: «Если некоторую информацию можно хранить и обрабатывать независимо от ключевого поля, то она отражает сущность другого объекта и должна хранится в отдельной таблице».

Создайте новую (вторую) таблицу на основе этих полей. Определите для нее ключевое поле. Записи в данной таблице будут заполнены только уникальными значениями полей. Повторы исключены.

Дайте новые названия для первой и второй таблиц и определите, какой тип связи между ними. Как правило, там, куда были перемещены повторяющиеся поля, будет связь ОДИН, а в первой таблице – МНОГО.

Добавьте в первую таблицу новое поле для связи ее со второй таблицей, как простое

17

(не ключевое) поле, имеющее тот же тип данных и размер, что и ключевое поле второй таб-

лицы. Обычно его называют полем внешнего (вторичного) ключа (МНОГО).

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

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

Упр. 1. Нормализация исходной таблицы

Теория. Выбираем из шаблона таблицы для анализа первичной информации (см. рис. 1) поля [Отдел] и [Телефон отдела]. Они функционально не зависят от первичного ключа [Фамилия]. Они заполнены повторяющимися значениями, что вызывает избыточность. На первый взгляд в нашем примере избыточность не очень большая. Но представим, что каждый отдел характеризуется не только наличием телефона, а также сведениями о его номере, местонахождении, площади занимаемых помещений, начальнике отдела, уровне подчинения и т.д. В этом случае для каждого нового сотрудника мы вынуждены были бы в такой таблице повторять всю информацию об атрибутах отдела. Если бы какой-то атрибут изменился (например, телефон отдела), то это нужно было бы поменять во всех записях о сотрудниках из данного отдела (аномалия обновления). При этом также возникают аномалии вставки и удаления. Мы не можем вставить информацию об отделе [Отдел]=”Бухгалтерия”, пока не появился сотрудник из данного отдела, определяющий первичный ключ. При удалении записи о сотруднике, например, по фамилии [Фамилия]=”Синичкина”, теряется информация об отделе [Отдел]=”Административный”.

Самостоятельно. Проанализируйте связь группы полей [Должность] и [Оклад] с первичным ключом [Фамилия]. Определите новые таблицы. Дайте имена таблицам – информационным объектам. Определите в них (создайте в каждой) первичное ключевое поле.

19

ЗАДАНИЕ 3

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

Табл.

 

 

 

Табл.

 

 

 

 

Имя поля

Тип

Размер

 

Имя поля

Тип

Размер

П_Кл

 

 

 

П_Кл

 

 

 

 

Фамилия

 

 

 

Должность

 

 

 

 

 

 

 

 

 

Имя

 

 

 

Оклад

 

 

 

 

 

 

 

 

 

Адрес

 

 

 

 

 

 

 

Телефон Домашний

 

 

 

 

 

 

 

Дети

 

 

 

 

 

 

 

Дата Рождения

 

 

Табл.

 

 

 

 

Семейное Положение

 

 

 

Имя поля

Тип

Размер

 

Пол

 

 

П_Кл

 

 

 

 

 

 

 

 

 

 

Надбавка

 

 

 

Отдел

 

 

 

 

 

 

 

Телефон Отдела

 

 

 

 

 

 

 

 

 

 

П_Кл =Первичный ключ

 

 

Вн_Кл

=Внешний ключ

 

 

20