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

ploki

Местный
Регистрация
16 Май 2005
Сообщения
237
Реакции
180
Credits
0
Идея темы родилась после дискуссии с Ognev (надеюсь на его внимание в дальнейшем).

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

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

Определения

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

Данные [Data] - первичное понятие, которое невозможно однозначно определить, не сталкиваясь с "проблемой порочного круга" (смотри, например, "герменевтический круг", Для просмотра ссылки Войди или Зарегистрируйся). Пока что определим данные (здесь) как любую информацию, представленную в форме, пригодной для хранения, передачи и обработки средствами вычислительной техники.

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

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

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

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


Реляционная алгебра (Для просмотра ссылки Войди или Зарегистрируйся, РА) и реляционное счисление (или исчисление) (Для просмотра ссылки Войди или Зарегистрируйся, РС) - алгебраические системы (про алгебраические системы смотри, например Для просмотра ссылки Войди или Зарегистрируйся) для формального описания реляционной логической модели данных.
Предназначены для описания и манипулирования отношениями (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).

Существует несколько различных вариантов формализации РА и РС!
РС существует в двух основных формах - счисление кортежей и счисление доменов.
Доступные источники:
Для просмотра ссылки Войди или Зарегистрируйся

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

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

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

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

2. Сетевые
2.1. Для просмотра ссылки Войди или Зарегистрируйся. Последняя версия IBM IMS Version 10.

3. Объектные
3.1. Для просмотра ссылки Войди или Зарегистрируйся. Последняя версия 5.2.

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

2. Сетевые
2.1.

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

4. Логические (широко не используются, так как предназначены для отдельных классов задач, обычно внутрикорпоративные или исследовательские проекты)
4.1. Для просмотра ссылки Войди или Зарегистрируйся. Последняя версия Aditi 2.0 beta.


Другие источники:
INTERNET SITES
1. Для просмотра ссылки Войди или Зарегистрируйся
2. Для просмотра ссылки Войди или Зарегистрируйся
BOOKS
1. Кузнецов С.Д. Основы современных баз данных. 1997 Для просмотра ссылки Войди или Зарегистрируйся, Для просмотра ссылки Войди или Зарегистрируйся
2. Д. Крёнке. Теория и практика построения баз данных. 2003. Для просмотра ссылки Войди или Зарегистрируйся

Продолжение следует...
 
Последнее редактирование модератором:

Msha

ex-Team DUMPz
Свой
Регистрация
12 Окт 2004
Сообщения
7,116
Реакции
2,559
Credits
0
подраздел имеет смысл создавать если будет кому заним следить, а также достаточное количество заинтересованных. Так что пока посмотрим.
 

ploki

Местный
Регистрация
16 Май 2005
Сообщения
237
Реакции
180
Credits
0
to Msha

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

Интересно, что скажут остальные участники.
 
Последнее редактирование модератором:

Aidarhan

Турист
Регистрация
30 Янв 2004
Сообщения
29
Реакции
0
Credits
40
Вообще в своих проектах я отхожу от клиент-серверных решений в сторону 3-х звенки: клиент/веб- сервис/данные. Сейчас идет один крупный проект по этой схеме посмотрим как это будет выглядить на практике.
 
Последнее редактирование модератором:

dreadangel

Местный
Регистрация
12 Янв 2007
Сообщения
84
Реакции
15
Credits
130
в этом разделе неплохо обсудить инструменты и средства для доступа к данным из самих програм - DAC...
может кто-нибудь выскажется за ZeosDB? многие его охаивают немногие его хвалят - почему и изза чего?
 

evgeniikim

Местный
Регистрация
23 Сен 2007
Сообщения
10
Реакции
3
Credits
18
в этом разделе неплохо обсудить инструменты и средства для доступа к данным из самих програм - DAC...
может кто-нибудь выскажется за ZeosDB? многие его охаивают немногие его хвалят - почему и изза чего?

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

kavkav

Турист
Регистрация
22 Сен 2008
Сообщения
7
Реакции
0
Credits
22
Отсюда и вывод, если не можете купить Даки или другие платные компоненты, то можно пользоваться Zeos-ами, но при расширении и увеличении нагрузки на компоненты(если таковое будет) Zeos-ы на мой взгляд не лучший выбор.

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

sx1000

Турист
Регистрация
22 Мар 2010
Сообщения
4
Реакции
0
Credits
8
Firebird 2.5 + ADO .Net Provider 2.6.5 = 2 года
 

S_Gur

Premium
Регистрация
26 Фев 2007
Сообщения
69
Реакции
10
Credits
1,107
Oracle + ODac. Помимо всего прочего позволяет избавится от ораклового клиента
 

RUYurik

Турист
Регистрация
29 Май 2014
Сообщения
5
Реакции
0
Credits
10
я тоже стараюсь как можно реже отходить от использования стандартных компонентов