Скачиваний:
186
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

1.7. Резюме

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

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

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

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

И наконец, система баз данных может быть основана на нескольких различных под- ходах. Реляционные системы базируются на формальной теории, называемой реляци- онной моделью, в соответствии с которой данные представляются в виде строк в табли- цах (и интерпретируются как истинные высказывания), а пользователям предоставля- ются операторы, обеспечивающие поддержку процесса получения дополнительных ис- тинных высказываний в виде следствий из существующих данных. И с экономической, и с теоретической точек зрения можно считать, что реляционные системы являются наи- более важным сегментом рынка (и это положение дел, по-видимому, в обозримом буду- щем не изменится). Мы рассмотрели несколько примеров использования языка SQL стандартного языка для работы с реляционными системами (в частности, были приведе- ны примеры операторов SELECT, INSERT, UPDATE и DELETE этого языка). Материал дан- ной книги в значительной мере ориентирован на реляционные системы и по причинам, указанным в предисловии, в меньшей мере — на собственно язык SQL.

Упражнения

параллельный доступ перманентные данные свойство

1.1. Дайте определения следующим терминам. АБД па

администрирование данных база данных

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

связь

диаграмма сущность-связь

система баз данных

защита

совместное использование данных

избыточность

СУБД

интеграция

сущность

интерактивное приложение командный интерфейс

транзакция

хранимая запись

многопользовательская система

независимость данных

хранимое поле хранимый файл

некомандный интерфейс (меню) некомандный интерфейс (формы)

целостность

язык запросов

  1. Каковы преимущества использования системы баз данных?

  2. Каковы недостатки использования системы баз данных?

  3. Как вы понимаете термин реляционная система'} Назовите различия между реля- ционной и не реляционными системами.

  4. Как вы понимаете термин модель данных! Объясните различие между моделью данных и ее реализацией. Почему так важно это различие?

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

а) SELECT WINE, PRODUCER FROM CELLAR

WHERE BINt = 72 ?

б) SELECT WINE, PRODUCER FROM CELLAR

WHERE YEAR > 1996 ;

в) SELECT BINt, WINE, YEAR FROM CELLAR

WHERE READY < 1999 ;

r) SELECT WINE, BINt, YEAR FROM CELLAR

WHERE PRODUCER = 'Robt. Mondavi' AND BOTTLES > 6 ;

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

  2. Приведите результат выполнения следующих SQL-операторов внесения изменений в базу данных винного погреба, представленную в табл. 1.1.

a) INSERT

INTO CELLAR (BIN*, WINE, PRODUCER, YEAR, BOTTLES, READY ) VALUES (80, 'Syrah', 'Meridian', 1994, 12, 1999 );

б) DELETE FROM CELLAR

WHERE READY > 2000 ;

в) UPDATE CELLAR SET BOTTLES = 5 WHERE ВЩ = 50 ;

r) UPDATE CELLAR

SET BOTTLES = BOTTLES + 2 WHERE BINI = 50 ;

1.9. Напишите SQL-оператор для выполнения следующих операций в базе данных вин- ного погреба.

а) Выберите номер ячейки (ВШ#), наименование вина и количество бутылок для всех вин производства 'Geyser Peak'.

б) Выберите номер ячейки (BINI) и наименование вина для всех вин, запас кото- рых составляет более пяти бутылок.

в) Выберите номер ячейки (BINt) для всех красных вин.

г) Добавьте три бутылки (BOTTLES) в ячейку (BIN#) с номером 30.

д) Удалите из всего запаса все вина производства компании 'Chardonnay'.

е) Добавьте данные нового поступления (12 бутылок): производитель— 'Gary Farrell', сорт— 'Merlot', ячейка номер 55, год выпуска— 1996, будет гото- во в 2001 году.

1.10. Предположим, что у вас есть коллекция записей классической музыки, содер- жащаяся на компакт-дисках, пластинках и/или аудиокассетах, и вы хотите по- строить базу данных, которая позволит находить записи определенного компо- зитора (например, Сибелиуса), дирижера (например, Симона Ратла), солиста (например, Артура Грюмикса), произведения (например, Пятой симфонии Бет- ховена), оркестра (например, NYPO), вида произведения (например, концерта для виолончели) или камерной группы (например, квартета Кронус). Начерти- те диаграмму "сущность-связь" для этой базы данных по образцу, представ- ленному на рис. 1.5.

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

1.1. Codd E.F. Data Models in Databases Management // Proc. Workshop on Data Abstraction, Database and Conceptual Modelling.— Pingree Park, Colo, June, 1980. (ACM SIGART Newsletter. — January, 1981, №74; ACM SIGMOD Record 11.— February, 1981, N° 2; ACM SIGPLAN Notices 16. — January, 1981, № 1.) Кодд является создателем реляционной модели, которую он впервые описал в [5.1]. Однако в этой работе он на самом деле не дал определения термину модель данных как таковому, оно было дано (гораздо позже) лишь в данной работе. В ней рассматривается вопрос "Каково назначение моделей данных вообще и реляцион- ной модели в частности?", а также приводятся факты, подтверждающие, что во- преки распространенному мнению реляционная модель фактически стала первой

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

1.2. Darwen Н. What a Database Really Is: Predicates and Propositions // Date C.J., Darwen H., and McGoveran D. Relational Database Writings 1994-1997.— Reading, Mass.: Addison-Wesley, 1998.

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

  1. Date C.J. and Hopewell P. Storage Structures and Physical Data Independence // Proc. ACM SIGFIDET Workshop on Data Definition, Access, and Control. — San Diego, California, November, 1971.

  2. Date C.J. and Hopewell P. File Definition and Logical Data Independence // Proc. ACM SIGFIDET Workshop on Data Definition, Access, and Control. — San Diego, California, November, 1971,

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

1.5. Date C.J. Relation Database Writtings 1991-1994. —Reading, Mass.: Addison-Wesley, 1995.

Ответы к некоторым упражнениям

1.3. Перечислим некоторые недостатки.

" Без надлежащего контроля защита данных может оказаться ослабленной.

■ Целостность данных может быть подвергнута риску (без надлежащего контроля). " Может потребоваться дополнительное аппаратное обеспечение.

  • Дополнительная нагрузка на вычислительную систему может оказаться весьма значительной.

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

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

1.6. Вариант а:

WINE

PRODUCER

Zinfandel

Rafanelli

Вариант б:

WINE

PRODUCER

Chardonnay

Buena Vista

Chardonnay

Geyser Peak

Jo. Riesling

Jekel

Fumft Blanc

Ch. St. Jean

Gewurztraminer

Ch. St. Jean

  1. Приведем решение только для п. а: "Компания Rafanelli является изготовителем вина Zinfandel" или, более точно, "Некоторые ячейки содержат некоторые бутылки с вином Zinfandel, которое было изготовлено компанией Zinfandel в некотором го- ду, и они будут готовы к употреблению в некотором году".

  2. Вариант а: добавление в таблицу CELLAR строки со значением 80 в поле BINI.

Вариант б: удаление из таблицы CELLAR строк со значениями 45, 48, 64 и 72 в поле BINt. Вариант в: количество бутылок (поле BOTTLES) устанавливается равным пяти для строки со значением 50 в поле BINt.

Вариант г: то же, что и вариант в.

Кстати, обратите внимание, как удобно обращаться к строкам по их первичному ключу (первичный ключ для таблицы CELLAR— поле BINt) (подробности приво- дятся в главе 8).

1.9. Ниже приведены соответствующие операторы.

а) SELECT BINt, WINE, BOTTLES FROM CELLAR

WHERE PRODUCER = 'Geyser Peak' ;

б) SELECT BINI, WINE FROM CELLAR

WHERE BOTTLES > 5 ;

в) SELECT BINI FROM CELLAR

WHERE WINE = 'Cab. Sauvignon' OR WINE = 'Pinot Noir' OR WINE = 'Zinfandel' OR WINE = 'Syrah' OR ;

На этот вопрос нет краткого ответа, так как цвет вина не записан в базе данных в явном виде, и поэтому СУБД не знает, что, например, вино 'Pinot Noir' красное.

г) UPDATE CELLAR

SET BOTTLES = BOTTLES + 3 WHERE BIN* = 30 ;

д) DELETE FROM CELLAR

WHERE WINE = 'Chardonnay' ;

е) INSERT

INTO CELLAR (BIN*, WINE, PRODUCER, YEAR, BOTTLES, READY ) VALUES (55, 'Merlot', 'Gary Farrell', 1996, 12, 2001 );

Глава

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

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]