Структурирование данных - введение соглашений о способах представления данных. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Структурирование данных - введение соглашений о способах представления данных.



Пример неструктурированных данных, содержащих сведения о студентах (номер личного дела, фимилия, имя, отчество, год рождения):

Личное дело № 16493, Сергеев Петр Михайлович, дата рожд. 1 января 1976г.;

Личное дело № 16593, Петрова Анна Владимировна, дата рожд. 15 марта 1975 г.;

Личное дело № 16693, Анохин Андрей Борисович дата рожд. 14 марта 1976 г

Пример структурированных данных:

№ личного дела Фамилия Имя Отчество Дата рождения
  Сергеев Петр Михайлович 01.01.76
  Петрова Анна Владимировна 15.03.75
  Анохин Андрей Борисович 14.03.76

 

База данных (БД) - поименованная совокупность структурированных данных, относящихся к определенной предметной области, содержащая перекрестные ссылки.

Предметная область - часть реального мира, подлежащая изучению для организации управления и автоматизации (предприятие, банк, вуз, магазин и т.д.).

 

1.2 Структурные элементы логической организации базы данных

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

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

Характеристиками поля являются:

имя (напр., Фамилия, Имя, Отчество, Дата рождения);

тип (напр., символьный, числовой, календарный);

длина (максимально возможное количество символов);

точность (напр., количество десятичных знаков для отображения дробной части числа).

Первичный ключ - поле, значение которого однозначно идентифицирует экземпляр записи.

Вторичный ключ - поле, значение которого выполняет роль поисковых или группировочных признаков.

Запись - совокупность логически связанных полей.

Экземпляр записи - отдельная реализация записи, содержащая конкретные значения её полей.

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

 

Имя поля 1 Имя поля 2 Имя поля 3 Имя поля 4
       
     
       

 

 

Описать логическую структуру записи - значит указать последовательность расположения полей записи и их основные характеристики.

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

1.3 Базовые понятия реляционных БД

Основные понятия реляционных БД основываются на классической теории множеств. Центральное место в терминологии реляционных БД занимает понятие отношения (понятие «реляционный» образовано от английского слова relation - отношение).

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

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

Примеры схем отношений (линейная форма определения отношения):

СОТРУДНИКИ(Номер, Имя, Зарплата, Номер отдела)

ОТДЕЛЫ(Номер, Имя начальника, Общая зарплата, Общая численность)

Схема БД - это именованное множество схем отношений.

Реквизиты в схеме отношения часто называют атрибутами отношения.

Степень ("арность") схемы отношения - количество атрибутов в схеме отношения.

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

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

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

Среди значений домена не могут содержаться множества значений.

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

Данные считаются сравнимыми только в том случае, когда они относятся к одному домену.

Кортеж - множество, содержащее по одному значению каждого атрибута, принадлежащего схеме отношения.

Отношение - это множество кортежей, соответствующих одой схеме отношения.

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

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

1. каждый элемент таблицы - один элемент данных;

2. все столбцы в таблице однородные (все элементы столбца имеют одинаковый тип и длину);

3. каждый столбец имеет уникальное имя;

4. одинаковые строки в таблице отсутствуют;

5. порядок следования строк и столбцов может быть произвольным.

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

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

Простой ключ - это первичный ключ, состоящий только из одного атрибута.

Составной ключ - это первичный ключ, составленный из нескольких атрибутов.

Смысл рассмотренных понятий показан на схеме:

Типы данных

 

           
   
   
 

 


Домены

 

               
       

 


первичный ключ атрибуты

Сотр_номер Сотр_имя Сотр_зарп Сотр_отд_номер
  Иванов 112,00 310
  Петров 144,00 310
  Сидоров 92,00 313
  Федоров 110,00 310
  Иванова 112,00 315

 

сотрудники кортежи

 

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

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

 

1.4 Архитектура систем баз данных

В теории баз данных часто используется понятие системы баз данных.

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

Система баз данных включает в себя 4 компонента:

1. данные, непосредственно хранимые в базе данных;

2. аппаратное обеспечение (накопители, процессоры, основная память);

3. программное обеспечение (СУБД);

4. пользователи (прикладные программисты, конечные пользователи, администраторы баз данных).

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

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

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

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

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

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

статочно использовать готовые браузеры и программные решения.

Контрольные вопросы.

1. Перечислите компоненты системы баз данных.

2. Дайте определение структурированности данных.

3. Дайте определение полю.

4. Перечислите характеристики поля.

5. Дайте определение типу данных.

6. Дайте определение первичному ключу.

7. Дайте определение вторичному ключу.

