Разное

База данных зачем нужна: теория — Учебник по PHP — HTML Academy

Содержание

База данных — это что такое? Базы данных и их предназначение :: SYL.ru

Непрерывно растущий объем информации, поступающий через все СМИ каждому человеку в отдельности и человечеству в общем, постоянно растет, и она обязательно нуждается в хранении и обработке. Поэтому освоение средств, позволяющих систематизировать, накапливать и рационально использовать всю информацию, становится необходимостью в жизни каждого. Именно для этого предназначены различные СУБД — системы управления базами данных.

СУБД – термины и определения

База данных — это многогранное понятие. В общем случае под базой данных (БД) подразумевается совокупность сведений, объединенных по какому-то признаку. Например, к БД можно отнести телефонный справочник или прайс-лист компании.

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

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

Сравнение Access и Excel

Какие же преимущества имеют БД перед другими хранилищами информации, например, электронными таблицами, текстовыми редакторами и так далее? Для сравнения лучше всего подходят база данных Access и электронные таблицы Excel. Такой выбор обусловлен тем, что оба приложения входят в один пакет и применяются для хранения данных. Access – это, по сути, бесплатная база данных, идущая бонусом к текстовому редактору Word и таблицам Excel.

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

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

Количество строк в Excel не может превышать 65536, в Access же количество записей вообще не ограничено. Существует только лимит на общий размер файла – не более 2Гб.

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

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

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

Базы данных можно разделить по 4 признакам:

1. Применяемый язык программирования. Открытые базы опираются на один из универсальных языков. В замкнутых базах используются собственный язык программирования.

2. Выполняемые функции. Информационные базы данных предназначены для хранения и доступа к информации. Операционные позволяют проводить сложные обработки информации.

3. Сфера применения. Различают универсальные БД и специализированные, предназначенные для решения конкретных задач.

4. По «мощности» все БД делятся на корпоративные и настольные. Вторые имеют низкую стоимость, рассчитаны на единичного пользователя, имеют низкие требования к техническим средствам.

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

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

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

Модели баз данных

Существует 3 способа хранения информации в базах данных:

1. Иерархическая модель может быть представлена в виде дерева. На первом уровне расположен один объект. Ниже располагаются подчиненные ему объекты 2-го уровня. Каждый объект может иметь несколько подчиненных ему низшего уровня, но всегда связан только с одним объектом уровня выше. Примером иерархической модели служит операционная система Windows.

2. Сетевая модель является расширением иерархической. В ней убрано ограничение на количество связей объекта низшего уровня с объектом уровня выше. Примером такой модели служит сеть Интернет, которая представляет собой глобальную распределенную базу данных.

3. Реляционная (табличная) модель – самый распространенный способ хранения данных. Все данные собраны в таблицы, между которыми можно установить связи. На этом виде мы остановимся подробнее.

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

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

Для таких баз характерны следующие особенности:

1. Все таблицы имеют одинаковую структуру.

2. В каждой таблице есть ключевое поле, значения которого не могут повторяться.

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

Сфера применения баз данных

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

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

Access – сама распространенная БД

Для этих целей не требуются сложные СУБД, заточенные на корпоративных клиентов. Обычно достаточно настольного приложения на одного пользователя. И лучше всего с этой задачей справится база данных Access. Она входит в состав пакета MS Office. Access ориентирована на конечного пользователя и имеет удобный интерфейс. Имеется огромное количество литературы, в которой рассматривается база данных. Пример учебной базы данных входит также и в состав Access.

Краткий обзор Access

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

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

Сам ввод происходит не в таблицы, а через интерфейс, настроенный программистом. Таким образом можно обеспечить сохранность информации в таблице – пользователь просто не будет иметь к ней доступа. Кроме того, сам ввод данных будет комфортным и удобным.

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

Отчет — это шаблон документа, при открытии которого в него вносятся данные из запроса или таблицы. В Access создана гибкая система обмена данными, прежде всего между различными приложениями пакета Office. Данные из Access легко переносятся в Word или Excel. После чего их можно отправить по электронной почте, провести необходимые вычисления и опять экспортировать в Access.

База данных – это еще и среда программирования. В Access встроен мощный язык программирования – Visual Basic for Application(VBA). Он позволяет создавать достаточно сложные приложения, в том числе и для коммерческого применения.

Тенденции развития баз данных

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

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

Кому нужен SQL? Оказывается, всем. А зачем?

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

Предпочтение отдается тем сотрудникам, которые за короткий срок могут обработать большой объем информации. Потому что своевременная и точная информация стоит дорого. Современные технологии убегают от вас далеко вперед? Но на самом деле ещё есть время наверстать упущенное и получить для себя отличные перспективы карьерного роста. Востребованными становятся новые специальности, даже освобождается время на то, о чем раньше вы задумывались только вскользь — переобучение.

Мы уже рассказывали о профессиях, в которых можно успешно развиваться на сегодняшний день. А сегодня мы попробуем доходчиво, простыми словами рассказать об SQL — инструменте, с которым можно сделать первый шаг в в сферу аналитики. Хотя его использование, конечно, этим не ограничивается.

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

SQL — следующая ступень эволюции после общеизвестных программ Excel и Access. Но это не программа, это язык запросов, которые понимают другие приложения и базы данных в целом.

