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

ploki

Member
Joined
May 16, 2005
Messages
237
Reaction score
180
Location
Москва
Идея темы родилась после дискуссии с Ognev (надеюсь на его внимание в дальнейшем).

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

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

Определения

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

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

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

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

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

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


Реляционная алгебра (relation algebra, РА) и реляционное счисление (или исчисление) (relational calculus, РС) - алгебраические системы (про алгебраические системы смотри, например здесь) для формального описания реляционной логической модели данных.
Предназначены для описания и манипулирования отношениями (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 язык манипулирования реляционными данными. По сути, язык реляционного счисления (с кучей дополнений), он является реляционно полным, то есть может описать любое отношение.
Доступные источники:
Основы SQL (Полякова Л.Н.)
Основы SQL (Пирамидин А.)
Справочник с примерами по языку SQL

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

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

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

2. Сетевые
2.1. IBM IMS. Последняя версия IBM IMS Version 10.

3. Объектные
3.1. InterSystems Cachй. Последняя версия 5.2.

Прочие СУБД (список будем расширять):
1. Реляционные
1.1. SQLite/. Последняя версия 3.4.1. Встроенная.
1.2. ComponentAce Absolute Database. Последняя версия 5.13. Встроенная.
1.3. AidAim Software Accuracer. Последняя версия 4.20. Встроенная и клиент/серверная.
1.4. Nexus Database Systems NexusDB. Последняя версия NexusDB V2.07. Встроенная и клиент/серверная.
1.5. ЛИНТЕР (by НПП «РЕЛЭКС»). Последняя версия 6.1. Встроенная и клиент/серверная.

2. Сетевые
2.1.

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

4. Логические (широко не используются, так как предназначены для отдельных классов задач, обычно внутрикорпоративные или исследовательские проекты)
4.1. The Aditi Deductive Database (проект Университета Мельбурна). Последняя версия Aditi 2.0 beta.


Другие источники:
INTERNET SITES
1. Открытые системы
2. Intelligent Enterprise (Technology InfoCenter: Database)
BOOKS
1. Кузнецов С.Д. Основы современных баз данных. 1997 PDF, DJVU
2. Д. Крёнке. Теория и практика построения баз данных. 2003. DJVU

Продолжение следует...
 
Last edited by a moderator:

Msha

ex-Team DUMPz
Hacker
Professional Carder
Joined
Oct 12, 2014
Messages
7,156
Reaction score
2,481
подраздел имеет смысл создавать если будет кому заним следить, а также достаточное количество заинтересованных. Так что пока посмотрим.
 

ploki

Member
Joined
May 16, 2005
Messages
237
Reaction score
180
Location
Москва
to Msha

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

Интересно, что скажут остальные участники.
 
Last edited by a moderator:

Aidarhan

Member
Joined
Jan 30, 2004
Messages
29
Reaction score
0
Вообще в своих проектах я отхожу от клиент-серверных решений в сторону 3-х звенки: клиент/веб- сервис/данные. Сейчас идет один крупный проект по этой схеме посмотрим как это будет выглядить на практике.
 
Last edited by a moderator:

dreadangel

Member
Joined
Jan 12, 2007
Messages
83
Reaction score
14
Location
Kishinau
в этом разделе неплохо обсудить инструменты и средства для доступа к данным из самих програм - DAC...
может кто-нибудь выскажется за ZeosDB? многие его охаивают немногие его хвалят - почему и изза чего?
 

evgeniikim

Member
Joined
Sep 23, 2007
Messages
10
Reaction score
3
в этом разделе неплохо обсудить инструменты и средства для доступа к данным из самих програм - DAC...
может кто-нибудь выскажется за ZeosDB? многие его охаивают немногие его хвалят - почему и изза чего?

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

kavkav

Member
Joined
Sep 22, 2008
Messages
7
Reaction score
0
Age
50
Отсюда и вывод, если не можете купить Даки или другие платные компоненты, то можно пользоваться Zeos-ами, но при расширении и увеличении нагрузки на компоненты(если таковое будет) Zeos-ы на мой взгляд не лучший выбор.

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

sx1000

New member
Joined
Mar 22, 2010
Messages
4
Reaction score
0
Firebird 2.5 + ADO .Net Provider 2.6.5 = 2 года
 

S_Gur

Premium
Joined
Feb 26, 2007
Messages
38
Reaction score
6
Age
56
Location
Moscow
Oracle + ODac. Помимо всего прочего позволяет избавится от ораклового клиента
 

RUYurik

Member
Joined
May 29, 2014
Messages
5
Reaction score
0
я тоже стараюсь как можно реже отходить от использования стандартных компонентов
 
Top