Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_PM_Final.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
963 Кб
Скачать
☆

55. Библиотечные функции sql. Групповые функции.

работают над мн–ом сторок и выдают один результат на группу. Исп–ть в select и having.

AVG(DISTINCT|ALL|n) – Среднее значение n без учета неопределенных значений, COUNT(DISTINCT|ALL|выражение|*) – Количество строк только с определенными результатами вычисления выражения. По "*" подсчитываются все строки, включая повторяющиеся и строки с неопределенными значениями, MAX(DISTINCT|ALL| выражение) – Максимальное значения выражения , MIN(DISTINCT|ALL| выражение) – Минимальное значения выражения выражения, STDDEV(DISTINCT|ALL|n) – Стандартное отклонение n без учета неопределенных значений, SUM(DISTINCT|ALL|n) – Сумма значений n без учета неопределенных значений, VARIANCE(DISTINCT|ALL|n) – Дисперсия n без учета неопределенных значений.

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

Рассмотрим отношение FIRST (S#, STATUS, CITY, P#, Q). отношение FIRST является «плохим» в смысле наличия избыточности и аномалий. Действительно рассмотрим произвольное тело отношения FIRST

Очевидная избыточность в отношении FIRST приводит к различным аномалиям обновления. Для определенности рассмотри избыточность типа поставщик – город, которая очевидно вытекает из ФЗ S#–>CITY

1. INSERT (аномалия вставки)

Ограничение S#–>CITY означает, что нельзя вставить данные о том, что некоторый поставщик находится в некотором городе до тех пор, пока этот поставщик не поставит хотя бы один товар (P# не NULL).

2. DELETE. Если удалить один из кортежей для некоторого поставщика в связи с отменой поставки товара, то может удалиться не только поставка товара, но и поставщик.

3. UPDATE. Название города для одного поставщика повторяется множество раз, т.е. данное повторение приводит к возникновению проблем при обновлении данных. Например, если поставщик S1 переходит из Самары в Томск, система вынуждена переправлять все строки. Либо эту проблему нужно искать с помощью поисковой системы либо вручную. Таким образом, решение рассмотренных выше проблем заключается в декомпозиции исходного отношения FIRST на несколько проекций.

Например:

SECOND (S#, STATUS, CITY) <– FIRST –> SP (S#, P#, Q)

Действительно, если рассмотреть теперь тело отношения SECOND

Легко проверить что отношение SECOND не испытывает тех проблем какие были отмечены в отношении FIRST. Действительно:

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

2. DELETE. Можно любую поставку из SP удалить и это же отразится в SECOND.

3. UPDATE. – любой поставщик, переехавший в другой город, потребует редактирования только одной строки.

57. Функциональные зависимости. Примеры.

Многочисленные примеры реализации связей между отношениями типа многие–к–одному (один–ко–многим)это по сути взаимодействие между множествами атрибутов.

Любое отношение, по определению характеризуется заголовком и телом отношения. При этом одно из уникальных свойств отношения как структуры данных – это статичность и неизменность заголовка и динамичность тела, т е применительно к телу отношения необходимо различать значение этого отношения в какой то конкретный момент времени и набор всех возможных допустимых значений этого отношения. 2 случай – отношение–переменная. Тогда можно дать следующее определение. Пусть R(A1,A2...An) – произвольное отношение с атрибутами A1,A2...An. X,Y принадлежат подмножеству атрибутов A1,A2...An. Тогда Y функционально зависит от X, если каждое значение из множества X в точности связано только с одним значением из множества Y. Функциональная зависимость обозначается XY : Y функционально зависит от X или X функционально определяет Y.

Например: отношение SCP(S#,City,P#,Q), тогда подмножества , аналогично можно сказать что в этом отношении выполняются след фз:

....................

Определение функциональной зависимости говорит о том, что если 2 кортежа относительно R совпадают по атрибутам из Х, то они однозначно совпадают по атрибутам из Y. Связь между определением потенциального ключа и определением функциональной зависимости: левая и правая части функциональной зависимости принято называть детерминантом и зависимой частью. Неплохо было бы чтобы детерминант был ключом. В записи функциональной зависимости подмножество, которое включает один атрибут называется одноэлементный.

Определение 2. (отношения–переменные). Пусть R(A1,A2...An) –отношение–переменная, X,Y – произвольное подмножество атрибутов, тогда Х будет функционально зависеть от Y т и т т к для любого допустимого значения R каждое значение из Х в точности связано с одним значением из Y, т е для любого допустимого значения отношения R, если 2 кортежа совпадают по значению Х, они совпадают и по значению Y.

Из определения следует, если Х – потенциальный ключ, то все остальные атрибуты отношения R автоматически должны быть функционально зависимы от Х. учитывая это ФЗ фактически означает механизм задания ограничения целостности на отношение. Если отношение R удовлетворяет ФЗ АВ и одновременно при этом А – не потенциальный ключ, то R однозначно характеризуется некоторой избыточностью данных.

Опр. ФЗ тривиальна т и т т к зависимая часть является подмножеством детерминанта.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]