Структура таблиц и типы данных
Для чего нужны базы данных
БД не просто набор данных, а программа, которая должна обеспечивать ваши нужды. Вы – большая компания. База данных должна:
- хранить данные;
- обеспечивать доступ к данным (возможно по сети);
- выполнять поиск данных;
- делать выборки данных;
- выводить отчеты;
- создавать резервные копии и восстанавливать данные;
- разграничивать права пользователей;
- обеспечивать многопользовательский доступ;
- защищать данные;
- обладать пользовательским интерфейсом и интерфейсом администратора.
Основные определения
БД (база данных) – Совокупность специальным образом организованных данных, хранимых в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в некоторой предметной области.
Пример использования БД: для работы филиалов банка в разных городах необходимо иметь единую базу всех клиентов банка. Еще пример: для управления производственным процессом отдельного участка необходимы сведения о наличии исходных комплектующих и мощностях участка.
СУБД (система управления базами данных) – специальный пакет программ, посредством которого реализуется централизованное управление базой данных и обеспечивается доступ к данным. СУБД обеспечивает выполнение запросов пользователей – просмотр, редактирование, добавление и удаление данных: разграничение прав доступа к информации, резервное копирование и восстановление БД и другие возможности. СУБД не зависит от рабочих программ и операционных систем, с которыми она взаимодействует. Примеры СУБД – MS Access, MS SQL Server, Oracle.
БнД (банк данных) – автоматизированная информационно-справочная система централизованного хранения и коллективного использования данных. В состав банка данных входят одна или несколько баз данных, СУБД, а также библиотеки запросов и прикладных программ.
Классификация БД
· Иерархические. Структура БД представляет собой многоуровневое иерархическое дерево, данные связываются по принципу «главный – подчиненный» («предок – потомок»). Каждый объект-предок может иметь любое количество потомков или не иметь их вообще, однако у каждого потомка может быть только один предок. Пример иерархической структуры – файловая система. Иерархические БД появились раньше всех других, сейчас используются крайне редко, имеют скорее историческое значение. Пример ИБД - Information Management System (IBM, 1968 г.).
Иерархические базы данных наиболее пригодны для моделирования структур, по своей природе являющихся иерархическими. Для всех других БД неоправданно усложняется, становится медленной и громоздкой. Например, если у потомка существует несколько предков, приходится строить несколько деревьев.
· Сетевые. Являются расширением иерархических БД, каждый потомок может иметь несколько предков. Структуру можно изобразить в виде графа. Объекты представляются как вершины, или узлы графа, а связи — как дуги, или рёбра. Пример – СООБЗ Cerebrum, СУБД IDMS (Integrated Database Management System), разработанная компанией Cullinet Software, Inc.
Сетевой базой данных фактически является Всемирная паутина глобальной компьютерной сети Интернет. Гиперссылки связывают между собой сотни миллионов документов в единую распределенную сетевую базу данных.
· Реляционные. В основе лежит понятие «отношения». Визуально отношение можно представить в виде таблицы.
ФИО | Год рождения | Год поступления | Курс | Группа | … |
Реляционная БД – это совокупность связанных друг с другом двумерных таблиц.
·
· Постреляционные. Созданы на основе реляционной модели, позволяют хранить в столбце таблицы множественные данные, группы значений (нарушается правило атомарности). Такие БД называют еще многомерными. Используются трехмерные структуры, можно хранить в полях таблицы другие таблицы.
Предыдущий пример можно записать в виде постреляционной БД, поле группа будет включать в себя еще одну таблицу, информацию о группе.
Пример – СУБД «Cache»
· Объектно-реляционные. Реляционные БД, поддерживающие некоторые технологии, реализующие объектно-ориентированный подход. Для каждого объекта описываются его свойства (состояние) и методы (поведение). Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Поддерживаются понятия инкапсуляции, наследования и полиморфизма.
В ООП:
Инкапсуляция означает объединение в единое целое данных и алгоритмов (функций и методов) их обработки, а также скрытие данных внутри объектов, что повышает надежность разрабатываемого программного обеспечения. Доступ к объекту может осуществляться только через его интерфейс (свойства и методы). Закрытые коды или данные доступны только для других частей этого объекта. Если коды и данные являются открытыми, то, несмотря на то, что они заданы внутри объекта, они доступны и для других частей программы.
Вся информация об объекте заключена в определении его класса. Поведение объекта полностью определяется принадлежностью к конкретному классу.
Если в объект типа Каталог добавить свойство, задающее телефон автора книги и имеющее название телефон, то мы получим одноименные свойства у объектов Абонент и Каталог . Смысл такого свойства будет определяться тем объектом, в который оно инкапсулировано.
Наследование – позволяет описать новый класс на основе уже существующего (родительского), при этом свойства и методы родительского класса заимствуются новым классом. Однако в дочерних классах могут определяться новые свойства и методы.
Полиморфизм допускает в объектах разных типов иметь методы (процедуры и функции) с одинаковыми именами, что означает способность одного и того же программного кода работать с разнотипными данными.
Например для языка Си нахождение модуля числа требует трёх различных функций: abs(), labs() и fabs(). (целые, длинных целые, числа с плавающей точкой). В С++ каждая из этих функций может быть названа abs(). Тип данных, который используется при вызове функции, определяет, какая конкретная версия функции действительно выполняется.
Все СУБД можно разделить на персональные и многопользовательские.
· Персональные СУБД используются для создания локальных БД, работающих на одном компьютере, как правило, они предназначены для одного пользователя. К таким СУБД относятся Paradox, dBase, Access и др.
· Многопользовательские СУБД позволяют создавать информационные системы, с которыми могут работать одновременно несколько пользователей. К многопользовательским СУБД относятся Oracle, InterBase, SyBase, Microsoft SQL Server и др.
Реляционные БД
Структура таблиц и типы данных
Реляционная БД представляет собой набор таблиц. Каждая таблица, как правило, описывает отдельный объект (сущность). Таблица состоит из строк (записей) и столбцов. Строки таблицы имеют одинаковую структуру и состоят из полей. Поля описывают отдельные данные экземпляра (например, ФИО, год рождения, номер телефона и т.п.).
В каждом столбце таблицы содержатся данные определенного типа. Основные типы данных – это числа (целые или дробные), строковые данные, дата и время. Типы данных, использующиеся в СУБД MS SQL Server, указаны в Приложении 1.
Домен – множество данных одного типа, описывающих некоторое свойство. Домен имеет уникальное имя, определяется на некотором простом типе данных, может иметь логическое условие, позволяющее описать подмножество данных домена. Например, домен ФИО определен на типе данных «строка символов», но должен содержать только строки – конкретные имена.
В литературе используются термины «тип поля» (домен) и «экземпляр поля» (значение типа поля для одной конкретной записи). На практике квалификаторы «тип» и «экземпляр» часто опускают, полагая, что точный смысл ясен из контекста.
3.2. Ключи
Существуют следующие основные типы ключей.
· Первичный – набор полей, однозначно определяющий запись. Такой ключ в таблице может быть только один, его значения не повторяются.
· Альтернативный – возможный ключ, не являющийся первичным. На практике в качестве первичного обычно выбирается тот ключ, который имеет меньший размер (на диске) или состоит из меньшего числа полей.
· Внешний – набор полей, ссылающихся на первичный или альтернативный ключ другой таблицы.
Ключи также делятся на простые (состоят из одного атрибута) и составные (состоят из нескольких атрибутов). Ключ может быть уникальным (если его значения не повторяются) и неуникальным (если значения ключа повторяются). Неуникальным часто бывает внешний ключ.
Перечисленные виды ключей могут быть объединены: ключ может быть первичным, составным и уникальным.
Связи
При создании схемы данных можно определить связи между таблицами.
· Связь 1:1 – одной записи одной таблицы соответствует одна запись другой таблицы (и только одна). Так обычно связываются две таблицы по уникальному ключу. Например, сотрудники – паспорта.
· Связь 1:М – одной записи одной таблицы соответствует несколько записей другой. Например, связь первичный ключ – внешний ключ. В одном городе может жить несколько сотрудников.
· Связь М:М – нескольким записям одной таблицы соответствует несколько записей другой. Для реализации такой связи используют дополнительные таблицы. Например, студенты-предметы-отметки. В связующей таблице внешние ключи обычно идентифицируют запись, и также есть одно или несколько дополнительных полей, где хранятся данные.
Целостность данных
Целостность данных – это требование соответствия значений данных некоторому набору правил.
В реляционных БД рассматриваются несколько уровней ограничения целостности:
· Целостность таблицы – каждая запись в таблице должна иметь уникальный идентификатор (не NULL). Нельзя хранить в одной и той же таблице несколько записей с одинаковыми идентификаторами – это может привести к противоречивости данных.
· Целостность домена – каждый атрибут принимает только допустимые значения. При выполнении условий целостности обеспечивается отсутствие значений, выходящих за рамки возможного. Для реализации целостности достаточно правильно выбрать для столбца тип и длину данных. Пример, длина графы «семейное положение» не может быть больше 10 символов.
целостность группы связанных логически таблиц (для Access вся БД). Если таблицы в БД связаны друг с другом, то значения, по которым они связаны, должны не противоречить друг другу.
· Ссылочная целостность – внешний ключ не может быть указателем на несуществующий родительский. Например, если в городе переименовали улицу, то адреса у всех проживающих на этой улице также должны измениться. А если дом на улице подлежит сносу, то предварительно необходимо отселить всех проживающих в этом доме. Если не соблюдается ограничение целостности на уровне домена, то в БД будут появляться записи без постоянного места жительства.
Дата добавления: 2018-09-24; просмотров: 1171;