На примере Excel можно объяснить работу SQL запросов

Информация о продажах, закупках, бухгалтерских проводках хранится в связанных между собой таблицах (например, таких как база 1С или база данных вашей товароучетной программы).

Данные имеют свои идентификаторы (id). Благодаря этому вся информация структурирована не в одной громоздкой таблице, а в множестве маленьких и «легких», связанных между собой особенными отношениями таблиц. Таким образом уменьшается объем файла с информацией. Он занимает меньше места на диске, время выполнения запросов сокращается, система работает быстрее.

На языке SQL пишутся специальные запросы (так называемые SQL инструкции) к базе данных с целью получения данных или для манипулирования ими.

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

Плюсы SQL запросов:

  • используются на международном уровне;
  • инструменты SQL внедрены во все пакетные решения;
  • SQL имеет поддержку во всех языках программирования;
  • все системы управления базами данных (Oracle Database, Interbase, Firebird, Microsoft SQL Server, PostgreSQL) понимают SQL ;
  • запросы открывают доступ к базе данных для разных аналитиков;
  • находят ответы на непредсказуемые запросы руководства (это значит, что не нужно будет покупать новое приложение для решения новых и нестандартных задач).

Жизненная необходимость SQL инструментов

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

Но он также нужен экономисту банка или торговой сети, который хочет стать ведущим аналитиком. Т.е. первая причина для освоения — карьерный рост.

Когда страничек в книге Excel уже не хватает, фильтрация, поиск и обработка занимает все рабочее время аналитиков — значит бизнес достаточно масштабирован и готов общаться на языке программирования. Масштабирование бизнеса — еще одна из причин для привлечения экономистов со знанием SQL.

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

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

Простые ответы на сложные вопросы с помощью SQL

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

Для экономиста базы данных выведут список чеков за выбранный день дороже или дешевле нужной суммы и покажут, на каких кассах их пробили.

Финансовый аналитик с помощью SQL получает правильные исходные данные для построения дальнейших гипотез развития бизнеса. Он сможет верно определить причинно-следственных связи в поведении исследуемых реалий.

Можно долго перечислять возможности вашей базы данных после внедрения SQL-запросов, быстрее научиться и решать непосредственно свои задачи.

Как освоить SQL

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

Исторически SQL создавали, как инструмент для отбора и управления данными, которые закопаны в связанных таблицах. Перед создателями стояла цель — разработать эффективный и простой инструмент. Он должен быть понятен тем, кто не разбирается в языках программирования. Сегодня операторами SQL-запросов могут быть и экономисты, и бухгалтера, и финансисты, даже товароведы и другие специалисты.

Если вы отлично ладите с таблицами Excel, у вас хорошие шансы быстро освоить SQL. Даже если знаний по Excel не хватает, есть специализированные курсы, которые помогут быстро получить нужные навыки.

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

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

Истории выпускников Нетологии

Арсений Сова, выпускник курсов по аналитике в Нетологии:

Я работал менеджером проектов долгое время — своя команда, разработка различных программных решений, спектр задач довольно широкий. Потом решил с головой уйти в переквалификацию в менеджера продукта, и посчитал, что скилы аналитика подтянуть нужно. Соответственно оказался в Нетологии и изучал SQL. Для менеджера продукта он нужен как воздух — чем крупнее компания, тем сильнее.

Самое крутое в SQL — это его простота, гибкость, и очень низкий порог входа. Появление clickhouse вдохнуло в sql жизнь, в СНГ особенно. Самое главное — простота получения данных, как для дальнейшего анализа, так и для первичного знакомства с данными.

Например, исследование активности пользователей на проекте; исследования аудитории; получение данных для первичного анализа. Частая история, что менеджер продукта готовит отчетность, и соответственно, данные как-то собирать нужно. Даже проведение А/Б-тестирование — это все начинается с SQL.

Да и вообще, подводя итог, без SQL, на мой взгляд, никуда, уже скоро требование знаний по excel станет для всех — смех-смехом, все чаще вижу, что нужно знание sql, хотя бы на базовом уровне.

Роман Крапивин, руководитель проектов компании ООО «ИНТЭК» и выпускник курсов по аналитике в Нетологии:

Я работаю в строительном секторе руководителем проектов. За последние 3 года мы реализовали три крупных проекта на территории Москвы в сфере гражданского строительства.

И я пошёл на курс SQL по нескольким причинам. Во-первых, данный инструмент является одним из самых важных в арсенале аналитика в современном мире. На мой взгляд, не зная SQL, невозможно в дальнейшем развиваться как аналитик.

Во-вторых, во многих современных компаниях, которые работают с большим объемом информации (большими данными) требуют знания SQL. Так как в дальнейшем я хочу развиваться в финансовой сфере или сфере ритейла, знание данного инструмента просто необходимо для меня.


 

Базы данных. Учебное пособие

1. Введение в базы данных. Основные понятия и определения

2. Реляционные базы данных. Ограничения целостности

3. Принципы построения баз данных. Жизненный цикл баз данных

4. Архитектуры баз данных

5. Организация процессов обработки данных в БД. Технология создания приложения в среде Delphi

6. Технология оперативной обработки транзакции

