Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции для 16 группы.docx
Скачиваний:
45
Добавлен:
13.02.2015
Размер:
293.45 Кб
Скачать

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

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

В ранних СУБД поддерживалось несколько специализированных по своим функциям языков.

Чаще всего выделялись два языка:

  • язык определения структуры БД DDL (Data Definition Language),

  • язык манипулирования данными DML (Data Manipulation Language).

В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий пользователям возможность работы с информацией базы данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language). Рассмотрим особенности этого языка.

1. Язык SQL сочетает средства DDL и DML, т.е. позволяет определять структуру БД и манипулировать данными. При этом именование объектов БД поддерживается на языковом уровне, то есть компилятор языка SQL производит преобразование имен объектов в их внутренние идентификаторы на основании специально поддерживаемых служебных таблиц-каталогов. Внутренняя часть СУБД (ядро) вообще не работает с именами таблиц и их столбцов.

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

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

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

3. Классификация баз данных

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

Таблица 1. Классификация баз данных

Критерии

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

Классы БД

Краткая характеристика

Технология

обработки

данных

Централизованные

БД состоит из одной части, которая хранится на одной ЭВМ

Распределенные

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

Доступ к

данным

С локальным

доступом

Допускается использование информации, хранящейся в БД, только одним пользователем.

С сетевым

доступом

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

Структура

организации данных

Иерархические

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

Сетевые

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

Реляционные

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

На современном этапе развития информационных технологий наибольшее распространение получили реляционные БД. Реляционная модель данных основывается на принципах, которые были сформулированы в конце 1960-х гг. британским ученым Эдгаром Франком Коддом. Он определил 13 правил (так называемые правила Кодда), которым должны соответствовать как реляционная БД, так и управляющая этой базой данных система.

Правило 0. Основное правило (Foundation Rule).

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

Правило 1. Явное представление данных (The Information Rule).

Информация должна быть представлена в виде данных, хранящихся в ячейках. Данные, хранящиеся в ячейках, должны быть атомарны. Порядок строк в реляционной таблице не должен влиять на смысл данных.

Правило 2. Гарантированный доступ к данным (Guaranteed Access Rule).

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

Правило 3. Полная обработка неопределенных значений (Systematic Treatment of Null Values).

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

Правило 4. Доступ к словарю данных в терминах реляционной модели (Active On-Line Catalog Based on the Relational Model).

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

Правило 5. Полнота подмножества языка (Comprehensive Data Sublanguage Rule).

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

Правило 6. Возможность модификации представлений (View Updating Rule).

Каждое представление должно поддерживать все операции манипулирования данными, применимые к реляционным таблицам: операции выборки, вставки, модификации и удаления данных.

Правило 7. Наличие высокоуровневых операций управления данными (High-Level Insert, Update, and Delete).

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

Правило 8. Физическая независимость данных (Physical Data Independence).

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

Правило 9. Логическая независимость данных (Logical Data Independence).

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

Правило 10. Независимость контроля целостности (Integrity Independence).

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

Правило 11. Дистрибутивная независимость (Distribution Independence).

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

Правило 12. Согласование языковых уровней (The Nonsubversion Rule).

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