Наши преимущества

Доступ к данным в программных системах

ploki

Турист
Credits
0
Идея темы родилась после дискуссии с Ognev (надеюсь на его внимание в дальнейшем).

Предлагаю собрать в одном месте все вопросы, касающиеся теоретических и практических аспектов обработки данных (а может быть, и знаний).
Причиной создания темы послужило большой количество отдельных тем, в которых обсуждаются смежные вопросы, например:
- Как увидеть ссылки? | How to see hidden links?
- Как увидеть ссылки? | How to see hidden links?
- Как увидеть ссылки? | How to see hidden links?

Сразу порекомендую сайт Как увидеть ссылки? | How to see hidden links? (классическое введение в предмет: Как увидеть ссылки? | How to see hidden links?), форум Как увидеть ссылки? | How to see hidden links? и книгу: Дейт К. Введение в системы баз данных, 8-е издание. — Вильямс, 2005. – 1328 с.

Определения

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

Данные [Data] - первичное понятие, которое невозможно однозначно определить, не сталкиваясь с "проблемой порочного круга" (смотри, например, "герменевтический круг", Как увидеть ссылки? | How to see hidden links?). Пока что определим данные (здесь) как любую информацию, представленную в форме, пригодной для хранения, передачи и обработки средствами вычислительной техники.

База данных (БД) [DB, DataBase] - структурированная совокупность данных, организованная по единым правилам, включающим принципы описания, хранения и манипулирования этими данными. Как правило, БД является информационной моделью некоторой предметной области. БД можно рассматривать на различных уровнях абстракции, обычно выделяют как минимум два: физический (способ представления данных с использованием конкретного аппаратного и программного обеспечения) и логический (способ представления данных с точки зрения пользователя).

Система управления базами данных (СУБД) [DBMS, DataBase Management System] - программное обеспечение, служащее для абстракции физического уровня представления данных и управления доступом к данным.
Основные функции СУБД: определение данных (то есть работа с метаданными - данными, описывающими данные), хранение данных, обработка данных, обеспечение целостности и безопасности данных, импорт/экспорт данных в различных форматах.

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

Архитектура программной системы - совокупность существенных решений, определяющих:
- организацию программной системы;
- выбор уровней абстракции и структурных элементов системы, а также интерфейсов между ними;
- поведение структурных элементов в процессе взаимодействия с другими элементами;
- архитектурный стиль, направляющий и определяющий организацию систе-мы.


Реляционная алгебра (Как увидеть ссылки? | How to see hidden links?, РА) и реляционное счисление (или исчисление) (Как увидеть ссылки? | How to see hidden links?, РС) - алгебраические системы (про алгебраические системы смотри, например Как увидеть ссылки? | How to see hidden links?) для формального описания реляционной логической модели данных.
Предназначены для описания и манипулирования отношениями (relation) на кортежах (tuple).
Отношение неформально можно считать таблицей с неупорядоченными строками, где каждая строка - это кортеж (упорядоченная последовательность элементов данных). Имена столбцов таблицы (естественно, упорядоченные) - неформальное представление схемы отношения.
Отличия между РА и РС, если по-простому, в том, что выражения РА являются набором предписаний, а выражения счисления - набором описаний.
Первоначально РА и РС предложил Эдгар Франк "Тед" Кодд.
Первоисточник - статья Codd E.F. A relational model of data for large shared data banks // CACM, 1970, 13, №6.
Понятие модели данных полноценно вводится в докладе Codd E.F. Data models in database management // Proc. workshop on data abstraction, database and conceptual modelling, 1980.
Но популяризовал и объяснил народу реляционную модель К. Дж. Дейт (C. J. Date).

Существует несколько различных вариантов формализации РА и РС!
РС существует в двух основных формах - счисление кортежей и счисление доменов.
Доступные источники:
Как увидеть ссылки? | How to see hidden links?

Язык SQL (Structured Query Language) - стандартизированный ISO язык манипулирования реляционными данными. По сути, язык реляционного счисления (с кучей дополнений), он является реляционно полным, то есть может описать любое отношение.
Доступные источники:
Как увидеть ссылки? | How to see hidden links?
Как увидеть ссылки? | How to see hidden links?
Как увидеть ссылки? | How to see hidden links?

Основные модели данных:
- иерархическая;
- сетевая;
- реляционная;
- объектно-ориентированная;
- логическая (обычно имеют в виду дедуктивную).