7. Реляционный способ доступа к базе данных. Основные сведения о языке SQL

8. Построение приложений баз данных в архитектуре «клиент-сервер». SQL-сервер Interbase

9. Информационные хранилища. OLAP-технология

10. Перспективы развития БД и СУБД

1. Введение в базы данных. Основные понятия и определения

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

База данных (БД) — именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области.

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

Система управления базами данных (СУБД) — совокупность языковых и программных средств, предназначенных для создания, наполнения, обновления и удаления баз данных.

Основополагающими понятиями в концепции баз данных являются обобщенные категории «данные» и «модель данных».

Понятие «данные» в концепции баз данных — это набор конкретных значений, параметров, характеризующих объект, условие, ситуацию или любые другие факторы, Примеры данных: Петров Николай Степанович, $30 и т. д. Данные не обладают определенной структурой, данные становятся информацией тогда, когда пользователь задает им определенную структуру, то есть осознает их смысловое содержание. Поэтому центральным понятием в области баз данных является понятие модели. Не существует однозначного определения этого термина, у разных авторов эта абстракция определяется с некоторыми различиями но, тем не менее, можно выделить нечто общее в этих определениях.

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

С помощью модели данных могут быть представлены объекты пред

FAQ

FAQ





Здесь представлены ответы на наиболее типичные вопросы,
возникающие при проектировании баз данных.



Содержание



Разновидности СУБД



Сервер и клиент



Реляционные базы данных: Теория



Реляционные базы данных: Особенности SQL-серверов



Реляционные базы данных: Практические вопросы



  • Q1: Что такое суррогатный ключ, и чем он лучше или хуже
    естественного ключа?

  • Q2: Можно ли полностью избежать дублирования информации?

  • Q3: Хотелось бы иметь возможность восстанавливать удаленные
    записи. Как это сделать?

  • Q4: Как организовать хранение истории изменений записей, с
    возможностью просмотра и отката этих изменений?

  • Q5: Есть объекты, которые меняются с течением времени. Нужно
    получать их состояния на любую дату. Каким образом для этого надо организовать хранение
    объектов в базе?

  • Q6: Каким образом можно хранить в реляционной базе иерархические
    объекты?

  • Q7: Как получить полную информацию об определенной таблице в
    базе (какие поля есть в таблице, их тип, размер, связи с другой таблицей и т.п.)?

  • Q8: Необходимо хранить в базе много картинок (файлов).
    Как лучше всего это сделать?

  • Q9: Есть запрос, который возвращает данные, отсортированные по
    какому-либо признаку. Можно ли получить не весь результат, а только определенную его
    часть, например, записи с 20 по 40?

  • Q10: Как из таблицы получить записи,
    в которых одно из полей максимально (или минимально)?

  • Q11: Можно ли сделать в SQL перекрестный запрос? То есть, в
    качестве полей для результата, брались бы не поля таблицы, а данные из нее?

  • Q12: Как обеспечить нумерацию записей в результате запроса?

  • Q13: Есть необходимость добавлять произвольные виды объектов
    (еще неизвестные на этапе разработке) в БД.
    Создавать и менять таблицы на «живой» базе не хочется. Как быть?


Дополнительно



Разновидности СУБД



Q1: Что такое СУБД?


A1: СУБД — Система Управления Базами Данных (DBMS — DataBase Management System).


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


Сама база данных (БД) обычно находится просто в файлах закрытого, либо открытого формата.



Q2: Чем отличаются «серверная» и «настольная» СУБД?


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

Серверная (server) СУБД, как правило, запускается в на той же машине (сервере баз
данных), где находятся файлы БД. Непосредственно к базе данных обращается лишь один
экземпляр СУБД
. Пользовательские приложения общаются только с этой СУБД через ее API,
независимо от того, работают они на той же машине или на другой.


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



Q3: Что такое реляционная база данных?


A3: Реляционная (relational) БД отличается способом представления информации,
находящейся в ней.


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


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

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


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


Реляционная база данных сочетает наглядность представления информации с простотой
(относительной) реализации своей концепции и является наиболее популярной структурой для
хранения данных на сегодняшний день.


Достаточно подробно реляционные БД описаны в книгах
[1], [2] и [3].



Q4: Кто такой SQL-сервер?


A4: Сервер для управления реляционными БД обычно называют SQL-сервером.

SQL (Structured Query Language — язык структурированных запросов) является
стандартным языком для работы с реляционными БД. Кроме стандартных реляционных
операций, этот язык предоставляет возможности для изменений структуры таблиц.


Различные варианты SQL используются во всех, как серверных, так и в настольных
реляционных СУБД.



Q5: Какой SQL-сервер лучше всего использовать?


A5: На какой хватит денег.:)


Вообще-то это может сильно зависеть от постановки задачи, количества пользователей и
прихотей заказчика.


Ниже приведена таблица самых распространенных SQL-серверов в порядке (примерно)
убывания их возможностей:













Сервер

Достоинства

Недостатки

IBM DB2 Universal Database

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

Высокая стоимость.

Oracle Database

Великое множество дополнительных возможностей. Версионный сервер.

Очень высокая стоимость сервера и поддержки.

Microsoft SQL Server

