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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

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

Понятие нормализации БД. Свойства нормальных форм

Под нормализацией отношения подразумевается процесс приведения отношения к одной из так называемых нормальных форм

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

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

1-я НФ (обычно обозначается также 1НФ).

2НФ.

3НФ.

НФ Бойса-Кодда (НФБК).

4НФ.

5НФ.

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

Характеристика 1НФ, 2НФ, 3НФ

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

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

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

 

Функции СУБД

1. Управление данными непосредственно в БД

2. Управление данными в памяти компьютера (кэширование данных)

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

3. Управление транзакциями

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

Транзакция выполняется в оперативной памяти. Если она выполнена успешно, то СУБД вносит соответствующее изменение на диске. В обратном случае изменения не влияет на состояние БД.

4. Поддержка языков БД

5. Управление изменениями в БД и протоколирование (журнализация). Данная функция обеспечивает надежность хранения данных и возможность восстановления состояния БД в аварийных ситуациях. В протоколе изменений (журнал транзакций) перед манипуляциями делается запись. Для восстановления БД после сбоя используется протокол (журнал) и архивная копия БД (полная копия БД к моменту начала заполнения протокола).

Компоненты СУБД

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

2. Блок памяти:

- блок файлов, контролирующиф расположение файлов на диске

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

3) Компилятор запросов- обрабатывает обращение к СУБД

4) Запросы- изменения данных

5) Модификация данных- запросы по изменению данных

6) Модификация схемы- запросы по изменению структуры БД, таблиц, представлений

7) Схема данных- вся совокупность таблиц

8) Блок транзакций- отвечает за целостность системы, взаимодействует с компилятором запросов и блоком памяти.

Классификация СУБД

Классификация СУБД

Признак классификации Тип СУБД Ключевые признаки
По количеству пользователей 1 - пользовательская В конкретный момент времени с БД работает 1 пользователь
  Многопользовательская БД рабочей группы Число пользователей менее 50 человек
  Многопользовательская БД предприятия Число пользователей более 50 человек
По месту размещения базы данных Централизованная БД на одной машине
  Распределенная БД распределена в компьютерной сети
По модели данных Сетевые CODASYL (CODASYL (англ. COnference on DAta SYstems Language — Конференция по языкам систем обработки данных) — организация (название произносится «кодасил»), принимавшая активное участие в эволюции информационных технологий в 60-80-е годы XX века. Основана в 1959 для разработки стандартного языка программирования, этот язык получил название COBOL. В настоящее время конференция расформирована) Иерархические IMS Реляционные Многомерные Объектно-ориентированные  
По способу применения и сфере использования Транзакционная (оперативные) OLTP - системы (On line transaction processing) СУБД работает с БД, в которой для транзакций отводится минимальное время. Запросы к базе данных должны отображаться в наикратчайшие сроки
  Хранилище данных OLAP системы(On line analytical processing) СУБД работает с БД, предназначенной для получения необходимой информации при выработке стратегических или тактических решений. Для выполнения анализа информации.
Архитектура Клиент-сервер Сервер обеспечивает основные функции СУБД, клиент – поддерживает интерфейс пользователя с сервером

 

Транзакция. Свойство транзакции

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

Транзакция выполняется в оперативной памяти. Если она выполнена успешно, то СУБД вносит соответствующее изменение на диске. В обратном случае изменения не влияет на состояние БД.

Свойства транзакий.

1. Атомарность- выполняется либо целиком, либо не выполняется

2. Согласованность- транзакция переводит БД из одного целостного состояния в другое, но внутри транзакции целостное состояние может нарушаться

3. Изолированность- тр-ции различных пользователей не должны мешать друг другу

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

 

Типы команд SQL

Типы команд языка

 

DDl - язык определения данных

 

CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE VIEW, ALTER VIEW, DROP VIEW, CREATE INDEX, DROP INDEX

DML – язык манипулирования данными

INSERT, UPDATE, DELETE

DQL – язык запросов к данным

