Лабораторная работа 3 Реляционная модель бд данные хранятся в виде двумерных таблиц Таблицы обладают следующими свойствами
Скачать 62.04 Kb.
|
Базы данныхЛабораторная работа 3Реляционная модель БДданные хранятся в виде двумерных таблиц Таблицы обладают следующими свойствами: - каждая ячейка таблицы является одним элементом данных;- каждый столбец содержит данные одного типа (числа, текст и т. п.);- каждый столбец имеет уникальное имя;- таблицы организуются так, чтобы одинаковые строки отсутствовали;- порядок следования строк и столбцов произвольный.Для идентификации записей выделяют следующие виды ключей – полей, определяющих запись: - первичный: однозначно определяет запись;- вторичный: выполняет роль поисковых и группировочных признаков и позволяет найти несколько записей.Первичный ключ должен обладать следующими свойствами:- уникальность: не должно существовать двух или более записей, имеющих одинаковые значения полей, входящих в первичный ключ;- не избыточность: первичный ключ не должен содержать поля, удаление которых из ключа не нарушит его уникальностьДостоинства реляционной модели:простота и доступность для понимания пользователем. Единственной используемой информационной конструкцией является "таблица"; строгие правила проектирования, базирующиеся на математическом аппарате; полная независимость данных. Изменения в прикладной программе при изменении реляционной БД минимальны; для организации запросов и написания прикладного ПО нет необходимости знать конкретную организацию БД во внешней памяти Недостатки реляционной модели:далеко не всегда предметная область может быть представлена в виде "таблиц"; в результате логического проектирования появляется множество "таблиц". Это приводит к трудности понимания структуры данных; БД занимает относительно много внешней памяти; относительно низкая скорость доступа к данным. Целостность базы данныхсоответствие имеющейся в базе данных информации её внутренней логике, структуре и всем явно заданным правилам. Каждое правило, налагающее некоторое ограничение на возможное состояние базы данных, называется ограничением целостности. Сущностная целостность - определяет строку как уникальную сущность в конкретной таблице. Она обеспечивает целостность столбцов идентификаторов или первичного ключа таблицы с помощью индексов и ограничений UNIQUE или PRIMARY KEY. Доменная целостность - это достоверность записей в конкретном столбце. Она включает ограничения типа данных, ограничения формата при помощи ограничений CHECK и правил, а также ограничения диапазона возможных значений при помощи ограничений FOREIGN KEY, CHECK, DEFAULT, определений NOT NULL и правил. Ссылочная целостность - сохраняет определенные связи между таблицами при добавлении или удалении строк При обеспечении ссылочной целостности SQL Server не допускает следующих действий пользователей: - Добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки;- Изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице;- Удаления строк из первичной таблицы, если имеются соответствующие ей строки в связанных таблицах.Пользовательская целостность - позволяет определять бизнес-правила, не входящие ни в одну из категорий целостности. Поддержку пользовательской целостности обеспечивают все остальные категории целостности: любые типы ограничений уровня столбца и уровня таблицы в инструкции CREATE TABLE, хранимых процедурах и триггерах. Типы данных https://metanit.com/sql/sqlserver/3.3.phpЧисловые типы данных Типы данных, представляющие дату и время Строковые типы данных Бинарные типы данных Остальные типы данных Числовые типы данныхBIT: хранит значение 0 или 1. Фактически является аналогом булевого типа в языках программирования. Занимает 1 байт. TINYINT: хранит числа от 0 до 255. Занимает 1 байт. Хорошо подходит для хранения небольших чисел. SMALLINT: хранит числа от –32 768 до 32 767. Занимает 2 байта INT: хранит числа от –2 147 483 648 до 2 147 483 647. Занимает 4 байта. Наиболее используемый тип для хранения чисел. BIGINT: хранит очень большие числа от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, которые занимают в памяти 8 байт. DECIMAL: хранит числа c фиксированной точностью. Занимает от 5 до 17 байт в зависимости от количества чисел после запятой. NUMERIC: данный тип аналогичен типу DECIMAL. SMALLMONEY: хранит дробные значения от -214 748.3648 до 214 748.3647. Предназначено для хранения денежных величин. Занимает 4 байта. Эквивалентен типу DECIMAL(10,4). MONEY: хранит дробные значения от -922 337 203 685 477.5808 до 922 337 203 685 477.5807. Представляет денежные величины и занимает 8 байт. Эквивалентен типу DECIMAL(19,4). FLOAT: хранит числа от –1.79E+308 до 1.79E+308. Занимает от 4 до 8 байт в зависимости от дробной части. Может иметь форму опредеения в виде FLOAT(n), где n представляет число бит, которые используются для хранения десятичной части числа (мантиссы). По умолчанию n = 53. REAL: хранит числа от –340E+38 to 3.40E+38. Занимает 4 байта. Эквивалентен типу FLOAT(24). Типы данных, представляющие дату и времяDATE: хранит даты от 0001-01-01 (1 января 0001 года) до 9999-12-31 (31 декабря 9999 года). Занимает 3 байта. TIME: хранит время в диапазоне от 00:00:00.0000000 до 23:59:59.9999999. Занимает от 3 до 5 байт. Может иметь форму TIME(n), где n представляет количество цифр от 0 до 7 в дробной части секунд. DATETIME: хранит даты и время от 01/01/1753 до 31/12/9999. Занимает 8 байт. DATETIME2: хранит даты и время в диапазоне от 01/01/0001 00:00:00.0000000 до 31/12/9999 23:59:59.9999999. Занимает от 6 до 8 байт в зависимости от точности времени. Может иметь форму DATETIME2(n), где n представляет количество цифр от 0 до 7 в дробной части секунд. SMALLDATETIME: хранит даты и время в диапазоне от 01/01/1900 до 06/06/2079, то есть ближайшие даты. Занимает от 4 байта. DATETIMEOFFSET: хранит даты и время в диапазоне от 0001-01-01 до 9999-12-31. Сохраняет детальную информацию о времени с точностью до 100 наносекунд. Занимает 10 байт. Строковые типы данныхCHAR: хранит строку длиной от 1 до 8 000 символов. На каждый символ выделяет по 1 байту. Не подходит для многих языков, так как хранит символы не в кодировке Unicode. Количество символов, которое может хранить столбец, передается в скобках. Например, для столбца с типом CHAR(10) будет выделено 10 байт. И если мы сохраним в столбце строку менее 10 символов, то она будет дополнена пробелами. VARCHAR: хранит строку. На каждый символ выделяется 1 байт. Можно указать конкретную длину для столбца - от 1 до 8 000 символов, например, VARCHAR(10). Если строка должна иметь больше 8000 символов, то задается размер MAX, а на хранение строки может выделяться до 2 Гб: VARCHAR(MAX). Не подходит для многих языков, так как хранит символы не в кодировке Unicode. В отличие от типа CHAR если в столбец с типом VARCHAR(10) будет сохранена строка в 5 символов, то в столце будет сохранено именно пять символов. NCHAR: хранит строку в кодировке Unicode длиной от 1 до 4 000 символов. На каждый символ выделяется 2 байта. Например, NCHAR(15) NVARCHAR: хранит строку в кодировке Unicode. На каждый символ выделяется 2 байта.Можно задать конкретный размер от 1 до 4 000 символов: . Если строка должна иметь больше 4000 символов, то задается размер MAX, а на хранение строки может выделяться до 2 Гб. nchar, nvarchar - Unicode char, nchar - фиксированная длина строки, даже если символы не ипользуются varchar , nvarchar - с переменная длина - использует столько символов, сколько содержится в сообщении ЗаданиеПриобрести навыки проектирования баз данных, изучить особенности создания баз данных, таблиц и обеспечения целостности в MS SQL Server. Требования к ЛР:Созданная база данных должна находиться в третьей нормальной форме (рекомендуется нормальная форма Бойса-Кодда).
Минимум 7 таблиц, не менее 5 основных таблиц + справочные Минимум 4-5 полей для основных и 2-3 для справочных таблиц Типы данных Связи между таблицами, ключи Автоинкрементен Диаграмма БД |