БД. Базы данных. Базы данных что такое база данных
Скачать 0.68 Mb.
|
Базы данныхЧТО ТАКОЕ БАЗА ДАННЫХ?База данных – это совокупность взаимосвязанных элементов данных, которые хранятся как одно целое Объект базы данных – это поименованная структура данных, которая хранится в базе (таблица, представление, индекс и др.) В большинстве систем данные хранятся в нескольких файлах ЧТО ТАКОЕ СУБД?Система управления базами данных (СУБД) – это программа, предоставляемая поставщиком базы данных, набор инструментов для работы с БД Примеры СУБД:
Microsoft SQL Server Oracle Database MySQL PostgreSQL ОСНОВНЫЕ ФУНКЦИИ СУБДЗапись и чтение из физических файлов по необходимости Предоставление одновременного доступа нескольким пользователям и обеспечение мер предосторожности Поддержка транзакций («все или ничего») Поддержка языка запросов Резервное копирование базы данных и ее восстановление после сбоев Обеспечение безопасности для предотвращения неавторизованного доступа к данным и их модификации ЧТО ТАКОЕ РЕЛЯЦИОННАЯ БД?Реляционная база данных – это база, основанная на реляционной модели, которая была разработана Э.Ф. Коддом Понятие «реляционный» – от англ. relation (отношение, зависимость, связь) Особенности:
ДИАГРАММА «СУЩНОСТЬ – СВЯЗЬ»Методология IDEF1XМетодология IDEF1X (IDEF1 Extended) – язык для семантического моделирования данных, основанных на концепции «сущность-связь». Является расширением стандарта IDEF1. Диаграмма «сущность-связь» ERD (Entity-Relationship Diagram) предназначена для разработки модели данных и обеспечивает стандартный способ определения данных и отношений между ними. Теоретической базой построения информационной модели является теория баз данных типа «сущность-связь». Составляющие модели IDEF1X1) люди, предметы, явления, о которых хранится информация (далее – сущности)2) связи между этими элементами (далее – отношения)3) характеристики этих элементов (далее – атрибуты)СущностьСущность – это множество реальных или абстрактных объектов (людей, мест, событий), обладающих общими атрибутами или характеристиками. Любой объект системы может быть представлен только одной сущностью, которая должна быть уникально идентифицирована. Пример.
Экземпляр сущности – студент Иванов И.И. АтрибутАтрибут – характеристика сущности. Пример.
Экземпляр сущности «студент» (конкретный человек) будет иметь экземпляр атрибута «ФИО» (например, Иванов И.И.) Отношения Отношения – связь между двумя и более сущностями. Именование отношения осуществляется с помощью грамматического оборота глагола (имеет, определяет, …). Правила определения сущностиСущность должна иметь уникальное имя и именоваться существительным в единственном числе. Пример: Студент, Кредитная карта, Договор,…Сущность обладает одним или несколькими атрибутами, которые ей либо принадлежат, либо наследуются через отношения.Сущность обладает одним или несколькими атрибутами, которые однозначно идентифицируют каждый образец сущности и называются ключом (составным ключом). Правила определения сущностиКаждая сущность может обладать любым количеством отношений с другими сущностями. Если внешний ключ целиком используется в составе первичного ключа, то сущность является зависимой от идентификатора. В нотации IDEF1X сущность изображается в виде прямоугольника, в зависимости от уровня представления данных могут быть некоторые различия Графическое представление сущностиРазличают следующие уровни представления сущности: диаграмма «сущность-связь» (ERD), модель данных, основанная на ключах (KB), полная атрибутивная модель (FA) Имя сущности Первичный ключ Неключевые атрибуты Вид сущности на диаграмме ERD Вид сущности на диаграмме FA Правила определения атрибутовКаждый атрибут каждой сущности обладает уникальным именем. Сущность может обладать любым количеством атрибутов. Различают собственные и наследуемые атрибуты. Собственные атрибуты являются уникальными в рамках модели. Наследуемые передаются от сущности-родителя при определении идентифицирующей связи. Ключевые атрибутыКлючевые атрибуты Составной (сложный) ключ ключ, состоящий из нескольких атрибутов Простой ключ ключ, состоящий из одного атрибута Внешний ключ первичный ключ, наследуемый от родительской сущности через специфическое отношение Первичный ключ атрибут или группа атрибутов, однозначно идентифицирующая экземпляр сущности Потенциальный ключ атрибуты, претендующие на роль первичного ключа Альтернативный ключ потенциальный ключ, не ставший первичным Примеры ключевых атрибутов№_зачетнойКнижки – первичный простой ключ; ФИО+дата_рождения – альтернативный ключ ФИО+дата_рождения – первичный составной ключ; №_зачетнойКнижки – альтернативынй ключ КАК РАЗРАБАТЫВАЮТСЯ РЕЛЯЦИОННЫЕ БАЗЫ ДАННЫХ?Почему некоторые поля помещаются сразу в несколько таблиц? Как определить, в какую таблицу нужно поместить конкретное поле? В 1972 году Э. Кодд:
Что такое нормализация?Нормализация – это процесс проверки и реорганизации сущностей и атрибутов с целью удовлетворения требований к реляционной модели данных. В результате проведения нормализации должна быть создана структура данных, при которой информация о каждом факте хранится только в одном месте. Цель устранить аномалии:
НЕОБХОДИМОСТЬ НОРМАЛИЗАЦИИАномалия вставки – ситуация, когда невозможно добавить данные в базу из-за наличия искусственной зависимости между полями таблицы Аномалия удаления – ситуация, когда удаление одних данных приводит к потере других 17 Аномалия обновления – ситуация, когда обновление одного значения требует обновления нескольких строк Виды нормальных формПроцесс нормализации сводится к последовательному приведению данных к нормальным формам – формализованным требованиям к организации данных.Известно 6 нормальных форм:Первая нормальная форма (1НФ); Вторая нормальная форма (2НФ); Третья нормальная форма (3НФ); Нормальная форма Бойса-Кодда (усиленная 3НФ); Четвертая нормальная форма (4НФ); Пятая нормальная форма (5НФ) Обычно ограничиваются приведением данных к 3НФ.Сущность находится в первой нормальной форме тогда и только тогда, когда все атрибуты содержат атомарные значения.Атрибуты «Телефон» и «Хобби» - нарушение первой нормальной формы! Что будет, если у сотрудника будет третье хобби или четвертый телефон? – Информацию негде будет хранить! Если писать через запятую (123-45-67, 123-78-89,…), может не хватить размера поля для записи данных! Для приведения к первой нормальной форме необходимо:Разделить сложные атрибуты на атомарные; Создать новую сущность; Перенести в нее все «повторяющиеся» атрибуты; Выбрать возможный первичный ключ для сущности или создать новый; Установить идентифицирующую связь между сущностями. Виды отношенийа) идентифицирующее отношение Сущность А1 однозначно определяет сущность А2. Ее первичный ключ наследуется в качестве первичного ключа сущностью А2 (внешний ключ) б) неидентифицирующее отношение Сущность А1 связана с сущностью А2, но однозначно не определяет ее. Первичный ключ сущности А1 наследуется в качестве неключевого атрибута сущности А2 в) отношение «многие-ко-многим» (неспецифическое). Сущности А1 и А2 имеют формальную связь, но наследования атрибутов не происходит. Правила отношенийСущность может быть связана с любым количеством других сущностей как в качестве родителя, так и в качестве потомка.Отношение определяется мощностью. Мощность связи служит для обозначения отношения количества экземпляров родительской сущности к числу экземпляров дочерней.Сущность «Сотрудник», приведенная к 1НФ:Сущность находится во 2НФ, если она находится в 1НФ и каждый неключевой атрибут полностью зависит от первичного ключа (не должно быть зависимости от части ключа). Вторая нормальная форма имеет смысл только для сущностей, имеющих сложный первичный ключ.Фамилия, Должность, Имя, Отчество зависят только от табельного номера руководителя, а не от всего составного ключа! Для приведения сущности ко второй нормальной форме следует:Выделить атрибуты, которые зависят только от части первичного ключа, создать новую сущность; Поместить атрибуты, зависящие от части ключа, в их собственную (новую) сущность; Установить идентифицирующую связь между сущностями. Сущность «Проект», приведенная ко второй нормальной форме:Сущность находится в 3НФ, если она находится во 2НФ и никакой неключевой атрибут не зависит от другого неключевого атрибута (не должно быть взаимозависимости между неключевыми атрибутами).Сущность «Сотрудник» находится во второй нормальной форме, но неключевой атрибут «Оклад» зависит от другого неключевого атрибута – «Должности» Для приведения сущности к третьей нормальной форме следует:Создать новую сущность и перенести в нее атрибуты с одной и той же зависимостью от неключевого атрибута; Использовать атрибут(ы), определяющий эту зависимость, в качестве первичного ключа новой сущности; Установить идентифицирующую связь между сущностями. Сущность «Сотрудник», приведенная к 3НФ:Всегда ли хороша нормализация?В результате нормализации все взаимосвязи данных становятся правильно определенными, исключаются аномалии при оперировании данными, модель данных становится легче поддерживать. Однако часто нормализация данных не ведет к повышению производительности ИС в целом (в рассмотренном примере для получения полной информации о сотруднике нужно анализировать не 1 таблицу-сущность, а четыре). В целях повышения производительности приходится сознательно отходить от нормальных форм. В этом случае говорят о денормализации. Трехуровневая архитектура ANSI-SPARCТрехуровневая архитектура:внешний уровень, концептуальный уровень, внутренний уровень. Внешний – уровень, на котором данные воспринимаются пользователем.Внутренний – уровень, на котором данные воспринимаются СУБД и ОС.Концептуальный – отображение внешнего уровня на внутренний, обеспечение необходимой независимости друг от друга.Цель трехуровневой архитектурыКаждый пользователь должен иметь возможность обращаться к одним и тем же данным, реализуя свое собственное представление о них. Каждый пользователь должен иметь возможность изменять свое представление о данных, причем это изменение не должно влиять на других пользователей. Пользователи не должны непосредственно иметь дело с такими подробностями физического хранения данных в базе, как индексирование и хеширование (взаимодействие пользователя с базой не должно зависеть от особенностей хранения в ней данных). АБД должен иметь возможность изменять структуру хранения данных в базе, не оказывая влияния на пользовательские представления. Внутренняя структура БД не должна зависеть от таких изменений физических аспектов хранения информации, как переключение на новое устройство хранения. АБД должен иметь возможность изменять концептуальную структуру БД без какого-либо влияния на всех пользователей. Представление БД с точки зрения пользователей. Этот уровень описывает ту часть БД, которая относится к каждому пользователю. Внешний уровень состоит из нескольких различных внешних представлений БД. Каждый пользователь имеет дело с представлением «реального мира», выраженным в наиболее удобной для него форме. Внешнее представление содержит только те сущности, атрибуты и связи, которые интересны пользователю. Различные представления могут по-разному отображать одни и те же данные. Пример. День в формате DD-MM-YYYY или YYYY-MM-DD Пример. Вычисляемые данные. Представления могут включать комбинированные или производные данные из нескольких объектов. Внешний уровень Концептуальный уровеньОбобщающее представление БД. Этот уровень описывает то, какие данные хранятся в БД, а также связи, существующие между ними.Это уровень содержит логическую структуру всей БД (с точки зрения АБД). Это полное представление требований к данным со стороны организации, которое не зависит от любых соображений относительно способа их хранения.На концептуальном уровне представлены следующие компоненты:все сущности, их атрибуты и связи; накладываемые на данные ограничения; семантическая информация о данных; информация о мерах обеспечения безопасности и поддержки целостности данных. Этот уровень не содержит никаких сведений о методах хранения данных.Пример. Хранит сведения об атрибутах (тип, длина), но не хранит сведений об объеме занятого пространства.Внутренний уровеньФизическое представление БД в компьютере. Этот уровень описывает, как информация хранится в БД.Описывает физическую реализацию БД и предназначен для достижения оптимальной производительности и обеспечения экономного использования дискового пространства.Осуществляется взаимодействие СУБД с методами доступа ОС с целью размещения данных на запоминающих устройствах, создания индексов, извлечения данных и т.д.Хранится следующая информация:распределение дискового пространства для хранения данных и индексов; описание подробностей хранения записей (с указанием реальных размеров сохраняемых элементов данных); сведения о размещении записей; сведения о сжатии данных и выбранных методах шифрования. Физический уровеньНаходится ниже внутреннего уровня. Контролируется ОС, но под управление СУБД.Функции ОС и СУБД на физическом уровне не вполне четко разделены и могут варьироваться от системы к системе.В СУБД могут использоваться многие предусмотренные в данной ОС методы доступа, а могут только самые основные и реализована собственная файловая организация.Физический уровень доступа к данным ниже СУБД состоит только из известных ОС элементов.ПримерОписанием БД является схема БД (создается в процессе проектирования и меняется достаточно редко). Совокупность информации, хранящейся в БД в любой определенный момент времени, называется состоянием БД. SQLЧТО ТАКОЕ SQL?SQL (Structured Query Language – структурированный язык запросов) – это стандартный язык, который используется для взаимодействия с реляционной БД Запрос – это строка, посылаемая базе данных, в ответ на которую пользователю возвращается запрашиваемая информация ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ: КЛИЕНТ-СЕРВЕРНАЯ АРХИТЕКТУРАСОГЛАШЕНИЯ СИНТАКСИСА SQLКаждый запрос начинается с команды Запросы пишутся как обычные предложения Запросы состоят из частей, некоторые части необязательны Элементы языка SQL рекомендуется писать в верхнем регистре (SELECT), но можно в нижнем или смешанном (select, SeLecT) Элементы списка разделяются запятыми Текстовые строки – в апострофах Имена объектов БД должны состоять из букв, цифр и символа подчеркивания Однострочный комментарий: -- Многострочный комментарий: /* … */ КАТЕГОРИИ SQL-ЗАПРОСОВ |