Развитие баз данных и знаний

              9.1 Эволюция баз данных и систем управления.

                   9.2. Хранилища данных

                   9.3. Распределенные системы и электронные коллективы.

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

В информатике, главное основание – организация данных. Где-то к 80-м программисты пришли к понятию реляционной базы и модели данных, которые стали стандартом. 

Реляционная модель данных:

- Структурный аспект — данные в базе данных представляют собой набор отношений, то что в анализе данных называется таблица объект-аттрибут.

- Аспект целостности — отношения (таблицы) отвечают определенным условиям целостности уровня домена (типа данных), уровня отношения и уровня базы данных.

- Аспект манипулирования — реляционная алгебра: объединение, пересечение, разность и декартово произведение, а также селекция, проекция, соединение и деление (Кодд, 1970)

Кроме того, в состав реляционной модели данных обычно включают теорию нормализации.

Следует отметить, что

· модель является логической, а не физической – все информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим;

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

Взаимосвязь таблиц является важнейшим элементом реляционной модели данных. Она поддерживается внешними ключами (foreign key). Рассмотрим пример, в котором база данных хранит информацию о рядовых сотрудниках (таблица Сотрудник) и руководителях (таблица Руководитель) в некоторой организации (рис.2). Первичный ключ таблицы Руководитель - столбец Номер (например, табельный номер). Столбец Фамилия не может выполнять роль первичного ключа, так как в одной организации могут работать два руководителя с одинаковыми фамилиями. Любой сотрудник подчинен единственному руководителю, что должно быть отражено в базе данных. Таблица Сотрудник содержит столбец Номер руководителя, и значения в этом столбце выбираются из столбца Номер таблицы Руководитель (см. рис.2). Столбец Номер Руководителя является внешним ключом в таблице Сотрудник.

 

Особенностью настоящего этапа является то, что реляционные базы данных принимают для пользователя вид базы данных для объектно-ориентированного программирования (аn object-oriented programming database), конгруэнтной со структурой данных в классах и подклассах программного обеспечения конкретной системы. Другой популярный вид баз данных – распределенные базы данных, которые рассредоточены в разных точках компютерной сети.

Базы данных содержат коллекции данных о тоговых транзакциях, каталогах продукции и складов, профили потребителей и пр. Они позволяют пользователю считывать и записывать данные, специфицировать формат отчетных таблиц и анализировать движение данных. Типично, их хранят в мэйнфреймах, созданные и поддерживаемые на допотопных языковых средствах, так что основная задача программистов, обслуживающих подобные системы, скажем, в каком-нибудь огромном международном банке, поддерживать возможности системы для постоянно обновляемых физических способов доставки информации – новые считывающие устройства, новые стандарты компьютерных спредшитов, и пр. Основные форматы баз данных - IBM's DB2, Microsoft's Access, Oracle, Sybase, and Computer Associates.

SQL (ˈɛsˈkjuˈɛl или ˈsiːkwəl) (англ. Structured Query Language — язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных.

Язык SQL делится на три части:

· операторы определения данных (англ. Data Definition Language, DDL)

· операторы манипуляции данными (англ. Data Manipulation Language, DML)

· операторы определения доступа к данным (англ. Data Control Language, DCL)

Типичный запрос (к базе данных Склад):

SELECT Название, Количество, Материал FROM Деталь WHERE Номер = "Т145-А8";{ВЫБРАТЬ Название, Количество, Материал ИЗ Деталь ГДЕ Номер = "Т145-А8"}

Типичные команды:

SELECT Выбрать данные из базы данных ВЫБРАТЬ
INSERT Добавить данные в базу данных ВКЛЮЧИТЬ
UPDATE Обновить данные в базе данных ОБНОВИТЬ
DELETE Удалить данные из базы данных УДАЛИТЬ
GRANT Предоставить привилегии пользователю РАЗРЕШИТЬ
REVOKE Отменить привилегии пользователя ОТМЕНИТЬ
COMMIT Зафиксировать текущую транзакцию ЗАФИКСИРОВАТЬ
ROLLBACK Прервать текущую транзакцию ПРЕРВАТЬ

История

В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД System R (англ.), для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как англ. Structured English QUEry Language — «структурированный английский язык запросов». Позже по юридическим соображениям язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute), официальным произношением стало [,es kju:' el] — эс-кью-эл. Несмотря на это, даже англоязычные специалисты по прежнему часто называют SQL сиквел, вместо эс-кью-эл (по-русски также часто говорят «эс-ку-эль»).

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (англ. cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle) и System/38 от IBM, основанная на System/R.

Первый официальный стандарт языка SQL был принят ANSI в 1986 и ISO (Международной организацией по стандартизации) в 1987 (так называемый SQL-86) и несколько уточнён в 1989 году. Дальнейшее развитие языка поставщиками СУБД потребовало принятия в 1992 г. нового расширенного стандарта (ANSI SQL-92 или просто SQL2). Следующим стандартом стал SQL:1999 (SQL3). В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесёнными позже.

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

· Повторяющиеся строки

· Неопределённые значения (nulls)

· Явное указание порядка колонок слева направо

· Колонки без имени и дублирующиеся имена колонок

· Использование указателей

· Высокая избыточность

Хотя SQL и задумывался, как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.

Ранее SQL не предлагал стандартного способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения. Например, Oracle использует выражение CONNECT BY. В настоящее время в качестве стандарта принята рекурсивная конструкция WITH.

SQL - язык запросов, а не универсальный алгоритмический язык. На нем нельзя написать сколько-нибудь сложную прикладную программу, которая работает с базой данных. Для этой цели в современных СУБД используется язык четвертого поколения (Forth Generation Language - 4GL), обладающий как основными возможностями процедурных языков третьего поколения (3GL), таких как СИ, Паскаль, Ада, так и возможностью встроить в текст программы операторы SQL, и средствами управления интерфейсом пользователя (меню, формами, вводом пользователя и т.д.).


Пример системы баз данных, разработанных в Национальном Центре Био-технологической Информации, пожалуй, самый продвинутый в мире среди общедоступных средств:

       Состав системы баз



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: