Секционирование и кластеризация таблиц
Сегментация
Секционирование (англ. partitioning) — разделение хранимых объектов баз данных на отдельные части с раздельными параметрами физического хранения
Кластеризация— это попытка разместить рядом в одном физическом блоке данные тех записей, доступ к которым осуществляется при помощи одинаковых значений ключа.
Основные цели и основной результат проектирования БД.
Основные цели:
Ø Обеспечение хранения в БД всей необходимой информации.
Ø Обеспечение возможности получения данных по всем необходимым запросам.
Ø Сокращение избыточности и дублирования данных.
Ø Обеспечение целостности данных, исключение противоречий и возможных потерь данных.
Основной результат:
Ø Обеспечение хранения в БД всей необходимой информации.
Ø Обеспечение возможности получения данных по всем необходимым запросам.
Ø Сокращение избыточности и дублирования данных.
Ø Обеспечение целостности данных, исключение противоречий и возможных потерь данных.
Представление и их место в БД.
Представление (англ. view, иногда используются названия «вид», «взгляд») — виртуальная (логическая) таблица, представляющая собой поименованный запрос (синоним к запросу), который будет подставлен как подзапрос при использовании представления.
Представления скрывают от прикладной программы сложность запросов и саму структуру таблиц БД.
Использование представлений позволяет отделить прикладную схему представления данных от схемы хранения.
С помощью представлений обеспечивается ещё один уровень защиты данных.
СУБД получает возможность применить к запросу, на котором строится представление, оптимизацию или предварительную компиляцию
Создание представления:
CREATE [RECURSIVE] VIEW имя_представления
{[(столбец[, ...])] |
[OF имя_супертипа [UNDER имя_супертипа [REF IS имя_столбца
{SYSTEM GENERATED | USER GENERATED | DERIVED}]
[имя_столбца WITH OPTIONS SCOPE имя_таблицы]]]}
AS оператор_select [WITH [CASCADED|LOCAL] CHECK OPTION]
Примеры из интернета
Исходное содержимое представления Stepanov.Code_books_1_3
Code_book | Author | Number |
Коршунов Ю.М. | ||
Лавров И.А. | ||
Трауб Дж |
Представление на базе таблицы и представления, выдающее номера экземпляров книг с кодом 2:
//представление на базе таблицы и представления
CREATE VIEW Stepanov.Table_View
AS SELECT
Code_books_1_3.Code_book //для этого поля
AS b_code, //вводися псевдоним b_code
Copies.N_books FROM
Stepanov.Copies NATURAL JOIN
Stepanov.Code_books_1_3
WHERE b_code=2