8. Дайте определение записи.

9. Дайте определение экземпляру записи.

10. Дайте определение таблицы.

11. Дайте определение схемы отношения.

12. Дайте определение схемы БД.

13. Дайте определение домена.

14. Дайте определение кортежа.

15. Дайте определение отношения.

16. Перечислите свойства отношения.

17. Дайте определение первичного ключа.

18. Дайте определение простого ключа.

19. Дайте определение составного ключа.

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

21. Дайте определение системы баз данных.

22. Дайте определение архитектуры системы баз данных.

23. Дайте определение предметной области.

24. Что значит описать логическую структуру записи.

25. Дайте определение локальной архитектуры.

26. Дайте определение клиент - серверной архитектуры.

27. Дайте определение распределенной архитектуры.

28. Дайте определение интернет - архитектуры.


Лекция № 2

2 Функции СУБД. Типовая организация СУБД.
Модели баз данных.

 

Рассматриваемые вопросы:

1. Управление данными во внешней памяти

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

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

4. Журнализация и восстановление БД после сбоев

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

6. Типовая организация современной СУБД

7. Модели баз данных

 

При работе с БД чаще всего от СУБД требуется выполнять следующие типовые операции:

1. создание/модификация свойств/удаление таблиц в БД;

2. поиск, отбор, сортировка информации по запросам пользователей;

3. добавление новых записей;

4. модификация существующих записей;

5. удаление существующих записей.

Выделяют следующие основные функции СУБД, благодаря которым СУБД способна эффективно выполнять операции обработки БД:

 

2.1 Управление данными во внешней памяти

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

 

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

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

 

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

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

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

Пример нарушения целостности данных.

Сотрудники

Сотр_Номер Сотр_Имя Сотр_Зарп Сотр_Отд_Номер
  Иванов И.И. 1000$  
  Cидоров С.С. 500$  
  Федоров П.И. 700$  

 

Отделы

Отд_Номер Отд_Рук Отд_Сотр_Зарп Отд_Размер
  Курочкин С.А. 2500$  
  Рябцев Т.А. 1500$  

 

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

2.4 Журнализация и восстановление БД после сбоев

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

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

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

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

Язык баз данных - язык для работы с базами данных, позволяющий "программировать" выполнение типовых операций обработки данных.

Выделяют следующие разновидности реляционных языков баз данных:

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

2. графические языки (QBE) - отличаются наглядностью, ориентированы на конечных пользователей;

3. SQL-подобные языки - позволяют сформулировать инструкции по выполнению типовых операции по обработке данных на близком пользователям языке; является стандартным языком современных реляционных БД.

Пример SQL-запроса.

SELECT Отд_Размер

FROM Сотрудники, Отделы

WHERE Сотр_Имя = "Иванов И.И." AND Сотр_Отд_Номер = Отд_Номер

2.6 Типовая организация современной СУБД

Состав компонентов типичной СУБД соответствует набору основных функций:

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

2. компилятор языка БД - осуществляет компиляцию операторов языка БД в некоторую выполняемую программу.

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

4. утилиты БД - процедуры, которые слишком накладно выполнять с использованием языка БД (загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д.).

В некоторых СУБД эти компоненты выделяются явно, в других - такое разделение можно провести только логически.

 

2.7 Модели баз данных

Ядром любой базы данных является модель данных. С помощью модели данных представляются объекты предметной области и взаимосвязи между ними.

Модель данных - совокупность структур данных, ограничений целостности и операций манипулирования данными.

Выделяют три основных типа моделей данных:

1. иерархическую,

2. сетевую,

3. реляционную.

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

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

Пример

 
 


 

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

Пример

 

 

 
 

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

Понятие модели данных было введено в обиход применительно к реляционным системам и поэтому наиболее эффективно используется в контексте реляционных баз данных.

 

Контрольные вопросы.

 

1. Перечислите типовые операции СУБД

2. Перечислите основные функции СУБД

3. В чём состоит функция управления данными во внешней памяти?

4. В чём состоит функция управления буферами оперативной памяти?

5. В чём состоит функция управления транзакциями?

6. В чём состоит функция журнализации?

7. Перечислите разновидности реляционных языков баз данных

8. Перечислите компоненты типичной СУБД

9. Дайте определение Модели данных

10. Перечислите основные типы моделей данных

11. Дайте определение иерархической модель данных

12. Дайте определение сетевой модель данных

13. Дайте определение реляционной модель данных

 



Поделиться:


Последнее изменение этой страницы: 2016-12-14; просмотров: 936; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.131.13.37 (0.093 с.)