Быстро развивающийся продукт, уже вплотную приближающийся к своим более развитым
конкурентам. Средняя стоимость.

Существует только для одной платформы (Win32).

IBM Informix Dynamic Server

Довольно развитый быстрый сервер.

—

Sybase Adaptive Server Enterprise

Достаточно развитый сервер. Средняя стоимость.

—

Sybase Adaptive Server Anywhere

Существует под множество платформ, включая самые экзотичные. Низкая стоимость.

—

Borland InterBase

Приличный набор возможностей. Версионный сервер. Бесплатный.

Относительно медленно работает.

PostgreSQL

Поддерживает историческую модель. Возможность создавать свои типы данных. Бесплатный.

—

MySQL

Быстро работает на простых запросах. Бесплатный.

Очень бедный язык запросов. Мало дополнительных возможностей.



Q6: Что такое объектно-ориентированная СУБД?


A6: В объектно-ориентированных БД (ООБД), данные представлены в виде объектов
различных классов
.


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


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


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


Более подробно ООБД описаны в статье
[4].



Q7: Какие объектно-ориентированные СУБД существуют в природе?


A7: Достаточно распространены следующие ООБД:

Cache

FastObjects

GemStone/S

Jasmine

ObjectStore

Objectivity/DB

Versant



Q8: Что такое пост-реляционная база данных?


A8: Пост-реляционными, часто называют многомерные базы данных.


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


Наиболее известные многомерные СУБД:

Cache

Teradata



Q9: Какие еще бывают разновидности СУБД?


A9: Кроме реляционных, объектно-ориентированных и многомерных СУБД,
также давно известны иерархические и сетевые базы данных.


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


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




Сервер и клиент



Q1: Что такое сервер баз данных?


A1: Под сервером БД обычно подразумевается СУБД, запущенная на той же машине, где
находятся файлы БД, и монопольно распоряжающаяся этими файлами.


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



Q2: Что такое клиент?


A2: Клиентом к БД, обычно называют пользовательское приложение, которое
общается с сервером БД.


Модель работы, в которой клиент общается непосредственно с сервером, не используя
промежуточных приложений, называется архитектурой клиент-сервер.



Q3: Как клиент общается с сервером?


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


Часто, дополнительно устанавливается библиотека (ODBC, OLE DB и т.п.),
предоставляющая приложениям API для
работы с сервером БД
.



Q4: В чем отличие «многозвенной» архитектуры от «двухзвенной»?


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


Такую архитектуру называют «трехзвенной», в отличие от «двухзвенной»
архитектуры клиент-сервер.



Q5: Зачем нужен сервер приложений?


A5: Сервер приложений может использоваться для многих целей.


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


Также, при большом количестве пользователей, можно использовать несколько серверов
приложений для распределения нагрузки.


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



Q6: Чем отличается «тонкий» клиент от «толстого»?


A6: «Тонким» клиентом обычно называют пользовательское приложение, не
содержащее никакой функциональности
, и предназначенное только для ввода/вывода
информации
. Вся обработка данных производится на сервере БД, либо на сервере приложений.


Зачастую, такой клиент изначально не содержит вообще никаких возможностей, а
подгружает дополнительные модули с сервера, по мере необходимости. Обычно, в
качестве «тонкого» клиента, выступают Web броузер + HTML/ASP/Java.

«Толстый» клиент содержит всю функциональность и интерфейсную часть в себе, и при
любом изменении, требует замены у всех пользователей.




Реляционные базы данных: Теория



Q1: Как данные хранятся в реляционной базе?


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


Полное описание реляционных БД можно найти в книгах
[1], [2] и [3].



Q2: Как записи отличаются друг от друга?


A2: Записи в таблице отличаются только содержимым их полей.


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


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

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



Q3: Каким образом таблицы связаны между собой?


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

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


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



Q4: Что такое нормализация?


A4: Упорядочивание модели БД.


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


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



Q5: Имеет ли значение порядковый номер записи в таблице?


A5: Нет.


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




Реляционные базы данных: Особенности SQL-серверов



Q1: Что можно делать при помощи SQL?


A1: SQL (Structured Query Language — язык структурированных запросов)
является стандартным языком для работы с реляционными БД.


Разделяется на две основные части:
DDL (Data Definition Language — язык определения данных) и
DML (Data Manipulation Language — язык обработки данных).

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

DML предназначен для чтения и изменения данных.


Основные операторы DML:
select — выборка,
insert — вставка,
update — изменение,
delete — удаление.


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


Подробное описание операторов и возможностей SQL имеется в книге [1].



Q2: Зачем нужны транзакции?


A2: Во многих случаях,
необходимо проведение группы операций по изменению данных таким образом,
чтобы эта группа обладала свойством атомарности
(либо вся целиком выполняется, либо вся целиком не выполняется).


Такая группа операций называется транзакцией.


В SQL-серверах существуют операторы,
позволяющие обозначить начало транзакции (begin transaction),
ее успешное завершение (commit transaction),
либо откат транзакции (rollback transaction).



Q3: Что такое журнал транзакций?


A3: Любые изменения данных, проведенные внутри транзакции,
записываются в специальный журнал транзакций (transaction log).


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



Q4: Когда появляются блокировки?


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


