Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BBD_Shpory.doc
Скачиваний:
11
Добавлен:
26.09.2019
Размер:
13.1 Mб
Скачать

1. Основная терминология, определения: базы данных, банка данных, АСУ, СУБД, администратор БД, системный программист, прикладной программист. Определения в области проектирования БД: объект, группа, данное.

Основная терминология

До появления термина «Базы данных» в литературе использовали термин «Информационно поисковые системы» (ИПС).

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

Банк данных 1. Информационная база отраслевых АСУ и информационных систем; 2. БД.

АСУ (Автоматизированные системы управления). Системы типа «человек-машина» для комплексной автоматизации процессов управления производством в масштабах предприятия или отрасли с применением экономико-математических методов.

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

Дополнения к определениям

БД - организованный набор данных, а СУБД - это то, что организует данные.

С точки зрения пользователя БД - это то, что он сам проектирует, а СУБД - это инструмент проектирования и последующей эксплуатации Базы (Банка) данных.

Существуют другие определения, например:

БД - это информационная модель предметной области (ПО).

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

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

Их можно разделить на 2 группы:

- внутренние

- конечные (ради них и создаются БД и другие ИС)

Внутренние:

- администраторы БД;

- администраторы функциональных подсистем;

- системные программисты;

- прикладные программисты.

Администратор БД

При проектировании БД – администраторы БД - это идеологи и конструкторы системы; руководят работой по программному обеспечению конкретной БД (не путать с СУБД).

При эксплуатации БД - администратор БД - это ответственное лицо за эксплуатацию ИС. Основные задачи:

- защита данных от разрушения (резервное копирование, работа со средствами восстановления, организация доступа по паролям);

- обеспечение достоверности данных;

- анализ эффективности использования ресурсов ИС.

Администратор функциональных подсистем

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

Системные программисты

Системные программисты выполняют инсталляцию СУБД для конкретной ОС (например, Access для Win 95 или Win NT 4.0), по заданию администратора БД - могут разработать вспомогательные модули СУБД.

Прикладные программисты

Прикладные программисты разрабатывают конкретные программы, учитывающие специфику заказчика, по обработке хранимых данных. Чаще всего они разрабатывают так называемую клиентскую часть системы, построенной по идеологии «Клиент- сервер».

Основы проектирования БД

Терминология

В широком смысле слова БД можно определить как совокупность сведений о конкретных объектах реального мира в какой-либо предметной области.

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

Группа всех подобных объектов образует набор объектов. БД оперирует наборами объектов, спроектированными применительно к данной предметной области, используя при этом конкретные значения данных о тех или иных объектах.

Данное - это некоторый показатель, который характеризует некий объект и принимает для конкретного экземпляра объекта некоторое числовое или текстовое значение. Например: возраст и фамилия.

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

К

Катег.

Наим_кат

ДР

Друзья

РД

Родственники

СР

Сервис

МН

Магазин

СЛ

Сослуживцы

оличество данных может меняться в широких пределах. Для Access - это сотни тысяч записей в таблице. Для больших количеств - более дорогие и развитые СУБД, например, INFORMIX, ORACLE, SYBASE ANYWARE. Средства разработки: Power Builder, S-designor. Стоимости: 2-10 тысяч $.

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

Далее разработчик сообщает тип данного - числовое или текстовое, а также формат данного, который для числового данного связан с диапазоном представления, а для текстового - длиной строки.

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

2. Модели бд: простая двумерная структура, иерархическая структура, реляционная модель.

Простая двумерная структура

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

Однородные объекты - номера телефонов. Более детально выберем следующие данные:

-

Номер (9);

Имя_аб (15);

Адрес (40);

Катег (2);

номер телефона;

- имя абонента (любой вариант);

- адрес абонента;

- категория абонента (друг, родственник, сослуживец и т.д.).

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

В дальнейшем мы увидим, что короткие имена (мнемоники) чаще всего «не расстаются» с комментариями (полные слова из предметной области).

Для данного КАТЕГОРИЯ будем употреблять двухсимвольные коды-аббревиатуры: ДР - друзья, РД - родственники, СЛ - сослуживцы, СР - сервис, МН - магазины. Тогда получится следующая модель справочника - в виде таблицы (Табл. 1)

Номер

Имя_аб

Адрес

Катег

233-08-19

Петров Михаил

Садовая, 18

ДР

265-01-15

Дядя Коля

Зеленая, 11

РД

570-14-20

Химчистка

Кольцевая, 5

СР

981-23-19

Динамо

-

МН

487-18-20

Терехов Анат. Дмитр.

Нагорная, 2

СЛ

(однородные, не связанные между собой объекты)