Классификация СУБД (некоторые критерии):
По поддерживаемой модели данных (см. выше).
По поддерживаемым языкам манипулирования данными.
По способу взаимодействия ядра СУБД с клиентами:
- встроенная (является компонентом разрабатываемого приложения, обеспечивая уровень абстракции данных; не нуждается в отдельном развёртывании);
- локальная (является отдельным приложением/библиотекой; развёртывается отдельно, но на том же компьютере);
- клиент-серверная (является отдельным приложением, обеспечивающим доступ клиентов по некоторому сетевому протоколу; не очень красивое название, так как формально темин "клент-серверный" относится к архитектруре, но термин "сетевой" уже занят и ещё более расплывчатый);
- распределённая (является совокупностью элементов, распределённых по узлам сети; представляется клиентам единым целым (уровни прозрачности могут быть различными)).
По числу одновременно обслуживаемых клиентов
- однопользовательская;
- многопользовательская.
По предметной области:
- универсальная;
- специализированная (например, геоинформационная, химическая и т.д.).
По классам эффективных операций:
- универсальная;
- справочно-поисковая;
- накапливающая;
- перерабатывающая.
По поддерживаемым платформам (очевидно).
По наличию интерфеса с пользователем (ИП).
- не имеющая ИП;
- имеющая интерфейс для администратора БД;
- имеющая интерфейс для пользователя БД;
- имеющая возможность создания нестандартного ИП.
По дополнительным возможностям.

Некоторые широко используемые современные СУБД (список будем расширять):
1. Реляционные
1.1. Как увидеть ссылки? | How to see hidden links?. Последняя версия Microsoft SQL Server 2005 sp 2.
1.2. Как увидеть ссылки? | How to see hidden links?. Последняя версия Oracle Database 10g.
1.3. Как увидеть ссылки? | How to see hidden links?. Последняя версия IBM DB2 9.
1.4. Как увидеть ссылки? | How to see hidden links?. Последняя версия IBM Informix 11.
1.5. Как увидеть ссылки? | How to see hidden links?. Последняя версия Adaptive Server Enterprise 15.
1.6. Как увидеть ссылки? | How to see hidden links?. Последняя версия MySQL 5.0.
1.7. Как увидеть ссылки? | How to see hidden links?. Последняя версия InterBase 2007 Service Pack 1.
1.8. Как увидеть ссылки? | How to see hidden links?. Последняя версия Firebird 2.0.1.
1.9. Как увидеть ссылки? | How to see hidden links?. Последняя версия PostgreSQL 8.2.4.

2. Сетевые
2.1. Как увидеть ссылки? | How to see hidden links?. Последняя версия IBM IMS Version 10.

3. Объектные
3.1. Как увидеть ссылки? | How to see hidden links?. Последняя версия 5.2.

Прочие СУБД (список будем расширять):
1. Реляционные
1.1. Как увидеть ссылки? | How to see hidden links?. Последняя версия 3.4.1. Встроенная.
1.2. Как увидеть ссылки? | How to see hidden links?. Последняя версия 5.13. Встроенная.
1.3. Как увидеть ссылки? | How to see hidden links?. Последняя версия 4.20. Встроенная и клиент/серверная.
1.4. Как увидеть ссылки? | How to see hidden links?. Последняя версия NexusDB V2.07. Встроенная и клиент/серверная.
1.5. Как увидеть ссылки? | How to see hidden links?. Последняя версия 6.1. Встроенная и клиент/серверная.

2. Сетевые
2.1.

3. Объектные
3.1.

4. Логические (широко не используются, так как предназначены для отдельных классов задач, обычно внутрикорпоративные или исследовательские проекты)
4.1. Как увидеть ссылки? | How to see hidden links?. Последняя версия Aditi 2.0 beta.


Другие источники:
INTERNET SITES
1. Как увидеть ссылки? | How to see hidden links?
2. Как увидеть ссылки? | How to see hidden links?
BOOKS
1. Кузнецов С.Д. Основы современных баз данных. 1997 Как увидеть ссылки? | How to see hidden links?, Как увидеть ссылки? | How to see hidden links?
2. Д. Крёнке. Теория и практика построения баз данных. 2003. Как увидеть ссылки? | How to see hidden links?

Продолжение следует...
 
Последнее редактирование модератором:
подраздел имеет смысл создавать если будет кому заним следить, а также достаточное количество заинтересованных. Так что пока посмотрим.
 
to Msha

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

Интересно, что скажут остальные участники.
 
Последнее редактирование модератором:
Вообще в своих проектах я отхожу от клиент-серверных решений в сторону 3-х звенки: клиент/веб- сервис/данные. Сейчас идет один крупный проект по этой схеме посмотрим как это будет выглядить на практике.
 
Последнее редактирование модератором:
в этом разделе неплохо обсудить инструменты и средства для доступа к данным из самих програм - DAC...
может кто-нибудь выскажется за ZeosDB? многие его охаивают немногие его хвалят - почему и изза чего?
 
в этом разделе неплохо обсудить инструменты и средства для доступа к данным из самих програм - DAC...
может кто-нибудь выскажется за ZeosDB? многие его охаивают немногие его хвалят - почему и изза чего?

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

Согласен. Сам использовал Zeos в связке с PostgreSQL данных было много но обработка несложная. Все было ОК.
 
Oracle + ODac. Помимо всего прочего позволяет избавится от ораклового клиента
 
я тоже стараюсь как можно реже отходить от использования стандартных компонентов
 
Верх