Если какая-нибудь другая транзакция пытается изменить заблокированные записи,
то ее выполнение останавливается,
пока не будет снята блокировка,
то есть, пока не завершится первая транзакция.


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



Q5: Чем отличаются «версионники» от «блокировочников»?


A5: Классические «блокировочники» не дают возможности разным транзакциям
одновременно изменять одни и те же записи, блокируя их на время транзакции.
В результате, при попытке изменить заблокированную запись,
другая транзакция будет простаивать,
пока не завершиться первая.


В свою очередь,
«версионники» позволяют одновременно модифицировать одни и те же записи,
создавая при этом разные версии одной записи.



Q6: Почему возникает deadlock?


A6: Перекрестная блокировка (deadlock) двух транзакций
возникает при изменении одних и тех же записей в разном порядке.


Последовательность действий, приводящая к перекрестной блокировке:


1. Транзакция A изменяет запись X. Заблокирована X.


2. Транзакция B изменяет запись Y. Заблокирована Y.


3. Транзакция A пытается изменить запись Y. Остановлена A.


4. Транзакция B пытается изменить запись X. Остановлена B.


Сервер определяет перекрестную блокировку и откатывает одну из транзакций,
возвращая ошибку соответствующему соединению.
Аминь.


Чтобы не выводить ошибку пользователю,
обломанное соединение должно молча повторить транзакцию.



Q7: Зачем нужны индексы?


A7: Для ускорения операций выборки данных.


При поиске полей с определенным значением,
сервер вынужден перебирать все записи в таблице.
В этом случае, время поиска линейно зависит от размера таблицы.


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


Однако, наличие индексов в таблице,
замедляет операции модификации данных.



Q8: Для чего необходим первичный ключ в таблице?


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


Обычно, при определении первичного ключа,
по нему автоматически создается уникальный индекс.



Q9: Что такое триггер?


A9: Триггер — процедура,
выполняемая сервером автоматически при модификации данных в таблице.


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



Q10: Можно ли использовать свою функцию в SQL-запросе?


A10: Можно, практически во всех современных SQL-серверах.
Различия только в синтаксисе определения и вызова функции.


Кроме того, некоторые сервера позволяют использовать функции,
написанные на других языках (не SQL).



Q11: Как автоматически генерировать первичный ключ?


A11: Обычно, в SQL-серверах
можно указать одно из числовых полей как автоматически нумеруемое,
причем синтаксис определения сильно зависит от разновидности сервера.


При вставке новой записи,
такому полю присваивается значение поля предыдущей записи + заданное приращение.
Как правило, значение подобного поля нельзя явно изменять с помощью DML.



Q12: Какую функцию выполняет оптимизатор запросов?


A12: Оптимизатор предназначен для определения
самого быстрого способа выполнения запроса (в основном для выборки данных),
при участии в нем нескольких таблиц.


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



Q13: Что такое представление?


A13: Представление (view) — это запрос на выборку,
хранящийся на сервере, как отдельный объект.


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

Материализованное представление хранится на сервере в виде таблицы,
которая автоматически обновляется при изменении данных,
имеющих отношение к этому представлению.



Q14: Для чего нужны хранимые процедуры?


A14: Хранимые процедуры (SP — Stored Procedure)
представляют собой последовательность команд на расширениях SQL,
либо на других языках, поддерживаемых сервером.
Могут принимать параметры и возвращать значение заданного типа.


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


Иногда, используются вместе с представлениями,
для обеспечения безопасности БД
(все изменения через SP, все выборки через view).



Q15: Какие типы данных есть в SQL-сервере?


A15: Обычно, для полей в таблицах могут использоваться только самые простые типы:
числа (целые и дробные),
строки (сильно ограниченные по длине),
дата (и время),
бинарные данные большого размера (для текста, графики и т.п.).


В некоторых серверах допускается использование массивов и самодельных структур.



Q16: Чему равен null?


A16: А хрен его знает.
И это совсем не шутка, а его фактическое определение.


Null не является пустым значением. Поэтому null + 1 = null, а не 1.


Использование null означает переход от двузначной логики (true/false)
к трехзначной (true/false/unknown),
которая является более сложной
и несколько непривычной.


С другой стороны,
логические операторы SQL обычно приспособлены для работы только с двузначной логикой.
Поэтому использовать null для значений полей следует очень осторожно
и только в тех случаях,
когда без него никак нельзя обойтись.
Поведение null хорошо описано в статье [5].



Q17: Зачем нужен внешний ключ?


A17: Внешний ключ (FK — Foreign Key)
используется для создания жесткой связи (многие к одному) между двумя таблицами.


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


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


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


Обычно, при определении внешнего ключа,
по нему автоматически создается индекс,
который используется в запросах при объединении этих двух таблиц.



Q18: Существует ли стандарт SQL, общий для всех серверов?


A18: Вообще-то он есть (ANSI SQL 92),
только вот поддержка его у производителей СУБД сильно хромает.


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


Наиболее близки к стандарту:
Borland InterBase, Microsoft SQL Server, IBM DB2 Universal Database.



Q19: Есть ли стандартное клиентское API для доступа к SQL-серверам?


A19: Наиболее распространенным клиентским API является ODBC
(Open DataBase Connectivity).


