Введение в Базы данных

Понятие Баз данных

Примечание

База данных(БД) - это взаимосвязанная информация данные об объектах, которая организована согласна правилам построения модели базы данных и хранится на каком либо носителе.

Примечание

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

Логические модели

Файловая модель

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

Основные недостатки файловой модели:

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

Иерархическая модель

Иерархическая модель баз данных организует записи в виде структуры «родитель-потомок», формируя обращенное дерево. Данные делятся на логические категории и подкатегории, что удобно для представления отношений между сущностями. Однако модель не поддерживает сложные отношения «многие ко многим», так как дочерняя запись может иметь только одного родителя. Также навигация по иерархии может быть громоздкой. Наиболее известной СУБД на основе этой модели является IMS от IBM, а также она используется в системах управления файлами.

Сетевая модель

Сетевая модель баз данных, разработанная Чарльзом Бахманом в 1963 году с системой IDS, возникла как усовершенствование иерархической модели, позволяя записям участвовать в множестве отношений «родитель-потомок». В 1975 году модель была стандартизирована организацией CODASYL. Хотя она более гибкая, чем иерархическая, разработчики должны самостоятельно программировать навигацию по записям. Модель требует значительных ресурсов памяти для хранения ссылок на другие элементы, а изменения могут усложнять операции обновления базы данных.

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

Реляционная модель данных, разработанная Эдгаром Коддом в 1970 году, описывает данные в виде таблиц, состоящих из строк и столбцов, без связи «родитель-потомок». Таблицы имеют уникальные названия и связываются между собой через отношения, что обеспечивает гибкость и удобство в извлечении и изменении информации. За свои исследования Кодд был награжден премией Тьюринга в 1981 году. Примеры реляционных систем управления базами данных (РСУБД) включают Microsoft SQL Server, Access и MySQL.

Объектно-ориентированная модель

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

Понятие реляционной базы данных

Реляционная модель баз данных — это способ организации и хранения данных, который стал популярным с конца 70-х годов прошлого века. В этой модели информация представлена в виде таблиц, каждая из которых состоит из строк и столбцов. Каждая строка (или запись) в таблице соответствует конкретному объекту или сущности, например, студенту, а каждый столбец (или поле) содержит определенные характеристики этих объектов, такие как имя, фамилия или уникальный идентификатор.

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

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

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

Правила Кодда

1. Основное правило: СУБД должна управлять базами данных, используя исключительно свои реляционные возможности;

2. Правило информации: вся информация в любой базе данных должна быть представлена исключительно значениями в таблицах;

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

4. Правило поддержки недействительных значений: в СУБД должна быть реализована возможность поддержки неизвестных или отсутствующих значений (отсутствующие данные должны быть представлены с помощью недействительных значений (NULL));

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

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

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

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

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

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

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

12. Правило независимости распространения: база данных может находиться на разных компьютерах и язык СУБД должен поддерживать возможность работы с распределенными данными;

13. Правило единственности: не должно быть возможности нарушить безопасность и целостность данных в обход языка СУБД, то есть при работе с данными должен использоваться только язык СУБД.

Сравнительный анализ (СУБД)

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

  1. Архитектура и производительность

  • Microsoft SQL Server: Использует архитектуру клиент-сервер и поддерживает различные уровни изоляции транзакций, что позволяет эффективно обрабатывать большое количество запросов. Оптимизация запросов и индексация также способствуют высокой производительности.

  • Oracle Database: Также имеет мощную архитектуру, поддерживает многопользовательский доступ и может обрабатывать большие объемы данных. Oracle известен своей высокой производительностью в сложных транзакционных системах.

  • MySQL: Легковесная СУБД, которая подходит для веб-приложений и небольших проектов. Производительность может быть ниже по сравнению с SQL Server и Oracle, особенно при работе с большими объемами данных.

  • PostgreSQL: Обеспечивает высокую производительность и поддерживает расширенные функции, такие как работа с JSON и географическими данными. Подходит для сложных аналитических задач.

  1. Поддержка языков и стандартов

  • Microsoft SQL Server: Поддерживает T-SQL (Transact-SQL), который является расширением SQL. Предоставляет инструменты для разработки и управления базами данных через SQL Server Management Studio (SSMS).

  • Oracle Database: Использует PL/SQL, который также является расширением SQL, и предлагает мощные инструменты для разработки.

  • MySQL: Поддерживает стандартный SQL, но имеет некоторые ограничения по сравнению с более мощными СУБД.

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

  1. Безопасность

  • Microsoft SQL Server: Предоставляет многоуровневую безопасность, включая шифрование данных, управление доступом на уровне строк и интеграцию с Active Directory.

  • Oracle Database: Известна своими мощными средствами безопасности, такими как шифрование, управление пользователями и аудит.

  • MySQL: Имеет базовые функции безопасности, но может требовать дополнительных настроек для обеспечения высокого уровня защиты.

  • PostgreSQL: Обеспечивает хорошую безопасность, включая шифрование и управление доступом, но может быть менее интуитивно понятным для новых пользователей.

  1. Лицензирование и стоимость

  • Microsoft SQL Server: Имеет различные редакции, включая бесплатную версию Express, но коммерческие версии могут быть дорогими для крупных организаций.

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

  • MySQL: Имеет бесплатную версию (Community Edition) и платные версии с дополнительными функциями, что делает её более доступной.

  • PostgreSQL: Полностью бесплатная и с открытым исходным кодом, что делает её привлекательной для многих разработчиков и компаний.

  1. Поддержка и сообщество

  • Microsoft SQL Server: Имеет обширную документацию и поддержку от Microsoft, а также активное сообщество пользователей.

  • Oracle Database: Также предлагает хорошую поддержку, но может быть менее доступной для небольших компаний.

  • MySQL: Имеет большое сообщество и множество ресурсов для обучения.

  • PostgreSQL: Активное сообщество и множество документации, что делает её популярной среди разработчиков.

Заключение

Microsoft SQL Server является мощной и надежной СУБД, особенно для корпоративных приложений, требующих высокой производительности и безопасности. Однако выбор СУБД должен основываться на конкретных потребностях проекта, бюджете и опыте команды. Каждая из рассматриваемых систем имеет свои преимущества и недостатки, и лучший выбор зависит от специфики задач и требований бизнеса.