III. Использование конструктора отчетов 


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



ЗНАЕТЕ ЛИ ВЫ?

III. Использование конструктора отчетов



 

13. В окне базы данных выберите закладку «Отчеты» и выполните отчет «Отчет о погрузке». Нажмите кнопку «Конструктор».

Обратите внимание на то, что макет отчета состоит из нескольких областей:

· «Заголовок отчета» и «Примечание отчета» - данные в этих областях выводятся в отчет только один раз;

· «Верхний колонтитул» и «Нижний колонтитул» - стандартно выводится номер страницы, Вы можете использовать эти области для вывода дополнительных названий (например, в данном случае – названия судна или судоходной компании, а может быть - названия отчета или даты его составления);

· «Область данных» - здесь выводятся детальные сведения из таблицы для всех групп данных в отчете;

· «Заголовок группы…» и «Примечание группы…» - для каждого из определенных в отчете уровней группировки данных. В области заголовка группы выводится название уровня и соответствующее значение поля, а в области примечания – итоговые данные по группе записей.

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

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

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

14. В области «Заголовок отчета» в конце имеющейся надписи добавьте двоеточие и текст «т/х “Сестрорецк”». Выведите отчет на экран, а затем возвратитесь в режим конструктора.

15. Надпись «Погружен» в области «Заголовок группы ‘Погружен’» замените на «Погружен в порту:» и снимите для этой надписи выделение «жирным» шрифтом. Текст в поле «Погружен» выровняйте по левой границе и сделайте его «жирным».

16. Уменьшите ширину надписи «Трюм», «приблизьте» поле «Трюм» к надписи и увеличьте размер шрифта в поле до 14 пунктов. Выведите отчет на экран, а затем возвратитесь в режим конструктора.

17. В Области «Примечание группы ‘Тип’» замените в поле типа «Надпись» текст:

="Итоги для " & "'Тип' = " & " " & [Тип] & " (" & Count(*) & " " & IIf(Count(*)=1;"запись";"записей") & ")"

на:

="Всего: " & Count(*)

Надпись «Sum» замените на «Вес».

ВНИМАНИЕ! В поле отчета типа «Надпись» на экран может выводиться результат выполнения выражения

Выражение всегда начинается со знака = и может состоять из нескольких элементов объединяемых при помощи операции соединения (&).

В качестве элементов выражения могут быть использованы:

§ текстовые константы – всегда заключатся в кавычки (например «Итоги для»);

§ числовые константы;

§ поля таблицы (запроса) – например [Тип];

§ функции – например Count(), iif(), Sum() и др.

 

 

18. В Области «Примечание группы ‘Трюм’» замените текст в поле:

="Итоги для " & "'Трюм' = " & " " & [Трюм] & " (" & Count(*) & " " & IIf(Count(*)=1;"запись";"записей") & ")"

на

="В трюме №" & [Трюм] & " " & Count(*) & " конт. "

Надпись «Sum» замените на «общим весом:».

Расположите надписи и соответствующие поле так, чтобы они выводились в одной строке и отображались «жирным» шрифтом. Выведите отчет на экран.

19. Закройте окно отчета.

 

IV. Контрольное задание

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

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

Связывание таблиц

ВНИМАНИЕ! После выполнения практического задания в базу данных должны быть добавлены таблицы «Менеджмент», «Порты», «Бригада» и запросы «Груз и порты», «Расписание работы»

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

1. Для чего в MS Access используется «Схема данных»

2. Сформулируйте основное правило проверки целостности базы данных для связи вида 1:М.

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

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

 

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

 

Указание. Перед выполнением задания ознакомьтесь с разделами «Операция связывания» и «Ссылочная целостность реляционной базы данных» второй части учебного пособия.

 

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

 

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

 

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

 

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

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

 

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

 

 

Порядок выполнения работы

 

I. Связь 1:1

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

 

1. Создайте новую таблицу «Менеджмент», содержащую следующие поля:

· Id – числовое (длинное целое), первичный ключ

· Port – текстовое – порт приписки судна;

· Flag - текстовое – государство, в котором судно зарегистрировано;

· Holder - текстовое – владелец судна;

· Traffic_control - текстовое – компания, осуществляющая управлением работы судна;

· Crew_control - текстовое – компания, обеспечивающая подбор членов экипажа судна

2. Введите в созданную таблицу запись, состоящую из следующих значений:

a. Id = 1

b. Port =”SPB”

c. Flag = “Russia”

d. Holder = “Alpha Ltd”

e. Traffic_control = “Alpha Ltd”

f. Crew_control = “Delta crew agency”

3. В таблицу «Судно» добавьте поле “Code” (длинное целое), перейдите в табличный режим и добавьте в это поле в единственной записи таблицы значение равное 1, перейдите в режим конструктора и объявите это поле первичным ключом.

4. Откройте схему данных с использованием инструмента «Схема данных» панели «Показать или скрыть» ленты «Работа с базами данных». В окне «Схема данных» выполните команду Связи|Добавить таблицу и в диалоговом окне укажите таблицы «Судно» и «Менеджмент». Закройте окно «Добавление таблицы»

5. Выделите ключевое поле таблицы «Судно» (это - поле «Code»). Нажмите левую клавишу мышки и «перетащите» ее на поле «Id» таблицы «Менеджмент». Тем самым мы укажем MS Access, что мы хотим связать эти две таблицы по указанным полям. Установите отметку «Обеспечение целостности данных». Нажмите кнопку «Создать». Поскольку поля «Код» в обеих таблицах являются ключевыми, MS Access автоматически определит вид связи как 1:1.

ВНИМАНИЕ! В случае установки отметки «Обеспечение целостности данных» MS Access будет следить за тем, чтобы пользователь не смог удалить из основной таблицы («Судно») запись если в ней указан код судна, который имеется в дополнительной таблице «Менеджмент»). И наоборот, не позволит ввести в таблицу «Менеджмент» запись с кодом судна, который отсутствует в основной таблице.

6. Закройте окно «Схема данных»

 

7. Введите в таблицу «Менеджмент» запись, состоящую из следующих значений

g. Id = 2

h. Port =”SPB”

i. Flag = “Russia”

j. Holder = “Beta Ltd”

k. Traffic_control = “Beta Ltd”

l. Crew_control = “Delta crew agency”

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

II. Связь 1:M

 

Связь вида 1:M может быть установлена тогда, когда одной записи в основой таблице соответствует несколько записей в дополнительной таблице.

 

 

8. Создайте новую таблицу «Порты», содержащую следующие поля:

· Port – текстовое (4 символа) – аббревиатура названия порта (первичный ключ);

· Name - текстовое (50 символов) – название порта на английском языке;

· Country- текстовое (50 символов) – государственная принадлежность порта

9. Введите в созданную таблицу следующие записи:

Рисунок 11

Port Name Country
ANT Antwerp Belgium
BRE Bremen Germany
HAMB Hamburg Germany
HEL Helsinki Finland
ROT Rotterdam Holland
SPB Saint-Petersburg Russia

 

ВНИМАНИЕ! Таблица «Порты» представляет собой справочник названий портов, который мы будем связывать с другими таблицами, в которых в качестве названий портов используются их аббревиатуры, указанные в первой колонке таблицы.

 

10. Откройте окно «Схема данных». В окне «Схема данных» выполните команду Связи|Добавить таблицу и в диалоговом окне укажите таблицы «Порты» и «Каргоплан». Закройте окно «Добавление таблицы»

11. Выделите ключевое поле таблицы «Порты» (это - поле «Port»). Нажмите левую клавишу мышки и «перетащите» ее на поле «Погружен» таблицы «Каргоплан». Тем самым мы укажем MS Access, что мы хотим связать эти две таблицы по указанным полям.

ВНИМАНИЕ! Поле “Port” в таблице «Порты» и поле «Погружен» в таблице «Каргоплан» основаны на одном и том же домене – домене аббревиатур названий портов, поэтому эти поля могут быть использованы в качестве полей связи указанных таблиц.

 

12. Установите отметку «Обеспечение целостности данных». Нажмите кнопку «Создать». Поскольку поле «Порт» в таблице «Порты» является ключевыми, а поле «Погружен» в таблице «Каргоплан» ключевым не является, MS Access автоматически определит вид связи как 1:М.

 

13. Выделите поле «Port» таблицы «Менеджмент». Нажмите левую клавишу мышки и «перетащите» ее на ключевое поле таблицы «Порты» (это – поле “Port”). Тем самым мы укажем MS Access, что мы хотим связать эти две таблицы по указанным полям.

ВНИМАНИЕ! Поля “Port” в таблицах «Менеджмент» и «Порты» основаны на одном и том же домене – домене аббревиатур названий портов, поэтому эти поля могут быть использованы в качестве полей связи указанных таблиц.

 