ODBC-драйвера существуют на многих платформах и почти для всех SQL-серверов.



Q20: Что такое репликация?


A20: Репликацией обычно называют процесс синхронизации данных
между несколькими БД.


Наиболее развитые SQL-сервера содержат встроенные средства репликации.
Для остальных могут быть использованы продукты сторонних фирм.

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

Двустороняя репликация предоставляет гораздо более мощный инструмент
распределенной работы между SQL-серверами.
Плата за это — сложность и большая вероятность конфликтов при работе.



Реляционные базы данных: Практические вопросы



Q1: Что такое суррогатный ключ,
и чем он лучше или хуже естественного ключа?


A1: Естественным ключом (ЕК) обычно называют первичный ключ,
который является смысловым атрибутом (либо набором атрибутов) сущности.
Как и любой другой атрибут,
ЕК подвержен изменениям,
а его уникальность часто бывает притянута за уши.

Суррогатным ключом (СК), как правило,
называется уникальное автонумеруемое целочисленное поле в таблице,
которое и является первичным ключом.
СК гораздо компактнее, чем ЕК,
везде занимает одно поле одинакового типа,
всегда неизменен и уникален.


Более обоснованное сравнение СК и ЕК производится в статье [6].



Q2: Можно ли полностью избежать дублирования информации?


A2: Только в теории.


Полностью нормализованная БД хороша для хранения данных.
Но, на практике постоянно встречаются структуры,
получение информации из которых, слишком сложно и медленно
(а иногда и невозможно с помощью лишь оператора select).


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



Q3: Хотелось бы иметь возможность восстанавливать удаленные записи.
Как это сделать?


A3: А не надо их удалять, тогда и проблемы не будет.


Проще всего держать в таблице дополнительное поле Deleted (default = false),
а вместо удаления записи устанавливать Deleted = true.
Для выборки можно использовать представление с внутреннем условием:

Deleted = false


Возможен и более сложный вариант:
два дополнительных поля
DateBegin (defaul = текущая_дата) и DateEnd (defaul = максимальная_дата).
Вместо удаления записи необходимо установить DateEnd = текущая_дата,
а условие для выборки будет:

текущая_дата beetwen DateBegin and DateEnd


Во втором варианте есть возможность,
не только иметь даты заведения/удаления записей,
но и получать наборы записей на любую определенную дату
с условием:

заданная_дата beetwen DateBegin and DateEnd



Q4: Как организовать хранение истории изменений записей,
с возможностью просмотра и отката этих изменений?


A4: Самый простой вариант — это создать таблицу-журнал,
в которую, при изменении записи,
помещать следующую информацию:
дату изменения, имя (Id) пользователя,
имя (Id) изменяемой таблицы, ПК записи, имя (Id) изменяемого поля и
предыдущее значение поля, преобразованное в строку.

Запись в журнал можно делать либо триггерами,
либо из приложения.

Откат изменений следует производить специальной процедурой,
которая должна восстановить значения полей на заданную дату
и удалить соответствующие записи из журнала.


Один из вариантов журнала имеется в статье [9].



Q5: Есть объекты, которые меняются с течением времени.
Нужно получать их состояния на любую дату.
Каким образом для этого надо организовать хранение объектов в базе?


A5: Можно использовать сервер,
который поддерживает историческую модель,
например, PostgreSQL Server.


В ином случае,
можно, в дополнение к основной таблице,
создать аналогичную таблицу истории,
с двумя дополнительными полями:
DateBegin и DateEnd.

При вставке записи в основную таблицу,
необходимо добавить такую же запись в таблицу истории,
где DateBegin = текущая_дата, DateEnd = максимальная_дата.

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

При удалении записи в основной таблице,
у последней соответствующей записи в таблице истории
надо установить DateEnd = текущая_дата.

Выборка из основной таблицы производится обычным образом,
а из таблицы истории с условием:

заданная_дата beetwen DateBegin and DateEnd


Сходные варианты представления истории рассматриваются в статье [10].




Q6: Каким образом можно хранить в реляционной базе иерархические объекты?


A6: В таблицу, которую надо сделать иерархической,
надо добавить поле Parent,
содержащее значение ПК родительской записи.


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


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


Подробно способы представления деревьев в реляционных БД
описаны в статьях [7] и [8].



Q7: Как получить полную информацию об определенной таблице в базе
(какие поля есть в таблице, их тип, размер, связи с другой таблицей и т.п.)?


A7: Вообще-то, в большинстве SQL-серверов есть системный каталог —
набор стандартных таблиц,
содержащих информацию обо всех объектах сервера и БД.


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


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


Пример системного каталога приведен в статье [9].



Q8: Необходимо хранить в базе много картинок (файлов).
Как лучше всего это сделать?


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


Кроме того,
в SQL-серверах есть возможность определять бинарные поля большого размера,
которые можно использовать для хранения разных видов файлов.
Чтобы не замедлять работу с обычными данными,
рекомендуется создавать отдельно таблицу, содержащую такие поля.
Также, при использовании больших полей,
можно обнаружить разнообразные ограничения на сервере и клиенте.



Q9: Есть запрос,
который возвращает данные, отсортированные по какому-либо признаку.
Можно ли получить не весь результат,
а только определенную его часть, например, записи с 20 по 40?