КАТЕГОРИЯ обозначена кодом и это хорошо с точки зрения экономии. Но для нее нужна еще одна таблица - словарь (справочник). Объекты словаря - КАТЕГОРИЯ: Табл. 2.

Если снабдить таблицы именами, например, TELEF и SLKAT, и каким-либо образом перевести их в виде файлов на диск компьютера, то в принципе возможны следующие методы автоматизированной обработки:

- быстро вызвать строку из TELEF с указанным номером или именем;

- выдать (на экран) список телефонов, упорядоченный по именам или категориям;

- выбрать и вызвать на экран телефоны заданной вами категории.

Заметим, что БД образуют две двумерные таблицы с фиксированным числом столбцов и переменным числом строк.

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

Иерархическая структура

Рассмотрим пример из промышленности:

Имеются фирмы А и В. Фирма А изготавливает 2 вида продукции (трубы медные и трубки латунные), обозначаемые кодами 3980 и 1250.

Продукция 3980 изготавливается по двум технологическим схемам с кодами 01 и 02, каждая из которых обеспечивает себестоимость продукции соответственно 578 и 612 руб / т. Продукция 1250 имеет 3 схемы: 01, 02 и 03 и себестоимости 380, 345 и 410 руб / т.

Фирма В изготавливает 3 вида продукции с кодами 1250, 1640 и 1930, для каждого из которых также имеются схемы и себестоимости.

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

Д ля фирмы В аналогичная структура:

Это типичная иерархическая структура, в которой исходные элементы порождают другие элементы, а те, в свою очередь - следующие и т.д.

Чтобы поместить эту схему в компьютер в виде таблицы нужно пройти от каждого начального узла по всем веткам до каждого «листочка» и каждый такой проход (соответствующий листочку) займет отдельную строку таблицы:

Себестоимость

Фирма

Прод

Сх

Себест

А

3980

01

578

А

3980

02

612

А

1250

01

380

А

1250

02

345

А

1250

03

410

В

1250

01

395

Выводы:

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

- Иерархическую структуру мы механически свели к двумерной.

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

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

Термин реляционная является кратким синонимом словосочетания «простые двумерные таблицы».

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

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

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

1. В реляционных БД совокупности данных представляются в виде двумерных таблиц (подобных описанному выше примеру).

2. Каждая таблица состоит из фиксированного числа столбцов (доменов). Количество строк - переменное число.

3. Каждый столбец представляет конкретное данное (код фирмы, код продукции и т.д.). На языке БД столбцы часто называются полями (естественно при этом рассматривать одну запись - строку). Для каждого поля разработчик должен определить:

- уникальное имя поля;

- тип поля;

- длину поля.

Например, поле «Себест» может иметь тип «Числовое» и длину 7 (4 знака до точки и 2 знака после точки).

«Поле» - это наиболее распространенный термин, заменяющий слово «данное».

4. Каждая строка таблицы на языке БД называется записью. Записи нумеруются по порядку 1, 2, …., n, где n- число на данный момент. Добавление записей- нормальная рабочая операция. Добавление полей - реорганизация БД – сфера действий системного программиста.

5. Каждое поле может входить в несколько таблиц, например «Катег.»

Реляционная модель данных обладает следующими основными свойствами.

1. Данные воспринимаются пользователями как таблицы (и никак иначе).

2. Каждая таблица состоит из однотипных строк и имеет уникальное имя.

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

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

5. Столбцам таблицы однозначно присваиваются имена, и в каждом из них размещаются однородные значения данных (даты, фамилии, целые числа или денежные суммы).

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

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

Рассмотрим еще пару типичных примеров.

Пример 1. Учет заказов на продукцию завода.

ZAKAZ

1. Ном_зак - номер заказа.

2. Код_заказч - код заказчика.

3. Банк_рек - банковские реквизиты заказчика.

4. Код_прод - код продукции.

5. Объем - объем заказа в кг.

6. Дат_исп - дата исполнения заказа (ДД / ММ / ГГ).

7. Цена - цена продукции (руб/кг).

Пример 2.

KADR

1. ФИО

2. Год_рожд

3. Образов

4. Должность

5. Оклад

Рассматривая эти таблицы, замечаем, что в них используется код, а не прямо имя завода заказчика. В связи с этим возникает вопрос - почему используется код, хотя компьютер может обрабатывать и символы? Первый очевидный ответ - из экономии. Но есть и более важный аспект - проблема одинаковости ввода. Например, название «Тульский механический завод» могут разные люди вводить как Тульск. мех. завод, Тульск. мех. з-д и т.п. Проблема решается также как и в примере с телефонным справочником - КАТЕГ, то есть в базу вводят словарь, в котором для этого конкретного случая будет строка, например:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]