14. Установите отметку «Обеспечение целостности данных». Нажмите кнопку «Создать». Поскольку поле «Port» в таблице «Менеджмент» не является ключевым, а в таблице «Порты» - является ключевыми, MS Access автоматически определит вид связи как М:1.

ВНИМАНИЕ! Поля таблицы-справочника (например, «Порты») можно подключать с использованием связей вида 1:М или М:1 к любому количеству таблиц базы данных (в данном примере, это таблицы «Каргоплан» и «Менеджмент»).

 

ВНИМАНИЕ! Поля “Port” в таблицах «Менеджмент» и «Порты» основаны на одном и том же домене – домене аббревиатур названий портов, поэтому эти поля могут быть использованы в качестве полей связи указанных таблиц.

15. Закройте окно «Схема данных» (с сохранением)

16. Откройте таблицу «Каргоплан» и измените в первой записи порт погрузки на “NY” (New York). Будьте готовы объяснить полученный при выполнении этой операции эффект. Закройте таблицу «Каргоплан»

17. Откройте таблицу «Порты» и удалите строчки таблицы, содержащие значения «ANT» и «BRE». Будьте готовы объяснить полученные при выполнении этих операций эффекты. Закройте таблицу «Порты»

18. Выполните команду создания нового запроса при помощи конструктора. Укажите, что запрос будет строиться на основании данных таблиц «Порты» и «Каргоплан». В верхней строке таблицы формирования запроса укажите поля которые следует использовать в запросе: [Каргоплан.Номер контейнера], [Каргоплан.Тип], [Каргоплан.Вес], [Каргоплан.Погружен], [Порты.Name],

ВНИМАНИЕ! Запись вида [Каргоплан.Тип] обозначает, что используется поле «Тип» таблицы «Каргоплан».

 

19. Дайте команду на выполнение запроса. Проанализируйте динамический набор данных, полученный в результате выполнения запроса. Обратите внимание на то, что значения в поле Name запроса строго соответствуют аббревиатурам портов погрузки в поле «Погружен» запроса.

20. Вернитесь в режим конструктора. Удалите из бланка запроса поле «Погружен». Выполните запрос. Обратите внимание на то, что в поле «Name» по-прежнему корректно отображаются названия потов погрузки.

21. Вернитесь в режим конструктора. Добавьте в бланк запроса поле [Каргоплан.К выгрузке]. Выполните запрос. Убедитесь, что динамический набор данных, полученный в результате выполнения запроса, оказался пустым. Причина этого в том, что MS Access не позволяет использовать в одном запросе более одной связи с каждым справочником (в данном запросе была попытка связать поля «Погружен» и «К разгрузке» со справочником «Порты»)

22. Закроите запрос и сохраните его под названием «Груз и порты»

 

 

III. Связь M:N

 

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

 

23. В режиме конструктора создайте

a. таблицу «Бригада» со следующими полями:

· Nr – числовое – Номер бригады рабочих (первичный ключ);

· Name - текстовое (50 символов) – Фамилия бригадира.

b. таблицу «Расписание» со следующими полями:

· Hold – числовое – Номер трюма (элемент составного ключа отношения);

· Team_Nr - числовое – Номер бригады рабочих (элемент составного ключа отношения)

ВНИМАНИЕ! Для того чтобы объявить, что в таблице «Расписание» используется составной ключ, Выделите первую строку таблицы конструктора, затем выделите вторую строку при нажатой клавише “CTRL” и, затем, нажмите на кнопку с изображением ключа на панели инструментов

24. Откройте окно «Схема данных». В окне «Схема данных» выполните команду Связи|Добавить таблицу и в диалоговом окне укажите таблицы «Бригады», «Расписание» и «Размерения», Закройте окно «Добавление таблицы». Расположите макеты таблиц таким образом чтобы связи между таблицами были видны и не закрывались другими таблицами.

25. Установите связь между полями [Расписания.Hold] и [Размерения.Hold], а также между полями [Расписания.Team_Nr] и [Бригады.Nr]. Не забудьте устанавливать отметки, необходимые для обеспечения проверки целостности базы данных. Закройте окно «Схема данных»

26. Введите в таблицы «Бригады» и «Расписание» следующие записи (Рисунок 13)

  Рисунок 13  
Nr Name
  Петров
  Иванов
  Сидоров

 

 
Hold Team_Nr
   
   
   
   
   

 

 

27. Попробуйте ввести в таблицу «Расписание» следующие записи (Рисунок 14). Будьте готовы дать пояснения к результатам выполнения этой операции

Рисунок 14