A9: Такие действия проще всего выполнять на клиенте.

Если надо на сервере,
то лучше использовать предназначенные для этого возможности оператора выборки:


1. select top n * from t order by a
2. select * from t order by a limit n,m


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


select * from t as t_outer where 
( select count( * ) from t as t_inner where t_inner.a <= t_outer.a ) between n and m
order by a


В крайнем случае, можно выбирать данные во временную таблицу
с дополнительным автонумеруемым полем RowNumber,
а из нее затем делать выборку:


select ... where RowNumber >= n and RowNumber <= m



Q10: Как из таблицы получить записи,
в которых одно из полей максимально (или минимально)?


A10: Самый правильный способ —
это использовать вложенный запрос,
в котором ищется максимальное значение поля.
Затем найденное значение используется в условии основного запроса.


select *
from t
where a = ( select max( a ) from t )


Если максимальное значение необходимо искать не во всей таблице,
а по определенному полю,
то запрос будет следующего вида:


select *
from t as t_outer
where a = ( select max( t_inner.a ) from t as t_inner where t_inner.b = t_outer.b )


Чтобы избежать появления в результате запроса нескольких одинаковых записей,
соответствующих одному максимальному значению,
можно использовать ключевое слово distinct.




Q11: Можно ли сделать в SQL перекрестный запрос?
То есть, в качестве полей для результата, брались бы не поля таблицы, а данные из нее?


A11: Подобные запросы обычно умеют делать разнообразные генераторы отчетов.
SQL же не предусматривает такой возможности.


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




Q12: Как обеспечить нумерацию записей в результате запроса?


A12: Нумерация записей очень легко делается на любом клиенте.


Чтобы в запросе получить поле, соответствующее номеру записи,
можно использовать подзапрос, возвращающий количество записей,
меньших либо равных (сравнение — по полю сортировки) текущей записи:


select *,
( select count( * ) from t as t_inner where t_inner.a <= t_outer.a ) as RowNumber
from t as t_outer
order by a


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




Q13: Есть необходимость добавлять произвольные виды объектов
(еще неизвестные на этапе разработке) в БД.
Создавать и менять таблицы на «живой» базе не хочется. Как быть?


A13: Можно вообще хранить все дополнительные объекты в одной таблице,
содержащей идентификатор объекта, идентификатор атрибута
и само значение атрибута, преобразованное в строку.


Чтобы не было мучительно больно при получении результатов запросов,
лучше все-таки использовать несколько таблиц —
отдельно для каждого типа данных.


Более серьезный вариант универсального хранилища объектов
рассмотрен в статье [11].

PS: А чем была плоха идея насчет создания/изменения таблиц?





Английские



API — Application Program Interface

DB — DataBase

DBMS — DataBase Management System

DDL — Data Definition Language

DML — Data Manipulation Language

FK — Foreign Key

ODBC — Open DataBase Connectivity

PK — Primary Key

RDBMS — Relational DataBase Management System

SP — Stored Procedure

SQL — Structured Query Language


Русские



БД — База Данных

ЕК — Естественный Ключ

ООБД — Объектно-Ориентированная База Данных

ООСУБД — Объектно-Ориентированная Система Управления Базами Данных

ПК — Первичный Ключ

РСУБД — Реляционная Система Управления Базами Данных

СУБД — Система Управления Базами Данных

СК — Суррогатный Ключ






  1. Мартин Грабер
    «Понимание SQL».


     

  2. Пушников А. Ю.

    «Введение в системы управления базами данных».


     

  3. Кузнецов С. Д.

    «Основы современных баз данных».


     

  4. Кузнецов С. Д.

    «Объектно-ориентированные базы данных — основные
    концепции, организация и управление: краткий обзор».


     

  5. Акжан Абдулин, Лиля Козленко

    «Представление отсутствующей информации».


     

  6. Тенцер А.

    «Естественные ключи против искусственных ключей».


     

  7. Joe Celko
    «A Look at SQL Trees»,
    II,
    III.


     

  8. Виноградов С. А.
    «Моделирование иерархических объектов».


     

  9. Виноградов С. А.
    «Минимальный набор стандартных таблиц».


     

  10. Виноградов С. А.
    «История изменений объектов».


     

  11. Тенцер А.
    «База данных — хранилище объектов»,
    II.


     


© 2001—2003 Сергей Виноградов

Зачем нужен искусственный интеллект?

В современном мире мы слышим слово «искусственный интеллект». Но большинство людей не знают точно, что означает этот искусственный интеллект? и более того, почему это необходимо в современном мире. Но сегодня люди не знают, что этот искусственный интеллект был повсюду в современном мире. Каждое десятилетие неожиданным образом увеличивается население. И скрытый факт, который нам нужно знать, это то, что мы уже использовали искусственный интеллект.Но люди все еще думают, что этот термин новый, и нам нужно его применить. И основная причина, по которой нам нужен искусственный интеллект , — это население.