SELECT

DCL – язык управления данными, либо команды администрирования данных

CREATE DATABASE, ALTER DATABASE, DROP DATABASE, GRANT (предоставление прав доступа для действий над заданными объектами БД), REVOKE (лишение прав доступа для действий над заданными объектами БД) и др.

Команды администрирования данных- предоставляют возможность аудита и анализа операций внутри БД. Могут использоваться при анализе производительности системы данных в целом.

START AUDIT, STOP AUDIT

Команды управления транзакциями – позволяют выполнить обработку информации, объединенной в транзакцию

 

COMMIT, ROLLBACK, SAVE POINT, SET TRANSACTION (назначение имени транзакции)

Процедурный язык

DECLARE, OPEN, FETCH, CLOSE, EXECUTE и др.

 

19. Типы данных SQL. Функции SQL.

Типы данных

 

Тип данных Объявления
Символьный CHAR | VARCHAR
Битовый BIT | BIT VARYING
Точные числа NUMERIC | DECIMAL | INTEGER | SMALLINT
Округленные числа FLOAT | REAL | DOUBLE PRECISION
Дата/время DATE | TIME | TIMESTAMP

 

Некоторые наиболее употребительные встроенные функции:

 

ABS* вычисляет абсолютное значение числа
ACOS вычисляет арккосинус
ASIN вычисляет арксинус
ATAN вычисляет арктангенс
CEILING выполняет округление вверх
COS вычисляет косинус угла
COT возвращает котангенс угла
DEGREES преобразует значение угла из радиан в градусы
EXP возвращает экспоненту
FLOOR выполняет округление вниз
LOG* вычисляет натуральный логарифм
LOG10 вычисляет десятичный логарифм
PI возвращает значение «пи»
POWER возводит число в степень
RADIANS преобразует значение угла из градуса в радианы
RAND возвращат случайное число
ROUND* выполняет округление с заданной точностью
SIGN определяет знак числа
SIN* вычисляет синус угла
SQUARE выполняет возведение числа в квадрат
SQRT* извлекает квадратный корень
TAN возвращает тангенс угла

 

ASCII возвращает код ASCII левого символа строки
CHAR по коду ASCII возвращает символ
CHARINDEX определяет порядковый номер символа, с которого начинается вхождение подстроки в строку
DIFFERENCE возвращает показатель совпадения строк
LEFT* возвращает указанное число символов с начала строки
LEN* возвращает длину строки
LOWER* переводит все символы строки в нижний регистр
LTRIM* удаляет пробелы в начале строки
NCHAR возвращает по коду символ Unicode
PATINDEX выполняет поиск подстроки в строке по указанному шаблону
REPLACE заменяет вхождения подстроки на указанное значение
QUOTENAME конвертирует строку в формат Unicode
REPLICATE выполняет тиражирование строки определенное число раз
REVERSE возвращает строку, символы которой записаны в обратном порядке
RIGHT возвращает указанное число символов с конца строки
RTRIM удаляет пробелы в конце строки
SPACE возвращает указанное число пробелов
STR выполняет конвертирование значения числового типа в символьный формат
STUFF удаляет указанное число символов, заменяя новой подстрокой
SUBSTRING возвращает для строки подстроку указанной длины с заданного символа
UNICODE возвращает Unicode-код левого символа строки
UPPER переводит все символы строки в верхний регистр

 

DATEADD добавляет к дате указанное значение дней, месяцев, часов и т.д.
DATEDIFF возвращает разницу между указанными частями двух дат
DATENAME выделяет из даты указанную часть и возвращает ее в символьном формате
DATEPART выделяет из даты указанную часть и возвращает ее в числовом формате
DAY* возвращает число из указанной даты
GETDATE* возвращает текущее системное время
MONTH* возвращает значение месяца из указанной даты
YEAR* возвращает значение года из указанной даты

 



Поделиться:


Последнее изменение этой страницы: 2016-04-21; просмотров: 526; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.238.20 (0.015 с.)