Hold Team_Nr
   
   
   

 

28. Выполните команду создания нового запроса при помощи конструктора. Укажите, что запрос будет строиться на основании данных таблиц «Бригады», «Расписание» и «Размерения». В верхней строке таблицы формирования запроса укажите поля, которые следует использовать в запросе: [Расписание.Hold], [Расписание.Team_Nr] и [Бригады.Name].

29. Выполните запрос. Обратите внимание на то, что при помощи дополнительной таблицы «Расписание» реализована связь вида M:N между таблицами «Размерения» и «Бригады». Эта связь использована для построения запроса.

30. Сохраните запрос под названием «Расписание работы»

КОНТРОЛЬНОЕ ЗАДАНИЕ

 

================== Обязательные для выполнения задания ==================

1. Создайте следующие таблицы

a. [Опасные грузы](Code, Description)

b. [Виды груза](Type, Description),

где [Опасные грузы].Code – код опасного груза (первичный ключ)

[Опасные грузы].Description – текстовое описание опасного груза (например, “взрывоопасный” или “кислота”)

[Виды груза].Type – вид груза (первичный ключ) - 20”, 40”, R20”

[Виды груза]. Description – название типа груза (например, “Контейнер 20 фут”)

2. Введите в созданные таблицы такое количество записей, чтобы обеспечить возможность связывания этих таблиц с таблицей «Каргоплан»

3. Установите связи между таблицами Каргоплан.Тип - [Виды груза].Type, Каргоплан.Код - Опасные грузы].Code с обеспечением проверки целостности связей

4. Создайте отчет «#Опасный груз» в котором должны быть перечислены сведения грузовых единицах на борту судна (номер, вес и полное название вида груза) с опасным грузом (код груза больше нуля). Эти сведения должны быть сгруппированы по портам назначения (в отчете должны выводиться полные названия портов), а внутри этих групп по трюмам, в которых они расположены. Для грузовых единиц с одним кодом опасного груза, расположенных в одном трюме, должен быть подсчитан общий вес и их количество, а также указан код груза и его описание. Заголовок отчета - «т/х Выборг» (первая строка), «Порты назначения опасных грузов» (вторая строка)

 

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

================== Дополнительные задания ==================

5. Рассчитайте моменты веса груза в каждом трюме судна

Указание. Момент веса какого-либо груза рассчитывается как произведение веса груза на плечо (расстояние центра тяжести груза от начала координат). Суммарный вес груза в трюме можно получить, используя запрос, построенный на базе таблицы «Каргоплан». Расстояния от начала координат до геометрического центра каждого трюма даны в таблице «Размерения»

 

6. Рассчитайте координату центра тяжести груза судна вдоль продольной оси судна

Указание. Центр тяжести системы из N грузов массой M1, M2,…Mn, расположенных в координатах X1, X2,…Xn (рисунок 3),

 
 

 


можно рассчитать по следующей формуле:

Xo = (X1*M1+X2*M2+…+Xn*Mn) / (M1+M2+…+Mn) (1)

 

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

Воспользуйтесь, запросом, подготовленным в предыдущем контрольном задании и рассчитайте Хо.

 

 

7. Рассчитайте координату центра тяжести загруженного судна вдоль продольной оси судна

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

 


ЧАСТЬ 2. ОСНОВЫ ТЕОРИИ

Некоторые термины и определения, используемые при работе с базами данных

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

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

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

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

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

Таблица базы данных (table) - регулярная структура, которая состоит из однотипных строк (записей, records), разбитых на столбцы (поля, fields).

В теории реляционных баз данных синоним таблицы - отношение (relation), в котором строка называется кортежем, а столбец называется атрибутом.

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

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

Связь (relation) - функциональная зависимость между объектами. В реляционных базах данных между таблицами устанавливаются связи по ключам, один из которых в главной (parent, родительской) таблице - первичный, второй - внешний ключ - в дополнительной (child, дочерней) таблице, как правило, первичным не является и образует связь "один ко многим" (1:N). В случае первичного внешнего ключа связь между таблицами имеет тип "один к одному" (1:1). Информация о связях сохраняется в базе данных.

Внешний ключ (foreign key) - ключевой элемент дополнительной (внешней, дочерней) таблицы, значение которого совпадает со значением первичного ключа основнвой (родительской) таблицы.

Ссылочная целостность данных (referential integrity) - набор правил, обеспечивающих соответствие ключевых значений в связанных таблицах.

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