Итак, вы думаете, что население является причиной использования искусственного интеллекта? Да, потому что население увеличивается день ото дня. И требования клиента тоже повседневные. Таким образом, сегодня организация не может позволить себе удовлетворение требований клиентов по требованию в оговоренные сроки.Таким образом, в этом сценарии им нужна альтернатива решению проблемы. Альтернатива, которая у нас есть сегодня, — это применение искусственного интеллекта. Щелкните Artificial Intelligence Online Training , чтобы узнать, как это решает проблему.

Потребность в искусственном интеллекте:

Прежде чем узнать о необходимости искусственного интеллекта, позвольте мне сначала объяснить вам, что такое искусственный интеллект?

Искусственный интеллект — это моделирование человеческого процесса машинами (компьютерными системами).Эти процессы включают обучение, рассуждение и самокоррекцию.

Нам нужен искусственный интеллект (ИИ), потому что объем работы, который нам нужно выполнять, увеличивается с каждым днем. Так что автоматизировать рутинную работу — хорошая идея. Это экономит трудовые ресурсы организации, а также увеличивает производительность. Кроме того, с помощью этого искусственного интеллекта компания также может получить квалифицированных специалистов для развития компании. Более того, сегодня компании думают, что хотят механизировать всю рутинную и рутинную работу.И они думают, что могут автоматизировать эти обычные работы с помощью простой программы. Потому что с развитием науки о данных автоматизация становится все более распространенной. Применение этого ИИ в основном можно увидеть на чат-портале веб-сайта. Вы, люди, заходя на веб-сайты, вероятно, видели приветственное сообщение. Потом обычно начинается разговор.

Итак, этот мощный искусственный интеллект разделен на 4 категории. Итак, теперь позвольте мне объяснить вам одно за другим:

Реактивные машины:

Хороший пример реактивных машин — Deep blue.И это обычно применяется на шахматной доске. Это может идентифицировать фигуры на шахматной доске и делать прогнозы. Но недостаток в том, что в нем нет памяти. Это означает, что он не может использовать прошлый опыт для предсказания будущего. Таким образом, он просто использует текущую ситуацию и просто перемещает пешку. Он предназначен для применения в небольшой ситуации. С ситуацией можно было справиться в мгновение ока.

Ограниченная память:

Этот тип A

404: Страница не найдена

Поиск в сети TechTarget

    Присоединяйтесь к CW +

    Авторизоваться
    регистр
    Печенье

    • Новости
    • Глубоко
    • Блоги
    • Мнение
    • Видео
    • Фоторепортажи
    • Премиум-контент
    • Подпишитесь на ежедневную рассылку Computer Weekly

    RSS

    • ИТ-менеджмент

      • Руководство ИТ и CW500
      • ИТ-архитектура
      • ИТ-эффективность
      • Управление
      • Инновации
      • Законодательные и нормативные акты
      • Операции и поддержка
      • Управление проектами
      • Стратегия
      • Управление поставщиками
      • Деловые вопросы
      • Спонсируемые сообщества
    • Отрасли промышленности

      • Здравоохранение IT
      • Благотворительность IT
      • Бизнес-услуги ИТ
      • Финансовые услуги ИТ
      • Государственный и государственный сектор ИТ
      • Досуг и гостиничный бизнес IT
      • Производство ИТ
      • СМИ и развлечения IT
      • Розничная торговля ИТ
      • МСБ ИТ
      • Телекоммуникации и Интернет
      • Транспорт и путешествия IT
      • Коммунальные услуги IT
      • ИТ-поставщики
    • Темы о технологиях

      Датацентр
      Просмотреть все

      • Кластеризация для обеспечения высокой доступности и HPC
      • Контейнеры
      • Конвергентная инфраструктура
      • Резервное питание центра обработки данных и распределение электроэнергии
      • Планирование мощности центра обработки данных
      • Инфраструктура охлаждения центра обработки данных
      • Аварийное восстановление / безопасность
      • Зеленый IT
      • Производительность, мониторинг и оптимизация
      • Системное управление
      • DevOps
      • IaaS
      • Сервер и операционная система

    Почему NoSQL? — НосДБ

    • Вебинары
    • Документы
    • Скачать
    • Блоги
    • Свяжитесь с нами
    • Товар
    • Скачать
    • Ценообразование
    • Сценарии использования

      Случаи технического использования

      ASP.NET сессий

      Сеансы ASP.NET Core

      Обмен сообщениями Pub / Sub

      SignalR в реальном времени ASP.NET

      Интернет вещей

      База данных NoSQL

      Обработка потока

      Микросервисы

      Отраслевые сценарии использования

      Финансовые услуги

      Розничная торговля и электронная коммерция

      Здравоохранение

      Страхование

      Телекоммуникации

      Правительство

      Средства массовой информации

      Логистика

      Программного обеспечения

      Путешествовать

    • Клиенты

      Отзывы

      Примеры из практики

      Клиенты

    • Ресурсы

      Документация

      подсказки

      Блоги

      Белые бумаги

      Сравнения

      Примеры кода

      Контрольные точки

      Примеры из практики

      Журнальные статьи

      Статьи

      Форум (Группы Google)

      Вебинары

      Переговоры

      Видео

      — Видео о продуктах

      — Записанные вебинары

      Поддержка

    • Компания

      Обзор

      Лидерство

      Партнеры

      Новости и события

      Карьера

      Поддержка

      Запланировать демонстрацию

      Свяжитесь с нами