- •Часть 1
- •Глава 1. Управление базами данных.
- •1.1. Вводный пример
- •1.2. Что такое система баз данных
- •1.3. Что такое база данных
- •Свойства
- •1.4. Почему база данных
- •1.5.Независимость данных
- •1.6. Реляционные и другие системы
- •1.7. Резюме
- •1.5. А)
- •Глава 2.
- •2.1. Цель
- •2.2. Три уровня архитектуры
- •2.3. Внешний уровень
- •2.4. Концептуальный уровень
- •2.5. Внутренний уровень
- •2.6. Отображения
- •2.7. Администратор базы данных
- •2.8. Система управления базой данных
- •2.9. Система управления передачей данных
- •2.10. Архитектура клиент/сервер
- •2.11. Утилиты
- •2.12. Распределенная обработка
- •2.13. Резюме
- •Глава 3.
- •3.1. Введение
- •3.2. Реляционные системы
- •3.3. Замечание относительно терминологии
- •3.4. Реляционная модель
- •3.5. Оптимизация
- •3.6. Каталог
- •3.7. Базовые таблицы и представления
- •3.8. Язык sql
- •3.9. База данных поставщиков и деталей
- •3.10. Резюме
Часть 1
Глава 1. Управление базами данных.
1.1. Вводный пример
Система баз данных (database system) — это, по сути, не что иное, как компьютеризированная система хранения записей. Саму же базу данных можно рассматривать как подобие электронной картотеки, т.е. хранилище для некоторого набора занесенных в компьютер файлов данных (под термином "файл" подразумевается абстрактный набор данных, который на практике может не совпадать с физическим дисковым файлом). Пользователю этой системы предоставляется возможность выполнять множество различных операций над такими файлами, например:
• добавлять новые пустые файлы в базу данных;
• добавлять новые данные в существующие файлы;
• вести поиск данных в существующих файлах;
• изменять данные в существующих файлах;
• удалять данные из существующих файлов;
• удалять существующие файлы из базы данных, т.е. избавляться от их содержимого.
В качестве иллюстрации на рис 1.1 приведена небольшая база данных, состоящая всего из одного файла под названием CELLAR (погреб). В этом файле хранятся данные о содержимом винного погреба. На рис. 1.2 показан пример операции выборки и данные этой выборки (точнее, результат операции: но когда речь идет о базах данных, то результат часто называют просто данными).
BIN |
WINE |
PRODUCER |
YEAR |
BOTTLES |
READY |
2
|
Chardonnay
|
Buena Vista
|
92
|
1
|
94
|
3
|
Chardonnay
|
Geyser Peak
|
92
|
5
|
94
|
6
|
Chardonnay
|
Stonestreet
|
91
|
4
|
93
|
12
|
Jo. Riesling
|
Jekel
|
93
|
1
|
94
|
21
|
Fume Blanc
|
Ch. St. Jean
|
92
|
4
|
94
|
22
|
Fume Blanc
|
Robt. Mondavi
|
91
|
2
|
93
|
30
|
Gewürztraminer
|
Ch. St. Jean
|
93
|
3
|
94
|
43
|
Cab. Sauvignon
|
Windsor
|
86
|
12
|
95
|
45
|
Cab. Sauvignon
|
Geyser Peak
|
89
|
12
|
97
|
48
|
Cab. Sauvignon
|
Robt. Mondavi
|
88
|
12
|
99
|
50
|
Pinot Noir
|
Gary Farrell
|
91
|
3
|
94
|
51
|
Pinot Noir
|
Stemmler
|
88
|
3
|
95
|
52
|
Pinot Noir
|
Dehlinger
|
90
|
2
|
93
|
58
|
Merlot
|
Clos du Bois
|
89
|
9
|
95
|
64
|
Zinfandel
|
Lytton Spring
|
89
|
9
|
98
|
72
|
Zinfandel
|
Rafanelli
|
90
|
2
|
98
|
Рис. 1.1. База данных (файл CELLAR)
Замечание. Операции над базами данных и другие операции (см. рис. 1.2) в этой книге пишутся прописными буквами, хотя на практике часто удобней использовать строчные. Большинство систем допускает оба варианта.
На рис. 1.3 приведены примеры операций вставки (insert), обновления (update) и удаления (delete) для базы данных винного погреба. Эти примеры почти не требуют пояснений. Далее, в главах 3 и 4, будут приведены примеры добавления и удаления файлов.
Выборка:
SELECT WINE, BIN, PRODUCER
FROM CELLAR
WHERE READY = 95 ;
Результат (выданный, например, на экран дисплея):
WINE |
BIN |
PRODUCER |
Cab. Sauvignon Pinot Noir Merlot |
43 51 58 |
Windsor Stertrnler Clos du Bois |
Рис. 1. 2 .Пример выборки из базы данных
Вставка новых данных:
INSERT
INTO CELLAR ( BIN, WINE, PRODUCER, YEAR, BOTTLES, READY )
VALUES ( 53, “Pinot Noir”, “Saintsbury”. 92, 1, 96 ) ;
Обновление существующих данных:
UPDATE CELLAR
SET BOTTLES = 4
WHERE BIN = 3 ;
Удаление существующих данных:
DELETE
FROM CELLAR
WHERE BIN = 2 ;
Рис. 1.3, Примеры операций вставки, обновления и удаления
В завершение вводного раздела несколько замечаний.
• Во-первых, по очевидным причинам компьютерные файлы, такие как CELLAR в приведенном примере, часто называют таблицами, а не файлами (точнее, они являются реляционными таблицами, о чем речь идет далее в этой главе).
• Во-вторых, строки таблиц называют записями (record) файла (иногда для ясности их называют логическими записями в отличие от других видов записей, которые будут обсуждаться далее). Столбцы таблиц идентифицируют поля (field) этих логических записей. В дальнейшем будем придерживаться терминов "запись" и "поле'', когда будут рассматриваться базы данных вообще, и терминов "строка" и "столбец" при рассмотрении реляционной системы. (Фактически, когда мы перейдем к более формальному рассмотрению реляционной модели в последующих частях книги, нам так или иначе придется использовать более формальные термины.)
• В-третьих, операции выборки, вставки, обновления и удаления, показанные на рис. 1.2 и 1.5, выполнены с помощью операторов select, insert, update и delete специального языка баз данных, называемого SQL. SQL — это язык, который поддерживается в настоящее время большинством коммерческих продуктов разработки систем баз данных; более того, этот язык является официальным стандартом языка для работы с реляционными системами (об этом речь идет ниже в этой главе). Название SQL вначале было аббревиатурой, образованной от Structured Query Language (язык структурированных запросов), и его было принято произносить "сиквел". Сейчас, когда язык стал стандартом, SQL — это уже не аббревиатура, а название, которое произносится как "эс-кью-эль'1. В дальнейшем в этой книге предполагается именно такой вариант произношения.