Язык SQL (Structured Query Language) - универсальный язык работы с базами данных, включающий возможности ее создания, модификации структуры, отбора данных по запросам, модификации информации в базе и прочие операции манипулирования базой данных.

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

 


Введение

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

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

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

Предметные области информационных систем могут отличаться

§ своим «размером» (например, предметная область может представлять собой экономику страны или группы союзных государств, предприятие или корпорацию, судно, порт, ВУЗ, факультет…),

§ а также детальностью описания.

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

  • Реляционная модель
  • Иерархическая модель
  • Сетевая модель

 

Система управления базами данных (СУБД) – программное обеспечение для создания, ведения и использования базы данных.

Обычно СУБД содержит следующие компоненты:

  • Ядро, которое отвечает за управление данными во внешней и оперативной памяти, выполнение транзакций и ведение журналов работы, позволяющих при сбоях в работе системы восстановить данные
  • Интерфейс, реализующий задачи создания логической структуры БД данных, ввода, удаления и редактирования данных в БД, обработки и форматирования данных
  • Процессоры языков описания и манипулирования данными

Классификация БД

 

По используемой модели данных БД делятся на:

  • Реляционные
  • Иерархические
  • Сетевые

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

По организации обработки данных БД подразделяются на:

  • Централизованные БД
  • Распределенные БД

Централизованная база данных хранится в памяти одной вычислительной системы. Эта вычислительная система может быть мэйнфреймом - тогда доступ к ней организуется с использованием терминалов - или файловым сервером локальной сети ПК.

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

По способу доступа к БД:

  • Локальные

База данных и СУБД находятся на одном и том же ПК

  • Файл-серверные

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

Рис. 1. Схема работы с БД в локальной сети с выделенным файловым сервером

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

  • Клиент-серверные

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


Рис.2. Схема работы с БД в архитектуре "Клиент-сервер"

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

 

  • Трехуровневая архитектура

функционирует в Интранет- и Интернет-сетях. Клиентская часть ("тонкий клиент"), взаимодействующая с пользователем, представляет собой HTML-страницу в Web-браузере либо Windows-приложение, взаимодействующее с Web-сервисами. Вся программная логика вынесена на сервер приложений, который обеспечивает формирование запросов к базе данных, передаваемых на выполнение серверу баз данных. Сервер приложений может быть Web-сервером или специализированной программой (например, Oracle Forms Server).


Рис.3. Схема работы с БД в трехуровневой архитектуре

 

Классификация СУБД

  • Полнофункциональные СУБД

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

Примеры: Microsoft Access, Borland Paradox.

 

  • Серверы база данных

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

Примеры: Firebird, Interbase, MS SQL Server, Sybase, Oracle, MySQL.

  • Встраиваемые СУБД

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

Примеры: MS Jet (Майкрософт), BDE (Борланд) и др.

 

Модели представления данных

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

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

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

Иерархическая модель

Объекты, связанные иерархическими отношениями, образуют дерево (ориентированный связный граф), у которого один узел не имеет входящих дуг (корень дерева), а все остальные узлы имеют по одной входящей дуге. Узлы дерева - это объекты, а дуги - это связи между ними. Тип связи в этой модели «один ко многим» (1:М).

Иерархическая структура должна удовлетворять условиям:

3. существует только один корневой узел;

4. узел содержит один или несколько атрибутов, описывающих объект в данном узле;

5. доступ к порожденным узлам возможен только через исходный узел (существует только один путь доступа к каждому узлу).

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

Основная единица обработки - запись. Операции над записями:

§ Добавить - новую запись в БД;

§ Обновить - изменить значения данных предварительно извлеченной записи;

§ Удалить - исключает из БД некоторую запись и все ей подчиненные;

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

 

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

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

 

В такой БД могут храниться, например, следующие записи о студентах группы А-999:

 

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

Для реализации связь типа М:N необходимо дублирование данных, т.к. эта связь непосредственно не поддерживается.

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

Каждый студент должен изучить несколько дисциплин, сдать экзамен и получить оценку. Каждая дисциплина, очевидно, изучается несколькими студентами. Таким образом, модель должна реализовать связь М:N между объектами Студент и Дисциплина.

1-й вариант. Корневым узлом является Студент (Номер студента, ФИО, Номер группы). Для каждого студента при данном представлении имеется экземпляр корневого узла. Дисциплина (Название, Количество часов, Дата экзамена, Оценка) представляется порожденным узлом корневого узла Студент.



Поделиться:


Последнее изменение этой страницы: 2017-01-27; просмотров: 336; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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