Главная страница
Навигация по странице:

  • Нормализация

  • Нормальные нормы

  • Функциональные зависимости стр 89 лекции №6 + выпиши 4 простейшие вида

  • Внешние ключи и связи

  • Один к одному

  • Неприводимость

  • Наличие значения

  • БИБД. Влад найдин пидарас!!!! Определение бд есть


    Скачать 0.62 Mb.
    НазваниеВлад найдин пидарас!!!! Определение бд есть
    Дата01.02.2023
    Размер0.62 Mb.
    Формат файлаdocx
    Имя файлаBIBD.docx
    ТипДокументы
    #915521

    содержание

    Влад найдин пидарас!!!!

    Определение бд - есть
    Нормализация бд – есть
    Первая и вторые норм формы – нет
    Классификация бд – вроде была
    Функциональные зависимости - есть
    Модели Бд – чтото вроде есть
    Реляционная модель+ ее части - есть
    Два базовых требования сущности - есть
    Внешний ключ – есть
    Механизм манипулирования данными - есть
    Отношение - есть
    Заголовок, тело и тд – есть
    Атрибут отношения – есть
    кОрТеЖи – спросить у Игоря Бадюкова
    совместимость отношений – нету
    Отличие таблиц от отношений – спросить у Игоря Бадюкова
    Трехзначная логика – есть
    Множества – есть
    Декартово – есть
    Армстронг – есть
    WFF – YES I HAVE
    ПИРАМИДА – ЕСТЬ!
    ОСНОВНЫЕ СТРАТЕГИИ – ЕСТЬ!!

    База данных

    База данных – это единое, большое хранилище данных, которое однократно определяется, а затем используется одновременно многими пользователями. База данных уже не принадлежит какому-либо единственному отделу, а является общим корпоративным ресурсом. Причем база данных хранит не только рабочие данные этой организации, но и их описания. По этой причине базу данных еще называют набором интегрированных записей с самоописанием. В совокупности, описание данных называется системным каталогом (system catalog), а сами элементы описания принято называть метаданными (meta-data), т.е. ”данными о данных”. Именно наличие самоописания данных в базе обеспечивает в ней независимость между программами и данными. В подходе с использованием баз данных, структура данных отделена от приложений и хранится в базе данных. Добавление новых структур данных или изменение существующих никак не влияет на приложения, при условии, что они не зависят непосредственно от изменяемых компонентов.

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

    – позволяет определять базу данных, что обычно осуществляется с помощью языка описания (определения) данных (DDL – Data Definition Language), который предоставляет пользователям средства указания типов данных, а также средства задания ограничений для информации, хранимой в базе данных.

    – позволяет вставлять, обновлять, удалять и извлекать информацию из базы данных, что обычно осуществляется с помощью языка манипулирования (управления) данными (DML – Data Manipulation Language).

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

    Существует две разновидности языков DML – процедурные и непроцедурные, которые отличаются между собой способом извлечения данных. Основное отличие между ними заключается в том, что процедурные языки обрабатывают информацию в базе данных последовательно, запись за записью, а непроцедурные оперируют сразу целыми наборами записей. Поэтому с помощью процедурных языков DML обычно указывается то, как можно получить желаемый результат, тогда как непроцедурные языки используются для описания того, что следует получить. Наиболее распространенным типом непроцедурного языка является язык 8 структурированных запросов (Structured Query Language, SQL), который в настоящее время определяется специальным стандартом и, фактически, является обязательным языком для любых реляционных СУБД.

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

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

    Нормализация

    Нормализация представляет процесс разделения данных по отдельным связанным таблицам. Нормализация устраняет избыточность данных (data redundancy) и тем самым избежать нарушения целостности данных при их изменении, то есть избежать аномалий изменения (update anomaly).

    Нормальные нормы

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

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

    Третья нормальная форма (3NF) предполагает, что каждый столбец, не являющийся ключом, должен зависеть только от первичного ключа.

    Нормальная форма Бойса-Кодда (BCNF) является немного более строгой версией третьей нормальной формы.

    Четвертая нормальная форма (4NF) применяется для устранения многозначных зависимостей (multivalued dependencies) - таких зависимостей, где столбец с первичным ключом имеет связь один-ко-многим со столбцом, который не является ключом. Эта нормальная форма устраняет некорректные отношения многие-ко-многим.

    Пятая нормальная форма (5NF) разделяет таблицы на более малые таблицы для устранения избыточности данных. Разбиение идет до тех пор, пока нельзя будет воссоздать оригинальную таблицу путем объединения малых таблиц.

    Шестая нормальная форма (domain key normal form / 6NF). Каждое ограничение в связях между таблицами должно зависеть только от ограничений ключа и ограничений домена, где домен представляет набор допустимых значений для столбца. Эта форма предотвращает добавление недопустимых данных путем установки ограничения на уровне отношений между таблицами, но не на уровне таблиц или столбцов. Данная форма, как правило, не применима на уровне СУБД, в том числе и в SQL Server.

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

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

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

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



    Функциональные зависимости стр 89 лекции №6 + выпиши 4 простейшие вида(там дохуища)

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

    По модели представления данных БД классифицируются как: – картотеки; – сетевые БД; – иерархические БД; – реляционные БД; – многомерные БД; – объектно-ориентированные БД; – дедуктивные БД.

    В настоящее время наибольшее распространение получили реляционные базы данных.

    Реляционная БД – БД, основанная на реляционной модели. Теория реляционных баз данных была разработана доктором Коддом из компании IBM в 1970 году. В реляционных БД все данные представлены в виде простых таблиц, разбитых на строки и столбцы, на пересечении которых расположены данные. 30 Запросы к таким таблицам возвращают таблицы, которые сами могут становиться предметом дальнейших запросов. Каждая база данных может включать несколько таблиц. Кратко особенности реляционных БД можно сформулировать следующим образом: – Данные хранятся в таблицах, состоящих из столбцов («атрибутов») и строк («записей», «кортежей»). – На пересечении каждого столбца и строчки стоит в точности одно значение. – У каждого столбца есть своё имя, которое служит его названием, и все значения в одном столбце имеют один тип. – Запросы к базе данных возвращают результат в виде таблиц, которые тоже могут выступать как объект запросов. – Строки в реляционной базе данных неупорядочены – упорядочивание производится в момент формирования ответа на запрос. Общепринятым стандартом языка работы с реляционными базами данных является язык SQL.

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

    единственной структурой данных, используемой в реляционных БД, является нормализованное n-арное отношение

    Внешние ключи и связи (полезный абзац оставлю весь)

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

    При выделении связи выделяют главную или родительскую таблицу (primary key table / master table) и зависимую, дочернюю таблицу (foreign key table / child table). Дочерняя таблица зависит от родительской.

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

    Связи между таблицами бывают следующих типов:

    • Один к одному (One to one)

    • Один к многим (One to many)

    • Многие ко многим (Many to many)

    суперключ

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

    Candidate key (потенциальный ключ) - представляет собой минимальный суперключ отношения (таблицы), то есть набор атрибутов, который удовлетворяет ряду условий:

    • Неприводимость: он не может быть сокращен, он содержит минимально возможный набор атрибутов

    • Уникальность: он должен иметь уникальные значения вне зависимости от изменения строки

    • Наличие значения: он не должен иметь значения NULL, то есть он обязательно должен иметь значение.

    Первичный ключ (primary key) непосредственно применяется для идентификации строк в таблице. Он должен соответствовать следующим ограничениям:

    Если же у нас есть несколько потенциальных ключей, то те потенциальные ключи, которые не составляют первичный ключ, являются альтернативными ключами (alternative key).

    5.2.10 Настройка Настройка БД – это реконструкция БД с целью улучшения ее производительности. Процесс настройки является непрерывным в течение периода жизненного цикла БД, поэтому наличие соответствующих средств и механизмов настройки является важным требованием к БД и СУБД. Выполняет настройку администратор БД. Эффективность настройки определяется наличием двух факторов: 1) физической независимости данных; 2) автоматического управления БД, обеспечивающего возможность выполнения требуемой настройки. Данное требование тесно связано с требованием обеспечения связи с прошлым.

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

    6.3.1 Состав реляционной модели данных Cогласно К. Дейту реляционная модель состоит из трех частей:

    – Структурной части.

    – Целостной части.

    – Манипуляционной части.

    6.3.1.1 Структурная часть описывает, какие объекты рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные n-арные отношения.

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

    6.3.1.3 Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными – реляционную алгебру и реляционное исчисление.

    6.5.2 Требования целостности сущности В целостной части реляционной модели данных фиксируются два базовых требования целостности, которые должны поддерживаться в любой реляционной СУБД. Первое требование называется требованием целостности сущности (entity integrity). Объекту или сущности реального мира в реляционных БД соответствуют кортежи отношений. Конкретно требование состоит в том, что любой кортеж любого значения-отношения любой переменной отношения должен быть отличим от любого другого кортежа этого значения отношения по составным значениям заранее определенного множества атрибутов переменной отношения, т. е., другими словами, любая переменная отношения должна обладать первичным ключом. Как описано выше, это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений. На самом деле, требование целостности сущности полностью звучит следующим образом: у любой переменной отношения должен существовать первичный ключ, и никакое значение первичного ключа в кортежах значенияотношения переменной отношения не должно содержать неопределенного значения (NULL).

    Манипулирования

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

    Отношения

    Подмножество R декартового произведения множеств A1´ A2´ …´ An называется отношением степени n (n-арным отношением). Определение 7. Мощность множества кортежей, входящих в отношение R, называют мощностью отношения R. Понятие отношения фактически лежит в основе всей реляционной теории баз данных. Как будет показано ниже, отношения являются математическим аналогом таблиц. Сам термин "реляционное представление данных", впервые введенный Коддом, происходит от термина relation, понимаемом именно в смысле этого определения. Т.к. любое множество можно рассматривать как декартовое произведение степени 1, то любое подмножество, как и любое множество, можно считать отношением степени 1. Это свидетельствует лишь о том, что термины "отношение степени 1" и "подмножество" являются синонимами. Нетривиальность понятия отношения проявляется, когда степень отношения больше 1. Ключевыми здесь являются два момента. Во-первых, все элементы отношения есть однотипные кортежи. Однотипность кортежей позволяет считать их аналогами строк в простой таблице, т.е. в таблице, в которой все строки состоят из одинакового числа ячеек и в соответствующих ячейках содержатся одинаковые типы данных. Например, отношение, состоящее из трех следующих кортежей {(1, "Иванов", 1000), (2, "Петров", 2000), (3, "Сидоров", 3000)} можно считать таблицей, содержащей 3 данные о сотрудниках и их зарплатах. Такая таблица будет иметь три строки и три колонки, причем в каждой колонке содержатся данные одного типа. В противоположность этому рассмотрим множество {(1), (1, 2), (1, 2, 3)}, состоящее из разнотипных числовых кортежей. Это множество не является отношением ни в R, ни в R2 , ни в R3 . Из кортежей, входящих в это множество нельзя составить простую таблицу. Правда, можно считать это множество отношением степени 1 на множестве всех возможных числовых кортежей всех возможных степеней, но такая трактовка ничего нового, по сравнению с понятием подмножества, не дает. Во-вторых. За исключением крайнего случая, когда отношение есть само декартово произведение A1´ A2´ …´ An, отношение включает в себя не все возможные кортежи из декартового произведения. Это значит, что для каждого отношения имеется критерий, позволяющий определить, какие кортежи входят в отношение, а какие – нет. Этот критерий, по существу, определяет для нас смысл (семантику) отношения. Действительно, каждому отношению можно поставить в соответствие некоторое логическое выражение P(x1, x2, … ,xn), зависящее от n параметров (n-местный предикат) и определяющее, будет ли кортеж (a1, a2, …, an) принадлежать отношению R. Это логическое выражение называют предикатом отношения R. Более точно, кортеж (a1, a2, …, an ) принадлежит отношению R тогда и только тогда, когда предикат этого отношения P(a1, a2, …, an ) принимает значение "истина". В свою очередь, каждый n-местный предикат задает некоторое n-арное отношение. Таким образом, существует взаимно однозначное соответствие между n-арными отношениями и n-местными предикатами. Если это не вызывает путаницы, удобно и отношение, и его предикат обозначать одной и той же буквой. Например, отношение R имеет предикат R(x1, x2, … ,xn),

    Заголовок отношения содержит фиксированное количество атрибутов отношения: (,< A2:D2>,…,< An:Dn>)

    Тело отношения содержит множество кортежей отношения. Каждый кортеж отношения представляет собой множество пар вида : (,< A2:Val2>,…,< An:Valn>), таких, что значение Vali атрибута Ai принадлежит домену Di.

    Определение 1. Атрибут отношения есть пара вида



    Упорядоченные n-ки иначе называют наборы или кортежи

    Трехзначная логика

    При сравнении выражений, содержащих null-значения, результат также может быть неизвестен, например, значение истинности для выражения a=b есть null, если один или оба аргумента есть null. Таким образом, определение 24 истинности логических выражений базируется на трехзначной логике (threevalued logic, 3VL), в которой кроме значений T – ИСТИНА и F – ЛОЖЬ, введено значение U – НЕИЗВЕСТНО. Логическое значение U – это то же самое, что и null-значение. Трехзначная логика базируется на следующих таблицах истинности



    6.2.2 Операции над множествами



    6.4.2 Домены Понятие домена более специфично для баз данных, хотя и имеются аналогии с подтипами в некоторых языках программирования. Более того, в своем «Третьем манифесте» Кристофер Дейт и Хью Дарвен вообще ликвидируют различие между доменом и типом данных. В общем виде домен определяется путем задания некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу этого типа данных (ограничения домена). Элемент данных является элементом домена в том и только в том случае, если вычисление этого логического выражения дает результат истина (для логических значений мы будем попеременно использовать обозначения истина и ложь или true и false). С каждым доменом связывается имя, уникальное среди имен всех доменов соответствующей базы данных. В реляционной модели данных с понятием тип данных тесно связано понятие домена, которое можно считать уточнением типа данных. Домен – это семантическое понятие. Домен можно рассматривать как подмножество значений некоторого типа данных имеющих определенный смысл. Домен характеризуется следующими свойствами: – Домен имеет уникальное имя (в пределах базы данных). – Домен определен на некотором простом типе данных или на другом домене. – Домен может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для данного домена. – Домен несет определенную смысловую нагрузку. Если тип данных можно считать множеством всех возможных значений данного типа, то домен напоминает подмножество в этом множестве. Отличие домена от понятия подмножества состоит именно в том, что домен отражает семантику, определенную предметной областью. Может быть несколько доменов, совпадающих как подмножества, но несущие различный смысл. Например, домены "Вес детали" и "Имеющееся количество" можно одинаково описать как множество неотрицательных целых чисел, но смысл этих доменов будет различным, и это будут различные домены. Основное значение доменов состоит в том, что домены ограничивают сравнения. Некорректно, с логической точки зрения, сравнивать значения из различных доменов, даже если они имеют одинаковый тип. В этом проявляется смысловое ограничение доменов. Синтаксически правильный запрос "выдать список всех деталей, у которых вес детали больше имеющегося количества" не соответствует смыслу понятий "количество" и "вес". Понятие домена помогает правильно моделировать предметную область. При работе с реальной системой в принципе возможна ситуация когда требуется ответить на запрос, приведенный выше. Система даст ответ, но, вероятно, он будет бессмысленным. Не все домены обладают логическим условием, ограничивающим возможные значения домена. В таком случае множество возможных значений домена совпадает с множеством возможных значений типа данных.

    Родительские и дочерние отношения

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

    Аксиомы Армстронга



    Правильно построенная формула (Well-Formed Formula, WFF) служит для выражения условий, накладываемых на кортежные переменные.


    Пирамида взаимосвязи



    Стратегии поддержания ссылочной целостности

    6.5.5 Стратегии поддержания ссылочной целостности Существуют две основные стратегии поддержания ссылочной целостности: · RESTRICT (ОГРАНИЧИТЬ) – не разрешать выполнение операции, приводящей к нарушению ссылочной целостности. Это самая простая стратегия, требующая только проверки, имеются ли кортежи в дочернем отношении, связанные с некоторым кортежем в родительском отношении. · CASCADE (КАСКАДИРОВАТЬ) – разрешить выполнение требуемой операции, но внести при этом необходимые поправки в других отношениях так, чтобы не допустить нарушения ссылочной целостности и сохранить все имеющиеся связи. Изменение начинается в родительском отношении и каскадно выполняется в дочернем отношении. В реализации этой стратегии имеется одна тонкость, заключающаяся в том, что дочернее отношение само может быть родительским для некоторого третьего отношения. При этом может дополнительно потребоваться выполнение какой-либо стратегии и для этой связи и т.д. Если при этом какая-либо из каскадных операций (любого уровня) не может быть выполнена, то необходимо отказаться от первоначальной операции и вернуть базу данных в исходное состояние. Это самая сложная стратегия, но она хороша тем, что при этом не нарушается связь между кортежами родительского и дочернего отношений. Эти стратегии являются стандартными и присутствуют во всех СУБД, в которых имеется поддержка ссылочной целостности. 34 Можно рассмотреть дополнительные стратегии поддержания ссылочной целостности: · SET NULL (УСТАНОВИТЬ В NULL) – разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на null-значения. Эта стратегия имеет два недостатка. Вопервых, для нее требуется допустить использование null-значений. Во-вторых, кортежи дочернего отношения теряют всякую связь с кортежами родительского отношения. Установить, с каким кортежем родительского отношения были связаны измененные кортежи дочернего отношения, после выполнения операции уже нельзя. · SET DEFAULT (УСТАНОВИТЬ ПО УМОЛЧАНИЮ) – разрешить выполнение требуемой операции, но все возникающие некорректные значения внешних ключей изменять на некоторое значение, принятое по умолчанию. Достоинство этой стратегии по сравнению с предыдущей в том, что она позволяет не пользоваться null-значеними. Недостатки заключаются в следующем. Во-первых, в родительском отношении должен быть некий кортеж, потенциальный ключ которого принят как значение по умолчанию для внешних ключей. В качестве такого "кортежа по умолчанию" обычно принимают специальный кортеж, заполненный нулевыми значениями (не null-значениями!). Этот кортеж нельзя удалять из родительского отношения, и в этом кортеже нельзя изменять значение потенциального ключа. Таким образом, не все кортежи родительского отношения становятся равнозначными, поэтому приходится прилагать дополнительные усилия для отслеживания этой неравнозначности. Это плата за отказ от использования null-значений. Вовторых, как и в предыдущем случае, кортежи дочернего отношения теряют всякую связь с кортежами родительского отношения. Установить, с каким кортежем родительского отношения были связаны измененные кортежи дочернего отношения, после выполнения операции уже нельзя. В некоторых реализация СУБД рассматривается еще одна стратегия поддержания ссылочной целостности: · IGNORE (ИГНОРИРОВАТЬ) – выполнять операции, не обращая внимания на нарушения ссылочной целостности. Конечно, это не стратегия, а отказ от поддержки ссылочной целостности. В этом случае в дочернем отношении могут появляться некорректные значения внешних ключей, и вся ответственность за целостность базы данных ложится на пользователя. В дополнение к приведенным стратегиям пользователь может придумать свою уникальную стратегию поддержания ссылочной целостности.


    написать администратору сайта